diff --git a/.pnp.cjs b/.pnp.cjs index 9467d1d519..edd52aae49 100644 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -149,6 +149,10 @@ const RAW_RUNTIME_STATE = "@babel/parser",\ "npm:7.28.4"\ ],\ + [\ + "@babel/runtime",\ + "npm:7.28.4"\ + ],\ [\ "@babel/template",\ "npm:7.27.2"\ @@ -245,6 +249,110 @@ const RAW_RUNTIME_STATE = "@endo/immutable-arraybuffer",\ "npm:1.1.1"\ ],\ + [\ + "@esbuild/aix-ppc64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/android-arm",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/android-arm64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/android-x64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/darwin-arm64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/darwin-x64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/freebsd-arm64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/freebsd-x64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/linux-arm",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/linux-arm64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/linux-ia32",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/linux-loong64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/linux-mips64el",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/linux-ppc64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/linux-riscv64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/linux-s390x",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/linux-x64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/netbsd-arm64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/netbsd-x64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/openbsd-arm64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/openbsd-x64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/openharmony-arm64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/sunos-x64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/win32-arm64",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/win32-ia32",\ + "npm:0.25.11"\ + ],\ + [\ + "@esbuild/win32-x64",\ + "npm:0.25.11"\ + ],\ [\ "@eslint-community/eslint-utils",\ "virtual:a99b546793ddbdb25bdfb6b7422b0554ba5895f546c9918f7f13c491e6901074c9d2e75af011826b57deb8c3cec43842214d33ed6480c99f9531540e333ed6ed#npm:4.7.0"\ @@ -421,6 +529,10 @@ const RAW_RUNTIME_STATE = "@pkgr/core",\ "npm:0.2.7"\ ],\ + [\ + "@polka/url",\ + "npm:1.0.0-next.29"\ + ],\ [\ "@protobufjs/aspromise",\ "npm:1.1.2"\ @@ -461,6 +573,94 @@ const RAW_RUNTIME_STATE = "@protobufjs/utf8",\ "npm:1.1.0"\ ],\ + [\ + "@rollup/rollup-android-arm-eabi",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-android-arm64",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-darwin-arm64",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-darwin-x64",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-freebsd-arm64",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-freebsd-x64",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-linux-arm-gnueabihf",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-linux-arm-musleabihf",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-linux-arm64-gnu",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-linux-arm64-musl",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-linux-loong64-gnu",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-linux-ppc64-gnu",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-linux-riscv64-gnu",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-linux-riscv64-musl",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-linux-s390x-gnu",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-linux-x64-gnu",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-linux-x64-musl",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-openharmony-arm64",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-win32-arm64-msvc",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-win32-ia32-msvc",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-win32-x64-gnu",\ + "npm:4.52.5"\ + ],\ + [\ + "@rollup/rollup-win32-x64-msvc",\ + "npm:4.52.5"\ + ],\ [\ "@rtsao/scc",\ "npm:1.1.0"\ @@ -497,6 +697,14 @@ const RAW_RUNTIME_STATE = "@socket.io/component-emitter",\ "npm:3.1.0"\ ],\ + [\ + "@testing-library/dom",\ + "npm:10.4.1"\ + ],\ + [\ + "@testing-library/user-event",\ + "virtual:3990c67f170cba2c738e3b9ef477d748b6ae151eb3c4cc822b5565a4d50e34966fdd0ddeb5815c1698e61316dfda8064e590d635c80e3d36c9ab207805306abc#npm:14.6.1"\ + ],\ [\ "@tootallnate/once",\ "npm:2.0.0"\ @@ -509,6 +717,10 @@ const RAW_RUNTIME_STATE = "@types/accepts",\ "npm:1.3.5"\ ],\ + [\ + "@types/aria-query",\ + "npm:5.0.4"\ + ],\ [\ "@types/base64-js",\ "npm:1.3.0"\ @@ -517,6 +729,10 @@ const RAW_RUNTIME_STATE = "@types/body-parser",\ "npm:1.19.0"\ ],\ + [\ + "@types/chai",\ + "npm:5.2.3"\ + ],\ [\ "@types/connect",\ "npm:3.4.34"\ @@ -533,6 +749,10 @@ const RAW_RUNTIME_STATE = "@types/cors",\ "npm:2.8.12"\ ],\ + [\ + "@types/deep-eql",\ + "npm:4.0.2"\ + ],\ [\ "@types/eslint",\ "npm:7.2.10"\ @@ -765,6 +985,38 @@ const RAW_RUNTIME_STATE = "@unrs/resolver-binding-win32-x64-msvc",\ "npm:1.11.1"\ ],\ + [\ + "@vitest/browser",\ + "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:3.2.4"\ + ],\ + [\ + "@vitest/expect",\ + "npm:3.2.4"\ + ],\ + [\ + "@vitest/mocker",\ + "virtual:3990c67f170cba2c738e3b9ef477d748b6ae151eb3c4cc822b5565a4d50e34966fdd0ddeb5815c1698e61316dfda8064e590d635c80e3d36c9ab207805306abc#npm:3.2.4"\ + ],\ + [\ + "@vitest/pretty-format",\ + "npm:3.2.4"\ + ],\ + [\ + "@vitest/runner",\ + "npm:3.2.4"\ + ],\ + [\ + "@vitest/snapshot",\ + "npm:3.2.4"\ + ],\ + [\ + "@vitest/spy",\ + "npm:3.2.4"\ + ],\ + [\ + "@vitest/utils",\ + "npm:3.2.4"\ + ],\ [\ "@webassemblyjs/ast",\ "npm:1.14.1"\ @@ -899,7 +1151,7 @@ const RAW_RUNTIME_STATE = ],\ [\ "ansi-regex",\ - "npm:6.0.1"\ + "npm:5.0.1"\ ],\ [\ "ansi-styles",\ @@ -929,6 +1181,10 @@ const RAW_RUNTIME_STATE = "argparse",\ "npm:2.0.1"\ ],\ + [\ + "aria-query",\ + "npm:5.3.0"\ + ],\ [\ "array-buffer-byte-length",\ "npm:1.0.2"\ @@ -953,6 +1209,10 @@ const RAW_RUNTIME_STATE = "arraybuffer.prototype.slice",\ "npm:1.0.4"\ ],\ + [\ + "assertion-error",\ + "npm:2.0.1"\ + ],\ [\ "async-function",\ "npm:1.0.0"\ @@ -1017,6 +1277,10 @@ const RAW_RUNTIME_STATE = "bytes",\ "npm:3.1.2"\ ],\ + [\ + "cac",\ + "npm:6.7.14"\ + ],\ [\ "cacache",\ "npm:17.1.4"\ @@ -1053,10 +1317,18 @@ const RAW_RUNTIME_STATE = "caniuse-lite",\ "npm:1.0.30001751"\ ],\ + [\ + "chai",\ + "npm:5.3.3"\ + ],\ [\ "chalk",\ "npm:4.1.2"\ ],\ + [\ + "check-error",\ + "npm:2.1.1"\ + ],\ [\ "chokidar",\ "npm:3.5.3"\ @@ -1197,6 +1469,10 @@ const RAW_RUNTIME_STATE = "decompress-response",\ "npm:6.0.0"\ ],\ + [\ + "deep-eql",\ + "npm:5.0.2"\ + ],\ [\ "deep-equal",\ "npm:1.0.1"\ @@ -1229,6 +1505,10 @@ const RAW_RUNTIME_STATE = "depd",\ "npm:2.0.0"\ ],\ + [\ + "dequal",\ + "npm:2.0.3"\ + ],\ [\ "destroy",\ "npm:1.2.0"\ @@ -1245,6 +1525,10 @@ const RAW_RUNTIME_STATE = "doctrine",\ "npm:2.1.0"\ ],\ + [\ + "dom-accessibility-api",\ + "npm:0.5.16"\ + ],\ [\ "dom-serialize",\ "npm:2.2.1"\ @@ -1349,6 +1633,10 @@ const RAW_RUNTIME_STATE = "es6-error",\ "npm:4.1.1"\ ],\ + [\ + "esbuild",\ + "npm:0.25.11"\ + ],\ [\ "escalade",\ "npm:3.2.0"\ @@ -1425,6 +1713,10 @@ const RAW_RUNTIME_STATE = "estraverse",\ "npm:5.2.0"\ ],\ + [\ + "estree-walker",\ + "npm:3.0.3"\ + ],\ [\ "esutils",\ "npm:2.0.3"\ @@ -1445,6 +1737,10 @@ const RAW_RUNTIME_STATE = "expand-template",\ "npm:2.0.3"\ ],\ + [\ + "expect-type",\ + "npm:1.2.2"\ + ],\ [\ "exponential-backoff",\ "npm:3.1.1"\ @@ -1485,6 +1781,10 @@ const RAW_RUNTIME_STATE = "fastq",\ "npm:1.11.0"\ ],\ + [\ + "fdir",\ + "virtual:0e783aadbd2b4b8e6f6056033c0b290501892d23bc7c5dad5477e00e48ad8bd3e4434c3962a52dd75a58e06dbb7218094a494bac954ef2f7f6fdb65d9717e5f4#npm:6.5.0"\ + ],\ [\ "file-entry-cache",\ "npm:8.0.0"\ @@ -1555,7 +1855,7 @@ const RAW_RUNTIME_STATE = ],\ [\ "fsevents",\ - "patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1"\ + "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"\ ],\ [\ "function-bind",\ @@ -1967,20 +2267,12 @@ const RAW_RUNTIME_STATE = ],\ [\ "jackspeak",\ - "npm:4.1.1"\ - ],\ - [\ - "jasmine",\ - "npm:4.6.0"\ + "npm:3.4.3"\ ],\ [\ "jasmine-core",\ "npm:4.6.0"\ ],\ - [\ - "jasmine-spec-reporter",\ - "npm:6.0.0"\ - ],\ [\ "jest-worker",\ "npm:27.5.1"\ @@ -2105,6 +2397,10 @@ const RAW_RUNTIME_STATE = "long",\ "npm:5.2.4"\ ],\ + [\ + "loupe",\ + "npm:3.2.1"\ + ],\ [\ "lru-cache",\ "npm:7.18.3"\ @@ -2113,6 +2409,14 @@ const RAW_RUNTIME_STATE = "lunr",\ "npm:2.3.9"\ ],\ + [\ + "lz-string",\ + "npm:1.5.0"\ + ],\ + [\ + "magic-string",\ + "npm:0.30.21"\ + ],\ [\ "make-dir",\ "npm:3.1.0"\ @@ -2213,10 +2517,18 @@ const RAW_RUNTIME_STATE = "mkdirp-classic",\ "npm:0.5.3"\ ],\ + [\ + "mrmime",\ + "npm:2.0.1"\ + ],\ [\ "ms",\ "npm:2.1.3"\ ],\ + [\ + "nanoid",\ + "npm:3.3.11"\ + ],\ [\ "napi-build-utils",\ "npm:2.0.0"\ @@ -2387,7 +2699,15 @@ const RAW_RUNTIME_STATE = ],\ [\ "path-scurry",\ - "npm:2.0.0"\ + "npm:1.11.1"\ + ],\ + [\ + "pathe",\ + "npm:2.0.3"\ + ],\ + [\ + "pathval",\ + "npm:2.0.1"\ ],\ [\ "picocolors",\ @@ -2395,16 +2715,28 @@ const RAW_RUNTIME_STATE = ],\ [\ "picomatch",\ - "npm:2.3.1"\ + "npm:4.0.3"\ ],\ [\ "pkg-dir",\ "npm:4.2.0"\ ],\ + [\ + "playwright",\ + "npm:1.56.1"\ + ],\ + [\ + "playwright-core",\ + "npm:1.56.1"\ + ],\ [\ "possible-typed-array-names",\ "npm:1.1.0"\ ],\ + [\ + "postcss",\ + "npm:8.5.6"\ + ],\ [\ "prebuild-install",\ "npm:7.1.3"\ @@ -2421,6 +2753,10 @@ const RAW_RUNTIME_STATE = "prettier-linter-helpers",\ "npm:1.0.0"\ ],\ + [\ + "pretty-format",\ + "npm:27.5.1"\ + ],\ [\ "process-on-spawn",\ "npm:1.0.0"\ @@ -2473,6 +2809,10 @@ const RAW_RUNTIME_STATE = "rc",\ "npm:1.2.8"\ ],\ + [\ + "react-is",\ + "npm:17.0.2"\ + ],\ [\ "readable-stream",\ "npm:3.6.0"\ @@ -2553,6 +2893,10 @@ const RAW_RUNTIME_STATE = "ripemd160",\ "npm:2.0.2"\ ],\ + [\ + "rollup",\ + "npm:4.52.5"\ + ],\ [\ "run-parallel",\ "npm:1.2.0"\ @@ -2645,6 +2989,10 @@ const RAW_RUNTIME_STATE = "side-channel-weakmap",\ "npm:1.0.2"\ ],\ + [\ + "siginfo",\ + "npm:2.0.0"\ + ],\ [\ "signal-exit",\ "npm:3.0.7"\ @@ -2657,6 +3005,10 @@ const RAW_RUNTIME_STATE = "simple-get",\ "npm:4.0.1"\ ],\ + [\ + "sirv",\ + "npm:3.0.2"\ + ],\ [\ "smart-buffer",\ "npm:4.2.0"\ @@ -2685,6 +3037,10 @@ const RAW_RUNTIME_STATE = "source-map",\ "npm:0.6.1"\ ],\ + [\ + "source-map-js",\ + "npm:1.2.1"\ + ],\ [\ "source-map-support",\ "npm:0.5.21"\ @@ -2705,10 +3061,18 @@ const RAW_RUNTIME_STATE = "stable-hash-x",\ "npm:0.2.0"\ ],\ + [\ + "stackback",\ + "npm:0.0.2"\ + ],\ [\ "statuses",\ "npm:1.5.0"\ ],\ + [\ + "std-env",\ + "npm:3.10.0"\ + ],\ [\ "stop-iteration-iterator",\ "npm:1.1.0"\ @@ -2767,6 +3131,10 @@ const RAW_RUNTIME_STATE = "strip-json-comments",\ "npm:3.1.1"\ ],\ + [\ + "strip-literal",\ + "npm:3.1.0"\ + ],\ [\ "supports-color",\ "npm:7.2.0"\ @@ -2811,9 +3179,29 @@ const RAW_RUNTIME_STATE = "test-exclude",\ "npm:6.0.0"\ ],\ + [\ + "tinybench",\ + "npm:2.9.0"\ + ],\ + [\ + "tinyexec",\ + "npm:0.3.2"\ + ],\ [\ "tinyglobby",\ - "npm:0.2.14"\ + "npm:0.2.15"\ + ],\ + [\ + "tinypool",\ + "npm:1.1.1"\ + ],\ + [\ + "tinyrainbow",\ + "npm:2.0.0"\ + ],\ + [\ + "tinyspy",\ + "npm:4.0.4"\ ],\ [\ "tmp",\ @@ -2827,6 +3215,10 @@ const RAW_RUNTIME_STATE = "toidentifier",\ "npm:1.0.0"\ ],\ + [\ + "totalist",\ + "npm:3.0.1"\ + ],\ [\ "ts-api-utils",\ "virtual:f0bd4c821512c5183e9329c65c7c13efa18c501e82cbf40be1505a7d9fbf95542975f867e1e3780e4b777bb4591dee349d9474885f5d5de5d9db8e31cbf9f485#npm:2.1.0"\ @@ -2955,6 +3347,18 @@ const RAW_RUNTIME_STATE = "vary",\ "npm:1.1.2"\ ],\ + [\ + "vite",\ + "virtual:cb1d79df3b4901790c8808db427c397bd3f613c8181bce1e1c99f654fcf8f1484eb3efeaaa7477306f7c95ff2d882d1e762cb59fa3743be7fbfd628566f4b6c1#npm:7.1.12"\ + ],\ + [\ + "vite-node",\ + "npm:3.2.4"\ + ],\ + [\ + "vitest",\ + "virtual:32bdce0525b6fd38c0ffab310007869ff277762ac809c2d2b6ac7a63bc1b80e6f56e6507ed75fd8459648eb5d0172adc064466a9729b1d8c49e093b697f760e1#npm:3.2.4"\ + ],\ [\ "void-elements",\ "npm:2.0.1"\ @@ -3003,6 +3407,10 @@ const RAW_RUNTIME_STATE = "which-typed-array",\ "npm:1.1.19"\ ],\ + [\ + "why-is-node-running",\ + "npm:2.3.0"\ + ],\ [\ "wide-align",\ "npm:1.1.5"\ @@ -3085,6 +3493,7 @@ const RAW_RUNTIME_STATE = ["@eslint/js", "npm:9.32.0"],\ ["@typescript-eslint/eslint-plugin", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:8.46.2"],\ ["@typescript-eslint/parser", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:8.46.2"],\ + ["@vitest/browser", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:3.2.4"],\ ["cosmjs-monorepo-root", "workspace:."],\ ["eslint", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:9.32.0"],\ ["eslint-config-prettier", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:8.3.0"],\ @@ -3093,8 +3502,11 @@ const RAW_RUNTIME_STATE = ["eslint-plugin-prettier", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:5.5.0"],\ ["eslint-plugin-simple-import-sort", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:7.0.0"],\ ["globals", "npm:16.3.0"],\ + ["playwright", "npm:1.56.1"],\ ["prettier", "npm:3.6.2"],\ - ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"]\ + ["ses", "npm:1.13.1"],\ + ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:3.2.4"]\ ],\ "linkType": "SOFT"\ }]\ @@ -3265,6 +3677,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@babel/runtime", [\ + ["npm:7.28.4", {\ + "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.28.4-31bc1b0001-792ce7af97.zip/node_modules/@babel/runtime/",\ + "packageDependencies": [\ + ["@babel/runtime", "npm:7.28.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@babel/template", [\ ["npm:7.27.2", {\ "packageLocation": "./.yarn/cache/@babel-template-npm-7.27.2-77e67eabbd-ed9e902265.zip/node_modules/@babel/template/",\ @@ -3314,13 +3735,10 @@ const RAW_RUNTIME_STATE = ["@cosmjs/math", "workspace:packages/math"],\ ["@cosmjs/utils", "workspace:packages/utils"],\ ["@istanbuljs/nyc-config-typescript", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:1.0.1"],\ - ["@types/jasmine", "npm:4.6.1"],\ ["@types/karma-firefox-launcher", "npm:2.1.0"],\ ["@types/karma-jasmine", "npm:4.0.2"],\ ["@types/karma-jasmine-html-reporter", "npm:1.5.1"],\ ["glob", "npm:11.0.3"],\ - ["jasmine", "npm:4.6.0"],\ - ["jasmine-spec-reporter", "npm:6.0.0"],\ ["karma", "npm:6.3.16"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.0"],\ @@ -3332,6 +3750,7 @@ const RAW_RUNTIME_STATE = ["source-map-support", "npm:0.5.21"],\ ["typedoc", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:0.28.5"],\ ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:32bdce0525b6fd38c0ffab310007869ff277762ac809c2d2b6ac7a63bc1b80e6f56e6507ed75fd8459648eb5d0172adc064466a9729b1d8c49e093b697f760e1#npm:3.2.4"],\ ["webpack", "virtual:d9e325cc72640bcdd8c0595d77f162dd82bcc03bb06facad45b0fa8fc5bf522b30e1f0b4591f9923a0022943ddb750feb3eac78ddc29663f277c3567f21d9aba#npm:5.102.1"],\ ["webpack-cli", "virtual:d9e325cc72640bcdd8c0595d77f162dd82bcc03bb06facad45b0fa8fc5bf522b30e1f0b4591f9923a0022943ddb750feb3eac78ddc29663f277c3567f21d9aba#npm:4.7.0"]\ ],\ @@ -3352,15 +3771,12 @@ const RAW_RUNTIME_STATE = ["@cosmjs/tendermint-rpc", "workspace:packages/tendermint-rpc"],\ ["@cosmjs/utils", "workspace:packages/utils"],\ ["@istanbuljs/nyc-config-typescript", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:1.0.1"],\ - ["@types/jasmine", "npm:4.6.1"],\ ["@types/karma-firefox-launcher", "npm:2.1.0"],\ ["@types/karma-jasmine", "npm:4.0.2"],\ ["@types/karma-jasmine-html-reporter", "npm:1.5.1"],\ ["@types/node", "npm:22.10.6"],\ ["cosmjs-types", "npm:0.10.1"],\ ["glob", "npm:11.0.3"],\ - ["jasmine", "npm:4.6.0"],\ - ["jasmine-spec-reporter", "npm:6.0.0"],\ ["karma", "npm:6.3.16"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.0"],\ @@ -3373,6 +3789,7 @@ const RAW_RUNTIME_STATE = ["source-map-support", "npm:0.5.21"],\ ["typedoc", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:0.28.5"],\ ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:3.2.4"],\ ["webpack", "virtual:14e834828d065c83a62d939f78f867dca06a99ef32e4048b15b8f9e3433169eca01f5c29b8d8692cae8f8109cda402ac498149ee584b3d3b9e10e5ef4428aaa9#npm:5.102.1"],\ ["webpack-cli", "virtual:14e834828d065c83a62d939f78f867dca06a99ef32e4048b15b8f9e3433169eca01f5c29b8d8692cae8f8109cda402ac498149ee584b3d3b9e10e5ef4428aaa9#npm:4.7.0"]\ ],\ @@ -3392,15 +3809,12 @@ const RAW_RUNTIME_STATE = ["@noble/curves", "npm:1.9.2"],\ ["@noble/hashes", "npm:1.8.0"],\ ["@scure/bip39", "npm:1.6.0"],\ - ["@types/jasmine", "npm:4.6.1"],\ ["@types/karma-firefox-launcher", "npm:2.1.0"],\ ["@types/karma-jasmine", "npm:4.0.2"],\ ["@types/karma-jasmine-html-reporter", "npm:1.5.1"],\ ["@types/node", "npm:22.10.6"],\ ["glob", "npm:11.0.3"],\ ["hash-wasm", "npm:4.12.0"],\ - ["jasmine", "npm:4.6.0"],\ - ["jasmine-spec-reporter", "npm:6.0.0"],\ ["karma", "npm:6.3.16"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.0"],\ @@ -3412,6 +3826,7 @@ const RAW_RUNTIME_STATE = ["source-map-support", "npm:0.5.21"],\ ["typedoc", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:0.28.5"],\ ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:3.2.4"],\ ["webpack", "virtual:1a72a83ae6f92c6f3e756c713a9a31ccfa711e7e2f1243788a7cf7ade4d78c0c1ff62213d9b07eaa19d318c078695418641698a55516ba18eae8be3fd315083a#npm:5.102.1"],\ ["webpack-cli", "virtual:1a72a83ae6f92c6f3e756c713a9a31ccfa711e7e2f1243788a7cf7ade4d78c0c1ff62213d9b07eaa19d318c078695418641698a55516ba18eae8be3fd315083a#npm:4.7.0"]\ ],\ @@ -3426,15 +3841,12 @@ const RAW_RUNTIME_STATE = ["@istanbuljs/nyc-config-typescript", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:1.0.1"],\ ["@scure/base", "npm:2.0.0"],\ ["@types/base64-js", "npm:1.3.0"],\ - ["@types/jasmine", "npm:4.6.1"],\ ["@types/karma-firefox-launcher", "npm:2.1.0"],\ ["@types/karma-jasmine", "npm:4.0.2"],\ ["@types/karma-jasmine-html-reporter", "npm:1.5.1"],\ ["@types/node", "npm:22.10.6"],\ ["base64-js", "npm:1.5.1"],\ ["glob", "npm:11.0.3"],\ - ["jasmine", "npm:4.6.0"],\ - ["jasmine-spec-reporter", "npm:6.0.0"],\ ["karma", "npm:6.3.16"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.0"],\ @@ -3447,6 +3859,7 @@ const RAW_RUNTIME_STATE = ["source-map-support", "npm:0.5.21"],\ ["typedoc", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:0.28.5"],\ ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:3.2.4"],\ ["webpack", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:5.102.1"],\ ["webpack-cli", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:4.7.0"]\ ],\ @@ -3466,12 +3879,9 @@ const RAW_RUNTIME_STATE = ["@cosmjs/utils", "workspace:packages/utils"],\ ["@istanbuljs/nyc-config-typescript", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:1.0.1"],\ ["@koa/cors", "npm:5.0.0"],\ - ["@types/jasmine", "npm:4.6.1"],\ ["@types/koa", "npm:2.15.0"],\ ["@types/koa-bodyparser", "npm:4.3.7"],\ ["@types/koa__cors", "npm:3.3.0"],\ - ["jasmine", "npm:4.6.0"],\ - ["jasmine-spec-reporter", "npm:6.0.0"],\ ["koa", "npm:2.16.1"],\ ["koa-bodyparser", "npm:4.3.0"],\ ["nyc", "npm:17.1.0"],\ @@ -3479,6 +3889,7 @@ const RAW_RUNTIME_STATE = ["ses", "npm:1.13.1"],\ ["source-map-support", "npm:0.5.21"],\ ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:32bdce0525b6fd38c0ffab310007869ff277762ac809c2d2b6ac7a63bc1b80e6f56e6507ed75fd8459648eb5d0172adc064466a9729b1d8c49e093b697f760e1#npm:3.2.4"],\ ["webpack", "virtual:45dc8d177c5463b02ae2b62c45461f6704449bac45b0b4bf10ceca81013a617a6fa5aaf2547e43076d50ac57cad5c9979a6da6e8adf35b42d844e73e8c014613#npm:5.102.1"],\ ["webpack-cli", "virtual:45dc8d177c5463b02ae2b62c45461f6704449bac45b0b4bf10ceca81013a617a6fa5aaf2547e43076d50ac57cad5c9979a6da6e8adf35b42d844e73e8c014613#npm:4.7.0"]\ ],\ @@ -3491,14 +3902,11 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["@cosmjs/faucet-client", "workspace:packages/faucet-client"],\ ["@istanbuljs/nyc-config-typescript", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:1.0.1"],\ - ["@types/jasmine", "npm:4.6.1"],\ ["@types/karma-firefox-launcher", "npm:2.1.0"],\ ["@types/karma-jasmine", "npm:4.0.2"],\ ["@types/karma-jasmine-html-reporter", "npm:1.5.1"],\ ["@types/node", "npm:22.10.6"],\ ["glob", "npm:11.0.3"],\ - ["jasmine", "npm:4.6.0"],\ - ["jasmine-spec-reporter", "npm:6.0.0"],\ ["karma", "npm:6.3.16"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.0"],\ @@ -3510,6 +3918,7 @@ const RAW_RUNTIME_STATE = ["source-map-support", "npm:0.5.21"],\ ["typedoc", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:0.28.5"],\ ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:3.2.4"],\ ["webpack", "virtual:59dbf28df0b44553f74b7f3dd446a5bd2c11faf0a1518276fd6f945187079c5efd2da665c225efeaf92e186ce2ab9d524adc7b7b39eb091a0f2fb60aac3cbe9f#npm:5.102.1"],\ ["webpack-cli", "virtual:59dbf28df0b44553f74b7f3dd446a5bd2c11faf0a1518276fd6f945187079c5efd2da665c225efeaf92e186ce2ab9d524adc7b7b39eb091a0f2fb60aac3cbe9f#npm:4.7.0"]\ ],\ @@ -3523,13 +3932,10 @@ const RAW_RUNTIME_STATE = ["@cosmjs/json-rpc", "workspace:packages/json-rpc"],\ ["@cosmjs/stream", "workspace:packages/stream"],\ ["@istanbuljs/nyc-config-typescript", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:1.0.1"],\ - ["@types/jasmine", "npm:4.6.1"],\ ["@types/karma-firefox-launcher", "npm:2.1.0"],\ ["@types/karma-jasmine", "npm:4.0.2"],\ ["@types/karma-jasmine-html-reporter", "npm:1.5.1"],\ ["glob", "npm:11.0.3"],\ - ["jasmine", "npm:4.6.0"],\ - ["jasmine-spec-reporter", "npm:6.0.0"],\ ["karma", "npm:6.3.16"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.0"],\ @@ -3541,6 +3947,7 @@ const RAW_RUNTIME_STATE = ["source-map-support", "npm:0.5.21"],\ ["typedoc", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:0.28.5"],\ ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:32bdce0525b6fd38c0ffab310007869ff277762ac809c2d2b6ac7a63bc1b80e6f56e6507ed75fd8459648eb5d0172adc064466a9729b1d8c49e093b697f760e1#npm:3.2.4"],\ ["webpack", "virtual:8b096e2a9a434b4277d6f02b903bdce7d29a5d4c50de89707a93f84c84c73759c4741dd158307f1c75ce3c1e2c05b0da1b938a114cc37854c89c2bd2552c9236#npm:5.102.1"],\ ["webpack-cli", "virtual:8b096e2a9a434b4277d6f02b903bdce7d29a5d4c50de89707a93f84c84c73759c4741dd158307f1c75ce3c1e2c05b0da1b938a114cc37854c89c2bd2552c9236#npm:4.7.0"],\ ["xstream", "npm:11.14.0"]\ @@ -3563,12 +3970,9 @@ const RAW_RUNTIME_STATE = ["@ledgerhq/hw-transport", "npm:6.31.6"],\ ["@ledgerhq/hw-transport-node-hid", "npm:6.29.7"],\ ["@ledgerhq/hw-transport-webusb", "npm:6.29.6"],\ - ["@types/jasmine", "npm:4.6.1"],\ ["@types/semver", "npm:7.7.0"],\ ["@zondax/ledger-cosmos-js", "npm:4.0.1"],\ ["glob", "npm:11.0.3"],\ - ["jasmine", "npm:4.6.0"],\ - ["jasmine-spec-reporter", "npm:6.0.0"],\ ["nyc", "npm:17.1.0"],\ ["prettier", "npm:3.6.2"],\ ["semver", "npm:7.7.3"],\ @@ -3576,6 +3980,7 @@ const RAW_RUNTIME_STATE = ["source-map-support", "npm:0.5.21"],\ ["typedoc", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:0.28.5"],\ ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:32bdce0525b6fd38c0ffab310007869ff277762ac809c2d2b6ac7a63bc1b80e6f56e6507ed75fd8459648eb5d0172adc064466a9729b1d8c49e093b697f760e1#npm:3.2.4"],\ ["webpack", "virtual:ccd7bdb71649037a1a0a4683a969c7a445e96784e6e17fdf2248fd29ab34e212b967e8a3bd2e3bd9d02ee048b1b3b3d74219a50fdbee85a0178c2c53fbd58c3c#npm:5.102.1"],\ ["webpack-cli", "virtual:ccd7bdb71649037a1a0a4683a969c7a445e96784e6e17fdf2248fd29ab34e212b967e8a3bd2e3bd9d02ee048b1b3b3d74219a50fdbee85a0178c2c53fbd58c3c#npm:4.7.0"]\ ],\ @@ -3588,13 +3993,10 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["@cosmjs/math", "workspace:packages/math"],\ ["@istanbuljs/nyc-config-typescript", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:1.0.1"],\ - ["@types/jasmine", "npm:4.6.1"],\ ["@types/karma-firefox-launcher", "npm:2.1.0"],\ ["@types/karma-jasmine", "npm:4.0.2"],\ ["@types/karma-jasmine-html-reporter", "npm:1.5.1"],\ ["glob", "npm:11.0.3"],\ - ["jasmine", "npm:4.6.0"],\ - ["jasmine-spec-reporter", "npm:6.0.0"],\ ["karma", "npm:6.3.16"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.0"],\ @@ -3606,6 +4008,7 @@ const RAW_RUNTIME_STATE = ["source-map-support", "npm:0.5.21"],\ ["typedoc", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:0.28.5"],\ ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:32bdce0525b6fd38c0ffab310007869ff277762ac809c2d2b6ac7a63bc1b80e6f56e6507ed75fd8459648eb5d0172adc064466a9729b1d8c49e093b697f760e1#npm:3.2.4"],\ ["webpack", "virtual:32bdce0525b6fd38c0ffab310007869ff277762ac809c2d2b6ac7a63bc1b80e6f56e6507ed75fd8459648eb5d0172adc064466a9729b1d8c49e093b697f760e1#npm:5.102.1"],\ ["webpack-cli", "virtual:32bdce0525b6fd38c0ffab310007869ff277762ac809c2d2b6ac7a63bc1b80e6f56e6507ed75fd8459648eb5d0172adc064466a9729b1d8c49e093b697f760e1#npm:4.7.0"]\ ],\ @@ -3623,15 +4026,12 @@ const RAW_RUNTIME_STATE = ["@cosmjs/proto-signing", "workspace:packages/proto-signing"],\ ["@cosmjs/utils", "workspace:packages/utils"],\ ["@istanbuljs/nyc-config-typescript", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:1.0.1"],\ - ["@types/jasmine", "npm:4.6.1"],\ ["@types/karma-firefox-launcher", "npm:2.1.0"],\ ["@types/karma-jasmine", "npm:4.0.2"],\ ["@types/karma-jasmine-html-reporter", "npm:1.5.1"],\ ["@types/node", "npm:22.10.6"],\ ["cosmjs-types", "npm:0.10.1"],\ ["glob", "npm:11.0.3"],\ - ["jasmine", "npm:4.6.0"],\ - ["jasmine-spec-reporter", "npm:6.0.0"],\ ["karma", "npm:6.3.16"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.0"],\ @@ -3644,6 +4044,7 @@ const RAW_RUNTIME_STATE = ["source-map-support", "npm:0.5.21"],\ ["typedoc", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:0.28.5"],\ ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:3.2.4"],\ ["webpack", "virtual:c246025b363fcdd286d19223b9e5c9d41d6b4e10c1ac203d049eef0026c6c6fd3d893f42665b20a1dc263af14f7698c498822f02ba3cc068bddabeaf6d4b98ea#npm:5.102.1"],\ ["webpack-cli", "virtual:c246025b363fcdd286d19223b9e5c9d41d6b4e10c1ac203d049eef0026c6c6fd3d893f42665b20a1dc263af14f7698c498822f02ba3cc068bddabeaf6d4b98ea#npm:4.7.0"]\ ],\ @@ -3657,15 +4058,12 @@ const RAW_RUNTIME_STATE = ["@cosmjs/socket", "workspace:packages/socket"],\ ["@cosmjs/stream", "workspace:packages/stream"],\ ["@istanbuljs/nyc-config-typescript", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:1.0.1"],\ - ["@types/jasmine", "npm:4.6.1"],\ ["@types/karma-firefox-launcher", "npm:2.1.0"],\ ["@types/karma-jasmine", "npm:4.0.2"],\ ["@types/karma-jasmine-html-reporter", "npm:1.5.1"],\ ["@types/ws", "npm:6.0.4"],\ ["glob", "npm:11.0.3"],\ ["isomorphic-ws", "virtual:992e8a49329af27dec1603ba7ec6f83173fb73e1d5752e95d78d0bec9ff8e148a218f65e20742125a49b958677fd4d6119ec35f9c56f9b4ea72f0e32f53b591b#npm:4.0.1"],\ - ["jasmine", "npm:4.6.0"],\ - ["jasmine-spec-reporter", "npm:6.0.0"],\ ["karma", "npm:6.3.16"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.0"],\ @@ -3677,6 +4075,7 @@ const RAW_RUNTIME_STATE = ["source-map-support", "npm:0.5.21"],\ ["typedoc", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:0.28.5"],\ ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:32bdce0525b6fd38c0ffab310007869ff277762ac809c2d2b6ac7a63bc1b80e6f56e6507ed75fd8459648eb5d0172adc064466a9729b1d8c49e093b697f760e1#npm:3.2.4"],\ ["webpack", "virtual:992e8a49329af27dec1603ba7ec6f83173fb73e1d5752e95d78d0bec9ff8e148a218f65e20742125a49b958677fd4d6119ec35f9c56f9b4ea72f0e32f53b591b#npm:5.102.1"],\ ["webpack-cli", "virtual:992e8a49329af27dec1603ba7ec6f83173fb73e1d5752e95d78d0bec9ff8e148a218f65e20742125a49b958677fd4d6119ec35f9c56f9b4ea72f0e32f53b591b#npm:4.7.0"],\ ["ws", "virtual:992e8a49329af27dec1603ba7ec6f83173fb73e1d5752e95d78d0bec9ff8e148a218f65e20742125a49b958677fd4d6119ec35f9c56f9b4ea72f0e32f53b591b#npm:7.5.10"],\ @@ -3699,15 +4098,12 @@ const RAW_RUNTIME_STATE = ["@cosmjs/tendermint-rpc", "workspace:packages/tendermint-rpc"],\ ["@cosmjs/utils", "workspace:packages/utils"],\ ["@istanbuljs/nyc-config-typescript", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:1.0.1"],\ - ["@types/jasmine", "npm:4.6.1"],\ ["@types/karma-firefox-launcher", "npm:2.1.0"],\ ["@types/karma-jasmine", "npm:4.0.2"],\ ["@types/karma-jasmine-html-reporter", "npm:1.5.1"],\ ["@types/node", "npm:22.10.6"],\ ["cosmjs-types", "npm:0.10.1"],\ ["glob", "npm:11.0.3"],\ - ["jasmine", "npm:4.6.0"],\ - ["jasmine-spec-reporter", "npm:6.0.0"],\ ["karma", "npm:6.3.16"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.0"],\ @@ -3720,6 +4116,7 @@ const RAW_RUNTIME_STATE = ["source-map-support", "npm:0.5.21"],\ ["typedoc", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:0.28.5"],\ ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:3.2.4"],\ ["webpack", "virtual:d5037fb6cb5ae0ea3e1abfa18c6b0b09006e3ee27af43c076bb3eab879c3679bba8a5c55c42f03ddd47ae58ceabbf7a06477ca582879ac7623c7c140cfd0449f#npm:5.102.1"],\ ["webpack-cli", "virtual:d5037fb6cb5ae0ea3e1abfa18c6b0b09006e3ee27af43c076bb3eab879c3679bba8a5c55c42f03ddd47ae58ceabbf7a06477ca582879ac7623c7c140cfd0449f#npm:4.7.0"]\ ],\ @@ -3732,14 +4129,11 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["@cosmjs/stream", "workspace:packages/stream"],\ ["@istanbuljs/nyc-config-typescript", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:1.0.1"],\ - ["@types/jasmine", "npm:4.6.1"],\ ["@types/karma-firefox-launcher", "npm:2.1.0"],\ ["@types/karma-jasmine", "npm:4.0.2"],\ ["@types/karma-jasmine-html-reporter", "npm:1.5.1"],\ ["@types/node", "npm:22.10.6"],\ ["glob", "npm:11.0.3"],\ - ["jasmine", "npm:4.6.0"],\ - ["jasmine-spec-reporter", "npm:6.0.0"],\ ["karma", "npm:6.3.16"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.0"],\ @@ -3751,6 +4145,7 @@ const RAW_RUNTIME_STATE = ["source-map-support", "npm:0.5.21"],\ ["typedoc", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:0.28.5"],\ ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:3.2.4"],\ ["webpack", "virtual:a31700cf86cea838c0f4917245e51b30d6c0a2e667770fb31e497ee0a2d898d5608fba085ac0c1f38177dd8e390865bebffdc50954bc24bc1fb6d5c42bbd51cc#npm:5.102.1"],\ ["webpack-cli", "virtual:a31700cf86cea838c0f4917245e51b30d6c0a2e667770fb31e497ee0a2d898d5608fba085ac0c1f38177dd8e390865bebffdc50954bc24bc1fb6d5c42bbd51cc#npm:4.7.0"],\ ["xstream", "npm:11.14.0"]\ @@ -3771,14 +4166,11 @@ const RAW_RUNTIME_STATE = ["@cosmjs/tendermint-rpc", "workspace:packages/tendermint-rpc"],\ ["@cosmjs/utils", "workspace:packages/utils"],\ ["@istanbuljs/nyc-config-typescript", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:1.0.1"],\ - ["@types/jasmine", "npm:4.6.1"],\ ["@types/karma-firefox-launcher", "npm:2.1.0"],\ ["@types/karma-jasmine", "npm:4.0.2"],\ ["@types/karma-jasmine-html-reporter", "npm:1.5.1"],\ ["@types/node", "npm:22.10.6"],\ ["glob", "npm:11.0.3"],\ - ["jasmine", "npm:4.6.0"],\ - ["jasmine-spec-reporter", "npm:6.0.0"],\ ["karma", "npm:6.3.16"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.0"],\ @@ -3791,6 +4183,7 @@ const RAW_RUNTIME_STATE = ["source-map-support", "npm:0.5.21"],\ ["typedoc", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:0.28.5"],\ ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:3.2.4"],\ ["webpack", "virtual:7bcfa345571c06768a3dbc91a42526f0822237866e2d9cb58705577be6cb39fb02f8c1251069bcf70d11a05dfde2de19f521968b6f5d0f6652f231deb4bdab09#npm:5.102.1"],\ ["webpack-cli", "virtual:7bcfa345571c06768a3dbc91a42526f0822237866e2d9cb58705577be6cb39fb02f8c1251069bcf70d11a05dfde2de19f521968b6f5d0f6652f231deb4bdab09#npm:4.7.0"],\ ["xstream", "npm:11.14.0"]\ @@ -3804,14 +4197,11 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["@cosmjs/utils", "workspace:packages/utils"],\ ["@istanbuljs/nyc-config-typescript", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:1.0.1"],\ - ["@types/jasmine", "npm:4.6.1"],\ ["@types/karma-firefox-launcher", "npm:2.1.0"],\ ["@types/karma-jasmine", "npm:4.0.2"],\ ["@types/karma-jasmine-html-reporter", "npm:1.5.1"],\ ["@types/node", "npm:22.10.6"],\ ["glob", "npm:11.0.3"],\ - ["jasmine", "npm:4.6.0"],\ - ["jasmine-spec-reporter", "npm:6.0.0"],\ ["karma", "npm:6.3.16"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.0"],\ @@ -3823,6 +4213,7 @@ const RAW_RUNTIME_STATE = ["source-map-support", "npm:0.5.21"],\ ["typedoc", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:0.28.5"],\ ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:3.2.4"],\ ["webpack", "virtual:a1fa79937af15b1c91e93bc5d3d31ca355b63338661e2fdb0dcf118caae9fc0800b2363f4e1f737165df645622f04072fe0e111167d7652cb3d8623eb7548b9c#npm:5.102.1"],\ ["webpack-cli", "virtual:a1fa79937af15b1c91e93bc5d3d31ca355b63338661e2fdb0dcf118caae9fc0800b2363f4e1f737165df645622f04072fe0e111167d7652cb3d8623eb7548b9c#npm:4.7.0"]\ ],\ @@ -3887,6 +4278,240 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@esbuild/aix-ppc64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-aix-ppc64-npm-0.25.11-2e54946e65/node_modules/@esbuild/aix-ppc64/",\ + "packageDependencies": [\ + ["@esbuild/aix-ppc64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/android-arm", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-arm-npm-0.25.11-5322d8ebcd/node_modules/@esbuild/android-arm/",\ + "packageDependencies": [\ + ["@esbuild/android-arm", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/android-arm64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-arm64-npm-0.25.11-12b6400dcf/node_modules/@esbuild/android-arm64/",\ + "packageDependencies": [\ + ["@esbuild/android-arm64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/android-x64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-x64-npm-0.25.11-9e3254cbde/node_modules/@esbuild/android-x64/",\ + "packageDependencies": [\ + ["@esbuild/android-x64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/darwin-arm64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-darwin-arm64-npm-0.25.11-7a6e28b3d4/node_modules/@esbuild/darwin-arm64/",\ + "packageDependencies": [\ + ["@esbuild/darwin-arm64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/darwin-x64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-darwin-x64-npm-0.25.11-d6cc76e269/node_modules/@esbuild/darwin-x64/",\ + "packageDependencies": [\ + ["@esbuild/darwin-x64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/freebsd-arm64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-freebsd-arm64-npm-0.25.11-50768f1198/node_modules/@esbuild/freebsd-arm64/",\ + "packageDependencies": [\ + ["@esbuild/freebsd-arm64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/freebsd-x64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-freebsd-x64-npm-0.25.11-1d45bfa37a/node_modules/@esbuild/freebsd-x64/",\ + "packageDependencies": [\ + ["@esbuild/freebsd-x64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-arm", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-arm-npm-0.25.11-841701f23e/node_modules/@esbuild/linux-arm/",\ + "packageDependencies": [\ + ["@esbuild/linux-arm", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-arm64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-arm64-npm-0.25.11-12c19732d2/node_modules/@esbuild/linux-arm64/",\ + "packageDependencies": [\ + ["@esbuild/linux-arm64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-ia32", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-ia32-npm-0.25.11-7ca809f3e7/node_modules/@esbuild/linux-ia32/",\ + "packageDependencies": [\ + ["@esbuild/linux-ia32", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-loong64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-loong64-npm-0.25.11-29b15b8a71/node_modules/@esbuild/linux-loong64/",\ + "packageDependencies": [\ + ["@esbuild/linux-loong64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-mips64el", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-mips64el-npm-0.25.11-1e1a1ddb05/node_modules/@esbuild/linux-mips64el/",\ + "packageDependencies": [\ + ["@esbuild/linux-mips64el", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-ppc64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-ppc64-npm-0.25.11-425afbafa4/node_modules/@esbuild/linux-ppc64/",\ + "packageDependencies": [\ + ["@esbuild/linux-ppc64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-riscv64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-riscv64-npm-0.25.11-0a413d6b2e/node_modules/@esbuild/linux-riscv64/",\ + "packageDependencies": [\ + ["@esbuild/linux-riscv64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-s390x", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-s390x-npm-0.25.11-64e738d134/node_modules/@esbuild/linux-s390x/",\ + "packageDependencies": [\ + ["@esbuild/linux-s390x", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-x64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-x64-npm-0.25.11-9d2ebbe6fb/node_modules/@esbuild/linux-x64/",\ + "packageDependencies": [\ + ["@esbuild/linux-x64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/netbsd-arm64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-netbsd-arm64-npm-0.25.11-fe14373c1b/node_modules/@esbuild/netbsd-arm64/",\ + "packageDependencies": [\ + ["@esbuild/netbsd-arm64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/netbsd-x64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-netbsd-x64-npm-0.25.11-c61d02e17e/node_modules/@esbuild/netbsd-x64/",\ + "packageDependencies": [\ + ["@esbuild/netbsd-x64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/openbsd-arm64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-openbsd-arm64-npm-0.25.11-c940bff779/node_modules/@esbuild/openbsd-arm64/",\ + "packageDependencies": [\ + ["@esbuild/openbsd-arm64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/openbsd-x64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-openbsd-x64-npm-0.25.11-3d1857c563/node_modules/@esbuild/openbsd-x64/",\ + "packageDependencies": [\ + ["@esbuild/openbsd-x64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/openharmony-arm64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-openharmony-arm64-npm-0.25.11-07c6b711dd/node_modules/@esbuild/openharmony-arm64/",\ + "packageDependencies": [\ + ["@esbuild/openharmony-arm64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/sunos-x64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-sunos-x64-npm-0.25.11-d53bce34f5/node_modules/@esbuild/sunos-x64/",\ + "packageDependencies": [\ + ["@esbuild/sunos-x64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/win32-arm64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-arm64-npm-0.25.11-3b3f2890fd/node_modules/@esbuild/win32-arm64/",\ + "packageDependencies": [\ + ["@esbuild/win32-arm64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/win32-ia32", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-ia32-npm-0.25.11-0208320c71/node_modules/@esbuild/win32-ia32/",\ + "packageDependencies": [\ + ["@esbuild/win32-ia32", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/win32-x64", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-x64-npm-0.25.11-a0301442a5/node_modules/@esbuild/win32-x64/",\ + "packageDependencies": [\ + ["@esbuild/win32-x64", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@eslint-community/eslint-utils", [\ ["npm:4.7.0", {\ "packageLocation": "./.yarn/cache/@eslint-community-eslint-utils-npm-4.7.0-47503bfa2a-c0f4f2bd73.zip/node_modules/@eslint-community/eslint-utils/",\ @@ -4328,189 +4953,396 @@ const RAW_RUNTIME_STATE = ["npm:0.2.12", {\ "packageLocation": "./.yarn/cache/@napi-rs-wasm-runtime-npm-0.2.12-8f0d65e253-6d07922c06.zip/node_modules/@napi-rs/wasm-runtime/",\ "packageDependencies": [\ - ["@emnapi/core", "npm:1.4.5"],\ - ["@emnapi/runtime", "npm:1.4.5"],\ - ["@napi-rs/wasm-runtime", "npm:0.2.12"],\ - ["@tybys/wasm-util", "npm:0.10.0"]\ + ["@emnapi/core", "npm:1.4.5"],\ + ["@emnapi/runtime", "npm:1.4.5"],\ + ["@napi-rs/wasm-runtime", "npm:0.2.12"],\ + ["@tybys/wasm-util", "npm:0.10.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@noble/ciphers", [\ + ["npm:1.3.0", {\ + "packageLocation": "./.yarn/cache/@noble-ciphers-npm-1.3.0-73a7db337f-3ba6da645c.zip/node_modules/@noble/ciphers/",\ + "packageDependencies": [\ + ["@noble/ciphers", "npm:1.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@noble/curves", [\ + ["npm:1.9.2", {\ + "packageLocation": "./.yarn/cache/@noble-curves-npm-1.9.2-2584df26a7-21d049ae45.zip/node_modules/@noble/curves/",\ + "packageDependencies": [\ + ["@noble/curves", "npm:1.9.2"],\ + ["@noble/hashes", "npm:1.8.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@noble/hashes", [\ + ["npm:1.8.0", {\ + "packageLocation": "./.yarn/cache/@noble-hashes-npm-1.8.0-a397449e64-06a0b52c81.zip/node_modules/@noble/hashes/",\ + "packageDependencies": [\ + ["@noble/hashes", "npm:1.8.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@nodelib/fs.scandir", [\ + ["npm:2.1.5", {\ + "packageLocation": "./.yarn/cache/@nodelib-fs.scandir-npm-2.1.5-89c67370dd-732c3b6d1b.zip/node_modules/@nodelib/fs.scandir/",\ + "packageDependencies": [\ + ["@nodelib/fs.scandir", "npm:2.1.5"],\ + ["@nodelib/fs.stat", "npm:2.0.5"],\ + ["run-parallel", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@nodelib/fs.stat", [\ + ["npm:2.0.5", {\ + "packageLocation": "./.yarn/cache/@nodelib-fs.stat-npm-2.0.5-01f4dd3030-88dafe5e3e.zip/node_modules/@nodelib/fs.stat/",\ + "packageDependencies": [\ + ["@nodelib/fs.stat", "npm:2.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@nodelib/fs.walk", [\ + ["npm:1.2.8", {\ + "packageLocation": "./.yarn/cache/@nodelib-fs.walk-npm-1.2.8-b4a89da548-db9de047c3.zip/node_modules/@nodelib/fs.walk/",\ + "packageDependencies": [\ + ["@nodelib/fs.scandir", "npm:2.1.5"],\ + ["@nodelib/fs.walk", "npm:1.2.8"],\ + ["fastq", "npm:1.11.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@npmcli/fs", [\ + ["npm:3.1.0", {\ + "packageLocation": "./.yarn/cache/@npmcli-fs-npm-3.1.0-0844a57978-162b4a0b87.zip/node_modules/@npmcli/fs/",\ + "packageDependencies": [\ + ["@npmcli/fs", "npm:3.1.0"],\ + ["semver", "npm:7.7.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@pkgjs/parseargs", [\ + ["npm:0.11.0", {\ + "packageLocation": "./.yarn/cache/@pkgjs-parseargs-npm-0.11.0-cd2a3fe948-5bd7576bb1.zip/node_modules/@pkgjs/parseargs/",\ + "packageDependencies": [\ + ["@pkgjs/parseargs", "npm:0.11.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@pkgr/core", [\ + ["npm:0.2.7", {\ + "packageLocation": "./.yarn/cache/@pkgr-core-npm-0.2.7-212066027b-951f5ebf2f.zip/node_modules/@pkgr/core/",\ + "packageDependencies": [\ + ["@pkgr/core", "npm:0.2.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@polka/url", [\ + ["npm:1.0.0-next.29", {\ + "packageLocation": "./.yarn/cache/@polka-url-npm-1.0.0-next.29-b32b372106-0d58e08184.zip/node_modules/@polka/url/",\ + "packageDependencies": [\ + ["@polka/url", "npm:1.0.0-next.29"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@protobufjs/aspromise", [\ + ["npm:1.1.2", {\ + "packageLocation": "./.yarn/cache/@protobufjs-aspromise-npm-1.1.2-71d00b938f-a83343a468.zip/node_modules/@protobufjs/aspromise/",\ + "packageDependencies": [\ + ["@protobufjs/aspromise", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@protobufjs/base64", [\ + ["npm:1.1.2", {\ + "packageLocation": "./.yarn/cache/@protobufjs-base64-npm-1.1.2-cd8ca6814a-eec925e681.zip/node_modules/@protobufjs/base64/",\ + "packageDependencies": [\ + ["@protobufjs/base64", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@protobufjs/codegen", [\ + ["npm:2.0.4", {\ + "packageLocation": "./.yarn/cache/@protobufjs-codegen-npm-2.0.4-36e188bbe6-26ae337c56.zip/node_modules/@protobufjs/codegen/",\ + "packageDependencies": [\ + ["@protobufjs/codegen", "npm:2.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@protobufjs/eventemitter", [\ + ["npm:1.1.0", {\ + "packageLocation": "./.yarn/cache/@protobufjs-eventemitter-npm-1.1.0-029cc7d431-1eb0a75180.zip/node_modules/@protobufjs/eventemitter/",\ + "packageDependencies": [\ + ["@protobufjs/eventemitter", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@protobufjs/fetch", [\ + ["npm:1.1.0", {\ + "packageLocation": "./.yarn/cache/@protobufjs-fetch-npm-1.1.0-ca857b7df4-cda6a3dc2d.zip/node_modules/@protobufjs/fetch/",\ + "packageDependencies": [\ + ["@protobufjs/aspromise", "npm:1.1.2"],\ + ["@protobufjs/fetch", "npm:1.1.0"],\ + ["@protobufjs/inquire", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@protobufjs/float", [\ + ["npm:1.0.2", {\ + "packageLocation": "./.yarn/cache/@protobufjs-float-npm-1.0.2-5678f64d08-18f2bdede7.zip/node_modules/@protobufjs/float/",\ + "packageDependencies": [\ + ["@protobufjs/float", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@protobufjs/inquire", [\ + ["npm:1.1.0", {\ + "packageLocation": "./.yarn/cache/@protobufjs-inquire-npm-1.1.0-3c7759e9ce-64372482ef.zip/node_modules/@protobufjs/inquire/",\ + "packageDependencies": [\ + ["@protobufjs/inquire", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@protobufjs/path", [\ + ["npm:1.1.2", {\ + "packageLocation": "./.yarn/cache/@protobufjs-path-npm-1.1.2-641d08de76-cece0a938e.zip/node_modules/@protobufjs/path/",\ + "packageDependencies": [\ + ["@protobufjs/path", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@protobufjs/pool", [\ + ["npm:1.1.0", {\ + "packageLocation": "./.yarn/cache/@protobufjs-pool-npm-1.1.0-47a76f96a1-eda2718b7f.zip/node_modules/@protobufjs/pool/",\ + "packageDependencies": [\ + ["@protobufjs/pool", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@protobufjs/utf8", [\ + ["npm:1.1.0", {\ + "packageLocation": "./.yarn/cache/@protobufjs-utf8-npm-1.1.0-02c590807c-a3fe31fe3f.zip/node_modules/@protobufjs/utf8/",\ + "packageDependencies": [\ + ["@protobufjs/utf8", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-android-arm-eabi", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-android-arm-eabi-npm-4.52.5-91bccbb620/node_modules/@rollup/rollup-android-arm-eabi/",\ + "packageDependencies": [\ + ["@rollup/rollup-android-arm-eabi", "npm:4.52.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-android-arm64", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-android-arm64-npm-4.52.5-39198cd2c3/node_modules/@rollup/rollup-android-arm64/",\ + "packageDependencies": [\ + ["@rollup/rollup-android-arm64", "npm:4.52.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-darwin-arm64", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-darwin-arm64-npm-4.52.5-f0e040756b/node_modules/@rollup/rollup-darwin-arm64/",\ + "packageDependencies": [\ + ["@rollup/rollup-darwin-arm64", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@noble/ciphers", [\ - ["npm:1.3.0", {\ - "packageLocation": "./.yarn/cache/@noble-ciphers-npm-1.3.0-73a7db337f-3ba6da645c.zip/node_modules/@noble/ciphers/",\ + ["@rollup/rollup-darwin-x64", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-darwin-x64-npm-4.52.5-b2c9fa6b38/node_modules/@rollup/rollup-darwin-x64/",\ "packageDependencies": [\ - ["@noble/ciphers", "npm:1.3.0"]\ + ["@rollup/rollup-darwin-x64", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@noble/curves", [\ - ["npm:1.9.2", {\ - "packageLocation": "./.yarn/cache/@noble-curves-npm-1.9.2-2584df26a7-21d049ae45.zip/node_modules/@noble/curves/",\ + ["@rollup/rollup-freebsd-arm64", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-freebsd-arm64-npm-4.52.5-5df688ad94/node_modules/@rollup/rollup-freebsd-arm64/",\ "packageDependencies": [\ - ["@noble/curves", "npm:1.9.2"],\ - ["@noble/hashes", "npm:1.8.0"]\ + ["@rollup/rollup-freebsd-arm64", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@noble/hashes", [\ - ["npm:1.8.0", {\ - "packageLocation": "./.yarn/cache/@noble-hashes-npm-1.8.0-a397449e64-06a0b52c81.zip/node_modules/@noble/hashes/",\ + ["@rollup/rollup-freebsd-x64", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-freebsd-x64-npm-4.52.5-e90b3080a3/node_modules/@rollup/rollup-freebsd-x64/",\ "packageDependencies": [\ - ["@noble/hashes", "npm:1.8.0"]\ + ["@rollup/rollup-freebsd-x64", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@nodelib/fs.scandir", [\ - ["npm:2.1.5", {\ - "packageLocation": "./.yarn/cache/@nodelib-fs.scandir-npm-2.1.5-89c67370dd-732c3b6d1b.zip/node_modules/@nodelib/fs.scandir/",\ + ["@rollup/rollup-linux-arm-gnueabihf", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm-gnueabihf-npm-4.52.5-1f919522e8/node_modules/@rollup/rollup-linux-arm-gnueabihf/",\ "packageDependencies": [\ - ["@nodelib/fs.scandir", "npm:2.1.5"],\ - ["@nodelib/fs.stat", "npm:2.0.5"],\ - ["run-parallel", "npm:1.2.0"]\ + ["@rollup/rollup-linux-arm-gnueabihf", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@nodelib/fs.stat", [\ - ["npm:2.0.5", {\ - "packageLocation": "./.yarn/cache/@nodelib-fs.stat-npm-2.0.5-01f4dd3030-88dafe5e3e.zip/node_modules/@nodelib/fs.stat/",\ + ["@rollup/rollup-linux-arm-musleabihf", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm-musleabihf-npm-4.52.5-d02c33cc59/node_modules/@rollup/rollup-linux-arm-musleabihf/",\ "packageDependencies": [\ - ["@nodelib/fs.stat", "npm:2.0.5"]\ + ["@rollup/rollup-linux-arm-musleabihf", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@nodelib/fs.walk", [\ - ["npm:1.2.8", {\ - "packageLocation": "./.yarn/cache/@nodelib-fs.walk-npm-1.2.8-b4a89da548-db9de047c3.zip/node_modules/@nodelib/fs.walk/",\ + ["@rollup/rollup-linux-arm64-gnu", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm64-gnu-npm-4.52.5-900c2728ed/node_modules/@rollup/rollup-linux-arm64-gnu/",\ "packageDependencies": [\ - ["@nodelib/fs.scandir", "npm:2.1.5"],\ - ["@nodelib/fs.walk", "npm:1.2.8"],\ - ["fastq", "npm:1.11.0"]\ + ["@rollup/rollup-linux-arm64-gnu", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@npmcli/fs", [\ - ["npm:3.1.0", {\ - "packageLocation": "./.yarn/cache/@npmcli-fs-npm-3.1.0-0844a57978-162b4a0b87.zip/node_modules/@npmcli/fs/",\ + ["@rollup/rollup-linux-arm64-musl", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm64-musl-npm-4.52.5-eea22bf604/node_modules/@rollup/rollup-linux-arm64-musl/",\ "packageDependencies": [\ - ["@npmcli/fs", "npm:3.1.0"],\ - ["semver", "npm:7.7.3"]\ + ["@rollup/rollup-linux-arm64-musl", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@pkgjs/parseargs", [\ - ["npm:0.11.0", {\ - "packageLocation": "./.yarn/cache/@pkgjs-parseargs-npm-0.11.0-cd2a3fe948-5bd7576bb1.zip/node_modules/@pkgjs/parseargs/",\ + ["@rollup/rollup-linux-loong64-gnu", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-loong64-gnu-npm-4.52.5-9d8d2c7a57/node_modules/@rollup/rollup-linux-loong64-gnu/",\ "packageDependencies": [\ - ["@pkgjs/parseargs", "npm:0.11.0"]\ + ["@rollup/rollup-linux-loong64-gnu", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@pkgr/core", [\ - ["npm:0.2.7", {\ - "packageLocation": "./.yarn/cache/@pkgr-core-npm-0.2.7-212066027b-951f5ebf2f.zip/node_modules/@pkgr/core/",\ + ["@rollup/rollup-linux-ppc64-gnu", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-ppc64-gnu-npm-4.52.5-4751025c25/node_modules/@rollup/rollup-linux-ppc64-gnu/",\ "packageDependencies": [\ - ["@pkgr/core", "npm:0.2.7"]\ + ["@rollup/rollup-linux-ppc64-gnu", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@protobufjs/aspromise", [\ - ["npm:1.1.2", {\ - "packageLocation": "./.yarn/cache/@protobufjs-aspromise-npm-1.1.2-71d00b938f-a83343a468.zip/node_modules/@protobufjs/aspromise/",\ + ["@rollup/rollup-linux-riscv64-gnu", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-riscv64-gnu-npm-4.52.5-758dfadc97/node_modules/@rollup/rollup-linux-riscv64-gnu/",\ "packageDependencies": [\ - ["@protobufjs/aspromise", "npm:1.1.2"]\ + ["@rollup/rollup-linux-riscv64-gnu", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@protobufjs/base64", [\ - ["npm:1.1.2", {\ - "packageLocation": "./.yarn/cache/@protobufjs-base64-npm-1.1.2-cd8ca6814a-eec925e681.zip/node_modules/@protobufjs/base64/",\ + ["@rollup/rollup-linux-riscv64-musl", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-riscv64-musl-npm-4.52.5-51fd2db0da/node_modules/@rollup/rollup-linux-riscv64-musl/",\ "packageDependencies": [\ - ["@protobufjs/base64", "npm:1.1.2"]\ + ["@rollup/rollup-linux-riscv64-musl", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@protobufjs/codegen", [\ - ["npm:2.0.4", {\ - "packageLocation": "./.yarn/cache/@protobufjs-codegen-npm-2.0.4-36e188bbe6-26ae337c56.zip/node_modules/@protobufjs/codegen/",\ + ["@rollup/rollup-linux-s390x-gnu", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-s390x-gnu-npm-4.52.5-790b80bdb4/node_modules/@rollup/rollup-linux-s390x-gnu/",\ "packageDependencies": [\ - ["@protobufjs/codegen", "npm:2.0.4"]\ + ["@rollup/rollup-linux-s390x-gnu", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@protobufjs/eventemitter", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/@protobufjs-eventemitter-npm-1.1.0-029cc7d431-1eb0a75180.zip/node_modules/@protobufjs/eventemitter/",\ + ["@rollup/rollup-linux-x64-gnu", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-x64-gnu-npm-4.52.5-9555c91c67/node_modules/@rollup/rollup-linux-x64-gnu/",\ "packageDependencies": [\ - ["@protobufjs/eventemitter", "npm:1.1.0"]\ + ["@rollup/rollup-linux-x64-gnu", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@protobufjs/fetch", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/@protobufjs-fetch-npm-1.1.0-ca857b7df4-cda6a3dc2d.zip/node_modules/@protobufjs/fetch/",\ + ["@rollup/rollup-linux-x64-musl", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-x64-musl-npm-4.52.5-52edb32969/node_modules/@rollup/rollup-linux-x64-musl/",\ "packageDependencies": [\ - ["@protobufjs/aspromise", "npm:1.1.2"],\ - ["@protobufjs/fetch", "npm:1.1.0"],\ - ["@protobufjs/inquire", "npm:1.1.0"]\ + ["@rollup/rollup-linux-x64-musl", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@protobufjs/float", [\ - ["npm:1.0.2", {\ - "packageLocation": "./.yarn/cache/@protobufjs-float-npm-1.0.2-5678f64d08-18f2bdede7.zip/node_modules/@protobufjs/float/",\ + ["@rollup/rollup-openharmony-arm64", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-openharmony-arm64-npm-4.52.5-7214ffa3cf/node_modules/@rollup/rollup-openharmony-arm64/",\ "packageDependencies": [\ - ["@protobufjs/float", "npm:1.0.2"]\ + ["@rollup/rollup-openharmony-arm64", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@protobufjs/inquire", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/@protobufjs-inquire-npm-1.1.0-3c7759e9ce-64372482ef.zip/node_modules/@protobufjs/inquire/",\ + ["@rollup/rollup-win32-arm64-msvc", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-arm64-msvc-npm-4.52.5-4c7f55fb4b/node_modules/@rollup/rollup-win32-arm64-msvc/",\ "packageDependencies": [\ - ["@protobufjs/inquire", "npm:1.1.0"]\ + ["@rollup/rollup-win32-arm64-msvc", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@protobufjs/path", [\ - ["npm:1.1.2", {\ - "packageLocation": "./.yarn/cache/@protobufjs-path-npm-1.1.2-641d08de76-cece0a938e.zip/node_modules/@protobufjs/path/",\ + ["@rollup/rollup-win32-ia32-msvc", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-ia32-msvc-npm-4.52.5-92cc876589/node_modules/@rollup/rollup-win32-ia32-msvc/",\ "packageDependencies": [\ - ["@protobufjs/path", "npm:1.1.2"]\ + ["@rollup/rollup-win32-ia32-msvc", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@protobufjs/pool", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/@protobufjs-pool-npm-1.1.0-47a76f96a1-eda2718b7f.zip/node_modules/@protobufjs/pool/",\ + ["@rollup/rollup-win32-x64-gnu", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-x64-gnu-npm-4.52.5-3d8a241941/node_modules/@rollup/rollup-win32-x64-gnu/",\ "packageDependencies": [\ - ["@protobufjs/pool", "npm:1.1.0"]\ + ["@rollup/rollup-win32-x64-gnu", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ ]],\ - ["@protobufjs/utf8", [\ - ["npm:1.1.0", {\ - "packageLocation": "./.yarn/cache/@protobufjs-utf8-npm-1.1.0-02c590807c-a3fe31fe3f.zip/node_modules/@protobufjs/utf8/",\ + ["@rollup/rollup-win32-x64-msvc", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-x64-msvc-npm-4.52.5-491fac4465/node_modules/@rollup/rollup-win32-x64-msvc/",\ "packageDependencies": [\ - ["@protobufjs/utf8", "npm:1.1.0"]\ + ["@rollup/rollup-win32-x64-msvc", "npm:4.52.5"]\ ],\ "linkType": "HARD"\ }]\ @@ -4611,6 +5443,45 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@testing-library/dom", [\ + ["npm:10.4.1", {\ + "packageLocation": "./.yarn/cache/@testing-library-dom-npm-10.4.1-928d6cd2a7-19ce048012.zip/node_modules/@testing-library/dom/",\ + "packageDependencies": [\ + ["@babel/code-frame", "npm:7.27.1"],\ + ["@babel/runtime", "npm:7.28.4"],\ + ["@testing-library/dom", "npm:10.4.1"],\ + ["@types/aria-query", "npm:5.0.4"],\ + ["aria-query", "npm:5.3.0"],\ + ["dom-accessibility-api", "npm:0.5.16"],\ + ["lz-string", "npm:1.5.0"],\ + ["picocolors", "npm:1.1.1"],\ + ["pretty-format", "npm:27.5.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@testing-library/user-event", [\ + ["npm:14.6.1", {\ + "packageLocation": "./.yarn/cache/@testing-library-user-event-npm-14.6.1-5da7e1d4e2-75fea130a5.zip/node_modules/@testing-library/user-event/",\ + "packageDependencies": [\ + ["@testing-library/user-event", "npm:14.6.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:3990c67f170cba2c738e3b9ef477d748b6ae151eb3c4cc822b5565a4d50e34966fdd0ddeb5815c1698e61316dfda8064e590d635c80e3d36c9ab207805306abc#npm:14.6.1", {\ + "packageLocation": "./.yarn/__virtual__/@testing-library-user-event-virtual-d6d3cfba6e/0/cache/@testing-library-user-event-npm-14.6.1-5da7e1d4e2-75fea130a5.zip/node_modules/@testing-library/user-event/",\ + "packageDependencies": [\ + ["@testing-library/dom", "npm:10.4.1"],\ + ["@testing-library/user-event", "virtual:3990c67f170cba2c738e3b9ef477d748b6ae151eb3c4cc822b5565a4d50e34966fdd0ddeb5815c1698e61316dfda8064e590d635c80e3d36c9ab207805306abc#npm:14.6.1"],\ + ["@types/testing-library__dom", null]\ + ],\ + "packagePeers": [\ + "@testing-library/dom",\ + "@types/testing-library__dom"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@tootallnate/once", [\ ["npm:2.0.0", {\ "packageLocation": "./.yarn/cache/@tootallnate-once-npm-2.0.0-e36cf4f140-073bfa5480.zip/node_modules/@tootallnate/once/",\ @@ -4640,6 +5511,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@types/aria-query", [\ + ["npm:5.0.4", {\ + "packageLocation": "./.yarn/cache/@types-aria-query-npm-5.0.4-51d2b61619-dc667bc6a3.zip/node_modules/@types/aria-query/",\ + "packageDependencies": [\ + ["@types/aria-query", "npm:5.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@types/base64-js", [\ ["npm:1.3.0", {\ "packageLocation": "./.yarn/cache/@types-base64-js-npm-1.3.0-9eadeb8d0d-6db015a703.zip/node_modules/@types/base64-js/",\ @@ -4660,6 +5540,17 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@types/chai", [\ + ["npm:5.2.3", {\ + "packageLocation": "./.yarn/cache/@types-chai-npm-5.2.3-5f61dbddda-e0ef1de3b6.zip/node_modules/@types/chai/",\ + "packageDependencies": [\ + ["@types/chai", "npm:5.2.3"],\ + ["@types/deep-eql", "npm:4.0.2"],\ + ["assertion-error", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@types/connect", [\ ["npm:3.4.34", {\ "packageLocation": "./.yarn/cache/@types-connect-npm-3.4.34-39e4f7bb55-e60c2843dc.zip/node_modules/@types/connect/",\ @@ -4701,6 +5592,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@types/deep-eql", [\ + ["npm:4.0.2", {\ + "packageLocation": "./.yarn/cache/@types-deep-eql-npm-4.0.2-e6bc68cc92-bf3f811843.zip/node_modules/@types/deep-eql/",\ + "packageDependencies": [\ + ["@types/deep-eql", "npm:4.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@types/eslint", [\ ["npm:7.2.10", {\ "packageLocation": "./.yarn/cache/@types-eslint-npm-7.2.10-80d8a98db0-f718ccbe07.zip/node_modules/@types/eslint/",\ @@ -5408,6 +6308,187 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@vitest/browser", [\ + ["npm:3.2.4", {\ + "packageLocation": "./.yarn/cache/@vitest-browser-npm-3.2.4-72d04aa3a1-0db39daad6.zip/node_modules/@vitest/browser/",\ + "packageDependencies": [\ + ["@vitest/browser", "npm:3.2.4"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:3.2.4", {\ + "packageLocation": "./.yarn/__virtual__/@vitest-browser-virtual-3990c67f17/0/cache/@vitest-browser-npm-3.2.4-72d04aa3a1-0db39daad6.zip/node_modules/@vitest/browser/",\ + "packageDependencies": [\ + ["@testing-library/dom", "npm:10.4.1"],\ + ["@testing-library/user-event", "virtual:3990c67f170cba2c738e3b9ef477d748b6ae151eb3c4cc822b5565a4d50e34966fdd0ddeb5815c1698e61316dfda8064e590d635c80e3d36c9ab207805306abc#npm:14.6.1"],\ + ["@types/playwright", null],\ + ["@types/safaridriver", null],\ + ["@types/vitest", null],\ + ["@types/webdriverio", null],\ + ["@vitest/browser", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:3.2.4"],\ + ["@vitest/mocker", "virtual:3990c67f170cba2c738e3b9ef477d748b6ae151eb3c4cc822b5565a4d50e34966fdd0ddeb5815c1698e61316dfda8064e590d635c80e3d36c9ab207805306abc#npm:3.2.4"],\ + ["@vitest/utils", "npm:3.2.4"],\ + ["magic-string", "npm:0.30.21"],\ + ["playwright", "npm:1.56.1"],\ + ["safaridriver", null],\ + ["sirv", "npm:3.0.2"],\ + ["tinyrainbow", "npm:2.0.0"],\ + ["vitest", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:3.2.4"],\ + ["webdriverio", null],\ + ["ws", "virtual:3990c67f170cba2c738e3b9ef477d748b6ae151eb3c4cc822b5565a4d50e34966fdd0ddeb5815c1698e61316dfda8064e590d635c80e3d36c9ab207805306abc#npm:8.18.3"]\ + ],\ + "packagePeers": [\ + "@types/playwright",\ + "@types/safaridriver",\ + "@types/vitest",\ + "@types/webdriverio",\ + "playwright",\ + "safaridriver",\ + "vitest",\ + "webdriverio"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/expect", [\ + ["npm:3.2.4", {\ + "packageLocation": "./.yarn/cache/@vitest-expect-npm-3.2.4-97c526d5cc-7586104e3f.zip/node_modules/@vitest/expect/",\ + "packageDependencies": [\ + ["@types/chai", "npm:5.2.3"],\ + ["@vitest/expect", "npm:3.2.4"],\ + ["@vitest/spy", "npm:3.2.4"],\ + ["@vitest/utils", "npm:3.2.4"],\ + ["chai", "npm:5.3.3"],\ + ["tinyrainbow", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/mocker", [\ + ["npm:3.2.4", {\ + "packageLocation": "./.yarn/cache/@vitest-mocker-npm-3.2.4-48badb1f19-f7a4aea19b.zip/node_modules/@vitest/mocker/",\ + "packageDependencies": [\ + ["@vitest/mocker", "npm:3.2.4"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:36e27e6f9f58534344f1f7ebe60cf4da0a991405275e95d8efd7694066e489a80ffc74b01d84c8e4b519c8339cd9843a6e9a827d08bac126d634dc88371410ba#npm:3.2.4", {\ + "packageLocation": "./.yarn/__virtual__/@vitest-mocker-virtual-a18c33b1a6/0/cache/@vitest-mocker-npm-3.2.4-48badb1f19-f7a4aea19b.zip/node_modules/@vitest/mocker/",\ + "packageDependencies": [\ + ["@types/msw", null],\ + ["@types/vite", null],\ + ["@vitest/mocker", "virtual:36e27e6f9f58534344f1f7ebe60cf4da0a991405275e95d8efd7694066e489a80ffc74b01d84c8e4b519c8339cd9843a6e9a827d08bac126d634dc88371410ba#npm:3.2.4"],\ + ["@vitest/spy", "npm:3.2.4"],\ + ["estree-walker", "npm:3.0.3"],\ + ["magic-string", "npm:0.30.21"],\ + ["msw", null],\ + ["vite", "virtual:36e27e6f9f58534344f1f7ebe60cf4da0a991405275e95d8efd7694066e489a80ffc74b01d84c8e4b519c8339cd9843a6e9a827d08bac126d634dc88371410ba#npm:7.1.12"]\ + ],\ + "packagePeers": [\ + "@types/msw",\ + "@types/vite",\ + "msw",\ + "vite"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:3990c67f170cba2c738e3b9ef477d748b6ae151eb3c4cc822b5565a4d50e34966fdd0ddeb5815c1698e61316dfda8064e590d635c80e3d36c9ab207805306abc#npm:3.2.4", {\ + "packageLocation": "./.yarn/__virtual__/@vitest-mocker-virtual-0c127bc2de/0/cache/@vitest-mocker-npm-3.2.4-48badb1f19-f7a4aea19b.zip/node_modules/@vitest/mocker/",\ + "packageDependencies": [\ + ["@types/msw", null],\ + ["@types/vite", null],\ + ["@vitest/mocker", "virtual:3990c67f170cba2c738e3b9ef477d748b6ae151eb3c4cc822b5565a4d50e34966fdd0ddeb5815c1698e61316dfda8064e590d635c80e3d36c9ab207805306abc#npm:3.2.4"],\ + ["@vitest/spy", "npm:3.2.4"],\ + ["estree-walker", "npm:3.0.3"],\ + ["magic-string", "npm:0.30.21"],\ + ["msw", null],\ + ["vite", null]\ + ],\ + "packagePeers": [\ + "@types/msw",\ + "@types/vite",\ + "msw",\ + "vite"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:7e0d57c4b8291834af7caaec5cf40315859532aaf32248bc99ddecd6a9473a0e852b545b5d9b4e0d3ca39051839ba61f77e338e225abe8757fa7da262b635786#npm:3.2.4", {\ + "packageLocation": "./.yarn/__virtual__/@vitest-mocker-virtual-dd47fb6e02/0/cache/@vitest-mocker-npm-3.2.4-48badb1f19-f7a4aea19b.zip/node_modules/@vitest/mocker/",\ + "packageDependencies": [\ + ["@types/msw", null],\ + ["@types/vite", null],\ + ["@vitest/mocker", "virtual:7e0d57c4b8291834af7caaec5cf40315859532aaf32248bc99ddecd6a9473a0e852b545b5d9b4e0d3ca39051839ba61f77e338e225abe8757fa7da262b635786#npm:3.2.4"],\ + ["@vitest/spy", "npm:3.2.4"],\ + ["estree-walker", "npm:3.0.3"],\ + ["magic-string", "npm:0.30.21"],\ + ["msw", null],\ + ["vite", "virtual:cb1d79df3b4901790c8808db427c397bd3f613c8181bce1e1c99f654fcf8f1484eb3efeaaa7477306f7c95ff2d882d1e762cb59fa3743be7fbfd628566f4b6c1#npm:7.1.12"]\ + ],\ + "packagePeers": [\ + "@types/msw",\ + "@types/vite",\ + "msw",\ + "vite"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/pretty-format", [\ + ["npm:3.2.4", {\ + "packageLocation": "./.yarn/cache/@vitest-pretty-format-npm-3.2.4-d7da0d3faf-5ad7d4278e.zip/node_modules/@vitest/pretty-format/",\ + "packageDependencies": [\ + ["@vitest/pretty-format", "npm:3.2.4"],\ + ["tinyrainbow", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/runner", [\ + ["npm:3.2.4", {\ + "packageLocation": "./.yarn/cache/@vitest-runner-npm-3.2.4-b2e96befcb-e8be51666c.zip/node_modules/@vitest/runner/",\ + "packageDependencies": [\ + ["@vitest/runner", "npm:3.2.4"],\ + ["@vitest/utils", "npm:3.2.4"],\ + ["pathe", "npm:2.0.3"],\ + ["strip-literal", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/snapshot", [\ + ["npm:3.2.4", {\ + "packageLocation": "./.yarn/cache/@vitest-snapshot-npm-3.2.4-c43292ea8b-f8301a3d7d.zip/node_modules/@vitest/snapshot/",\ + "packageDependencies": [\ + ["@vitest/pretty-format", "npm:3.2.4"],\ + ["@vitest/snapshot", "npm:3.2.4"],\ + ["magic-string", "npm:0.30.21"],\ + ["pathe", "npm:2.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/spy", [\ + ["npm:3.2.4", {\ + "packageLocation": "./.yarn/cache/@vitest-spy-npm-3.2.4-ed1c68e965-6ebf0b4697.zip/node_modules/@vitest/spy/",\ + "packageDependencies": [\ + ["@vitest/spy", "npm:3.2.4"],\ + ["tinyspy", "npm:4.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/utils", [\ + ["npm:3.2.4", {\ + "packageLocation": "./.yarn/cache/@vitest-utils-npm-3.2.4-2d32b4da53-024a9b8c8b.zip/node_modules/@vitest/utils/",\ + "packageDependencies": [\ + ["@vitest/pretty-format", "npm:3.2.4"],\ + ["@vitest/utils", "npm:3.2.4"],\ + ["loupe", "npm:3.2.1"],\ + ["tinyrainbow", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@webassemblyjs/ast", [\ ["npm:1.14.1", {\ "packageLocation": "./.yarn/cache/@webassemblyjs-ast-npm-1.14.1-3c3be7e1c7-67a59be8ed.zip/node_modules/@webassemblyjs/ast/",\ @@ -6567,6 +7648,13 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ + ["npm:5.2.0", {\ + "packageLocation": "./.yarn/cache/ansi-styles-npm-5.2.0-72fc7003e3-9c4ca80eb3.zip/node_modules/ansi-styles/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:5.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:6.2.1", {\ "packageLocation": "./.yarn/cache/ansi-styles-npm-6.2.1-d43647018c-5d1ec38c12.zip/node_modules/ansi-styles/",\ "packageDependencies": [\ @@ -6642,6 +7730,16 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["aria-query", [\ + ["npm:5.3.0", {\ + "packageLocation": "./.yarn/cache/aria-query-npm-5.3.0-76575ac83b-2bff0d4eba.zip/node_modules/aria-query/",\ + "packageDependencies": [\ + ["aria-query", "npm:5.3.0"],\ + ["dequal", "npm:2.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["array-buffer-byte-length", [\ ["npm:1.0.2", {\ "packageLocation": "./.yarn/cache/array-buffer-byte-length-npm-1.0.2-c2be1e97e0-74e1d2d996.zip/node_modules/array-buffer-byte-length/",\ @@ -6728,6 +7826,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["assertion-error", [\ + ["npm:2.0.1", {\ + "packageLocation": "./.yarn/cache/assertion-error-npm-2.0.1-8169d136f2-bbbcb117ac.zip/node_modules/assertion-error/",\ + "packageDependencies": [\ + ["assertion-error", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["async-function", [\ ["npm:1.0.0", {\ "packageLocation": "./.yarn/cache/async-function-npm-1.0.0-a81667ebcd-669a32c2cb.zip/node_modules/async-function/",\ @@ -6916,6 +8023,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["cac", [\ + ["npm:6.7.14", {\ + "packageLocation": "./.yarn/cache/cac-npm-6.7.14-c46284e425-4ee06aaa7b.zip/node_modules/cac/",\ + "packageDependencies": [\ + ["cac", "npm:6.7.14"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["cacache", [\ ["npm:17.1.4", {\ "packageLocation": "./.yarn/cache/cacache-npm-17.1.4-51ef53d0a8-21749dcf98.zip/node_modules/cacache/",\ @@ -7023,6 +8139,20 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["chai", [\ + ["npm:5.3.3", {\ + "packageLocation": "./.yarn/cache/chai-npm-5.3.3-ebef71cdac-b360fd4d38.zip/node_modules/chai/",\ + "packageDependencies": [\ + ["assertion-error", "npm:2.0.1"],\ + ["chai", "npm:5.3.3"],\ + ["check-error", "npm:2.1.1"],\ + ["deep-eql", "npm:5.0.2"],\ + ["loupe", "npm:3.2.1"],\ + ["pathval", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["chalk", [\ ["npm:4.1.2", {\ "packageLocation": "./.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-4a3fef5cc3.zip/node_modules/chalk/",\ @@ -7034,6 +8164,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["check-error", [\ + ["npm:2.1.1", {\ + "packageLocation": "./.yarn/cache/check-error-npm-2.1.1-34e4ef357e-979f13ecca.zip/node_modules/check-error/",\ + "packageDependencies": [\ + ["check-error", "npm:2.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["chokidar", [\ ["npm:3.5.3", {\ "packageLocation": "./.yarn/cache/chokidar-npm-3.5.3-c5f9b0a56a-1076953093.zip/node_modules/chokidar/",\ @@ -7041,7 +8180,7 @@ const RAW_RUNTIME_STATE = ["anymatch", "npm:3.1.2"],\ ["braces", "npm:3.0.3"],\ ["chokidar", "npm:3.5.3"],\ - ["fsevents", "patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ ["glob-parent", "npm:5.1.2"],\ ["is-binary-path", "npm:2.1.0"],\ ["is-glob", "npm:4.0.3"],\ @@ -7332,6 +8471,7 @@ const RAW_RUNTIME_STATE = ["@eslint/js", "npm:9.32.0"],\ ["@typescript-eslint/eslint-plugin", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:8.46.2"],\ ["@typescript-eslint/parser", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:8.46.2"],\ + ["@vitest/browser", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:3.2.4"],\ ["cosmjs-monorepo-root", "workspace:."],\ ["eslint", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:9.32.0"],\ ["eslint-config-prettier", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:8.3.0"],\ @@ -7340,8 +8480,11 @@ const RAW_RUNTIME_STATE = ["eslint-plugin-prettier", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:5.5.0"],\ ["eslint-plugin-simple-import-sort", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:7.0.0"],\ ["globals", "npm:16.3.0"],\ + ["playwright", "npm:1.56.1"],\ ["prettier", "npm:3.6.2"],\ - ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"]\ + ["ses", "npm:1.13.1"],\ + ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["vitest", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:3.2.4"]\ ],\ "linkType": "SOFT"\ }]\ @@ -7526,6 +8669,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["deep-eql", [\ + ["npm:5.0.2", {\ + "packageLocation": "./.yarn/cache/deep-eql-npm-5.0.2-3bce58289f-7102cf3b7b.zip/node_modules/deep-eql/",\ + "packageDependencies": [\ + ["deep-eql", "npm:5.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["deep-equal", [\ ["npm:1.0.1", {\ "packageLocation": "./.yarn/cache/deep-equal-npm-1.0.1-f05565c4e5-bef838ef98.zip/node_modules/deep-equal/",\ @@ -7612,6 +8764,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["dequal", [\ + ["npm:2.0.3", {\ + "packageLocation": "./.yarn/cache/dequal-npm-2.0.3-53a630c60e-f98860cdf5.zip/node_modules/dequal/",\ + "packageDependencies": [\ + ["dequal", "npm:2.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["destroy", [\ ["npm:1.2.0", {\ "packageLocation": "./.yarn/cache/destroy-npm-1.2.0-6a511802e2-bd7633942f.zip/node_modules/destroy/",\ @@ -7649,6 +8810,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["dom-accessibility-api", [\ + ["npm:0.5.16", {\ + "packageLocation": "./.yarn/cache/dom-accessibility-api-npm-0.5.16-d3e2310666-b2c2eda4fa.zip/node_modules/dom-accessibility-api/",\ + "packageDependencies": [\ + ["dom-accessibility-api", "npm:0.5.16"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["dom-serialize", [\ ["npm:2.2.1", {\ "packageLocation": "./.yarn/cache/dom-serialize-npm-2.2.1-01ec16503e-ceb6e62b73.zip/node_modules/dom-serialize/",\ @@ -7973,6 +9143,41 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["esbuild", [\ + ["npm:0.25.11", {\ + "packageLocation": "./.yarn/unplugged/esbuild-npm-0.25.11-44fa5ada25/node_modules/esbuild/",\ + "packageDependencies": [\ + ["@esbuild/aix-ppc64", "npm:0.25.11"],\ + ["@esbuild/android-arm", "npm:0.25.11"],\ + ["@esbuild/android-arm64", "npm:0.25.11"],\ + ["@esbuild/android-x64", "npm:0.25.11"],\ + ["@esbuild/darwin-arm64", "npm:0.25.11"],\ + ["@esbuild/darwin-x64", "npm:0.25.11"],\ + ["@esbuild/freebsd-arm64", "npm:0.25.11"],\ + ["@esbuild/freebsd-x64", "npm:0.25.11"],\ + ["@esbuild/linux-arm", "npm:0.25.11"],\ + ["@esbuild/linux-arm64", "npm:0.25.11"],\ + ["@esbuild/linux-ia32", "npm:0.25.11"],\ + ["@esbuild/linux-loong64", "npm:0.25.11"],\ + ["@esbuild/linux-mips64el", "npm:0.25.11"],\ + ["@esbuild/linux-ppc64", "npm:0.25.11"],\ + ["@esbuild/linux-riscv64", "npm:0.25.11"],\ + ["@esbuild/linux-s390x", "npm:0.25.11"],\ + ["@esbuild/linux-x64", "npm:0.25.11"],\ + ["@esbuild/netbsd-arm64", "npm:0.25.11"],\ + ["@esbuild/netbsd-x64", "npm:0.25.11"],\ + ["@esbuild/openbsd-arm64", "npm:0.25.11"],\ + ["@esbuild/openbsd-x64", "npm:0.25.11"],\ + ["@esbuild/openharmony-arm64", "npm:0.25.11"],\ + ["@esbuild/sunos-x64", "npm:0.25.11"],\ + ["@esbuild/win32-arm64", "npm:0.25.11"],\ + ["@esbuild/win32-ia32", "npm:0.25.11"],\ + ["@esbuild/win32-x64", "npm:0.25.11"],\ + ["esbuild", "npm:0.25.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["escalade", [\ ["npm:3.2.0", {\ "packageLocation": "./.yarn/cache/escalade-npm-3.2.0-19b50dd48f-ced4dd3a78.zip/node_modules/escalade/",\ @@ -8138,7 +9343,7 @@ const RAW_RUNTIME_STATE = ["get-tsconfig", "npm:4.10.1"],\ ["is-bun-module", "npm:2.0.0"],\ ["stable-hash-x", "npm:0.2.0"],\ - ["tinyglobby", "npm:0.2.14"],\ + ["tinyglobby", "npm:0.2.15"],\ ["unrs-resolver", "npm:1.11.1"]\ ],\ "packagePeers": [\ @@ -8383,6 +9588,16 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["estree-walker", [\ + ["npm:3.0.3", {\ + "packageLocation": "./.yarn/cache/estree-walker-npm-3.0.3-0372979673-c12e3c2b26.zip/node_modules/estree-walker/",\ + "packageDependencies": [\ + ["@types/estree", "npm:1.0.8"],\ + ["estree-walker", "npm:3.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["esutils", [\ ["npm:2.0.3", {\ "packageLocation": "./.yarn/cache/esutils-npm-2.0.3-f865beafd5-9a2fe69a41.zip/node_modules/esutils/",\ @@ -8437,6 +9652,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["expect-type", [\ + ["npm:1.2.2", {\ + "packageLocation": "./.yarn/cache/expect-type-npm-1.2.2-82ca303a3e-6019019566.zip/node_modules/expect-type/",\ + "packageDependencies": [\ + ["expect-type", "npm:1.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["exponential-backoff", [\ ["npm:3.1.1", {\ "packageLocation": "./.yarn/cache/exponential-backoff-npm-3.1.1-04df458b30-160456d2d6.zip/node_modules/exponential-backoff/",\ @@ -8534,18 +9758,18 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["fdir", [\ - ["npm:6.4.6", {\ - "packageLocation": "./.yarn/cache/fdir-npm-6.4.6-52922d4c25-45b559cff8.zip/node_modules/fdir/",\ + ["npm:6.5.0", {\ + "packageLocation": "./.yarn/cache/fdir-npm-6.5.0-8814a0dec7-e345083c43.zip/node_modules/fdir/",\ "packageDependencies": [\ - ["fdir", "npm:6.4.6"]\ + ["fdir", "npm:6.5.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:d4e4bcf80e67f9de0540c123c7c4882e34dce6a8ba807a0a834f267f9132ee6bd264e69a49c6203aa89877ed3a5a5d633bfa002384881be452cc3a2d2fbcce0b#npm:6.4.6", {\ - "packageLocation": "./.yarn/__virtual__/fdir-virtual-895faf82c5/0/cache/fdir-npm-6.4.6-52922d4c25-45b559cff8.zip/node_modules/fdir/",\ + ["virtual:0e783aadbd2b4b8e6f6056033c0b290501892d23bc7c5dad5477e00e48ad8bd3e4434c3962a52dd75a58e06dbb7218094a494bac954ef2f7f6fdb65d9717e5f4#npm:6.5.0", {\ + "packageLocation": "./.yarn/__virtual__/fdir-virtual-abd4ab2082/0/cache/fdir-npm-6.5.0-8814a0dec7-e345083c43.zip/node_modules/fdir/",\ "packageDependencies": [\ ["@types/picomatch", null],\ - ["fdir", "virtual:d4e4bcf80e67f9de0540c123c7c4882e34dce6a8ba807a0a834f267f9132ee6bd264e69a49c6203aa89877ed3a5a5d633bfa002384881be452cc3a2d2fbcce0b#npm:6.4.6"],\ + ["fdir", "virtual:0e783aadbd2b4b8e6f6056033c0b290501892d23bc7c5dad5477e00e48ad8bd3e4434c3962a52dd75a58e06dbb7218094a494bac954ef2f7f6fdb65d9717e5f4#npm:6.5.0"],\ ["picomatch", "npm:4.0.3"]\ ],\ "packagePeers": [\ @@ -8774,7 +9998,15 @@ const RAW_RUNTIME_STATE = ["patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1", {\ "packageLocation": "./.yarn/unplugged/fsevents-patch-19706e7e35/node_modules/fsevents/",\ "packageDependencies": [\ - ["fsevents", "patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1"],\ + ["node-gyp", "npm:9.4.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1", {\ + "packageLocation": "./.yarn/unplugged/fsevents-patch-6b67494872/node_modules/fsevents/",\ + "packageDependencies": [\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ ["node-gyp", "npm:9.4.0"]\ ],\ "linkType": "HARD"\ @@ -9948,17 +11180,6 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ - ["jasmine", [\ - ["npm:4.6.0", {\ - "packageLocation": "./.yarn/cache/jasmine-npm-4.6.0-610a07828e-73dbb28a00.zip/node_modules/jasmine/",\ - "packageDependencies": [\ - ["glob", "npm:7.2.0"],\ - ["jasmine", "npm:4.6.0"],\ - ["jasmine-core", "npm:4.6.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["jasmine-core", [\ ["npm:4.6.0", {\ "packageLocation": "./.yarn/cache/jasmine-core-npm-4.6.0-57a71d0bb0-c78338fff7.zip/node_modules/jasmine-core/",\ @@ -9968,16 +11189,6 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ - ["jasmine-spec-reporter", [\ - ["npm:6.0.0", {\ - "packageLocation": "./.yarn/cache/jasmine-spec-reporter-npm-6.0.0-575b473233-aab493d4e1.zip/node_modules/jasmine-spec-reporter/",\ - "packageDependencies": [\ - ["colors", "npm:1.4.0"],\ - ["jasmine-spec-reporter", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["jest-worker", [\ ["npm:27.5.1", {\ "packageLocation": "./.yarn/cache/jest-worker-npm-27.5.1-1c110b5894-8c4737ffd0.zip/node_modules/jest-worker/",\ @@ -9997,6 +11208,13 @@ const RAW_RUNTIME_STATE = ["js-tokens", "npm:4.0.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:9.0.1", {\ + "packageLocation": "./.yarn/cache/js-tokens-npm-9.0.1-3ed793c0c1-68dcab8f23.zip/node_modules/js-tokens/",\ + "packageDependencies": [\ + ["js-tokens", "npm:9.0.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["js-yaml", [\ @@ -10395,6 +11613,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["loupe", [\ + ["npm:3.2.1", {\ + "packageLocation": "./.yarn/cache/loupe-npm-3.2.1-a8f491982f-910c872cba.zip/node_modules/loupe/",\ + "packageDependencies": [\ + ["loupe", "npm:3.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["lru-cache", [\ ["npm:10.4.3", {\ "packageLocation": "./.yarn/cache/lru-cache-npm-10.4.3-30c10b861a-ebd04fbca9.zip/node_modules/lru-cache/",\ @@ -10435,6 +11662,25 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["lz-string", [\ + ["npm:1.5.0", {\ + "packageLocation": "./.yarn/cache/lz-string-npm-1.5.0-3860794e30-36128e4de3.zip/node_modules/lz-string/",\ + "packageDependencies": [\ + ["lz-string", "npm:1.5.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["magic-string", [\ + ["npm:0.30.21", {\ + "packageLocation": "./.yarn/cache/magic-string-npm-0.30.21-9a226cb21e-299378e38f.zip/node_modules/magic-string/",\ + "packageDependencies": [\ + ["@jridgewell/sourcemap-codec", "npm:1.5.5"],\ + ["magic-string", "npm:0.30.21"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["make-dir", [\ ["npm:3.1.0", {\ "packageLocation": "./.yarn/cache/make-dir-npm-3.1.0-d1d7505142-56aaafefc4.zip/node_modules/make-dir/",\ @@ -10735,6 +11981,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["mrmime", [\ + ["npm:2.0.1", {\ + "packageLocation": "./.yarn/cache/mrmime-npm-2.0.1-c00bdddb2f-af05afd95a.zip/node_modules/mrmime/",\ + "packageDependencies": [\ + ["mrmime", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["ms", [\ ["npm:2.0.0", {\ "packageLocation": "./.yarn/cache/ms-npm-2.0.0-9e1101a471-f8fda810b3.zip/node_modules/ms/",\ @@ -10751,6 +12006,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["nanoid", [\ + ["npm:3.3.11", {\ + "packageLocation": "./.yarn/cache/nanoid-npm-3.3.11-f98c1f9ef6-40e7f70b3d.zip/node_modules/nanoid/",\ + "packageDependencies": [\ + ["nanoid", "npm:3.3.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["napi-build-utils", [\ ["npm:2.0.0", {\ "packageLocation": "./.yarn/cache/napi-build-utils-npm-2.0.0-95da9c2e4e-5833aaeb5c.zip/node_modules/napi-build-utils/",\ @@ -11284,6 +12548,24 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["pathe", [\ + ["npm:2.0.3", {\ + "packageLocation": "./.yarn/cache/pathe-npm-2.0.3-0924246ee0-c118dc5a8b.zip/node_modules/pathe/",\ + "packageDependencies": [\ + ["pathe", "npm:2.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pathval", [\ + ["npm:2.0.1", {\ + "packageLocation": "./.yarn/cache/pathval-npm-2.0.1-7fb9ae82ba-460f470947.zip/node_modules/pathval/",\ + "packageDependencies": [\ + ["pathval", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["picocolors", [\ ["npm:1.1.1", {\ "packageLocation": "./.yarn/cache/picocolors-npm-1.1.1-4fede47cf1-e2e3e8170a.zip/node_modules/picocolors/",\ @@ -11319,6 +12601,26 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["playwright", [\ + ["npm:1.56.1", {\ + "packageLocation": "./.yarn/cache/playwright-npm-1.56.1-a3ae71eaf6-8e9965aede.zip/node_modules/playwright/",\ + "packageDependencies": [\ + ["fsevents", "patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1"],\ + ["playwright", "npm:1.56.1"],\ + ["playwright-core", "npm:1.56.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["playwright-core", [\ + ["npm:1.56.1", {\ + "packageLocation": "./.yarn/cache/playwright-core-npm-1.56.1-3f4e0b135f-ffd40142b9.zip/node_modules/playwright-core/",\ + "packageDependencies": [\ + ["playwright-core", "npm:1.56.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["possible-typed-array-names", [\ ["npm:1.1.0", {\ "packageLocation": "./.yarn/cache/possible-typed-array-names-npm-1.1.0-ce60ca4401-c810983414.zip/node_modules/possible-typed-array-names/",\ @@ -11328,6 +12630,18 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["postcss", [\ + ["npm:8.5.6", {\ + "packageLocation": "./.yarn/cache/postcss-npm-8.5.6-e7f126c6f3-5127cc7c91.zip/node_modules/postcss/",\ + "packageDependencies": [\ + ["nanoid", "npm:3.3.11"],\ + ["picocolors", "npm:1.1.1"],\ + ["postcss", "npm:8.5.6"],\ + ["source-map-js", "npm:1.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["prebuild-install", [\ ["npm:7.1.3", {\ "packageLocation": "./.yarn/cache/prebuild-install-npm-7.1.3-8e79c3a0a2-25919a42b5.zip/node_modules/prebuild-install/",\ @@ -11377,6 +12691,18 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["pretty-format", [\ + ["npm:27.5.1", {\ + "packageLocation": "./.yarn/cache/pretty-format-npm-27.5.1-cd7d49696f-0cbda1031a.zip/node_modules/pretty-format/",\ + "packageDependencies": [\ + ["ansi-regex", "npm:5.0.1"],\ + ["ansi-styles", "npm:5.2.0"],\ + ["pretty-format", "npm:27.5.1"],\ + ["react-is", "npm:17.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["process-on-spawn", [\ ["npm:1.0.0", {\ "packageLocation": "./.yarn/cache/process-on-spawn-npm-1.0.0-676960b4dd-8abd43199b.zip/node_modules/process-on-spawn/",\ @@ -11521,6 +12847,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["react-is", [\ + ["npm:17.0.2", {\ + "packageLocation": "./.yarn/cache/react-is-npm-17.0.2-091bbb8db6-2bdb6b93fb.zip/node_modules/react-is/",\ + "packageDependencies": [\ + ["react-is", "npm:17.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["readable-stream", [\ ["npm:3.6.0", {\ "packageLocation": "./.yarn/cache/readable-stream-npm-3.6.0-23a4a5eb56-937bedd29a.zip/node_modules/readable-stream/",\ @@ -11735,6 +13070,39 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["rollup", [\ + ["npm:4.52.5", {\ + "packageLocation": "./.yarn/cache/rollup-npm-4.52.5-c23b37a36e-faf1697b30.zip/node_modules/rollup/",\ + "packageDependencies": [\ + ["@rollup/rollup-android-arm-eabi", "npm:4.52.5"],\ + ["@rollup/rollup-android-arm64", "npm:4.52.5"],\ + ["@rollup/rollup-darwin-arm64", "npm:4.52.5"],\ + ["@rollup/rollup-darwin-x64", "npm:4.52.5"],\ + ["@rollup/rollup-freebsd-arm64", "npm:4.52.5"],\ + ["@rollup/rollup-freebsd-x64", "npm:4.52.5"],\ + ["@rollup/rollup-linux-arm-gnueabihf", "npm:4.52.5"],\ + ["@rollup/rollup-linux-arm-musleabihf", "npm:4.52.5"],\ + ["@rollup/rollup-linux-arm64-gnu", "npm:4.52.5"],\ + ["@rollup/rollup-linux-arm64-musl", "npm:4.52.5"],\ + ["@rollup/rollup-linux-loong64-gnu", "npm:4.52.5"],\ + ["@rollup/rollup-linux-ppc64-gnu", "npm:4.52.5"],\ + ["@rollup/rollup-linux-riscv64-gnu", "npm:4.52.5"],\ + ["@rollup/rollup-linux-riscv64-musl", "npm:4.52.5"],\ + ["@rollup/rollup-linux-s390x-gnu", "npm:4.52.5"],\ + ["@rollup/rollup-linux-x64-gnu", "npm:4.52.5"],\ + ["@rollup/rollup-linux-x64-musl", "npm:4.52.5"],\ + ["@rollup/rollup-openharmony-arm64", "npm:4.52.5"],\ + ["@rollup/rollup-win32-arm64-msvc", "npm:4.52.5"],\ + ["@rollup/rollup-win32-ia32-msvc", "npm:4.52.5"],\ + ["@rollup/rollup-win32-x64-gnu", "npm:4.52.5"],\ + ["@rollup/rollup-win32-x64-msvc", "npm:4.52.5"],\ + ["@types/estree", "npm:1.0.8"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ + ["rollup", "npm:4.52.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["run-parallel", [\ ["npm:1.2.0", {\ "packageLocation": "./.yarn/cache/run-parallel-npm-1.2.0-3f47ff2034-200b5ab25b.zip/node_modules/run-parallel/",\ @@ -12013,6 +13381,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["siginfo", [\ + ["npm:2.0.0", {\ + "packageLocation": "./.yarn/cache/siginfo-npm-2.0.0-9bbac931f8-3def8f8e51.zip/node_modules/siginfo/",\ + "packageDependencies": [\ + ["siginfo", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["signal-exit", [\ ["npm:3.0.7", {\ "packageLocation": "./.yarn/cache/signal-exit-npm-3.0.7-bd270458a3-25d272fa73.zip/node_modules/signal-exit/",\ @@ -12050,6 +13427,18 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["sirv", [\ + ["npm:3.0.2", {\ + "packageLocation": "./.yarn/cache/sirv-npm-3.0.2-6cf658c733-5930e4397a.zip/node_modules/sirv/",\ + "packageDependencies": [\ + ["@polka/url", "npm:1.0.0-next.29"],\ + ["mrmime", "npm:2.0.1"],\ + ["sirv", "npm:3.0.2"],\ + ["totalist", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["smart-buffer", [\ ["npm:4.2.0", {\ "packageLocation": "./.yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-a16775323e.zip/node_modules/smart-buffer/",\ @@ -12129,6 +13518,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["source-map-js", [\ + ["npm:1.2.1", {\ + "packageLocation": "./.yarn/cache/source-map-js-npm-1.2.1-b9a47d7e1a-7bda1fc4c1.zip/node_modules/source-map-js/",\ + "packageDependencies": [\ + ["source-map-js", "npm:1.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["source-map-support", [\ ["npm:0.5.21", {\ "packageLocation": "./.yarn/cache/source-map-support-npm-0.5.21-09ca99e250-9ee09942f4.zip/node_modules/source-map-support/",\ @@ -12183,6 +13581,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["stackback", [\ + ["npm:0.0.2", {\ + "packageLocation": "./.yarn/cache/stackback-npm-0.0.2-73273dc92e-89a1416668.zip/node_modules/stackback/",\ + "packageDependencies": [\ + ["stackback", "npm:0.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["statuses", [\ ["npm:1.5.0", {\ "packageLocation": "./.yarn/cache/statuses-npm-1.5.0-f88f91b2e9-e433900956.zip/node_modules/statuses/",\ @@ -12199,6 +13606,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["std-env", [\ + ["npm:3.10.0", {\ + "packageLocation": "./.yarn/cache/std-env-npm-3.10.0-30d3e2646f-1814927a45.zip/node_modules/std-env/",\ + "packageDependencies": [\ + ["std-env", "npm:3.10.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["stop-iteration-iterator", [\ ["npm:1.1.0", {\ "packageLocation": "./.yarn/cache/stop-iteration-iterator-npm-1.1.0-057344287e-de4e45706b.zip/node_modules/stop-iteration-iterator/",\ @@ -12364,6 +13780,16 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["strip-literal", [\ + ["npm:3.1.0", {\ + "packageLocation": "./.yarn/cache/strip-literal-npm-3.1.0-b0340463b3-50918f6699.zip/node_modules/strip-literal/",\ + "packageDependencies": [\ + ["js-tokens", "npm:9.0.1"],\ + ["strip-literal", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["supports-color", [\ ["npm:7.2.0", {\ "packageLocation": "./.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-afb4c88521.zip/node_modules/supports-color/",\ @@ -12945,13 +14371,58 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["tinybench", [\ + ["npm:2.9.0", {\ + "packageLocation": "./.yarn/cache/tinybench-npm-2.9.0-2861a048db-c3500b0f60.zip/node_modules/tinybench/",\ + "packageDependencies": [\ + ["tinybench", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tinyexec", [\ + ["npm:0.3.2", {\ + "packageLocation": "./.yarn/cache/tinyexec-npm-0.3.2-381b1e349c-3efbf791a9.zip/node_modules/tinyexec/",\ + "packageDependencies": [\ + ["tinyexec", "npm:0.3.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["tinyglobby", [\ - ["npm:0.2.14", {\ - "packageLocation": "./.yarn/cache/tinyglobby-npm-0.2.14-d4e4bcf80e-f789ed6c92.zip/node_modules/tinyglobby/",\ + ["npm:0.2.15", {\ + "packageLocation": "./.yarn/cache/tinyglobby-npm-0.2.15-0e783aadbd-869c31490d.zip/node_modules/tinyglobby/",\ "packageDependencies": [\ - ["fdir", "virtual:d4e4bcf80e67f9de0540c123c7c4882e34dce6a8ba807a0a834f267f9132ee6bd264e69a49c6203aa89877ed3a5a5d633bfa002384881be452cc3a2d2fbcce0b#npm:6.4.6"],\ + ["fdir", "virtual:0e783aadbd2b4b8e6f6056033c0b290501892d23bc7c5dad5477e00e48ad8bd3e4434c3962a52dd75a58e06dbb7218094a494bac954ef2f7f6fdb65d9717e5f4#npm:6.5.0"],\ ["picomatch", "npm:4.0.3"],\ - ["tinyglobby", "npm:0.2.14"]\ + ["tinyglobby", "npm:0.2.15"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tinypool", [\ + ["npm:1.1.1", {\ + "packageLocation": "./.yarn/cache/tinypool-npm-1.1.1-6772421283-bf26727d01.zip/node_modules/tinypool/",\ + "packageDependencies": [\ + ["tinypool", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tinyrainbow", [\ + ["npm:2.0.0", {\ + "packageLocation": "./.yarn/cache/tinyrainbow-npm-2.0.0-b4ba575b93-c83c52bef4.zip/node_modules/tinyrainbow/",\ + "packageDependencies": [\ + ["tinyrainbow", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tinyspy", [\ + ["npm:4.0.4", {\ + "packageLocation": "./.yarn/cache/tinyspy-npm-4.0.4-94a3f61e82-a8020fc177.zip/node_modules/tinyspy/",\ + "packageDependencies": [\ + ["tinyspy", "npm:4.0.4"]\ ],\ "linkType": "HARD"\ }]\ @@ -12992,6 +14463,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["totalist", [\ + ["npm:3.0.1", {\ + "packageLocation": "./.yarn/cache/totalist-npm-3.0.1-91e71f3baa-4bb1fadb69.zip/node_modules/totalist/",\ + "packageDependencies": [\ + ["totalist", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["ts-api-utils", [\ ["npm:2.1.0", {\ "packageLocation": "./.yarn/cache/ts-api-utils-npm-2.1.0-2549dfd29f-9806a38ade.zip/node_modules/ts-api-utils/",\ @@ -13387,6 +14867,322 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["vite", [\ + ["npm:7.1.12", {\ + "packageLocation": "./.yarn/cache/vite-npm-7.1.12-4c5705516c-cef4d4b4a8.zip/node_modules/vite/",\ + "packageDependencies": [\ + ["vite", "npm:7.1.12"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:36e27e6f9f58534344f1f7ebe60cf4da0a991405275e95d8efd7694066e489a80ffc74b01d84c8e4b519c8339cd9843a6e9a827d08bac126d634dc88371410ba#npm:7.1.12", {\ + "packageLocation": "./.yarn/__virtual__/vite-virtual-be93ef83e2/0/cache/vite-npm-7.1.12-4c5705516c-cef4d4b4a8.zip/node_modules/vite/",\ + "packageDependencies": [\ + ["@types/jiti", null],\ + ["@types/less", null],\ + ["@types/lightningcss", null],\ + ["@types/node", "npm:22.10.6"],\ + ["@types/sass", null],\ + ["@types/sass-embedded", null],\ + ["@types/stylus", null],\ + ["@types/sugarss", null],\ + ["@types/terser", null],\ + ["@types/tsx", null],\ + ["@types/yaml", null],\ + ["esbuild", "npm:0.25.11"],\ + ["fdir", "virtual:0e783aadbd2b4b8e6f6056033c0b290501892d23bc7c5dad5477e00e48ad8bd3e4434c3962a52dd75a58e06dbb7218094a494bac954ef2f7f6fdb65d9717e5f4#npm:6.5.0"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ + ["jiti", null],\ + ["less", null],\ + ["lightningcss", null],\ + ["picomatch", "npm:4.0.3"],\ + ["postcss", "npm:8.5.6"],\ + ["rollup", "npm:4.52.5"],\ + ["sass", null],\ + ["sass-embedded", null],\ + ["stylus", null],\ + ["sugarss", null],\ + ["terser", null],\ + ["tinyglobby", "npm:0.2.15"],\ + ["tsx", null],\ + ["vite", "virtual:36e27e6f9f58534344f1f7ebe60cf4da0a991405275e95d8efd7694066e489a80ffc74b01d84c8e4b519c8339cd9843a6e9a827d08bac126d634dc88371410ba#npm:7.1.12"],\ + ["yaml", null]\ + ],\ + "packagePeers": [\ + "@types/jiti",\ + "@types/less",\ + "@types/lightningcss",\ + "@types/node",\ + "@types/sass-embedded",\ + "@types/sass",\ + "@types/stylus",\ + "@types/sugarss",\ + "@types/terser",\ + "@types/tsx",\ + "@types/yaml",\ + "jiti",\ + "less",\ + "lightningcss",\ + "sass-embedded",\ + "sass",\ + "stylus",\ + "sugarss",\ + "terser",\ + "tsx",\ + "yaml"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:cb1d79df3b4901790c8808db427c397bd3f613c8181bce1e1c99f654fcf8f1484eb3efeaaa7477306f7c95ff2d882d1e762cb59fa3743be7fbfd628566f4b6c1#npm:7.1.12", {\ + "packageLocation": "./.yarn/__virtual__/vite-virtual-6615e30007/0/cache/vite-npm-7.1.12-4c5705516c-cef4d4b4a8.zip/node_modules/vite/",\ + "packageDependencies": [\ + ["@types/jiti", null],\ + ["@types/less", null],\ + ["@types/lightningcss", null],\ + ["@types/node", null],\ + ["@types/sass", null],\ + ["@types/sass-embedded", null],\ + ["@types/stylus", null],\ + ["@types/sugarss", null],\ + ["@types/terser", null],\ + ["@types/tsx", null],\ + ["@types/yaml", null],\ + ["esbuild", "npm:0.25.11"],\ + ["fdir", "virtual:0e783aadbd2b4b8e6f6056033c0b290501892d23bc7c5dad5477e00e48ad8bd3e4434c3962a52dd75a58e06dbb7218094a494bac954ef2f7f6fdb65d9717e5f4#npm:6.5.0"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ + ["jiti", null],\ + ["less", null],\ + ["lightningcss", null],\ + ["picomatch", "npm:4.0.3"],\ + ["postcss", "npm:8.5.6"],\ + ["rollup", "npm:4.52.5"],\ + ["sass", null],\ + ["sass-embedded", null],\ + ["stylus", null],\ + ["sugarss", null],\ + ["terser", null],\ + ["tinyglobby", "npm:0.2.15"],\ + ["tsx", null],\ + ["vite", "virtual:cb1d79df3b4901790c8808db427c397bd3f613c8181bce1e1c99f654fcf8f1484eb3efeaaa7477306f7c95ff2d882d1e762cb59fa3743be7fbfd628566f4b6c1#npm:7.1.12"],\ + ["yaml", null]\ + ],\ + "packagePeers": [\ + "@types/jiti",\ + "@types/less",\ + "@types/lightningcss",\ + "@types/node",\ + "@types/sass-embedded",\ + "@types/sass",\ + "@types/stylus",\ + "@types/sugarss",\ + "@types/terser",\ + "@types/tsx",\ + "@types/yaml",\ + "jiti",\ + "less",\ + "lightningcss",\ + "sass-embedded",\ + "sass",\ + "stylus",\ + "sugarss",\ + "terser",\ + "tsx",\ + "yaml"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["vite-node", [\ + ["npm:3.2.4", {\ + "packageLocation": "./.yarn/cache/vite-node-npm-3.2.4-cb1d79df3b-6ceca67c00.zip/node_modules/vite-node/",\ + "packageDependencies": [\ + ["cac", "npm:6.7.14"],\ + ["debug", "virtual:6d7ba8035a34a8cbc48e227f3e803dbc3acaabbab2521c3cd66a45a2853fa6bda5b3ccb3ab1942c8a738927bc0e228ea8d5baa6461d73e2cf6a345db629c4f47#npm:4.4.1"],\ + ["es-module-lexer", "npm:1.7.0"],\ + ["pathe", "npm:2.0.3"],\ + ["vite", "virtual:cb1d79df3b4901790c8808db427c397bd3f613c8181bce1e1c99f654fcf8f1484eb3efeaaa7477306f7c95ff2d882d1e762cb59fa3743be7fbfd628566f4b6c1#npm:7.1.12"],\ + ["vite-node", "npm:3.2.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["vitest", [\ + ["npm:3.2.4", {\ + "packageLocation": "./.yarn/cache/vitest-npm-3.2.4-7a07f931b1-5bf53ede3a.zip/node_modules/vitest/",\ + "packageDependencies": [\ + ["vitest", "npm:3.2.4"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:32bdce0525b6fd38c0ffab310007869ff277762ac809c2d2b6ac7a63bc1b80e6f56e6507ed75fd8459648eb5d0172adc064466a9729b1d8c49e093b697f760e1#npm:3.2.4", {\ + "packageLocation": "./.yarn/__virtual__/vitest-virtual-7e0d57c4b8/0/cache/vitest-npm-3.2.4-7a07f931b1-5bf53ede3a.zip/node_modules/vitest/",\ + "packageDependencies": [\ + ["@edge-runtime/vm", null],\ + ["@types/chai", "npm:5.2.3"],\ + ["@types/debug", null],\ + ["@types/edge-runtime__vm", null],\ + ["@types/happy-dom", null],\ + ["@types/jsdom", null],\ + ["@types/node", null],\ + ["@types/vitest__browser", null],\ + ["@types/vitest__ui", null],\ + ["@vitest/browser", null],\ + ["@vitest/expect", "npm:3.2.4"],\ + ["@vitest/mocker", "virtual:7e0d57c4b8291834af7caaec5cf40315859532aaf32248bc99ddecd6a9473a0e852b545b5d9b4e0d3ca39051839ba61f77e338e225abe8757fa7da262b635786#npm:3.2.4"],\ + ["@vitest/pretty-format", "npm:3.2.4"],\ + ["@vitest/runner", "npm:3.2.4"],\ + ["@vitest/snapshot", "npm:3.2.4"],\ + ["@vitest/spy", "npm:3.2.4"],\ + ["@vitest/ui", null],\ + ["@vitest/utils", "npm:3.2.4"],\ + ["chai", "npm:5.3.3"],\ + ["debug", "virtual:6d7ba8035a34a8cbc48e227f3e803dbc3acaabbab2521c3cd66a45a2853fa6bda5b3ccb3ab1942c8a738927bc0e228ea8d5baa6461d73e2cf6a345db629c4f47#npm:4.4.1"],\ + ["expect-type", "npm:1.2.2"],\ + ["happy-dom", null],\ + ["jsdom", null],\ + ["magic-string", "npm:0.30.21"],\ + ["pathe", "npm:2.0.3"],\ + ["picomatch", "npm:4.0.3"],\ + ["std-env", "npm:3.10.0"],\ + ["tinybench", "npm:2.9.0"],\ + ["tinyexec", "npm:0.3.2"],\ + ["tinyglobby", "npm:0.2.15"],\ + ["tinypool", "npm:1.1.1"],\ + ["tinyrainbow", "npm:2.0.0"],\ + ["vite", "virtual:cb1d79df3b4901790c8808db427c397bd3f613c8181bce1e1c99f654fcf8f1484eb3efeaaa7477306f7c95ff2d882d1e762cb59fa3743be7fbfd628566f4b6c1#npm:7.1.12"],\ + ["vite-node", "npm:3.2.4"],\ + ["vitest", "virtual:32bdce0525b6fd38c0ffab310007869ff277762ac809c2d2b6ac7a63bc1b80e6f56e6507ed75fd8459648eb5d0172adc064466a9729b1d8c49e093b697f760e1#npm:3.2.4"],\ + ["why-is-node-running", "npm:2.3.0"]\ + ],\ + "packagePeers": [\ + "@edge-runtime/vm",\ + "@types/debug",\ + "@types/edge-runtime__vm",\ + "@types/happy-dom",\ + "@types/jsdom",\ + "@types/node",\ + "@types/vitest__browser",\ + "@types/vitest__ui",\ + "@vitest/browser",\ + "@vitest/ui",\ + "happy-dom",\ + "jsdom"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:3.2.4", {\ + "packageLocation": "./.yarn/__virtual__/vitest-virtual-36e27e6f9f/0/cache/vitest-npm-3.2.4-7a07f931b1-5bf53ede3a.zip/node_modules/vitest/",\ + "packageDependencies": [\ + ["@edge-runtime/vm", null],\ + ["@types/chai", "npm:5.2.3"],\ + ["@types/debug", null],\ + ["@types/edge-runtime__vm", null],\ + ["@types/happy-dom", null],\ + ["@types/jsdom", null],\ + ["@types/node", "npm:22.10.6"],\ + ["@types/vitest__browser", null],\ + ["@types/vitest__ui", null],\ + ["@vitest/browser", null],\ + ["@vitest/expect", "npm:3.2.4"],\ + ["@vitest/mocker", "virtual:36e27e6f9f58534344f1f7ebe60cf4da0a991405275e95d8efd7694066e489a80ffc74b01d84c8e4b519c8339cd9843a6e9a827d08bac126d634dc88371410ba#npm:3.2.4"],\ + ["@vitest/pretty-format", "npm:3.2.4"],\ + ["@vitest/runner", "npm:3.2.4"],\ + ["@vitest/snapshot", "npm:3.2.4"],\ + ["@vitest/spy", "npm:3.2.4"],\ + ["@vitest/ui", null],\ + ["@vitest/utils", "npm:3.2.4"],\ + ["chai", "npm:5.3.3"],\ + ["debug", "virtual:6d7ba8035a34a8cbc48e227f3e803dbc3acaabbab2521c3cd66a45a2853fa6bda5b3ccb3ab1942c8a738927bc0e228ea8d5baa6461d73e2cf6a345db629c4f47#npm:4.4.1"],\ + ["expect-type", "npm:1.2.2"],\ + ["happy-dom", null],\ + ["jsdom", null],\ + ["magic-string", "npm:0.30.21"],\ + ["pathe", "npm:2.0.3"],\ + ["picomatch", "npm:4.0.3"],\ + ["std-env", "npm:3.10.0"],\ + ["tinybench", "npm:2.9.0"],\ + ["tinyexec", "npm:0.3.2"],\ + ["tinyglobby", "npm:0.2.15"],\ + ["tinypool", "npm:1.1.1"],\ + ["tinyrainbow", "npm:2.0.0"],\ + ["vite", "virtual:36e27e6f9f58534344f1f7ebe60cf4da0a991405275e95d8efd7694066e489a80ffc74b01d84c8e4b519c8339cd9843a6e9a827d08bac126d634dc88371410ba#npm:7.1.12"],\ + ["vite-node", "npm:3.2.4"],\ + ["vitest", "virtual:4f1584ad4aba8733a24be7c8aebbffafef25607f2d00f4b314cf96717145c692763628a31c2b85d4686fbb091ff21ebffa3cc337399c042c19a32b9bdb786464#npm:3.2.4"],\ + ["why-is-node-running", "npm:2.3.0"]\ + ],\ + "packagePeers": [\ + "@edge-runtime/vm",\ + "@types/debug",\ + "@types/edge-runtime__vm",\ + "@types/happy-dom",\ + "@types/jsdom",\ + "@types/node",\ + "@types/vitest__browser",\ + "@types/vitest__ui",\ + "@vitest/browser",\ + "@vitest/ui",\ + "happy-dom",\ + "jsdom"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:3.2.4", {\ + "packageLocation": "./.yarn/__virtual__/vitest-virtual-eb31e891d5/0/cache/vitest-npm-3.2.4-7a07f931b1-5bf53ede3a.zip/node_modules/vitest/",\ + "packageDependencies": [\ + ["@edge-runtime/vm", null],\ + ["@types/chai", "npm:5.2.3"],\ + ["@types/debug", null],\ + ["@types/edge-runtime__vm", null],\ + ["@types/happy-dom", null],\ + ["@types/jsdom", null],\ + ["@types/node", null],\ + ["@types/vitest__browser", null],\ + ["@types/vitest__ui", null],\ + ["@vitest/browser", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:3.2.4"],\ + ["@vitest/expect", "npm:3.2.4"],\ + ["@vitest/mocker", "virtual:7e0d57c4b8291834af7caaec5cf40315859532aaf32248bc99ddecd6a9473a0e852b545b5d9b4e0d3ca39051839ba61f77e338e225abe8757fa7da262b635786#npm:3.2.4"],\ + ["@vitest/pretty-format", "npm:3.2.4"],\ + ["@vitest/runner", "npm:3.2.4"],\ + ["@vitest/snapshot", "npm:3.2.4"],\ + ["@vitest/spy", "npm:3.2.4"],\ + ["@vitest/ui", null],\ + ["@vitest/utils", "npm:3.2.4"],\ + ["chai", "npm:5.3.3"],\ + ["debug", "virtual:6d7ba8035a34a8cbc48e227f3e803dbc3acaabbab2521c3cd66a45a2853fa6bda5b3ccb3ab1942c8a738927bc0e228ea8d5baa6461d73e2cf6a345db629c4f47#npm:4.4.1"],\ + ["expect-type", "npm:1.2.2"],\ + ["happy-dom", null],\ + ["jsdom", null],\ + ["magic-string", "npm:0.30.21"],\ + ["pathe", "npm:2.0.3"],\ + ["picomatch", "npm:4.0.3"],\ + ["std-env", "npm:3.10.0"],\ + ["tinybench", "npm:2.9.0"],\ + ["tinyexec", "npm:0.3.2"],\ + ["tinyglobby", "npm:0.2.15"],\ + ["tinypool", "npm:1.1.1"],\ + ["tinyrainbow", "npm:2.0.0"],\ + ["vite", "virtual:cb1d79df3b4901790c8808db427c397bd3f613c8181bce1e1c99f654fcf8f1484eb3efeaaa7477306f7c95ff2d882d1e762cb59fa3743be7fbfd628566f4b6c1#npm:7.1.12"],\ + ["vite-node", "npm:3.2.4"],\ + ["vitest", "virtual:5e84e7553054e678344c9584f8c875c24d817f4c617606b54c4b4cc7ac3f929af81710850c40f70a573fe1c4c8107e4e9bf2f796bbaaed428c1211083577d86f#npm:3.2.4"],\ + ["why-is-node-running", "npm:2.3.0"]\ + ],\ + "packagePeers": [\ + "@edge-runtime/vm",\ + "@types/debug",\ + "@types/edge-runtime__vm",\ + "@types/happy-dom",\ + "@types/jsdom",\ + "@types/node",\ + "@types/vitest__browser",\ + "@types/vitest__ui",\ + "@vitest/browser",\ + "@vitest/ui",\ + "happy-dom",\ + "jsdom"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["void-elements", [\ ["npm:2.0.1", {\ "packageLocation": "./.yarn/cache/void-elements-npm-2.0.1-85e6962130-23b4f35bbe.zip/node_modules/void-elements/",\ @@ -14737,6 +16533,17 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["why-is-node-running", [\ + ["npm:2.3.0", {\ + "packageLocation": "./.yarn/cache/why-is-node-running-npm-2.3.0-011cf61a18-1cde0b01b8.zip/node_modules/why-is-node-running/",\ + "packageDependencies": [\ + ["siginfo", "npm:2.0.0"],\ + ["stackback", "npm:0.0.2"],\ + ["why-is-node-running", "npm:2.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["wide-align", [\ ["npm:1.1.5", {\ "packageLocation": "./.yarn/cache/wide-align-npm-1.1.5-889d77e592-1d9c2a3e36.zip/node_modules/wide-align/",\ @@ -14834,6 +16641,13 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ + ["npm:8.18.3", {\ + "packageLocation": "./.yarn/cache/ws-npm-8.18.3-665d39209d-eac918213d.zip/node_modules/ws/",\ + "packageDependencies": [\ + ["ws", "npm:8.18.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ ["virtual:1d61fc58e3bfe6abc91b3453689f077c31362697bd0dc94bc6dc09bf7c6a0b9c4d4d14474fc7aada28132044c44f3822836470d62594826815ec3c32a8ff4838#npm:8.17.1", {\ "packageLocation": "./.yarn/__virtual__/ws-virtual-f3485b6446/0/cache/ws-npm-8.17.1-f57fb24a2c-f4a49064af.zip/node_modules/ws/",\ "packageDependencies": [\ @@ -14851,6 +16665,23 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ + ["virtual:3990c67f170cba2c738e3b9ef477d748b6ae151eb3c4cc822b5565a4d50e34966fdd0ddeb5815c1698e61316dfda8064e590d635c80e3d36c9ab207805306abc#npm:8.18.3", {\ + "packageLocation": "./.yarn/__virtual__/ws-virtual-1d19debd15/0/cache/ws-npm-8.18.3-665d39209d-eac918213d.zip/node_modules/ws/",\ + "packageDependencies": [\ + ["@types/bufferutil", null],\ + ["@types/utf-8-validate", null],\ + ["bufferutil", null],\ + ["utf-8-validate", null],\ + ["ws", "virtual:3990c67f170cba2c738e3b9ef477d748b6ae151eb3c4cc822b5565a4d50e34966fdd0ddeb5815c1698e61316dfda8064e590d635c80e3d36c9ab207805306abc#npm:8.18.3"]\ + ],\ + "packagePeers": [\ + "@types/bufferutil",\ + "@types/utf-8-validate",\ + "bufferutil",\ + "utf-8-validate"\ + ],\ + "linkType": "HARD"\ + }],\ ["virtual:992e8a49329af27dec1603ba7ec6f83173fb73e1d5752e95d78d0bec9ff8e148a218f65e20742125a49b958677fd4d6119ec35f9c56f9b4ea72f0e32f53b591b#npm:7.5.10", {\ "packageLocation": "./.yarn/__virtual__/ws-virtual-7051cf986b/0/cache/ws-npm-7.5.10-878ccb886b-bd7d5f4aaf.zip/node_modules/ws/",\ "packageDependencies": [\ diff --git a/.yarn/cache/@babel-runtime-npm-7.28.4-31bc1b0001-792ce7af97.zip b/.yarn/cache/@babel-runtime-npm-7.28.4-31bc1b0001-792ce7af97.zip new file mode 100644 index 0000000000..3717cca6fa --- /dev/null +++ b/.yarn/cache/@babel-runtime-npm-7.28.4-31bc1b0001-792ce7af97.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:daba65a0eb7e26cf40cd01ad7dcafb1552ce7d807889d05bc53cfb1b74248941 +size 296735 diff --git a/.yarn/cache/@esbuild-linux-x64-npm-0.25.11-9d2ebbe6fb-10c0.zip b/.yarn/cache/@esbuild-linux-x64-npm-0.25.11-9d2ebbe6fb-10c0.zip new file mode 100644 index 0000000000..57a6198d71 --- /dev/null +++ b/.yarn/cache/@esbuild-linux-x64-npm-0.25.11-9d2ebbe6fb-10c0.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ecfb23816c9872f9b40a07b9ef68ccbc27c9c9071447c04e557f1bf6f8a6abe +size 10360466 diff --git a/.yarn/cache/@polka-url-npm-1.0.0-next.29-b32b372106-0d58e08184.zip b/.yarn/cache/@polka-url-npm-1.0.0-next.29-b32b372106-0d58e08184.zip new file mode 100644 index 0000000000..92564f39e0 --- /dev/null +++ b/.yarn/cache/@polka-url-npm-1.0.0-next.29-b32b372106-0d58e08184.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9e76986afcd7b20a0c9f422685e001cc187ac901a51b950d8771ffa0d662c7f +size 5895 diff --git a/.yarn/cache/@rollup-rollup-linux-x64-gnu-npm-4.52.5-9555c91c67-10c0.zip b/.yarn/cache/@rollup-rollup-linux-x64-gnu-npm-4.52.5-9555c91c67-10c0.zip new file mode 100644 index 0000000000..d0aa5d3662 --- /dev/null +++ b/.yarn/cache/@rollup-rollup-linux-x64-gnu-npm-4.52.5-9555c91c67-10c0.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32f50943244413a05cb2a327b46bc320d50fc0007c5b19222872eca77fa89107 +size 2163749 diff --git a/.yarn/cache/@testing-library-dom-npm-10.4.1-928d6cd2a7-19ce048012.zip b/.yarn/cache/@testing-library-dom-npm-10.4.1-928d6cd2a7-19ce048012.zip new file mode 100644 index 0000000000..293d244fea --- /dev/null +++ b/.yarn/cache/@testing-library-dom-npm-10.4.1-928d6cd2a7-19ce048012.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0760dd27d0476d7b3094f4236b512447bf3e652123a158dfa40da8b351c20330 +size 2437052 diff --git a/.yarn/cache/@testing-library-user-event-npm-14.6.1-5da7e1d4e2-75fea130a5.zip b/.yarn/cache/@testing-library-user-event-npm-14.6.1-5da7e1d4e2-75fea130a5.zip new file mode 100644 index 0000000000..990f95521c --- /dev/null +++ b/.yarn/cache/@testing-library-user-event-npm-14.6.1-5da7e1d4e2-75fea130a5.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:611695856e07155dab03ebf874f3a8f0a1569de87d3d839966436940ab24a19e +size 520094 diff --git a/.yarn/cache/@types-aria-query-npm-5.0.4-51d2b61619-dc667bc6a3.zip b/.yarn/cache/@types-aria-query-npm-5.0.4-51d2b61619-dc667bc6a3.zip new file mode 100644 index 0000000000..6a161eb2bd --- /dev/null +++ b/.yarn/cache/@types-aria-query-npm-5.0.4-51d2b61619-dc667bc6a3.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18c7a43c8380e0b29598d547431f72a3cde8f3e31b537ad78919e2c3ca680983 +size 12989 diff --git a/.yarn/cache/@types-chai-npm-5.2.3-5f61dbddda-e0ef1de3b6.zip b/.yarn/cache/@types-chai-npm-5.2.3-5f61dbddda-e0ef1de3b6.zip new file mode 100644 index 0000000000..b083a88982 --- /dev/null +++ b/.yarn/cache/@types-chai-npm-5.2.3-5f61dbddda-e0ef1de3b6.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c92b8f37eeefadb25bd9707591767e2585c87fc099ea007479f97ad63809984e +size 93123 diff --git a/.yarn/cache/@types-deep-eql-npm-4.0.2-e6bc68cc92-bf3f811843.zip b/.yarn/cache/@types-deep-eql-npm-4.0.2-e6bc68cc92-bf3f811843.zip new file mode 100644 index 0000000000..7286772942 --- /dev/null +++ b/.yarn/cache/@types-deep-eql-npm-4.0.2-e6bc68cc92-bf3f811843.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa3746707030af027d56434d7e6e5a4d7107272b92354e34bd45b8a985f8ad17 +size 5748 diff --git a/.yarn/cache/@vitest-browser-npm-3.2.4-72d04aa3a1-0db39daad6.zip b/.yarn/cache/@vitest-browser-npm-3.2.4-72d04aa3a1-0db39daad6.zip new file mode 100644 index 0000000000..65ef090a44 --- /dev/null +++ b/.yarn/cache/@vitest-browser-npm-3.2.4-72d04aa3a1-0db39daad6.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2021c23daae5fa792195a73dbd0f75f644b14e00fd2392932f95c6b8fdb67125 +size 1613319 diff --git a/.yarn/cache/@vitest-expect-npm-3.2.4-97c526d5cc-7586104e3f.zip b/.yarn/cache/@vitest-expect-npm-3.2.4-97c526d5cc-7586104e3f.zip new file mode 100644 index 0000000000..9d3d2b0dbd --- /dev/null +++ b/.yarn/cache/@vitest-expect-npm-3.2.4-97c526d5cc-7586104e3f.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b70c3d75ad18f9d4f2335f5d8c6a59917372df795fafe35480d76f416c6f604b +size 98025 diff --git a/.yarn/cache/@vitest-mocker-npm-3.2.4-48badb1f19-f7a4aea19b.zip b/.yarn/cache/@vitest-mocker-npm-3.2.4-48badb1f19-f7a4aea19b.zip new file mode 100644 index 0000000000..9faaa09b57 --- /dev/null +++ b/.yarn/cache/@vitest-mocker-npm-3.2.4-48badb1f19-f7a4aea19b.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bc38aef034fb735864758893abb3b252ad153d14f2a1bdeff0b85bc113b5d8a +size 166515 diff --git a/.yarn/cache/@vitest-pretty-format-npm-3.2.4-d7da0d3faf-5ad7d4278e.zip b/.yarn/cache/@vitest-pretty-format-npm-3.2.4-d7da0d3faf-5ad7d4278e.zip new file mode 100644 index 0000000000..339ed88388 --- /dev/null +++ b/.yarn/cache/@vitest-pretty-format-npm-3.2.4-d7da0d3faf-5ad7d4278e.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd4f9a733ec118925f01fee88508995064ddfe609f3156899465a3f18492b465 +size 60561 diff --git a/.yarn/cache/@vitest-runner-npm-3.2.4-b2e96befcb-e8be51666c.zip b/.yarn/cache/@vitest-runner-npm-3.2.4-b2e96befcb-e8be51666c.zip new file mode 100644 index 0000000000..996a469e78 --- /dev/null +++ b/.yarn/cache/@vitest-runner-npm-3.2.4-b2e96befcb-e8be51666c.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10b450e98ea83cd075da1a9618aef6be1dd6b8422022e8f210d904c961dd8cd9 +size 129453 diff --git a/.yarn/cache/@vitest-snapshot-npm-3.2.4-c43292ea8b-f8301a3d7d.zip b/.yarn/cache/@vitest-snapshot-npm-3.2.4-c43292ea8b-f8301a3d7d.zip new file mode 100644 index 0000000000..73ec5524a7 --- /dev/null +++ b/.yarn/cache/@vitest-snapshot-npm-3.2.4-c43292ea8b-f8301a3d7d.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78bbb7611da55f63c8b13f7d86d8d1ae84940a2b25dea174407224354551966f +size 95050 diff --git a/.yarn/cache/@vitest-spy-npm-3.2.4-ed1c68e965-6ebf0b4697.zip b/.yarn/cache/@vitest-spy-npm-3.2.4-ed1c68e965-6ebf0b4697.zip new file mode 100644 index 0000000000..e839a545f0 --- /dev/null +++ b/.yarn/cache/@vitest-spy-npm-3.2.4-ed1c68e965-6ebf0b4697.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10eabf2bf46be641f253fd669f5051a7f23ed6e77c0b470f07b70903244a938f +size 23750 diff --git a/.yarn/cache/@vitest-utils-npm-3.2.4-2d32b4da53-024a9b8c8b.zip b/.yarn/cache/@vitest-utils-npm-3.2.4-2d32b4da53-024a9b8c8b.zip new file mode 100644 index 0000000000..83d8445279 --- /dev/null +++ b/.yarn/cache/@vitest-utils-npm-3.2.4-2d32b4da53-024a9b8c8b.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cba9b00008405be92ff2a73decbb35a39d71bec35d9fddd1b1e74e2dd208f314 +size 174653 diff --git a/.yarn/cache/ansi-styles-npm-5.2.0-72fc7003e3-9c4ca80eb3.zip b/.yarn/cache/ansi-styles-npm-5.2.0-72fc7003e3-9c4ca80eb3.zip new file mode 100644 index 0000000000..cc6f350bf3 --- /dev/null +++ b/.yarn/cache/ansi-styles-npm-5.2.0-72fc7003e3-9c4ca80eb3.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cbe4cd474a4ff1cbb3345c8cd65418d780123e05fb8b295eaa8ca53f3b658e0 +size 14568 diff --git a/.yarn/cache/aria-query-npm-5.3.0-76575ac83b-2bff0d4eba.zip b/.yarn/cache/aria-query-npm-5.3.0-76575ac83b-2bff0d4eba.zip new file mode 100644 index 0000000000..43f60ab640 --- /dev/null +++ b/.yarn/cache/aria-query-npm-5.3.0-76575ac83b-2bff0d4eba.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4dc95684285f19467cbb34316d3ae281206069768957a997a17860473efee4be +size 223907 diff --git a/.yarn/cache/assertion-error-npm-2.0.1-8169d136f2-bbbcb117ac.zip b/.yarn/cache/assertion-error-npm-2.0.1-8169d136f2-bbbcb117ac.zip new file mode 100644 index 0000000000..6eca437863 --- /dev/null +++ b/.yarn/cache/assertion-error-npm-2.0.1-8169d136f2-bbbcb117ac.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e30d660e6c9003e5fab54897357e027027ed365cd1a689a2a43530b35e84774 +size 6852 diff --git a/.yarn/cache/cac-npm-6.7.14-c46284e425-4ee06aaa7b.zip b/.yarn/cache/cac-npm-6.7.14-c46284e425-4ee06aaa7b.zip new file mode 100644 index 0000000000..0158a0956d --- /dev/null +++ b/.yarn/cache/cac-npm-6.7.14-c46284e425-4ee06aaa7b.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88208225f3f7dbefd293445c9b05fce7af68df05e1f49e8409e9173c5a44cf17 +size 84275 diff --git a/.yarn/cache/chai-npm-5.3.3-ebef71cdac-b360fd4d38.zip b/.yarn/cache/chai-npm-5.3.3-ebef71cdac-b360fd4d38.zip new file mode 100644 index 0000000000..a0575b0f61 --- /dev/null +++ b/.yarn/cache/chai-npm-5.3.3-ebef71cdac-b360fd4d38.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd22cf3548f4b3550e67c6fb5f99c4d4a2fc16f2e92261daffcdfc55683799aa +size 445274 diff --git a/.yarn/cache/check-error-npm-2.1.1-34e4ef357e-979f13ecca.zip b/.yarn/cache/check-error-npm-2.1.1-34e4ef357e-979f13ecca.zip new file mode 100644 index 0000000000..46327f6251 --- /dev/null +++ b/.yarn/cache/check-error-npm-2.1.1-34e4ef357e-979f13ecca.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02d07b0eca1b64bf73a32e1426723570c052a1c87abfd0d801ec380a5f341f7b +size 12209 diff --git a/.yarn/cache/deep-eql-npm-5.0.2-3bce58289f-7102cf3b7b.zip b/.yarn/cache/deep-eql-npm-5.0.2-3bce58289f-7102cf3b7b.zip new file mode 100644 index 0000000000..ee08cf6f49 --- /dev/null +++ b/.yarn/cache/deep-eql-npm-5.0.2-3bce58289f-7102cf3b7b.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ead8a72a0b0af17e0871161b5c84cfb32c1821332a0ca33e084115ed3c0948ec +size 24684 diff --git a/.yarn/cache/dequal-npm-2.0.3-53a630c60e-f98860cdf5.zip b/.yarn/cache/dequal-npm-2.0.3-53a630c60e-f98860cdf5.zip new file mode 100644 index 0000000000..028d7b40dd --- /dev/null +++ b/.yarn/cache/dequal-npm-2.0.3-53a630c60e-f98860cdf5.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17a9fd72bb0730d51246bf0f6fb238fb01fc3ba0a6d9574f1d651bf67b3edc1f +size 16279 diff --git a/.yarn/cache/dom-accessibility-api-npm-0.5.16-d3e2310666-b2c2eda4fa.zip b/.yarn/cache/dom-accessibility-api-npm-0.5.16-d3e2310666-b2c2eda4fa.zip new file mode 100644 index 0000000000..90d64115b4 --- /dev/null +++ b/.yarn/cache/dom-accessibility-api-npm-0.5.16-d3e2310666-b2c2eda4fa.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:430d82bf299a7b2c0daa04f26112262061f4713e7132c9e999f42c9678cbb900 +size 270150 diff --git a/.yarn/cache/esbuild-npm-0.25.11-44fa5ada25-7f819b16a9.zip b/.yarn/cache/esbuild-npm-0.25.11-44fa5ada25-7f819b16a9.zip new file mode 100644 index 0000000000..5d08a4d91f --- /dev/null +++ b/.yarn/cache/esbuild-npm-0.25.11-44fa5ada25-7f819b16a9.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93dee42ce71ecd47a95bbce4dbcee01d9460d11bc0b0feb26f5ffca7550eb58e +size 136815 diff --git a/.yarn/cache/estree-walker-npm-3.0.3-0372979673-c12e3c2b26.zip b/.yarn/cache/estree-walker-npm-3.0.3-0372979673-c12e3c2b26.zip new file mode 100644 index 0000000000..6027f3ec40 --- /dev/null +++ b/.yarn/cache/estree-walker-npm-3.0.3-0372979673-c12e3c2b26.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fa9981398317d70439b88844e22394bd38b304659812976a1e1753c4ed38454 +size 19843 diff --git a/.yarn/cache/expect-type-npm-1.2.2-82ca303a3e-6019019566.zip b/.yarn/cache/expect-type-npm-1.2.2-82ca303a3e-6019019566.zip new file mode 100644 index 0000000000..37598fc209 --- /dev/null +++ b/.yarn/cache/expect-type-npm-1.2.2-82ca303a3e-6019019566.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37f95b9879805dde62c52f55c64ed6f5a817043a0bc3b898c4c54cd9879fa9fb +size 121801 diff --git a/.yarn/cache/fdir-npm-6.4.6-52922d4c25-45b559cff8.zip b/.yarn/cache/fdir-npm-6.4.6-52922d4c25-45b559cff8.zip deleted file mode 100644 index cdf4352773..0000000000 --- a/.yarn/cache/fdir-npm-6.4.6-52922d4c25-45b559cff8.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:39744c52fe2040532e0357267b9f6e44a2e15e6362dc25b2f728b71fa9be200d -size 93560 diff --git a/.yarn/cache/fdir-npm-6.5.0-8814a0dec7-e345083c43.zip b/.yarn/cache/fdir-npm-6.5.0-8814a0dec7-e345083c43.zip new file mode 100644 index 0000000000..384c9ac565 --- /dev/null +++ b/.yarn/cache/fdir-npm-6.5.0-8814a0dec7-e345083c43.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c500648bf80104c8bb4536eb1d23f4bb7478c43fabbe67d2f10584de559dc0db +size 54609 diff --git a/.yarn/cache/fsevents-npm-2.3.3-ce9fb0ffae-a1f0c44595.zip b/.yarn/cache/fsevents-npm-2.3.3-ce9fb0ffae-a1f0c44595.zip new file mode 100644 index 0000000000..088eebce26 --- /dev/null +++ b/.yarn/cache/fsevents-npm-2.3.3-ce9fb0ffae-a1f0c44595.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21f9b769dbf5b8f05c8197661a4d9bc6ab078b7d3907581061cb035b4e952997 +size 174318 diff --git a/.yarn/cache/jasmine-npm-4.6.0-610a07828e-73dbb28a00.zip b/.yarn/cache/jasmine-npm-4.6.0-610a07828e-73dbb28a00.zip deleted file mode 100644 index 1e4531a523..0000000000 --- a/.yarn/cache/jasmine-npm-4.6.0-610a07828e-73dbb28a00.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3e6dc5d515a56c34ace4bdc67bb705ece1d52176b79ef5f186b0796ae2230f58 -size 50905 diff --git a/.yarn/cache/jasmine-spec-reporter-npm-6.0.0-575b473233-aab493d4e1.zip b/.yarn/cache/jasmine-spec-reporter-npm-6.0.0-575b473233-aab493d4e1.zip deleted file mode 100644 index 43498f44bf..0000000000 --- a/.yarn/cache/jasmine-spec-reporter-npm-6.0.0-575b473233-aab493d4e1.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:70476627eca6de83b93efacb70c8676343ee62d9cecf0b27e1b4d685b4a4a726 -size 233390 diff --git a/.yarn/cache/js-tokens-npm-9.0.1-3ed793c0c1-68dcab8f23.zip b/.yarn/cache/js-tokens-npm-9.0.1-3ed793c0c1-68dcab8f23.zip new file mode 100644 index 0000000000..d9434f9eac --- /dev/null +++ b/.yarn/cache/js-tokens-npm-9.0.1-3ed793c0c1-68dcab8f23.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8e589207ca5a15b7d81d42da47ff3347680f6a3098f1bec0c98990117c300aa +size 17019 diff --git a/.yarn/cache/loupe-npm-3.2.1-a8f491982f-910c872cba.zip b/.yarn/cache/loupe-npm-3.2.1-a8f491982f-910c872cba.zip new file mode 100644 index 0000000000..1c6b97f1af --- /dev/null +++ b/.yarn/cache/loupe-npm-3.2.1-a8f491982f-910c872cba.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adab65472835c9ad18a538a267c3991d03d2972975c45c8cdd77161122a3b6f3 +size 68174 diff --git a/.yarn/cache/lz-string-npm-1.5.0-3860794e30-36128e4de3.zip b/.yarn/cache/lz-string-npm-1.5.0-3860794e30-36128e4de3.zip new file mode 100644 index 0000000000..9b75f810fd --- /dev/null +++ b/.yarn/cache/lz-string-npm-1.5.0-3860794e30-36128e4de3.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:811685470e021d27795633463bd93ebf9f48b47f5ccdfd376e41b0cb6a199a25 +size 179699 diff --git a/.yarn/cache/magic-string-npm-0.30.21-9a226cb21e-299378e38f.zip b/.yarn/cache/magic-string-npm-0.30.21-9a226cb21e-299378e38f.zip new file mode 100644 index 0000000000..8e6f996cff --- /dev/null +++ b/.yarn/cache/magic-string-npm-0.30.21-9a226cb21e-299378e38f.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4f58e7bb6343eefbc1eaae79eadcfe005c252de0218902c2a21f6acb8f67327 +size 462031 diff --git a/.yarn/cache/mrmime-npm-2.0.1-c00bdddb2f-af05afd95a.zip b/.yarn/cache/mrmime-npm-2.0.1-c00bdddb2f-af05afd95a.zip new file mode 100644 index 0000000000..c6277694e9 --- /dev/null +++ b/.yarn/cache/mrmime-npm-2.0.1-c00bdddb2f-af05afd95a.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5c0ceab2549fedf0d64b5beae03d5aabe2db5114ffea96c269e4a491d814c74 +size 34054 diff --git a/.yarn/cache/nanoid-npm-3.3.11-f98c1f9ef6-40e7f70b3d.zip b/.yarn/cache/nanoid-npm-3.3.11-f98c1f9ef6-40e7f70b3d.zip new file mode 100644 index 0000000000..d99e463d0b --- /dev/null +++ b/.yarn/cache/nanoid-npm-3.3.11-f98c1f9ef6-40e7f70b3d.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:219d47651e4ba0249ccd730abce067b7dd12b3f4b54348622dabc013e67d2461 +size 37059 diff --git a/.yarn/cache/pathe-npm-2.0.3-0924246ee0-c118dc5a8b.zip b/.yarn/cache/pathe-npm-2.0.3-0924246ee0-c118dc5a8b.zip new file mode 100644 index 0000000000..52cb4f9e8a --- /dev/null +++ b/.yarn/cache/pathe-npm-2.0.3-0924246ee0-c118dc5a8b.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a76b6dc0f985650b3566f74621721a6fc80178d15da4bcc7c3f5099a2711863d +size 54152 diff --git a/.yarn/cache/pathval-npm-2.0.1-7fb9ae82ba-460f470947.zip b/.yarn/cache/pathval-npm-2.0.1-7fb9ae82ba-460f470947.zip new file mode 100644 index 0000000000..bb268b03c8 --- /dev/null +++ b/.yarn/cache/pathval-npm-2.0.1-7fb9ae82ba-460f470947.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2011dce3d80fb8a6460751f0ac20e79e94addd09ba0dd767fda9a1575af191ba +size 15125 diff --git a/.yarn/cache/playwright-core-npm-1.56.1-3f4e0b135f-ffd40142b9.zip b/.yarn/cache/playwright-core-npm-1.56.1-3f4e0b135f-ffd40142b9.zip new file mode 100644 index 0000000000..b94b2aa97f --- /dev/null +++ b/.yarn/cache/playwright-core-npm-1.56.1-3f4e0b135f-ffd40142b9.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a0c13e8ccd85fbd520e2b1af6cc5a61eb38d6009ddc9347a5a6e6200e769a34 +size 8301804 diff --git a/.yarn/cache/playwright-npm-1.56.1-a3ae71eaf6-8e9965aede.zip b/.yarn/cache/playwright-npm-1.56.1-a3ae71eaf6-8e9965aede.zip new file mode 100644 index 0000000000..ba1e72356b --- /dev/null +++ b/.yarn/cache/playwright-npm-1.56.1-a3ae71eaf6-8e9965aede.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e68fd0368a925edb02619d0b1c695ea98d6d89093b0bcb5648608865f36f859 +size 3909101 diff --git a/.yarn/cache/postcss-npm-8.5.6-e7f126c6f3-5127cc7c91.zip b/.yarn/cache/postcss-npm-8.5.6-e7f126c6f3-5127cc7c91.zip new file mode 100644 index 0000000000..1e897e80ed --- /dev/null +++ b/.yarn/cache/postcss-npm-8.5.6-e7f126c6f3-5127cc7c91.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8792ebee187db7955a6b68ba4568aa7484e8718aafdbed2234f2d8c05969cf2 +size 212937 diff --git a/.yarn/cache/pretty-format-npm-27.5.1-cd7d49696f-0cbda1031a.zip b/.yarn/cache/pretty-format-npm-27.5.1-cd7d49696f-0cbda1031a.zip new file mode 100644 index 0000000000..4ecfcb89de --- /dev/null +++ b/.yarn/cache/pretty-format-npm-27.5.1-cd7d49696f-0cbda1031a.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28bb4886a0f3c00af74747c19e6873107034cb138f4e05f674ae39c073d6fd33 +size 75666 diff --git a/.yarn/cache/react-is-npm-17.0.2-091bbb8db6-2bdb6b93fb.zip b/.yarn/cache/react-is-npm-17.0.2-091bbb8db6-2bdb6b93fb.zip new file mode 100644 index 0000000000..268a8a20ae --- /dev/null +++ b/.yarn/cache/react-is-npm-17.0.2-091bbb8db6-2bdb6b93fb.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:458c3d97f2ae602b3c163aee5d2752da610794eeeb6e7e3ca92d601eb67d1680 +size 26677 diff --git a/.yarn/cache/rollup-npm-4.52.5-c23b37a36e-faf1697b30.zip b/.yarn/cache/rollup-npm-4.52.5-c23b37a36e-faf1697b30.zip new file mode 100644 index 0000000000..64208cb34e --- /dev/null +++ b/.yarn/cache/rollup-npm-4.52.5-c23b37a36e-faf1697b30.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9755a93b5a03e3040184d90ab1142f9872e53ac0906cc2e55e174dbe4524927 +size 2765396 diff --git a/.yarn/cache/siginfo-npm-2.0.0-9bbac931f8-3def8f8e51.zip b/.yarn/cache/siginfo-npm-2.0.0-9bbac931f8-3def8f8e51.zip new file mode 100644 index 0000000000..2102ecfc07 --- /dev/null +++ b/.yarn/cache/siginfo-npm-2.0.0-9bbac931f8-3def8f8e51.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:157d827b470b3b8e6a2d40128489f2785ca7216fd5c58e2d8945c38f9c489397 +size 5847 diff --git a/.yarn/cache/sirv-npm-3.0.2-6cf658c733-5930e4397a.zip b/.yarn/cache/sirv-npm-3.0.2-6cf658c733-5930e4397a.zip new file mode 100644 index 0000000000..50de5ff3f5 --- /dev/null +++ b/.yarn/cache/sirv-npm-3.0.2-6cf658c733-5930e4397a.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c81cc0e0a8ed3b42a79edf832551fbdc655db3d92b870b7ae8a537f283aa017 +size 22909 diff --git a/.yarn/cache/source-map-js-npm-1.2.1-b9a47d7e1a-7bda1fc4c1.zip b/.yarn/cache/source-map-js-npm-1.2.1-b9a47d7e1a-7bda1fc4c1.zip new file mode 100644 index 0000000000..d392090f77 --- /dev/null +++ b/.yarn/cache/source-map-js-npm-1.2.1-b9a47d7e1a-7bda1fc4c1.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cf2fa2c0b3a4a8c70d566f90b232f74ca93cfed0e67174cad958b4f6cfe7b7d +size 143238 diff --git a/.yarn/cache/stackback-npm-0.0.2-73273dc92e-89a1416668.zip b/.yarn/cache/stackback-npm-0.0.2-73273dc92e-89a1416668.zip new file mode 100644 index 0000000000..e7d0a71a81 --- /dev/null +++ b/.yarn/cache/stackback-npm-0.0.2-73273dc92e-89a1416668.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7c940a41f5bc33dfffbeb1886d914f1ffadc6e6d91121166b319c665af3dfcb +size 8126 diff --git a/.yarn/cache/std-env-npm-3.10.0-30d3e2646f-1814927a45.zip b/.yarn/cache/std-env-npm-3.10.0-30d3e2646f-1814927a45.zip new file mode 100644 index 0000000000..6d8c2fa304 --- /dev/null +++ b/.yarn/cache/std-env-npm-3.10.0-30d3e2646f-1814927a45.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28ddf291f2068a74d772a70b499e36fbc192fb19a9cebca7260d6e0cebbc437d +size 27575 diff --git a/.yarn/cache/strip-literal-npm-3.1.0-b0340463b3-50918f6699.zip b/.yarn/cache/strip-literal-npm-3.1.0-b0340463b3-50918f6699.zip new file mode 100644 index 0000000000..7e11176dbf --- /dev/null +++ b/.yarn/cache/strip-literal-npm-3.1.0-b0340463b3-50918f6699.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c41c5029328093f43aa6bdbfa1dbbd3d84578b3b9e18169092ba0f81eb6a483 +size 12493 diff --git a/.yarn/cache/tinybench-npm-2.9.0-2861a048db-c3500b0f60.zip b/.yarn/cache/tinybench-npm-2.9.0-2861a048db-c3500b0f60.zip new file mode 100644 index 0000000000..7eecb1057c --- /dev/null +++ b/.yarn/cache/tinybench-npm-2.9.0-2861a048db-c3500b0f60.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:180d9c313b57c8eb7d518f32a695a3f9c5c6431a5eb6a168d3c67f67af32ffaa +size 64349 diff --git a/.yarn/cache/tinyexec-npm-0.3.2-381b1e349c-3efbf791a9.zip b/.yarn/cache/tinyexec-npm-0.3.2-381b1e349c-3efbf791a9.zip new file mode 100644 index 0000000000..aff5408c78 --- /dev/null +++ b/.yarn/cache/tinyexec-npm-0.3.2-381b1e349c-3efbf791a9.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78da4b0d9fe0aa98c3f2c57c1e5f83b76b82bbd7f6e2e847fa82a113fbd54536 +size 47464 diff --git a/.yarn/cache/tinyglobby-npm-0.2.14-d4e4bcf80e-f789ed6c92.zip b/.yarn/cache/tinyglobby-npm-0.2.14-d4e4bcf80e-f789ed6c92.zip deleted file mode 100644 index 393a1a861c..0000000000 --- a/.yarn/cache/tinyglobby-npm-0.2.14-d4e4bcf80e-f789ed6c92.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b77d961dea4fbd6265ee14ec79f6c65631a09687517ca4640827f4451c1c090c -size 32542 diff --git a/.yarn/cache/tinyglobby-npm-0.2.15-0e783aadbd-869c31490d.zip b/.yarn/cache/tinyglobby-npm-0.2.15-0e783aadbd-869c31490d.zip new file mode 100644 index 0000000000..3cc00ff4f6 --- /dev/null +++ b/.yarn/cache/tinyglobby-npm-0.2.15-0e783aadbd-869c31490d.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44d516e3f8ccd0c76e129d13f5c939dd817bf880dca354d83849f38169d7baeb +size 41601 diff --git a/.yarn/cache/tinypool-npm-1.1.1-6772421283-bf26727d01.zip b/.yarn/cache/tinypool-npm-1.1.1-6772421283-bf26727d01.zip new file mode 100644 index 0000000000..6112f77916 --- /dev/null +++ b/.yarn/cache/tinypool-npm-1.1.1-6772421283-bf26727d01.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3b03ebe47545637bf102dfb6372c6ac170ab6230f2e87bf75b193cee0722b91 +size 46843 diff --git a/.yarn/cache/tinyrainbow-npm-2.0.0-b4ba575b93-c83c52bef4.zip b/.yarn/cache/tinyrainbow-npm-2.0.0-b4ba575b93-c83c52bef4.zip new file mode 100644 index 0000000000..31a634b17c --- /dev/null +++ b/.yarn/cache/tinyrainbow-npm-2.0.0-b4ba575b93-c83c52bef4.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51705b54342a8984d3f1f299dc6e003a8dc65227cbb4e9b235b427821ba8522c +size 9892 diff --git a/.yarn/cache/tinyspy-npm-4.0.4-94a3f61e82-a8020fc177.zip b/.yarn/cache/tinyspy-npm-4.0.4-94a3f61e82-a8020fc177.zip new file mode 100644 index 0000000000..7848f70eee --- /dev/null +++ b/.yarn/cache/tinyspy-npm-4.0.4-94a3f61e82-a8020fc177.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f03e2fc55b32b7b0f3643398b98d2728a6f1a89bb70a40d6ff40ff5a2314561 +size 11799 diff --git a/.yarn/cache/totalist-npm-3.0.1-91e71f3baa-4bb1fadb69.zip b/.yarn/cache/totalist-npm-3.0.1-91e71f3baa-4bb1fadb69.zip new file mode 100644 index 0000000000..ee19daeb21 --- /dev/null +++ b/.yarn/cache/totalist-npm-3.0.1-91e71f3baa-4bb1fadb69.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d826de0e331f4c9cc3dde508687ed59670e50a84fae66522a8bd9398ae6d353 +size 9257 diff --git a/.yarn/cache/vite-node-npm-3.2.4-cb1d79df3b-6ceca67c00.zip b/.yarn/cache/vite-node-npm-3.2.4-cb1d79df3b-6ceca67c00.zip new file mode 100644 index 0000000000..d72e3c666e --- /dev/null +++ b/.yarn/cache/vite-node-npm-3.2.4-cb1d79df3b-6ceca67c00.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e21770c291d72d02782ec89beab778ab34dc816239db7cd02ce66ab240969165 +size 229909 diff --git a/.yarn/cache/vite-npm-7.1.12-4c5705516c-cef4d4b4a8.zip b/.yarn/cache/vite-npm-7.1.12-4c5705516c-cef4d4b4a8.zip new file mode 100644 index 0000000000..8237a6e6f4 --- /dev/null +++ b/.yarn/cache/vite-npm-7.1.12-4c5705516c-cef4d4b4a8.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba166455745cefb94029bbecb01da371b3b1f75ef837b2ff7945d0c24718d4b9 +size 2254659 diff --git a/.yarn/cache/vitest-npm-3.2.4-7a07f931b1-5bf53ede3a.zip b/.yarn/cache/vitest-npm-3.2.4-7a07f931b1-5bf53ede3a.zip new file mode 100644 index 0000000000..631491f51c --- /dev/null +++ b/.yarn/cache/vitest-npm-3.2.4-7a07f931b1-5bf53ede3a.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca5efc49370208487e4f98c3b1eb77ba959691997f3e784d7c646618ee9f5394 +size 1397120 diff --git a/.yarn/cache/why-is-node-running-npm-2.3.0-011cf61a18-1cde0b01b8.zip b/.yarn/cache/why-is-node-running-npm-2.3.0-011cf61a18-1cde0b01b8.zip new file mode 100644 index 0000000000..ca7d2d910c --- /dev/null +++ b/.yarn/cache/why-is-node-running-npm-2.3.0-011cf61a18-1cde0b01b8.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:115696a65130cdebfac46b512844e5baf8015566dcf11225a976ab93921eb841 +size 9018 diff --git a/.yarn/cache/ws-npm-8.18.3-665d39209d-eac918213d.zip b/.yarn/cache/ws-npm-8.18.3-665d39209d-eac918213d.zip new file mode 100644 index 0000000000..c9eb35f800 --- /dev/null +++ b/.yarn/cache/ws-npm-8.18.3-665d39209d-eac918213d.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25bed094e956adeb0b6e4276bd8e657e19f63bff728956b9201bc8f9190897c3 +size 150280 diff --git a/jasmine-spec-reporter.config.json b/jasmine-spec-reporter.config.json deleted file mode 100644 index 4c28729d91..0000000000 --- a/jasmine-spec-reporter.config.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "suite": { - "displayNumber": true - }, - "spec": { - "displayDuration": true - }, - "summary": { - "displayPending": false, - "displayStacktrace": "pretty" - } -} diff --git a/package.json b/package.json index 35688bb41d..e58606bc73 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "lint-fix": "eslint --max-warnings 0 --fix .", "test": "yarn workspaces foreach --all --topological-dev --parallel --verbose run test", "test-firefox": "yarn workspaces foreach --all --topological-dev --parallel --verbose run test-firefox", - "test-chrome": "yarn workspaces foreach --all --topological-dev --parallel --verbose run test-chrome", + "test-chrome": "playwright install && yarn workspaces foreach --all --topological-dev --parallel --verbose run test-chrome", "coverage": "yarn workspaces foreach --all --topological-dev --parallel --verbose run coverage", "build": "yarn workspaces foreach --all --topological-dev --parallel --verbose run build", "docs": "yarn workspaces foreach --all --topological-dev --parallel --verbose run docs", @@ -49,6 +49,7 @@ "@eslint/js": "^9.32.0", "@typescript-eslint/eslint-plugin": "^8.46.0", "@typescript-eslint/parser": "^8.46.0", + "@vitest/browser": "^3.2.4", "eslint": "^9.32.0", "eslint-config-prettier": "^8.3.0", "eslint-import-resolver-typescript": "^4.4.4", @@ -56,8 +57,11 @@ "eslint-plugin-prettier": "^5.5.0", "eslint-plugin-simple-import-sort": "^7.0.0", "globals": "^16.3.0", + "playwright": "^1.56.0", "prettier": "^3.6.2", - "typescript": "~5.9" + "ses": "^1.13.0", + "typescript": "~5.9", + "vitest": "^3.2.4" }, "packageManager": "yarn@4.9.2" } diff --git a/packages/amino/jasmine-testrunner.cjs b/packages/amino/jasmine-testrunner.cjs deleted file mode 100644 index 96247348c4..0000000000 --- a/packages/amino/jasmine-testrunner.cjs +++ /dev/null @@ -1,36 +0,0 @@ -if (process.env.SES_ENABLED) { - require("ses"); - // eslint-disable-next-line no-undef - lockdown(); -} - -require("source-map-support").install(); -const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); - -// setup Jasmine -const Jasmine = require("jasmine"); -const jasmine = new Jasmine(); -jasmine.loadConfig({ - spec_dir: "build", - spec_files: ["**/*.spec.js"], - helpers: [], - random: false, - seed: null, - stopSpecOnExpectationFailure: false, -}); -jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * 1000; - -// setup reporter -const { SpecReporter } = require("jasmine-spec-reporter"); -const reporter = new SpecReporter({ - ...defaultSpecReporterConfig, - spec: { - ...defaultSpecReporterConfig.spec, - displaySuccessful: !process.argv.includes("--quiet"), - }, -}); - -// initialize and execute -jasmine.env.clearReporters(); -jasmine.addReporter(reporter); -void jasmine.execute(); diff --git a/packages/amino/package.json b/packages/amino/package.json index d409dca3fd..6b32f2b894 100644 --- a/packages/amino/package.json +++ b/packages/amino/package.json @@ -29,15 +29,18 @@ "docs": "typedoc", "format": "prettier --write --log-level warn \"./src/**/*.ts\"", "format-text": "prettier --write \"./*.md\"", - "test-node": "yarn node jasmine-testrunner.cjs", + "test-node": "vitest run", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox karma.conf.cjs", - "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless karma.conf.cjs", + "test-chrome": "vitest run --browser", "test": "yarn build-or-skip && yarn test-node", - "coverage": "nyc --reporter=text --reporter=lcov yarn test --quiet", + "coverage": "nyc --reporter=text --reporter=lcov yarn test", "build": "rm -rf ./build && tsc", "build-or-skip": "[ -n \"${SKIP_BUILD:-}\" ] || yarn build", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.cjs" }, + "engines": { + "node": "^20.19 || >=22.12" + }, "dependencies": { "@cosmjs/crypto": "workspace:^", "@cosmjs/encoding": "workspace:^", @@ -46,13 +49,10 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@types/jasmine": "^4", "@types/karma-firefox-launcher": "^2", "@types/karma-jasmine": "^4", "@types/karma-jasmine-html-reporter": "^1", "glob": "^11", - "jasmine": "^4", - "jasmine-spec-reporter": "^6", "karma": "^6.3.14", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.0", @@ -64,6 +64,7 @@ "source-map-support": "^0.5.19", "typedoc": "^0.28", "typescript": "~5.9", + "vitest": "^3.2.4", "webpack": "^5.76.0", "webpack-cli": "^4.6.0" }, diff --git a/packages/amino/src/encoding.spec.ts b/packages/amino/src/encoding.spec.ts index 5cad53a55c..e0ca376720 100644 --- a/packages/amino/src/encoding.spec.ts +++ b/packages/amino/src/encoding.spec.ts @@ -81,7 +81,7 @@ describe("encoding", () => { }); }); - xit("works for sr25519", () => { + it.skip("works for sr25519", () => { // No test data available }); diff --git a/packages/amino/src/secp256k1hdwallet.spec.ts b/packages/amino/src/secp256k1hdwallet.spec.ts index e731ab72d8..173445ffbf 100644 --- a/packages/amino/src/secp256k1hdwallet.spec.ts +++ b/packages/amino/src/secp256k1hdwallet.spec.ts @@ -281,9 +281,9 @@ describe("Secp256k1HdWallet", () => { encryption: { algorithm: "xchacha20poly1305-ietf", }, - data: jasmine.stringMatching(base64Matcher), + data: expect.stringMatching(base64Matcher), }); - }); + }, 8000); }); describe("serializeWithEncryptionKey", () => { @@ -306,7 +306,7 @@ describe("Secp256k1HdWallet", () => { encryption: { algorithm: "xchacha20poly1305-ietf", }, - data: jasmine.stringMatching(base64Matcher), + data: expect.stringMatching(base64Matcher), }); }); }); diff --git a/packages/cosmwasm-stargate/jasmine-testrunner.cjs b/packages/cosmwasm-stargate/jasmine-testrunner.cjs deleted file mode 100644 index 96247348c4..0000000000 --- a/packages/cosmwasm-stargate/jasmine-testrunner.cjs +++ /dev/null @@ -1,36 +0,0 @@ -if (process.env.SES_ENABLED) { - require("ses"); - // eslint-disable-next-line no-undef - lockdown(); -} - -require("source-map-support").install(); -const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); - -// setup Jasmine -const Jasmine = require("jasmine"); -const jasmine = new Jasmine(); -jasmine.loadConfig({ - spec_dir: "build", - spec_files: ["**/*.spec.js"], - helpers: [], - random: false, - seed: null, - stopSpecOnExpectationFailure: false, -}); -jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * 1000; - -// setup reporter -const { SpecReporter } = require("jasmine-spec-reporter"); -const reporter = new SpecReporter({ - ...defaultSpecReporterConfig, - spec: { - ...defaultSpecReporterConfig.spec, - displaySuccessful: !process.argv.includes("--quiet"), - }, -}); - -// initialize and execute -jasmine.env.clearReporters(); -jasmine.addReporter(reporter); -void jasmine.execute(); diff --git a/packages/cosmwasm-stargate/package.json b/packages/cosmwasm-stargate/package.json index b9c0cde32f..ddf3e1d6cd 100644 --- a/packages/cosmwasm-stargate/package.json +++ b/packages/cosmwasm-stargate/package.json @@ -31,13 +31,16 @@ "format-text": "prettier --write \"./*.md\"", "build": "rm -rf ./build && tsc", "build-or-skip": "[ -n \"${SKIP_BUILD:-}\" ] || yarn build", - "test-node": "yarn node jasmine-testrunner.cjs", + "test-node": "vitest run --no-file-parallelism", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox karma.conf.cjs", "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless karma.conf.cjs", "test": "yarn build-or-skip && yarn test-node", "coverage": "nyc --reporter=text --reporter=lcov yarn test --quiet", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.cjs" }, + "engines": { + "node": "^20.19 || >=22.12" + }, "dependencies": { "@cosmjs/amino": "workspace:^", "@cosmjs/crypto": "workspace:^", @@ -51,14 +54,11 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@types/jasmine": "^4", "@types/karma-firefox-launcher": "^2", "@types/karma-jasmine": "^4", "@types/karma-jasmine-html-reporter": "^1", "@types/node": "*", "glob": "^11", - "jasmine": "^4", - "jasmine-spec-reporter": "^6", "karma": "^6.3.14", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.0", @@ -71,6 +71,7 @@ "source-map-support": "^0.5.19", "typedoc": "^0.28", "typescript": "~5.9", + "vitest": "^3.2.4", "webpack": "^5.76.0", "webpack-cli": "^4.6.0" }, diff --git a/packages/cosmwasm-stargate/src/compression.spec.ts b/packages/cosmwasm-stargate/src/compression.spec.ts index 0e842d48fa..1b61577bea 100644 --- a/packages/cosmwasm-stargate/src/compression.spec.ts +++ b/packages/cosmwasm-stargate/src/compression.spec.ts @@ -34,11 +34,11 @@ describe("compression", () => { // - [...] // - and an 8-byte footer, containing a CRC-32 checksum and the length of the original uncompressed data." // https://bits.ashleyblewer.com/blog/2024/01/12/researching-file-formats-20-gzip/ - expect(compressed.length).withContext(`Data with index ${index}`).toBeGreaterThanOrEqual(18); + expect(compressed.length, `Data with index ${index}`).toBeGreaterThanOrEqual(18); expect(compressed.slice(0, 3)).toEqual(fromHex("1F8B08")); expect(compressed.subarray(-4)).toEqual(new Uint32(original.length).toBytesLittleEndian()); expect(await uncompress(compressed)).toEqual(original); } - }); + }, 15000); }); }); diff --git a/packages/cosmwasm-stargate/src/cosmwasmclient.searchtx.spec.ts b/packages/cosmwasm-stargate/src/cosmwasmclient.searchtx.spec.ts index ad2bf8fb39..42aac27235 100644 --- a/packages/cosmwasm-stargate/src/cosmwasmclient.searchtx.spec.ts +++ b/packages/cosmwasm-stargate/src/cosmwasmclient.searchtx.spec.ts @@ -92,7 +92,7 @@ async function sendTokens( }; } -(wasmdEnabled ? describe : xdescribe)("CosmWasmClient.getTx and .searchTx", () => { +(wasmdEnabled ? describe : describe.skip)("CosmWasmClient.getTx and .searchTx", () => { const registry = new Registry(); let sendUnsuccessful: TestTxSend | undefined; @@ -150,7 +150,7 @@ async function sendTokens( const client = await CosmWasmClient.connect(wasmd.endpoint); const result = await client.getTx(sendSuccessful.hash); expect(result).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ height: sendSuccessful.height, txIndex: sendSuccessful.txIndex, hash: sendSuccessful.hash, @@ -165,7 +165,7 @@ async function sendTokens( const client = await CosmWasmClient.connect(wasmd.endpoint); const result = await client.getTx(sendUnsuccessful.hash); expect(result).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ height: sendUnsuccessful.height, txIndex: sendUnsuccessful.txIndex, hash: sendUnsuccessful.hash, @@ -190,7 +190,7 @@ async function sendTokens( const result = await client.searchTx(`tx.height=${sendSuccessful.height}`); expect(result.length).toBeGreaterThanOrEqual(1); expect(result).toContain( - jasmine.objectContaining({ + expect.objectContaining({ height: sendSuccessful.height, txIndex: sendSuccessful.txIndex, hash: sendSuccessful.hash, @@ -206,7 +206,7 @@ async function sendTokens( const result = await client.searchTx(`tx.height=${sendUnsuccessful.height}`); expect(result.length).toBeGreaterThanOrEqual(1); expect(result).toContain( - jasmine.objectContaining({ + expect.objectContaining({ height: sendUnsuccessful.height, txIndex: sendUnsuccessful.txIndex, hash: sendUnsuccessful.hash, @@ -236,7 +236,7 @@ async function sendTokens( // Check details of most recent result expect(results[results.length - 1]).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ height: sendSuccessful.height, txIndex: sendSuccessful.txIndex, hash: sendSuccessful.hash, @@ -264,7 +264,7 @@ async function sendTokens( // Check details of most recent result expect(results[results.length - 1]).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ height: sendSuccessful.height, hash: sendSuccessful.hash, tx: sendSuccessful.tx, @@ -289,7 +289,7 @@ async function sendTokens( // Check details of most recent result expect(results[results.length - 1]).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ height: sendSuccessful.height, hash: sendSuccessful.hash, tx: sendSuccessful.tx, diff --git a/packages/cosmwasm-stargate/src/cosmwasmclient.spec.ts b/packages/cosmwasm-stargate/src/cosmwasmclient.spec.ts index 150b60ff06..980292986b 100644 --- a/packages/cosmwasm-stargate/src/cosmwasmclient.spec.ts +++ b/packages/cosmwasm-stargate/src/cosmwasmclient.spec.ts @@ -38,7 +38,7 @@ interface HackatomInstance { readonly address: string; } -(wasmdEnabled ? describe : xdescribe)("CosmWasmClient", () => { +(wasmdEnabled ? describe : describe.skip)("CosmWasmClient", () => { describe("connect", () => { it("can be constructed", async () => { const client = await CosmWasmClient.connect(wasmd.endpoint); @@ -55,7 +55,7 @@ interface HackatomInstance { it("caches chain ID", async () => { const client = await CosmWasmClient.connect(wasmd.endpoint); const openedClient = client as unknown as PrivateCosmWasmClient; - const getCodeSpy = spyOn(openedClient.cometClient!, "status").and.callThrough(); + const getCodeSpy = vi.spyOn(openedClient.cometClient!, "status"); expect(await client.getChainId()).toEqual(wasmd.chainId); // from network expect(await client.getChainId()).toEqual(wasmd.chainId); // from cache @@ -109,7 +109,7 @@ interface HackatomInstance { it("rejects for missing accounts", async () => { const client = await CosmWasmClient.connect(wasmd.endpoint); const missing = makeRandomAddress(); - await expectAsync(client.getSequence(missing)).toBeRejectedWithError( + await expect(client.getSequence(missing)).rejects.toThrowError( /account '([a-z0-9]{10,90})' does not exist on chain/i, ); }); @@ -243,7 +243,7 @@ interface HackatomInstance { }; // check info - expect(result).toEqual(jasmine.objectContaining(expectedInfo)); + expect(result).toEqual(expect.objectContaining(expectedInfo)); // check data expect(sha256(result.data)).toEqual(fromHex(expectedInfo.checksum)); }); @@ -251,7 +251,7 @@ interface HackatomInstance { it("caches downloads", async () => { const client = await CosmWasmClient.connect(wasmd.endpoint); const openedClient = client as unknown as PrivateCosmWasmClient; - const getCodeSpy = spyOn(openedClient.queryClient!.wasm, "getCode").and.callThrough(); + const getCodeSpy = vi.spyOn(openedClient.queryClient!.wasm, "getCode"); const result1 = await client.getCodeDetails(deployedHackatom.codeId); // from network const result2 = await client.getCodeDetails(deployedHackatom.codeId); // from cache @@ -319,7 +319,7 @@ interface HackatomInstance { const client = await CosmWasmClient.connect(wasmd.endpoint); const contract = await client.getContract(deployedIbcReflect.instances[0].address); expect(contract).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ address: deployedIbcReflect.instances[0].address, codeId: deployedIbcReflect.codeId, ibcPortId: deployedIbcReflect.instances[0].ibcPortId, @@ -375,7 +375,7 @@ interface HackatomInstance { const nonExistentAddress = makeRandomAddress(); const client = await CosmWasmClient.connect(wasmd.endpoint); - await expectAsync(client.queryContractRaw(nonExistentAddress, configKey)).toBeRejectedWithError( + await expect(client.queryContractRaw(nonExistentAddress, configKey)).rejects.toThrowError( /no such contract/i, ); }); @@ -422,7 +422,7 @@ interface HackatomInstance { assert(contract); const client = await CosmWasmClient.connect(wasmd.endpoint); - await expectAsync(client.queryContractSmart(contract.address, { broken: {} })).toBeRejectedWithError( + await expect(client.queryContractSmart(contract.address, { broken: {} })).rejects.toThrowError( /Error parsing into type hackatom::msg::QueryMsg: unknown variant/i, ); }); @@ -430,9 +430,9 @@ interface HackatomInstance { it("errors for non-existent contract", async () => { const nonExistentAddress = makeRandomAddress(); const client = await CosmWasmClient.connect(wasmd.endpoint); - await expectAsync( - client.queryContractSmart(nonExistentAddress, { verifier: {} }), - ).toBeRejectedWithError(/no such contract/i); + await expect(client.queryContractSmart(nonExistentAddress, { verifier: {} })).rejects.toThrowError( + /no such contract/i, + ); }); }); }); diff --git a/packages/cosmwasm-stargate/src/modules/wasm/queries.spec.ts b/packages/cosmwasm-stargate/src/modules/wasm/queries.spec.ts index 5157bdb9b8..fe4c50ecd3 100644 --- a/packages/cosmwasm-stargate/src/modules/wasm/queries.spec.ts +++ b/packages/cosmwasm-stargate/src/modules/wasm/queries.spec.ts @@ -123,7 +123,7 @@ async function executeContract( return client.signAndBroadcast(firstAddress, [theMsg], fee, memo); } -(wasmdEnabled ? describe : xdescribe)("WasmExtension", () => { +(wasmdEnabled ? describe : describe.skip)("WasmExtension", () => { const hackatom = getHackatom(); const hackatomConfigKey = toAscii("config"); let hackatomCodeId: number | undefined; @@ -206,7 +206,7 @@ async function executeContract( const { contractInfo } = await client.wasm.getContractInfo(myAddress); assert(contractInfo); expect(contractInfo).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ codeId: BigInt(hackatomCodeId), creator: alice.address0, label: "my escrow", @@ -226,9 +226,7 @@ async function executeContract( assert(hackatomCodeId); const client = await makeWasmClient(wasmd.endpoint); const nonExistentAddress = makeRandomAddress(); - await expectAsync(client.wasm.getContractInfo(nonExistentAddress)).toBeRejectedWithError( - /no such contract/i, - ); + await expect(client.wasm.getContractInfo(nonExistentAddress)).rejects.toThrowError(/no such contract/i); }); }); @@ -252,7 +250,7 @@ async function executeContract( const history = await client.wasm.getContractCodeHistory(myAddress); assert(history.entries); expect(history.entries).toContain( - jasmine.objectContaining({ + expect.objectContaining({ codeId: BigInt(hackatomCodeId), operation: ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT, msg: toUtf8( @@ -291,7 +289,7 @@ async function executeContract( it("rejects for non-existent address", async () => { const client = await makeWasmClient(wasmd.endpoint); const nonExistentAddress = makeRandomAddress(); - await expectAsync(client.wasm.getAllContractState(nonExistentAddress)).toBeRejectedWithError( + await expect(client.wasm.getAllContractState(nonExistentAddress)).rejects.toThrowError( /no such contract/i, ); }); @@ -318,9 +316,9 @@ async function executeContract( it("returns null for non-existent address", async () => { const client = await makeWasmClient(wasmd.endpoint); const nonExistentAddress = makeRandomAddress(); - await expectAsync( - client.wasm.queryContractRaw(nonExistentAddress, hackatomConfigKey), - ).toBeRejectedWithError(/no such contract/i); + await expect(client.wasm.queryContractRaw(nonExistentAddress, hackatomConfigKey)).rejects.toThrowError( + /no such contract/i, + ); }); }); @@ -337,16 +335,16 @@ async function executeContract( assert(hackatomContractAddress); const client = await makeWasmClient(wasmd.endpoint); const request = { nosuchkey: {} }; - await expectAsync( - client.wasm.queryContractSmart(hackatomContractAddress, request), - ).toBeRejectedWithError(/Error parsing into type hackatom::msg::QueryMsg: unknown variant/i); + await expect(client.wasm.queryContractSmart(hackatomContractAddress, request)).rejects.toThrowError( + /Error parsing into type hackatom::msg::QueryMsg: unknown variant/i, + ); }); it("throws for non-existent address", async () => { const client = await makeWasmClient(wasmd.endpoint); const nonExistentAddress = makeRandomAddress(); const request = { verifier: {} }; - await expectAsync(client.wasm.queryContractSmart(nonExistentAddress, request)).toBeRejectedWithError( + await expect(client.wasm.queryContractSmart(nonExistentAddress, request)).rejects.toThrowError( /no such contract/i, ); }); diff --git a/packages/cosmwasm-stargate/src/signingcosmwasmclient.spec.ts b/packages/cosmwasm-stargate/src/signingcosmwasmclient.spec.ts index 1a0e07099d..4b25275066 100644 --- a/packages/cosmwasm-stargate/src/signingcosmwasmclient.spec.ts +++ b/packages/cosmwasm-stargate/src/signingcosmwasmclient.spec.ts @@ -50,7 +50,7 @@ import { wasmdEnabled, } from "./testutils"; -(wasmdEnabled ? describe : xdescribe)("SigningCosmWasmClient", () => { +(wasmdEnabled ? describe : describe.skip)("SigningCosmWasmClient", () => { describe("connectWithSigner", () => { it("can be constructed", async () => { const wallet = await DirectSecp256k1HdWallet.fromMnemonic(alice.mnemonic, { prefix: wasmd.prefix }); @@ -143,7 +143,7 @@ import { }); // Test disabled. Known issue: https://github.com/CosmWasm/wasmd/issues/1863 - xit("works with Amino JSON signer (instantiatePermission set to one address)", async () => { + it.skip("works with Amino JSON signer (instantiatePermission set to one address)", async () => { const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic, { prefix: wasmd.prefix }); const client = await SigningCosmWasmClient.connectWithSigner( wasmd.endpoint, @@ -170,7 +170,7 @@ import { }); // Test disabled. Known issue: https://github.com/CosmWasm/wasmd/issues/1863 - xit("works with Amino JSON signer (instantiatePermission set to everybody)", async () => { + it.skip("works with Amino JSON signer (instantiatePermission set to everybody)", async () => { const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic, { prefix: wasmd.prefix }); const client = await SigningCosmWasmClient.connectWithSigner( wasmd.endpoint, @@ -1339,10 +1339,8 @@ import { const height = await client.getHeight(); const signed = await client.sign(alice.address0, [msgAny], fee, memo, undefined, BigInt(height - 1)); - await expectAsync( - client.broadcastTx(Uint8Array.from(TxRaw.encode(signed).finish())), - ).toBeRejectedWith( - jasmine.objectContaining({ + await expect(client.broadcastTx(Uint8Array.from(TxRaw.encode(signed).finish()))).rejects.toThrowError( + expect.objectContaining({ code: 30, }), ); @@ -1615,10 +1613,8 @@ import { const height = await client.getHeight(); const signed = await client.sign(alice.address0, [msgAny], fee, memo, undefined, BigInt(height - 1)); - await expectAsync( - client.broadcastTx(Uint8Array.from(TxRaw.encode(signed).finish())), - ).toBeRejectedWith( - jasmine.objectContaining({ + await expect(client.broadcastTx(Uint8Array.from(TxRaw.encode(signed).finish()))).rejects.toThrowError( + expect.objectContaining({ code: 30, }), ); diff --git a/packages/crypto/jasmine-testrunner.cjs b/packages/crypto/jasmine-testrunner.cjs deleted file mode 100644 index 96247348c4..0000000000 --- a/packages/crypto/jasmine-testrunner.cjs +++ /dev/null @@ -1,36 +0,0 @@ -if (process.env.SES_ENABLED) { - require("ses"); - // eslint-disable-next-line no-undef - lockdown(); -} - -require("source-map-support").install(); -const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); - -// setup Jasmine -const Jasmine = require("jasmine"); -const jasmine = new Jasmine(); -jasmine.loadConfig({ - spec_dir: "build", - spec_files: ["**/*.spec.js"], - helpers: [], - random: false, - seed: null, - stopSpecOnExpectationFailure: false, -}); -jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * 1000; - -// setup reporter -const { SpecReporter } = require("jasmine-spec-reporter"); -const reporter = new SpecReporter({ - ...defaultSpecReporterConfig, - spec: { - ...defaultSpecReporterConfig.spec, - displaySuccessful: !process.argv.includes("--quiet"), - }, -}); - -// initialize and execute -jasmine.env.clearReporters(); -jasmine.addReporter(reporter); -void jasmine.execute(); diff --git a/packages/crypto/package.json b/packages/crypto/package.json index 748c42f49c..2d58892ef9 100644 --- a/packages/crypto/package.json +++ b/packages/crypto/package.json @@ -29,15 +29,18 @@ "docs": "typedoc", "format": "prettier --write --log-level warn \"./src/**/*.ts\"", "format-text": "prettier --write \"./*.md\"", - "test-node": "yarn node jasmine-testrunner.cjs", + "test-node": "vitest run", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox karma.conf.cjs", - "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless karma.conf.cjs", + "test-chrome": "vitest run --browser", "test": "yarn build-or-skip && yarn test-node", - "coverage": "nyc --reporter=text --reporter=lcov yarn test --quiet", + "coverage": "nyc --reporter=text --reporter=lcov yarn test", "build": "rm -rf ./build && tsc", "build-or-skip": "[ -n \"${SKIP_BUILD:-}\" ] || yarn build", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.cjs" }, + "engines": { + "node": "^20.19 || >=22.12" + }, "dependencies": { "@cosmjs/encoding": "workspace:^", "@cosmjs/math": "workspace:^", @@ -50,14 +53,11 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@types/jasmine": "^4", "@types/karma-firefox-launcher": "^2", "@types/karma-jasmine": "^4", "@types/karma-jasmine-html-reporter": "^1", "@types/node": "*", "glob": "^11", - "jasmine": "^4", - "jasmine-spec-reporter": "^6", "karma": "^6.3.14", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.0", @@ -69,6 +69,7 @@ "source-map-support": "^0.5.19", "typedoc": "^0.28", "typescript": "~5.9", + "vitest": "^3.2.4", "webpack": "^5.76.0", "webpack-cli": "^4.6.0" }, diff --git a/packages/crypto/src/libsodium.spec.ts b/packages/crypto/src/libsodium.spec.ts index d86a9df163..b40927cca9 100644 --- a/packages/crypto/src/libsodium.spec.ts +++ b/packages/crypto/src/libsodium.spec.ts @@ -127,25 +127,25 @@ describe("Libsodium", () => { }; // 8 bytes - await expectAsync( - Argon2id.execute(password, fromHex("aabbccddeeff0011"), options), - ).toBeRejectedWithError(/invalid salt length/); + await expect(Argon2id.execute(password, fromHex("aabbccddeeff0011"), options)).rejects.toThrowError( + /invalid salt length/, + ); // 15 bytes - await expectAsync( + await expect( Argon2id.execute(password, fromHex("aabbccddeeff001122334455667788"), options), - ).toBeRejectedWithError(/invalid salt length/); + ).rejects.toThrowError(/invalid salt length/); // 17 bytes - await expectAsync( + await expect( Argon2id.execute(password, fromHex("aabbccddeeff00112233445566778899aa"), options), - ).toBeRejectedWithError(/invalid salt length/); + ).rejects.toThrowError(/invalid salt length/); // 32 bytes - await expectAsync( + await expect( Argon2id.execute( password, fromHex("aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899"), options, ), - ).toBeRejectedWithError(/invalid salt length/); + ).rejects.toThrowError(/invalid salt length/); }); }); @@ -217,13 +217,13 @@ describe("Libsodium", () => { { // seed too short const seed = fromHex("43a9c17ccbb0e767ea29ce1f10813afde5f1e0a7a504e89b4d2cc2b952b8e0"); - await expectAsync(Ed25519.makeKeypair(seed)).toBeRejectedWithError(/key of length 32 expected/); + await expect(Ed25519.makeKeypair(seed)).rejects.toThrowError(/key of length 32 expected/); } { // seed too long const seed = fromHex("43a9c17ccbb0e767ea29ce1f10813afde5f1e0a7a504e89b4d2cc2b952b8e0b9aa"); - await expectAsync(Ed25519.makeKeypair(seed)).toBeRejectedWithError(/key of length 32 expected/); + await expect(Ed25519.makeKeypair(seed)).rejects.toThrowError(/key of length 32 expected/); } }); @@ -393,21 +393,21 @@ describe("Libsodium", () => { { // empty const key = fromHex(""); - await expectAsync(Xchacha20poly1305Ietf.encrypt(message, key, nonce)).toBeRejectedWithError( + await expect(Xchacha20poly1305Ietf.encrypt(message, key, nonce)).rejects.toThrowError( /key, got length=0/, ); } { // 31 bytes const key = fromHex("1324cdddc4b94e625bbabcac862c9429ba011e2184a1ccad60e7c3f6ff4916"); - await expectAsync(Xchacha20poly1305Ietf.encrypt(message, key, nonce)).toBeRejectedWithError( + await expect(Xchacha20poly1305Ietf.encrypt(message, key, nonce)).rejects.toThrowError( /key, got length=31/, ); } { // 33 bytes const key = fromHex("1324cdddc4b94e625bbabcac862c9429ba011e2184a1ccad60e7c3f6ff4916d8aa"); - await expectAsync(Xchacha20poly1305Ietf.encrypt(message, key, nonce)).toBeRejectedWithError( + await expect(Xchacha20poly1305Ietf.encrypt(message, key, nonce)).rejects.toThrowError( /key, got length=33/, ); } @@ -416,7 +416,7 @@ describe("Libsodium", () => { const key = fromHex( "1324cdddc4b94e625bbabcac862c9429ba011e2184a1ccad60e7c3f6ff4916d81324cdddc4b94e625bbabcac862c9429ba011e2184a1ccad60e7c3f6ff4916d8", ); - await expectAsync(Xchacha20poly1305Ietf.encrypt(message, key, nonce)).toBeRejectedWithError( + await expect(Xchacha20poly1305Ietf.encrypt(message, key, nonce)).rejects.toThrowError( /key, got length=64/, ); } @@ -438,23 +438,23 @@ describe("Libsodium", () => { { // corrupted ciphertext const corruptedCiphertext = ciphertext.map((x, i) => (i === 0 ? x ^ 0x01 : x)); - await expectAsync( - Xchacha20poly1305Ietf.decrypt(corruptedCiphertext, key, nonce), - ).toBeRejectedWithError(/invalid tag/i); + await expect(Xchacha20poly1305Ietf.decrypt(corruptedCiphertext, key, nonce)).rejects.toThrowError( + /invalid tag/i, + ); } { // corrupted key const corruptedKey = key.map((x, i) => (i === 0 ? x ^ 0x01 : x)); - await expectAsync( - Xchacha20poly1305Ietf.decrypt(ciphertext, corruptedKey, nonce), - ).toBeRejectedWithError(/invalid tag/i); + await expect(Xchacha20poly1305Ietf.decrypt(ciphertext, corruptedKey, nonce)).rejects.toThrowError( + /invalid tag/i, + ); } { // corrupted nonce const corruptedNonce = nonce.map((x, i) => (i === 0 ? x ^ 0x01 : x)); - await expectAsync( - Xchacha20poly1305Ietf.decrypt(ciphertext, key, corruptedNonce), - ).toBeRejectedWithError(/invalid tag/i); + await expect(Xchacha20poly1305Ietf.decrypt(ciphertext, key, corruptedNonce)).rejects.toThrowError( + /invalid tag/i, + ); } }); diff --git a/packages/crypto/src/pbkdf2.spec.ts b/packages/crypto/src/pbkdf2.spec.ts index 4be9bc617d..1cb1e46e3f 100644 --- a/packages/crypto/src/pbkdf2.spec.ts +++ b/packages/crypto/src/pbkdf2.spec.ts @@ -115,7 +115,7 @@ describe("pbkdf2", () => { for (const [index, test] of brycxTests.entries()) { const { secret, salt, iterations, keylen, expected } = test; const hash = await pbkdf2Sha512(secret, salt, iterations, keylen); - expect(hash).withContext(`brycx tests index ${index}`).toEqual(expected); + expect(hash, `brycx tests index ${index}`).toEqual(expected); } }); }); @@ -136,7 +136,7 @@ describe("pbkdf2", () => { for (const [index, test] of brycxTests.entries()) { const { secret, salt, iterations, keylen, expected } = test; const hash = await pbkdf2Sha512Subtle(subtle, secret, salt, iterations, keylen); - expect(hash).withContext(`brycx tests index ${index}`).toEqual(expected); + expect(hash, `brycx tests index ${index}`).toEqual(expected); } }); }); @@ -152,7 +152,7 @@ describe("pbkdf2", () => { for (const [index, test] of brycxTests.entries()) { const { secret, salt, iterations, keylen, expected } = test; const hash = await pbkdf2Sha512Noble(secret, salt, iterations, keylen); - expect(hash).withContext(`brycx tests index ${index}`).toEqual(expected); + expect(hash, `brycx tests index ${index}`).toEqual(expected); } }, 120_000); }); diff --git a/packages/crypto/src/secp256k1.spec.ts b/packages/crypto/src/secp256k1.spec.ts index 2abe349a9f..5c19035c22 100644 --- a/packages/crypto/src/secp256k1.spec.ts +++ b/packages/crypto/src/secp256k1.spec.ts @@ -68,23 +68,23 @@ describe("Secp256k1", () => { ).toBeTruthy(); // too short and too long - await expectAsync( + await expect( Secp256k1.makeKeypair(fromHex("e4ade2a5232a7c6f37e7b854a774e25e6047ee7c6d63e8304ae04fa190bc17")), - ).toBeRejectedWithError("input data is not a valid secp256k1 private key"); - await expectAsync( + ).rejects.toThrowError("input data is not a valid secp256k1 private key"); + await expect( Secp256k1.makeKeypair(fromHex("e4ade2a5232a7c6f37e7b854a774e25e6047ee7c6d63e8304ae04fa190bc1732aa")), - ).toBeRejectedWithError("input data is not a valid secp256k1 private key"); + ).rejects.toThrowError("input data is not a valid secp256k1 private key"); // value out of range (too small) - await expectAsync( + await expect( Secp256k1.makeKeypair(fromHex("0000000000000000000000000000000000000000000000000000000000000000")), - ).toBeRejectedWithError("input data is not a valid secp256k1 private key"); + ).rejects.toThrowError("input data is not a valid secp256k1 private key"); // value out of range (>= n) - await expectAsync( + await expect( Secp256k1.makeKeypair(fromHex("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")), - ).toBeRejectedWithError("input data is not a valid secp256k1 private key"); - await expectAsync( + ).rejects.toThrowError("input data is not a valid secp256k1 private key"); + await expect( Secp256k1.makeKeypair(fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141")), - ).toBeRejectedWithError("input data is not a valid secp256k1 private key"); + ).rejects.toThrowError("input data is not a valid secp256k1 private key"); }); it("creates signatures", async () => { @@ -111,7 +111,7 @@ describe("Secp256k1", () => { const privkey = fromHex("43a9c17ccbb0e767ea29ce1f10813afde5f1e0a7a504e89b4d2cc2b952b8e0b9"); const keypair = await Secp256k1.makeKeypair(privkey); const messageHash = new Uint8Array([]); - await expectAsync(Secp256k1.createSignature(messageHash, keypair.privkey)).toBeRejectedWithError( + await expect(Secp256k1.createSignature(messageHash, keypair.privkey)).rejects.toThrowError( /message hash must not be empty/i, ); }); @@ -120,7 +120,7 @@ describe("Secp256k1", () => { const privkey = fromHex("43a9c17ccbb0e767ea29ce1f10813afde5f1e0a7a504e89b4d2cc2b952b8e0b9"); const keypair = await Secp256k1.makeKeypair(privkey); const messageHash = fromHex("11223344556677889900aabbccddeeff11223344556677889900aabbccddeeff11"); - await expectAsync(Secp256k1.createSignature(messageHash, keypair.privkey)).toBeRejectedWithError( + await expect(Secp256k1.createSignature(messageHash, keypair.privkey)).rejects.toThrowError( /message hash length must not exceed 32 bytes/i, ); }); @@ -172,9 +172,9 @@ describe("Secp256k1", () => { fromHex("43a9c17ccbb0e767ea29ce1f10813afde5f1e0a7a504e89b4d2cc2b952b8e0b9"), ); const messageHash = new Uint8Array([]); - await expectAsync( - Secp256k1.verifySignature(dummySignature, messageHash, keypair.pubkey), - ).toBeRejectedWithError(/message hash must not be empty/i); + await expect(Secp256k1.verifySignature(dummySignature, messageHash, keypair.pubkey)).rejects.toThrowError( + /message hash must not be empty/i, + ); }); it("throws for message hash longer than 32 bytes in verification", async () => { @@ -187,9 +187,9 @@ describe("Secp256k1", () => { fromHex("43a9c17ccbb0e767ea29ce1f10813afde5f1e0a7a504e89b4d2cc2b952b8e0b9"), ); const messageHash = fromHex("11223344556677889900aabbccddeeff11223344556677889900aabbccddeeff11"); - await expectAsync( + await expect( Secp256k1.verifySignature(dummySignature, messageHash, keypair.privkey), - ).toBeRejectedWithError(/message hash length must not exceed 32 bytes/i); + ).rejects.toThrowError(/message hash length must not exceed 32 bytes/i); }); it("verifies unnormalized pyca/cryptography signatures", async () => { @@ -389,7 +389,7 @@ describe("Secp256k1", () => { messageHash, pubkey, ); - expect(isValid).withContext(`(index ${index})`).toEqual(true); + expect(isValid, `(index ${index})`).toEqual(true); } }); @@ -501,7 +501,7 @@ describe("Secp256k1", () => { // verify calculated signature const ok1 = await Secp256k1.verifySignature(calculatedSignature, messageHash, keypair.pubkey); - expect(ok1).withContext(`(index ${index})`).toEqual(true); + expect(ok1, `(index ${index})`).toEqual(true); // verify original signature const ok2 = await Secp256k1.verifySignature( @@ -509,10 +509,10 @@ describe("Secp256k1", () => { messageHash, keypair.pubkey, ); - expect(ok2).withContext(`(index ${index})`).toEqual(true); + expect(ok2, `(index ${index})`).toEqual(true); // compare signatures - expect(calculatedSignature.toDer()).withContext(`(index ${index})`).toEqual(row.signature); + expect(calculatedSignature.toDer(), `(index ${index})`).toEqual(row.signature); } }); diff --git a/packages/encoding/jasmine-testrunner.cjs b/packages/encoding/jasmine-testrunner.cjs deleted file mode 100644 index 96247348c4..0000000000 --- a/packages/encoding/jasmine-testrunner.cjs +++ /dev/null @@ -1,36 +0,0 @@ -if (process.env.SES_ENABLED) { - require("ses"); - // eslint-disable-next-line no-undef - lockdown(); -} - -require("source-map-support").install(); -const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); - -// setup Jasmine -const Jasmine = require("jasmine"); -const jasmine = new Jasmine(); -jasmine.loadConfig({ - spec_dir: "build", - spec_files: ["**/*.spec.js"], - helpers: [], - random: false, - seed: null, - stopSpecOnExpectationFailure: false, -}); -jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * 1000; - -// setup reporter -const { SpecReporter } = require("jasmine-spec-reporter"); -const reporter = new SpecReporter({ - ...defaultSpecReporterConfig, - spec: { - ...defaultSpecReporterConfig.spec, - displaySuccessful: !process.argv.includes("--quiet"), - }, -}); - -// initialize and execute -jasmine.env.clearReporters(); -jasmine.addReporter(reporter); -void jasmine.execute(); diff --git a/packages/encoding/package.json b/packages/encoding/package.json index 262bab5364..93380dee56 100644 --- a/packages/encoding/package.json +++ b/packages/encoding/package.json @@ -28,15 +28,18 @@ "docs": "typedoc", "format": "prettier --write --log-level warn \"./src/**/*.ts\"", "format-text": "prettier --write \"./*.md\"", - "test-node": "yarn node jasmine-testrunner.cjs", + "test-node": "vitest run", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox karma.conf.cjs", - "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless karma.conf.cjs", + "test-chrome": "vitest run --browser", "test": "yarn build-or-skip && yarn test-node", - "coverage": "nyc --reporter=text --reporter=lcov yarn test --quiet", + "coverage": "nyc --reporter=text --reporter=lcov yarn test", "build": "rm -rf ./build && tsc", "build-or-skip": "[ -n \"${SKIP_BUILD:-}\" ] || yarn build", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.cjs" }, + "engines": { + "node": "^20.19 || >=22.12" + }, "dependencies": { "@scure/base": "^2.0.0", "base64-js": "^1.3.0", @@ -45,14 +48,11 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@types/base64-js": "^1.2.5", - "@types/jasmine": "^4", "@types/karma-firefox-launcher": "^2", "@types/karma-jasmine": "^4", "@types/karma-jasmine-html-reporter": "^1", "@types/node": "*", "glob": "^11", - "jasmine": "^4", - "jasmine-spec-reporter": "^6", "karma": "^6.3.14", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.0", @@ -64,6 +64,7 @@ "source-map-support": "^0.5.19", "typedoc": "^0.28", "typescript": "~5.9", + "vitest": "^3.2.4", "webpack": "^5.76.0", "webpack-cli": "^4.6.0" }, diff --git a/packages/encoding/src/base64.spec.ts b/packages/encoding/src/base64.spec.ts index 46d6b7fa37..38edc7af96 100644 --- a/packages/encoding/src/base64.spec.ts +++ b/packages/encoding/src/base64.spec.ts @@ -79,9 +79,7 @@ describe("base64", () => { // "aa==", // non-strict, should be aQ== ]; for (const input of invalid) { - expect(() => fromBase64(input)) - .withContext(`invalid input: '${input}'`) - .toThrow(); + expect(() => fromBase64(input), `invalid input: '${input}'`).toThrow(); } }); diff --git a/packages/faucet-client/jasmine-testrunner.cjs b/packages/faucet-client/jasmine-testrunner.cjs deleted file mode 100644 index 96247348c4..0000000000 --- a/packages/faucet-client/jasmine-testrunner.cjs +++ /dev/null @@ -1,36 +0,0 @@ -if (process.env.SES_ENABLED) { - require("ses"); - // eslint-disable-next-line no-undef - lockdown(); -} - -require("source-map-support").install(); -const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); - -// setup Jasmine -const Jasmine = require("jasmine"); -const jasmine = new Jasmine(); -jasmine.loadConfig({ - spec_dir: "build", - spec_files: ["**/*.spec.js"], - helpers: [], - random: false, - seed: null, - stopSpecOnExpectationFailure: false, -}); -jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * 1000; - -// setup reporter -const { SpecReporter } = require("jasmine-spec-reporter"); -const reporter = new SpecReporter({ - ...defaultSpecReporterConfig, - spec: { - ...defaultSpecReporterConfig.spec, - displaySuccessful: !process.argv.includes("--quiet"), - }, -}); - -// initialize and execute -jasmine.env.clearReporters(); -jasmine.addReporter(reporter); -void jasmine.execute(); diff --git a/packages/faucet-client/package.json b/packages/faucet-client/package.json index 2675073041..950bdbe138 100644 --- a/packages/faucet-client/package.json +++ b/packages/faucet-client/package.json @@ -28,25 +28,25 @@ "docs": "typedoc", "format": "prettier --write --log-level warn \"./src/**/*.ts\"", "format-text": "prettier --write \"./*.md\"", - "test-node": "yarn node jasmine-testrunner.cjs", + "test-node": "vitest run", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox karma.conf.cjs", - "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless karma.conf.cjs", + "test-chrome": "vitest run --browser", "test": "yarn build-or-skip && yarn test-node", - "coverage": "nyc --reporter=text --reporter=lcov yarn test --quiet", + "coverage": "nyc --reporter=text --reporter=lcov yarn test", "build": "rm -rf ./build && tsc", "build-or-skip": "[ -n \"${SKIP_BUILD:-}\" ] || yarn build", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.cjs" }, + "engines": { + "node": "^20.19 || >=22.12" + }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@types/jasmine": "^4", "@types/karma-firefox-launcher": "^2", "@types/karma-jasmine": "^4", "@types/karma-jasmine-html-reporter": "^1", "@types/node": "*", "glob": "^11", - "jasmine": "^4", - "jasmine-spec-reporter": "^6", "karma": "^6.3.14", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.0", @@ -58,6 +58,7 @@ "source-map-support": "^0.5.19", "typedoc": "^0.28", "typescript": "~5.9", + "vitest": "^3.2.4", "webpack": "^5.76.0", "webpack-cli": "^4.6.0" }, diff --git a/packages/faucet-client/src/faucetclient.spec.ts b/packages/faucet-client/src/faucetclient.spec.ts index 9e83f99f7b..5584f5f00a 100644 --- a/packages/faucet-client/src/faucetclient.spec.ts +++ b/packages/faucet-client/src/faucetclient.spec.ts @@ -21,32 +21,35 @@ describe("FaucetClient", () => { expect(new FaucetClient("https://localhost/")).toBeTruthy(); }); - (enabled ? it : xit)("should throw error if the base URL does not start with http:// or https://", () => { - expect(() => new FaucetClient("ftp://example.com")).toThrowError( - "Expected base url to start with http:// or https://", - ); - }); + (enabled ? it : it.skip)( + "should throw error if the base URL does not start with http:// or https://", + () => { + expect(() => new FaucetClient("ftp://example.com")).toThrowError( + "Expected base url to start with http:// or https://", + ); + }, + ); - (enabled ? it : xit)("can be used to credit a wallet", async () => { + (enabled ? it : it.skip)("can be used to credit a wallet", async () => { const faucet = new FaucetClient(faucetUrl); await faucet.credit(defaultAddress, primaryToken); }); - (enabled ? it : xit)("can be used to credit a wallet with a different token", async () => { + (enabled ? it : it.skip)("can be used to credit a wallet with a different token", async () => { const faucet = new FaucetClient(faucetUrl); await faucet.credit(defaultAddress, secondaryToken); }); - (enabled ? it : xit)("throws for invalid ticker", async () => { + (enabled ? it : it.skip)("throws for invalid ticker", async () => { const faucet = new FaucetClient(faucetUrl); - await expectAsync(faucet.credit(defaultAddress, "ETH")).toBeRejectedWithError(/token is not available/i); + await expect(faucet.credit(defaultAddress, "ETH")).rejects.toThrowError(/token is not available/i); }); - (enabled ? it : xit)("throws for invalid address", async () => { + (enabled ? it : it.skip)("throws for invalid address", async () => { const faucet = new FaucetClient(faucetUrl); for (const address of ["be5cc2cc05db2cdb4313c18306a5157291cfdcd1", "1234L"]) { - await expectAsync(faucet.credit(address, primaryToken)).toBeRejectedWithError( + await expect(faucet.credit(address, primaryToken)).rejects.toThrowError( /address is not in the expected format for this chain/i, ); } diff --git a/packages/faucet/jasmine-testrunner.cjs b/packages/faucet/jasmine-testrunner.cjs deleted file mode 100644 index 96247348c4..0000000000 --- a/packages/faucet/jasmine-testrunner.cjs +++ /dev/null @@ -1,36 +0,0 @@ -if (process.env.SES_ENABLED) { - require("ses"); - // eslint-disable-next-line no-undef - lockdown(); -} - -require("source-map-support").install(); -const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); - -// setup Jasmine -const Jasmine = require("jasmine"); -const jasmine = new Jasmine(); -jasmine.loadConfig({ - spec_dir: "build", - spec_files: ["**/*.spec.js"], - helpers: [], - random: false, - seed: null, - stopSpecOnExpectationFailure: false, -}); -jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * 1000; - -// setup reporter -const { SpecReporter } = require("jasmine-spec-reporter"); -const reporter = new SpecReporter({ - ...defaultSpecReporterConfig, - spec: { - ...defaultSpecReporterConfig.spec, - displaySuccessful: !process.argv.includes("--quiet"), - }, -}); - -// initialize and execute -jasmine.env.clearReporters(); -jasmine.addReporter(reporter); -void jasmine.execute(); diff --git a/packages/faucet/package.json b/packages/faucet/package.json index 0f94fe5289..b422357535 100644 --- a/packages/faucet/package.json +++ b/packages/faucet/package.json @@ -32,13 +32,16 @@ "format-text": "prettier --write \"./*.md\"", "build": "rm -rf ./build && tsc", "build-or-skip": "[ -n \"${SKIP_BUILD:-}\" ] || yarn build", - "test-node": "yarn node jasmine-testrunner.cjs", + "test-node": "vitest run", "test": "yarn build-or-skip && yarn test-node", - "coverage": "nyc --reporter=text --reporter=lcov yarn test --quiet", + "coverage": "nyc --reporter=text --reporter=lcov yarn test", "start-dev": "FAUCET_ADDRESS_PREFIX=wasm FAUCET_CREDIT_AMOUNT_UCOSM=10000000 FAUCET_CREDIT_AMOUNT_USTAKE=100000 FAUCET_CONCURRENCY=3 FAUCET_MNEMONIC=\"economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone\" ./bin/cosmos-faucet start \"http://localhost:26659\"", "start-coralnet": "FAUCET_ADDRESS_PREFIX=coral FAUCET_TOKENS=\"ushell,ureef\" FAUCET_CREDIT_AMOUNT_USHELL=10000000 FAUCET_CREDIT_AMOUNT_UREEF=2000000 FAUCET_CONCURRENCY=3 FAUCET_MNEMONIC=\"economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone\" ./bin/cosmos-faucet start \"https://lcd.coralnet.cosmwasm.com\"", "pack-node": "yarn build-or-skip && webpack --mode production --config webpack.node.config.cjs" }, + "engines": { + "node": "^20.19 || >=22.12" + }, "dependencies": { "@cosmjs/crypto": "workspace:^", "@cosmjs/encoding": "workspace:^", @@ -52,17 +55,15 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@types/jasmine": "^4", "@types/koa": "^2.15.0", "@types/koa-bodyparser": "^4.3", "@types/koa__cors": "^3.3", - "jasmine": "^4", - "jasmine-spec-reporter": "^6", "nyc": "^17.1.0", "prettier": "^3.6.2", "ses": "^1.13.0", "source-map-support": "^0.5.19", "typescript": "~5.9", + "vitest": "^3.2.4", "webpack": "^5.76.0", "webpack-cli": "^4.6.0" }, diff --git a/packages/faucet/src/api/webserver.spec.ts b/packages/faucet/src/api/webserver.spec.ts index 420e759255..1dd1ce7bcf 100644 --- a/packages/faucet/src/api/webserver.spec.ts +++ b/packages/faucet/src/api/webserver.spec.ts @@ -16,7 +16,7 @@ const faucetMnemonic = const testingPort = 62222; -(simappEnabled ? describe : xdescribe)("Webserver", () => { +(simappEnabled ? describe : describe.skip)("Webserver", () => { const pathBuilder = makeCosmoshubPath; const rpcUrl = "http://localhost:26658"; diff --git a/packages/faucet/src/faucet.spec.ts b/packages/faucet/src/faucet.spec.ts index f9c8cdc286..e1ee71ece3 100644 --- a/packages/faucet/src/faucet.spec.ts +++ b/packages/faucet/src/faucet.spec.ts @@ -19,7 +19,7 @@ function makeRandomAddress(): string { const faucetMnemonic = "economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone"; -(simappEnabled ? describe : xdescribe)("Faucet", () => { +(simappEnabled ? describe : describe.skip)("Faucet", () => { const pathBuilder = makeCosmoshubPath; const apiUrl = "http://localhost:26658"; @@ -130,10 +130,10 @@ const faucetMnemonic = const distributorBalance = await readOnlyClient.getAllBalances(faucet.distributorAddresses[0]); assert(distributorBalance); expect(distributorBalance).toEqual([ - jasmine.objectContaining({ + expect.objectContaining({ denom: "ucosm", }), - jasmine.objectContaining({ + expect.objectContaining({ denom: "ustake", }), ]); @@ -229,11 +229,11 @@ const faucetMnemonic = assert(expectedHolderBalance); assert(expectedDistributorBalance); expect(accounts).toEqual([ - jasmine.objectContaining({ + expect.objectContaining({ address: faucet.holderAddress, balance: expectedHolderBalance, }), - jasmine.objectContaining({ + expect.objectContaining({ address: faucet.distributorAddresses[0], balance: expectedDistributorBalance, }), diff --git a/packages/json-rpc/jasmine-testrunner.cjs b/packages/json-rpc/jasmine-testrunner.cjs deleted file mode 100644 index 96247348c4..0000000000 --- a/packages/json-rpc/jasmine-testrunner.cjs +++ /dev/null @@ -1,36 +0,0 @@ -if (process.env.SES_ENABLED) { - require("ses"); - // eslint-disable-next-line no-undef - lockdown(); -} - -require("source-map-support").install(); -const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); - -// setup Jasmine -const Jasmine = require("jasmine"); -const jasmine = new Jasmine(); -jasmine.loadConfig({ - spec_dir: "build", - spec_files: ["**/*.spec.js"], - helpers: [], - random: false, - seed: null, - stopSpecOnExpectationFailure: false, -}); -jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * 1000; - -// setup reporter -const { SpecReporter } = require("jasmine-spec-reporter"); -const reporter = new SpecReporter({ - ...defaultSpecReporterConfig, - spec: { - ...defaultSpecReporterConfig.spec, - displaySuccessful: !process.argv.includes("--quiet"), - }, -}); - -// initialize and execute -jasmine.env.clearReporters(); -jasmine.addReporter(reporter); -void jasmine.execute(); diff --git a/packages/json-rpc/package.json b/packages/json-rpc/package.json index 935835082c..d2375dbb0d 100644 --- a/packages/json-rpc/package.json +++ b/packages/json-rpc/package.json @@ -30,28 +30,28 @@ "docs": "typedoc", "format": "prettier --write --log-level warn \"./src/**/*.ts\"", "format-text": "prettier --write \"./*.md\"", - "test-node": "yarn node jasmine-testrunner.cjs", + "test-node": "vitest run", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox karma.conf.cjs", - "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless karma.conf.cjs", + "test-chrome": "vitest run --browser", "test": "yarn build-or-skip && yarn test-node", - "coverage": "nyc --reporter=text --reporter=lcov yarn test --quiet", + "coverage": "nyc --reporter=text --reporter=lcov yarn test", "build": "rm -rf ./build && tsc && tsc -p src/workers/tsconfig.json", "build-or-skip": "[ -n \"${SKIP_BUILD:-}\" ] || yarn build", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.cjs" }, + "engines": { + "node": "^20.19 || >=22.12" + }, "dependencies": { "@cosmjs/stream": "workspace:^", "xstream": "^11.14.0" }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@types/jasmine": "^4", "@types/karma-firefox-launcher": "^2", "@types/karma-jasmine": "^4", "@types/karma-jasmine-html-reporter": "^1", "glob": "^11", - "jasmine": "^4", - "jasmine-spec-reporter": "^6", "karma": "^6.3.14", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.0", @@ -63,6 +63,7 @@ "source-map-support": "^0.5.19", "typedoc": "^0.28", "typescript": "~5.9", + "vitest": "^3.2.4", "webpack": "^5.76.0", "webpack-cli": "^4.6.0" }, diff --git a/packages/json-rpc/src/jsonrpcclient.spec.ts b/packages/json-rpc/src/jsonrpcclient.spec.ts index 2e26238072..cd013f44e5 100644 --- a/packages/json-rpc/src/jsonrpcclient.spec.ts +++ b/packages/json-rpc/src/jsonrpcclient.spec.ts @@ -28,7 +28,7 @@ function makeSimpleMessagingConnection( }; } -(typeof Worker !== "undefined" ? describe : xdescribe)("JsonRpcClient", () => { +(typeof Worker !== "undefined" ? describe : describe.skip)("JsonRpcClient", () => { const dummyserviceKarmaUrl = "/base/dist/web/dummyservice.worker.js"; it("can be constructed with a Worker", () => { diff --git a/packages/ledger-amino/jasmine-testrunner.cjs b/packages/ledger-amino/jasmine-testrunner.cjs deleted file mode 100644 index 96247348c4..0000000000 --- a/packages/ledger-amino/jasmine-testrunner.cjs +++ /dev/null @@ -1,36 +0,0 @@ -if (process.env.SES_ENABLED) { - require("ses"); - // eslint-disable-next-line no-undef - lockdown(); -} - -require("source-map-support").install(); -const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); - -// setup Jasmine -const Jasmine = require("jasmine"); -const jasmine = new Jasmine(); -jasmine.loadConfig({ - spec_dir: "build", - spec_files: ["**/*.spec.js"], - helpers: [], - random: false, - seed: null, - stopSpecOnExpectationFailure: false, -}); -jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * 1000; - -// setup reporter -const { SpecReporter } = require("jasmine-spec-reporter"); -const reporter = new SpecReporter({ - ...defaultSpecReporterConfig, - spec: { - ...defaultSpecReporterConfig.spec, - displaySuccessful: !process.argv.includes("--quiet"), - }, -}); - -// initialize and execute -jasmine.env.clearReporters(); -jasmine.addReporter(reporter); -void jasmine.execute(); diff --git a/packages/ledger-amino/package.json b/packages/ledger-amino/package.json index 50b9decf95..60ac1f18b3 100644 --- a/packages/ledger-amino/package.json +++ b/packages/ledger-amino/package.json @@ -31,12 +31,15 @@ "format-text": "prettier --write \"./*.md\"", "build": "rm -rf ./build && tsc", "build-or-skip": "[ -n \"${SKIP_BUILD:-}\" ] || yarn build", - "test-node": "yarn node jasmine-testrunner.cjs", + "test-node": "vitest run", "test": "yarn build-or-skip && yarn test-node", "demo-node": "yarn build-or-skip && node ./demo/node.cjs", - "coverage": "nyc --reporter=text --reporter=lcov yarn test --quiet", + "coverage": "nyc --reporter=text --reporter=lcov yarn test", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.demo.config.cjs" }, + "engines": { + "node": "^20.19 || >=22.12" + }, "dependencies": { "@cosmjs/amino": "workspace:^", "@cosmjs/crypto": "workspace:^", @@ -52,17 +55,15 @@ "@ledgerhq/hw-transport": "^6.31.4", "@ledgerhq/hw-transport-node-hid": "^6.29.5", "@ledgerhq/hw-transport-webusb": "^6.29.4", - "@types/jasmine": "^4", "@types/semver": "^7.3.4", "glob": "^11", - "jasmine": "^4", - "jasmine-spec-reporter": "^6", "nyc": "^17.1.0", "prettier": "^3.6.2", "ses": "^1.13.0", "source-map-support": "^0.5.19", "typedoc": "^0.28", "typescript": "~5.9", + "vitest": "^3.2.4", "webpack": "^5.76.0", "webpack-cli": "^4.6.0" }, diff --git a/packages/ledger-amino/src/ledgersigner.spec.ts b/packages/ledger-amino/src/ledgersigner.spec.ts index 99199c542c..a8b67c7795 100644 --- a/packages/ledger-amino/src/ledgersigner.spec.ts +++ b/packages/ledger-amino/src/ledgersigner.spec.ts @@ -38,7 +38,7 @@ async function createTransport(): Promise { return TransportClass.create(interactiveTimeout, interactiveTimeout); } -(ledgerEnabled ? describe : xdescribe)("LedgerSigner", () => { +(ledgerEnabled ? describe : describe.skip)("LedgerSigner", () => { const defaultChainId = "testing"; const defaultFee = calculateFee(100_000, "0.025ucosm"); const defaultMemo = "Some memo"; @@ -147,7 +147,7 @@ async function createTransport(): Promise { interactiveTimeout, ); - (simappEnabled ? it : xit)( + (simappEnabled ? it : it.skip)( "creates signature accepted by Stargate backend", async () => { const signer = new LedgerSigner(transport, { diff --git a/packages/math/jasmine-testrunner.cjs b/packages/math/jasmine-testrunner.cjs deleted file mode 100644 index 96247348c4..0000000000 --- a/packages/math/jasmine-testrunner.cjs +++ /dev/null @@ -1,36 +0,0 @@ -if (process.env.SES_ENABLED) { - require("ses"); - // eslint-disable-next-line no-undef - lockdown(); -} - -require("source-map-support").install(); -const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); - -// setup Jasmine -const Jasmine = require("jasmine"); -const jasmine = new Jasmine(); -jasmine.loadConfig({ - spec_dir: "build", - spec_files: ["**/*.spec.js"], - helpers: [], - random: false, - seed: null, - stopSpecOnExpectationFailure: false, -}); -jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * 1000; - -// setup reporter -const { SpecReporter } = require("jasmine-spec-reporter"); -const reporter = new SpecReporter({ - ...defaultSpecReporterConfig, - spec: { - ...defaultSpecReporterConfig.spec, - displaySuccessful: !process.argv.includes("--quiet"), - }, -}); - -// initialize and execute -jasmine.env.clearReporters(); -jasmine.addReporter(reporter); -void jasmine.execute(); diff --git a/packages/math/package.json b/packages/math/package.json index 1646175cdf..1bbff882c7 100644 --- a/packages/math/package.json +++ b/packages/math/package.json @@ -28,24 +28,24 @@ "docs": "typedoc", "format": "prettier --write --log-level warn \"./src/**/*.ts\"", "format-text": "prettier --write \"./*.md\"", - "test-node": "yarn node jasmine-testrunner.cjs", + "test-node": "vitest run", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox karma.conf.cjs", - "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless karma.conf.cjs", + "test-chrome": "vitest run --browser", "test": "yarn build-or-skip && yarn test-node", - "coverage": "nyc --reporter=text --reporter=lcov yarn test --quiet", + "coverage": "nyc --reporter=text --reporter=lcov yarn test", "build": "rm -rf ./build && tsc", "build-or-skip": "[ -n \"${SKIP_BUILD:-}\" ] || yarn build", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.cjs" }, + "engines": { + "node": "^20.19 || >=22.12" + }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@types/jasmine": "^4", "@types/karma-firefox-launcher": "^2", "@types/karma-jasmine": "^4", "@types/karma-jasmine-html-reporter": "^1", "glob": "^11", - "jasmine": "^4", - "jasmine-spec-reporter": "^6", "karma": "^6.3.14", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.0", @@ -57,6 +57,7 @@ "source-map-support": "^0.5.19", "typedoc": "^0.28", "typescript": "~5.9", + "vitest": "^3.2.4", "webpack": "^5.76.0", "webpack-cli": "^4.6.0" }, diff --git a/packages/math/src/integers.spec.ts b/packages/math/src/integers.spec.ts index c16972545a..9b6d556462 100644 --- a/packages/math/src/integers.spec.ts +++ b/packages/math/src/integers.spec.ts @@ -13,7 +13,7 @@ describe("Integers", () => { expect(Uint32.fromBytes([0xff, 0xff, 0xff, 0xff]).toNumber()).toEqual(4294967295); }); - (typeof Buffer !== "undefined" ? it : xit)("can be constructed from Buffer", () => { + (typeof Buffer !== "undefined" ? it : it.skip)("can be constructed from Buffer", () => { expect(Uint32.fromBytes(Buffer.from([0, 0, 0, 0])).toNumber()).toEqual(0); expect(Uint32.fromBytes(Buffer.from([0, 0, 0, 1])).toNumber()).toEqual(1); expect(Uint32.fromBytes(Buffer.from([0, 0, 0, 42])).toNumber()).toEqual(42); diff --git a/packages/proto-signing/jasmine-testrunner.cjs b/packages/proto-signing/jasmine-testrunner.cjs deleted file mode 100644 index 96247348c4..0000000000 --- a/packages/proto-signing/jasmine-testrunner.cjs +++ /dev/null @@ -1,36 +0,0 @@ -if (process.env.SES_ENABLED) { - require("ses"); - // eslint-disable-next-line no-undef - lockdown(); -} - -require("source-map-support").install(); -const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); - -// setup Jasmine -const Jasmine = require("jasmine"); -const jasmine = new Jasmine(); -jasmine.loadConfig({ - spec_dir: "build", - spec_files: ["**/*.spec.js"], - helpers: [], - random: false, - seed: null, - stopSpecOnExpectationFailure: false, -}); -jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * 1000; - -// setup reporter -const { SpecReporter } = require("jasmine-spec-reporter"); -const reporter = new SpecReporter({ - ...defaultSpecReporterConfig, - spec: { - ...defaultSpecReporterConfig.spec, - displaySuccessful: !process.argv.includes("--quiet"), - }, -}); - -// initialize and execute -jasmine.env.clearReporters(); -jasmine.addReporter(reporter); -void jasmine.execute(); diff --git a/packages/proto-signing/package.json b/packages/proto-signing/package.json index 93a76614b1..6aadc857a9 100644 --- a/packages/proto-signing/package.json +++ b/packages/proto-signing/package.json @@ -32,13 +32,16 @@ "format-text": "prettier --write \"./*.md\"", "build": "rm -rf ./build && tsc", "build-or-skip": "[ -n \"${SKIP_BUILD:-}\" ] || yarn build", - "test-node": "yarn node jasmine-testrunner.cjs", + "test-node": "vitest run", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox karma.conf.cjs", - "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless karma.conf.cjs", + "test-chrome": "vitest run --browser", "test": "yarn build-or-skip && yarn test-node", - "coverage": "nyc --reporter=text --reporter=lcov yarn test --quiet", + "coverage": "nyc --reporter=text --reporter=lcov yarn test", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.cjs" }, + "engines": { + "node": "^20.19 || >=22.12" + }, "dependencies": { "@cosmjs/amino": "workspace:^", "@cosmjs/crypto": "workspace:^", @@ -49,14 +52,11 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@types/jasmine": "^4", "@types/karma-firefox-launcher": "^2", "@types/karma-jasmine": "^4", "@types/karma-jasmine-html-reporter": "^1", "@types/node": "*", "glob": "^11", - "jasmine": "^4", - "jasmine-spec-reporter": "^6", "karma": "^6.3.14", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.0", @@ -69,6 +69,7 @@ "source-map-support": "^0.5.19", "typedoc": "^0.28", "typescript": "~5.9", + "vitest": "^3.2.4", "webpack": "^5.76.0", "webpack-cli": "^4.6.0" }, diff --git a/packages/proto-signing/src/decode.spec.ts b/packages/proto-signing/src/decode.spec.ts index c0ceffc067..f8b68d0ce7 100644 --- a/packages/proto-signing/src/decode.spec.ts +++ b/packages/proto-signing/src/decode.spec.ts @@ -32,7 +32,7 @@ describe("decode", () => { const decoded = decodeTxRaw(fromHex(testVector.outputs.signedTxBytes)); expect(decoded).toEqual({ - authInfo: jasmine.objectContaining({ + authInfo: expect.objectContaining({ signerInfos: [ { publicKey: { diff --git a/packages/proto-signing/src/directsecp256k1hdwallet.spec.ts b/packages/proto-signing/src/directsecp256k1hdwallet.spec.ts index 22aaed4210..c42d5102b8 100644 --- a/packages/proto-signing/src/directsecp256k1hdwallet.spec.ts +++ b/packages/proto-signing/src/directsecp256k1hdwallet.spec.ts @@ -297,9 +297,9 @@ describe("DirectSecp256k1HdWallet", () => { encryption: { algorithm: "xchacha20poly1305-ietf", }, - data: jasmine.stringMatching(base64Matcher), + data: expect.stringMatching(base64Matcher), }); - }); + }, 8000); }); describe("serializeWithEncryptionKey", () => { @@ -322,7 +322,7 @@ describe("DirectSecp256k1HdWallet", () => { encryption: { algorithm: "xchacha20poly1305-ietf", }, - data: jasmine.stringMatching(base64Matcher), + data: expect.stringMatching(base64Matcher), }); }); }); diff --git a/packages/proto-signing/src/registry.spec.ts b/packages/proto-signing/src/registry.spec.ts index 750be14598..512a71e8b1 100644 --- a/packages/proto-signing/src/registry.spec.ts +++ b/packages/proto-signing/src/registry.spec.ts @@ -96,7 +96,7 @@ describe("registry demo", () => { const decoder = registry.lookupType(msg.typeUrl)!; const msgDemoDecoded = decoder.decode(msg.value); expect(msgDemoDecoded).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ creator: "Me", title: "Something with stars", body: "la la la", diff --git a/packages/socket/jasmine-testrunner.cjs b/packages/socket/jasmine-testrunner.cjs deleted file mode 100644 index 96247348c4..0000000000 --- a/packages/socket/jasmine-testrunner.cjs +++ /dev/null @@ -1,36 +0,0 @@ -if (process.env.SES_ENABLED) { - require("ses"); - // eslint-disable-next-line no-undef - lockdown(); -} - -require("source-map-support").install(); -const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); - -// setup Jasmine -const Jasmine = require("jasmine"); -const jasmine = new Jasmine(); -jasmine.loadConfig({ - spec_dir: "build", - spec_files: ["**/*.spec.js"], - helpers: [], - random: false, - seed: null, - stopSpecOnExpectationFailure: false, -}); -jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * 1000; - -// setup reporter -const { SpecReporter } = require("jasmine-spec-reporter"); -const reporter = new SpecReporter({ - ...defaultSpecReporterConfig, - spec: { - ...defaultSpecReporterConfig.spec, - displaySuccessful: !process.argv.includes("--quiet"), - }, -}); - -// initialize and execute -jasmine.env.clearReporters(); -jasmine.addReporter(reporter); -void jasmine.execute(); diff --git a/packages/socket/package.json b/packages/socket/package.json index c118453626..43238808d7 100644 --- a/packages/socket/package.json +++ b/packages/socket/package.json @@ -30,15 +30,18 @@ "docs": "typedoc", "format": "prettier --write --log-level warn \"./src/**/*.ts\"", "format-text": "prettier --write \"./*.md\"", - "test-node": "yarn node jasmine-testrunner.cjs", + "test-node": "vitest run --no-file-parallelism", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox karma.conf.cjs", - "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless karma.conf.cjs", + "test-chrome": "vitest run --browser", "test": "yarn build-or-skip && yarn test-node", "coverage": "nyc --reporter=text --reporter=lcov yarn test --quiet", "build": "rm -rf ./build && tsc", "build-or-skip": "[ -n \"${SKIP_BUILD:-}\" ] || yarn build", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.cjs" }, + "engines": { + "node": "^20.19 || >=22.12" + }, "dependencies": { "@cosmjs/stream": "workspace:^", "isomorphic-ws": "^4.0.1", @@ -47,14 +50,11 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@types/jasmine": "^4", "@types/karma-firefox-launcher": "^2", "@types/karma-jasmine": "^4", "@types/karma-jasmine-html-reporter": "^1", "@types/ws": "^6.0.1", "glob": "^11", - "jasmine": "^4", - "jasmine-spec-reporter": "^6", "karma": "^6.3.14", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.0", @@ -66,6 +66,7 @@ "source-map-support": "^0.5.19", "typedoc": "^0.28", "typescript": "~5.9", + "vitest": "^3.2.4", "webpack": "^5.76.0", "webpack-cli": "^4.6.0" }, diff --git a/packages/socket/src/queueingstreamingsocket.spec.ts b/packages/socket/src/queueingstreamingsocket.spec.ts index a17c21e5ab..016c98ed69 100644 --- a/packages/socket/src/queueingstreamingsocket.spec.ts +++ b/packages/socket/src/queueingstreamingsocket.spec.ts @@ -10,7 +10,7 @@ describe("QueueingStreamingSocket", () => { expect(socket).toBeTruthy(); }); - (enabled ? describe : xdescribe)("queueRequest", () => { + (enabled ? describe : describe.skip)("queueRequest", () => { it("can queue and process requests with a connection", async () => { let done!: (() => void) & { fail: (e?: any) => void }; const ret = new Promise((resolve, reject) => { @@ -65,13 +65,13 @@ describe("QueueingStreamingSocket", () => { setTimeout(() => { expect(socket.getQueueLength()).toEqual(3); socket.connect(); - }, 5_000); + }, 3_000); return ret; }); }); - (enabled ? describe : xdescribe)("reconnect", () => { + (enabled ? describe : describe.skip)("reconnect", () => { it("does not emit a completed event when disconnected", async () => { let done!: (() => void) & { fail: (e?: any) => void }; const ret = new Promise((resolve, reject) => { @@ -146,7 +146,7 @@ describe("QueueingStreamingSocket", () => { }); }); - (enabled ? describe : xdescribe)("connectionStatus", () => { + (enabled ? describe : describe.skip)("connectionStatus", () => { it("exposes connection status", async () => { let done!: (() => void) & { fail: (e?: any) => void }; const ret = new Promise((resolve, reject) => { diff --git a/packages/socket/src/reconnectingsocket.spec.ts b/packages/socket/src/reconnectingsocket.spec.ts index b2762716a2..601b719ec1 100644 --- a/packages/socket/src/reconnectingsocket.spec.ts +++ b/packages/socket/src/reconnectingsocket.spec.ts @@ -15,7 +15,7 @@ describe("ReconnectingSocket", () => { expect(socket).toBeTruthy(); }); - (enabled ? describe : xdescribe)("connect", () => { + (enabled ? describe : describe.skip)("connect", () => { it("cannot connect after being connected", async () => { let done!: (() => void) & { fail: (e?: any) => void }; const ret = new Promise((resolve, reject) => { @@ -39,7 +39,7 @@ describe("ReconnectingSocket", () => { }); }); - (enabled ? describe : xdescribe)("disconnect", () => { + (enabled ? describe : describe.skip)("disconnect", () => { it("ends the events stream", async () => { let done!: (() => void) & { fail: (e?: any) => void }; const ret = new Promise((resolve, reject) => { @@ -92,7 +92,7 @@ describe("ReconnectingSocket", () => { }); }); - (enabled ? describe : xdescribe)("reconnection", () => { + (enabled ? describe : describe.skip)("reconnection", () => { const dirPath = "../../scripts/socketserver"; const codePkillNoProcessesMatched = 1; const startServerCmd = `${dirPath}/start.sh`; @@ -203,8 +203,8 @@ describe("ReconnectingSocket", () => { fail(startError); } }); - }, 2000); - }, 2000); + }, 1000); + }, 1000); }); }, 1000); diff --git a/packages/socket/src/socketwrapper.spec.ts b/packages/socket/src/socketwrapper.spec.ts index 2b53201a54..45ce49b253 100644 --- a/packages/socket/src/socketwrapper.spec.ts +++ b/packages/socket/src/socketwrapper.spec.ts @@ -2,7 +2,7 @@ import { SocketWrapper } from "./socketwrapper"; const enabled = !!globalThis.process?.env.SOCKETSERVER_ENABLED; -(enabled ? describe : xdescribe)("SocketWrapper", () => { +(enabled ? describe : describe.skip)("SocketWrapper", () => { const socketServerUrlNonExisting = "ws://localhost:4443/websocket"; const socketServerUrl = "ws://localhost:4444/websocket"; const socketServerUrlSlow = "ws://localhost:4445/websocket"; @@ -126,7 +126,7 @@ const enabled = !!globalThis.process?.env.SOCKETSERVER_ENABLED; socket.connect(); return ret; - }); + }, 6000); it("times out when establishing connection takes too long", async () => { const socket = new SocketWrapper( @@ -147,7 +147,7 @@ const enabled = !!globalThis.process?.env.SOCKETSERVER_ENABLED; ); socket.connect(); - await expectAsync(socket.connected).toBeRejectedWithError(/connection attempt timed out/i); + await expect(socket.connected).rejects.toThrowError(/connection attempt timed out/i); }); it("can connect and disconnect", async () => { @@ -338,7 +338,7 @@ const enabled = !!globalThis.process?.env.SOCKETSERVER_ENABLED; socket.disconnect(); }, () => { - done(expectAsync(socket.send("la li lu")).toBeRejectedWithError(/socket was closed/i)); + done(expect(socket.send("la li lu")).rejects.toThrowError(/socket was closed/i)); }, ); socket.connect(); diff --git a/packages/socket/src/streamingsocket.spec.ts b/packages/socket/src/streamingsocket.spec.ts index 4e55413009..8d43fbbca6 100644 --- a/packages/socket/src/streamingsocket.spec.ts +++ b/packages/socket/src/streamingsocket.spec.ts @@ -4,7 +4,7 @@ import { StreamingSocket } from "./streamingsocket"; const enabled = !!globalThis.process?.env.SOCKETSERVER_ENABLED; -(enabled ? describe : xdescribe)("StreamingSocket", () => { +(enabled ? describe : describe.skip)("StreamingSocket", () => { const socketServerUrl = "ws://localhost:4444/websocket"; const socketServerUrlSlow = "ws://localhost:4445/websocket"; @@ -27,13 +27,13 @@ const enabled = !!globalThis.process?.env.SOCKETSERVER_ENABLED; socket.connect(); await socket.connected; socket.disconnect(); - }); + }, 8000); it("times out when establishing connection takes too long", async () => { const socket = new StreamingSocket(socketServerUrlSlow, 2_000); socket.connect(); - await expectAsync(socket.connected).toBeRejectedWithError(/connection attempt timed out/i); + await expect(socket.connected).rejects.toThrowError(/connection attempt timed out/i); }); it("can send events when connected", async () => { diff --git a/packages/stargate/jasmine-testrunner.cjs b/packages/stargate/jasmine-testrunner.cjs deleted file mode 100644 index 96247348c4..0000000000 --- a/packages/stargate/jasmine-testrunner.cjs +++ /dev/null @@ -1,36 +0,0 @@ -if (process.env.SES_ENABLED) { - require("ses"); - // eslint-disable-next-line no-undef - lockdown(); -} - -require("source-map-support").install(); -const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); - -// setup Jasmine -const Jasmine = require("jasmine"); -const jasmine = new Jasmine(); -jasmine.loadConfig({ - spec_dir: "build", - spec_files: ["**/*.spec.js"], - helpers: [], - random: false, - seed: null, - stopSpecOnExpectationFailure: false, -}); -jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * 1000; - -// setup reporter -const { SpecReporter } = require("jasmine-spec-reporter"); -const reporter = new SpecReporter({ - ...defaultSpecReporterConfig, - spec: { - ...defaultSpecReporterConfig.spec, - displaySuccessful: !process.argv.includes("--quiet"), - }, -}); - -// initialize and execute -jasmine.env.clearReporters(); -jasmine.addReporter(reporter); -void jasmine.execute(); diff --git a/packages/stargate/package.json b/packages/stargate/package.json index cd096c9e7c..6d6ddbf881 100644 --- a/packages/stargate/package.json +++ b/packages/stargate/package.json @@ -15,7 +15,7 @@ "*.md", "!*.spec.*", "!*testutils.*", - "!**/testdata/" + "!*testdata.*" ], "repository": { "type": "git", @@ -31,13 +31,16 @@ "format-text": "prettier --write \"./*.md\"", "build": "rm -rf ./build && tsc", "build-or-skip": "[ -n \"${SKIP_BUILD:-}\" ] || yarn build", - "test-node": "yarn node jasmine-testrunner.cjs", + "test-node": "vitest run --no-file-parallelism", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox karma.conf.cjs", "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless karma.conf.cjs", "test": "yarn build-or-skip && yarn test-node", "coverage": "nyc --reporter=text --reporter=lcov yarn test --quiet", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.cjs" }, + "engines": { + "node": "^20.19 || >=22.12" + }, "dependencies": { "@cosmjs/amino": "workspace:^", "@cosmjs/encoding": "workspace:^", @@ -51,14 +54,11 @@ "devDependencies": { "@cosmjs/crypto": "workspace:^", "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@types/jasmine": "^4", "@types/karma-firefox-launcher": "^2", "@types/karma-jasmine": "^4", "@types/karma-jasmine-html-reporter": "^1", "@types/node": "*", "glob": "^11", - "jasmine": "^4", - "jasmine-spec-reporter": "^6", "karma": "^6.3.14", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.0", @@ -71,6 +71,7 @@ "source-map-support": "^0.5.19", "typedoc": "^0.28", "typescript": "~5.9", + "vitest": "^3.2.4", "webpack": "^5.76.0", "webpack-cli": "^4.6.0" }, diff --git a/packages/stargate/src/fee.spec.ts b/packages/stargate/src/fee.spec.ts index 9ba93e8a27..73a00ef929 100644 --- a/packages/stargate/src/fee.spec.ts +++ b/packages/stargate/src/fee.spec.ts @@ -63,8 +63,8 @@ describe("GasPrice", () => { }; for (const [input, expected] of Object.entries(inputs)) { const gasPrice = GasPrice.fromString(input); - expect(gasPrice.amount.toString()).withContext(`Input: ${input}`).toEqual(expected.amount); - expect(gasPrice.denom).withContext(`Input: ${input}`).toEqual(expected.denom); + expect(gasPrice.amount.toString(), `Input: ${input}`).toEqual(expected.amount); + expect(gasPrice.denom, `Input: ${input}`).toEqual(expected.denom); } }); diff --git a/packages/stargate/src/modules/auth/queries.spec.ts b/packages/stargate/src/modules/auth/queries.spec.ts index 11aa7a6ae9..4bef15b4db 100644 --- a/packages/stargate/src/modules/auth/queries.spec.ts +++ b/packages/stargate/src/modules/auth/queries.spec.ts @@ -13,7 +13,7 @@ async function makeClientWithAuth(rpcUrl: string): Promise<[QueryClient & AuthEx return [QueryClient.withExtensions(cometClient, setupAuthExtension), cometClient]; } -(simappEnabled ? describe : xdescribe)("AuthExtension", () => { +(simappEnabled ? describe : describe.skip)("AuthExtension", () => { describe("account", () => { it("works for unused account", async () => { const [client, cometClient] = await makeClientWithAuth(simapp.tendermintUrlHttp); @@ -22,7 +22,7 @@ async function makeClientWithAuth(rpcUrl: string): Promise<[QueryClient & AuthEx expect(account.typeUrl).toEqual("/cosmos.auth.v1beta1.BaseAccount"); expect(BaseAccount.decode(account.value)).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ address: unused.address, accountNumber: BigInt(unused.accountNumber), sequence: BigInt(0), @@ -51,7 +51,7 @@ async function makeClientWithAuth(rpcUrl: string): Promise<[QueryClient & AuthEx it("rejects for non-existent address", async () => { const [client, cometClient] = await makeClientWithAuth(simapp.tendermintUrlHttp); - await expectAsync(client.auth.account(nonExistentAddress)).toBeRejectedWithError( + await expect(client.auth.account(nonExistentAddress)).rejects.toThrowError( /account cosmos1p79apjaufyphcmsn4g07cynqf0wyjuezqu84hd not found/i, ); diff --git a/packages/stargate/src/modules/authz/queries.spec.ts b/packages/stargate/src/modules/authz/queries.spec.ts index 255fe0ab5c..12c59f84e9 100644 --- a/packages/stargate/src/modules/authz/queries.spec.ts +++ b/packages/stargate/src/modules/authz/queries.spec.ts @@ -21,7 +21,7 @@ async function makeClientWithAuthz(rpcUrl: string): Promise<[QueryClient & Authz return [QueryClient.withExtensions(cometClient, setupAuthzExtension), cometClient]; } -(simappEnabled ? describe : xdescribe)("AuthzExtension", () => { +(simappEnabled ? describe : describe.skip)("AuthzExtension", () => { const defaultFee = { amount: coins(25000, "ucosm"), gas: "1500000", // 1.5 million diff --git a/packages/stargate/src/modules/bank/queries.spec.ts b/packages/stargate/src/modules/bank/queries.spec.ts index 54d48cc954..2d52c6e483 100644 --- a/packages/stargate/src/modules/bank/queries.spec.ts +++ b/packages/stargate/src/modules/bank/queries.spec.ts @@ -15,7 +15,7 @@ async function makeClientWithBank(rpcUrl: string): Promise<[QueryClient & BankEx return [QueryClient.withExtensions(cometClient, setupBankExtension), cometClient]; } -(simappEnabled ? describe : xdescribe)("BankExtension", () => { +(simappEnabled ? describe : describe.skip)("BankExtension", () => { describe("balance", () => { it("works for different existing balances", async () => { const [client, cometClient] = await makeClientWithBank(simapp.tendermintUrlHttp); @@ -99,7 +99,7 @@ async function makeClientWithBank(rpcUrl: string): Promise<[QueryClient & BankEx denom: simapp.denomFee, }, { - amount: jasmine.stringMatching(nonNegativeIntegerMatcher), + amount: expect.stringMatching(nonNegativeIntegerMatcher), denom: simapp.denomStaking, }, ]); @@ -140,7 +140,7 @@ async function makeClientWithBank(rpcUrl: string): Promise<[QueryClient & BankEx const metadata = await client.bank.denomMetadata("ucosm"); expect(metadata).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ description: "The fee token of this test chain", denomUnits: [ { @@ -167,7 +167,7 @@ async function makeClientWithBank(rpcUrl: string): Promise<[QueryClient & BankEx it("works for non-existent denom", async () => { const [client, cometClient] = await makeClientWithBank(simapp.tendermintUrlHttp); - await expectAsync(client.bank.denomMetadata("nothere")).toBeRejectedWithError(/code = NotFound/i); + await expect(client.bank.denomMetadata("nothere")).rejects.toThrowError(/code = NotFound/i); cometClient.disconnect(); }); @@ -180,7 +180,7 @@ async function makeClientWithBank(rpcUrl: string): Promise<[QueryClient & BankEx const metadatas = await client.bank.denomsMetadata(); expect(metadatas.length).toEqual(1); expect(metadatas[0]).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ description: "The fee token of this test chain", denomUnits: [ { diff --git a/packages/stargate/src/modules/distribution/queries.spec.ts b/packages/stargate/src/modules/distribution/queries.spec.ts index 2465f6ef9d..6e78386658 100644 --- a/packages/stargate/src/modules/distribution/queries.spec.ts +++ b/packages/stargate/src/modules/distribution/queries.spec.ts @@ -17,7 +17,7 @@ async function makeClientWithDistribution( return [QueryClient.withExtensions(cometClient, setupDistributionExtension), cometClient]; } -(simappEnabled ? describe : xdescribe)("DistributionExtension", () => { +(simappEnabled ? describe : describe.skip)("DistributionExtension", () => { const defaultFee = { amount: coins(25000, "ucosm"), gas: "1500000", // 1.5 million diff --git a/packages/stargate/src/modules/gov/messages.spec.ts b/packages/stargate/src/modules/gov/messages.spec.ts index ded23bdb12..a624450f17 100644 --- a/packages/stargate/src/modules/gov/messages.spec.ts +++ b/packages/stargate/src/modules/gov/messages.spec.ts @@ -19,7 +19,7 @@ import { import { MsgDelegateEncodeObject, MsgSubmitProposalEncodeObject, MsgVoteEncodeObject } from "../"; import { MsgVoteWeightedEncodeObject } from "./messages"; -(simappEnabled ? describe : xdescribe)("gov messages", () => { +(simappEnabled ? describe : describe.skip)("gov messages", () => { const defaultFee = { amount: coins(25000, "ucosm"), gas: "1500000", // 1.5 million @@ -201,7 +201,7 @@ import { MsgVoteWeightedEncodeObject } from "./messages"; }); // Not working with simapp 50, see https://github.com/cosmos/cosmos-sdk/issues/18546 - (!simapp50Enabled ? it : xit)("works with Amino JSON signer", async () => { + (!simapp50Enabled ? it : it.skip)("works with Amino JSON signer", async () => { assert(voterWalletAmino); assert(proposalId, "Missing proposal ID"); const client = await SigningStargateClient.connectWithSigner( diff --git a/packages/stargate/src/modules/gov/queries.spec.ts b/packages/stargate/src/modules/gov/queries.spec.ts index 558f270c07..e6686deb49 100644 --- a/packages/stargate/src/modules/gov/queries.spec.ts +++ b/packages/stargate/src/modules/gov/queries.spec.ts @@ -31,7 +31,7 @@ async function makeClientWithGov(rpcUrl: string): Promise<[QueryClient & GovExte return [QueryClient.withExtensions(cometClient, setupGovExtension), cometClient]; } -(simappEnabled ? describe : xdescribe)("GovExtension", () => { +(simappEnabled ? describe : describe.skip)("GovExtension", () => { const defaultFee = { amount: coins(25000, "ucosm"), gas: "1500000", // 1.5 million @@ -151,7 +151,7 @@ async function makeClientWithGov(rpcUrl: string): Promise<[QueryClient & GovExte const response = await client.gov.params("deposit"); expect(response).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ depositParams: { minDeposit: simapp.govMinDeposit, maxDepositPeriod: { @@ -170,7 +170,7 @@ async function makeClientWithGov(rpcUrl: string): Promise<[QueryClient & GovExte const response = await client.gov.params("tallying"); expect(response).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ tallyParams: { // Why the f*** are we getting binary values here? quorum: toAscii("334000000000000000"), // 0.334 @@ -188,7 +188,7 @@ async function makeClientWithGov(rpcUrl: string): Promise<[QueryClient & GovExte const response = await client.gov.params("voting"); expect(response).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ votingParams: { votingPeriod: { seconds: BigInt(172800), @@ -221,11 +221,11 @@ async function makeClientWithGov(rpcUrl: string): Promise<[QueryClient & GovExte proposalId: longify(proposalId), status: ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD, finalTallyResult: { yes: "0", abstain: "0", no: "0", noWithVeto: "0" }, - submitTime: { seconds: jasmine.anything(), nanos: jasmine.any(Number) }, - depositEndTime: { seconds: jasmine.anything(), nanos: jasmine.any(Number) }, + submitTime: { seconds: expect.anything(), nanos: expect.any(Number) }, + depositEndTime: { seconds: expect.anything(), nanos: expect.any(Number) }, totalDeposit: initialDeposit, - votingStartTime: { seconds: jasmine.anything(), nanos: jasmine.any(Number) }, - votingEndTime: { seconds: jasmine.anything(), nanos: jasmine.any(Number) }, + votingStartTime: { seconds: expect.anything(), nanos: expect.any(Number) }, + votingEndTime: { seconds: expect.anything(), nanos: expect.any(Number) }, }); cometClient.disconnect(); @@ -246,12 +246,12 @@ async function makeClientWithGov(rpcUrl: string): Promise<[QueryClient & GovExte proposalId: longify(proposalId), status: ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD, finalTallyResult: { yes: "0", abstain: "0", no: "0", noWithVeto: "0" }, - // Note: jasmine.any(Bigint) does not seem to work as expected in Jasmine 4.6 - submitTime: { seconds: jasmine.anything(), nanos: jasmine.any(Number) }, - depositEndTime: { seconds: jasmine.anything(), nanos: jasmine.any(Number) }, + // Note: expect.any(Bigint) does not seem to work as expected in Jasmine 4.6 + submitTime: { seconds: expect.anything(), nanos: expect.any(Number) }, + depositEndTime: { seconds: expect.anything(), nanos: expect.any(Number) }, totalDeposit: initialDeposit, - votingStartTime: { seconds: jasmine.anything(), nanos: jasmine.any(Number) }, - votingEndTime: { seconds: jasmine.anything(), nanos: jasmine.any(Number) }, + votingStartTime: { seconds: expect.anything(), nanos: expect.any(Number) }, + votingEndTime: { seconds: expect.anything(), nanos: expect.any(Number) }, }); cometClient.disconnect(); diff --git a/packages/stargate/src/modules/ibc/ibctestdata.spec.ts b/packages/stargate/src/modules/ibc/ibctestdata.ts similarity index 100% rename from packages/stargate/src/modules/ibc/ibctestdata.spec.ts rename to packages/stargate/src/modules/ibc/ibctestdata.ts diff --git a/packages/stargate/src/modules/ibc/queries.spec.ts b/packages/stargate/src/modules/ibc/queries.spec.ts index 0ee0d53bb2..a983560bc4 100644 --- a/packages/stargate/src/modules/ibc/queries.spec.ts +++ b/packages/stargate/src/modules/ibc/queries.spec.ts @@ -2,7 +2,7 @@ import { CometClient, connectComet } from "@cosmjs/tendermint-rpc"; import { QueryClient } from "../../queryclient"; import { simapp } from "../../testutils"; -import * as ibcTest from "./ibctestdata.spec"; +import * as ibcTest from "./ibctestdata"; import { IbcExtension, setupIbcExtension } from "./queries"; async function makeClientWithIbc(rpcUrl: string): Promise<[QueryClient & IbcExtension, CometClient]> { @@ -11,7 +11,7 @@ async function makeClientWithIbc(rpcUrl: string): Promise<[QueryClient & IbcExte } // We cannot test this easily anymore since the IBC module was removed from simapp -xdescribe("IbcExtension", () => { +describe.skip("IbcExtension", () => { describe("channel", () => { describe("channel", () => { it("works", async () => { @@ -83,7 +83,7 @@ xdescribe("IbcExtension", () => { clientId: ibcTest.clientId, clientState: { typeUrl: "/ibc.lightclients.tendermint.v1.ClientState", - value: jasmine.any(Uint8Array), + value: expect.any(Uint8Array), }, }); @@ -92,7 +92,7 @@ xdescribe("IbcExtension", () => { }); describe("consensusState", () => { - xit("works", async () => { + it.skip("works", async () => { const [client, cometClient] = await makeClientWithIbc(simapp.tendermintUrlHttp); const response = await client.ibc.channel.consensusState( @@ -104,7 +104,7 @@ xdescribe("IbcExtension", () => { ); expect(response.consensusState).toEqual({ typeUrl: "/haha", - value: jasmine.any(Uint8Array), + value: expect.any(Uint8Array), }); expect(response.clientId).toEqual(ibcTest.clientId); @@ -263,7 +263,7 @@ xdescribe("IbcExtension", () => { const response = await client.ibc.client.state(ibcTest.clientId); expect(response.clientState).toEqual({ typeUrl: "/ibc.lightclients.tendermint.v1.ClientState", - value: jasmine.any(Uint8Array), + value: expect.any(Uint8Array), }); cometClient.disconnect(); @@ -280,7 +280,7 @@ xdescribe("IbcExtension", () => { clientId: ibcTest.clientId, clientState: { typeUrl: "/ibc.lightclients.tendermint.v1.ClientState", - value: jasmine.any(Uint8Array), + value: expect.any(Uint8Array), }, }, ]); @@ -300,7 +300,7 @@ xdescribe("IbcExtension", () => { clientId: ibcTest.clientId, clientState: { typeUrl: "/ibc.lightclients.tendermint.v1.ClientState", - value: jasmine.any(Uint8Array), + value: expect.any(Uint8Array), }, }, ]); @@ -316,7 +316,7 @@ xdescribe("IbcExtension", () => { const response = await client.ibc.client.consensusState(ibcTest.clientId); expect(response.consensusState).toEqual({ typeUrl: "/ibc.lightclients.tendermint.v1.ConsensusState", - value: jasmine.any(Uint8Array), + value: expect.any(Uint8Array), }); cometClient.disconnect(); @@ -329,12 +329,12 @@ xdescribe("IbcExtension", () => { const response = await client.ibc.client.consensusStates(ibcTest.clientId); expect(response.consensusStates).toEqual( - jasmine.arrayContaining([ + expect.arrayContaining([ { - height: jasmine.anything(), + height: expect.anything(), consensusState: { typeUrl: "/ibc.lightclients.tendermint.v1.ConsensusState", - value: jasmine.any(Uint8Array), + value: expect.any(Uint8Array), }, }, ]), @@ -350,12 +350,12 @@ xdescribe("IbcExtension", () => { const response = await client.ibc.client.allConsensusStates(ibcTest.clientId); expect(response.consensusStates).toEqual( - jasmine.arrayContaining([ + expect.arrayContaining([ { - height: jasmine.anything(), + height: expect.anything(), consensusState: { typeUrl: "/ibc.lightclients.tendermint.v1.ConsensusState", - value: jasmine.any(Uint8Array), + value: expect.any(Uint8Array), }, }, ]), @@ -396,8 +396,8 @@ xdescribe("IbcExtension", () => { const response = await client.ibc.client.statesTm(); expect(response).toEqual( - jasmine.arrayContaining([ - jasmine.objectContaining({ + expect.arrayContaining([ + expect.objectContaining({ chainId: "ibc-1", }), ]), @@ -413,8 +413,8 @@ xdescribe("IbcExtension", () => { const response = await client.ibc.client.allStatesTm(); expect(response).toEqual( - jasmine.arrayContaining([ - jasmine.objectContaining({ + expect.arrayContaining([ + expect.objectContaining({ chainId: "ibc-1", }), ]), @@ -429,7 +429,7 @@ xdescribe("IbcExtension", () => { const [client, cometClient] = await makeClientWithIbc(simapp.tendermintUrlHttp); const response = await client.ibc.client.consensusStateTm(ibcTest.clientId); - expect(response.nextValidatorsHash).toEqual(jasmine.any(Uint8Array)); + expect(response.nextValidatorsHash).toEqual(expect.any(Uint8Array)); // TODO: Fill out these expectations cometClient.disconnect(); @@ -497,7 +497,7 @@ xdescribe("IbcExtension", () => { clientId: ibcTest.clientId, clientState: { typeUrl: "/ibc.lightclients.tendermint.v1.ClientState", - value: jasmine.any(Uint8Array), + value: expect.any(Uint8Array), }, }); @@ -506,7 +506,7 @@ xdescribe("IbcExtension", () => { }); describe("consensusState", () => { - xit("works", async () => { + it.skip("works", async () => { const [client, cometClient] = await makeClientWithIbc(simapp.tendermintUrlHttp); // TODO: Find valid values @@ -514,7 +514,7 @@ xdescribe("IbcExtension", () => { expect(response.clientId).toEqual(ibcTest.clientId); expect(response.consensusState).toEqual({ typeUrl: "/ibc.lightclients.tendermint.v1.ConsensusState", - value: jasmine.any(Uint8Array), + value: expect.any(Uint8Array), }); cometClient.disconnect(); diff --git a/packages/stargate/src/modules/mint/queries.spec.ts b/packages/stargate/src/modules/mint/queries.spec.ts index 84cd2447a1..d7b33aede0 100644 --- a/packages/stargate/src/modules/mint/queries.spec.ts +++ b/packages/stargate/src/modules/mint/queries.spec.ts @@ -9,7 +9,7 @@ async function makeClientWithMint(rpcUrl: string): Promise<[QueryClient & MintEx return [QueryClient.withExtensions(cometClient, setupMintExtension), cometClient]; } -(simappEnabled ? describe : xdescribe)("MintExtension", () => { +(simappEnabled ? describe : describe.skip)("MintExtension", () => { describe("params", () => { it("works", async () => { const [client, cometClient] = await makeClientWithMint(simapp.tendermintUrlHttp); diff --git a/packages/stargate/src/modules/slashing/queries.spec.ts b/packages/stargate/src/modules/slashing/queries.spec.ts index f063b6b3ff..89b10d20e4 100644 --- a/packages/stargate/src/modules/slashing/queries.spec.ts +++ b/packages/stargate/src/modules/slashing/queries.spec.ts @@ -11,7 +11,7 @@ async function makeClientWithSlashing( return [QueryClient.withExtensions(cometClient, setupSlashingExtension), cometClient]; } -(simappEnabled ? describe : xdescribe)("SlashingExtension", () => { +(simappEnabled ? describe : describe.skip)("SlashingExtension", () => { describe("signingInfos", () => { it("works", async () => { const [client, cometClient] = await makeClientWithSlashing(simapp.tendermintUrlHttp); diff --git a/packages/stargate/src/modules/staking/messages.spec.ts b/packages/stargate/src/modules/staking/messages.spec.ts index 32451a26cd..0b29f2e7db 100644 --- a/packages/stargate/src/modules/staking/messages.spec.ts +++ b/packages/stargate/src/modules/staking/messages.spec.ts @@ -39,7 +39,7 @@ async function sendFeeAndStakingTokens(address: string): Promise { client.disconnect(); } -(simappEnabled ? describe : xdescribe)("staking messages", () => { +(simappEnabled ? describe : describe.skip)("staking messages", () => { const createFee = calculateFee(200_000, defaultGasPrice); const editFee = calculateFee(200_000, defaultGasPrice); @@ -93,7 +93,7 @@ async function sendFeeAndStakingTokens(address: string): Promise { }); // Not working with simapp 50, see https://github.com/cosmos/cosmos-sdk/issues/18546 - (!simapp50Enabled ? it : xit)("works with Amino JSON signer", async () => { + (!simapp50Enabled ? it : it.skip)("works with Amino JSON signer", async () => { const valWallet = await Secp256k1HdWallet.generate(); const [valAccount] = await valWallet.getAccounts(); @@ -230,7 +230,7 @@ async function sendFeeAndStakingTokens(address: string): Promise { }); // Not working with simapp 50, see https://github.com/cosmos/cosmos-sdk/issues/18546 - (!simapp50Enabled ? it : xit)("works with Amino JSON signer", async () => { + (!simapp50Enabled ? it : it.skip)("works with Amino JSON signer", async () => { const valWallet = await Secp256k1HdWallet.generate(); const [valAccount] = await valWallet.getAccounts(); diff --git a/packages/stargate/src/modules/staking/queries.spec.ts b/packages/stargate/src/modules/staking/queries.spec.ts index 703adc6271..2986071869 100644 --- a/packages/stargate/src/modules/staking/queries.spec.ts +++ b/packages/stargate/src/modules/staking/queries.spec.ts @@ -15,7 +15,7 @@ async function makeClientWithStaking(rpcUrl: string): Promise<[QueryClient & Sta return [QueryClient.withExtensions(cometClient, setupStakingExtension), cometClient]; } -(simappEnabled ? describe : xdescribe)("StakingExtension", () => { +(simappEnabled ? describe : describe.skip)("StakingExtension", () => { const defaultFee = { amount: coins(25000, "ucosm"), gas: "1500000", // 1.5 million @@ -162,9 +162,9 @@ async function makeClientWithStaking(rpcUrl: string): Promise<[QueryClient & Sta // TODO: Set up a result for this test const [client, cometClient] = await makeClientWithStaking(simapp.tendermintUrlHttp); - await expectAsync( + await expect( client.staking.redelegations(faucet.address0, validator.validatorAddress, validator.validatorAddress), - ).toBeRejectedWithError(/redelegation not found/i); + ).rejects.toThrowError(/redelegation not found/i); cometClient.disconnect(); }); diff --git a/packages/stargate/src/modules/tx/queries.spec.ts b/packages/stargate/src/modules/tx/queries.spec.ts index 686aabc322..4a672902fa 100644 --- a/packages/stargate/src/modules/tx/queries.spec.ts +++ b/packages/stargate/src/modules/tx/queries.spec.ts @@ -21,7 +21,7 @@ async function makeClientWithTx(rpcUrl: string): Promise<[QueryClient & TxExtens return [QueryClient.withExtensions(cometClient, setupTxExtension), cometClient]; } -(simappEnabled ? describe : xdescribe)("TxExtension", () => { +(simappEnabled ? describe : describe.skip)("TxExtension", () => { const defaultFee = { amount: coins(25000, "ucosm"), gas: "1500000", // 1.5 million diff --git a/packages/stargate/src/modules/vesting/messages.spec.ts b/packages/stargate/src/modules/vesting/messages.spec.ts index 41485bd524..b19bcfe75e 100644 --- a/packages/stargate/src/modules/vesting/messages.spec.ts +++ b/packages/stargate/src/modules/vesting/messages.spec.ts @@ -12,7 +12,7 @@ import { simappEnabled, } from "../../testutils"; -(simappEnabled ? describe : xdescribe)("vesting messages", () => { +(simappEnabled ? describe : describe.skip)("vesting messages", () => { describe("MsgCreateVestingAccount", () => { it("works with sign mode direct", async () => { const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic); diff --git a/packages/stargate/src/multisignature.spec.ts b/packages/stargate/src/multisignature.spec.ts index efd58ffbd7..2c29e0e68b 100644 --- a/packages/stargate/src/multisignature.spec.ts +++ b/packages/stargate/src/multisignature.spec.ts @@ -168,7 +168,7 @@ describe("multisignature", () => { }); }); - (simappEnabled ? describe : xdescribe)("makeMultisignedTxBytes", () => { + (simappEnabled ? describe : describe.skip)("makeMultisignedTxBytes", () => { it("works", async () => { const multisigAccountAddress = "cosmos1h90ml36rcu7yegwduzgzderj2jmq49hcpfclw9"; diff --git a/packages/stargate/src/queryclient/queryclient.spec.ts b/packages/stargate/src/queryclient/queryclient.spec.ts index ca363582e8..bd8cd53472 100644 --- a/packages/stargate/src/queryclient/queryclient.spec.ts +++ b/packages/stargate/src/queryclient/queryclient.spec.ts @@ -25,7 +25,7 @@ async function makeClient(rpcUrl: string): Promise<[QueryClient, CometClient]> { return [QueryClient.withExtensions(cometClient), cometClient]; } -(simappEnabled ? describe : xdescribe)("QueryClient", () => { +(simappEnabled ? describe : describe.skip)("QueryClient", () => { describe("queryAbci", () => { it("works via WebSockets", async () => { const [client, cometClient] = await makeClient(simapp.tendermintUrlWs); diff --git a/packages/stargate/src/signingstargateclient.spec.ts b/packages/stargate/src/signingstargateclient.spec.ts index af2156547d..28dd00ac19 100644 --- a/packages/stargate/src/signingstargateclient.spec.ts +++ b/packages/stargate/src/signingstargateclient.spec.ts @@ -48,7 +48,7 @@ import { validator, } from "./testutils"; -(simappEnabled ? describe : xdescribe)("SigningStargateClient", () => { +(simappEnabled ? describe : describe.skip)("SigningStargateClient", () => { describe("constructor", () => { it("can be constructed with custom registry", async () => { const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic); @@ -247,7 +247,7 @@ import { }); // We cannot test this easily anymore since the IBC module was removed from simapp - xdescribe("sendIbcTokens", () => { + describe.skip("sendIbcTokens", () => { it("works with direct signing", async () => { const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic); const client = await SigningStargateClient.connectWithSigner( @@ -962,10 +962,8 @@ import { const height = await client.getHeight(); const signed = await client.sign(faucet.address0, [msgAny], fee, memo, undefined, BigInt(height - 1)); - await expectAsync( - client.broadcastTx(Uint8Array.from(TxRaw.encode(signed).finish())), - ).toBeRejectedWith( - jasmine.objectContaining({ + await expect(client.broadcastTx(Uint8Array.from(TxRaw.encode(signed).finish()))).rejects.toThrowError( + expect.objectContaining({ code: 30, }), ); @@ -1238,10 +1236,8 @@ import { const height = await client.getHeight(); const signed = await client.sign(faucet.address0, [msgAny], fee, memo, undefined, BigInt(height - 1)); - await expectAsync( - client.broadcastTx(Uint8Array.from(TxRaw.encode(signed).finish())), - ).toBeRejectedWith( - jasmine.objectContaining({ + await expect(client.broadcastTx(Uint8Array.from(TxRaw.encode(signed).finish()))).rejects.toThrowError( + expect.objectContaining({ code: 30, }), ); diff --git a/packages/stargate/src/stargateclient.searchtx.spec.ts b/packages/stargate/src/stargateclient.searchtx.spec.ts index 6611cf059e..6a630036e4 100644 --- a/packages/stargate/src/stargateclient.searchtx.spec.ts +++ b/packages/stargate/src/stargateclient.searchtx.spec.ts @@ -98,7 +98,7 @@ async function sendTokens( }; } -(simappEnabled ? describe : xdescribe)("StargateClient.getTx and .searchTx", () => { +(simappEnabled ? describe : describe.skip)("StargateClient.getTx and .searchTx", () => { const registry = new Registry(); let sendUnsuccessful: TestTxSend | undefined; @@ -155,7 +155,7 @@ async function sendTokens( const result = await client.getTx(sendSuccessful.hash); assert(result); expect(result).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ height: sendSuccessful.height, hash: sendSuccessful.hash, code: 0, @@ -175,7 +175,7 @@ async function sendTokens( const result = await client.getTx(sendUnsuccessful.hash); assert(result); expect(result).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ height: sendUnsuccessful.height, hash: sendUnsuccessful.hash, code: 5, @@ -202,7 +202,7 @@ async function sendTokens( const result = await client.searchTx(`tx.height=${sendSuccessful.height}`); expect(result.length).toBeGreaterThanOrEqual(1); expect(result).toContain( - jasmine.objectContaining({ + expect.objectContaining({ height: sendSuccessful.height, hash: sendSuccessful.hash, code: 0, @@ -222,7 +222,7 @@ async function sendTokens( const result = await client.searchTx(`tx.height=${sendUnsuccessful.height}`); expect(result.length).toBeGreaterThanOrEqual(1); expect(result).toContain( - jasmine.objectContaining({ + expect.objectContaining({ height: sendUnsuccessful.height, hash: sendUnsuccessful.hash, code: 5, @@ -252,7 +252,7 @@ async function sendTokens( // Check details of most recent result expect(results[results.length - 1]).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ height: sendSuccessful.height, hash: sendSuccessful.hash, tx: sendSuccessful.tx, @@ -279,7 +279,7 @@ async function sendTokens( // Check details of most recent result expect(results[results.length - 1]).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ height: sendSuccessful.height, hash: sendSuccessful.hash, tx: sendSuccessful.tx, @@ -304,7 +304,7 @@ async function sendTokens( // Check details of most recent result expect(results[results.length - 1]).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ height: sendSuccessful.height, hash: sendSuccessful.hash, tx: sendSuccessful.tx, diff --git a/packages/stargate/src/stargateclient.spec.ts b/packages/stargate/src/stargateclient.spec.ts index 1a03c0af35..68bf29ad1b 100644 --- a/packages/stargate/src/stargateclient.spec.ts +++ b/packages/stargate/src/stargateclient.spec.ts @@ -20,7 +20,6 @@ import { isDeliverTxSuccess, PrivateStargateClient, StargateClient, - TimeoutError, } from "./stargateclient"; import { faucet, @@ -76,7 +75,7 @@ describe("isDeliverTxSuccess", () => { }); }); -(simappEnabled ? describe : xdescribe)("StargateClient", () => { +(simappEnabled ? describe : describe.skip)("StargateClient", () => { describe("connect", () => { it("works", async () => { const client = await StargateClient.connect(simapp.tendermintUrlHttp); @@ -95,7 +94,7 @@ describe("isDeliverTxSuccess", () => { it("caches chain ID", async () => { const client = await StargateClient.connect(simapp.tendermintUrlHttp); const openedClient = client as unknown as PrivateStargateClient; - const getCodeSpy = spyOn(openedClient.cometClient!, "status").and.callThrough(); + const getCodeSpy = vi.spyOn(openedClient.cometClient!, "status"); expect(await client.getChainId()).toEqual(simapp.chainId); // from network expect(await client.getChainId()).toEqual(simapp.chainId); // from cache @@ -179,7 +178,7 @@ describe("isDeliverTxSuccess", () => { it("rejects for non-existent address", async () => { const client = await StargateClient.connect(simapp.tendermintUrlHttp); - await expectAsync(client.getSequence(nonExistentAddress)).toBeRejectedWithError( + await expect(client.getSequence(nonExistentAddress)).rejects.toThrowError( /account '([a-z0-9]{10,90})' does not exist on chain/i, ); @@ -193,12 +192,12 @@ describe("isDeliverTxSuccess", () => { const response = await client.getBlock(); expect(response).toEqual( - jasmine.objectContaining({ - id: jasmine.stringMatching(tendermintIdMatcher), - header: jasmine.objectContaining({ + expect.objectContaining({ + id: expect.stringMatching(tendermintIdMatcher), + header: expect.objectContaining({ chainId: await client.getChainId(), }), - txs: jasmine.arrayContaining([]), + txs: expect.arrayContaining([]), }), ); @@ -217,13 +216,13 @@ describe("isDeliverTxSuccess", () => { const response = await client.getBlock(height - 1); expect(response).toEqual( - jasmine.objectContaining({ - id: jasmine.stringMatching(tendermintIdMatcher), - header: jasmine.objectContaining({ + expect.objectContaining({ + id: expect.stringMatching(tendermintIdMatcher), + header: expect.objectContaining({ height: height - 1, chainId: await client.getChainId(), }), - txs: jasmine.arrayContaining([]), + txs: expect.arrayContaining([]), }), ); @@ -465,7 +464,7 @@ describe("isDeliverTxSuccess", () => { client.disconnect(); }); - (slowSimappEnabled ? it : xit)( + (slowSimappEnabled ? it : it.skip)( "respects user timeouts rather than RPC timeouts", async () => { const client = await StargateClient.connect(slowSimapp.tendermintUrlHttp); @@ -540,9 +539,13 @@ describe("isDeliverTxSuccess", () => { }); const txRawBytes2 = Uint8Array.from(TxRaw.encode(txRaw2).finish()); const smallTimeoutMs = 1_000; - await expectAsync(client.broadcastTx(txRawBytes2, smallTimeoutMs)).toBeRejectedWithError( - TimeoutError, - /transaction with id .+ was submitted but was not yet found on the chain/i, + await expect(client.broadcastTx(txRawBytes2, smallTimeoutMs)).rejects.toThrowError( + expect.objectContaining({ + name: "TimeoutError", + message: expect.stringMatching( + /transaction with id .+ was submitted but was not yet found on the chain/i, + ), + }), ); client.disconnect(); diff --git a/packages/stream/jasmine-testrunner.cjs b/packages/stream/jasmine-testrunner.cjs deleted file mode 100644 index 96247348c4..0000000000 --- a/packages/stream/jasmine-testrunner.cjs +++ /dev/null @@ -1,36 +0,0 @@ -if (process.env.SES_ENABLED) { - require("ses"); - // eslint-disable-next-line no-undef - lockdown(); -} - -require("source-map-support").install(); -const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); - -// setup Jasmine -const Jasmine = require("jasmine"); -const jasmine = new Jasmine(); -jasmine.loadConfig({ - spec_dir: "build", - spec_files: ["**/*.spec.js"], - helpers: [], - random: false, - seed: null, - stopSpecOnExpectationFailure: false, -}); -jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * 1000; - -// setup reporter -const { SpecReporter } = require("jasmine-spec-reporter"); -const reporter = new SpecReporter({ - ...defaultSpecReporterConfig, - spec: { - ...defaultSpecReporterConfig.spec, - displaySuccessful: !process.argv.includes("--quiet"), - }, -}); - -// initialize and execute -jasmine.env.clearReporters(); -jasmine.addReporter(reporter); -void jasmine.execute(); diff --git a/packages/stream/package.json b/packages/stream/package.json index 8446c9848f..9b7560861d 100644 --- a/packages/stream/package.json +++ b/packages/stream/package.json @@ -30,28 +30,28 @@ "docs": "typedoc", "format": "prettier --write --log-level warn \"./src/**/*.ts\"", "format-text": "prettier --write \"./*.md\"", - "test-node": "yarn node jasmine-testrunner.cjs", + "test-node": "vitest run", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox karma.conf.cjs", - "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless karma.conf.cjs", + "test-chrome": "vitest run --browser", "test": "yarn build-or-skip && yarn test-node", - "coverage": "nyc --reporter=text --reporter=lcov yarn test --quiet", + "coverage": "nyc --reporter=text --reporter=lcov yarn test", "build": "rm -rf ./build && tsc", "build-or-skip": "[ -n \"${SKIP_BUILD:-}\" ] || yarn build", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.cjs" }, + "engines": { + "node": "^20.19 || >=22.12" + }, "dependencies": { "xstream": "^11.14.0" }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@types/jasmine": "^4", "@types/karma-firefox-launcher": "^2", "@types/karma-jasmine": "^4", "@types/karma-jasmine-html-reporter": "^1", "@types/node": "*", "glob": "^11", - "jasmine": "^4", - "jasmine-spec-reporter": "^6", "karma": "^6.3.14", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.0", @@ -63,6 +63,7 @@ "source-map-support": "^0.5.19", "typedoc": "^0.28", "typescript": "~5.9", + "vitest": "^3.2.4", "webpack": "^5.76.0", "webpack-cli": "^4.6.0" }, diff --git a/packages/stream/src/concat.spec.ts b/packages/stream/src/concat.spec.ts index 5b53cb1394..5c380777e7 100644 --- a/packages/stream/src/concat.spec.ts +++ b/packages/stream/src/concat.spec.ts @@ -214,7 +214,7 @@ describe("concat", () => { }); // For browsers and CI, clocks and runtimes are very unreliable. // Especially Mac+Firefox on Travis makes big trouble. Thus we need huge intervals. - const intervalDuration = 1000; + const intervalDuration = 500; const producerActiveLog = new Array(); let producerInterval: NodeJS.Timeout; @@ -287,5 +287,5 @@ describe("concat", () => { }, 6 * intervalDuration); return ret; - }); + }, 10000); }); diff --git a/packages/stream/src/promise.spec.ts b/packages/stream/src/promise.spec.ts index 09326eb150..26725ca725 100644 --- a/packages/stream/src/promise.spec.ts +++ b/packages/stream/src/promise.spec.ts @@ -78,7 +78,7 @@ describe("promise", () => { }); it("rejects for simple stream with less events than count", async () => { - await expectAsync(toListPromise(Stream.fromArray([1, 6, 92]), 5)).toBeRejectedWithError( + await expect(toListPromise(Stream.fromArray([1, 6, 92]), 5)).rejects.toThrowError( /stream completed before all events could be collected/i, ); }); @@ -114,7 +114,7 @@ describe("promise", () => { }); it("rejects for stream with no events", async () => { - await expectAsync(firstEvent(Stream.fromArray([]))).toBeRejectedWithError( + await expect(firstEvent(Stream.fromArray([]))).rejects.toThrowError( /stream completed before all events could be collected/i, ); }); diff --git a/packages/stream/src/valueandupdates.spec.ts b/packages/stream/src/valueandupdates.spec.ts index 2c84ef3dac..3050af409f 100644 --- a/packages/stream/src/valueandupdates.spec.ts +++ b/packages/stream/src/valueandupdates.spec.ts @@ -267,7 +267,7 @@ describe("ValueAndUpdates", () => { setTimeout(() => { producer.error(new Error("something went wrong")); }, 10); - await expectAsync(vau.waitFor(3)).toBeRejectedWithError(/something went wrong/); + await expect(vau.waitFor(3)).rejects.toThrowError(/something went wrong/); }); }); }); diff --git a/packages/tendermint-rpc/jasmine-testrunner.cjs b/packages/tendermint-rpc/jasmine-testrunner.cjs deleted file mode 100644 index 96247348c4..0000000000 --- a/packages/tendermint-rpc/jasmine-testrunner.cjs +++ /dev/null @@ -1,36 +0,0 @@ -if (process.env.SES_ENABLED) { - require("ses"); - // eslint-disable-next-line no-undef - lockdown(); -} - -require("source-map-support").install(); -const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); - -// setup Jasmine -const Jasmine = require("jasmine"); -const jasmine = new Jasmine(); -jasmine.loadConfig({ - spec_dir: "build", - spec_files: ["**/*.spec.js"], - helpers: [], - random: false, - seed: null, - stopSpecOnExpectationFailure: false, -}); -jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * 1000; - -// setup reporter -const { SpecReporter } = require("jasmine-spec-reporter"); -const reporter = new SpecReporter({ - ...defaultSpecReporterConfig, - spec: { - ...defaultSpecReporterConfig.spec, - displaySuccessful: !process.argv.includes("--quiet"), - }, -}); - -// initialize and execute -jasmine.env.clearReporters(); -jasmine.addReporter(reporter); -void jasmine.execute(); diff --git a/packages/tendermint-rpc/package.json b/packages/tendermint-rpc/package.json index 3fc7e870ea..2aa64bf2cb 100644 --- a/packages/tendermint-rpc/package.json +++ b/packages/tendermint-rpc/package.json @@ -16,6 +16,7 @@ "build/", "*.md", "!*.spec.*", + "!*testutils.*", "!**/testdata/" ], "repository": { @@ -30,7 +31,7 @@ "docs": "typedoc", "format": "prettier --write --log-level warn \"./src/**/*.ts\"", "format-text": "prettier --write \"./*.md\"", - "test-node": "yarn node jasmine-testrunner.cjs", + "test-node": "vitest run", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox karma.conf.cjs", "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless karma.conf.cjs", "test": "yarn build-or-skip && yarn test-node", @@ -39,6 +40,9 @@ "build-or-skip": "[ -n \"${SKIP_BUILD:-}\" ] || yarn build", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.cjs" }, + "engines": { + "node": "^20.19 || >=22.12" + }, "dependencies": { "@cosmjs/crypto": "workspace:^", "@cosmjs/encoding": "workspace:^", @@ -52,14 +56,11 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@types/jasmine": "^4", "@types/karma-firefox-launcher": "^2", "@types/karma-jasmine": "^4", "@types/karma-jasmine-html-reporter": "^1", "@types/node": "*", "glob": "^11", - "jasmine": "^4", - "jasmine-spec-reporter": "^6", "karma": "^6.3.14", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.0", @@ -71,6 +72,7 @@ "source-map-support": "^0.5.19", "typedoc": "^0.28", "typescript": "~5.9", + "vitest": "^3.2.4", "webpack": "^5.76.0", "webpack-cli": "^4.6.0" }, diff --git a/packages/tendermint-rpc/src/comet1/comet1client.spec.ts b/packages/tendermint-rpc/src/comet1/comet1client.spec.ts index 944e2a7bde..101e318c05 100644 --- a/packages/tendermint-rpc/src/comet1/comet1client.spec.ts +++ b/packages/tendermint-rpc/src/comet1/comet1client.spec.ts @@ -13,7 +13,7 @@ import { tendermintEnabled, tendermintInstances, tendermintSearchIndexUpdated, -} from "../testutil.spec"; +} from "../testutils"; import { Comet1Client } from "./comet1client"; import { hashTx } from "./hasher"; import { buildQuery } from "./requests"; @@ -40,10 +40,10 @@ function defaultTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValues) expect(genesis).toBeTruthy(); expect(genesis.validators).toEqual([ { - address: jasmine.any(Uint8Array), // changes on every chain restart + address: expect.any(Uint8Array), // changes on every chain restart pubkey: { algorithm: "ed25519", - data: jasmine.any(Uint8Array), // changes on every chain restart + data: expect.any(Uint8Array), // changes on every chain restart }, power: 10n, name: "The Machine 2035", @@ -130,7 +130,7 @@ function defaultTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValues) expect(response.proof).toBeUndefined(); expect(response.log).toEqual("exists"); expect(response.info).toEqual(""); - expect(response.height).toMatch(nonNegativeIntegerMatcher); + expect(response.height?.toString()).toMatch(nonNegativeIntegerMatcher); client.disconnect(); }); @@ -386,18 +386,18 @@ function defaultTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValues) expect(blockchain.blockMetas.length).toBeGreaterThanOrEqual(1); const meta = blockchain.blockMetas[0]; - expect(meta.blockId).toEqual(jasmine.objectContaining({})); - expect(meta.blockSize).toBeInstanceOf(Number); + expect(meta.blockId).toEqual(expect.objectContaining({})); + expect(typeof meta.blockSize).toBe("number"); expect(meta.header).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ version: { block: expected.blockVersion, app: expected.appVersion, }, - chainId: jasmine.stringMatching(expected.chainId), + chainId: expect.stringMatching(expected.chainId), }), ); - expect(meta.numTxs).toBeInstanceOf(Number); + expect(typeof meta.numTxs).toBe("number"); client.disconnect(); }); @@ -870,7 +870,7 @@ function websocketTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValue }); } -(tendermintEnabled ? describe : xdescribe)("Comet1Client with CometBFT 1 backend", () => { +(tendermintEnabled ? describe : describe.skip)("Comet1Client with CometBFT 1 backend", () => { const { url, expected } = tendermintInstances[1]; it("can connect to a given url", async () => { diff --git a/packages/tendermint-rpc/src/comet38/comet38client.spec.ts b/packages/tendermint-rpc/src/comet38/comet38client.spec.ts index 2b5bdbb254..e3afa25bb5 100644 --- a/packages/tendermint-rpc/src/comet38/comet38client.spec.ts +++ b/packages/tendermint-rpc/src/comet38/comet38client.spec.ts @@ -13,7 +13,7 @@ import { tendermintEnabled, tendermintInstances, tendermintSearchIndexUpdated, -} from "../testutil.spec"; +} from "../testutils"; import { Comet38Client } from "./comet38client"; import { hashTx } from "./hasher"; import { buildQuery } from "./requests"; @@ -119,7 +119,7 @@ function defaultTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValues) expect(response.proof).toBeUndefined(); expect(response.log).toEqual("exists"); expect(response.info).toEqual(""); - expect(response.height).toMatch(nonNegativeIntegerMatcher); + expect(response.height?.toString()).toMatch(nonNegativeIntegerMatcher); client.disconnect(); }); @@ -375,18 +375,18 @@ function defaultTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValues) expect(blockchain.blockMetas.length).toBeGreaterThanOrEqual(1); const meta = blockchain.blockMetas[0]; - expect(meta.blockId).toEqual(jasmine.objectContaining({})); - expect(meta.blockSize).toBeInstanceOf(Number); + expect(meta.blockId).toEqual(expect.objectContaining({})); + expect(typeof meta.blockSize).toBe("number"); expect(meta.header).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ version: { block: expected.blockVersion, app: expected.appVersion, }, - chainId: jasmine.stringMatching(expected.chainId), + chainId: expect.stringMatching(expected.chainId), }), ); - expect(meta.numTxs).toBeInstanceOf(Number); + expect(typeof meta.numTxs).toBe("number"); client.disconnect(); }); @@ -859,7 +859,7 @@ function websocketTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValue }); } -(tendermintEnabled ? describe : xdescribe)("Comet38Client with CometBFT 0.38 backend", () => { +(tendermintEnabled ? describe : describe.skip)("Comet38Client with CometBFT 0.38 backend", () => { const { url, expected } = tendermintInstances[38]; it("can connect to a given url", async () => { diff --git a/packages/tendermint-rpc/src/rpcclients/http.spec.ts b/packages/tendermint-rpc/src/rpcclients/http.spec.ts index 68790dcf2b..1ac56261ca 100644 --- a/packages/tendermint-rpc/src/rpcclients/http.spec.ts +++ b/packages/tendermint-rpc/src/rpcclients/http.spec.ts @@ -1,5 +1,5 @@ import { createJsonRpcRequest } from "../jsonrpc"; -import { defaultInstance, tendermintEnabled } from "../testutil.spec"; +import { defaultInstance, tendermintEnabled } from "../testutils"; import { http } from "./http"; const httpServerEnabled = !!globalThis.process?.env.HTTPSERVER_ENABLED; @@ -8,15 +8,15 @@ const tendermintUrl = defaultInstance.url; const echoUrl = "http://localhost:5555/echo_headers"; describe("http", () => { - (tendermintEnabled ? it : xit)("can send a health request", async () => { + (tendermintEnabled ? it : it.skip)("can send a health request", async () => { const response = await http("POST", `http://${tendermintUrl}`, undefined, createJsonRpcRequest("health")); - expect(response).toEqual(jasmine.objectContaining({ jsonrpc: "2.0" })); + expect(response).toEqual(expect.objectContaining({ jsonrpc: "2.0" })); }); - (httpServerEnabled ? it : xit)("can POST to echo server", async () => { + (httpServerEnabled ? it : it.skip)("can POST to echo server", async () => { const response = await http("POST", echoUrl, undefined, createJsonRpcRequest("health")); expect(response).toEqual({ - request_headers: jasmine.objectContaining({ + request_headers: expect.objectContaining({ // Basic headers from http client "Content-Type": "application/json", }), @@ -24,12 +24,12 @@ describe("http", () => { }); it("errors for non-open port", async () => { - await expectAsync( + await expect( http("POST", `http://localhost:56745`, undefined, createJsonRpcRequest("health")), - ).toBeRejectedWithError(/(ECONNREFUSED|Failed to fetch|fetch failed|(request to .* failed))/i); + ).rejects.toThrowError(/(ECONNREFUSED|Failed to fetch|fetch failed|(request to .* failed))/i); }); - (httpServerEnabled ? it : xit)("can POST to echo server with custom headers", async () => { + (httpServerEnabled ? it : it.skip)("can POST to echo server with custom headers", async () => { // With custom headers const response = await http( "POST", @@ -38,7 +38,7 @@ describe("http", () => { createJsonRpcRequest("health"), ); expect(response).toEqual({ - request_headers: jasmine.objectContaining({ + request_headers: expect.objectContaining({ // Basic headers from http client "Content-Type": "application/json", // Custom headers diff --git a/packages/tendermint-rpc/src/rpcclients/httpbatchclient.spec.ts b/packages/tendermint-rpc/src/rpcclients/httpbatchclient.spec.ts index dc184ea881..bb4e3136ef 100644 --- a/packages/tendermint-rpc/src/rpcclients/httpbatchclient.spec.ts +++ b/packages/tendermint-rpc/src/rpcclients/httpbatchclient.spec.ts @@ -1,8 +1,8 @@ import { createJsonRpcRequest } from "../jsonrpc"; -import { defaultInstance, tendermintEnabled } from "../testutil.spec"; +import { defaultInstance, tendermintEnabled } from "../testutils"; import { HttpBatchClient } from "./httpbatchclient"; -(tendermintEnabled ? describe : xdescribe)("HttpBatchClient", () => { +(tendermintEnabled ? describe : describe.skip)("HttpBatchClient", () => { const tendermintUrl = "http://" + defaultInstance.url; it("can make a simple call", async () => { @@ -15,7 +15,7 @@ import { HttpBatchClient } from "./httpbatchclient"; expect(statusResponse.result).toBeTruthy(); expect(statusResponse.result.node_info).toBeTruthy(); - await expectAsync(client.execute(createJsonRpcRequest("no-such-method"))).toBeRejected(); + await expect(client.execute(createJsonRpcRequest("no-such-method"))).rejects.toThrowError(); client.disconnect(); }); diff --git a/packages/tendermint-rpc/src/rpcclients/httpclient.spec.ts b/packages/tendermint-rpc/src/rpcclients/httpclient.spec.ts index 0080ec0f35..b692c2ef3e 100644 --- a/packages/tendermint-rpc/src/rpcclients/httpclient.spec.ts +++ b/packages/tendermint-rpc/src/rpcclients/httpclient.spec.ts @@ -1,8 +1,8 @@ import { createJsonRpcRequest } from "../jsonrpc"; -import { defaultInstance, tendermintEnabled } from "../testutil.spec"; +import { defaultInstance, tendermintEnabled } from "../testutils"; import { HttpClient } from "./httpclient"; -(tendermintEnabled ? describe : xdescribe)("HttpClient", () => { +(tendermintEnabled ? describe : describe.skip)("HttpClient", () => { const tendermintUrl = "http://" + defaultInstance.url; it("can make a simple call", async () => { @@ -15,7 +15,7 @@ import { HttpClient } from "./httpclient"; expect(statusResponse.result).toBeTruthy(); expect(statusResponse.result.node_info).toBeTruthy(); - await expectAsync(client.execute(createJsonRpcRequest("no-such-method"))).toBeRejected(); + await expect(client.execute(createJsonRpcRequest("no-such-method"))).rejects.toThrowError(); client.disconnect(); }); diff --git a/packages/tendermint-rpc/src/rpcclients/rpcclient.spec.ts b/packages/tendermint-rpc/src/rpcclients/rpcclient.spec.ts index 37262534cb..152a751c47 100644 --- a/packages/tendermint-rpc/src/rpcclients/rpcclient.spec.ts +++ b/packages/tendermint-rpc/src/rpcclients/rpcclient.spec.ts @@ -1,10 +1,10 @@ import { createJsonRpcRequest } from "../jsonrpc"; -import { defaultInstance, tendermintEnabled } from "../testutil.spec"; +import { defaultInstance, tendermintEnabled } from "../testutils"; import { HttpClient } from "./httpclient"; import { hasProtocol, instanceOfRpcStreamingClient } from "./rpcclient"; import { WebsocketClient } from "./websocketclient"; -(tendermintEnabled ? describe : xdescribe)("RpcClient", () => { +(tendermintEnabled ? describe : describe.skip)("RpcClient", () => { const httpUrl = "http://" + defaultInstance.url; const wsUrl = "ws://" + defaultInstance.url; diff --git a/packages/tendermint-rpc/src/rpcclients/websocketclient.spec.ts b/packages/tendermint-rpc/src/rpcclients/websocketclient.spec.ts index 1e1bb7647a..d7fd549e2d 100644 --- a/packages/tendermint-rpc/src/rpcclients/websocketclient.spec.ts +++ b/packages/tendermint-rpc/src/rpcclients/websocketclient.spec.ts @@ -3,11 +3,11 @@ import { toListPromise } from "@cosmjs/stream"; import { Stream } from "xstream"; import { createJsonRpcRequest } from "../jsonrpc"; -import { defaultInstance, tendermintEnabled } from "../testutil.spec"; +import { defaultInstance, tendermintEnabled } from "../testutils"; import { SubscriptionEvent } from "./rpcclient"; import { WebsocketClient } from "./websocketclient"; -(tendermintEnabled ? describe : xdescribe)("WebsocketClient", () => { +(tendermintEnabled ? describe : describe.skip)("WebsocketClient", () => { const { blockTime, url } = defaultInstance; const tendermintUrl = "ws://" + url; @@ -21,7 +21,7 @@ import { WebsocketClient } from "./websocketclient"; expect(statusResponse.result).toBeTruthy(); expect(statusResponse.result.node_info).toBeTruthy(); - await expectAsync(client.execute(createJsonRpcRequest("no-such-method"))).toBeRejected(); + await expect(client.execute(createJsonRpcRequest("no-such-method"))).rejects.toThrowError(); client.disconnect(); }); @@ -181,7 +181,7 @@ import { WebsocketClient } from "./websocketclient"; client.disconnect(); - await expectAsync(client.execute(createJsonRpcRequest("health"))).toBeRejectedWithError( + await expect(client.execute(createJsonRpcRequest("health"))).rejects.toThrowError( /socket has disconnected/i, ); }); diff --git a/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts b/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts index 8b471e8b27..d0dbed8469 100644 --- a/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts +++ b/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts @@ -13,7 +13,7 @@ import { tendermintEnabled, tendermintInstances, tendermintSearchIndexUpdated, -} from "../testutil.spec"; +} from "../testutils"; import { hashTx } from "./hasher"; import { buildQuery } from "./requests"; import * as responses from "./responses"; @@ -126,7 +126,7 @@ function defaultTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValues) expect(response.proof).toBeUndefined(); expect(response.log).toEqual("exists"); expect(response.info).toEqual(""); - expect(response.height).toMatch(nonNegativeIntegerMatcher); + expect(response.height?.toString()).toMatch(nonNegativeIntegerMatcher); client.disconnect(); }); @@ -382,18 +382,18 @@ function defaultTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValues) expect(blockchain.blockMetas.length).toBeGreaterThanOrEqual(1); const meta = blockchain.blockMetas[0]; - expect(meta.blockId).toEqual(jasmine.objectContaining({})); - expect(meta.blockSize).toBeInstanceOf(Number); + expect(meta.blockId).toEqual(expect.objectContaining({})); + expect(typeof meta.blockSize).toBe("number"); expect(meta.header).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ version: { block: expected.blockVersion, app: expected.appVersion, }, - chainId: jasmine.stringMatching(expected.chainId), + chainId: expect.stringMatching(expected.chainId), }), ); - expect(meta.numTxs).toBeInstanceOf(Number); + expect(typeof meta.numTxs).toBe("number"); client.disconnect(); }); @@ -854,7 +854,7 @@ function websocketTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValue }); } -(tendermintEnabled ? describe : xdescribe)("Tendermint34Client", () => { +(tendermintEnabled ? describe : describe.skip)("Tendermint34Client", () => { const { url, expected } = tendermintInstances[34]; it("can connect to a given url", async () => { diff --git a/packages/tendermint-rpc/src/tendermint37/tendermint37client.spec.ts b/packages/tendermint-rpc/src/tendermint37/tendermint37client.spec.ts index c12556d8b7..85cdf90abe 100644 --- a/packages/tendermint-rpc/src/tendermint37/tendermint37client.spec.ts +++ b/packages/tendermint-rpc/src/tendermint37/tendermint37client.spec.ts @@ -13,7 +13,7 @@ import { tendermintEnabled, tendermintInstances, tendermintSearchIndexUpdated, -} from "../testutil.spec"; +} from "../testutils"; import { hashTx } from "./hasher"; import { buildQuery } from "./requests"; import * as responses from "./responses"; @@ -119,7 +119,7 @@ function defaultTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValues) expect(response.proof).toBeUndefined(); expect(response.log).toEqual("exists"); expect(response.info).toEqual(""); - expect(response.height).toMatch(nonNegativeIntegerMatcher); + expect(response.height?.toString()).toMatch(nonNegativeIntegerMatcher); client.disconnect(); }); @@ -376,18 +376,18 @@ function defaultTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValues) expect(blockchain.blockMetas.length).toBeGreaterThanOrEqual(1); const meta = blockchain.blockMetas[0]; - expect(meta.blockId).toEqual(jasmine.objectContaining({})); - expect(meta.blockSize).toBeInstanceOf(Number); + expect(meta.blockId).toEqual(expect.objectContaining({})); + expect(typeof meta.blockSize).toBe("number"); expect(meta.header).toEqual( - jasmine.objectContaining({ + expect.objectContaining({ version: { block: expected.blockVersion, app: expected.appVersion, }, - chainId: jasmine.stringMatching(expected.chainId), + chainId: expect.stringMatching(expected.chainId), }), ); - expect(meta.numTxs).toBeInstanceOf(Number); + expect(typeof meta.numTxs).toBe("number"); client.disconnect(); }); @@ -856,7 +856,7 @@ function websocketTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValue }); } -(tendermintEnabled ? describe : xdescribe)("Tendermint37Client", () => { +(tendermintEnabled ? describe : describe.skip)("Tendermint37Client", () => { const { url, expected } = tendermintInstances[37]; it("can connect to a given url", async () => { diff --git a/packages/tendermint-rpc/src/tendermintsclient.spec.ts b/packages/tendermint-rpc/src/tendermintsclient.spec.ts index db8f90a603..b3fde36b73 100644 --- a/packages/tendermint-rpc/src/tendermintsclient.spec.ts +++ b/packages/tendermint-rpc/src/tendermintsclient.spec.ts @@ -5,9 +5,9 @@ import { isTendermint34Client, isTendermint37Client, } from "./tendermintclient"; -import { tendermintEnabled, tendermintInstances } from "./testutil.spec"; +import { tendermintEnabled, tendermintInstances } from "./testutils"; -(tendermintEnabled ? describe : xdescribe)("connectComet", () => { +(tendermintEnabled ? describe : describe.skip)("connectComet", () => { it("works for Tendermint 0.34", async () => { const client = await connectComet("http://" + tendermintInstances[34].url); expect(isTendermint34Client(client)).toEqual(true); diff --git a/packages/tendermint-rpc/src/testutil.spec.ts b/packages/tendermint-rpc/src/testutils.ts similarity index 100% rename from packages/tendermint-rpc/src/testutil.spec.ts rename to packages/tendermint-rpc/src/testutils.ts diff --git a/packages/utils/jasmine-testrunner.cjs b/packages/utils/jasmine-testrunner.cjs deleted file mode 100644 index 96247348c4..0000000000 --- a/packages/utils/jasmine-testrunner.cjs +++ /dev/null @@ -1,36 +0,0 @@ -if (process.env.SES_ENABLED) { - require("ses"); - // eslint-disable-next-line no-undef - lockdown(); -} - -require("source-map-support").install(); -const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); - -// setup Jasmine -const Jasmine = require("jasmine"); -const jasmine = new Jasmine(); -jasmine.loadConfig({ - spec_dir: "build", - spec_files: ["**/*.spec.js"], - helpers: [], - random: false, - seed: null, - stopSpecOnExpectationFailure: false, -}); -jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * 1000; - -// setup reporter -const { SpecReporter } = require("jasmine-spec-reporter"); -const reporter = new SpecReporter({ - ...defaultSpecReporterConfig, - spec: { - ...defaultSpecReporterConfig.spec, - displaySuccessful: !process.argv.includes("--quiet"), - }, -}); - -// initialize and execute -jasmine.env.clearReporters(); -jasmine.addReporter(reporter); -void jasmine.execute(); diff --git a/packages/utils/package.json b/packages/utils/package.json index 745a19b01e..d6dc2b1686 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -30,23 +30,23 @@ "format-text": "prettier --write \"./*.md\"", "build": "rm -rf ./build && tsc", "build-or-skip": "[ -n \"${SKIP_BUILD:-}\" ] || yarn build", - "test-node": "yarn node jasmine-testrunner.cjs", + "test-node": "vitest run", "test": "yarn build-or-skip && yarn test-node", - "coverage": "nyc --reporter=text --reporter=lcov yarn test --quiet", + "coverage": "nyc --reporter=text --reporter=lcov yarn test", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.cjs", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox karma.conf.cjs", - "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless karma.conf.cjs" + "test-chrome": "vitest run --browser" + }, + "engines": { + "node": "^20.19 || >=22.12" }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@types/jasmine": "^4", "@types/karma-firefox-launcher": "^2", "@types/karma-jasmine": "^4", "@types/karma-jasmine-html-reporter": "^1", "@types/node": "*", "glob": "^11", - "jasmine": "^4", - "jasmine-spec-reporter": "^6", "karma": "^6.3.14", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.0", @@ -58,6 +58,7 @@ "source-map-support": "^0.5.19", "typedoc": "^0.28", "typescript": "~5.9", + "vitest": "^3.2.4", "webpack": "^5.76.0", "webpack-cli": "^4.6.0" }, diff --git a/packages/utils/src/typechecks.spec.ts b/packages/utils/src/typechecks.spec.ts index 074493bd82..80f8165bc7 100644 --- a/packages/utils/src/typechecks.spec.ts +++ b/packages/utils/src/typechecks.spec.ts @@ -33,7 +33,7 @@ describe("typechecks", () => { expect(isUint8Array(new Uint8Array([1, 2, 3]))).toEqual(true); }); - (typeof Buffer !== "undefined" ? it : xit)("returns false for Buffer", () => { + (typeof Buffer !== "undefined" ? it : it.skip)("returns false for Buffer", () => { // One could start a big debate about whether or not a Buffer is a Uint8Array, which // required a definition of "is a" in a languages that has no proper object oriented // programming support. diff --git a/tsconfig.json b/tsconfig.json index c678ea51f0..92c024abe0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -23,6 +23,7 @@ "removeComments": false, "resolveJsonModule": true, "sourceMap": true, - "strict": true + "strict": true, + "types": ["vitest/globals"] } } diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 0000000000..3b8433f36b --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,14 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + exclude: "**.js", + globals: true, + setupFiles: "../../vitest.setup.mjs", + browser: { + headless: true, + provider: "playwright", + instances: [{ browser: "chromium" }], + }, + }, +}); diff --git a/vitest.setup.mjs b/vitest.setup.mjs new file mode 100644 index 0000000000..b7083ef4b1 --- /dev/null +++ b/vitest.setup.mjs @@ -0,0 +1,6 @@ +import "ses"; +/* global lockdown */ + +if (globalThis.process.env.SES_ENABLED) { + lockdown(); +} diff --git a/yarn.lock b/yarn.lock index a1a4f59642..8ad706080d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,7 +5,7 @@ __metadata: version: 8 cacheKey: 10c0 -"@babel/code-frame@npm:^7.27.1": +"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.27.1": version: 7.27.1 resolution: "@babel/code-frame@npm:7.27.1" dependencies: @@ -144,6 +144,13 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.12.5": + version: 7.28.4 + resolution: "@babel/runtime@npm:7.28.4" + checksum: 10c0/792ce7af9750fb9b93879cc9d1db175701c4689da890e6ced242ea0207c9da411ccf16dc04e689cc01158b28d7898c40d75598f4559109f761c12ce01e959bf7 + languageName: node + linkType: hard + "@babel/template@npm:^7.27.2": version: 7.27.2 resolution: "@babel/template@npm:7.27.2" @@ -189,13 +196,10 @@ __metadata: "@cosmjs/math": "workspace:^" "@cosmjs/utils": "workspace:^" "@istanbuljs/nyc-config-typescript": "npm:^1.0.1" - "@types/jasmine": "npm:^4" "@types/karma-firefox-launcher": "npm:^2" "@types/karma-jasmine": "npm:^4" "@types/karma-jasmine-html-reporter": "npm:^1" glob: "npm:^11" - jasmine: "npm:^4" - jasmine-spec-reporter: "npm:^6" karma: "npm:^6.3.14" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.0" @@ -207,6 +211,7 @@ __metadata: source-map-support: "npm:^0.5.19" typedoc: "npm:^0.28" typescript: "npm:~5.9" + vitest: "npm:^3.2.4" webpack: "npm:^5.76.0" webpack-cli: "npm:^4.6.0" languageName: unknown @@ -225,15 +230,12 @@ __metadata: "@cosmjs/tendermint-rpc": "workspace:^" "@cosmjs/utils": "workspace:^" "@istanbuljs/nyc-config-typescript": "npm:^1.0.1" - "@types/jasmine": "npm:^4" "@types/karma-firefox-launcher": "npm:^2" "@types/karma-jasmine": "npm:^4" "@types/karma-jasmine-html-reporter": "npm:^1" "@types/node": "npm:*" cosmjs-types: "npm:^0.10.1" glob: "npm:^11" - jasmine: "npm:^4" - jasmine-spec-reporter: "npm:^6" karma: "npm:^6.3.14" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.0" @@ -246,6 +248,7 @@ __metadata: source-map-support: "npm:^0.5.19" typedoc: "npm:^0.28" typescript: "npm:~5.9" + vitest: "npm:^3.2.4" webpack: "npm:^5.76.0" webpack-cli: "npm:^4.6.0" languageName: unknown @@ -263,15 +266,12 @@ __metadata: "@noble/curves": "npm:^1.9.2" "@noble/hashes": "npm:^1.8.0" "@scure/bip39": "npm:^1.6.0" - "@types/jasmine": "npm:^4" "@types/karma-firefox-launcher": "npm:^2" "@types/karma-jasmine": "npm:^4" "@types/karma-jasmine-html-reporter": "npm:^1" "@types/node": "npm:*" glob: "npm:^11" hash-wasm: "npm:^4.12.0" - jasmine: "npm:^4" - jasmine-spec-reporter: "npm:^6" karma: "npm:^6.3.14" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.0" @@ -283,6 +283,7 @@ __metadata: source-map-support: "npm:^0.5.19" typedoc: "npm:^0.28" typescript: "npm:~5.9" + vitest: "npm:^3.2.4" webpack: "npm:^5.76.0" webpack-cli: "npm:^4.6.0" languageName: unknown @@ -295,15 +296,12 @@ __metadata: "@istanbuljs/nyc-config-typescript": "npm:^1.0.1" "@scure/base": "npm:^2.0.0" "@types/base64-js": "npm:^1.2.5" - "@types/jasmine": "npm:^4" "@types/karma-firefox-launcher": "npm:^2" "@types/karma-jasmine": "npm:^4" "@types/karma-jasmine-html-reporter": "npm:^1" "@types/node": "npm:*" base64-js: "npm:^1.3.0" glob: "npm:^11" - jasmine: "npm:^4" - jasmine-spec-reporter: "npm:^6" karma: "npm:^6.3.14" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.0" @@ -316,6 +314,7 @@ __metadata: source-map-support: "npm:^0.5.19" typedoc: "npm:^0.28" typescript: "npm:~5.9" + vitest: "npm:^3.2.4" webpack: "npm:^5.76.0" webpack-cli: "npm:^4.6.0" languageName: unknown @@ -326,14 +325,11 @@ __metadata: resolution: "@cosmjs/faucet-client@workspace:packages/faucet-client" dependencies: "@istanbuljs/nyc-config-typescript": "npm:^1.0.1" - "@types/jasmine": "npm:^4" "@types/karma-firefox-launcher": "npm:^2" "@types/karma-jasmine": "npm:^4" "@types/karma-jasmine-html-reporter": "npm:^1" "@types/node": "npm:*" glob: "npm:^11" - jasmine: "npm:^4" - jasmine-spec-reporter: "npm:^6" karma: "npm:^6.3.14" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.0" @@ -345,6 +341,7 @@ __metadata: source-map-support: "npm:^0.5.19" typedoc: "npm:^0.28" typescript: "npm:~5.9" + vitest: "npm:^3.2.4" webpack: "npm:^5.76.0" webpack-cli: "npm:^4.6.0" languageName: unknown @@ -362,12 +359,9 @@ __metadata: "@cosmjs/utils": "workspace:^" "@istanbuljs/nyc-config-typescript": "npm:^1.0.1" "@koa/cors": "npm:^5.0" - "@types/jasmine": "npm:^4" "@types/koa": "npm:^2.15.0" "@types/koa-bodyparser": "npm:^4.3" "@types/koa__cors": "npm:^3.3" - jasmine: "npm:^4" - jasmine-spec-reporter: "npm:^6" koa: "npm:^2.16.1" koa-bodyparser: "npm:^4.3" nyc: "npm:^17.1.0" @@ -375,6 +369,7 @@ __metadata: ses: "npm:^1.13.0" source-map-support: "npm:^0.5.19" typescript: "npm:~5.9" + vitest: "npm:^3.2.4" webpack: "npm:^5.76.0" webpack-cli: "npm:^4.6.0" bin: @@ -388,13 +383,10 @@ __metadata: dependencies: "@cosmjs/stream": "workspace:^" "@istanbuljs/nyc-config-typescript": "npm:^1.0.1" - "@types/jasmine": "npm:^4" "@types/karma-firefox-launcher": "npm:^2" "@types/karma-jasmine": "npm:^4" "@types/karma-jasmine-html-reporter": "npm:^1" glob: "npm:^11" - jasmine: "npm:^4" - jasmine-spec-reporter: "npm:^6" karma: "npm:^6.3.14" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.0" @@ -406,6 +398,7 @@ __metadata: source-map-support: "npm:^0.5.19" typedoc: "npm:^0.28" typescript: "npm:~5.9" + vitest: "npm:^3.2.4" webpack: "npm:^5.76.0" webpack-cli: "npm:^4.6.0" xstream: "npm:^11.14.0" @@ -426,12 +419,9 @@ __metadata: "@ledgerhq/hw-transport": "npm:^6.31.4" "@ledgerhq/hw-transport-node-hid": "npm:^6.29.5" "@ledgerhq/hw-transport-webusb": "npm:^6.29.4" - "@types/jasmine": "npm:^4" "@types/semver": "npm:^7.3.4" "@zondax/ledger-cosmos-js": "npm:^4.0.1" glob: "npm:^11" - jasmine: "npm:^4" - jasmine-spec-reporter: "npm:^6" nyc: "npm:^17.1.0" prettier: "npm:^3.6.2" semver: "npm:^7.5.2" @@ -439,6 +429,7 @@ __metadata: source-map-support: "npm:^0.5.19" typedoc: "npm:^0.28" typescript: "npm:~5.9" + vitest: "npm:^3.2.4" webpack: "npm:^5.76.0" webpack-cli: "npm:^4.6.0" languageName: unknown @@ -449,13 +440,10 @@ __metadata: resolution: "@cosmjs/math@workspace:packages/math" dependencies: "@istanbuljs/nyc-config-typescript": "npm:^1.0.1" - "@types/jasmine": "npm:^4" "@types/karma-firefox-launcher": "npm:^2" "@types/karma-jasmine": "npm:^4" "@types/karma-jasmine-html-reporter": "npm:^1" glob: "npm:^11" - jasmine: "npm:^4" - jasmine-spec-reporter: "npm:^6" karma: "npm:^6.3.14" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.0" @@ -467,6 +455,7 @@ __metadata: source-map-support: "npm:^0.5.19" typedoc: "npm:^0.28" typescript: "npm:~5.9" + vitest: "npm:^3.2.4" webpack: "npm:^5.76.0" webpack-cli: "npm:^4.6.0" languageName: unknown @@ -482,15 +471,12 @@ __metadata: "@cosmjs/math": "workspace:^" "@cosmjs/utils": "workspace:^" "@istanbuljs/nyc-config-typescript": "npm:^1.0.1" - "@types/jasmine": "npm:^4" "@types/karma-firefox-launcher": "npm:^2" "@types/karma-jasmine": "npm:^4" "@types/karma-jasmine-html-reporter": "npm:^1" "@types/node": "npm:*" cosmjs-types: "npm:^0.10.1" glob: "npm:^11" - jasmine: "npm:^4" - jasmine-spec-reporter: "npm:^6" karma: "npm:^6.3.14" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.0" @@ -503,6 +489,7 @@ __metadata: source-map-support: "npm:^0.5.19" typedoc: "npm:^0.28" typescript: "npm:~5.9" + vitest: "npm:^3.2.4" webpack: "npm:^5.76.0" webpack-cli: "npm:^4.6.0" languageName: unknown @@ -514,15 +501,12 @@ __metadata: dependencies: "@cosmjs/stream": "workspace:^" "@istanbuljs/nyc-config-typescript": "npm:^1.0.1" - "@types/jasmine": "npm:^4" "@types/karma-firefox-launcher": "npm:^2" "@types/karma-jasmine": "npm:^4" "@types/karma-jasmine-html-reporter": "npm:^1" "@types/ws": "npm:^6.0.1" glob: "npm:^11" isomorphic-ws: "npm:^4.0.1" - jasmine: "npm:^4" - jasmine-spec-reporter: "npm:^6" karma: "npm:^6.3.14" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.0" @@ -534,6 +518,7 @@ __metadata: source-map-support: "npm:^0.5.19" typedoc: "npm:^0.28" typescript: "npm:~5.9" + vitest: "npm:^3.2.4" webpack: "npm:^5.76.0" webpack-cli: "npm:^4.6.0" ws: "npm:^7" @@ -554,15 +539,12 @@ __metadata: "@cosmjs/tendermint-rpc": "workspace:^" "@cosmjs/utils": "workspace:^" "@istanbuljs/nyc-config-typescript": "npm:^1.0.1" - "@types/jasmine": "npm:^4" "@types/karma-firefox-launcher": "npm:^2" "@types/karma-jasmine": "npm:^4" "@types/karma-jasmine-html-reporter": "npm:^1" "@types/node": "npm:*" cosmjs-types: "npm:^0.10.1" glob: "npm:^11" - jasmine: "npm:^4" - jasmine-spec-reporter: "npm:^6" karma: "npm:^6.3.14" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.0" @@ -575,6 +557,7 @@ __metadata: source-map-support: "npm:^0.5.19" typedoc: "npm:^0.28" typescript: "npm:~5.9" + vitest: "npm:^3.2.4" webpack: "npm:^5.76.0" webpack-cli: "npm:^4.6.0" languageName: unknown @@ -585,14 +568,11 @@ __metadata: resolution: "@cosmjs/stream@workspace:packages/stream" dependencies: "@istanbuljs/nyc-config-typescript": "npm:^1.0.1" - "@types/jasmine": "npm:^4" "@types/karma-firefox-launcher": "npm:^2" "@types/karma-jasmine": "npm:^4" "@types/karma-jasmine-html-reporter": "npm:^1" "@types/node": "npm:*" glob: "npm:^11" - jasmine: "npm:^4" - jasmine-spec-reporter: "npm:^6" karma: "npm:^6.3.14" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.0" @@ -604,6 +584,7 @@ __metadata: source-map-support: "npm:^0.5.19" typedoc: "npm:^0.28" typescript: "npm:~5.9" + vitest: "npm:^3.2.4" webpack: "npm:^5.76.0" webpack-cli: "npm:^4.6.0" xstream: "npm:^11.14.0" @@ -622,14 +603,11 @@ __metadata: "@cosmjs/stream": "workspace:^" "@cosmjs/utils": "workspace:^" "@istanbuljs/nyc-config-typescript": "npm:^1.0.1" - "@types/jasmine": "npm:^4" "@types/karma-firefox-launcher": "npm:^2" "@types/karma-jasmine": "npm:^4" "@types/karma-jasmine-html-reporter": "npm:^1" "@types/node": "npm:*" glob: "npm:^11" - jasmine: "npm:^4" - jasmine-spec-reporter: "npm:^6" karma: "npm:^6.3.14" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.0" @@ -642,6 +620,7 @@ __metadata: source-map-support: "npm:^0.5.19" typedoc: "npm:^0.28" typescript: "npm:~5.9" + vitest: "npm:^3.2.4" webpack: "npm:^5.76.0" webpack-cli: "npm:^4.6.0" xstream: "npm:^11.14.0" @@ -653,14 +632,11 @@ __metadata: resolution: "@cosmjs/utils@workspace:packages/utils" dependencies: "@istanbuljs/nyc-config-typescript": "npm:^1.0.1" - "@types/jasmine": "npm:^4" "@types/karma-firefox-launcher": "npm:^2" "@types/karma-jasmine": "npm:^4" "@types/karma-jasmine-html-reporter": "npm:^1" "@types/node": "npm:*" glob: "npm:^11" - jasmine: "npm:^4" - jasmine-spec-reporter: "npm:^6" karma: "npm:^6.3.14" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.0" @@ -672,6 +648,7 @@ __metadata: source-map-support: "npm:^0.5.19" typedoc: "npm:^0.28" typescript: "npm:~5.9" + vitest: "npm:^3.2.4" webpack: "npm:^5.76.0" webpack-cli: "npm:^4.6.0" languageName: unknown @@ -726,6 +703,188 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/aix-ppc64@npm:0.25.11" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/android-arm64@npm:0.25.11" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/android-arm@npm:0.25.11" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/android-x64@npm:0.25.11" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/darwin-arm64@npm:0.25.11" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/darwin-x64@npm:0.25.11" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/freebsd-arm64@npm:0.25.11" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/freebsd-x64@npm:0.25.11" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/linux-arm64@npm:0.25.11" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/linux-arm@npm:0.25.11" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/linux-ia32@npm:0.25.11" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/linux-loong64@npm:0.25.11" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/linux-mips64el@npm:0.25.11" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/linux-ppc64@npm:0.25.11" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/linux-riscv64@npm:0.25.11" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/linux-s390x@npm:0.25.11" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/linux-x64@npm:0.25.11" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-arm64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/netbsd-arm64@npm:0.25.11" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/netbsd-x64@npm:0.25.11" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-arm64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/openbsd-arm64@npm:0.25.11" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/openbsd-x64@npm:0.25.11" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openharmony-arm64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/openharmony-arm64@npm:0.25.11" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/sunos-x64@npm:0.25.11" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/win32-arm64@npm:0.25.11" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/win32-ia32@npm:0.25.11" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.25.11": + version: 0.25.11 + resolution: "@esbuild/win32-x64@npm:0.25.11" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.7.0": version: 4.7.0 resolution: "@eslint-community/eslint-utils@npm:4.7.0" @@ -963,7 +1122,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": +"@jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0, @jridgewell/sourcemap-codec@npm:^1.5.5": version: 1.5.5 resolution: "@jridgewell/sourcemap-codec@npm:1.5.5" checksum: 10c0/f9e538f302b63c0ebc06eecb1dd9918dd4289ed36147a0ddce35d6ea4d7ebbda243cda7b2213b6a5e1d8087a298d5cf630fb2bd39329cdecb82017023f6081a0 @@ -1164,6 +1323,13 @@ __metadata: languageName: node linkType: hard +"@polka/url@npm:^1.0.0-next.24": + version: 1.0.0-next.29 + resolution: "@polka/url@npm:1.0.0-next.29" + checksum: 10c0/0d58e081844095cb029d3c19a659bfefd09d5d51a2f791bc61eba7ea826f13d6ee204a8a448c2f5a855c17df07b37517373ff916dd05801063c0568ae9937684 + languageName: node + linkType: hard + "@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": version: 1.1.2 resolution: "@protobufjs/aspromise@npm:1.1.2" @@ -1237,6 +1403,160 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.52.5" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-android-arm64@npm:4.52.5" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-darwin-arm64@npm:4.52.5" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-darwin-x64@npm:4.52.5" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.52.5" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-freebsd-x64@npm:4.52.5" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.52.5" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.52.5" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.52.5" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.52.5" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-loong64-gnu@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.52.5" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-ppc64-gnu@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.52.5" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.52.5" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-musl@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.52.5" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.52.5" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.52.5" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.52.5" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-openharmony-arm64@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.52.5" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.52.5" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.52.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-gnu@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.52.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.52.5": + version: 4.52.5 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.52.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@rtsao/scc@npm:^1.1.0": version: 1.1.0 resolution: "@rtsao/scc@npm:1.1.0" @@ -1320,6 +1640,31 @@ __metadata: languageName: node linkType: hard +"@testing-library/dom@npm:^10.4.0": + version: 10.4.1 + resolution: "@testing-library/dom@npm:10.4.1" + dependencies: + "@babel/code-frame": "npm:^7.10.4" + "@babel/runtime": "npm:^7.12.5" + "@types/aria-query": "npm:^5.0.1" + aria-query: "npm:5.3.0" + dom-accessibility-api: "npm:^0.5.9" + lz-string: "npm:^1.5.0" + picocolors: "npm:1.1.1" + pretty-format: "npm:^27.0.2" + checksum: 10c0/19ce048012d395ad0468b0dbcc4d0911f6f9e39464d7a8464a587b29707eed5482000dad728f5acc4ed314d2f4d54f34982999a114d2404f36d048278db815b1 + languageName: node + linkType: hard + +"@testing-library/user-event@npm:^14.6.1": + version: 14.6.1 + resolution: "@testing-library/user-event@npm:14.6.1" + peerDependencies: + "@testing-library/dom": ">=7.21.4" + checksum: 10c0/75fea130a52bf320d35d46ed54f3eec77e71a56911b8b69a3fe29497b0b9947b2dc80d30f04054ad4ce7f577856ae3e5397ea7dff0ef14944d3909784c7a93fe + languageName: node + linkType: hard + "@tootallnate/once@npm:2": version: 2.0.0 resolution: "@tootallnate/once@npm:2.0.0" @@ -1345,6 +1690,13 @@ __metadata: languageName: node linkType: hard +"@types/aria-query@npm:^5.0.1": + version: 5.0.4 + resolution: "@types/aria-query@npm:5.0.4" + checksum: 10c0/dc667bc6a3acc7bba2bccf8c23d56cb1f2f4defaa704cfef595437107efaa972d3b3db9ec1d66bc2711bfc35086821edd32c302bffab36f2e79b97f312069f08 + languageName: node + linkType: hard + "@types/base64-js@npm:^1.2.5": version: 1.3.0 resolution: "@types/base64-js@npm:1.3.0" @@ -1362,6 +1714,16 @@ __metadata: languageName: node linkType: hard +"@types/chai@npm:^5.2.2": + version: 5.2.3 + resolution: "@types/chai@npm:5.2.3" + dependencies: + "@types/deep-eql": "npm:*" + assertion-error: "npm:^2.0.1" + checksum: 10c0/e0ef1de3b6f8045a5e473e867c8565788c444271409d155588504840ad1a53611011f85072188c2833941189400228c1745d78323dac13fcede9c2b28bacfb2f + languageName: node + linkType: hard + "@types/connect@npm:*": version: 3.4.34 resolution: "@types/connect@npm:3.4.34" @@ -1397,6 +1759,13 @@ __metadata: languageName: node linkType: hard +"@types/deep-eql@npm:*": + version: 4.0.2 + resolution: "@types/deep-eql@npm:4.0.2" + checksum: 10c0/bf3f811843117900d7084b9d0c852da9a044d12eb40e6de73b552598a6843c21291a8a381b0532644574beecd5e3491c5ff3a0365ab86b15d59862c025384844 + languageName: node + linkType: hard + "@types/eslint-scope@npm:^3.7.7": version: 3.7.7 resolution: "@types/eslint-scope@npm:3.7.7" @@ -1417,7 +1786,7 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:^1.0.6, @types/estree@npm:^1.0.8": +"@types/estree@npm:*, @types/estree@npm:1.0.8, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6, @types/estree@npm:^1.0.8": version: 1.0.8 resolution: "@types/estree@npm:1.0.8" checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5 @@ -1470,7 +1839,7 @@ __metadata: languageName: node linkType: hard -"@types/jasmine@npm:*, @types/jasmine@npm:^4": +"@types/jasmine@npm:*": version: 4.6.1 resolution: "@types/jasmine@npm:4.6.1" checksum: 10c0/dd7f887058f1b648c49f22ec1d8ae8b6e44c7c292b6fc6fd0b968ea4e01800e79f77d02e2572a289ca1618678ee4f5af252564e8234dd0629261b15e3c782ebb @@ -1921,6 +2290,116 @@ __metadata: languageName: node linkType: hard +"@vitest/browser@npm:^3.2.4": + version: 3.2.4 + resolution: "@vitest/browser@npm:3.2.4" + dependencies: + "@testing-library/dom": "npm:^10.4.0" + "@testing-library/user-event": "npm:^14.6.1" + "@vitest/mocker": "npm:3.2.4" + "@vitest/utils": "npm:3.2.4" + magic-string: "npm:^0.30.17" + sirv: "npm:^3.0.1" + tinyrainbow: "npm:^2.0.0" + ws: "npm:^8.18.2" + peerDependencies: + playwright: "*" + vitest: 3.2.4 + webdriverio: ^7.0.0 || ^8.0.0 || ^9.0.0 + peerDependenciesMeta: + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + checksum: 10c0/0db39daad675aad187eff27d5a7f17a9f533d7abc7476ee1a0b83a9c62a7227b24395f4814e034ecb2ebe39f1a2dec0a8c6a7f79b8d5680c3ac79e408727d742 + languageName: node + linkType: hard + +"@vitest/expect@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/expect@npm:3.2.4" + dependencies: + "@types/chai": "npm:^5.2.2" + "@vitest/spy": "npm:3.2.4" + "@vitest/utils": "npm:3.2.4" + chai: "npm:^5.2.0" + tinyrainbow: "npm:^2.0.0" + checksum: 10c0/7586104e3fd31dbe1e6ecaafb9a70131e4197dce2940f727b6a84131eee3decac7b10f9c7c72fa5edbdb68b6f854353bd4c0fa84779e274207fb7379563b10db + languageName: node + linkType: hard + +"@vitest/mocker@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/mocker@npm:3.2.4" + dependencies: + "@vitest/spy": "npm:3.2.4" + estree-walker: "npm:^3.0.3" + magic-string: "npm:^0.30.17" + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + checksum: 10c0/f7a4aea19bbbf8f15905847ee9143b6298b2c110f8b64789224cb0ffdc2e96f9802876aa2ca83f1ec1b6e1ff45e822abb34f0054c24d57b29ab18add06536ccd + languageName: node + linkType: hard + +"@vitest/pretty-format@npm:3.2.4, @vitest/pretty-format@npm:^3.2.4": + version: 3.2.4 + resolution: "@vitest/pretty-format@npm:3.2.4" + dependencies: + tinyrainbow: "npm:^2.0.0" + checksum: 10c0/5ad7d4278e067390d7d633e307fee8103958806a419ca380aec0e33fae71b44a64415f7a9b4bc11635d3c13d4a9186111c581d3cef9c65cc317e68f077456887 + languageName: node + linkType: hard + +"@vitest/runner@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/runner@npm:3.2.4" + dependencies: + "@vitest/utils": "npm:3.2.4" + pathe: "npm:^2.0.3" + strip-literal: "npm:^3.0.0" + checksum: 10c0/e8be51666c72b3668ae3ea348b0196656a4a5adb836cb5e270720885d9517421815b0d6c98bfdf1795ed02b994b7bfb2b21566ee356a40021f5bf4f6ed4e418a + languageName: node + linkType: hard + +"@vitest/snapshot@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/snapshot@npm:3.2.4" + dependencies: + "@vitest/pretty-format": "npm:3.2.4" + magic-string: "npm:^0.30.17" + pathe: "npm:^2.0.3" + checksum: 10c0/f8301a3d7d1559fd3d59ed51176dd52e1ed5c2d23aa6d8d6aa18787ef46e295056bc726a021698d8454c16ed825ecba163362f42fa90258bb4a98cfd2c9424fc + languageName: node + linkType: hard + +"@vitest/spy@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/spy@npm:3.2.4" + dependencies: + tinyspy: "npm:^4.0.3" + checksum: 10c0/6ebf0b4697dc238476d6b6a60c76ba9eb1dd8167a307e30f08f64149612fd50227682b876420e4c2e09a76334e73f72e3ebf0e350714dc22474258292e202024 + languageName: node + linkType: hard + +"@vitest/utils@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/utils@npm:3.2.4" + dependencies: + "@vitest/pretty-format": "npm:3.2.4" + loupe: "npm:^3.1.4" + tinyrainbow: "npm:^2.0.0" + checksum: 10c0/024a9b8c8bcc12cf40183c246c244b52ecff861c6deb3477cbf487ac8781ad44c68a9c5fd69f8c1361878e55b97c10d99d511f2597f1f7244b5e5101d028ba64 + languageName: node + linkType: hard + "@webassemblyjs/ast@npm:1.14.1, @webassemblyjs/ast@npm:^1.14.1": version: 1.14.1 resolution: "@webassemblyjs/ast@npm:1.14.1" @@ -2286,6 +2765,13 @@ __metadata: languageName: node linkType: hard +"ansi-styles@npm:^5.0.0": + version: 5.2.0 + resolution: "ansi-styles@npm:5.2.0" + checksum: 10c0/9c4ca80eb3c2fb7b33841c210d2f20807f40865d27008d7c3f707b7f95cab7d67462a565e2388ac3285b71cb3d9bb2173de8da37c57692a362885ec34d6e27df + languageName: node + linkType: hard + "ansi-styles@npm:^6.1.0": version: 6.2.1 resolution: "ansi-styles@npm:6.2.1" @@ -2352,6 +2838,15 @@ __metadata: languageName: node linkType: hard +"aria-query@npm:5.3.0": + version: 5.3.0 + resolution: "aria-query@npm:5.3.0" + dependencies: + dequal: "npm:^2.0.3" + checksum: 10c0/2bff0d4eba5852a9dd578ecf47eaef0e82cc52569b48469b0aac2db5145db0b17b7a58d9e01237706d1e14b7a1b0ac9b78e9c97027ad97679dd8f91b85da1469 + languageName: node + linkType: hard + "array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2": version: 1.0.2 resolution: "array-buffer-byte-length@npm:1.0.2" @@ -2432,6 +2927,13 @@ __metadata: languageName: node linkType: hard +"assertion-error@npm:^2.0.1": + version: 2.0.1 + resolution: "assertion-error@npm:2.0.1" + checksum: 10c0/bbbcb117ac6480138f8c93cf7f535614282dea9dc828f540cdece85e3c665e8f78958b96afac52f29ff883c72638e6a87d469ecc9fe5bc902df03ed24a55dba8 + languageName: node + linkType: hard + "async-function@npm:^1.0.0": version: 1.0.0 resolution: "async-function@npm:1.0.0" @@ -2602,6 +3104,13 @@ __metadata: languageName: node linkType: hard +"cac@npm:^6.7.14": + version: 6.7.14 + resolution: "cac@npm:6.7.14" + checksum: 10c0/4ee06aaa7bab8981f0d54e5f5f9d4adcd64058e9697563ce336d8a3878ed018ee18ebe5359b2430eceae87e0758e62ea2019c3f52ae6e211b1bd2e133856cd10 + languageName: node + linkType: hard + "cacache@npm:^17.0.0": version: 17.1.4 resolution: "cacache@npm:17.1.4" @@ -2697,6 +3206,19 @@ __metadata: languageName: node linkType: hard +"chai@npm:^5.2.0": + version: 5.3.3 + resolution: "chai@npm:5.3.3" + dependencies: + assertion-error: "npm:^2.0.1" + check-error: "npm:^2.1.1" + deep-eql: "npm:^5.0.1" + loupe: "npm:^3.1.0" + pathval: "npm:^2.0.0" + checksum: 10c0/b360fd4d38861622e5010c2f709736988b05c7f31042305fa3f4e9911f6adb80ccfb4e302068bf8ed10e835c2e2520cba0f5edc13d878b886987e5aa62483f53 + languageName: node + linkType: hard + "chalk@npm:^4.0.0": version: 4.1.2 resolution: "chalk@npm:4.1.2" @@ -2707,6 +3229,13 @@ __metadata: languageName: node linkType: hard +"check-error@npm:^2.1.1": + version: 2.1.1 + resolution: "check-error@npm:2.1.1" + checksum: 10c0/979f13eccab306cf1785fa10941a590b4e7ea9916ea2a4f8c87f0316fc3eab07eabefb6e587424ef0f88cbcd3805791f172ea739863ca3d7ce2afc54641c7f0e + languageName: node + linkType: hard + "chokidar@npm:^3.5.1": version: 3.5.3 resolution: "chokidar@npm:3.5.3" @@ -2971,6 +3500,7 @@ __metadata: "@eslint/js": "npm:^9.32.0" "@typescript-eslint/eslint-plugin": "npm:^8.46.0" "@typescript-eslint/parser": "npm:^8.46.0" + "@vitest/browser": "npm:^3.2.4" eslint: "npm:^9.32.0" eslint-config-prettier: "npm:^8.3.0" eslint-import-resolver-typescript: "npm:^4.4.4" @@ -2978,8 +3508,11 @@ __metadata: eslint-plugin-prettier: "npm:^5.5.0" eslint-plugin-simple-import-sort: "npm:^7.0.0" globals: "npm:^16.3.0" + playwright: "npm:^1.56.0" prettier: "npm:^3.6.2" + ses: "npm:^1.13.0" typescript: "npm:~5.9" + vitest: "npm:^3.2.4" languageName: unknown linkType: soft @@ -3106,6 +3639,13 @@ __metadata: languageName: node linkType: hard +"deep-eql@npm:^5.0.1": + version: 5.0.2 + resolution: "deep-eql@npm:5.0.2" + checksum: 10c0/7102cf3b7bb719c6b9c0db2e19bf0aa9318d141581befe8c7ce8ccd39af9eaa4346e5e05adef7f9bd7015da0f13a3a25dcfe306ef79dc8668aedbecb658dd247 + languageName: node + linkType: hard + "deep-equal@npm:~1.0.1": version: 1.0.1 resolution: "deep-equal@npm:1.0.1" @@ -3179,6 +3719,13 @@ __metadata: languageName: node linkType: hard +"dequal@npm:^2.0.3": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 + languageName: node + linkType: hard + "destroy@npm:1.2.0, destroy@npm:^1.0.4": version: 1.2.0 resolution: "destroy@npm:1.2.0" @@ -3209,6 +3756,13 @@ __metadata: languageName: node linkType: hard +"dom-accessibility-api@npm:^0.5.9": + version: 0.5.16 + resolution: "dom-accessibility-api@npm:0.5.16" + checksum: 10c0/b2c2eda4fae568977cdac27a9f0c001edf4f95a6a6191dfa611e3721db2478d1badc01db5bb4fa8a848aeee13e442a6c2a4386d65ec65a1436f24715a2f8d053 + languageName: node + linkType: hard + "dom-serialize@npm:^2.2.1": version: 2.2.1 resolution: "dom-serialize@npm:2.2.1" @@ -3439,7 +3993,7 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^1.2.1": +"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.7.0": version: 1.7.0 resolution: "es-module-lexer@npm:1.7.0" checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b @@ -3494,6 +4048,95 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.25.0": + version: 0.25.11 + resolution: "esbuild@npm:0.25.11" + dependencies: + "@esbuild/aix-ppc64": "npm:0.25.11" + "@esbuild/android-arm": "npm:0.25.11" + "@esbuild/android-arm64": "npm:0.25.11" + "@esbuild/android-x64": "npm:0.25.11" + "@esbuild/darwin-arm64": "npm:0.25.11" + "@esbuild/darwin-x64": "npm:0.25.11" + "@esbuild/freebsd-arm64": "npm:0.25.11" + "@esbuild/freebsd-x64": "npm:0.25.11" + "@esbuild/linux-arm": "npm:0.25.11" + "@esbuild/linux-arm64": "npm:0.25.11" + "@esbuild/linux-ia32": "npm:0.25.11" + "@esbuild/linux-loong64": "npm:0.25.11" + "@esbuild/linux-mips64el": "npm:0.25.11" + "@esbuild/linux-ppc64": "npm:0.25.11" + "@esbuild/linux-riscv64": "npm:0.25.11" + "@esbuild/linux-s390x": "npm:0.25.11" + "@esbuild/linux-x64": "npm:0.25.11" + "@esbuild/netbsd-arm64": "npm:0.25.11" + "@esbuild/netbsd-x64": "npm:0.25.11" + "@esbuild/openbsd-arm64": "npm:0.25.11" + "@esbuild/openbsd-x64": "npm:0.25.11" + "@esbuild/openharmony-arm64": "npm:0.25.11" + "@esbuild/sunos-x64": "npm:0.25.11" + "@esbuild/win32-arm64": "npm:0.25.11" + "@esbuild/win32-ia32": "npm:0.25.11" + "@esbuild/win32-x64": "npm:0.25.11" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/openharmony-arm64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/7f819b16a9f502091ddc6e1855291eaa5ede32c2b792cd8a8a60cc24faee469e3c7b607e2f22ea8684eb7c7bc377b2509e9f1cd50f10b3bf5042d1e9e4234be3 + languageName: node + linkType: hard + "escalade@npm:^3.1.1, escalade@npm:^3.2.0": version: 3.2.0 resolution: "escalade@npm:3.2.0" @@ -3783,6 +4426,15 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^3.0.3": + version: 3.0.3 + resolution: "estree-walker@npm:3.0.3" + dependencies: + "@types/estree": "npm:^1.0.0" + checksum: 10c0/c12e3c2b2642d2bcae7d5aa495c60fa2f299160946535763969a1c83fc74518ffa9c2cd3a8b69ac56aea547df6a8aac25f729a342992ef0bbac5f1c73e78995d + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -3828,6 +4480,13 @@ __metadata: languageName: node linkType: hard +"expect-type@npm:^1.2.1": + version: 1.2.2 + resolution: "expect-type@npm:1.2.2" + checksum: 10c0/6019019566063bbc7a690d9281d920b1a91284a4a093c2d55d71ffade5ac890cf37a51e1da4602546c4b56569d2ad2fc175a2ccee77d1ae06cb3af91ef84f44b + languageName: node + linkType: hard + "exponential-backoff@npm:^3.1.1": version: 3.1.1 resolution: "exponential-backoff@npm:3.1.1" @@ -3906,15 +4565,15 @@ __metadata: languageName: node linkType: hard -"fdir@npm:^6.4.4": - version: 6.4.6 - resolution: "fdir@npm:6.4.6" +"fdir@npm:^6.5.0": + version: 6.5.0 + resolution: "fdir@npm:6.5.0" peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: picomatch: optional: true - checksum: 10c0/45b559cff889934ebb8bc498351e5acba40750ada7e7d6bde197768d2fa67c149be8ae7f8ff34d03f4e1eb20f2764116e56440aaa2f6689e9a4aa7ef06acafe9 + checksum: 10c0/e345083c4306b3aed6cb8ec551e26c36bab5c511e99ea4576a16750ddc8d3240e63826cc624f5ae17ad4dc82e68a253213b60d556c11bfad064b7607847ed07f languageName: node linkType: hard @@ -4102,7 +4761,7 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:~2.3.2": +"fsevents@npm:2.3.2": version: 2.3.2 resolution: "fsevents@npm:2.3.2" dependencies: @@ -4112,7 +4771,17 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": +"fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin": version: 2.3.2 resolution: "fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1" dependencies: @@ -4121,6 +4790,15 @@ __metadata: languageName: node linkType: hard +"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + "function-bind@npm:^1.1.2": version: 1.1.2 resolution: "function-bind@npm:1.1.2" @@ -5145,34 +5823,13 @@ __metadata: languageName: node linkType: hard -"jasmine-core@npm:^4.1.0, jasmine-core@npm:^4.6.0": +"jasmine-core@npm:^4.1.0": version: 4.6.0 resolution: "jasmine-core@npm:4.6.0" checksum: 10c0/c78338fff7e6383653e049f7d5101f0933beb5dc09be6ed526c209c0521b7fa974477206c0ac1041455f6555a4bdcba163ea8581d420fdd35cd58a67a07466dc languageName: node linkType: hard -"jasmine-spec-reporter@npm:^6": - version: 6.0.0 - resolution: "jasmine-spec-reporter@npm:6.0.0" - dependencies: - colors: "npm:1.4.0" - checksum: 10c0/aab493d4e13cfbec1a4800f85e4eb52143a05a15c433580784dddb8c9dfb71873a8b06005fe15c0f3309fc9769f253675cc28b8fd9f76788fe53f01ed4d73c05 - languageName: node - linkType: hard - -"jasmine@npm:^4": - version: 4.6.0 - resolution: "jasmine@npm:4.6.0" - dependencies: - glob: "npm:^7.1.6" - jasmine-core: "npm:^4.6.0" - bin: - jasmine: bin/jasmine.js - checksum: 10c0/73dbb28a0051531b3dfa644884f9e9e2a421516ae4a1b33e706dec2d31357ad69aadc936d4e7585a3c9921fe552d3c7bc4ddfb227c46c969f5271ea6ceae5661 - languageName: node - linkType: hard - "jest-worker@npm:^27.4.5": version: 27.5.1 resolution: "jest-worker@npm:27.5.1" @@ -5191,6 +5848,13 @@ __metadata: languageName: node linkType: hard +"js-tokens@npm:^9.0.1": + version: 9.0.1 + resolution: "js-tokens@npm:9.0.1" + checksum: 10c0/68dcab8f233dde211a6b5fd98079783cbcd04b53617c1250e3553ee16ab3e6134f5e65478e41d82f6d351a052a63d71024553933808570f04dbf828d7921e80e + languageName: node + linkType: hard + "js-yaml@npm:^3.13.1": version: 3.14.1 resolution: "js-yaml@npm:3.14.1" @@ -5534,6 +6198,13 @@ __metadata: languageName: node linkType: hard +"loupe@npm:^3.1.0, loupe@npm:^3.1.4": + version: 3.2.1 + resolution: "loupe@npm:3.2.1" + checksum: 10c0/910c872cba291309664c2d094368d31a68907b6f5913e989d301b5c25f30e97d76d77f23ab3bf3b46d0f601ff0b6af8810c10c31b91d2c6b2f132809ca2cc705 + languageName: node + linkType: hard + "lru-cache@npm:^10.2.0": version: 10.4.3 resolution: "lru-cache@npm:10.4.3" @@ -5571,6 +6242,24 @@ __metadata: languageName: node linkType: hard +"lz-string@npm:^1.5.0": + version: 1.5.0 + resolution: "lz-string@npm:1.5.0" + bin: + lz-string: bin/bin.js + checksum: 10c0/36128e4de34791838abe979b19927c26e67201ca5acf00880377af7d765b38d1c60847e01c5ec61b1a260c48029084ab3893a3925fd6e48a04011364b089991b + languageName: node + linkType: hard + +"magic-string@npm:^0.30.17": + version: 0.30.21 + resolution: "magic-string@npm:0.30.21" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.5" + checksum: 10c0/299378e38f9a270069fc62358522ddfb44e94244baa0d6a8980ab2a9b2490a1d03b236b447eee309e17eb3bddfa482c61259d47960eb018a904f0ded52780c4a + languageName: node + linkType: hard + "make-dir@npm:^3.0.0, make-dir@npm:^3.0.2": version: 3.1.0 resolution: "make-dir@npm:3.1.0" @@ -5848,6 +6537,13 @@ __metadata: languageName: node linkType: hard +"mrmime@npm:^2.0.0": + version: 2.0.1 + resolution: "mrmime@npm:2.0.1" + checksum: 10c0/af05afd95af202fdd620422f976ad67dc18e6ee29beb03dd1ce950ea6ef664de378e44197246df4c7cdd73d47f2e7143a6e26e473084b9e4aa2095c0ad1e1761 + languageName: node + linkType: hard + "ms@npm:2.0.0": version: 2.0.0 resolution: "ms@npm:2.0.0" @@ -5862,6 +6558,15 @@ __metadata: languageName: node linkType: hard +"nanoid@npm:^3.3.11": + version: 3.3.11 + resolution: "nanoid@npm:3.3.11" + bin: + nanoid: bin/nanoid.cjs + checksum: 10c0/40e7f70b3d15f725ca072dfc4f74e81fcf1fbb02e491cf58ac0c79093adc9b0a73b152bcde57df4b79cd097e13023d7504acb38404a4da7bc1cd8e887b82fe0b + languageName: node + linkType: hard + "napi-build-utils@npm:^2.0.0": version: 2.0.0 resolution: "napi-build-utils@npm:2.0.0" @@ -6353,7 +7058,21 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.1.1": +"pathe@npm:^2.0.3": + version: 2.0.3 + resolution: "pathe@npm:2.0.3" + checksum: 10c0/c118dc5a8b5c4166011b2b70608762e260085180bb9e33e80a50dcdb1e78c010b1624f4280c492c92b05fc276715a4c357d1f9edc570f8f1b3d90b6839ebaca1 + languageName: node + linkType: hard + +"pathval@npm:^2.0.0": + version: 2.0.1 + resolution: "pathval@npm:2.0.1" + checksum: 10c0/460f4709479fbf2c45903a65655fc8f0a5f6d808f989173aeef5fdea4ff4f303dc13f7870303999add60ec49d4c14733895c0a869392e9866f1091fa64fd7581 + languageName: node + linkType: hard + +"picocolors@npm:1.1.1, picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 @@ -6367,7 +7086,7 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^4.0.2": +"picomatch@npm:^4.0.2, picomatch@npm:^4.0.3": version: 4.0.3 resolution: "picomatch@npm:4.0.3" checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2 @@ -6383,6 +7102,30 @@ __metadata: languageName: node linkType: hard +"playwright-core@npm:1.56.1": + version: 1.56.1 + resolution: "playwright-core@npm:1.56.1" + bin: + playwright-core: cli.js + checksum: 10c0/ffd40142b99c68678b387445d5b42f1fee4ab0b65d983058c37f342e5629f9cdbdac0506ea80a0dfd41a8f9f13345bad54e9a8c35826ef66dc765f4eb3db8da7 + languageName: node + linkType: hard + +"playwright@npm:^1.56.0": + version: 1.56.1 + resolution: "playwright@npm:1.56.1" + dependencies: + fsevents: "npm:2.3.2" + playwright-core: "npm:1.56.1" + dependenciesMeta: + fsevents: + optional: true + bin: + playwright: cli.js + checksum: 10c0/8e9965aede86df0f4722063385748498977b219630a40a10d1b82b8bd8d4d4e9b6b65ecbfa024331a30800163161aca292fb6dd7446c531a1ad25f4155625ab4 + languageName: node + linkType: hard + "possible-typed-array-names@npm:^1.0.0": version: 1.1.0 resolution: "possible-typed-array-names@npm:1.1.0" @@ -6390,6 +7133,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.5.6": + version: 8.5.6 + resolution: "postcss@npm:8.5.6" + dependencies: + nanoid: "npm:^3.3.11" + picocolors: "npm:^1.1.1" + source-map-js: "npm:^1.2.1" + checksum: 10c0/5127cc7c91ed7a133a1b7318012d8bfa112da9ef092dddf369ae699a1f10ebbd89b1b9f25f3228795b84585c72aabd5ced5fc11f2ba467eedf7b081a66fad024 + languageName: node + linkType: hard + "prebuild-install@npm:^7.1.1": version: 7.1.3 resolution: "prebuild-install@npm:7.1.3" @@ -6437,6 +7191,17 @@ __metadata: languageName: node linkType: hard +"pretty-format@npm:^27.0.2": + version: 27.5.1 + resolution: "pretty-format@npm:27.5.1" + dependencies: + ansi-regex: "npm:^5.0.1" + ansi-styles: "npm:^5.0.0" + react-is: "npm:^17.0.1" + checksum: 10c0/0cbda1031aa30c659e10921fa94e0dd3f903ecbbbe7184a729ad66f2b6e7f17891e8c7d7654c458fa4ccb1a411ffb695b4f17bbcd3fe075fabe181027c4040ed + languageName: node + linkType: hard + "process-on-spawn@npm:^1.0.0": version: 1.0.0 resolution: "process-on-spawn@npm:1.0.0" @@ -6565,6 +7330,13 @@ __metadata: languageName: node linkType: hard +"react-is@npm:^17.0.1": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 10c0/2bdb6b93fbb1820b024b496042cce405c57e2f85e777c9aabd55f9b26d145408f9f74f5934676ffdc46f3dcff656d78413a6e43968e7b3f92eea35b3052e9053 + languageName: node + linkType: hard + "readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": version: 3.6.0 resolution: "readable-stream@npm:3.6.0" @@ -6766,6 +7538,87 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.43.0": + version: 4.52.5 + resolution: "rollup@npm:4.52.5" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.52.5" + "@rollup/rollup-android-arm64": "npm:4.52.5" + "@rollup/rollup-darwin-arm64": "npm:4.52.5" + "@rollup/rollup-darwin-x64": "npm:4.52.5" + "@rollup/rollup-freebsd-arm64": "npm:4.52.5" + "@rollup/rollup-freebsd-x64": "npm:4.52.5" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.52.5" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.52.5" + "@rollup/rollup-linux-arm64-gnu": "npm:4.52.5" + "@rollup/rollup-linux-arm64-musl": "npm:4.52.5" + "@rollup/rollup-linux-loong64-gnu": "npm:4.52.5" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.52.5" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.52.5" + "@rollup/rollup-linux-riscv64-musl": "npm:4.52.5" + "@rollup/rollup-linux-s390x-gnu": "npm:4.52.5" + "@rollup/rollup-linux-x64-gnu": "npm:4.52.5" + "@rollup/rollup-linux-x64-musl": "npm:4.52.5" + "@rollup/rollup-openharmony-arm64": "npm:4.52.5" + "@rollup/rollup-win32-arm64-msvc": "npm:4.52.5" + "@rollup/rollup-win32-ia32-msvc": "npm:4.52.5" + "@rollup/rollup-win32-x64-gnu": "npm:4.52.5" + "@rollup/rollup-win32-x64-msvc": "npm:4.52.5" + "@types/estree": "npm:1.0.8" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loong64-gnu": + optional: true + "@rollup/rollup-linux-ppc64-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-openharmony-arm64": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-gnu": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10c0/faf1697b305d13a149bb64a2bb7378344becc7c8580f56225c4c00adbf493d82480a44b3e3b1cc82a3ac5d1d4cab6dfc89e6635443895a2dc488969075f5b94d + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -7019,6 +7872,13 @@ __metadata: languageName: node linkType: hard +"siginfo@npm:^2.0.0": + version: 2.0.0 + resolution: "siginfo@npm:2.0.0" + checksum: 10c0/3def8f8e516fbb34cb6ae415b07ccc5d9c018d85b4b8611e3dc6f8be6d1899f693a4382913c9ed51a06babb5201639d76453ab297d1c54a456544acf5c892e34 + languageName: node + linkType: hard + "signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -7051,6 +7911,17 @@ __metadata: languageName: node linkType: hard +"sirv@npm:^3.0.1": + version: 3.0.2 + resolution: "sirv@npm:3.0.2" + dependencies: + "@polka/url": "npm:^1.0.0-next.24" + mrmime: "npm:^2.0.0" + totalist: "npm:^3.0.0" + checksum: 10c0/5930e4397afdb14fbae13751c3be983af4bda5c9aadec832607dc2af15a7162f7d518c71b30e83ae3644b9a24cea041543cc969e5fe2b80af6ce8ea3174b2d04 + languageName: node + linkType: hard + "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" @@ -7114,6 +7985,13 @@ __metadata: languageName: node linkType: hard +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf + languageName: node + linkType: hard + "source-map-support@npm:^0.5.19, source-map-support@npm:~0.5.20": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" @@ -7168,6 +8046,13 @@ __metadata: languageName: node linkType: hard +"stackback@npm:0.0.2": + version: 0.0.2 + resolution: "stackback@npm:0.0.2" + checksum: 10c0/89a1416668f950236dd5ac9f9a6b2588e1b9b62b1b6ad8dff1bfc5d1a15dbf0aafc9b52d2226d00c28dffff212da464eaeebfc6b7578b9d180cef3e3782c5983 + languageName: node + linkType: hard + "statuses@npm:2.0.1": version: 2.0.1 resolution: "statuses@npm:2.0.1" @@ -7182,6 +8067,13 @@ __metadata: languageName: node linkType: hard +"std-env@npm:^3.9.0": + version: 3.10.0 + resolution: "std-env@npm:3.10.0" + checksum: 10c0/1814927a45004d36dde6707eaf17552a546769bc79a6421be2c16ce77d238158dfe5de30910b78ec30d95135cc1c59ea73ee22d2ca170f8b9753f84da34c427f + languageName: node + linkType: hard + "stop-iteration-iterator@npm:^1.1.0": version: 1.1.0 resolution: "stop-iteration-iterator@npm:1.1.0" @@ -7336,6 +8228,15 @@ __metadata: languageName: node linkType: hard +"strip-literal@npm:^3.0.0": + version: 3.1.0 + resolution: "strip-literal@npm:3.1.0" + dependencies: + js-tokens: "npm:^9.0.1" + checksum: 10c0/50918f669915d9ad0fe4b7599902b735f853f2201c97791ead00104a654259c0c61bc2bc8fa3db05109339b61f4cf09e47b94ecc874ffbd0e013965223893af8 + languageName: node + linkType: hard + "supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" @@ -7470,13 +8371,48 @@ __metadata: languageName: node linkType: hard -"tinyglobby@npm:^0.2.14": - version: 0.2.14 - resolution: "tinyglobby@npm:0.2.14" +"tinybench@npm:^2.9.0": + version: 2.9.0 + resolution: "tinybench@npm:2.9.0" + checksum: 10c0/c3500b0f60d2eb8db65250afe750b66d51623057ee88720b7f064894a6cb7eb93360ca824a60a31ab16dab30c7b1f06efe0795b352e37914a9d4bad86386a20c + languageName: node + linkType: hard + +"tinyexec@npm:^0.3.2": + version: 0.3.2 + resolution: "tinyexec@npm:0.3.2" + checksum: 10c0/3efbf791a911be0bf0821eab37a3445c2ba07acc1522b1fa84ae1e55f10425076f1290f680286345ed919549ad67527d07281f1c19d584df3b74326909eb1f90 + languageName: node + linkType: hard + +"tinyglobby@npm:^0.2.14, tinyglobby@npm:^0.2.15": + version: 0.2.15 + resolution: "tinyglobby@npm:0.2.15" dependencies: - fdir: "npm:^6.4.4" - picomatch: "npm:^4.0.2" - checksum: 10c0/f789ed6c924287a9b7d3612056ed0cda67306cd2c80c249fd280cf1504742b12583a2089b61f4abbd24605f390809017240e250241f09938054c9b363e51c0a6 + fdir: "npm:^6.5.0" + picomatch: "npm:^4.0.3" + checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844 + languageName: node + linkType: hard + +"tinypool@npm:^1.1.1": + version: 1.1.1 + resolution: "tinypool@npm:1.1.1" + checksum: 10c0/bf26727d01443061b04fa863f571016950888ea994ba0cd8cba3a1c51e2458d84574341ab8dbc3664f1c3ab20885c8cf9ff1cc4b18201f04c2cde7d317fff69b + languageName: node + linkType: hard + +"tinyrainbow@npm:^2.0.0": + version: 2.0.0 + resolution: "tinyrainbow@npm:2.0.0" + checksum: 10c0/c83c52bef4e0ae7fb8ec6a722f70b5b6fa8d8be1c85792e829f56c0e1be94ab70b293c032dc5048d4d37cfe678f1f5babb04bdc65fd123098800148ca989184f + languageName: node + linkType: hard + +"tinyspy@npm:^4.0.3": + version: 4.0.4 + resolution: "tinyspy@npm:4.0.4" + checksum: 10c0/a8020fc17799251e06a8398dcc352601d2770aa91c556b9531ecd7a12581161fd1c14e81cbdaff0c1306c93bfdde8ff6d1c1a3f9bbe6d91604f0fd4e01e2f1eb languageName: node linkType: hard @@ -7512,6 +8448,13 @@ __metadata: languageName: node linkType: hard +"totalist@npm:^3.0.0": + version: 3.0.1 + resolution: "totalist@npm:3.0.1" + checksum: 10c0/4bb1fadb69c3edbef91c73ebef9d25b33bbf69afe1e37ce544d5f7d13854cda15e47132f3e0dc4cafe300ddb8578c77c50a65004d8b6e97e77934a69aa924863 + languageName: node + linkType: hard + "ts-api-utils@npm:^2.1.0": version: 2.1.0 resolution: "ts-api-utils@npm:2.1.0" @@ -7885,6 +8828,132 @@ __metadata: languageName: node linkType: hard +"vite-node@npm:3.2.4": + version: 3.2.4 + resolution: "vite-node@npm:3.2.4" + dependencies: + cac: "npm:^6.7.14" + debug: "npm:^4.4.1" + es-module-lexer: "npm:^1.7.0" + pathe: "npm:^2.0.3" + vite: "npm:^5.0.0 || ^6.0.0 || ^7.0.0-0" + bin: + vite-node: vite-node.mjs + checksum: 10c0/6ceca67c002f8ef6397d58b9539f80f2b5d79e103a18367288b3f00a8ab55affa3d711d86d9112fce5a7fa658a212a087a005a045eb8f4758947dd99af2a6c6b + languageName: node + linkType: hard + +"vite@npm:^5.0.0 || ^6.0.0 || ^7.0.0-0": + version: 7.1.12 + resolution: "vite@npm:7.1.12" + dependencies: + esbuild: "npm:^0.25.0" + fdir: "npm:^6.5.0" + fsevents: "npm:~2.3.3" + picomatch: "npm:^4.0.3" + postcss: "npm:^8.5.6" + rollup: "npm:^4.43.0" + tinyglobby: "npm:^0.2.15" + peerDependencies: + "@types/node": ^20.19.0 || >=22.12.0 + jiti: ">=1.21.0" + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: ">=0.54.8" + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + bin: + vite: bin/vite.js + checksum: 10c0/cef4d4b4a84e663e09b858964af36e916892ac8540068df42a05ced637ceeae5e9ef71c72d54f3cfc1f3c254af16634230e221b6e2327c2a66d794bb49203262 + languageName: node + linkType: hard + +"vitest@npm:^3.2.4": + version: 3.2.4 + resolution: "vitest@npm:3.2.4" + dependencies: + "@types/chai": "npm:^5.2.2" + "@vitest/expect": "npm:3.2.4" + "@vitest/mocker": "npm:3.2.4" + "@vitest/pretty-format": "npm:^3.2.4" + "@vitest/runner": "npm:3.2.4" + "@vitest/snapshot": "npm:3.2.4" + "@vitest/spy": "npm:3.2.4" + "@vitest/utils": "npm:3.2.4" + chai: "npm:^5.2.0" + debug: "npm:^4.4.1" + expect-type: "npm:^1.2.1" + magic-string: "npm:^0.30.17" + pathe: "npm:^2.0.3" + picomatch: "npm:^4.0.2" + std-env: "npm:^3.9.0" + tinybench: "npm:^2.9.0" + tinyexec: "npm:^0.3.2" + tinyglobby: "npm:^0.2.14" + tinypool: "npm:^1.1.1" + tinyrainbow: "npm:^2.0.0" + vite: "npm:^5.0.0 || ^6.0.0 || ^7.0.0-0" + vite-node: "npm:3.2.4" + why-is-node-running: "npm:^2.3.0" + peerDependencies: + "@edge-runtime/vm": "*" + "@types/debug": ^4.1.12 + "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 + "@vitest/browser": 3.2.4 + "@vitest/ui": 3.2.4 + happy-dom: "*" + jsdom: "*" + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@types/debug": + optional: true + "@types/node": + optional: true + "@vitest/browser": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + bin: + vitest: vitest.mjs + checksum: 10c0/5bf53ede3ae6a0e08956d72dab279ae90503f6b5a05298a6a5e6ef47d2fd1ab386aaf48fafa61ed07a0ebfe9e371772f1ccbe5c258dd765206a8218bf2eb79eb + languageName: node + linkType: hard + "void-elements@npm:^2.0.0": version: 2.0.1 resolution: "void-elements@npm:2.0.1" @@ -8081,6 +9150,18 @@ __metadata: languageName: node linkType: hard +"why-is-node-running@npm:^2.3.0": + version: 2.3.0 + resolution: "why-is-node-running@npm:2.3.0" + dependencies: + siginfo: "npm:^2.0.0" + stackback: "npm:0.0.2" + bin: + why-is-node-running: cli.js + checksum: 10c0/1cde0b01b827d2cf4cb11db962f3958b9175d5d9e7ac7361d1a7b0e2dc6069a263e69118bd974c4f6d0a890ef4eedfe34cf3d5167ec14203dbc9a18620537054 + languageName: node + linkType: hard + "wide-align@npm:^1.1.5": version: 1.1.5 resolution: "wide-align@npm:1.1.5" @@ -8171,6 +9252,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:^8.18.2": + version: 8.18.3 + resolution: "ws@npm:8.18.3" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/eac918213de265ef7cb3d4ca348b891a51a520d839aa51cdb8ca93d4fa7ff9f6ccb339ccee89e4075324097f0a55157c89fa3f7147bde9d8d7e90335dc087b53 + languageName: node + linkType: hard + "ws@npm:~8.17.1": version: 8.17.1 resolution: "ws@npm:8.17.1"