From a88a26a8cf378591655f9c13030841ef022ce56e Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Wed, 11 Dec 2024 08:09:42 +0100 Subject: [PATCH 01/31] build(frontend): svelte v5 --- package-lock.json | 977 +++++++++++++++++++--------------------------- package.json | 18 +- 2 files changed, 407 insertions(+), 588 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4b96a014ec..556531e9d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "@dfinity/candid": "^2.1.2", "@dfinity/ckbtc": "^3.1.0", "@dfinity/cketh": "^3.3.1", - "@dfinity/gix-components": "^4.8.0-next-2024-11-04", + "@dfinity/gix-components": "file:../gix-components/dfinity-gix-components-5.0.0.tgz", "@dfinity/ic-management": "^5.2.1", "@dfinity/ledger-icp": "^2.6.0", "@dfinity/ledger-icrc": "^2.6.0", @@ -24,11 +24,20 @@ "@dfinity/verifiable-credentials": "^0.0.4", "@junobuild/analytics": "^0.0.28", "@metamask/detect-provider": "^2.0.0", + "@sveltejs/adapter-static": "^3.0.6", + "@sveltejs/kit": "^2.10.1", + "@sveltejs/package": "^2.3.7", + "@sveltejs/vite-plugin-svelte": "^4.0.1", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/svelte": "^5.2.6", "@walletconnect/web3wallet": "1.14.0", "alchemy-sdk": "3.4.1", "buffer": "^6.0.3", + "eslint-plugin-svelte": "^2.46.1", "ethers": "^5.7.0", "idb-keyval": "^6.2.1", + "svelte": "^5.10.1", + "svelte-check": "^4.1.1", "zod": "^3.23.8" }, "devDependencies": { @@ -37,11 +46,6 @@ "@dfinity/internet-identity-playwright": "^0.0.4", "@playwright/test": "^1.49.0", "@rollup/plugin-inject": "^5.0.5", - "@sveltejs/adapter-static": "^3.0.6", - "@sveltejs/kit": "^2.9.0", - "@sveltejs/vite-plugin-svelte": "^3.1.2", - "@testing-library/jest-dom": "^6.6.3", - "@testing-library/svelte": "^5.2.6", "@types/dom-view-transitions": "^1.0.5", "@types/node": "^20.14.9", "@vitest/coverage-v8": "^2.1.8", @@ -58,8 +62,6 @@ "prettier-plugin-svelte": "^3.3.2", "prettier-plugin-tailwindcss": "^0.6.9", "sass": "^1.81.0", - "svelte": "^4.2.19", - "svelte-check": "^4.1.1", "tailwindcss": "^3.4.15", "tslib": "^2.8.1", "typescript": "^5.4.5", @@ -73,10 +75,9 @@ } }, "node_modules/@adobe/css-tools": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.0.tgz", - "integrity": "sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==", - "dev": true, + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.1.tgz", + "integrity": "sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==", "license": "MIT" }, "node_modules/@alloc/quick-lru": { @@ -105,12 +106,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", - "dev": true, + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.2", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -131,83 +133,11 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, "node_modules/@babel/parser": { "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", @@ -225,10 +155,10 @@ } }, "node_modules/@babel/runtime": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", - "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", - "dev": true, + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -356,9 +286,9 @@ } }, "node_modules/@dfinity/gix-components": { - "version": "4.8.0-next-2024-11-04", - "resolved": "https://registry.npmjs.org/@dfinity/gix-components/-/gix-components-4.8.0-next-2024-11-04.tgz", - "integrity": "sha512-6EvYdZjQi59zY+s4drQWrAjALUcl3gQuc++EXqkzh3eGRPbftij5loex5TYWZ91u2CLOgAS+PJregZpkBfQGUg==", + "version": "5.0.0", + "resolved": "file:../gix-components/dfinity-gix-components-5.0.0.tgz", + "integrity": "sha512-HM6z8ukCZrhla3AmI5M++UyWCb+xUpi5RCQ5BRDtEF8506Hrrx3V1rtuRIjlyOli/H9veqQWqiO3Srhp5xtFtQ==", "license": "Apache-2.0", "dependencies": { "dompurify": "^3.1.6", @@ -368,7 +298,7 @@ }, "peerDependencies": { "@dfinity/utils": "*", - "svelte": "^4.2.1" + "svelte": "^5" } }, "node_modules/@dfinity/ic-management": { @@ -533,7 +463,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -550,7 +479,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -567,7 +495,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -584,7 +511,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -601,7 +527,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -618,7 +543,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -635,7 +559,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -652,7 +575,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -669,7 +591,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -686,7 +607,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -703,7 +623,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -720,7 +639,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -737,7 +655,6 @@ "cpu": [ "mips64el" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -754,7 +671,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -771,7 +687,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -788,7 +703,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -805,7 +719,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -822,7 +735,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -839,7 +751,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -856,7 +767,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -873,7 +783,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -890,7 +799,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -907,7 +815,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -921,9 +828,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, "license": "MIT", - "peer": true, "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -938,7 +843,6 @@ "version": "4.11.1", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", - "dev": true, "license": "MIT", "peer": true, "engines": { @@ -949,7 +853,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -974,7 +877,6 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -993,7 +895,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, "license": "MIT", "peer": true }, @@ -1001,7 +902,6 @@ "version": "8.57.1", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", - "dev": true, "license": "MIT", "peer": true, "engines": { @@ -1689,7 +1589,6 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", "deprecated": "Use @eslint/config-array instead", - "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { @@ -1705,7 +1604,6 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -1724,7 +1622,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, "license": "MIT", "peer": true }, @@ -1732,7 +1629,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, "license": "Apache-2.0", "peer": true, "engines": { @@ -1748,7 +1644,6 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "deprecated": "Use @eslint/object-schema instead", - "dev": true, "license": "BSD-3-Clause", "peer": true }, @@ -2372,7 +2267,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2385,7 +2279,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, "engines": { "node": ">= 8" } @@ -2394,7 +2287,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2788,7 +2680,7 @@ "version": "1.0.0-next.28", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", - "dev": true + "license": "MIT" }, "node_modules/@rollup/plugin-inject": { "version": "5.0.5", @@ -2853,7 +2745,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "android" @@ -2866,7 +2757,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "android" @@ -2879,7 +2769,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -2892,7 +2781,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -2905,7 +2793,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "linux" @@ -2918,7 +2805,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "linux" @@ -2931,7 +2817,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -2944,7 +2829,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -2957,7 +2841,6 @@ "cpu": [ "ppc64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -2970,7 +2853,6 @@ "cpu": [ "riscv64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -2983,7 +2865,6 @@ "cpu": [ "s390x" ], - "dev": true, "optional": true, "os": [ "linux" @@ -2996,7 +2877,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -3009,7 +2889,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -3022,7 +2901,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -3035,7 +2913,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "win32" @@ -3048,7 +2925,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -3269,17 +3145,17 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.6.tgz", "integrity": "sha512-MGJcesnJWj7FxDcB/GbrdYD3q24Uk0PIL4QIX149ku+hlJuj//nxUbb0HxUTpjkecWfHjVveSUnUaQWnPRXlpg==", - "dev": true, + "license": "MIT", "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "node_modules/@sveltejs/kit": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.9.0.tgz", - "integrity": "sha512-W3E7ed3ChB6kPqRs2H7tcHp+Z7oiTFC6m+lLyAQQuyXeqw6LdNuuwEUla+5VM0OGgqQD+cYD6+7Xq80vVm17Vg==", - "dev": true, + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.10.1.tgz", + "integrity": "sha512-2aormKTn94aU8Lfxj4gcbRGh1Dyw0hCFlNo51+njdRDn9P2ERuWC4bOtTuoy5HJpPYR3AH8oaaEjKDWUHbi1OA==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "@types/cookie": "^0.6.0", "cookie": "^0.6.0", @@ -3306,55 +3182,101 @@ "vite": "^5.0.3 || ^6.0.0" } }, + "node_modules/@sveltejs/package": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/@sveltejs/package/-/package-2.3.7.tgz", + "integrity": "sha512-LYgUkde5GUYqOpXbcoCGUpEH4Ctl3Wj4u4CVZBl56dEeLW5fGHE037ZL1qlK0Ky+QD5uUfwONSeGwIOIighFMQ==", + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.0", + "kleur": "^4.1.5", + "sade": "^1.8.1", + "semver": "^7.5.4", + "svelte2tsx": "~0.7.16" + }, + "bin": { + "svelte-package": "svelte-package.js" + }, + "engines": { + "node": "^16.14 || >=18" + }, + "peerDependencies": { + "svelte": "^3.44.0 || ^4.0.0 || ^5.0.0-next.1" + } + }, + "node_modules/@sveltejs/package/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sveltejs/package/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "license": "MIT", + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@sveltejs/vite-plugin-svelte": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.1.2.tgz", - "integrity": "sha512-Txsm1tJvtiYeLUVRNqxZGKR/mI+CzuIQuc2gn+YCs9rMTowpNZ2Nqt53JdL8KF9bLhAf2ruR/dr9eZCwdTriRA==", - "dev": true, + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-4.0.1.tgz", + "integrity": "sha512-prXoAE/GleD2C4pKgHa9vkdjpzdYwCSw/kmjw6adIyu0vk5YKCfqIztkLg10m+kOYnzZu3bb0NaPTxlWre2a9Q==", "license": "MIT", "dependencies": { - "@sveltejs/vite-plugin-svelte-inspector": "^2.1.0", - "debug": "^4.3.4", + "@sveltejs/vite-plugin-svelte-inspector": "^3.0.0-next.0||^3.0.0", + "debug": "^4.3.7", "deepmerge": "^4.3.1", "kleur": "^4.1.5", - "magic-string": "^0.30.10", - "svelte-hmr": "^0.16.0", - "vitefu": "^0.2.5" + "magic-string": "^0.30.12", + "vitefu": "^1.0.3" }, "engines": { - "node": "^18.0.0 || >=20" + "node": "^18.0.0 || ^20.0.0 || >=22" }, "peerDependencies": { - "svelte": "^4.0.0 || ^5.0.0-next.0", + "svelte": "^5.0.0-next.96 || ^5.0.0", "vite": "^5.0.0" } }, "node_modules/@sveltejs/vite-plugin-svelte-inspector": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.1.0.tgz", - "integrity": "sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==", - "dev": true, + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-3.0.1.tgz", + "integrity": "sha512-2CKypmj1sM4GE7HjllT7UKmo4Q6L5xFRd7VMGEWhYnZ+wc6AUVU01IBd7yUi6WnFndEwWoMNOd6e8UjoN0nbvQ==", "license": "MIT", "dependencies": { - "debug": "^4.3.4" + "debug": "^4.3.7" }, "engines": { - "node": "^18.0.0 || >=20" + "node": "^18.0.0 || ^20.0.0 || >=22" }, "peerDependencies": { - "@sveltejs/vite-plugin-svelte": "^3.0.0", - "svelte": "^4.0.0 || ^5.0.0-next.0", + "@sveltejs/vite-plugin-svelte": "^4.0.0-next.0||^4.0.0", + "svelte": "^5.0.0-next.96 || ^5.0.0", "vite": "^5.0.0" } }, "node_modules/@sveltejs/vite-plugin-svelte-inspector/node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "dev": true, + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -3366,19 +3288,18 @@ } }, "node_modules/@sveltejs/vite-plugin-svelte-inspector/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, "node_modules/@sveltejs/vite-plugin-svelte/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -3390,16 +3311,15 @@ } }, "node_modules/@sveltejs/vite-plugin-svelte/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/@testing-library/dom": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.2.0.tgz", - "integrity": "sha512-CytIvb6tVOADRngTHGWNxH8LPgO/3hi/BdCEHOf7Qd2GvZVClhVP0Wo/QHzWhpki49Bk0b4VT6xpt3fx8HTSIw==", - "dev": true, + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.10.4", @@ -3415,53 +3335,26 @@ "node": ">=18" } }, - "node_modules/@testing-library/dom/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" } }, "node_modules/@testing-library/dom/node_modules/dom-accessibility-api": { "version": "0.5.16", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@testing-library/dom/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@testing-library/dom/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true, "license": "MIT" }, "node_modules/@testing-library/jest-dom": { "version": "6.6.3", "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz", "integrity": "sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==", - "dev": true, + "license": "MIT", "dependencies": { "@adobe/css-tools": "^4.4.0", "aria-query": "^5.0.0", @@ -3481,7 +3374,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3490,23 +3383,11 @@ "node": ">=8" } }, - "node_modules/@testing-library/jest-dom/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@testing-library/svelte": { "version": "5.2.6", "resolved": "https://registry.npmjs.org/@testing-library/svelte/-/svelte-5.2.6.tgz", "integrity": "sha512-1Y8cEg/BtV4J6g9irkY0ksz+ueDFYLiikjTLiqvQPkOUeDzR4gg2zECBf8yrOrCy3e2TAOYMcaysFa0bQMyk1w==", - "dev": true, + "license": "MIT", "dependencies": { "@testing-library/dom": "^10.0.0" }, @@ -3538,14 +3419,13 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", - "dev": true, "license": "MIT" }, "node_modules/@types/cookie": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", - "dev": true + "license": "MIT" }, "node_modules/@types/dom-view-transitions": { "version": "1.0.5", @@ -3579,7 +3459,7 @@ "version": "20.14.9", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz", "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "undici-types": "~5.26.4" @@ -3593,6 +3473,13 @@ "license": "MIT", "peer": true }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", @@ -3939,7 +3826,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true, "license": "ISC", "peer": true }, @@ -4005,7 +3891,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.8.tgz", "integrity": "sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@vitest/spy": "2.1.8", @@ -4021,7 +3907,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.8.tgz", "integrity": "sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@vitest/spy": "2.1.8", @@ -4048,7 +3934,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "tinyrainbow": "^1.2.0" @@ -4061,7 +3947,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.8.tgz", "integrity": "sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@vitest/utils": "2.1.8", @@ -4075,7 +3961,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.8.tgz", "integrity": "sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@vitest/pretty-format": "2.1.8", @@ -4090,7 +3976,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.8.tgz", "integrity": "sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "tinyspy": "^3.0.2" @@ -4103,7 +3989,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.8.tgz", "integrity": "sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@vitest/pretty-format": "2.1.8", @@ -4447,9 +4333,10 @@ "license": "0BSD" }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -4461,13 +4348,20 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, "license": "MIT", - "peer": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-typescript": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz", + "integrity": "sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==", + "license": "MIT", + "peerDependencies": { + "acorn": ">=8.9.0" + } + }, "node_modules/agent-base": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", @@ -4507,7 +4401,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -4547,7 +4440,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -4556,7 +4448,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -4602,16 +4493,16 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, "license": "Python-2.0", "peer": true }, "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dependencies": { - "dequal": "^2.0.3" + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" } }, "node_modules/array-buffer-byte-length": { @@ -4769,7 +4660,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=12" @@ -4866,18 +4757,18 @@ } }, "node_modules/axobject-query": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", - "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", - "dependencies": { - "dequal": "^2.0.3" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" } }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base-x": { "version": "4.0.0", @@ -5002,7 +4893,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -5143,7 +5033,7 @@ "version": "6.7.14", "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" @@ -5174,7 +5064,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, "license": "MIT", "peer": true, "engines": { @@ -5215,7 +5104,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "assertion-error": "^2.0.1", @@ -5232,7 +5121,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5244,23 +5132,11 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/check-error": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 16" @@ -5326,23 +5202,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/code-red": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", - "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15", - "@types/estree": "^1.0.1", - "acorn": "^8.10.0", - "estree-walker": "^3.0.3", - "periscopic": "^3.1.0" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -5353,8 +5216,7 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/combined-stream": { "version": "1.0.8", @@ -5377,7 +5239,6 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, "peer": true }, "node_modules/consola": { @@ -5393,7 +5254,6 @@ "version": "0.7.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -5433,29 +5293,16 @@ } } }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, "node_modules/css.escape": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", - "dev": true + "license": "MIT" }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, "bin": { "cssesc": "bin/cssesc" }, @@ -5616,11 +5463,17 @@ "node": ">=0.10" } }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==", + "license": "MIT" + }, "node_modules/deep-eql": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=6" @@ -5630,7 +5483,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, "license": "MIT", "peer": true }, @@ -5638,7 +5490,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -5705,6 +5557,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -5737,7 +5590,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.1.1.tgz", "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==", - "dev": true + "license": "MIT" }, "node_modules/didyoumean": { "version": "1.2.2", @@ -5769,7 +5622,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { @@ -5783,13 +5635,16 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", - "dev": true + "license": "MIT" }, "node_modules/dompurify": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.7.tgz", - "integrity": "sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==", - "license": "(MPL-2.0 OR Apache-2.0)" + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.3.tgz", + "integrity": "sha512-U1U5Hzc2MO0oW3DF+G9qYN0aT7atAou4AgI0XjWz061nyBPbdxkfdhfy5uMgGn6+oLFCfn44ZGbdDqCzVmlOWA==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } }, "node_modules/dotenv": { "version": "16.4.7", @@ -5983,7 +5838,7 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", - "dev": true + "devOptional": true }, "node_modules/es-object-atoms": { "version": "1.0.0", @@ -6089,7 +5944,6 @@ "version": "0.21.5", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -6138,7 +5992,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, "license": "MIT", "peer": true, "engines": { @@ -6153,7 +6006,6 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -6210,9 +6062,7 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", - "dev": true, "license": "MIT", - "peer": true, "dependencies": { "semver": "^7.5.4" }, @@ -6608,24 +6458,22 @@ } }, "node_modules/eslint-plugin-svelte": { - "version": "2.44.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.44.1.tgz", - "integrity": "sha512-w6wkoJPw1FJKFtM/2oln21rlu5+HTd2CSkkzhm32A+trNoW2EYQqTQAbDTU6k2GI/6Vh64rBHYQejqEgDld7fw==", - "dev": true, + "version": "2.46.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.46.1.tgz", + "integrity": "sha512-7xYr2o4NID/f9OEYMqxsEQsCsj4KaMy4q5sANaKkAb6/QeCjYFxRmDm2S3YC3A3pl1kyPZ/syOx/i7LcWYSbIw==", "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@jridgewell/sourcemap-codec": "^1.4.15", "eslint-compat-utils": "^0.5.1", "esutils": "^2.0.3", - "known-css-properties": "^0.34.0", + "known-css-properties": "^0.35.0", "postcss": "^8.4.38", "postcss-load-config": "^3.1.4", "postcss-safe-parser": "^6.0.0", "postcss-selector-parser": "^6.1.0", "semver": "^7.6.2", - "svelte-eslint-parser": "^0.41.1" + "svelte-eslint-parser": "^0.43.0" }, "engines": { "node": "^14.17.0 || >=16.0.0" @@ -6635,7 +6483,7 @@ }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0-0 || ^9.0.0-0", - "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.191" + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" }, "peerDependenciesMeta": { "svelte": { @@ -6647,9 +6495,7 @@ "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -6665,9 +6511,7 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, "license": "Apache-2.0", - "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -6679,7 +6523,6 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -6698,7 +6541,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, "license": "MIT", "peer": true }, @@ -6706,7 +6548,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.1.tgz", "integrity": "sha512-U9JedYYjCnadUlXk7e1Kr+aENQhtUaoaV9+gZm1T8LC/YBAPJx3NSPIAurFOC0U5vrdSevnUJS2/wUVxGwPhng==", - "dev": true + "license": "MIT" }, "node_modules/esniff": { "version": "2.0.1", @@ -6727,9 +6569,7 @@ "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -6746,7 +6586,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, "license": "BSD-3-Clause", "peer": true, "dependencies": { @@ -6756,13 +6595,21 @@ "node": ">=0.10" } }, + "node_modules/esrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.2.3.tgz", + "integrity": "sha512-ZlQmCCK+n7SGoqo7DnfKaP1sJZa49P01/dXzmjCASSo04p72w8EksT2NMK8CEX8DhKsfJXANioIw8VyHNsBfvQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1" + } + }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -6774,9 +6621,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "license": "BSD-2-Clause", - "peer": true, "engines": { "node": ">=4.0" } @@ -6785,6 +6630,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "devOptional": true, "dependencies": { "@types/estree": "^1.0.0" } @@ -6793,9 +6639,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, "license": "BSD-2-Clause", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -6899,7 +6743,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=12.0.0" } @@ -6927,7 +6771,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, "license": "MIT", "peer": true }, @@ -6972,7 +6815,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, "license": "MIT", "peer": true }, @@ -6980,7 +6822,6 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, "license": "MIT", "peer": true }, @@ -6997,7 +6838,6 @@ "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -7006,7 +6846,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -7058,7 +6897,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -7076,7 +6914,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -7092,7 +6929,6 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true, "license": "ISC", "peer": true }, @@ -7174,7 +7010,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, "peer": true }, "node_modules/fsevents": { @@ -7317,7 +7152,6 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, "license": "ISC", "peer": true, "dependencies": { @@ -7339,7 +7173,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -7351,7 +7184,6 @@ "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -7386,7 +7218,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", - "dev": true + "license": "MIT" }, "node_modules/globby": { "version": "11.1.0", @@ -7414,7 +7246,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true + "license": "MIT" }, "node_modules/gopd": { "version": "1.0.1", @@ -7442,7 +7274,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, "license": "MIT", "peer": true }, @@ -7479,7 +7310,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -7739,7 +7569,6 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, "license": "MIT", "peer": true, "engines": { @@ -7767,13 +7596,12 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.2.tgz", "integrity": "sha512-1NU7hWZDkV7hJ4PJ9dur9gTNQ4ePNPN4k9/0YhwjzykTi/+3Q5pF93YU5QoVj8BuOnhLgaY8gs0U2pj4kSYVcw==", - "dev": true + "devOptional": true }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -7791,7 +7619,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", - "dev": true, "license": "MIT", "funding": { "type": "github", @@ -7802,7 +7629,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, "license": "MIT", "peer": true, "engines": { @@ -7813,7 +7639,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -7822,7 +7648,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "peer": true, "dependencies": { "once": "^1.3.0", @@ -8106,7 +7931,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, "license": "MIT", "peer": true, "engines": { @@ -8120,13 +7944,20 @@ "dev": true }, "node_modules/is-reference": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", - "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "license": "MIT", "dependencies": { - "@types/estree": "*" + "@types/estree": "^1.0.6" } }, + "node_modules/is-reference/node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "license": "MIT" + }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -8340,19 +8171,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-source-maps": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", @@ -8482,11 +8300,16 @@ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -8574,7 +8397,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, "license": "MIT", "peer": true }, @@ -8582,7 +8404,6 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, "license": "MIT", "peer": true }, @@ -8590,7 +8411,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, "license": "MIT", "peer": true }, @@ -8633,7 +8453,6 @@ "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -8650,24 +8469,21 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/known-css-properties": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz", - "integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==", - "dev": true, - "license": "MIT", - "peer": true + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz", + "integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==", + "license": "MIT" }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -8682,7 +8498,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, "engines": { "node": ">=10" } @@ -8732,7 +8547,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -8749,7 +8563,7 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "license": "MIT" }, "node_modules/lodash.isequal": { "version": "4.5.0", @@ -8761,7 +8575,6 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, "license": "MIT", "peer": true }, @@ -8769,9 +8582,18 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", - "dev": true, + "devOptional": true, "license": "MIT" }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", @@ -8782,7 +8604,6 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", - "dev": true, "license": "MIT", "bin": { "lz-string": "bin/bin.js" @@ -8836,11 +8657,6 @@ "node": ">= 16" } }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -8913,7 +8729,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -8932,7 +8748,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -8985,7 +8800,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", - "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -9017,7 +8832,6 @@ "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, "funding": [ { "type": "github", @@ -9035,7 +8849,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, "license": "MIT", "peer": true }, @@ -9045,6 +8858,16 @@ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "license": "ISC" }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, "node_modules/node-addon-api": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", @@ -9326,7 +9149,6 @@ "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -9345,7 +9167,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -9362,7 +9183,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -9393,7 +9213,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -9440,11 +9259,20 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, "license": "MIT", "peer": true, "engines": { @@ -9455,7 +9283,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, "peer": true, "engines": { "node": ">=0.10.0" @@ -9512,7 +9339,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 14.16" @@ -9538,21 +9365,10 @@ "integrity": "sha512-jIDhaSc4Pk8go+kDYJJ2aS7Bg8Lxvir02NnGp9B1bdJpKiDH680ULl+Duh0jBkz8gV3PywEAWz9XNYqLcd6kVg==", "dev": true }, - "node_modules/periscopic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", - "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^3.0.0", - "is-reference": "^3.0.0" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -9723,7 +9539,6 @@ "version": "8.4.49", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", - "dev": true, "funding": [ { "type": "opencollective", @@ -9787,9 +9602,7 @@ "version": "3.1.4", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", - "dev": true, "license": "MIT", - "peer": true, "dependencies": { "lilconfig": "^2.0.5", "yaml": "^1.10.2" @@ -9843,9 +9656,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", - "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12.0" }, @@ -9861,7 +9672,6 @@ "version": "4.0.9", "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", - "dev": true, "funding": [ { "type": "opencollective", @@ -9877,7 +9687,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=12.0" }, @@ -9889,7 +9698,6 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -9909,7 +9717,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, "license": "MIT", "peer": true, "engines": { @@ -10052,6 +9859,32 @@ } } }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/process-warning": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", @@ -10068,7 +9901,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, "engines": { "node": ">=6" } @@ -10119,7 +9951,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, "funding": [ { "type": "github", @@ -10147,6 +9978,12 @@ "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", "license": "MIT" }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -10210,7 +10047,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, + "license": "MIT", "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -10223,7 +10060,7 @@ "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true + "license": "MIT" }, "node_modules/regexp.prototype.flags": { "version": "1.5.3", @@ -10266,7 +10103,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "license": "MIT", "peer": true, "engines": { @@ -10288,7 +10124,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -10299,7 +10134,6 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, "license": "ISC", "peer": true, "dependencies": { @@ -10316,7 +10150,6 @@ "version": "4.22.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", - "dev": true, "dependencies": { "@types/estree": "1.0.5" }, @@ -10357,7 +10190,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "funding": [ { "type": "github", @@ -10380,7 +10212,7 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, + "license": "MIT", "dependencies": { "mri": "^1.1.0" }, @@ -10465,7 +10297,7 @@ "version": "1.81.0", "resolved": "https://registry.npmjs.org/sass/-/sass-1.81.0.tgz", "integrity": "sha512-Q4fOxRfhmv3sqCLoGfvrC9pRV8btc0UtqL9mN6Yrv6Qi9ScL55CVH1vlPP863ISLEEMNLLuu9P+enCeGHlnzhA==", - "dev": true, + "devOptional": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", @@ -10485,7 +10317,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.0.tgz", "integrity": "sha512-mxIojEAQcuEvT/lyXq+jf/3cO/KoA6z4CeNDGGevTybECPOMFCnQy3OPahluUkbqgPNGw5Bi78UC7Po6Lhy+NA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "readdirp": "^4.0.1" @@ -10501,7 +10333,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.1.tgz", "integrity": "sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 14.16.0" @@ -10539,7 +10371,6 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -10549,10 +10380,10 @@ } }, "node_modules/set-cookie-parser": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", - "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", - "dev": true + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" }, "node_modules/set-function-length": { "version": "1.2.2", @@ -10633,7 +10464,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true, + "devOptional": true, "license": "ISC" }, "node_modules/signal-exit": { @@ -10667,7 +10498,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.0.tgz", "integrity": "sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==", - "dev": true, + "license": "MIT", "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", @@ -10728,7 +10559,7 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/std-env": { @@ -10889,7 +10720,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -10938,7 +10768,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, + "license": "MIT", "dependencies": { "min-indent": "^1.0.0" }, @@ -10950,7 +10780,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, "license": "MIT", "peer": true, "engines": { @@ -11060,24 +10889,15 @@ } }, "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/supports-color/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -11093,34 +10913,34 @@ } }, "node_modules/svelte": { - "version": "4.2.19", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.19.tgz", - "integrity": "sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==", + "version": "5.10.1", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.10.1.tgz", + "integrity": "sha512-JOBw4VStdoP/Iw93vrzGAOUWdV4Gk8hCuprvTwjbdMZG3GyYxbLogR56XqrO2M7E6PifoPkwDphXu0s49R2wvw==", + "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.1", - "@jridgewell/sourcemap-codec": "^1.4.15", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/estree": "^1.0.1", - "acorn": "^8.9.0", - "aria-query": "^5.3.0", - "axobject-query": "^4.0.0", - "code-red": "^1.0.3", - "css-tree": "^2.3.1", - "estree-walker": "^3.0.3", - "is-reference": "^3.0.1", + "@ampproject/remapping": "^2.3.0", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@types/estree": "^1.0.5", + "acorn": "^8.12.1", + "acorn-typescript": "^1.4.13", + "aria-query": "^5.3.1", + "axobject-query": "^4.1.0", + "esm-env": "^1.2.1", + "esrap": "^1.2.3", + "is-reference": "^3.0.3", "locate-character": "^3.0.0", - "magic-string": "^0.30.4", - "periscopic": "^3.1.0" + "magic-string": "^0.30.11", + "zimmerframe": "^1.1.2" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/svelte-check": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.1.1.tgz", "integrity": "sha512-NfaX+6Qtc8W/CyVGS/F7/XdiSSyXz+WGYA9ZWV3z8tso14V2vzjfXviKaTFEzB7g8TqfgO2FOzP6XT4ApSTUTw==", - "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "chokidar": "^4.0.1", @@ -11143,7 +10963,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "dev": true, + "license": "MIT", "dependencies": { "readdirp": "^4.0.1" }, @@ -11155,10 +10975,9 @@ } }, "node_modules/svelte-check/node_modules/fdir": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.3.0.tgz", - "integrity": "sha512-QOnuT+BOtivR77wYvCWHfGt9s4Pz1VIMbD463vegT5MLqNXy8rYFT/lPVEqf/bhYeT6qmqrNHhsX+rWwe3rOCQ==", - "dev": true, + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", + "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", "license": "MIT", "peerDependencies": { "picomatch": "^3 || ^4" @@ -11173,7 +10992,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, "license": "MIT", "optional": true, "peer": true, @@ -11185,10 +11003,10 @@ } }, "node_modules/svelte-check/node_modules/readdirp": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.1.tgz", - "integrity": "sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==", - "dev": true, + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "license": "MIT", "engines": { "node": ">= 14.16.0" }, @@ -11198,12 +11016,10 @@ } }, "node_modules/svelte-eslint-parser": { - "version": "0.41.1", - "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.41.1.tgz", - "integrity": "sha512-08ndI6zTghzI8SuJAFpvMbA/haPSGn3xz19pjre19yYMw8Nw/wQJ2PrZBI/L8ijGTgtkWCQQiLLy+Z1tfaCwNA==", - "dev": true, + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.43.0.tgz", + "integrity": "sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==", "license": "MIT", - "peer": true, "dependencies": { "eslint-scope": "^7.2.2", "eslint-visitor-keys": "^3.4.3", @@ -11218,7 +11034,7 @@ "url": "https://github.com/sponsors/ota-meshi" }, "peerDependencies": { - "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.191" + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" }, "peerDependenciesMeta": { "svelte": { @@ -11226,17 +11042,18 @@ } } }, - "node_modules/svelte-hmr": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.16.0.tgz", - "integrity": "sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^12.20 || ^14.13.1 || >= 16" + "node_modules/svelte2tsx": { + "version": "0.7.30", + "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.30.tgz", + "integrity": "sha512-sHXK/vw/sVJmFuPSq6zeKrtuZKvo0jJyEi8ybN0dfrqSYVvHu8zFbO0zQKAL8y/fYackYojH41EJGe6v8rd5fw==", + "license": "MIT", + "dependencies": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" }, "peerDependencies": { - "svelte": "^3.19.0 || ^4.0.0" + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", + "typescript": "^4.9.4 || ^5.0.0" } }, "node_modules/symbol-tree": { @@ -11442,7 +11259,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, "license": "MIT", "peer": true }, @@ -11480,7 +11296,7 @@ "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", - "dev": true, + "license": "MIT", "dependencies": { "globalyzer": "0.1.0", "globrex": "^0.1.2" @@ -11490,7 +11306,7 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/tinycolor2": { @@ -11504,13 +11320,13 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", - "dev": true + "devOptional": true }, "node_modules/tinypool": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz", "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": "^18.0.0 || >=20.0.0" @@ -11520,7 +11336,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", - "dev": true, + "devOptional": true, "engines": { "node": ">=14.0.0" } @@ -11529,7 +11345,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=14.0.0" @@ -11586,7 +11402,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -11673,7 +11489,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -11687,7 +11502,6 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, "license": "(MIT OR CC0-1.0)", "peer": true, "engines": { @@ -11791,7 +11605,6 @@ "version": "5.4.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "dev": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -12120,7 +11933,7 @@ "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "devOptional": true }, "node_modules/unenv": { "version": "1.10.0", @@ -12270,7 +12083,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "license": "BSD-2-Clause", "peer": true, "dependencies": { @@ -12308,7 +12120,6 @@ "version": "5.4.10", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", - "dev": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -12367,7 +12178,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.8.tgz", "integrity": "sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "cac": "^6.7.14", @@ -12390,7 +12201,7 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -12408,16 +12219,20 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/vitefu": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz", - "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==", - "dev": true, + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.4.tgz", + "integrity": "sha512-y6zEE3PQf6uu/Mt6DTJ9ih+kyJLr4XcSgHR2zUkM8SWDhuixEJxfJ6CZGMHh1Ec3vPLoEA0IHU5oWzVqw8ulow==", + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*" + ], "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" }, "peerDependenciesMeta": { "vite": { @@ -12429,7 +12244,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.8.tgz", "integrity": "sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@vitest/expect": "2.1.8", @@ -12509,7 +12324,7 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -12527,7 +12342,7 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/w3c-xmlserializer": { @@ -12673,7 +12488,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "siginfo": "^2.0.0", @@ -12690,7 +12505,6 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, "license": "MIT", "peer": true, "engines": { @@ -12883,9 +12697,7 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, "license": "ISC", - "peer": true, "engines": { "node": ">= 6" } @@ -12894,7 +12706,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, "license": "MIT", "peer": true, "engines": { @@ -12904,6 +12715,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zimmerframe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", + "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==", + "license": "MIT" + }, "node_modules/zod": { "version": "3.23.8", "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", diff --git a/package.json b/package.json index 76f46156fc..93bd57b875 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@dfinity/candid": "^2.1.2", "@dfinity/ckbtc": "^3.1.0", "@dfinity/cketh": "^3.3.1", - "@dfinity/gix-components": "^4.8.0-next-2024-11-04", + "@dfinity/gix-components": "file:../gix-components/dfinity-gix-components-5.0.0.tgz", "@dfinity/ic-management": "^5.2.1", "@dfinity/ledger-icp": "^2.6.0", "@dfinity/ledger-icrc": "^2.6.0", @@ -65,11 +65,20 @@ "@dfinity/verifiable-credentials": "^0.0.4", "@junobuild/analytics": "^0.0.28", "@metamask/detect-provider": "^2.0.0", + "@sveltejs/adapter-static": "^3.0.6", + "@sveltejs/kit": "^2.10.1", + "@sveltejs/package": "^2.3.7", + "@sveltejs/vite-plugin-svelte": "^4.0.1", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/svelte": "^5.2.6", "@walletconnect/web3wallet": "1.14.0", "alchemy-sdk": "3.4.1", "buffer": "^6.0.3", + "eslint-plugin-svelte": "^2.46.1", "ethers": "^5.7.0", "idb-keyval": "^6.2.1", + "svelte": "^5.10.1", + "svelte-check": "^4.1.1", "zod": "^3.23.8" }, "devDependencies": { @@ -78,11 +87,6 @@ "@dfinity/internet-identity-playwright": "^0.0.4", "@playwright/test": "^1.49.0", "@rollup/plugin-inject": "^5.0.5", - "@sveltejs/adapter-static": "^3.0.6", - "@sveltejs/kit": "^2.9.0", - "@sveltejs/vite-plugin-svelte": "^3.1.2", - "@testing-library/jest-dom": "^6.6.3", - "@testing-library/svelte": "^5.2.6", "@types/dom-view-transitions": "^1.0.5", "@types/node": "^20.14.9", "@vitest/coverage-v8": "^2.1.8", @@ -99,8 +103,6 @@ "prettier-plugin-svelte": "^3.3.2", "prettier-plugin-tailwindcss": "^0.6.9", "sass": "^1.81.0", - "svelte": "^4.2.19", - "svelte-check": "^4.1.1", "tailwindcss": "^3.4.15", "tslib": "^2.8.1", "typescript": "^5.4.5", From 8f1bbb5873976df3ca9b731b9b275d3323aa7e63 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Wed, 11 Dec 2024 08:10:57 +0100 Subject: [PATCH 02/31] build: use temporary local gix-cmp --- dfinity-gix-components-5.0.0.tgz | Bin 0 -> 97307 bytes package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 dfinity-gix-components-5.0.0.tgz diff --git a/dfinity-gix-components-5.0.0.tgz b/dfinity-gix-components-5.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..bc2aa8252cfdcf128a39b7ae14c040e79c98e56a GIT binary patch literal 97307 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 KP9Q){@P7cR0o-^1 literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json index 556531e9d6..f907ec628a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "@dfinity/candid": "^2.1.2", "@dfinity/ckbtc": "^3.1.0", "@dfinity/cketh": "^3.3.1", - "@dfinity/gix-components": "file:../gix-components/dfinity-gix-components-5.0.0.tgz", + "@dfinity/gix-components": "file:dfinity-gix-components-5.0.0.tgz", "@dfinity/ic-management": "^5.2.1", "@dfinity/ledger-icp": "^2.6.0", "@dfinity/ledger-icrc": "^2.6.0", @@ -287,7 +287,7 @@ }, "node_modules/@dfinity/gix-components": { "version": "5.0.0", - "resolved": "file:../gix-components/dfinity-gix-components-5.0.0.tgz", + "resolved": "file:dfinity-gix-components-5.0.0.tgz", "integrity": "sha512-HM6z8ukCZrhla3AmI5M++UyWCb+xUpi5RCQ5BRDtEF8506Hrrx3V1rtuRIjlyOli/H9veqQWqiO3Srhp5xtFtQ==", "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 93bd57b875..6ac9874c33 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@dfinity/candid": "^2.1.2", "@dfinity/ckbtc": "^3.1.0", "@dfinity/cketh": "^3.3.1", - "@dfinity/gix-components": "file:../gix-components/dfinity-gix-components-5.0.0.tgz", + "@dfinity/gix-components": "file:dfinity-gix-components-5.0.0.tgz", "@dfinity/ic-management": "^5.2.1", "@dfinity/ledger-icp": "^2.6.0", "@dfinity/ledger-icrc": "^2.6.0", From ee8d55e6eb57664af91de93da673c2c3fd0472c7 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Wed, 11 Dec 2024 08:23:50 +0100 Subject: [PATCH 03/31] fix: no span in option --- src/frontend/src/eth/components/send/SendNetwork.svelte | 2 +- .../src/lib/components/manage/AddTokenByNetwork.svelte | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/frontend/src/eth/components/send/SendNetwork.svelte b/src/frontend/src/eth/components/send/SendNetwork.svelte index 9ab5ab3597..1d85aa237d 100644 --- a/src/frontend/src/eth/components/send/SendNetwork.svelte +++ b/src/frontend/src/eth/components/send/SendNetwork.svelte @@ -78,7 +78,7 @@
{$i18n.send.placeholder.select_network} {ETHEREUM_NETWORK.name} diff --git a/src/frontend/src/lib/components/manage/AddTokenByNetwork.svelte b/src/frontend/src/lib/components/manage/AddTokenByNetwork.svelte index 46242d4234..c20676765d 100644 --- a/src/frontend/src/lib/components/manage/AddTokenByNetwork.svelte +++ b/src/frontend/src/lib/components/manage/AddTokenByNetwork.svelte @@ -80,8 +80,7 @@
{$i18n.tokens.manage.placeholder.select_network} {#each availableNetworks as network} {network.name} From b7152b1f5f7d947440d5c5da544cd5ccca78fb93 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Wed, 11 Dec 2024 08:42:39 +0100 Subject: [PATCH 04/31] fix(frontend): button authenticate animation selector --- .../icons/IconAstronautArrow.svelte | 21 --------------- .../components/ui/ButtonAuthenticate.svelte | 27 ++++++++++++++++++- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/src/frontend/src/lib/components/icons/IconAstronautArrow.svelte b/src/frontend/src/lib/components/icons/IconAstronautArrow.svelte index 9bb40d4ed9..1066966add 100644 --- a/src/frontend/src/lib/components/icons/IconAstronautArrow.svelte +++ b/src/frontend/src/lib/components/icons/IconAstronautArrow.svelte @@ -113,30 +113,9 @@ transition-delay: 0.6s; } - button:hover .svg-arrow-go path, - button:hover .svg-arrow-go line { - stroke-dashoffset: 20; - transition-delay: 0s; - } - - button:hover .svg-arrow-go line { - transition-delay: 0.15s; - } - .svg-vizor path { transform: translateY(-5px); transition: transform 0.5s cubic-bezier(0.3, 0.7, 0, 1); transition-delay: 0.2s; } - - button:hover .svg-vizor path { - transform: translateY(0); - } - - button:hover .svg-infinity path { - stroke-dasharray: 20px; - stroke-dashoffset: 0; - transition-delay: 0.6s; - transition-duration: 1s; - } diff --git a/src/frontend/src/lib/components/ui/ButtonAuthenticate.svelte b/src/frontend/src/lib/components/ui/ButtonAuthenticate.svelte index 76ea72952b..dfa7236de0 100644 --- a/src/frontend/src/lib/components/ui/ButtonAuthenticate.svelte +++ b/src/frontend/src/lib/components/ui/ButtonAuthenticate.svelte @@ -7,10 +7,35 @@ + + From 82fd385866f91eb52c7e74f3d5832a8a077da03a Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Wed, 11 Dec 2024 08:45:10 +0100 Subject: [PATCH 05/31] fix(frontend): self-closing HTML tags for non-void elements are ambiguous --- src/frontend/src/lib/components/onramper/OnramperWidget.svelte | 2 +- src/frontend/src/lib/components/ui/StaticSteps.svelte | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/frontend/src/lib/components/onramper/OnramperWidget.svelte b/src/frontend/src/lib/components/onramper/OnramperWidget.svelte index 073bff2e7b..a6f6f6e92b 100644 --- a/src/frontend/src/lib/components/onramper/OnramperWidget.svelte +++ b/src/frontend/src/lib/components/onramper/OnramperWidget.svelte @@ -71,4 +71,4 @@ width="100%" allow="accelerometer; autoplay; camera; gyroscope; payment; microphone" sandbox="allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts" -/> +> diff --git a/src/frontend/src/lib/components/ui/StaticSteps.svelte b/src/frontend/src/lib/components/ui/StaticSteps.svelte index 2982a52abf..ed27a5b287 100644 --- a/src/frontend/src/lib/components/ui/StaticSteps.svelte +++ b/src/frontend/src/lib/components/ui/StaticSteps.svelte @@ -19,7 +19,7 @@

{text}

-
+
{#if nonNullish(progressLabel) && state === 'in_progress'} {progressLabel} From 80fd1049e2ad08fa97a5ef2e5522b157327fa8ae Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Wed, 11 Dec 2024 08:45:42 +0100 Subject: [PATCH 06/31] chore: fmt --- src/frontend/src/lib/components/ui/StaticSteps.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/src/lib/components/ui/StaticSteps.svelte b/src/frontend/src/lib/components/ui/StaticSteps.svelte index ed27a5b287..2b9deb7aa6 100644 --- a/src/frontend/src/lib/components/ui/StaticSteps.svelte +++ b/src/frontend/src/lib/components/ui/StaticSteps.svelte @@ -19,7 +19,7 @@

{text}

-
+
{#if nonNullish(progressLabel) && state === 'in_progress'} {progressLabel} From 8d914d3f7066944f8cc70bfe0ca07fef14a653bd Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Wed, 11 Dec 2024 09:10:34 +0100 Subject: [PATCH 07/31] feat: adapt cmp type --- src/frontend/src/lib/components/signer/SignerAlert.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/frontend/src/lib/components/signer/SignerAlert.svelte b/src/frontend/src/lib/components/signer/SignerAlert.svelte index d759f9d9d0..053dbeacb8 100644 --- a/src/frontend/src/lib/components/signer/SignerAlert.svelte +++ b/src/frontend/src/lib/components/signer/SignerAlert.svelte @@ -1,11 +1,11 @@ From 969d17448e07d13225c285c06a0545b88762e3ad Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Wed, 11 Dec 2024 09:21:03 +0100 Subject: [PATCH 08/31] feat(frontend): listener templating --- .../src/lib/components/core/Listener.svelte | 23 ++++++++----------- .../src/lib/components/core/NoListener.svelte | 6 ----- 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/src/frontend/src/lib/components/core/Listener.svelte b/src/frontend/src/lib/components/core/Listener.svelte index caa03d84e7..e26ce49ad1 100644 --- a/src/frontend/src/lib/components/core/Listener.svelte +++ b/src/frontend/src/lib/components/core/Listener.svelte @@ -1,6 +1,5 @@ - - - +{#if isNullish(token) || $authNotSignedIn} + +{:else if isNetworkIdICP(token.network.id)} + +{:else if isNetworkIdBitcoin(token.network.id)} + +{:else} + +{/if} diff --git a/src/frontend/src/lib/components/core/NoListener.svelte b/src/frontend/src/lib/components/core/NoListener.svelte index d8d5ba3a36..4fa864ce7a 100644 --- a/src/frontend/src/lib/components/core/NoListener.svelte +++ b/src/frontend/src/lib/components/core/NoListener.svelte @@ -1,7 +1 @@ - - From 35c85c4ca92cf85c802d4aa9c078151df7f7da12 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Wed, 11 Dec 2024 09:25:38 +0100 Subject: [PATCH 09/31] feat: reintroduce slot --- .../src/lib/components/core/Listener.svelte | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/frontend/src/lib/components/core/Listener.svelte b/src/frontend/src/lib/components/core/Listener.svelte index e26ce49ad1..288eed82c9 100644 --- a/src/frontend/src/lib/components/core/Listener.svelte +++ b/src/frontend/src/lib/components/core/Listener.svelte @@ -11,11 +11,19 @@ {#if isNullish(token) || $authNotSignedIn} - + + + {:else if isNetworkIdICP(token.network.id)} - + + + {:else if isNetworkIdBitcoin(token.network.id)} - + + + {:else} - + + + {/if} From e4083b47937837695d1cbaef67a95c138a4212df Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Wed, 11 Dec 2024 09:41:13 +0100 Subject: [PATCH 10/31] feat: convert steps type --- src/frontend/src/lib/components/ui/InProgress.svelte | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/frontend/src/lib/components/ui/InProgress.svelte b/src/frontend/src/lib/components/ui/InProgress.svelte index d6384c473d..19247f1e78 100644 --- a/src/frontend/src/lib/components/ui/InProgress.svelte +++ b/src/frontend/src/lib/components/ui/InProgress.svelte @@ -1,6 +1,5 @@ From 34501a964706861125c4be5a6d3c70c1eb094160 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Wed, 11 Dec 2024 10:10:38 +0100 Subject: [PATCH 12/31] feat: use Component --- .../src/icp/components/transactions/IcTransactions.svelte | 4 ++-- src/frontend/src/lib/components/tokens/TokenLogo.svelte | 4 ++-- .../src/lib/components/transactions/Transaction.svelte | 4 ++-- src/frontend/src/lib/types/listener.ts | 4 ++-- src/frontend/src/lib/types/transaction.ts | 4 ++-- src/frontend/src/lib/utils/transaction.utils.ts | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/frontend/src/icp/components/transactions/IcTransactions.svelte b/src/frontend/src/icp/components/transactions/IcTransactions.svelte index da92e37f22..40b045bd33 100644 --- a/src/frontend/src/icp/components/transactions/IcTransactions.svelte +++ b/src/frontend/src/icp/components/transactions/IcTransactions.svelte @@ -1,6 +1,6 @@ + diff --git a/src/frontend/src/lib/components/core/Listener.svelte b/src/frontend/src/lib/components/core/Listener.svelte index 288eed82c9..9dfe9e94c7 100644 --- a/src/frontend/src/lib/components/core/Listener.svelte +++ b/src/frontend/src/lib/components/core/Listener.svelte @@ -19,7 +19,7 @@ {:else if isNetworkIdBitcoin(token.network.id)} - + {:else} diff --git a/src/frontend/src/lib/types/listener.ts b/src/frontend/src/lib/types/listener.ts index e304069f9b..a81025a549 100644 --- a/src/frontend/src/lib/types/listener.ts +++ b/src/frontend/src/lib/types/listener.ts @@ -1,5 +1,6 @@ +import BitcoinListener from '$btc/components/core/BitcoinListener.svelte'; +import EthListener from '$eth/components/core/EthListener.svelte'; import type { Token } from '$lib/types/token'; -import type { Component } from 'svelte'; export interface WalletWorker { start: () => void; @@ -11,5 +12,5 @@ export type InitWalletWorkerFn = (params: { token: Token }) => Promise Date: Wed, 11 Dec 2024 10:42:11 +0100 Subject: [PATCH 14/31] feat: use const --- src/frontend/src/btc/components/core/BitcoinListener.svelte | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/frontend/src/btc/components/core/BitcoinListener.svelte b/src/frontend/src/btc/components/core/BitcoinListener.svelte index 2c3b04ccfa..f97d4d6319 100644 --- a/src/frontend/src/btc/components/core/BitcoinListener.svelte +++ b/src/frontend/src/btc/components/core/BitcoinListener.svelte @@ -1,9 +1,8 @@ From e6e7aa870ec3a642977b1d3abed7275a3cc602d0 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Wed, 11 Dec 2024 10:47:43 +0100 Subject: [PATCH 15/31] feat: use typeof --- .../lib/components/receive/ReceiveAddressModal.svelte | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/frontend/src/lib/components/receive/ReceiveAddressModal.svelte b/src/frontend/src/lib/components/receive/ReceiveAddressModal.svelte index 44de5743eb..3a4b18fcce 100644 --- a/src/frontend/src/lib/components/receive/ReceiveAddressModal.svelte +++ b/src/frontend/src/lib/components/receive/ReceiveAddressModal.svelte @@ -1,15 +1,22 @@ {#if transactions.length > 0}
{date} - {#each transactions as transaction, index (`${transaction.id}-${index}`)} - {@const { component, token } = transaction} + {#each transactions as transactionUi, index (`${transactionUi.transaction.id}-${index}`)} + {@const { component, token, transaction } = transactionUi}
- + {#if component === 'bitcoin'} + + {:else if component === 'ethereum'} + + {:else} + + {/if}
{/each}
diff --git a/src/frontend/src/lib/types/transaction.ts b/src/frontend/src/lib/types/transaction.ts index eeb39fa4a9..67155acd6c 100644 --- a/src/frontend/src/lib/types/transaction.ts +++ b/src/frontend/src/lib/types/transaction.ts @@ -1,8 +1,5 @@ -import BtcTransaction from '$btc/components/transactions/BtcTransaction.svelte'; import type { BtcTransactionUi } from '$btc/types/btc'; -import EthTransactionCmp from '$eth/components/transactions/EthTransaction.svelte'; import type { EthTransactionUi } from '$eth/types/eth-transaction'; -import IcTransaction from '$icp/components/transactions/IcTransaction.svelte'; import type { IcTransactionUi } from '$icp/types/ic-transaction'; import type { TransactionStatusSchema, @@ -38,11 +35,21 @@ export type TransactionUiCommon = Pick = Record; +export type TransactionsUiDateGroup = Record< + string, + [T, ...T[]] +>; diff --git a/src/frontend/src/lib/utils/transaction.utils.ts b/src/frontend/src/lib/utils/transaction.utils.ts index 821d8c86f9..88a91fb93a 100644 --- a/src/frontend/src/lib/utils/transaction.utils.ts +++ b/src/frontend/src/lib/utils/transaction.utils.ts @@ -9,6 +9,7 @@ import type { ModalData } from '$lib/stores/modal.store'; import type { OptionToken } from '$lib/types/token'; import type { AnyTransactionUi, + AnyTransactionUiWithCmp, Transaction, TransactionStatus, TransactionsUiDateGroup, @@ -53,19 +54,19 @@ export const mapTransactionIcon = ({ * @param transactions - List of transactions to group. * @returns Object where the keys are the date and the values are the transactions for that date. */ -export const groupTransactionsByDate = ( +export const groupTransactionsByDate = ( transactions: T[] ): TransactionsUiDateGroup => { const currentDate = new Date(); const undefinedKey = get(i18n).transaction.label.no_date_available; return transactions.reduce>((acc, transaction) => { - if (isNullish(transaction.timestamp)) { + if (isNullish(transaction.transaction.timestamp)) { return { ...acc, [undefinedKey]: [...(acc['undefined'] ?? []), transaction] }; } const date = formatSecondsToNormalizedDate({ - seconds: normalizeTimestampToSeconds(transaction.timestamp), + seconds: normalizeTimestampToSeconds(transaction.transaction.timestamp), currentDate }); diff --git a/src/frontend/src/lib/utils/transactions.utils.ts b/src/frontend/src/lib/utils/transactions.utils.ts index c0f25a94e7..1c503149fb 100644 --- a/src/frontend/src/lib/utils/transactions.utils.ts +++ b/src/frontend/src/lib/utils/transactions.utils.ts @@ -1,13 +1,10 @@ -import BtcTransaction from '$btc/components/transactions/BtcTransaction.svelte'; import type { BtcTransactionUi } from '$btc/types/btc'; import { ETHEREUM_NETWORK_ID, SEPOLIA_NETWORK_ID } from '$env/networks.env'; import { ETHEREUM_TOKEN_ID, SEPOLIA_TOKEN_ID } from '$env/tokens/tokens.eth.env'; -import EthTransaction from '$eth/components/transactions/EthTransaction.svelte'; import type { EthTransactionsData } from '$eth/stores/eth-transactions.store'; import { mapEthTransactionUi } from '$eth/utils/transactions.utils'; import type { CkEthMinterInfoData } from '$icp-eth/stores/cketh.store'; import { toCkMinterInfoAddresses } from '$icp-eth/utils/cketh.utils'; -import IcTransaction from '$icp/components/transactions/IcTransaction.svelte'; import type { BtcStatusesData } from '$icp/stores/btc.store'; import type { IcTransactionUi } from '$icp/types/ic-transaction'; import { normalizeTimestampToSeconds } from '$icp/utils/date.utils'; @@ -16,7 +13,7 @@ import type { CertifiedStoreData } from '$lib/stores/certified.store'; import type { TransactionsData } from '$lib/stores/transactions.store'; import type { OptionEthAddress } from '$lib/types/address'; import type { Token } from '$lib/types/token'; -import type { AllTransactionUi, AnyTransactionUi } from '$lib/types/transaction'; +import type { AllTransactionUiWithCmp, AnyTransactionUi } from '$lib/types/transaction'; import { isNetworkIdBTCMainnet, isNetworkIdEthereum, @@ -53,7 +50,7 @@ export const mapAllTransactionsUi = ({ $ethAddress: OptionEthAddress; $icTransactions: CertifiedStoreData>; $btcStatuses: CertifiedStoreData; -}): AllTransactionUi[] => { +}): AllTransactionUiWithCmp[] => { const ckEthMinterInfoAddressesMainnet = toCkMinterInfoAddresses({ minterInfo: $ckEthMinterInfo?.[ETHEREUM_TOKEN_ID], networkId: ETHEREUM_NETWORK_ID @@ -64,7 +61,7 @@ export const mapAllTransactionsUi = ({ networkId: SEPOLIA_NETWORK_ID }); - return tokens.reduce((acc, token) => { + return tokens.reduce((acc, token) => { const { id: tokenId, network: { id: networkId } @@ -78,9 +75,9 @@ export const mapAllTransactionsUi = ({ return [ ...acc, ...($btcTransactions[tokenId] ?? []).map(({ data: transaction }) => ({ - ...transaction, + transaction, token, - component: BtcTransaction + component: 'bitcoin' as const })) ]; } @@ -92,7 +89,7 @@ export const mapAllTransactionsUi = ({ return [ ...acc, ...($ethTransactions[tokenId] ?? []).map((transaction) => ({ - ...mapEthTransactionUi({ + transaction: mapEthTransactionUi({ transaction, ckMinterInfoAddresses: isSepoliaNetwork ? ckEthMinterInfoAddressesSepolia @@ -100,7 +97,7 @@ export const mapAllTransactionsUi = ({ $ethAddress: $ethAddress }), token, - component: EthTransaction + component: 'ethereum' as const })) ]; } @@ -115,13 +112,13 @@ export const mapAllTransactionsUi = ({ return [ ...acc, ...($icTransactions[tokenId] ?? []).map((transaction) => ({ - ...extendIcTransaction({ + transaction: extendIcTransaction({ transaction, token, btcStatuses: $btcStatuses?.[tokenId] ?? undefined }).data, token, - component: IcTransaction + component: 'ic' as const })) ]; } diff --git a/src/frontend/src/tests/lib/components/transactions/TransactionsDateGroup.spec.ts b/src/frontend/src/tests/lib/components/transactions/TransactionsDateGroup.spec.ts index 599c13f8ff..0cc745710c 100644 --- a/src/frontend/src/tests/lib/components/transactions/TransactionsDateGroup.spec.ts +++ b/src/frontend/src/tests/lib/components/transactions/TransactionsDateGroup.spec.ts @@ -1,9 +1,10 @@ -import BtcTransaction from '$btc/components/transactions/BtcTransaction.svelte'; import { BTC_MAINNET_TOKEN } from '$env/tokens/tokens.btc.env'; import { ETHEREUM_TOKEN } from '$env/tokens/tokens.eth.env'; -import EthTransaction from '$eth/components/transactions/EthTransaction.svelte'; import TransactionsDateGroup from '$lib/components/transactions/TransactionsDateGroup.svelte'; -import type { AllTransactionUi, AllTransactionUiNonEmptyList } from '$lib/types/transaction'; +import type { + AllTransactionUiWithCmp, + AllTransactionUiWithCmpNonEmptyList +} from '$lib/types/transaction'; import { createMockBtcTransactionsUi } from '$tests/mocks/btc-transactions.mock'; import { createMockEthTransactions } from '$tests/mocks/eth-transactions.mock'; import { render } from '@testing-library/svelte'; @@ -14,30 +15,32 @@ describe('TransactionsDateGroup', () => { const todayTimestamp = new Date().getTime(); - const mockBtcTransactionsUi: AllTransactionUi[] = createMockBtcTransactionsUi( + const mockBtcTransactionsUi: AllTransactionUiWithCmp[] = createMockBtcTransactionsUi( btcTransactionsNumber ).map((transaction) => ({ - ...transaction, + transaction, timestamp: BigInt(todayTimestamp), token: BTC_MAINNET_TOKEN, - component: BtcTransaction + component: 'bitcoin' })); - const mockEthTransactionsUi: AllTransactionUi[] = createMockEthTransactions( + const mockEthTransactionsUi: AllTransactionUiWithCmp[] = createMockEthTransactions( ethTransactionsNumber ).map((transaction) => ({ - ...transaction, + transaction: { + ...transaction, + id: transaction.hash, + uiType: 'send' + }, timestamp: todayTimestamp, - id: transaction.hash, - uiType: 'send', token: ETHEREUM_TOKEN, - component: EthTransaction + component: 'ethereum' })); const mockTransactions = [ ...mockBtcTransactionsUi, ...mockEthTransactionsUi - ] as AllTransactionUiNonEmptyList; + ] as AllTransactionUiWithCmpNonEmptyList; it('should render the date', () => { const { getByText } = render(TransactionsDateGroup, { diff --git a/src/frontend/src/tests/lib/utils/transaction.utils.spec.ts b/src/frontend/src/tests/lib/utils/transaction.utils.spec.ts index 44c5a0fe50..ad70a47db3 100644 --- a/src/frontend/src/tests/lib/utils/transaction.utils.spec.ts +++ b/src/frontend/src/tests/lib/utils/transaction.utils.spec.ts @@ -8,7 +8,7 @@ import IconSend from '$lib/components/icons/IconSend.svelte'; import { MILLISECONDS_IN_SECOND, NANO_SECONDS_IN_MILLISECOND } from '$lib/constants/app.constants'; import { TransactionStatusSchema, TransactionTypeSchema } from '$lib/schema/transaction.schema'; import type { ModalData } from '$lib/stores/modal.store'; -import type { AnyTransactionUi } from '$lib/types/transaction'; +import type { AnyTransactionUiWithCmp } from '$lib/types/transaction'; import { groupTransactionsByDate, mapTransactionIcon, @@ -16,7 +16,7 @@ import { } from '$lib/utils/transaction.utils'; import en from '$tests/mocks/i18n.mock'; import { createMockIcTransactionsUi } from '$tests/mocks/ic-transactions.mock'; -import { createTransactionsUi } from '$tests/mocks/transactions.mock'; +import { createTransactionsUiWithCmp } from '$tests/mocks/transactions.mock'; describe('transaction.utils', () => { describe('mapIcon', () => { @@ -72,12 +72,15 @@ describe('transaction.utils', () => { }); describe('groupTransactionsByDate', () => { - const baseTransactions: AnyTransactionUi[] = createTransactionsUi(5); + const baseTransactions = createTransactionsUiWithCmp(5); - const mockTransactions = baseTransactions.map((transaction, index) => ({ - ...transaction, - timestamp: index + 1 - })) as AnyTransactionUi[]; + const mockTransactions = baseTransactions.map(({ transaction, ...rest }, index) => ({ + transaction: { + ...transaction, + timestamp: index + 1 + }, + ...rest + })) as AnyTransactionUiWithCmp[]; const nowInMilliseconds = Math.floor(Date.now() / MILLISECONDS_IN_SECOND) * MILLISECONDS_IN_SECOND; @@ -106,12 +109,27 @@ describe('transaction.utils', () => { it('should group transactions by formatted date when they are not unique', () => { const transactions = [ - { ...mockTransactions[0], timestamp: 1 }, - { ...mockTransactions[1], timestamp: 1 }, - { ...mockTransactions[2], timestamp: 1 }, - { ...mockTransactions[3], timestamp: 2 }, - { ...mockTransactions[4], timestamp: 2 } - ] as AnyTransactionUi[]; + { + transaction: { ...mockTransactions[0].transaction, timestamp: 1 }, + component: mockTransactions[0].component + }, + { + transaction: { ...mockTransactions[1].transaction, timestamp: 1 }, + component: mockTransactions[1].component + }, + { + transaction: { ...mockTransactions[2].transaction, timestamp: 1 }, + component: mockTransactions[2].component + }, + { + transaction: { ...mockTransactions[3].transaction, timestamp: 2 }, + component: mockTransactions[3].component + }, + { + transaction: { ...mockTransactions[4].transaction, timestamp: 2 }, + component: mockTransactions[4].component + } + ] as AnyTransactionUiWithCmp[]; expect(groupTransactionsByDate(transactions)).toEqual({ '1': transactions.slice(0, 3), @@ -121,7 +139,13 @@ describe('transaction.utils', () => { it('should handle transactions without timestamps', () => { const undefinedKey = en.transaction.label.no_date_available; - const transactions = [mockTransactions[0], { ...mockTransactions[1], timestamp: undefined }]; + const transactions = [ + mockTransactions[0], + { + transaction: { ...mockTransactions[1], timestamp: undefined }, + component: mockTransactions[1].component + } + ] as AnyTransactionUiWithCmp[]; expect(groupTransactionsByDate(transactions)).toEqual({ '1': [transactions[0]], @@ -136,8 +160,11 @@ describe('transaction.utils', () => { it('should handle timestamps provided in nanoseconds', () => { const transactions = [ mockTransactions[0], - { ...mockTransactions[1], timestamp: nowInNanoSeconds } - ] as AnyTransactionUi[]; + { + transaction: { ...mockTransactions[1].transaction, timestamp: nowInNanoSeconds }, + component: mockTransactions[1].component + } + ] as AnyTransactionUiWithCmp[]; expect(groupTransactionsByDate(transactions)).toEqual({ [1]: [transactions[0]], @@ -148,8 +175,11 @@ describe('transaction.utils', () => { it('should handle timestamps provided in milliseconds', () => { const transactions = [ mockTransactions[0], - { ...mockTransactions[1], timestamp: nowInMilliseconds } - ] as AnyTransactionUi[]; + { + transaction: { ...mockTransactions[1].transaction, timestamp: nowInMilliseconds }, + component: mockTransactions[1].component + } + ] as AnyTransactionUiWithCmp[]; expect(groupTransactionsByDate(transactions)).toEqual({ '1': [transactions[0]], diff --git a/src/frontend/src/tests/lib/utils/transactions.utils.spec.ts b/src/frontend/src/tests/lib/utils/transactions.utils.spec.ts index 283132c8ae..8b4f475aac 100644 --- a/src/frontend/src/tests/lib/utils/transactions.utils.spec.ts +++ b/src/frontend/src/tests/lib/utils/transactions.utils.spec.ts @@ -1,4 +1,3 @@ -import BtcTransaction from '$btc/components/transactions/BtcTransaction.svelte'; import type { BtcTransactionUi } from '$btc/types/btc'; import * as networkEnv from '$env/networks.env'; import { ETHEREUM_NETWORK_ID, SEPOLIA_NETWORK_ID } from '$env/networks.env'; @@ -16,14 +15,16 @@ import { SEPOLIA_TOKEN_ID } from '$env/tokens/tokens.eth.env'; import { ICP_TOKEN, ICP_TOKEN_ID } from '$env/tokens/tokens.icp.env'; -import EthTransaction from '$eth/components/transactions/EthTransaction.svelte'; import type { EthTransactionsData } from '$eth/stores/eth-transactions.store'; import type { EthTransactionType } from '$eth/types/eth-transaction'; -import IcTransaction from '$icp/components/transactions/IcTransaction.svelte'; import type { IcTransactionUi } from '$icp/types/ic-transaction'; import type { CertifiedStoreData } from '$lib/stores/certified.store'; import type { TransactionsData } from '$lib/stores/transactions.store'; -import type { AllTransactionUi, AnyTransactionUi, Transaction } from '$lib/types/transaction'; +import type { + AllTransactionUiWithCmp, + AnyTransactionUi, + Transaction +} from '$lib/types/transaction'; import { mapAllTransactionsUi, sortTransactions } from '$lib/utils/transactions.utils'; import { createMockBtcTransactionsUi } from '$tests/mocks/btc-transactions.mock'; import { createMockEthTransactions } from '$tests/mocks/eth-transactions.mock'; @@ -65,61 +66,67 @@ describe('transactions.utils', () => { [ICP_TOKEN_ID]: mockIcTransactionsUi.map((data) => ({ data, certified })) }; - const expectedBtcMainnetTransactions: AllTransactionUi[] = [ + const expectedBtcMainnetTransactions: AllTransactionUiWithCmp[] = [ ...mockBtcMainnetTransactions.map((transaction) => ({ - ...transaction, + transaction, token: BTC_MAINNET_TOKEN, - component: BtcTransaction + component: 'bitcoin' as const })) ]; const uiType = 'receive' as EthTransactionType; - const expectedEthMainnetTransactions: AllTransactionUi[] = [ + const expectedEthMainnetTransactions: AllTransactionUiWithCmp[] = [ ...mockEthMainnetTransactions.map((transaction) => ({ - ...transaction, - id: transaction.hash, - uiType, + transaction: { + ...transaction, + id: transaction.hash, + uiType + }, token: ETHEREUM_TOKEN, - component: EthTransaction + component: 'ethereum' as const })) ]; - const expectedSepoliaTransactions: AllTransactionUi[] = [ + const expectedSepoliaTransactions: AllTransactionUiWithCmp[] = [ ...mockSepoliaTransactions.map((transaction) => ({ - ...transaction, - id: transaction.hash, - uiType, + transaction: { + ...transaction, + id: transaction.hash, + uiType + }, token: SEPOLIA_TOKEN, - component: EthTransaction + component: 'ethereum' as const })) ]; - const expectedErc20Transactions: AllTransactionUi[] = [ + const expectedErc20Transactions: AllTransactionUiWithCmp[] = [ ...mockErc20Transactions.map((transaction) => ({ - ...transaction, - id: transaction.hash, - uiType, + transaction: { + ...transaction, + id: transaction.hash, + uiType + }, token: PEPE_TOKEN, - component: EthTransaction + component: 'ethereum' as const })) ]; - const expectedEthTransactions: AllTransactionUi[] = [ + const expectedEthTransactions: AllTransactionUiWithCmp[] = [ ...expectedEthMainnetTransactions, ...expectedSepoliaTransactions, ...expectedErc20Transactions ]; - const expectedIcTransactions: AllTransactionUi[] = [ + const expectedIcTransactions: AllTransactionUiWithCmp[] = [ ...mockIcTransactionsUi.map((transaction) => ({ - ...transaction, + transaction, token: ICP_TOKEN, - component: IcTransaction + component: 'ic' as const })) ]; - const expectedTransactions: AllTransactionUi[] = [ + const expectedTransactions: AllTransactionUiWithCmp[] = [ ...expectedBtcMainnetTransactions, ...expectedEthTransactions, ...expectedIcTransactions diff --git a/src/frontend/src/tests/mocks/transactions.mock.ts b/src/frontend/src/tests/mocks/transactions.mock.ts index 27fb4c145e..cba5fa21f3 100644 --- a/src/frontend/src/tests/mocks/transactions.mock.ts +++ b/src/frontend/src/tests/mocks/transactions.mock.ts @@ -1,12 +1,15 @@ -import type { AnyTransactionUi } from '$lib/types/transaction'; +import type { AnyTransactionUiWithCmp } from '$lib/types/transaction'; -export const createTransactionsUi = (n: number): AnyTransactionUi[] => +export const createTransactionsUiWithCmp = (n: number): AnyTransactionUiWithCmp[] => Array.from({ length: n }, (_, i) => ({ - id: `id-${i}`, - type: 'send', - status: 'executed', - transactionComponent: 'transactionComponent', - timestamp: BigInt(i), - from: 'from', - to: 'to' + transaction: { + id: `id-${i}`, + type: 'send', + status: 'executed', + transactionComponent: 'transactionComponent', + timestamp: BigInt(i), + from: 'from', + to: 'to' + }, + component: 'ic' })); From 84e0732237af10921de6a2aca24e77131799c852 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Mon, 16 Dec 2024 06:17:24 +0100 Subject: [PATCH 19/31] chore: redo --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2c161ec517..b6724b832b 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "@dfinity/principal": "^2.1.2", "@dfinity/utils": "^2.5.1", "@dfinity/verifiable-credentials": "^0.0.4", - "@junobuild/analytics": "^0.0.31", + "@junobuild/analytics": "^0.0.28", "@metamask/detect-provider": "^2.0.0", "@sveltejs/adapter-static": "^3.0.6", "@sveltejs/package": "^2.3.7", From d38dc4427c3cf80061d4e73eca610ac9a2dfac2d Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Mon, 16 Dec 2024 06:30:09 +0100 Subject: [PATCH 20/31] build: cleanup and redo svelte v5 --- package-lock.json | 452 ++++++++++++++++++++++++++++------------------ package.json | 19 +- 2 files changed, 287 insertions(+), 184 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2295425a0f..d8e59bdb47 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,21 +22,13 @@ "@dfinity/principal": "^2.1.2", "@dfinity/utils": "^2.5.1", "@dfinity/verifiable-credentials": "^0.0.4", - "@junobuild/analytics": "^0.0.28", + "@junobuild/analytics": "^0.0.31", "@metamask/detect-provider": "^2.0.0", - "@sveltejs/adapter-static": "^3.0.6", - "@sveltejs/package": "^2.3.7", - "@sveltejs/vite-plugin-svelte": "^4.0.1", - "@testing-library/jest-dom": "^6.6.3", - "@testing-library/svelte": "^5.2.6", "@walletconnect/web3wallet": "1.14.0", "alchemy-sdk": "3.4.1", "buffer": "^6.0.3", - "eslint-plugin-svelte": "^2.46.1", "ethers": "^5.7.0", "idb-keyval": "^6.2.1", - "svelte": "^5.10.1", - "svelte-check": "^4.1.1", "zod": "^3.23.8" }, "devDependencies": { @@ -45,12 +37,17 @@ "@dfinity/internet-identity-playwright": "^0.0.4", "@playwright/test": "^1.49.0", "@rollup/plugin-inject": "^5.0.5", - "@sveltejs/kit": "^2.10.1", + "@sveltejs/adapter-static": "^3.0.6", + "@sveltejs/kit": "^2.11.1", + "@sveltejs/vite-plugin-svelte": "^4.0.1", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/svelte": "^5.2.6", "@types/dom-view-transitions": "^1.0.5", "@types/node": "^20.14.9", "@vitest/coverage-v8": "^2.1.8", "autoprefixer": "^10.4.20", "dotenv": "^16.4.7", + "eslint-plugin-svelte": "^2.46.1", "fake-indexeddb": "^6.0.0", "jimp": "^1.6.0", "jsdom": "^25.0.1", @@ -62,6 +59,8 @@ "prettier-plugin-svelte": "^3.3.2", "prettier-plugin-tailwindcss": "^0.6.9", "sass": "^1.81.0", + "svelte": "^5.14.0", + "svelte-check": "^4.1.1", "tailwindcss": "^3.4.15", "tslib": "^2.8.1", "typescript": "^5.4.5", @@ -78,6 +77,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.1.tgz", "integrity": "sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==", + "dev": true, "license": "MIT" }, "node_modules/@alloc/quick-lru": { @@ -109,6 +109,7 @@ "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", @@ -133,6 +134,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -158,6 +160,7 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "dev": true, "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -404,9 +407,9 @@ } }, "node_modules/@dfinity/principal": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-2.1.2.tgz", - "integrity": "sha512-L3Y0nDjquqNFseM2Gx5fI4GOUKjjezFr9/6ZjSwAFeDeb4Ubqld4ZKL3FEzv4QKNbfZgCx19b7UXi+OdmLhi4w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-2.1.3.tgz", + "integrity": "sha512-HtiAfZcs+ToPYFepVJdFlorIfPA56KzC6J97ZuH2lGNMTAfJA+NEBzLe476B4wVCAwZ0TiGJ27J4ks9O79DFEg==", "license": "Apache-2.0", "dependencies": { "@noble/hashes": "^1.3.1" @@ -463,6 +466,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -479,6 +483,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -495,6 +500,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -511,6 +517,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -527,6 +534,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -543,6 +551,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -559,6 +568,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -575,6 +585,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -591,6 +602,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -607,6 +619,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -623,6 +636,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -639,6 +653,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -655,6 +670,7 @@ "cpu": [ "mips64el" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -671,6 +687,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -687,6 +704,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -703,6 +721,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -719,6 +738,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -735,6 +755,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -751,6 +772,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -767,6 +789,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -783,6 +806,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -799,6 +823,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -815,6 +840,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -828,6 +854,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" @@ -843,6 +870,7 @@ "version": "4.11.1", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "dev": true, "license": "MIT", "peer": true, "engines": { @@ -853,6 +881,7 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -877,6 +906,7 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -895,6 +925,7 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT", "peer": true }, @@ -902,6 +933,7 @@ "version": "8.57.1", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, "license": "MIT", "peer": true, "engines": { @@ -1589,6 +1621,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", "deprecated": "Use @eslint/config-array instead", + "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { @@ -1604,6 +1637,7 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -1622,6 +1656,7 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT", "peer": true }, @@ -1629,6 +1664,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, "license": "Apache-2.0", "peer": true, "engines": { @@ -1644,6 +1680,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "deprecated": "Use @eslint/object-schema instead", + "dev": true, "license": "BSD-3-Clause", "peer": true }, @@ -2189,27 +2226,18 @@ } }, "node_modules/@junobuild/analytics": { - "version": "0.0.28", - "resolved": "https://registry.npmjs.org/@junobuild/analytics/-/analytics-0.0.28.tgz", - "integrity": "sha512-HE0JTnbxtFm2USAsy9mKEQwTu1Uelt73P8PuyN4X7iVC05m1MulY2YfZu/xtzDnWVpuL/t0hawPfqD/diDMtGg==", + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/@junobuild/analytics/-/analytics-0.0.31.tgz", + "integrity": "sha512-reXR17+B/w6iwrQqAi2XS1n6ApSsu4tWZjwtezm0fp9OB+hOaKF/C4MLo76F8C2vY4YqopZC4h8a7nbDDvismA==", "license": "MIT", "dependencies": { "@junobuild/utils": "*", "idb-keyval": "^6.2.1", "isbot": "^5.1.6", - "nanoid": "^5.0.7", + "nanoid": "^5.0.9", "web-vitals": "^4.2.3" } }, - "node_modules/@junobuild/analytics/node_modules/@junobuild/utils": { - "version": "0.0.25", - "resolved": "https://registry.npmjs.org/@junobuild/utils/-/utils-0.0.25.tgz", - "integrity": "sha512-hKvSeyREVy7YoJoXWSs4Q1xp8I4tlZ9c9KVVPNLdJ/vl8ad8/EEfcvuobNdNZ860h9DqG5LXhqam+Mf/blU33w==", - "license": "MIT", - "peerDependencies": { - "@dfinity/principal": "^2.0.0" - } - }, "node_modules/@junobuild/analytics/node_modules/nanoid": { "version": "5.0.9", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.9.tgz", @@ -2228,6 +2256,15 @@ "node": "^18 || >=20" } }, + "node_modules/@junobuild/utils": { + "version": "0.0.27", + "resolved": "https://registry.npmjs.org/@junobuild/utils/-/utils-0.0.27.tgz", + "integrity": "sha512-9H44YEQaq2MNFatEvlcK4BSHbCgv+mOoXuOLOO0vpMmjAck85Q2XwfSXypyW2ZflvVXWrJceCXXoEpJZmpJstQ==", + "license": "MIT", + "peerDependencies": { + "@dfinity/principal": "^2.1.3" + } + }, "node_modules/@metamask/detect-provider": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@metamask/detect-provider/-/detect-provider-2.0.0.tgz", @@ -2267,6 +2304,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2279,6 +2317,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "engines": { "node": ">= 8" } @@ -2287,6 +2326,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2680,6 +2720,7 @@ "version": "1.0.0-next.28", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "dev": true, "license": "MIT" }, "node_modules/@rollup/plugin-inject": { @@ -2745,6 +2786,7 @@ "cpu": [ "arm" ], + "dev": true, "optional": true, "os": [ "android" @@ -2757,6 +2799,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "android" @@ -2769,6 +2812,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "darwin" @@ -2781,6 +2825,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "darwin" @@ -2793,6 +2838,7 @@ "cpu": [ "arm" ], + "dev": true, "optional": true, "os": [ "linux" @@ -2805,6 +2851,7 @@ "cpu": [ "arm" ], + "dev": true, "optional": true, "os": [ "linux" @@ -2817,6 +2864,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -2829,6 +2877,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -2841,6 +2890,7 @@ "cpu": [ "ppc64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -2853,6 +2903,7 @@ "cpu": [ "riscv64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -2865,6 +2916,7 @@ "cpu": [ "s390x" ], + "dev": true, "optional": true, "os": [ "linux" @@ -2877,6 +2929,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -2889,6 +2942,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -2901,6 +2955,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "win32" @@ -2913,6 +2968,7 @@ "cpu": [ "ia32" ], + "dev": true, "optional": true, "os": [ "win32" @@ -2925,6 +2981,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "win32" @@ -3145,15 +3202,17 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.6.tgz", "integrity": "sha512-MGJcesnJWj7FxDcB/GbrdYD3q24Uk0PIL4QIX149ku+hlJuj//nxUbb0HxUTpjkecWfHjVveSUnUaQWnPRXlpg==", + "dev": true, "license": "MIT", "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "node_modules/@sveltejs/kit": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.10.1.tgz", - "integrity": "sha512-2aormKTn94aU8Lfxj4gcbRGh1Dyw0hCFlNo51+njdRDn9P2ERuWC4bOtTuoy5HJpPYR3AH8oaaEjKDWUHbi1OA==", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.11.1.tgz", + "integrity": "sha512-dAiHDEd+AOm20eYdMPV1a2eKBOc0s/7XsSs7PCoNv2kKS7BAoVRC9uzR+FQmxLtp8xuEo9z8CtrMQoszkThltQ==", + "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -3182,60 +3241,11 @@ "vite": "^5.0.3 || ^6.0.0" } }, - "node_modules/@sveltejs/package": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/@sveltejs/package/-/package-2.3.7.tgz", - "integrity": "sha512-LYgUkde5GUYqOpXbcoCGUpEH4Ctl3Wj4u4CVZBl56dEeLW5fGHE037ZL1qlK0Ky+QD5uUfwONSeGwIOIighFMQ==", - "license": "MIT", - "dependencies": { - "chokidar": "^4.0.0", - "kleur": "^4.1.5", - "sade": "^1.8.1", - "semver": "^7.5.4", - "svelte2tsx": "~0.7.16" - }, - "bin": { - "svelte-package": "svelte-package.js" - }, - "engines": { - "node": "^16.14 || >=18" - }, - "peerDependencies": { - "svelte": "^3.44.0 || ^4.0.0 || ^5.0.0-next.1" - } - }, - "node_modules/@sveltejs/package/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@sveltejs/package/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", - "license": "MIT", - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@sveltejs/vite-plugin-svelte": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-4.0.1.tgz", "integrity": "sha512-prXoAE/GleD2C4pKgHa9vkdjpzdYwCSw/kmjw6adIyu0vk5YKCfqIztkLg10m+kOYnzZu3bb0NaPTxlWre2a9Q==", + "dev": true, "license": "MIT", "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^3.0.0-next.0||^3.0.0", @@ -3257,6 +3267,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-3.0.1.tgz", "integrity": "sha512-2CKypmj1sM4GE7HjllT7UKmo4Q6L5xFRd7VMGEWhYnZ+wc6AUVU01IBd7yUi6WnFndEwWoMNOd6e8UjoN0nbvQ==", + "dev": true, "license": "MIT", "dependencies": { "debug": "^4.3.7" @@ -3274,6 +3285,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -3291,12 +3303,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/@sveltejs/vite-plugin-svelte/node_modules/debug": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -3314,12 +3328,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/@testing-library/dom": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", + "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.10.4", @@ -3339,6 +3355,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, "license": "Apache-2.0", "dependencies": { "dequal": "^2.0.3" @@ -3348,12 +3365,14 @@ "version": "0.5.16", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, "license": "MIT" }, "node_modules/@testing-library/jest-dom": { "version": "6.6.3", "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz", "integrity": "sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==", + "dev": true, "license": "MIT", "dependencies": { "@adobe/css-tools": "^4.4.0", @@ -3374,6 +3393,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -3387,6 +3407,7 @@ "version": "5.2.6", "resolved": "https://registry.npmjs.org/@testing-library/svelte/-/svelte-5.2.6.tgz", "integrity": "sha512-1Y8cEg/BtV4J6g9irkY0ksz+ueDFYLiikjTLiqvQPkOUeDzR4gg2zECBf8yrOrCy3e2TAOYMcaysFa0bQMyk1w==", + "dev": true, "license": "MIT", "dependencies": { "@testing-library/dom": "^10.0.0" @@ -3419,12 +3440,14 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, "license": "MIT" }, "node_modules/@types/cookie": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true, "license": "MIT" }, "node_modules/@types/dom-view-transitions": { @@ -3459,7 +3482,7 @@ "version": "20.14.9", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz", "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "undici-types": "~5.26.4" @@ -3826,6 +3849,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, "license": "ISC", "peer": true }, @@ -3891,7 +3915,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.8.tgz", "integrity": "sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@vitest/spy": "2.1.8", @@ -3907,7 +3931,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.8.tgz", "integrity": "sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@vitest/spy": "2.1.8", @@ -3934,7 +3958,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "tinyrainbow": "^1.2.0" @@ -3947,7 +3971,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.8.tgz", "integrity": "sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@vitest/utils": "2.1.8", @@ -3961,7 +3985,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.8.tgz", "integrity": "sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@vitest/pretty-format": "2.1.8", @@ -3976,7 +4000,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.8.tgz", "integrity": "sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "tinyspy": "^3.0.2" @@ -3989,7 +4013,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.8.tgz", "integrity": "sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@vitest/pretty-format": "2.1.8", @@ -4348,6 +4372,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -4401,6 +4426,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -4440,6 +4466,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "engines": { "node": ">=8" } @@ -4448,6 +4475,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -4493,6 +4521,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, "license": "Python-2.0", "peer": true }, @@ -4660,7 +4689,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -4768,7 +4797,8 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "node_modules/base-x": { "version": "4.0.0", @@ -4893,6 +4923,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -5033,7 +5064,7 @@ "version": "6.7.14", "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -5064,6 +5095,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, "license": "MIT", "peer": true, "engines": { @@ -5104,7 +5136,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "assertion-error": "^2.0.1", @@ -5121,6 +5153,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5136,7 +5169,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">= 16" @@ -5206,6 +5239,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -5216,7 +5250,8 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/combined-stream": { "version": "1.0.8", @@ -5239,6 +5274,7 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, "peer": true }, "node_modules/consola": { @@ -5254,6 +5290,7 @@ "version": "0.7.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -5297,12 +5334,14 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true, "license": "MIT" }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, "bin": { "cssesc": "bin/cssesc" }, @@ -5463,17 +5502,11 @@ "node": ">=0.10" } }, - "node_modules/dedent-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz", - "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==", - "license": "MIT" - }, "node_modules/deep-eql": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -5483,6 +5516,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, "license": "MIT", "peer": true }, @@ -5490,6 +5524,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -5557,6 +5592,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -5590,6 +5626,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.1.1.tgz", "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==", + "dev": true, "license": "MIT" }, "node_modules/didyoumean": { @@ -5622,6 +5659,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { @@ -5635,6 +5673,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true, "license": "MIT" }, "node_modules/dompurify": { @@ -5838,7 +5877,7 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", - "devOptional": true + "dev": true }, "node_modules/es-object-atoms": { "version": "1.0.0", @@ -5944,6 +5983,7 @@ "version": "0.21.5", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -5992,6 +6032,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "license": "MIT", "peer": true, "engines": { @@ -6006,6 +6047,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -6062,6 +6104,7 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "dev": true, "license": "MIT", "dependencies": { "semver": "^7.5.4" @@ -6461,6 +6504,7 @@ "version": "2.46.1", "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.46.1.tgz", "integrity": "sha512-7xYr2o4NID/f9OEYMqxsEQsCsj4KaMy4q5sANaKkAb6/QeCjYFxRmDm2S3YC3A3pl1kyPZ/syOx/i7LcWYSbIw==", + "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", @@ -6495,6 +6539,7 @@ "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", @@ -6511,6 +6556,7 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -6523,6 +6569,7 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -6541,6 +6588,7 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT", "peer": true }, @@ -6569,6 +6617,7 @@ "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", @@ -6586,6 +6635,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, "license": "BSD-3-Clause", "peer": true, "dependencies": { @@ -6609,6 +6659,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" @@ -6621,6 +6672,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -6630,7 +6682,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "devOptional": true, + "dev": true, "dependencies": { "@types/estree": "^1.0.0" } @@ -6639,6 +6691,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" @@ -6743,7 +6796,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", - "devOptional": true, + "dev": true, "engines": { "node": ">=12.0.0" } @@ -6771,6 +6824,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, "license": "MIT", "peer": true }, @@ -6815,6 +6869,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, "license": "MIT", "peer": true }, @@ -6822,6 +6877,7 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, "license": "MIT", "peer": true }, @@ -6838,6 +6894,7 @@ "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -6846,6 +6903,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -6897,6 +6955,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -6914,6 +6973,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -6929,6 +6989,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, "license": "ISC", "peer": true }, @@ -7010,6 +7071,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, "peer": true }, "node_modules/fsevents": { @@ -7152,6 +7214,7 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, "license": "ISC", "peer": true, "dependencies": { @@ -7173,6 +7236,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -7184,6 +7248,7 @@ "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -7218,6 +7283,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true, "license": "MIT" }, "node_modules/globby": { @@ -7246,6 +7312,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true, "license": "MIT" }, "node_modules/gopd": { @@ -7274,6 +7341,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, "license": "MIT", "peer": true }, @@ -7310,6 +7378,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -7569,6 +7638,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, "license": "MIT", "peer": true, "engines": { @@ -7596,12 +7666,13 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.2.tgz", "integrity": "sha512-1NU7hWZDkV7hJ4PJ9dur9gTNQ4ePNPN4k9/0YhwjzykTi/+3Q5pF93YU5QoVj8BuOnhLgaY8gs0U2pj4kSYVcw==", - "devOptional": true + "dev": true }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -7619,6 +7690,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true, "license": "MIT", "funding": { "type": "github", @@ -7629,6 +7701,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, "license": "MIT", "peer": true, "engines": { @@ -7639,6 +7712,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -7648,6 +7722,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, "peer": true, "dependencies": { "once": "^1.3.0", @@ -7931,6 +8006,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, "license": "MIT", "peer": true, "engines": { @@ -8304,12 +8380,14 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -8397,6 +8475,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, "license": "MIT", "peer": true }, @@ -8404,6 +8483,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, "license": "MIT", "peer": true }, @@ -8411,6 +8491,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, "license": "MIT", "peer": true }, @@ -8453,6 +8534,7 @@ "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -8469,6 +8551,7 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -8478,12 +8561,14 @@ "version": "0.35.0", "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz", "integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==", + "dev": true, "license": "MIT" }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -8498,6 +8583,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, "engines": { "node": ">=10" } @@ -8547,6 +8633,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -8563,6 +8650,7 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, "license": "MIT" }, "node_modules/lodash.isequal": { @@ -8575,6 +8663,7 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, "license": "MIT", "peer": true }, @@ -8582,18 +8671,9 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", - "devOptional": true, + "dev": true, "license": "MIT" }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, "node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", @@ -8604,6 +8684,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, "license": "MIT", "bin": { "lz-string": "bin/bin.js" @@ -8729,6 +8810,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -8748,6 +8830,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -8800,6 +8883,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -8832,6 +8916,7 @@ "version": "3.3.8", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, "funding": [ { "type": "github", @@ -8850,6 +8935,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, "license": "MIT", "peer": true }, @@ -8859,16 +8945,6 @@ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "license": "ISC" }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, "node_modules/node-addon-api": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", @@ -9150,6 +9226,7 @@ "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -9168,6 +9245,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -9184,6 +9262,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -9214,6 +9293,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -9260,20 +9340,11 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, "license": "MIT", "peer": true, "engines": { @@ -9284,6 +9355,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, "peer": true, "engines": { "node": ">=0.10.0" @@ -9340,7 +9412,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">= 14.16" @@ -9369,7 +9441,8 @@ "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true }, "node_modules/picomatch": { "version": "2.3.1", @@ -9540,6 +9613,7 @@ "version": "8.4.49", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "dev": true, "funding": [ { "type": "opencollective", @@ -9603,6 +9677,7 @@ "version": "3.1.4", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, "license": "MIT", "dependencies": { "lilconfig": "^2.0.5", @@ -9657,6 +9732,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=12.0" @@ -9673,6 +9749,7 @@ "version": "4.0.9", "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", + "dev": true, "funding": [ { "type": "opencollective", @@ -9699,6 +9776,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -9718,6 +9796,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, "license": "MIT", "peer": true, "engines": { @@ -9864,6 +9943,7 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1", @@ -9878,6 +9958,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -9902,6 +9983,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "engines": { "node": ">=6" } @@ -9952,6 +10034,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -9983,6 +10066,7 @@ "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, "license": "MIT" }, "node_modules/read-cache": { @@ -10048,6 +10132,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, "license": "MIT", "dependencies": { "indent-string": "^4.0.0", @@ -10061,6 +10146,7 @@ "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true, "license": "MIT" }, "node_modules/regexp.prototype.flags": { @@ -10104,6 +10190,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, "license": "MIT", "peer": true, "engines": { @@ -10125,6 +10212,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -10135,6 +10223,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, "license": "ISC", "peer": true, "dependencies": { @@ -10151,6 +10240,7 @@ "version": "4.22.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", + "dev": true, "dependencies": { "@types/estree": "1.0.5" }, @@ -10191,6 +10281,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -10213,6 +10304,7 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, "license": "MIT", "dependencies": { "mri": "^1.1.0" @@ -10298,7 +10390,7 @@ "version": "1.81.0", "resolved": "https://registry.npmjs.org/sass/-/sass-1.81.0.tgz", "integrity": "sha512-Q4fOxRfhmv3sqCLoGfvrC9pRV8btc0UtqL9mN6Yrv6Qi9ScL55CVH1vlPP863ISLEEMNLLuu9P+enCeGHlnzhA==", - "devOptional": true, + "dev": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", @@ -10318,7 +10410,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.0.tgz", "integrity": "sha512-mxIojEAQcuEvT/lyXq+jf/3cO/KoA6z4CeNDGGevTybECPOMFCnQy3OPahluUkbqgPNGw5Bi78UC7Po6Lhy+NA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "readdirp": "^4.0.1" @@ -10334,7 +10426,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.1.tgz", "integrity": "sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">= 14.16.0" @@ -10372,6 +10464,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -10384,6 +10477,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "dev": true, "license": "MIT" }, "node_modules/set-function-length": { @@ -10465,7 +10559,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "devOptional": true, + "dev": true, "license": "ISC" }, "node_modules/signal-exit": { @@ -10499,6 +10593,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.0.tgz", "integrity": "sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==", + "dev": true, "license": "MIT", "dependencies": { "@polka/url": "^1.0.0-next.24", @@ -10533,6 +10628,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -10560,7 +10656,7 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/std-env": { @@ -10721,6 +10817,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -10769,6 +10866,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, "license": "MIT", "dependencies": { "min-indent": "^1.0.0" @@ -10781,6 +10879,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, "license": "MIT", "peer": true, "engines": { @@ -10893,6 +10992,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -10914,9 +11014,9 @@ } }, "node_modules/svelte": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.10.1.tgz", - "integrity": "sha512-JOBw4VStdoP/Iw93vrzGAOUWdV4Gk8hCuprvTwjbdMZG3GyYxbLogR56XqrO2M7E6PifoPkwDphXu0s49R2wvw==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.14.0.tgz", + "integrity": "sha512-xHrS9dd2Ci9GJd2sReNFqJztoe515wB4OzsPw4A8L2M6lddLFkREkWDJnM5DAND30Zyvjwc1icQVzH0F+Sdx5A==", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.3.0", @@ -10941,6 +11041,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.1.1.tgz", "integrity": "sha512-NfaX+6Qtc8W/CyVGS/F7/XdiSSyXz+WGYA9ZWV3z8tso14V2vzjfXviKaTFEzB7g8TqfgO2FOzP6XT4ApSTUTw==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", @@ -10964,6 +11065,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, "license": "MIT", "dependencies": { "readdirp": "^4.0.1" @@ -10979,6 +11081,7 @@ "version": "6.4.2", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", + "dev": true, "license": "MIT", "peerDependencies": { "picomatch": "^3 || ^4" @@ -10993,6 +11096,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, "license": "MIT", "optional": true, "peer": true, @@ -11007,6 +11111,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, "license": "MIT", "engines": { "node": ">= 14.16.0" @@ -11020,6 +11125,7 @@ "version": "0.43.0", "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.43.0.tgz", "integrity": "sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==", + "dev": true, "license": "MIT", "dependencies": { "eslint-scope": "^7.2.2", @@ -11043,20 +11149,6 @@ } } }, - "node_modules/svelte2tsx": { - "version": "0.7.30", - "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.30.tgz", - "integrity": "sha512-sHXK/vw/sVJmFuPSq6zeKrtuZKvo0jJyEi8ybN0dfrqSYVvHu8zFbO0zQKAL8y/fYackYojH41EJGe6v8rd5fw==", - "license": "MIT", - "dependencies": { - "dedent-js": "^1.0.1", - "pascal-case": "^3.1.1" - }, - "peerDependencies": { - "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", - "typescript": "^4.9.4 || ^5.0.0" - } - }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -11260,6 +11352,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, "license": "MIT", "peer": true }, @@ -11297,6 +11390,7 @@ "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dev": true, "license": "MIT", "dependencies": { "globalyzer": "0.1.0", @@ -11307,7 +11401,7 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/tinycolor2": { @@ -11321,13 +11415,13 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", - "devOptional": true + "dev": true }, "node_modules/tinypool": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz", "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": "^18.0.0 || >=20.0.0" @@ -11337,7 +11431,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", - "devOptional": true, + "dev": true, "engines": { "node": ">=14.0.0" } @@ -11346,7 +11440,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=14.0.0" @@ -11403,6 +11497,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -11490,6 +11585,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -11503,6 +11599,7 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, "license": "(MIT OR CC0-1.0)", "peer": true, "engines": { @@ -11606,6 +11703,7 @@ "version": "5.4.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -11934,7 +12032,7 @@ "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "devOptional": true + "dev": true }, "node_modules/unenv": { "version": "1.10.0", @@ -12084,6 +12182,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "license": "BSD-2-Clause", "peer": true, "dependencies": { @@ -12121,6 +12220,7 @@ "version": "5.4.10", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", + "dev": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -12179,7 +12279,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.8.tgz", "integrity": "sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "cac": "^6.7.14", @@ -12202,7 +12302,7 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -12220,13 +12320,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/vitefu": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.4.tgz", "integrity": "sha512-y6zEE3PQf6uu/Mt6DTJ9ih+kyJLr4XcSgHR2zUkM8SWDhuixEJxfJ6CZGMHh1Ec3vPLoEA0IHU5oWzVqw8ulow==", + "dev": true, "license": "MIT", "workspaces": [ "tests/deps/*", @@ -12245,7 +12346,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.8.tgz", "integrity": "sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@vitest/expect": "2.1.8", @@ -12325,7 +12426,7 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -12343,7 +12444,7 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/w3c-xmlserializer": { @@ -12359,9 +12460,9 @@ } }, "node_modules/web-vitals": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.3.tgz", - "integrity": "sha512-/CFAm1mNxSmOj6i0Co+iGFJ58OS4NRGVP+AWS/l509uIK5a1bSoIVaHz/ZumpHTfHSZBpgrJ+wjfpAOrTHok5Q==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.4.tgz", + "integrity": "sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==", "license": "Apache-2.0" }, "node_modules/webcrypto-core": { @@ -12489,7 +12590,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "siginfo": "^2.0.0", @@ -12506,6 +12607,7 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, "license": "MIT", "peer": true, "engines": { @@ -12698,6 +12800,7 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, "license": "ISC", "engines": { "node": ">= 6" @@ -12707,6 +12810,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, "license": "MIT", "peer": true, "engines": { diff --git a/package.json b/package.json index b6724b832b..980564d04f 100644 --- a/package.json +++ b/package.json @@ -63,21 +63,13 @@ "@dfinity/principal": "^2.1.2", "@dfinity/utils": "^2.5.1", "@dfinity/verifiable-credentials": "^0.0.4", - "@junobuild/analytics": "^0.0.28", + "@junobuild/analytics": "^0.0.31", "@metamask/detect-provider": "^2.0.0", - "@sveltejs/adapter-static": "^3.0.6", - "@sveltejs/package": "^2.3.7", - "@sveltejs/vite-plugin-svelte": "^4.0.1", - "@testing-library/jest-dom": "^6.6.3", - "@testing-library/svelte": "^5.2.6", "@walletconnect/web3wallet": "1.14.0", "alchemy-sdk": "3.4.1", "buffer": "^6.0.3", - "eslint-plugin-svelte": "^2.46.1", "ethers": "^5.7.0", "idb-keyval": "^6.2.1", - "svelte": "^5.10.1", - "svelte-check": "^4.1.1", "zod": "^3.23.8" }, "devDependencies": { @@ -86,12 +78,17 @@ "@dfinity/internet-identity-playwright": "^0.0.4", "@playwright/test": "^1.49.0", "@rollup/plugin-inject": "^5.0.5", - "@sveltejs/kit": "^2.10.1", + "@sveltejs/adapter-static": "^3.0.6", + "@sveltejs/kit": "^2.11.1", + "@sveltejs/vite-plugin-svelte": "^4.0.1", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/svelte": "^5.2.6", "@types/dom-view-transitions": "^1.0.5", "@types/node": "^20.14.9", "@vitest/coverage-v8": "^2.1.8", "autoprefixer": "^10.4.20", "dotenv": "^16.4.7", + "eslint-plugin-svelte": "^2.46.1", "fake-indexeddb": "^6.0.0", "jimp": "^1.6.0", "jsdom": "^25.0.1", @@ -103,6 +100,8 @@ "prettier-plugin-svelte": "^3.3.2", "prettier-plugin-tailwindcss": "^0.6.9", "sass": "^1.81.0", + "svelte": "^5.14.0", + "svelte-check": "^4.1.1", "tailwindcss": "^3.4.15", "tslib": "^2.8.1", "typescript": "^5.4.5", From f697a2ce6f66331abfd7040e253e8f7834185dc3 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Mon, 16 Dec 2024 06:48:00 +0100 Subject: [PATCH 21/31] chore: more resize observer for tests --- vitest.setup.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/vitest.setup.ts b/vitest.setup.ts index a19c3275b5..ab4b3f2a5e 100644 --- a/vitest.setup.ts +++ b/vitest.setup.ts @@ -4,6 +4,20 @@ import 'fake-indexeddb/auto'; import { vi } from 'vitest'; import { mockPage } from './src/frontend/src/tests/mocks/page.store.mock'; +// We mock ResizeObserver and element.animate because neither JSDOM nor Happy DOM supports them, while Svelte v5 requires them. +// Interesting related thread: https://github.com/testing-library/svelte-testing-library/issues/284 +global.ResizeObserver = class ResizeObserver { + observe() { + // do nothing + } + unobserve() { + // do nothing + } + disconnect() { + // do nothing + } +}; + vi.mock('$app/stores', () => ({ page: mockPage })); From 6d84eac32ea3a0b1c149f181cc289ab61331e212 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Mon, 16 Dec 2024 07:07:58 +0100 Subject: [PATCH 22/31] test(frontend): adapt --- .../src/tests/lib/components/core/Listener.spec.ts | 8 ++++---- .../src/tests/lib/components/send/SendSource.spec.ts | 6 ++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/frontend/src/tests/lib/components/core/Listener.spec.ts b/src/frontend/src/tests/lib/components/core/Listener.spec.ts index 11f8a2883c..488bd0d14f 100644 --- a/src/frontend/src/tests/lib/components/core/Listener.spec.ts +++ b/src/frontend/src/tests/lib/components/core/Listener.spec.ts @@ -24,7 +24,7 @@ describe('Listener', () => { props: { token: null } }); - expect(container.innerHTML).toBe(''); + expect(container.textContent).toBe(''); }); it('should render nothing if user is not connected', () => { @@ -34,7 +34,7 @@ describe('Listener', () => { props: { token: ETHEREUM_TOKEN } }); - expect(container.innerHTML).toBe(''); + expect(container.textContent).toBe(''); }); it('should render nothing if the token has an unknown network', () => { @@ -46,7 +46,7 @@ describe('Listener', () => { props: { token: ICP_TOKEN } }); - expect(container.innerHTML).toBe(''); + expect(container.textContent).toBe(''); }); it('should render nothing if it is an IC token', () => { @@ -54,7 +54,7 @@ describe('Listener', () => { props: { token: ICP_TOKEN } }); - expect(container.innerHTML).toBe(''); + expect(container.textContent).toBe(''); }); // TODO: add tests for rendered listeners, when it is possible to dynamically pass children to the components diff --git a/src/frontend/src/tests/lib/components/send/SendSource.spec.ts b/src/frontend/src/tests/lib/components/send/SendSource.spec.ts index 8ea550eb59..8fea502d98 100644 --- a/src/frontend/src/tests/lib/components/send/SendSource.spec.ts +++ b/src/frontend/src/tests/lib/components/send/SendSource.spec.ts @@ -20,7 +20,8 @@ describe('SendSource', () => { const balance: HTMLDivElement | null = container.querySelector(balanceSelector); expect(source?.textContent).toBe('0xF2777205439a8c7be0425cbb21D8DB7426Df5DE9'); - expect(balance?.textContent).toBe('0.22 BTC'); + expect(balance?.textContent).toContain('0.22'); + expect(balance?.textContent).toContain('BTC'); }); it('should render all field but balance without value', () => { const { container } = render(SendSource, { ...props, token: undefined }); @@ -38,6 +39,7 @@ describe('SendSource', () => { const balance: HTMLDivElement | null = container.querySelector(balanceSelector); expect(source).toBeNull(); - expect(balance?.textContent).toBe('0.22 BTC'); + expect(balance?.textContent).toContain('0.22'); + expect(balance?.textContent).toContain('BTC'); }); }); From ec2474e2e8679f9e4e5f5f383d90eec7a215bb92 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Mon, 16 Dec 2024 07:20:39 +0100 Subject: [PATCH 23/31] test: adapt --- .../lib/components/dapps/DappsCarousel.spec.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/frontend/src/tests/lib/components/dapps/DappsCarousel.spec.ts b/src/frontend/src/tests/lib/components/dapps/DappsCarousel.spec.ts index a35f0d06d6..4be3d7782c 100644 --- a/src/frontend/src/tests/lib/components/dapps/DappsCarousel.spec.ts +++ b/src/frontend/src/tests/lib/components/dapps/DappsCarousel.spec.ts @@ -11,24 +11,25 @@ import { render } from '@testing-library/svelte'; describe('DappsCarousel', () => { beforeEach(() => { vi.clearAllMocks(); + vi.restoreAllMocks(); userProfileStore.set({ profile: mockUserProfile, certified: false }); }); it('should render nothing if there is no dApps', () => { - vi.spyOn(dapps, 'dAppDescriptions', 'get').mockReturnValueOnce([]); + vi.spyOn(dapps, 'dAppDescriptions', 'get').mockReturnValue([]); const { container } = render(DappsCarousel); - expect(container.innerHTML).toBe(''); + expect(container.textContent).toBe(''); }); it('should render nothing if no dApps has the carousel prop', () => { - vi.spyOn(dapps, 'dAppDescriptions', 'get').mockReturnValueOnce( + vi.spyOn(dapps, 'dAppDescriptions', 'get').mockReturnValue( mockDappsDescriptions.map((dapp) => ({ ...dapp, carousel: undefined })) ); const { container } = render(DappsCarousel); - expect(container.innerHTML).toBe(''); + expect(container.textContent).toBe(''); }); it('should render nothing if all dApps were hidden', () => { @@ -51,14 +52,14 @@ describe('DappsCarousel', () => { userProfileStore.set({ profile: userProfile, certified: false }); const { container } = render(DappsCarousel); - expect(container.innerHTML).toBe(''); + expect(container.textContent).toBe(''); }); it('should render nothing if the user profile is nullish', () => { userProfileStore.reset(); const { container } = render(DappsCarousel); - expect(container.innerHTML).toBe(''); + expect(container.textContent).toBe(''); }); it('should render the Carousel if the user settings are null', () => { From f549ddd6be5718729df390609521b059545902f7 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Mon, 16 Dec 2024 07:31:52 +0100 Subject: [PATCH 24/31] test: mock animate --- vitest.setup.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vitest.setup.ts b/vitest.setup.ts index ab4b3f2a5e..fbccfdcf08 100644 --- a/vitest.setup.ts +++ b/vitest.setup.ts @@ -18,6 +18,10 @@ global.ResizeObserver = class ResizeObserver { } }; +Element.prototype.animate = vi + .fn() + .mockImplementation(() => ({ cancel: vi.fn(), finished: Promise.resolve() })); + vi.mock('$app/stores', () => ({ page: mockPage })); From e22bf22472a67088961c8385f17302ece9d83e23 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Mon, 16 Dec 2024 07:43:33 +0100 Subject: [PATCH 25/31] test: props --- ...c.ts => BtcConvertFeeTotal.svelte.spec.ts} | 52 ++++++++++++++----- 1 file changed, 40 insertions(+), 12 deletions(-) rename src/frontend/src/tests/btc/components/convert/{BtcConvertFeeTotal.spec.ts => BtcConvertFeeTotal.svelte.spec.ts} (76%) diff --git a/src/frontend/src/tests/btc/components/convert/BtcConvertFeeTotal.spec.ts b/src/frontend/src/tests/btc/components/convert/BtcConvertFeeTotal.svelte.spec.ts similarity index 76% rename from src/frontend/src/tests/btc/components/convert/BtcConvertFeeTotal.spec.ts rename to src/frontend/src/tests/btc/components/convert/BtcConvertFeeTotal.svelte.spec.ts index e00a0f9c5c..336db36d7f 100644 --- a/src/frontend/src/tests/btc/components/convert/BtcConvertFeeTotal.spec.ts +++ b/src/frontend/src/tests/btc/components/convert/BtcConvertFeeTotal.svelte.spec.ts @@ -45,35 +45,63 @@ describe('BtcConvertFeeTotal', () => { }); it('should not update totalFee if only default fee is available', () => { - const { component } = render(BtcConvertFeeTotal, { - context: mockContext({ utxosFeeStore: store }) + const props = $state({ + totalFee: undefined }); - expect(component.$$.ctx[component.$$.props['totalFee']]).toBeUndefined(); + + render(BtcConvertFeeTotal, { + context: mockContext({ utxosFeeStore: store }), + props + }); + + expect(props.totalFee).toBeUndefined(); }); it('should not update totalFee if only default and utxos fees are available', () => { + const props = $state({ + totalFee: undefined + }); + store.setUtxosFee({ utxosFee: mockUtxosFee }); - const { component } = render(BtcConvertFeeTotal, { - context: mockContext({ utxosFeeStore: store }) + + render(BtcConvertFeeTotal, { + context: mockContext({ utxosFeeStore: store }), + props }); - expect(component.$$.ctx[component.$$.props['totalFee']]).toBeUndefined(); + + expect(props.totalFee).toBeUndefined(); }); it('should not update totalFee if only default and ckBTC minter fees are available', () => { + const props = $state({ + totalFee: undefined + }); + const tokenId = setupCkBTCStores(); - const { component } = render(BtcConvertFeeTotal, { - context: mockContext({ utxosFeeStore: store, destinationTokenId: tokenId }) + + render(BtcConvertFeeTotal, { + context: mockContext({ utxosFeeStore: store, destinationTokenId: tokenId }), + props }); - expect(component.$$.ctx[component.$$.props['totalFee']]).toBeUndefined(); + + expect(props.totalFee).toBeUndefined(); }); it('should calculate totalFee correctly if all fees are available', () => { + const props = $state({ + totalFee: undefined + }); + store.setUtxosFee({ utxosFee: mockUtxosFee }); + const tokenId = setupCkBTCStores(); - const { component } = render(BtcConvertFeeTotal, { - context: mockContext({ utxosFeeStore: store, destinationTokenId: tokenId }) + + render(BtcConvertFeeTotal, { + context: mockContext({ utxosFeeStore: store, destinationTokenId: tokenId }), + props }); - expect(component.$$.ctx[component.$$.props['totalFee']]).toBe( + + expect(props.totalFee).toBe( BTC_CONVERT_FEE + mockCkBtcMinterInfo.kyt_fee + mockUtxosFee.feeSatoshis ); }); From 8429434b2741af17431e2bf436f26d8fd1f152b2 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Mon, 16 Dec 2024 08:01:32 +0100 Subject: [PATCH 26/31] test: props --- ...nputAmount.spec.ts => ConvertInputAmount.svelte.spec.ts} | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) rename src/frontend/src/tests/lib/components/convert/{ConvertInputAmount.spec.ts => ConvertInputAmount.svelte.spec.ts} (94%) diff --git a/src/frontend/src/tests/lib/components/convert/ConvertInputAmount.spec.ts b/src/frontend/src/tests/lib/components/convert/ConvertInputAmount.svelte.spec.ts similarity index 94% rename from src/frontend/src/tests/lib/components/convert/ConvertInputAmount.spec.ts rename to src/frontend/src/tests/lib/components/convert/ConvertInputAmount.svelte.spec.ts index 7a8c56d3e5..3953a8f3ea 100644 --- a/src/frontend/src/tests/lib/components/convert/ConvertInputAmount.spec.ts +++ b/src/frontend/src/tests/lib/components/convert/ConvertInputAmount.svelte.spec.ts @@ -48,7 +48,9 @@ describe('ConvertInputAmount', () => { }); it('should reset input value', async () => { - const { container, component } = render(ConvertInputAmount, { props }); + const testProps = $state(props); + + const { container } = render(ConvertInputAmount, { props: testProps }); const resetButton: HTMLButtonElement | null = container.querySelector(resetButtonSelector); assertNonNullish(resetButton, 'Reset button not found'); @@ -58,7 +60,7 @@ describe('ConvertInputAmount', () => { const input: HTMLInputElement | null = container.querySelector(inputSelector); expect(input?.value).toBe(''); - expect(component.$$.ctx[component.$$.props['amount']]).toBeUndefined(); + expect(testProps.amount).toBeUndefined(); }); it('should trigger validation', async () => { From c5151c75cef90af1b9d29b5f788981a9f2db8a18 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Mon, 16 Dec 2024 08:40:49 +0100 Subject: [PATCH 27/31] test: adapt --- ...spec.ts => SendInputAmount.svelte.spec.ts} | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) rename src/frontend/src/tests/lib/components/send/{SendInputAmount.spec.ts => SendInputAmount.svelte.spec.ts} (89%) diff --git a/src/frontend/src/tests/lib/components/send/SendInputAmount.spec.ts b/src/frontend/src/tests/lib/components/send/SendInputAmount.svelte.spec.ts similarity index 89% rename from src/frontend/src/tests/lib/components/send/SendInputAmount.spec.ts rename to src/frontend/src/tests/lib/components/send/SendInputAmount.svelte.spec.ts index af4a0abd8d..77bf972d23 100644 --- a/src/frontend/src/tests/lib/components/send/SendInputAmount.spec.ts +++ b/src/frontend/src/tests/lib/components/send/SendInputAmount.svelte.spec.ts @@ -57,7 +57,7 @@ describe('SendInputAmount', () => { it('should imperatively trigger max value', async () => { const { container, component } = render(SendInputAmount, { props }); - component.$$.ctx[component.$$.props['triggerCalculateMax']](); + component.triggerCalculateMax(); await waitFor(() => { const input: HTMLInputElement | null = container.querySelector(inputSelector); @@ -79,7 +79,7 @@ describe('SendInputAmount', () => { expect(customValidate).toHaveBeenCalledTimes(1); }); - component.$$.ctx[component.$$.props['triggerValidate']](); + component.triggerValidate(); await waitFor(() => { expect(customValidate).toHaveBeenCalledTimes(2); @@ -104,19 +104,25 @@ describe('SendInputAmount', () => { const renderSetAndAssertMax = async (): Promise<{ container: HTMLElement; component: SendInputAmount; + testProps: { amountSetToMax: boolean }; }> => { - const { container, component } = render(SendInputAmount, { props }); + const testProps = $state({ + ...props, + amountSetToMax: false + }); + + const { container, component } = render(SendInputAmount, { props: testProps }); - expect(component.$$.ctx[component.$$.props['amountSetToMax']]).toBeFalsy(); + expect(testProps.amountSetToMax).toBeFalsy(); const button: HTMLButtonElement | null = container.querySelector(buttonSelector); assertNonNullish(button, 'Max button not found'); await fireEvent.click(button); - expect(component.$$.ctx[component.$$.props['amountSetToMax']]).toBeTruthy(); + expect(testProps.amountSetToMax).toBeTruthy(); - return { component, container }; + return { component, container, testProps }; }; it('should expose a truthy amountSetToMax property when max value was triggered', async () => { @@ -124,13 +130,13 @@ describe('SendInputAmount', () => { }); it('should reset amountSetToMax when max value was triggered but amount was manually updated afterwards', async () => { - const { container, component } = await renderSetAndAssertMax(); + const { container, testProps } = await renderSetAndAssertMax(); const input: HTMLInputElement | null = container.querySelector(inputSelector); assertNonNullish(input, 'Input not found'); await fireEvent.input(input, { target: { value: '0.1' } }); - expect(component.$$.ctx[component.$$.props['amountSetToMax']]).toBeFalsy(); + expect(testProps.amountSetToMax).toBeFalsy(); }); }); }); From dee6e9d2db84bf1feaa93620ea814817c34a65d9 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Mon, 16 Dec 2024 08:43:15 +0100 Subject: [PATCH 28/31] test: adapt props --- ...> ConvertAmountDestination.svelte.spec.ts} | 35 ++++++++++++++----- 1 file changed, 26 insertions(+), 9 deletions(-) rename src/frontend/src/tests/lib/components/convert/{ConvertAmountDestination.spec.ts => ConvertAmountDestination.svelte.spec.ts} (73%) diff --git a/src/frontend/src/tests/lib/components/convert/ConvertAmountDestination.spec.ts b/src/frontend/src/tests/lib/components/convert/ConvertAmountDestination.svelte.spec.ts similarity index 73% rename from src/frontend/src/tests/lib/components/convert/ConvertAmountDestination.spec.ts rename to src/frontend/src/tests/lib/components/convert/ConvertAmountDestination.svelte.spec.ts index 5ca1efb1b5..9401820424 100644 --- a/src/frontend/src/tests/lib/components/convert/ConvertAmountDestination.spec.ts +++ b/src/frontend/src/tests/lib/components/convert/ConvertAmountDestination.svelte.spec.ts @@ -42,30 +42,47 @@ describe('ConvertAmountDestination', () => { }); it('should calculate receiveAmount correctly', () => { - const { component } = render(ConvertAmountDestination, { - props, + const testProps = $state({ + ...props, + receiveAmount: undefined + }); + + render(ConvertAmountDestination, { + props: testProps, context: mockContext }); - expect(component.$$.ctx[component.$$.props['receiveAmount']]).toBe(receiveAmount); + expect(testProps.receiveAmount).toBe(receiveAmount); }); it('should calculate receiveAmount correctly if sendAmount is not provided', () => { const { sendAmount: _, ...newProps } = props; - const { component } = render(ConvertAmountDestination, { - props: newProps, + + const testProps = $state({ + ...newProps, + receiveAmount: undefined + }); + + render(ConvertAmountDestination, { + props: testProps, context: mockContext }); - expect(component.$$.ctx[component.$$.props['receiveAmount']]).toBeUndefined(); + expect(testProps.receiveAmount).toBeUndefined(); }); it('should calculate receiveAmount correctly if insufficientFunds is true', () => { - const { component } = render(ConvertAmountDestination, { - props: { ...props, insufficientFunds: true }, + const testProps = $state({ + ...props, + insufficientFunds: true, + receiveAmount: undefined + }); + + render(ConvertAmountDestination, { + props: testProps, context: mockContext }); - expect(component.$$.ctx[component.$$.props['receiveAmount']]).toBeUndefined(); + expect(testProps.receiveAmount).toBeUndefined(); }); }); From 6f8a1d2b32550ed4c69bf2970d966b676c9c1315 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Mon, 16 Dec 2024 08:47:26 +0100 Subject: [PATCH 29/31] test: state props --- ....ts => ConvertAmountSource.svelte.spec.ts} | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) rename src/frontend/src/tests/lib/components/convert/{ConvertAmountSource.spec.ts => ConvertAmountSource.svelte.spec.ts} (83%) diff --git a/src/frontend/src/tests/lib/components/convert/ConvertAmountSource.spec.ts b/src/frontend/src/tests/lib/components/convert/ConvertAmountSource.svelte.spec.ts similarity index 83% rename from src/frontend/src/tests/lib/components/convert/ConvertAmountSource.spec.ts rename to src/frontend/src/tests/lib/components/convert/ConvertAmountSource.svelte.spec.ts index d2238e4614..af7cae593e 100644 --- a/src/frontend/src/tests/lib/components/convert/ConvertAmountSource.spec.ts +++ b/src/frontend/src/tests/lib/components/convert/ConvertAmountSource.svelte.spec.ts @@ -95,14 +95,16 @@ describe('ConvertAmountSource', () => { }); it('should update sendAmount value if max button was clicked and total fee got updated', async () => { - const { getByTestId, component, rerender } = render(ConvertAmountSource, { - props: props, + const testProps = $state(props); + + const { getByTestId, rerender } = render(ConvertAmountSource, { + props: testProps, context: mockContext() }); await fireEvent.click(getByTestId(balanceTestId)); - expect(component.$$.ctx[component.$$.props['sendAmount']]).toBe(maxButtonValue); + expect(testProps.sendAmount).toBe(maxButtonValue); await rerender({ totalFee: 9000n @@ -111,16 +113,18 @@ describe('ConvertAmountSource', () => { // wait for debounced setMax to be completed await new Promise((resolve) => setTimeout(resolve, 1000)); - expect(component.$$.ctx[component.$$.props['sendAmount']]).toBe(0.04991); + expect(testProps.sendAmount).toBe(0.04991); }); it('should not update sendAmount value if max button was not clicked and total fee got updated', async () => { - const { component, rerender } = render(ConvertAmountSource, { - props: props, + const testProps = $state(props); + + const { rerender } = render(ConvertAmountSource, { + props: testProps, context: mockContext() }); - expect(component.$$.ctx[component.$$.props['sendAmount']]).toBe(props.sendAmount); + expect(testProps.sendAmount).toBe(props.sendAmount); await rerender({ totalFee: 9000n @@ -129,29 +133,33 @@ describe('ConvertAmountSource', () => { // wait for debounced setMax to be completed await new Promise((resolve) => setTimeout(resolve, 1000)); - expect(component.$$.ctx[component.$$.props['sendAmount']]).toBe(props.sendAmount); + expect(testProps.sendAmount).toBe(props.sendAmount); }); it('should set sendAmount correctly on max button click', async () => { - const { getByTestId, component } = render(ConvertAmountSource, { - props, + const testProps = $state(props); + + const { getByTestId } = render(ConvertAmountSource, { + props: testProps, context: mockContext() }); await fireEvent.click(getByTestId(balanceTestId)); - expect(component.$$.ctx[component.$$.props['sendAmount']]).toBe(maxButtonValue); + expect(testProps.sendAmount).toBe(maxButtonValue); }); it('should not change sendAmount on max button click if balance is zero', async () => { - const { getByTestId, component } = render(ConvertAmountSource, { - props, + const testProps = $state(props); + + const { getByTestId } = render(ConvertAmountSource, { + props: testProps, context: mockContext(ZERO) }); await fireEvent.click(getByTestId(balanceTestId)); - expect(component.$$.ctx[component.$$.props['sendAmount']]).toBe(props.sendAmount); + expect(testProps.sendAmount).toBe(props.sendAmount); }); it('should display max button value in a correct format', () => { From b943f472d081a11a5383f51ffef6ac9df7ac9612 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Mon, 16 Dec 2024 12:39:14 +0100 Subject: [PATCH 30/31] feat: imperative query param for network guard --- .../src/routes/(app)/transactions/+page.svelte | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/frontend/src/routes/(app)/transactions/+page.svelte b/src/frontend/src/routes/(app)/transactions/+page.svelte index 33439c892f..da622f4838 100644 --- a/src/frontend/src/routes/(app)/transactions/+page.svelte +++ b/src/frontend/src/routes/(app)/transactions/+page.svelte @@ -1,22 +1,26 @@