From 73318057d49920313337769faaf4c4164eda6b7e Mon Sep 17 00:00:00 2001 From: Patricio Palladino Date: Wed, 4 Mar 2026 12:50:27 +0000 Subject: [PATCH 01/16] Remove older cspell config --- .cspell.json | 5 ----- cspell.yaml | 4 ---- 2 files changed, 9 deletions(-) delete mode 100644 .cspell.json delete mode 100644 cspell.yaml diff --git a/.cspell.json b/.cspell.json deleted file mode 100644 index 550c70514e7..00000000000 --- a/.cspell.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "version": "0.2", - "language": "en", - "words": ["Saty", "ethers", "viem"] -} diff --git a/cspell.yaml b/cspell.yaml deleted file mode 100644 index 1b92b994265..00000000000 --- a/cspell.yaml +++ /dev/null @@ -1,4 +0,0 @@ -ignorePaths: - - .github/config/regression-tests.yml - - pnpm-lock.yaml - - v-next/hardhat-vendored/src From 658b8e595d6b36fee1188dbfc28ec8bef3866eac Mon Sep 17 00:00:00 2001 From: Patricio Palladino Date: Wed, 4 Mar 2026 12:50:41 +0000 Subject: [PATCH 02/16] Install cspell in the root of the repo --- package.json | 4 +- pnpm-lock.yaml | 737 ++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 733 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index ea61ea4a572..c26ac808a9a 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "packageManager": "pnpm@10.28.2", "devDependencies": { "@changesets/cli": "^2.16.0", + "cspell": "9.7.0", "typescript": "~5.8.0" }, "scripts": { @@ -18,7 +19,8 @@ "lint": "pnpm run --recursive --if-present lint", "prelint:fix": "pnpm build", "lint:fix": "pnpm run --recursive --if-present lint:fix", - "version-for-release": "pnpm changeset version && node scripts/bump-peers.mjs apply && pnpm -w install --lockfile-only" + "version-for-release": "pnpm changeset version && node scripts/bump-peers.mjs apply && pnpm -w install --lockfile-only", + "spellcheck": "cspell --no-progress" }, "pnpm": { "onlyBuiltDependencies": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9fcb01fe060..e4c1df7db33 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,9 @@ importers: '@changesets/cli': specifier: ^2.16.0 version: 2.29.7(@types/node@22.18.7) + cspell: + specifier: 9.7.0 + version: 9.7.0 typescript: specifier: ~5.8.0 version: 5.8.3 @@ -2093,6 +2096,240 @@ packages: '@changesets/write@0.4.0': resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} + '@cspell/cspell-bundled-dicts@9.7.0': + resolution: {integrity: sha512-s7h1vo++Q3AsfQa3cs0u/KGwm3SYInuIlC4kjlCBWjQmb4KddiZB5O1u0+3TlA7GycHb5M4CR7MDfHUICgJf+w==} + engines: {node: '>=20'} + + '@cspell/cspell-json-reporter@9.7.0': + resolution: {integrity: sha512-6xpGXlMtQA3hV2BCAQcPkpx9eI12I0o01i9eRqSSEDKtxuAnnrejbcCpL+5OboAjTp3/BSeNYSnhuWYLkSITWQ==} + engines: {node: '>=20'} + + '@cspell/cspell-performance-monitor@9.7.0': + resolution: {integrity: sha512-w1PZIFXuvjnC6mQHyYAFnrsn5MzKnEcEkcK1bj4OG00bAt7WX2VUA/eNNt9c1iHozCQ+FcRYlfbGxuBmNyzSgw==} + engines: {node: '>=20.18'} + + '@cspell/cspell-pipe@9.7.0': + resolution: {integrity: sha512-iiisyRpJciU9SOHNSi0ZEK0pqbEMFRatI/R4O+trVKb+W44p4MNGClLVRWPGUmsFbZKPJL3jDtz0wPlG0/JCZA==} + engines: {node: '>=20'} + + '@cspell/cspell-resolver@9.7.0': + resolution: {integrity: sha512-uiEgS238mdabDnwavo6HXt8K98jlh/jpm7NONroM9NTr9rzck2VZKD2kXEj85wDNMtRsRXNoywTjwQ8WTB6/+w==} + engines: {node: '>=20'} + + '@cspell/cspell-service-bus@9.7.0': + resolution: {integrity: sha512-fkqtaCkg4jY/FotmzjhIavbXuH0AgUJxZk78Ktf4XlhqOZ4wDeUWrCf220bva4mh3TWiLx/ae9lIlpl59Vx6hA==} + engines: {node: '>=20'} + + '@cspell/cspell-types@9.7.0': + resolution: {integrity: sha512-Tdfx4eH2uS+gv9V9NCr3Rz+c7RSS6ntXp3Blliud18ibRUlRxO9dTaOjG4iv4x0nAmMeedP1ORkEpeXSkh2QiQ==} + engines: {node: '>=20'} + + '@cspell/cspell-worker@9.7.0': + resolution: {integrity: sha512-cjEApFF0aOAa1vTUk+e7xP8ofK7iC7hsRzj1FmvvVQz8PoLWPRaq+1bT89ypPsZQvavqm5sIgb97S60/aW4TVg==} + engines: {node: '>=20.18'} + + '@cspell/dict-ada@4.1.1': + resolution: {integrity: sha512-E+0YW9RhZod/9Qy2gxfNZiHJjCYFlCdI69br1eviQQWB8yOTJX0JHXLs79kOYhSW0kINPVUdvddEBe6Lu6CjGQ==} + + '@cspell/dict-al@1.1.1': + resolution: {integrity: sha512-sD8GCaZetgQL4+MaJLXqbzWcRjfKVp8x+px3HuCaaiATAAtvjwUQ5/Iubiqwfd1boIh2Y1/3EgM3TLQ7Q8e0wQ==} + + '@cspell/dict-aws@4.0.17': + resolution: {integrity: sha512-ORcblTWcdlGjIbWrgKF+8CNEBQiLVKdUOFoTn0KPNkAYnFcdPP0muT4892h7H4Xafh3j72wqB4/loQ6Nti9E/w==} + + '@cspell/dict-bash@4.2.2': + resolution: {integrity: sha512-kyWbwtX3TsCf5l49gGQIZkRLaB/P8g73GDRm41Zu8Mv51kjl2H7Au0TsEvHv7jzcsRLS6aUYaZv6Zsvk1fOz+Q==} + + '@cspell/dict-companies@3.2.10': + resolution: {integrity: sha512-bJ1qnO1DkTn7JYGXvxp8FRQc4yq6tRXnrII+jbP8hHmq5TX5o1Wu+rdfpoUQaMWTl6balRvcMYiINDesnpR9Bw==} + + '@cspell/dict-cpp@7.0.2': + resolution: {integrity: sha512-dfbeERiVNeqmo/npivdR6rDiBCqZi3QtjH2Z0HFcXwpdj6i97dX1xaKyK2GUsO/p4u1TOv63Dmj5Vm48haDpuA==} + + '@cspell/dict-cryptocurrencies@5.0.5': + resolution: {integrity: sha512-R68hYYF/rtlE6T/dsObStzN5QZw+0aQBinAXuWCVqwdS7YZo0X33vGMfChkHaiCo3Z2+bkegqHlqxZF4TD3rUA==} + + '@cspell/dict-csharp@4.0.8': + resolution: {integrity: sha512-qmk45pKFHSxckl5mSlbHxmDitSsGMlk/XzFgt7emeTJWLNSTUK//MbYAkBNRtfzB4uD7pAFiKgpKgtJrTMRnrQ==} + + '@cspell/dict-css@4.0.19': + resolution: {integrity: sha512-VYHtPnZt/Zd/ATbW3rtexWpBnHUohUrQOHff/2JBhsVgxOrksAxJnLAO43Q1ayLJBJUUwNVo+RU0sx0aaysZfg==} + + '@cspell/dict-dart@2.3.2': + resolution: {integrity: sha512-sUiLW56t9gfZcu8iR/5EUg+KYyRD83Cjl3yjDEA2ApVuJvK1HhX+vn4e4k4YfjpUQMag8XO2AaRhARE09+/rqw==} + + '@cspell/dict-data-science@2.0.13': + resolution: {integrity: sha512-l1HMEhBJkPmw4I2YGVu2eBSKM89K9pVF+N6qIr5Uo5H3O979jVodtuwP8I7LyPrJnC6nz28oxeGRCLh9xC5CVA==} + + '@cspell/dict-django@4.1.6': + resolution: {integrity: sha512-SdbSFDGy9ulETqNz15oWv2+kpWLlk8DJYd573xhIkeRdcXOjskRuxjSZPKfW7O3NxN/KEf3gm3IevVOiNuFS+w==} + + '@cspell/dict-docker@1.1.17': + resolution: {integrity: sha512-OcnVTIpHIYYKhztNTyK8ShAnXTfnqs43hVH6p0py0wlcwRIXe5uj4f12n7zPf2CeBI7JAlPjEsV0Rlf4hbz/xQ==} + + '@cspell/dict-dotnet@5.0.12': + resolution: {integrity: sha512-FiV934kNieIjGTkiApu/WKvLYi/KBpvfWB2TSqpDQtmXZlt3uSa5blwblO1ZC8OvjH8RCq/31H5IdEYmTaZS7A==} + + '@cspell/dict-elixir@4.0.8': + resolution: {integrity: sha512-CyfphrbMyl4Ms55Vzuj+mNmd693HjBFr9hvU+B2YbFEZprE5AG+EXLYTMRWrXbpds4AuZcvN3deM2XVB80BN/Q==} + + '@cspell/dict-en-common-misspellings@2.1.12': + resolution: {integrity: sha512-14Eu6QGqyksqOd4fYPuRb58lK1Va7FQK9XxFsRKnZU8LhL3N+kj7YKDW+7aIaAN/0WGEqslGP6lGbQzNti8Akw==} + + '@cspell/dict-en-gb-mit@3.1.18': + resolution: {integrity: sha512-AXaMzbaxhSc32MSzKX0cpwT+Thv1vPfxQz1nTly1VHw3wQcwPqVFSqrLOYwa8VNqAPR45583nnhD6iqJ9YESoQ==} + + '@cspell/dict-en_us@4.4.29': + resolution: {integrity: sha512-G3B27++9ziRdgbrY/G/QZdFAnMzzx17u8nCb2Xyd4q6luLpzViRM/CW3jA+Mb/cGT5zR/9N+Yz9SrGu1s0bq7g==} + + '@cspell/dict-filetypes@3.0.16': + resolution: {integrity: sha512-SyrtuK2/sx+cr94jOp2/uOAb43ngZEVISUTRj4SR6SfoGULVV1iJS7Drqn7Ul9HJ731QDttwWlOUgcQ+yMRblg==} + + '@cspell/dict-flutter@1.1.1': + resolution: {integrity: sha512-UlOzRcH2tNbFhZmHJN48Za/2/MEdRHl2BMkCWZBYs+30b91mWvBfzaN4IJQU7dUZtowKayVIF9FzvLZtZokc5A==} + + '@cspell/dict-fonts@4.0.5': + resolution: {integrity: sha512-BbpkX10DUX/xzHs6lb7yzDf/LPjwYIBJHJlUXSBXDtK/1HaeS+Wqol4Mlm2+NAgZ7ikIE5DQMViTgBUY3ezNoQ==} + + '@cspell/dict-fsharp@1.1.1': + resolution: {integrity: sha512-imhs0u87wEA4/cYjgzS0tAyaJpwG7vwtC8UyMFbwpmtw+/bgss+osNfyqhYRyS/ehVCWL17Ewx2UPkexjKyaBA==} + + '@cspell/dict-fullstack@3.2.8': + resolution: {integrity: sha512-J6EeoeThvx/DFrcA2rJiCA6vfqwJMbkG0IcXhlsmRZmasIpanmxgt90OEaUazbZahFiuJT8wrhgQ1QgD1MsqBw==} + + '@cspell/dict-gaming-terms@1.1.2': + resolution: {integrity: sha512-9XnOvaoTBscq0xuD6KTEIkk9hhdfBkkvJAIsvw3JMcnp1214OCGW8+kako5RqQ2vTZR3Tnf3pc57o7VgkM0q1Q==} + + '@cspell/dict-git@3.1.0': + resolution: {integrity: sha512-KEt9zGkxqGy2q1nwH4CbyqTSv5nadpn8BAlDnzlRcnL0Xb3LX9xTgSGShKvzb0bw35lHoYyLWN2ZKAqbC4pgGQ==} + + '@cspell/dict-golang@6.0.26': + resolution: {integrity: sha512-YKA7Xm5KeOd14v5SQ4ll6afe9VSy3a2DWM7L9uBq4u3lXToRBQ1W5PRa+/Q9udd+DTURyVVnQ+7b9cnOlNxaRg==} + + '@cspell/dict-google@1.0.9': + resolution: {integrity: sha512-biL65POqialY0i4g6crj7pR6JnBkbsPovB2WDYkj3H4TuC/QXv7Pu5pdPxeUJA6TSCHI7T5twsO4VSVyRxD9CA==} + + '@cspell/dict-haskell@4.0.6': + resolution: {integrity: sha512-ib8SA5qgftExpYNjWhpYIgvDsZ/0wvKKxSP+kuSkkak520iPvTJumEpIE+qPcmJQo4NzdKMN8nEfaeci4OcFAQ==} + + '@cspell/dict-html-symbol-entities@4.0.5': + resolution: {integrity: sha512-429alTD4cE0FIwpMucvSN35Ld87HCyuM8mF731KU5Rm4Je2SG6hmVx7nkBsLyrmH3sQukTcr1GaiZsiEg8svPA==} + + '@cspell/dict-html@4.0.14': + resolution: {integrity: sha512-2bf7n+kS92g+cMKV0wr9o/Oq9n8JzU7CcrB96gIh2GHgnF+0xDOqO2W/1KeFAqOfqosoOVE48t+4dnEMkkoJ2Q==} + + '@cspell/dict-java@5.0.12': + resolution: {integrity: sha512-qPSNhTcl7LGJ5Qp6VN71H8zqvRQK04S08T67knMq9hTA8U7G1sTKzLmBaDOFhq17vNX/+rT+rbRYp+B5Nwza1A==} + + '@cspell/dict-julia@1.1.1': + resolution: {integrity: sha512-WylJR9TQ2cgwd5BWEOfdO3zvDB+L7kYFm0I9u0s9jKHWQ6yKmfKeMjU9oXxTBxIufhCXm92SKwwVNAC7gjv+yA==} + + '@cspell/dict-k8s@1.0.12': + resolution: {integrity: sha512-2LcllTWgaTfYC7DmkMPOn9GsBWsA4DZdlun4po8s2ysTP7CPEnZc1ZfK6pZ2eI4TsZemlUQQ+NZxMe9/QutQxg==} + + '@cspell/dict-kotlin@1.1.1': + resolution: {integrity: sha512-J3NzzfgmxRvEeOe3qUXnSJQCd38i/dpF9/t3quuWh6gXM+krsAXP75dY1CzDmS8mrJAlBdVBeAW5eAZTD8g86Q==} + + '@cspell/dict-latex@5.1.0': + resolution: {integrity: sha512-qxT4guhysyBt0gzoliXYEBYinkAdEtR2M7goRaUH0a7ltCsoqqAeEV8aXYRIdZGcV77gYSobvu3jJL038tlPAw==} + + '@cspell/dict-lorem-ipsum@4.0.5': + resolution: {integrity: sha512-9a4TJYRcPWPBKkQAJ/whCu4uCAEgv/O2xAaZEI0n4y1/l18Yyx8pBKoIX5QuVXjjmKEkK7hi5SxyIsH7pFEK9Q==} + + '@cspell/dict-lua@4.0.8': + resolution: {integrity: sha512-N4PkgNDMu9JVsRu7JBS/3E/dvfItRgk9w5ga2dKq+JupP2Y3lojNaAVFhXISh4Y0a6qXDn2clA6nvnavQ/jjLA==} + + '@cspell/dict-makefile@1.0.5': + resolution: {integrity: sha512-4vrVt7bGiK8Rx98tfRbYo42Xo2IstJkAF4tLLDMNQLkQ86msDlYSKG1ZCk8Abg+EdNcFAjNhXIiNO+w4KflGAQ==} + + '@cspell/dict-markdown@2.0.14': + resolution: {integrity: sha512-uLKPNJsUcumMQTsZZgAK9RgDLyQhUz/uvbQTEkvF/Q4XfC1i/BnA8XrOrd0+Vp6+tPOKyA+omI5LRWfMu5K/Lw==} + peerDependencies: + '@cspell/dict-css': ^4.0.19 + '@cspell/dict-html': ^4.0.14 + '@cspell/dict-html-symbol-entities': ^4.0.5 + '@cspell/dict-typescript': ^3.2.3 + + '@cspell/dict-monkeyc@1.0.12': + resolution: {integrity: sha512-MN7Vs11TdP5mbdNFQP5x2Ac8zOBm97ARg6zM5Sb53YQt/eMvXOMvrep7+/+8NJXs0jkp70bBzjqU4APcqBFNAw==} + + '@cspell/dict-node@5.0.9': + resolution: {integrity: sha512-hO+ga+uYZ/WA4OtiMEyKt5rDUlUyu3nXMf8KVEeqq2msYvAPdldKBGH7lGONg6R/rPhv53Rb+0Y1SLdoK1+7wQ==} + + '@cspell/dict-npm@5.2.35': + resolution: {integrity: sha512-w0VIDUvzHSTt4S9pfvSatApxtCesLMFrDUYD0Wjtw91EBRkB2wVw/RV3q1Ni9Nzpx6pCFpcB7c1xBY8l22cyiQ==} + + '@cspell/dict-php@4.1.1': + resolution: {integrity: sha512-EXelI+4AftmdIGtA8HL8kr4WlUE11OqCSVlnIgZekmTkEGSZdYnkFdiJ5IANSALtlQ1mghKjz+OFqVs6yowgWA==} + + '@cspell/dict-powershell@5.0.15': + resolution: {integrity: sha512-l4S5PAcvCFcVDMJShrYD0X6Huv9dcsQPlsVsBGbH38wvuN7gS7+GxZFAjTNxDmTY1wrNi1cCatSg6Pu2BW4rgg==} + + '@cspell/dict-public-licenses@2.0.16': + resolution: {integrity: sha512-EQRrPvEOmwhwWezV+W7LjXbIBjiy6y/shrET6Qcpnk3XANTzfvWflf9PnJ5kId/oKWvihFy0za0AV1JHd03pSQ==} + + '@cspell/dict-python@4.2.25': + resolution: {integrity: sha512-hDdN0YhKgpbtZVRjQ2c8jk+n0wQdidAKj1Fk8w7KEHb3YlY5uPJ0mAKJk7AJKPNLOlILoUmN+HAVJz+cfSbWYg==} + + '@cspell/dict-r@2.1.1': + resolution: {integrity: sha512-71Ka+yKfG4ZHEMEmDxc6+blFkeTTvgKbKAbwiwQAuKl3zpqs1Y0vUtwW2N4b3LgmSPhV3ODVY0y4m5ofqDuKMw==} + + '@cspell/dict-ruby@5.1.0': + resolution: {integrity: sha512-9PJQB3cfkBULrMLp5kSAcFPpzf8oz9vFN+QYZABhQwWkGbuzCIXSorHrmWSASlx4yejt3brjaWS57zZ/YL5ZQQ==} + + '@cspell/dict-rust@4.1.2': + resolution: {integrity: sha512-O1FHrumYcO+HZti3dHfBPUdnDFkI+nbYK3pxYmiM1sr+G0ebOd6qchmswS0Wsc6ZdEVNiPYJY/gZQR6jfW3uOg==} + + '@cspell/dict-scala@5.0.9': + resolution: {integrity: sha512-AjVcVAELgllybr1zk93CJ5wSUNu/Zb5kIubymR/GAYkMyBdYFCZ3Zbwn4Zz8GJlFFAbazABGOu0JPVbeY59vGg==} + + '@cspell/dict-shell@1.1.2': + resolution: {integrity: sha512-WqOUvnwcHK1X61wAfwyXq04cn7KYyskg90j4lLg3sGGKMW9Sq13hs91pqrjC44Q+lQLgCobrTkMDw9Wyl9nRFA==} + + '@cspell/dict-software-terms@5.1.22': + resolution: {integrity: sha512-ELi8wqyDAreDpo17Pu45AuKvcrhqPCkGeL+DMuSVxEimBwEqPB+KeQ89DkVap6QDJHl3LCth0pjv8uOgS1dtdQ==} + + '@cspell/dict-sql@2.2.1': + resolution: {integrity: sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==} + + '@cspell/dict-svelte@1.0.7': + resolution: {integrity: sha512-hGZsGqP0WdzKkdpeVLBivRuSNzOTvN036EBmpOwxH+FTY2DuUH7ecW+cSaMwOgmq5JFSdTcbTNFlNC8HN8lhaQ==} + + '@cspell/dict-swift@2.0.6': + resolution: {integrity: sha512-PnpNbrIbex2aqU1kMgwEKvCzgbkHtj3dlFLPMqW1vSniop7YxaDTtvTUO4zA++ugYAEL+UK8vYrBwDPTjjvSnA==} + + '@cspell/dict-terraform@1.1.3': + resolution: {integrity: sha512-gr6wxCydwSFyyBKhBA2xkENXtVFToheqYYGFvlMZXWjviynXmh+NK/JTvTCk/VHk3+lzbO9EEQKee6VjrAUSbA==} + + '@cspell/dict-typescript@3.2.3': + resolution: {integrity: sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==} + + '@cspell/dict-vue@3.0.5': + resolution: {integrity: sha512-Mqutb8jbM+kIcywuPQCCaK5qQHTdaByoEO2J9LKFy3sqAdiBogNkrplqUK0HyyRFgCfbJUgjz3N85iCMcWH0JA==} + + '@cspell/dict-zig@1.0.0': + resolution: {integrity: sha512-XibBIxBlVosU06+M6uHWkFeT0/pW5WajDRYdXG2CgHnq85b0TI/Ks0FuBJykmsgi2CAD3Qtx8UHFEtl/DSFnAQ==} + + '@cspell/dynamic-import@9.7.0': + resolution: {integrity: sha512-Ws36IYvtS/8IN3x6K9dPLvTmaArodRJmzTn2Rkf2NaTnIYWhRuFzsP3SVVO59NN3fXswAEbmz5DSbVUe8bPZHg==} + engines: {node: '>=20'} + + '@cspell/filetypes@9.7.0': + resolution: {integrity: sha512-Ln9e/8wGOyTeL3DCCs6kwd18TSpTw3kxsANjTrzLDASrX4cNmAdvc9J5dcIuBHPaqOAnRQxuZbzUlpRh73Y24w==} + engines: {node: '>=20'} + + '@cspell/rpc@9.7.0': + resolution: {integrity: sha512-VnZ4ABgQeoS4RwofcePkDP7L6tf3Kh5D7LQKoyRM4R6XtfSsYefym6XKaRl3saGtthH5YyjgNJ0Tgdjen4wAAw==} + engines: {node: '>=20.18'} + + '@cspell/strong-weak-map@9.7.0': + resolution: {integrity: sha512-5xbvDASjklrmy88O6gmGXgYhpByCXqOj5wIgyvwZe2l83T1bE+iOfGI4pGzZJ/mN+qTn1DNKq8BPBPtDgb7Q2Q==} + engines: {node: '>=20'} + + '@cspell/url@9.7.0': + resolution: {integrity: sha512-ZaaBr0pTvNxmyUbIn+nVPXPr383VqJzfUDMWicgTjJIeo2+T2hOq2kNpgpvTIrWtZrsZnSP8oXms1+sKTjcvkw==} + engines: {node: '>=20'} + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -3465,6 +3702,9 @@ packages: resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} engines: {node: '>= 0.4'} + array-timsort@1.0.3: + resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} + array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -3617,6 +3857,10 @@ packages: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} + chalk-template@1.1.2: + resolution: {integrity: sha512-2bxTP2yUH7AJj/VAXfcA+4IcWGdQ87HwBANLt5XxGTeomo8yG0y95N1um9i5StvhT/Bl0/2cARA5v1PpPXUxUA==} + engines: {node: '>=14.16'} + chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -3661,6 +3905,10 @@ packages: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} + clear-module@4.1.2: + resolution: {integrity: sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==} + engines: {node: '>=8'} + cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} @@ -3693,6 +3941,10 @@ packages: resolution: {integrity: sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==} engines: {node: '>=8.0.0'} + commander@14.0.3: + resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} + engines: {node: '>=20'} + commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} @@ -3701,6 +3953,10 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} + comment-json@4.5.1: + resolution: {integrity: sha512-taEtr3ozUmOB7it68Jll7s0Pwm+aoiHyXKrEC8SEodL4rNpdfDLqa7PfBlrgFoCNNdR8ImL+muti5IGvktJAAg==} + engines: {node: '>= 6'} + commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -3713,6 +3969,9 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + cose-base@1.0.3: resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} @@ -3731,6 +3990,47 @@ packages: crypto-js@4.2.0: resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + cspell-config-lib@9.7.0: + resolution: {integrity: sha512-pguh8A3+bSJ1OOrKCiQan8bvaaY125de76OEFz7q1Pq309lIcDrkoL/W4aYbso/NjrXaIw6OjkgPMGRBI/IgGg==} + engines: {node: '>=20'} + + cspell-dictionary@9.7.0: + resolution: {integrity: sha512-k/Wz0so32+0QEqQe21V9m4BNXM5ZN6lz3Ix/jLCbMxFIPl6wT711ftjOWIEMFhvUOP0TWXsbzcuE9mKtS5mTig==} + engines: {node: '>=20'} + + cspell-gitignore@9.7.0: + resolution: {integrity: sha512-MtoYuH4ah4K6RrmaF834npMcRsTKw0658mC6yvmBacUQOmwB/olqyuxF3fxtbb55HDb7cXDQ35t1XuwwGEQeZw==} + engines: {node: '>=20'} + hasBin: true + + cspell-glob@9.7.0: + resolution: {integrity: sha512-LUeAoEsoCJ+7E3TnUmWBscpVQOmdwBejMlFn0JkXy6LQzxrybxXBKf65RSdIv1o5QtrhQIMa358xXYQG0sv/tA==} + engines: {node: '>=20'} + + cspell-grammar@9.7.0: + resolution: {integrity: sha512-oEYME+7MJztfVY1C06aGcJgEYyqBS/v/ETkQGPzf/c6ObSAPRcUbVtsXZgnR72Gru9aBckc70xJcD6bELdoWCA==} + engines: {node: '>=20'} + hasBin: true + + cspell-io@9.7.0: + resolution: {integrity: sha512-V7x0JHAUCcJPRCH8c0MQkkaKmZD2yotxVyrNEx2SZTpvnKrYscLEnUUTWnGJIIf9znzISqw116PLnYu2c+zd6Q==} + engines: {node: '>=20'} + + cspell-lib@9.7.0: + resolution: {integrity: sha512-aTx/aLRpnuY1RJnYAu+A8PXfm1oIUdvAQ4W9E66bTgp1LWI+2G2++UtaPxRIgI0olxE9vcXqUnKpjOpO+5W9bQ==} + engines: {node: '>=20'} + + cspell-trie-lib@9.7.0: + resolution: {integrity: sha512-a2YqmcraL3g6I/4gY7SYWEZfP73oLluUtxO7wxompk/kOG2K1FUXyQfZXaaR7HxVv10axT1+NrjhOmXpfbI6LA==} + engines: {node: '>=20'} + peerDependencies: + '@cspell/cspell-types': 9.7.0 + + cspell@9.7.0: + resolution: {integrity: sha512-ftxOnkd+scAI7RZ1/ksgBZRr0ouC7QRKtPQhD/PbLTKwAM62sSvRhE1bFsuW3VKBn/GilWzTjkJ40WmnDqH5iQ==} + engines: {node: '>=20.18'} + hasBin: true + css-color-keywords@1.0.0: resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} engines: {node: '>=4'} @@ -4047,6 +4347,10 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} + env-paths@4.0.0: + resolution: {integrity: sha512-pxP8eL2SwwaTRi/KHYwLYXinDs7gL3jxFcBYmEdYfZmZXbaVDvdppd0XBU8qVz03rDfKZMXg1omHCbsJjZrMsw==} + engines: {node: '>=20'} + err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} @@ -4240,6 +4544,10 @@ packages: resolution: {integrity: sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==} engines: {node: '>=6.0.0'} + fast-equals@6.0.0: + resolution: {integrity: sha512-PFhhIGgdM79r5Uztdj9Zb6Tt1zKafqVfdMGwVca1z5z6fbX7DmsySSuJd8HiP6I1j505DCS83cLxo5rmSNeVEA==} + engines: {node: '>=6.0.0'} + fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -4369,6 +4677,10 @@ packages: resolution: {integrity: sha512-xPypGGincdfyl/AiSGa7GjXLkvld9V7GjZlowup9SHIJnQnHLFiLODCd/DqKOp0PBagbHJ68r1KJI9Mut7m4sA==} engines: {node: '>= 0.4'} + gensequence@8.0.8: + resolution: {integrity: sha512-omMVniXEXpdx/vKxGnPRoO2394Otlze28TyxECbFVyoSpZ9H3EO7lemjcB12OpQJzRW4e5tt/dL1rOxry6aMHg==} + engines: {node: '>=20'} + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -4424,6 +4736,10 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + global-directory@5.0.0: + resolution: {integrity: sha512-1pgFdhK3J2LeM+dVf2Pd424yHx2ou338lC0ErNP2hPx4j8eW1Sp0XqSjNxtk6Tc4Kr5wlWtSvz8cn2yb7/SG/w==} + engines: {node: '>=20'} + globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -4546,6 +4862,9 @@ packages: resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} engines: {node: '>=8'} + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -4564,6 +4883,10 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + ini@6.0.0: + resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} + engines: {node: ^20.17.0 || >=22.9.0} + internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} @@ -4658,6 +4981,10 @@ packages: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} + is-safe-filename@0.1.1: + resolution: {integrity: sha512-4SrR7AdnY11LHfDKTZY1u6Ga3RuxZdl3YKWWShO5iyuG5h8QS4GD2tOb04peBJ5I7pXbR+CGBNEhTcwK+FzN3g==} + engines: {node: '>=20'} + is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} @@ -5263,6 +5590,10 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parent-module@2.0.0: + resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} + engines: {node: '>=8'} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -5558,6 +5889,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} @@ -5631,6 +5967,10 @@ packages: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + smol-toml@1.6.0: + resolution: {integrity: sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==} + engines: {node: '>= 18'} + socks-proxy-agent@8.0.5: resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} @@ -6032,6 +6372,12 @@ packages: terser: optional: true + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + web-worker@1.5.0: resolution: {integrity: sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==} @@ -6117,6 +6463,10 @@ packages: utf-8-validate: optional: true + xdg-basedir@5.1.0: + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} + y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} @@ -6134,6 +6484,11 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} @@ -6347,7 +6702,7 @@ snapshots: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.7.2 + semver: 7.7.4 '@changesets/assemble-release-plan@6.0.9': dependencies: @@ -6356,7 +6711,7 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 - semver: 7.7.2 + semver: 7.7.4 '@changesets/changelog-git@0.2.1': dependencies: @@ -6414,7 +6769,7 @@ snapshots: '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 picocolors: 1.1.1 - semver: 7.7.2 + semver: 7.7.4 '@changesets/get-release-plan@4.0.13': dependencies: @@ -6477,6 +6832,228 @@ snapshots: human-id: 4.1.1 prettier: 2.8.8 + '@cspell/cspell-bundled-dicts@9.7.0': + dependencies: + '@cspell/dict-ada': 4.1.1 + '@cspell/dict-al': 1.1.1 + '@cspell/dict-aws': 4.0.17 + '@cspell/dict-bash': 4.2.2 + '@cspell/dict-companies': 3.2.10 + '@cspell/dict-cpp': 7.0.2 + '@cspell/dict-cryptocurrencies': 5.0.5 + '@cspell/dict-csharp': 4.0.8 + '@cspell/dict-css': 4.0.19 + '@cspell/dict-dart': 2.3.2 + '@cspell/dict-data-science': 2.0.13 + '@cspell/dict-django': 4.1.6 + '@cspell/dict-docker': 1.1.17 + '@cspell/dict-dotnet': 5.0.12 + '@cspell/dict-elixir': 4.0.8 + '@cspell/dict-en-common-misspellings': 2.1.12 + '@cspell/dict-en-gb-mit': 3.1.18 + '@cspell/dict-en_us': 4.4.29 + '@cspell/dict-filetypes': 3.0.16 + '@cspell/dict-flutter': 1.1.1 + '@cspell/dict-fonts': 4.0.5 + '@cspell/dict-fsharp': 1.1.1 + '@cspell/dict-fullstack': 3.2.8 + '@cspell/dict-gaming-terms': 1.1.2 + '@cspell/dict-git': 3.1.0 + '@cspell/dict-golang': 6.0.26 + '@cspell/dict-google': 1.0.9 + '@cspell/dict-haskell': 4.0.6 + '@cspell/dict-html': 4.0.14 + '@cspell/dict-html-symbol-entities': 4.0.5 + '@cspell/dict-java': 5.0.12 + '@cspell/dict-julia': 1.1.1 + '@cspell/dict-k8s': 1.0.12 + '@cspell/dict-kotlin': 1.1.1 + '@cspell/dict-latex': 5.1.0 + '@cspell/dict-lorem-ipsum': 4.0.5 + '@cspell/dict-lua': 4.0.8 + '@cspell/dict-makefile': 1.0.5 + '@cspell/dict-markdown': 2.0.14(@cspell/dict-css@4.0.19)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.14)(@cspell/dict-typescript@3.2.3) + '@cspell/dict-monkeyc': 1.0.12 + '@cspell/dict-node': 5.0.9 + '@cspell/dict-npm': 5.2.35 + '@cspell/dict-php': 4.1.1 + '@cspell/dict-powershell': 5.0.15 + '@cspell/dict-public-licenses': 2.0.16 + '@cspell/dict-python': 4.2.25 + '@cspell/dict-r': 2.1.1 + '@cspell/dict-ruby': 5.1.0 + '@cspell/dict-rust': 4.1.2 + '@cspell/dict-scala': 5.0.9 + '@cspell/dict-shell': 1.1.2 + '@cspell/dict-software-terms': 5.1.22 + '@cspell/dict-sql': 2.2.1 + '@cspell/dict-svelte': 1.0.7 + '@cspell/dict-swift': 2.0.6 + '@cspell/dict-terraform': 1.1.3 + '@cspell/dict-typescript': 3.2.3 + '@cspell/dict-vue': 3.0.5 + '@cspell/dict-zig': 1.0.0 + + '@cspell/cspell-json-reporter@9.7.0': + dependencies: + '@cspell/cspell-types': 9.7.0 + + '@cspell/cspell-performance-monitor@9.7.0': {} + + '@cspell/cspell-pipe@9.7.0': {} + + '@cspell/cspell-resolver@9.7.0': + dependencies: + global-directory: 5.0.0 + + '@cspell/cspell-service-bus@9.7.0': {} + + '@cspell/cspell-types@9.7.0': {} + + '@cspell/cspell-worker@9.7.0': + dependencies: + cspell-lib: 9.7.0 + + '@cspell/dict-ada@4.1.1': {} + + '@cspell/dict-al@1.1.1': {} + + '@cspell/dict-aws@4.0.17': {} + + '@cspell/dict-bash@4.2.2': + dependencies: + '@cspell/dict-shell': 1.1.2 + + '@cspell/dict-companies@3.2.10': {} + + '@cspell/dict-cpp@7.0.2': {} + + '@cspell/dict-cryptocurrencies@5.0.5': {} + + '@cspell/dict-csharp@4.0.8': {} + + '@cspell/dict-css@4.0.19': {} + + '@cspell/dict-dart@2.3.2': {} + + '@cspell/dict-data-science@2.0.13': {} + + '@cspell/dict-django@4.1.6': {} + + '@cspell/dict-docker@1.1.17': {} + + '@cspell/dict-dotnet@5.0.12': {} + + '@cspell/dict-elixir@4.0.8': {} + + '@cspell/dict-en-common-misspellings@2.1.12': {} + + '@cspell/dict-en-gb-mit@3.1.18': {} + + '@cspell/dict-en_us@4.4.29': {} + + '@cspell/dict-filetypes@3.0.16': {} + + '@cspell/dict-flutter@1.1.1': {} + + '@cspell/dict-fonts@4.0.5': {} + + '@cspell/dict-fsharp@1.1.1': {} + + '@cspell/dict-fullstack@3.2.8': {} + + '@cspell/dict-gaming-terms@1.1.2': {} + + '@cspell/dict-git@3.1.0': {} + + '@cspell/dict-golang@6.0.26': {} + + '@cspell/dict-google@1.0.9': {} + + '@cspell/dict-haskell@4.0.6': {} + + '@cspell/dict-html-symbol-entities@4.0.5': {} + + '@cspell/dict-html@4.0.14': {} + + '@cspell/dict-java@5.0.12': {} + + '@cspell/dict-julia@1.1.1': {} + + '@cspell/dict-k8s@1.0.12': {} + + '@cspell/dict-kotlin@1.1.1': {} + + '@cspell/dict-latex@5.1.0': {} + + '@cspell/dict-lorem-ipsum@4.0.5': {} + + '@cspell/dict-lua@4.0.8': {} + + '@cspell/dict-makefile@1.0.5': {} + + '@cspell/dict-markdown@2.0.14(@cspell/dict-css@4.0.19)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.14)(@cspell/dict-typescript@3.2.3)': + dependencies: + '@cspell/dict-css': 4.0.19 + '@cspell/dict-html': 4.0.14 + '@cspell/dict-html-symbol-entities': 4.0.5 + '@cspell/dict-typescript': 3.2.3 + + '@cspell/dict-monkeyc@1.0.12': {} + + '@cspell/dict-node@5.0.9': {} + + '@cspell/dict-npm@5.2.35': {} + + '@cspell/dict-php@4.1.1': {} + + '@cspell/dict-powershell@5.0.15': {} + + '@cspell/dict-public-licenses@2.0.16': {} + + '@cspell/dict-python@4.2.25': + dependencies: + '@cspell/dict-data-science': 2.0.13 + + '@cspell/dict-r@2.1.1': {} + + '@cspell/dict-ruby@5.1.0': {} + + '@cspell/dict-rust@4.1.2': {} + + '@cspell/dict-scala@5.0.9': {} + + '@cspell/dict-shell@1.1.2': {} + + '@cspell/dict-software-terms@5.1.22': {} + + '@cspell/dict-sql@2.2.1': {} + + '@cspell/dict-svelte@1.0.7': {} + + '@cspell/dict-swift@2.0.6': {} + + '@cspell/dict-terraform@1.1.3': {} + + '@cspell/dict-typescript@3.2.3': {} + + '@cspell/dict-vue@3.0.5': {} + + '@cspell/dict-zig@1.0.0': {} + + '@cspell/dynamic-import@9.7.0': + dependencies: + '@cspell/url': 9.7.0 + import-meta-resolve: 4.2.0 + + '@cspell/filetypes@9.7.0': {} + + '@cspell/rpc@9.7.0': {} + + '@cspell/strong-weak-map@9.7.0': {} + + '@cspell/url@9.7.0': {} + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 @@ -6942,7 +7519,7 @@ snapshots: '@ledgerhq/errors': 6.25.0 '@ledgerhq/logs': 6.13.0 rxjs: 7.8.2 - semver: 7.7.2 + semver: 7.7.4 '@ledgerhq/domain-service@1.2.44(debug@4.4.3)': dependencies: @@ -7199,7 +7776,7 @@ snapshots: '@npmcli/fs@5.0.0': dependencies: - semver: 7.7.2 + semver: 7.7.4 '@openzeppelin/contracts@5.1.0': {} @@ -7821,6 +8398,8 @@ snapshots: is-string: 1.1.1 math-intrinsics: 1.1.0 + array-timsort@1.0.3: {} + array-union@2.1.0: {} array.prototype.findlastindex@1.2.6: @@ -8014,6 +8593,10 @@ snapshots: chai@6.2.2: {} + chalk-template@1.1.2: + dependencies: + chalk: 5.6.2 + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 @@ -8047,6 +8630,11 @@ snapshots: clean-stack@2.2.0: {} + clear-module@4.1.2: + dependencies: + parent-module: 2.0.0 + resolve-from: 5.0.0 + cliui@6.0.0: dependencies: string-width: 4.2.3 @@ -8089,10 +8677,18 @@ snapshots: table-layout: 1.0.2 typical: 5.2.0 + commander@14.0.3: {} + commander@7.2.0: {} commander@8.3.0: {} + comment-json@4.5.1: + dependencies: + array-timsort: 1.0.3 + core-util-is: 1.0.3 + esprima: 4.0.1 + commondir@1.0.1: {} concat-map@0.0.1: {} @@ -8101,6 +8697,8 @@ snapshots: convert-source-map@2.0.0: {} + core-util-is@1.0.3: {} + cose-base@1.0.3: dependencies: layout-base: 1.0.2 @@ -8119,6 +8717,97 @@ snapshots: crypto-js@4.2.0: {} + cspell-config-lib@9.7.0: + dependencies: + '@cspell/cspell-types': 9.7.0 + comment-json: 4.5.1 + smol-toml: 1.6.0 + yaml: 2.8.2 + + cspell-dictionary@9.7.0: + dependencies: + '@cspell/cspell-performance-monitor': 9.7.0 + '@cspell/cspell-pipe': 9.7.0 + '@cspell/cspell-types': 9.7.0 + cspell-trie-lib: 9.7.0(@cspell/cspell-types@9.7.0) + fast-equals: 6.0.0 + + cspell-gitignore@9.7.0: + dependencies: + '@cspell/url': 9.7.0 + cspell-glob: 9.7.0 + cspell-io: 9.7.0 + + cspell-glob@9.7.0: + dependencies: + '@cspell/url': 9.7.0 + picomatch: 4.0.3 + + cspell-grammar@9.7.0: + dependencies: + '@cspell/cspell-pipe': 9.7.0 + '@cspell/cspell-types': 9.7.0 + + cspell-io@9.7.0: + dependencies: + '@cspell/cspell-service-bus': 9.7.0 + '@cspell/url': 9.7.0 + + cspell-lib@9.7.0: + dependencies: + '@cspell/cspell-bundled-dicts': 9.7.0 + '@cspell/cspell-performance-monitor': 9.7.0 + '@cspell/cspell-pipe': 9.7.0 + '@cspell/cspell-resolver': 9.7.0 + '@cspell/cspell-types': 9.7.0 + '@cspell/dynamic-import': 9.7.0 + '@cspell/filetypes': 9.7.0 + '@cspell/rpc': 9.7.0 + '@cspell/strong-weak-map': 9.7.0 + '@cspell/url': 9.7.0 + clear-module: 4.1.2 + cspell-config-lib: 9.7.0 + cspell-dictionary: 9.7.0 + cspell-glob: 9.7.0 + cspell-grammar: 9.7.0 + cspell-io: 9.7.0 + cspell-trie-lib: 9.7.0(@cspell/cspell-types@9.7.0) + env-paths: 4.0.0 + gensequence: 8.0.8 + import-fresh: 3.3.1 + resolve-from: 5.0.0 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + xdg-basedir: 5.1.0 + + cspell-trie-lib@9.7.0(@cspell/cspell-types@9.7.0): + dependencies: + '@cspell/cspell-types': 9.7.0 + + cspell@9.7.0: + dependencies: + '@cspell/cspell-json-reporter': 9.7.0 + '@cspell/cspell-performance-monitor': 9.7.0 + '@cspell/cspell-pipe': 9.7.0 + '@cspell/cspell-types': 9.7.0 + '@cspell/cspell-worker': 9.7.0 + '@cspell/dynamic-import': 9.7.0 + '@cspell/url': 9.7.0 + ansi-regex: 6.2.2 + chalk: 5.6.2 + chalk-template: 1.1.2 + commander: 14.0.3 + cspell-config-lib: 9.7.0 + cspell-dictionary: 9.7.0 + cspell-gitignore: 9.7.0 + cspell-glob: 9.7.0 + cspell-io: 9.7.0 + cspell-lib: 9.7.0 + fast-json-stable-stringify: 2.1.0 + flatted: 3.3.3 + semver: 7.7.4 + tinyglobby: 0.2.15 + css-color-keywords@1.0.0: {} css-to-react-native@3.2.0: @@ -8458,6 +9147,10 @@ snapshots: env-paths@2.2.1: {} + env-paths@4.0.0: + dependencies: + is-safe-filename: 0.1.1 + err-code@2.0.3: {} es-abstract@1.24.0: @@ -8776,6 +9469,8 @@ snapshots: fast-equals@5.4.0: {} + fast-equals@6.0.0: {} + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -8903,6 +9598,8 @@ snapshots: generator-function@2.0.0: {} + gensequence@8.0.8: {} + gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -8980,6 +9677,10 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + global-directory@5.0.0: + dependencies: + ini: 6.0.0 + globals@14.0.0: {} globals@16.0.0: {} @@ -9093,6 +9794,8 @@ snapshots: import-lazy@4.0.0: {} + import-meta-resolve@4.2.0: {} + imurmurhash@0.1.4: {} indent-string@4.0.0: {} @@ -9106,6 +9809,8 @@ snapshots: ini@1.3.8: {} + ini@6.0.0: {} + internal-slot@1.1.0: dependencies: es-errors: 1.3.0 @@ -9202,6 +9907,8 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 + is-safe-filename@0.1.1: {} + is-set@2.0.3: {} is-shared-array-buffer@1.0.4: @@ -9431,7 +10138,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.2 + semver: 7.7.4 make-error@1.3.6: {} @@ -9772,7 +10479,7 @@ snapshots: node-abi@3.75.0: dependencies: - semver: 7.7.2 + semver: 7.7.4 node-addon-api@2.0.2: {} @@ -9963,6 +10670,10 @@ snapshots: dependencies: callsites: 3.1.0 + parent-module@2.0.0: + dependencies: + callsites: 3.1.0 + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -10263,6 +10974,8 @@ snapshots: semver@7.7.2: {} + semver@7.7.4: {} + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 @@ -10354,6 +11067,8 @@ snapshots: smart-buffer@4.2.0: {} + smol-toml@1.6.0: {} + socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 @@ -10815,6 +11530,10 @@ snapshots: '@types/node': 22.18.7 fsevents: 2.3.3 + vscode-languageserver-textdocument@1.0.12: {} + + vscode-uri@3.1.0: {} + web-worker@1.5.0: {} which-boxed-primitive@1.1.1: @@ -10908,6 +11627,8 @@ snapshots: ws@8.18.3: {} + xdg-basedir@5.1.0: {} + y18n@4.0.3: {} y18n@5.0.8: {} @@ -10918,6 +11639,8 @@ snapshots: yallist@5.0.0: {} + yaml@2.8.2: {} + yargs-parser@18.1.3: dependencies: camelcase: 5.3.1 From bfab46508fcf90a72a0d3434295b57aec8eb8e5b Mon Sep 17 00:00:00 2001 From: Patricio Palladino Date: Wed, 4 Mar 2026 12:51:24 +0000 Subject: [PATCH 03/16] Add new cspell config and project dictionary --- cspell.config.mts | 26 ++++++ cspell.dictionary.txt | 207 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 233 insertions(+) create mode 100644 cspell.config.mts create mode 100644 cspell.dictionary.txt diff --git a/cspell.config.mts b/cspell.config.mts new file mode 100644 index 00000000000..9b7e8703d94 --- /dev/null +++ b/cspell.config.mts @@ -0,0 +1,26 @@ +import { defineConfig } from "cspell"; + +export default defineConfig({ + version: "0.2", + language: "en", + files: [ + "*.{js,ts,md,json}", + "{.github,scripts,v-next}/**/*.{js,ts,md,yml,yaml}", + ], + ignoreRandomStrings: true, + allowCompoundWords: true, + dictionaryDefinitions: [ + { + name: "project-dictionary", + path: "./cspell.dictionary.txt", + addWords: true, + }, + ], + dictionaries: ["project-dictionary"], + ignorePaths: [ + "node_modules", + "v-next/*/node_modules", + "v-next/*/dist", + "v-next/*/CHANGELOG.md", + ], +}); diff --git a/cspell.dictionary.txt b/cspell.dictionary.txt new file mode 100644 index 00000000000..f771e99081c --- /dev/null +++ b/cspell.dictionary.txt @@ -0,0 +1,207 @@ +aabb +abicoder +Abicoder +accum +addy +ALIYUN +anonymization +APDU +arrayified +artio +asdas +asdasd +asdjkhads +asdr +authorizationify +basesepolia +bbccddeeff +bdsw +behaviour +berachain +besu +Besu +blinenums +BRDA +bunx +cbor +CBOR +cbranch +Ccip +chainid +CHAINID +choco +concisify +Couldnt +createx +cstat +Customise +cwrap +daftmjifrfhiuhf +deadbe +Dedominici +dedup +defi +Defi +dessant +distros +DISTROS +dont +dorny +dsari +dtolnay +efcafebabe +elif +Elytro +encodec +enero +esac +esbuild +EURS +EXLOCK +Extsload +fgrep +finalised +fooasd +Foooo +fqns +Fqns +FQNs +gcda +grom +hdkey +hdpath +heco +hekla +hexlify +hoodi +Hoodi +igreeter +Impls +Initialisation +initialise +interruptor +Interruptor +Ints +isnt +jhasd +journaled +Journaled +Jsons +kalidao +kanej +keccak +Keccak +klass +kpcpicx +Ksync +ledgerhq +libudev +linea +Linea +linearization +linenums +Listify +lpxkm +moreutils +mprv +msvc +myfun +mykey +mylib +mylock +napi +ndation +niño +Nomic +nomiclabs +normalise +NOTOK +Numberish +onuncaughtexception +Ozcs +pcaversaccio +perché +perché +placeholderplaceholderplaceholderp +popd +PREVRANDAO +pushd +qres +Queryer +randao +Randao +rari +recompiles +reconciliable +reconiliation +Reentrancy +reserialized +Rhah +sarasa +schaable +scrollsepolia +sokol +solady +solcjs +SOLCJS +solenv +sourcify +Sourcify +SOURCIFY +ssfi +Ssfi +stringifying +substituters +supath +synthetix +Synthetix +taiko +thisisnotvalidjson +tranched +triaging +txts +ufixed +Uints +Uncontended +unidici +unmined +unpad +unpadded +unparseable +Unpayable +unreconciliable +unrs +Unstarted +UNSTARTED +verbosities +Vercel +VERCEL +viem +Viem +VIEM +visualising +vqqnawhkfhzfrcpnxj +WAAIT +withargs +wordz +xabcdefg +xanother +xblock +xblockhas +xblockhash +xbytecodebytecodebytecode +xcontractaddress +xdai +xgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg +xnot +xnotanaddress +xtest +yalc +Yalc +Ypgiat +ZFZWHGZ +zkevm +zksync +zode +zoey +zora From ce928279276fe4d79c25673b9ad887b54656831e Mon Sep 17 00:00:00 2001 From: Patricio Palladino Date: Wed, 4 Mar 2026 12:52:59 +0000 Subject: [PATCH 04/16] Add some instructions when cspell fails --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c26ac808a9a..83016bbc868 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "prelint:fix": "pnpm build", "lint:fix": "pnpm run --recursive --if-present lint:fix", "version-for-release": "pnpm changeset version && node scripts/bump-peers.mjs apply && pnpm -w install --lockfile-only", - "spellcheck": "cspell --no-progress" + "spellcheck": "cspell --no-progress || echo 'cspell failed. If you think a word is correctly spelled, please add it to cspell.dictionary.txt'" }, "pnpm": { "onlyBuiltDependencies": [ From 673ffaea10f118972d7bda048d923fc73d62970a Mon Sep 17 00:00:00 2001 From: Patricio Palladino Date: Wed, 4 Mar 2026 12:53:53 +0000 Subject: [PATCH 05/16] Update spellcheck workflow --- .github/workflows/spellcheck.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index a9f5a7ba533..ff90684b210 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -14,8 +14,13 @@ jobs: steps: - uses: actions/checkout@v5 - - uses: streetsidesoftware/cspell-action@v7 + - uses: pnpm/action-setup@v4 + + - uses: actions/setup-node@v4 with: - incremental_files_only: ${{ github.event_name == 'pull_request' }} - config: cspell.yaml - report: typos + node-version: 24 + cache: pnpm + + - run: pnpm install --frozen-lockfile --prefer-offline + + - run: pnpm spellcheck From e0a591a03a16d6a08ae4fc90ff73a31f590064c7 Mon Sep 17 00:00:00 2001 From: Patricio Palladino Date: Wed, 4 Mar 2026 13:41:37 +0000 Subject: [PATCH 06/16] Ignore regression tests --- cspell.config.mts | 1 + 1 file changed, 1 insertion(+) diff --git a/cspell.config.mts b/cspell.config.mts index 9b7e8703d94..db4114a9b6e 100644 --- a/cspell.config.mts +++ b/cspell.config.mts @@ -22,5 +22,6 @@ export default defineConfig({ "v-next/*/node_modules", "v-next/*/dist", "v-next/*/CHANGELOG.md", + ".github/config/regression-tests.yml", ], }); From df65e87fdf1560bfab281f15202bb1f3917d53a5 Mon Sep 17 00:00:00 2001 From: Patricio Palladino Date: Wed, 4 Mar 2026 13:41:50 +0000 Subject: [PATCH 07/16] Fix typos --- cspell.dictionary.txt | 2 ++ v-next/config/eslint.config.js | 2 +- v-next/hardhat-errors/src/errors.ts | 14 ++++----- v-next/hardhat-errors/test/errors.ts | 30 +++++++++---------- .../test/matchers/events.ts | 2 +- .../reverted/revertedWithCustomError.ts | 4 +-- v-next/hardhat-ethers/test/no-accounts.ts | 10 +++---- .../test/plugin-functionalities.ts | 6 ++-- .../src/internal/keystores/encryption.ts | 8 ++--- v-next/hardhat-keystore/src/internal/types.ts | 2 +- .../test/keystores/encryption.ts | 4 +-- .../fixture-tests/example-test/result.txt | 4 +-- .../fixture-tests/example-test/test.ts | 4 +-- .../integration-tests/index.ts | 2 +- .../src/diagnostics.ts | 2 +- .../src/error-formatting.ts | 2 +- v-next/hardhat-viem/src/internal/contracts.ts | 4 +-- v-next/hardhat-zod-utils/src/index.ts | 6 ++-- .../network-manager/edr/edr-provider.ts | 2 +- .../solidity-test/edr-artifacts.ts | 4 +-- .../solidity-test/task-action.ts | 18 +++++------ .../build-system/compiler/compiler.ts | 2 +- .../solidity/build-system/dependency-graph.ts | 2 +- .../resolver/remapped-npm-packages-graph.ts | 2 +- .../solidity/build-system/resolver/types.ts | 4 +-- .../build-system/solc-config-selection.ts | 6 ++-- .../builtin-plugins/solidity/config.ts | 4 +-- .../cli/telemetry/sentry/anonymize-paths.ts | 2 +- .../vendor/integrations/contextlines.ts | 20 ++++++------- .../src/internal/core/user-interruptions.ts | 2 +- v-next/hardhat/src/types/artifacts.ts | 2 +- v-next/hardhat/src/types/hre.ts | 2 +- v-next/hardhat/src/types/network.ts | 2 +- .../src/types/solidity/build-system.ts | 2 +- .../src/types/solidity/resolved-file.ts | 4 +-- .../coverage/coverage-manager.ts | 12 ++++---- .../network-manager/edr/edr-provider.ts | 2 +- .../resolver/dependency-resolver.ts | 4 +-- v-next/hardhat/test/internal/cli/init/init.ts | 2 +- .../test/internal/hre-initialization.ts | 2 +- .../src/internal/execution/abi.ts | 2 +- .../execution/deployment-state-helpers.ts | 2 +- .../src/internal/module-builder.ts | 10 +++---- .../src/internal/reconciliation/reconciler.ts | 4 +-- v-next/ignition-core/src/types/artifact.ts | 2 +- v-next/ignition-core/test/execution/abi.ts | 2 +- .../ignition-core/test/execution/libraries.ts | 2 +- .../ignition-core/test/readEventArgument.ts | 4 +-- .../test/reconciliation/helpers.ts | 2 +- .../test/reconciliation/reconciler.ts | 6 ++-- .../test/types/deployment-loader.ts | 2 +- 51 files changed, 124 insertions(+), 124 deletions(-) diff --git a/cspell.dictionary.txt b/cspell.dictionary.txt index f771e99081c..35b3c0bdcb3 100644 --- a/cspell.dictionary.txt +++ b/cspell.dictionary.txt @@ -159,7 +159,9 @@ taiko thisisnotvalidjson tranched triaging +tset txts +uage ufixed Uints Uncontended diff --git a/v-next/config/eslint.config.js b/v-next/config/eslint.config.js index 5040f92eb1d..894feb22da3 100644 --- a/v-next/config/eslint.config.js +++ b/v-next/config/eslint.config.js @@ -489,7 +489,7 @@ export function createConfig( "no-restricted-syntax": [ ...noRestrictedSyntaxRules, { - // This is a best effor selector that forbids every throw unless it's a `new HardhatError`, + // This is a best effort selector that forbids every throw unless it's a `new HardhatError`, // or throwing a variable within a catch clause. selector: "ThrowStatement:not(:has(ThrowStatement > NewExpression[callee.name='HardhatError']), CatchClause ThrowStatement:has(ThrowStatement > Identifier))", diff --git a/v-next/hardhat-errors/src/errors.ts b/v-next/hardhat-errors/src/errors.ts index 55c1313cdea..84241ac7ad3 100644 --- a/v-next/hardhat-errors/src/errors.ts +++ b/v-next/hardhat-errors/src/errors.ts @@ -15,24 +15,24 @@ export type ErrorMessageTemplateValue = | ErrorMessageTemplateValue[] | { toString(): string }; -export type MessagetTemplateArguments = +export type MessageTemplateArguments = MessageTemplateT extends `${string}{${infer Tag}}${infer Rest}` ? { [K in | Tag - | keyof MessagetTemplateArguments]: ErrorMessageTemplateValue; + | keyof MessageTemplateArguments]: ErrorMessageTemplateValue; } : {}; export type HardhatErrorConstructorArguments< ErrorDescriptorT extends ErrorDescriptor, -> = keyof MessagetTemplateArguments< +> = keyof MessageTemplateArguments< ErrorDescriptorT["messageTemplate"] > extends never ? [ErrorDescriptorT, Error?] : [ ErrorDescriptorT, - MessagetTemplateArguments, + MessageTemplateArguments, Error?, ]; @@ -53,7 +53,7 @@ export class HardhatError< readonly #descriptor: ErrorDescriptorT; - readonly #arguments: MessagetTemplateArguments< + readonly #arguments: MessageTemplateArguments< ErrorDescriptorT["messageTemplate"] >; @@ -99,7 +99,7 @@ export class HardhatError< /* eslint-disable @typescript-eslint/consistent-type-assertions -- Typescript inference get's lost here, but we know that if we didn't get arguments, it's because the error doesn't have any. */ - this.#arguments = {} as MessagetTemplateArguments< + this.#arguments = {} as MessageTemplateArguments< ErrorDescriptorT["messageTemplate"] >; } else { @@ -171,7 +171,7 @@ export class HardhatError< return this.#descriptor; } - public get messageArguments(): MessagetTemplateArguments< + public get messageArguments(): MessageTemplateArguments< ErrorDescriptorT["messageTemplate"] > { return this.#arguments; diff --git a/v-next/hardhat-errors/test/errors.ts b/v-next/hardhat-errors/test/errors.ts index aacc8c78163..e110720bdac 100644 --- a/v-next/hardhat-errors/test/errors.ts +++ b/v-next/hardhat-errors/test/errors.ts @@ -1,7 +1,7 @@ import type { ErrorDescriptor } from "../src/descriptors.js"; import type { ErrorMessageTemplateValue, - MessagetTemplateArguments, + MessageTemplateArguments, } from "../src/errors.js"; import assert from "node:assert/strict"; @@ -532,61 +532,59 @@ describe("Type tests", () => { }); }); - describe("MessagetTemplateArguments type", () => { + describe("MessageTemplateArguments type", () => { it("Should work with no variables", () => { - expectTypeOf>().toEqualTypeOf<{}>(); + expectTypeOf>().toEqualTypeOf<{}>(); }); it("Should work with a single variable", () => { - expectTypeOf>().toEqualTypeOf<{ + expectTypeOf>().toEqualTypeOf<{ hello: ErrorMessageTemplateValue; }>(); - expectTypeOf>().toEqualTypeOf<{ + expectTypeOf>().toEqualTypeOf<{ hello: ErrorMessageTemplateValue; }>(); expectTypeOf< - MessagetTemplateArguments<"asdjkhads {hello}"> + MessageTemplateArguments<"asdjkhads {hello}"> >().toEqualTypeOf<{ hello: ErrorMessageTemplateValue; }>(); - expectTypeOf< - MessagetTemplateArguments<"{hello} asdasd"> - >().toEqualTypeOf<{ + expectTypeOf>().toEqualTypeOf<{ hello: ErrorMessageTemplateValue; }>(); expectTypeOf< - MessagetTemplateArguments<"asdasd {hello} asdasd"> + MessageTemplateArguments<"asdasd {hello} asdasd"> >().toEqualTypeOf<{ hello: ErrorMessageTemplateValue; }>(); }); it("Should work with multiple variables", () => { - expectTypeOf>().toEqualTypeOf<{ + expectTypeOf>().toEqualTypeOf<{ hello: ErrorMessageTemplateValue; hola: ErrorMessageTemplateValue; }>(); expectTypeOf< - MessagetTemplateArguments<"{hello}asdas{hola}"> + MessageTemplateArguments<"{hello}asdas{hola}"> >().toEqualTypeOf<{ hello: ErrorMessageTemplateValue; hola: ErrorMessageTemplateValue; }>(); expectTypeOf< - MessagetTemplateArguments<"asd {hello}asdas{hola}"> + MessageTemplateArguments<"asd {hello}asdas{hola}"> >().toEqualTypeOf<{ hello: ErrorMessageTemplateValue; hola: ErrorMessageTemplateValue; }>(); expectTypeOf< - MessagetTemplateArguments<"asd{hola}asd {hello}asdas"> + MessageTemplateArguments<"asd{hola}asd {hello}asdas"> >().toEqualTypeOf<{ hello: ErrorMessageTemplateValue; hola: ErrorMessageTemplateValue; @@ -595,7 +593,7 @@ describe("Type tests", () => { it("Should work with repeated variables", () => { expectTypeOf< - MessagetTemplateArguments<"asd{hola}asd {hello}asdas{hello},asd,jhasd {hola}"> + MessageTemplateArguments<"asd{hola}asd {hello}asdas{hello},asd,jhasd {hola}"> >().toEqualTypeOf<{ hello: ErrorMessageTemplateValue; hola: ErrorMessageTemplateValue; @@ -604,7 +602,7 @@ describe("Type tests", () => { describe("Edge cases", () => { it("Should support {}", () => { - expectTypeOf>().toEqualTypeOf<{ + expectTypeOf>().toEqualTypeOf<{ /* eslint-disable-next-line @typescript-eslint/naming-convention -- This test case is intentionally testing a weird variable name */ "": ErrorMessageTemplateValue; diff --git a/v-next/hardhat-ethers-chai-matchers/test/matchers/events.ts b/v-next/hardhat-ethers-chai-matchers/test/matchers/events.ts index 2c9955c682e..6e52185a363 100644 --- a/v-next/hardhat-ethers-chai-matchers/test/matchers/events.ts +++ b/v-next/hardhat-ethers-chai-matchers/test/matchers/events.ts @@ -355,7 +355,7 @@ describe(".to.emit (contract events)", { timeout: 60000 }, () => { ); }); - it("should fail the passerd argument is the hash, not the pre-image", async () => { + it("should fail the passed argument is the hash, not the pre-image", async () => { await expect( expect(contract.emitIndexedBytes(str1.bytes)) .to.emit(contract, "WithIndexedBytesArg") diff --git a/v-next/hardhat-ethers-chai-matchers/test/matchers/reverted/revertedWithCustomError.ts b/v-next/hardhat-ethers-chai-matchers/test/matchers/reverted/revertedWithCustomError.ts index 8126b94d8b0..838b1c2c42d 100644 --- a/v-next/hardhat-ethers-chai-matchers/test/matchers/reverted/revertedWithCustomError.ts +++ b/v-next/hardhat-ethers-chai-matchers/test/matchers/reverted/revertedWithCustomError.ts @@ -489,10 +489,10 @@ describe("INTEGRATION: Reverted with custom error", { timeout: 60000 }, () => { () => expect( matchers.revertWithSomeCustomError(), - ).to.be.revertedWithCustomError(matchers, "SomeCustmError"), + ).to.be.revertedWithCustomError(matchers, "SomeCustomError"), (e) => e.message.includes( - `The given contract doesn't have a custom error named "SomeCustmError"`, + `The given contract doesn't have a custom error named "SomeCustomError"`, ), "Expected custom error not found error message", ); diff --git a/v-next/hardhat-ethers/test/no-accounts.ts b/v-next/hardhat-ethers/test/no-accounts.ts index 52878cf5538..8785afcb629 100644 --- a/v-next/hardhat-ethers/test/no-accounts.ts +++ b/v-next/hardhat-ethers/test/no-accounts.ts @@ -61,10 +61,10 @@ describe("hardhat-ethers plugin", () => { ); if (receipt === null) { - assert.fail("receipt shoudn't be null"); + assert.fail("receipt shouldn't be null"); } if (receipt.contractAddress === null) { - assert.fail("receipt.contractAddress shoudn't be null"); + assert.fail("receipt.contractAddress shouldn't be null"); } const contract = await ethers.getContractAt( @@ -90,10 +90,10 @@ describe("hardhat-ethers plugin", () => { ); if (receipt === null) { - assert.fail("receipt shoudn't be null"); + assert.fail("receipt shouldn't be null"); } if (receipt.contractAddress === null) { - assert.fail("receipt.contractAddress shoudn't be null"); + assert.fail("receipt.contractAddress shouldn't be null"); } const signers = await ethers.getSigners(); @@ -168,7 +168,7 @@ async function deployGreeter( const receipt = await ethers.provider.getTransactionReceipt(txHash); if (receipt === null) { - assert.fail("receipt shoudn't be null"); + assert.fail("receipt shouldn't be null"); } assert.equal(receipt.status, 1, "The deployment transaction failed."); diff --git a/v-next/hardhat-ethers/test/plugin-functionalities.ts b/v-next/hardhat-ethers/test/plugin-functionalities.ts index f247ec32a11..c47dac533f3 100644 --- a/v-next/hardhat-ethers/test/plugin-functionalities.ts +++ b/v-next/hardhat-ethers/test/plugin-functionalities.ts @@ -206,7 +206,7 @@ describe("Ethers plugin", () => { const response = await sig.sendTransaction(tx); const receipt = await response.wait(); if (receipt === null) { - assert.fail("receipt shoudn't be null"); + assert.fail("receipt shouldn't be null"); } assert.equal(receipt.status, 1); }); @@ -1043,10 +1043,10 @@ describe("Ethers plugin", () => { const receipt = await response.wait(); if (receipt === null) { - assert.fail("receipt shoudn't be null"); + assert.fail("receipt shouldn't be null"); } if (receipt.contractAddress === null) { - assert.fail("receipt.contractAddress shoudn't be null"); + assert.fail("receipt.contractAddress shouldn't be null"); } let code = await ethers.provider.getCode(receipt.contractAddress); diff --git a/v-next/hardhat-keystore/src/internal/keystores/encryption.ts b/v-next/hardhat-keystore/src/internal/keystores/encryption.ts index 509fb47a2c5..817af1a6708 100644 --- a/v-next/hardhat-keystore/src/internal/keystores/encryption.ts +++ b/v-next/hardhat-keystore/src/internal/keystores/encryption.ts @@ -16,7 +16,7 @@ export const PASSWORD_NORMALIZATION_FORM = "NFKC" as const; // And: https://github.com/paulmillr/noble-hashes/blob/5cadc86d2cae1184607989817854813ecc7033a9/README.md // Parameters based on OWASP's cheat sheet: N=2^17 (128 MiB), r=8 (1024 bytes), p=1 -export const KEY_DERIVARION_ALGORITHM = "scrypt" as const; +export const KEY_DERIVATION_ALGORITHM = "scrypt" as const; export const KEY_DERIVATION_PARAM_N = 131_072 as const; export const KEY_DERIVATION_PARAM_R = 8 as const; export const KEY_DERIVATION_PARAM_P = 1 as const; @@ -39,13 +39,13 @@ export const DATA_ENCRYPTION_IV_LENGTH_BYTES = 12 as const; /** * This interface represents an encrypted keystore. * - * Every data buffer here is represented as a hex string (withoyt "0x" prefix). + * Every data buffer here is represented as a hex string (without "0x" prefix). */ export interface EncryptedKeystore { version: typeof KEYSTORE_VERSION; crypto: { masterKeyDerivation: { - algorithm: typeof KEY_DERIVARION_ALGORITHM; + algorithm: typeof KEY_DERIVATION_ALGORITHM; paramN: typeof KEY_DERIVATION_PARAM_N; paramP: typeof KEY_DERIVATION_PARAM_P; paramR: typeof KEY_DERIVATION_PARAM_R; @@ -333,7 +333,7 @@ export function createEmptyEncryptedKeystore({ version: KEYSTORE_VERSION, crypto: { masterKeyDerivation: { - algorithm: KEY_DERIVARION_ALGORITHM, + algorithm: KEY_DERIVATION_ALGORITHM, paramN: KEY_DERIVATION_PARAM_N, paramP: KEY_DERIVATION_PARAM_P, paramR: KEY_DERIVATION_PARAM_R, diff --git a/v-next/hardhat-keystore/src/internal/types.ts b/v-next/hardhat-keystore/src/internal/types.ts index 9c33c47d0e6..11f83591936 100644 --- a/v-next/hardhat-keystore/src/internal/types.ts +++ b/v-next/hardhat-keystore/src/internal/types.ts @@ -14,7 +14,7 @@ export interface Keystore { * The KeystoreLoader is responsible for loading and saving the in-memory * keystore from and to the on-disk keystore file. * - * As part of those tasks, it has responsilibty for: + * As part of those tasks, it has responsibility for: * - validating that the on-disk keystore file meets the expected structure * during loading * - caching the in-memory keystore to reduce IO during loads diff --git a/v-next/hardhat-keystore/test/keystores/encryption.ts b/v-next/hardhat-keystore/test/keystores/encryption.ts index de2280aee26..7cbff047e20 100644 --- a/v-next/hardhat-keystore/test/keystores/encryption.ts +++ b/v-next/hardhat-keystore/test/keystores/encryption.ts @@ -28,7 +28,7 @@ import { HMAC_KEY_LENGTH_BITS, InvalidHmacError, HmacKeyDecryptionError, - KEY_DERIVARION_ALGORITHM, + KEY_DERIVATION_ALGORITHM, KEY_DERIVATION_PARAM_N, KEY_DERIVATION_PARAM_P, KEY_DERIVATION_PARAM_R, @@ -326,7 +326,7 @@ describe("Keystore primitives", () => { assert.equal(emptyKeystore.version, KEYSTORE_VERSION); assert.deepEqual(emptyKeystore.crypto.masterKeyDerivation, { - algorithm: KEY_DERIVARION_ALGORITHM, + algorithm: KEY_DERIVATION_ALGORITHM, paramN: KEY_DERIVATION_PARAM_N, paramP: KEY_DERIVATION_PARAM_P, paramR: KEY_DERIVATION_PARAM_R, diff --git a/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/result.txt b/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/result.txt index 204ccd497e4..f8e71dcfd32 100644 --- a/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/result.txt +++ b/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/result.txt @@ -23,8 +23,8 @@ testing before each nested - ✔ neseted foo - ✔ neseted foo 2 + ✔ nested foo + ✔ nested foo 2 + todo test diff --git a/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/test.ts b/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/test.ts index 64d1292dcff..d20c5a7d317 100644 --- a/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/test.ts +++ b/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/test.ts @@ -64,11 +64,11 @@ describe("in describe", () => { describe("testing before each", () => { describe("nested", () => { - it("neseted foo", async () => { + it("nested foo", async () => { console.log("1"); }); - it("neseted foo 2", async () => { + it("nested foo 2", async () => { console.log("2"); }); }); diff --git a/v-next/hardhat-node-test-reporter/integration-tests/index.ts b/v-next/hardhat-node-test-reporter/integration-tests/index.ts index 31f8d3a41be..caef3010b4c 100644 --- a/v-next/hardhat-node-test-reporter/integration-tests/index.ts +++ b/v-next/hardhat-node-test-reporter/integration-tests/index.ts @@ -95,7 +95,7 @@ for (const entry of entries) { const start = lines.findIndex((l) => l.startsWith("Node.js")); const output = lines.slice(start + 1).join("\n"); - // We're saving the actual outptut in case one needs to access it. It is .gitignored. + // We're saving the actual output in case one needs to access it. It is .gitignored. writeFileSync(entryPath + "/result.actual.txt", output); // First, we try to access node version specific result file. If it doesn't // exist, we fallback to the generic result file. diff --git a/v-next/hardhat-node-test-reporter/src/diagnostics.ts b/v-next/hardhat-node-test-reporter/src/diagnostics.ts index 0dded6db2d0..cca02fcea3b 100644 --- a/v-next/hardhat-node-test-reporter/src/diagnostics.ts +++ b/v-next/hardhat-node-test-reporter/src/diagnostics.ts @@ -8,7 +8,7 @@ export interface GlobalDiagnostics { cancelled: number; skipped: number; todo: number; - // eslint-disable-next-line @typescript-eslint/naming-convention -- keeping this alingned with the node:test event + // eslint-disable-next-line @typescript-eslint/naming-convention -- keeping this aligned with the node:test event duration_ms: number; } diff --git a/v-next/hardhat-node-test-reporter/src/error-formatting.ts b/v-next/hardhat-node-test-reporter/src/error-formatting.ts index 7771be8d829..c980641ee6b 100644 --- a/v-next/hardhat-node-test-reporter/src/error-formatting.ts +++ b/v-next/hardhat-node-test-reporter/src/error-formatting.ts @@ -339,7 +339,7 @@ export function formatStackLine({ line, reference }: StackLine): string { } /** - * This functions normlizes a location string by: + * This functions normalizes a location string by: * - Turning file URLs into file paths * - Turning absolute paths into relative paths if they are inside the current * working directory diff --git a/v-next/hardhat-viem/src/internal/contracts.ts b/v-next/hardhat-viem/src/internal/contracts.ts index c2967475350..e35ab7808c7 100644 --- a/v-next/hardhat-viem/src/internal/contracts.ts +++ b/v-next/hardhat-viem/src/internal/contracts.ts @@ -61,7 +61,7 @@ export async function deployContract( let deploymentTxHash: PrefixedHexString; // If gasPrice is defined, then maxFeePerGas and maxPriorityFeePerGas - // must be undefined because it's a legaxy tx. + // must be undefined because it's a legacy tx. if (deployContractParameters.gasPrice !== undefined) { deploymentTxHash = await walletClient.deployContract({ abi, @@ -133,7 +133,7 @@ export async function sendDeploymentTransaction( let deploymentTxHash: PrefixedHexString; // If gasPrice is defined, then maxFeePerGas and maxPriorityFeePerGas - // must be undefined because it's a legaxy tx. + // must be undefined because it's a legacy tx. if (deployContractParameters.gasPrice !== undefined) { deploymentTxHash = await walletClient.deployContract({ abi, diff --git a/v-next/hardhat-zod-utils/src/index.ts b/v-next/hardhat-zod-utils/src/index.ts index c469bfa2226..a1e6294fc28 100644 --- a/v-next/hardhat-zod-utils/src/index.ts +++ b/v-next/hardhat-zod-utils/src/index.ts @@ -115,12 +115,12 @@ export const conditionalUnionType = ( * ```ts * const typeWithFoo = z.object({ * foo: z.string(), - * bar: unexpecteddFieldType("This field is incompatible with `foo`"), + * bar: incompatibleFieldType("This field is incompatible with `foo`"), * }); * * const typeWithBar = z.object({ * bar: z.string(), - * foo: unexpecteddFieldType("This field is incompatible with `bar`"), + * foo: incompatibleFieldType("This field is incompatible with `bar`"), * }); * * const union = conditionalUnionType( @@ -135,7 +135,7 @@ export const conditionalUnionType = ( * @param errorMessage The error message to display if the field is present. * @returns A Zod type that validates that a field of an object doesn't exist. */ -export const incompatibleFieldType = (errorMessage = "Unexpectedd field") => +export const incompatibleFieldType = (errorMessage = "Unexpected field") => z .never({ errorMap: () => ({ diff --git a/v-next/hardhat/src/internal/builtin-plugins/network-manager/edr/edr-provider.ts b/v-next/hardhat/src/internal/builtin-plugins/network-manager/edr/edr-provider.ts index 17222619f92..e4834adbfd4 100644 --- a/v-next/hardhat/src/internal/builtin-plugins/network-manager/edr/edr-provider.ts +++ b/v-next/hardhat/src/internal/builtin-plugins/network-manager/edr/edr-provider.ts @@ -366,7 +366,7 @@ export class EdrProvider extends BaseProvider { } /* eslint-disable-next-line no-restricted-syntax -- we may throw - non-Hardaht errors inside of an EthereumProvider */ + non-Hardhat errors inside of an EthereumProvider */ throw error; } diff --git a/v-next/hardhat/src/internal/builtin-plugins/solidity-test/edr-artifacts.ts b/v-next/hardhat/src/internal/builtin-plugins/solidity-test/edr-artifacts.ts index 0654d5ca704..d1747a868d2 100644 --- a/v-next/hardhat/src/internal/builtin-plugins/solidity-test/edr-artifacts.ts +++ b/v-next/hardhat/src/internal/builtin-plugins/solidity-test/edr-artifacts.ts @@ -60,7 +60,7 @@ export async function getBuildInfos( */ export async function getEdrArtifacts( artifactManager: ArtifactManager, -): Promise> { +): Promise> { const fullyQualifiedNames = await artifactManager.getAllFullyQualifiedNames(); const artifacts = await Promise.all( @@ -140,7 +140,7 @@ export async function getEdrArtifacts( // from an artifact id between the `run` call and the events emitted by the // test runner. return { - edrAtifact: { + edrArtifact: { id, contract, }, diff --git a/v-next/hardhat/src/internal/builtin-plugins/solidity-test/task-action.ts b/v-next/hardhat/src/internal/builtin-plugins/solidity-test/task-action.ts index 0e0624adf6d..f6297c0a226 100644 --- a/v-next/hardhat/src/internal/builtin-plugins/solidity-test/task-action.ts +++ b/v-next/hardhat/src/internal/builtin-plugins/solidity-test/task-action.ts @@ -88,7 +88,7 @@ const runSolidityTests: NewTaskActionFunction = async ( // EDR needs all artifacts (contracts + tests) const edrArtifacts: Array<{ - edrAtifact: EdrArtifact; + edrArtifact: EdrArtifact; userSourceName: string; }> = []; const buildInfos: BuildInfoAndOutput[] = []; @@ -100,20 +100,20 @@ const runSolidityTests: NewTaskActionFunction = async ( } const sourceNameToUserSourceName = new Map( - edrArtifacts.map(({ userSourceName, edrAtifact }) => [ - edrAtifact.id.source, + edrArtifacts.map(({ userSourceName, edrArtifact }) => [ + edrArtifact.id.source, userSourceName, ]), ); - edrArtifacts.forEach(({ userSourceName, edrAtifact }) => { + edrArtifacts.forEach(({ userSourceName, edrArtifact }) => { if ( testRootPaths.includes( resolveFromRoot(hre.config.paths.root, userSourceName), ) && - isTestSuiteArtifact(edrAtifact) + isTestSuiteArtifact(edrArtifact) ) { - warnDeprecatedTestFail(edrAtifact, sourceNameToUserSourceName); + warnDeprecatedTestFail(edrArtifact, sourceNameToUserSourceName); } }); @@ -123,8 +123,8 @@ const runSolidityTests: NewTaskActionFunction = async ( resolveFromRoot(hre.config.paths.root, userSourceName), ), ) - .filter(({ edrAtifact }) => isTestSuiteArtifact(edrAtifact)) - .map(({ edrAtifact }) => edrAtifact.id); + .filter(({ edrArtifact }) => isTestSuiteArtifact(edrArtifact)) + .map(({ edrArtifact }) => edrArtifact.id); console.log("Running Solidity tests"); console.log(); @@ -185,7 +185,7 @@ const runSolidityTests: NewTaskActionFunction = async ( const runStream = run( chainType, - edrArtifacts.map(({ edrAtifact }) => edrAtifact), + edrArtifacts.map(({ edrArtifact }) => edrArtifact), testSuiteIds, config, tracingConfig, diff --git a/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/compiler/compiler.ts b/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/compiler/compiler.ts index 66b81a166af..6d7b90c15e8 100644 --- a/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/compiler/compiler.ts +++ b/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/compiler/compiler.ts @@ -66,7 +66,7 @@ async function spawnCompile( ); const stdoutPipeline = subprocess.stdout.pipe(stdoutWriteStream); - // NOTE: Compiler warnings are NOT written to stder, they are returned via + // NOTE: Compiler warnings are NOT written to stderr, they are returned via // the `errors` field of the CompilerOutput instead const stderrPipeline = subprocess.stderr.pipe( createNonClosingWriter(process.stderr), diff --git a/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/dependency-graph.ts b/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/dependency-graph.ts index 43b4eb8c4e7..fe931cf2d1b 100644 --- a/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/dependency-graph.ts +++ b/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/dependency-graph.ts @@ -25,7 +25,7 @@ export class DependencyGraphImplementation implements DependencyGraph { /** * Adds a root file to the graph. All the roots of the dependency graph must - * be added before any dependencry. + * be added before any dependency. * * @param userSourceName The source name used to identify the file, as it * would appear in the artifacts and used by the user. This is not always the diff --git a/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.ts b/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.ts index 0136b375e56..64ec4f99e83 100644 --- a/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.ts +++ b/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.ts @@ -630,7 +630,7 @@ export class RemappedNpmPackagesGraphImplementation const targetWithoutNodeModules = target.substring("node_modules/".length); // If after doing that the prefix and target are the same, we skip it - // so that it doesn't even go unnecesarly go through a user remapping. + // so that it doesn't even go unnecessarily go through a user remapping. if (prefix === targetWithoutNodeModules) { return { success: true, value: undefined }; } diff --git a/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/resolver/types.ts b/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/resolver/types.ts index 0a06ba3ba1c..391dc4979a8 100644 --- a/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/resolver/types.ts +++ b/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/resolver/types.ts @@ -90,7 +90,7 @@ export type InstallationName = string; /** * This interface represents a graph of all the npm packages that the Hardhat - * project uses, including the Hardhat projecct itself, and their remappings. + * project uses, including the Hardhat project itself, and their remappings. * * This class guarantees that there's a single instance of any npm package per * each version. That means that, even if you have multiple installations of @@ -103,7 +103,7 @@ export type InstallationName = string; * than expected, because: * - Processing a remapping may require loading a new npm package, and this * interface ensures its uniqueness. - * - Loading an npm package requires processing its remappigns. + * - Loading an npm package requires processing its remappings. * - Selecting the best user remapping for an import can require processing it * and loading its npm package. * diff --git a/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/solc-config-selection.ts b/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/solc-config-selection.ts index 2f662a06890..44374553512 100644 --- a/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/solc-config-selection.ts +++ b/v-next/hardhat/src/internal/builtin-plugins/solidity/build-system/solc-config-selection.ts @@ -18,7 +18,7 @@ export class SolcConfigSelector { /** * Creates a new SolcConfigSelector that can be used to select the best solc - * configuration for single-root subgraphs to create their resepective + * configuration for single-root subgraphs to create their respective * individual compilation jobs. * * All the queries use the same build profile. @@ -54,11 +54,11 @@ export class SolcConfigSelector { const [userSourceName, root] = [...roots.entries()][0]; - const allVersionPragamas = [...subgraph.getAllFiles()] + const allVersionPragmas = [...subgraph.getAllFiles()] .map(({ content }) => content.versionPragmas) .flat(1); - const versionRange = Array.from(new Set(allVersionPragamas)).join(" "); + const versionRange = Array.from(new Set(allVersionPragmas)).join(" "); const overriddenCompiler = this.#buildProfile.overrides[userSourceName]; diff --git a/v-next/hardhat/src/internal/builtin-plugins/solidity/config.ts b/v-next/hardhat/src/internal/builtin-plugins/solidity/config.ts index 740367d0e14..d25ac246c19 100644 --- a/v-next/hardhat/src/internal/builtin-plugins/solidity/config.ts +++ b/v-next/hardhat/src/internal/builtin-plugins/solidity/config.ts @@ -124,7 +124,7 @@ const buildProfilesSolidityUserConfigType = commonSolidityUserConfigType.extend( }, ); -const soldityUserConfigType = conditionalUnionType( +const solidityUserConfigType = conditionalUnionType( [ [(data) => typeof data === "string", z.string()], [(data) => Array.isArray(data), z.array(z.string()).nonempty()], @@ -159,7 +159,7 @@ const userConfigType = z.object({ ).optional(), }) .optional(), - solidity: soldityUserConfigType.optional(), + solidity: solidityUserConfigType.optional(), }); export function validateSolidityUserConfig( diff --git a/v-next/hardhat/src/internal/cli/telemetry/sentry/anonymize-paths.ts b/v-next/hardhat/src/internal/cli/telemetry/sentry/anonymize-paths.ts index a64c175c08a..35833810610 100644 --- a/v-next/hardhat/src/internal/cli/telemetry/sentry/anonymize-paths.ts +++ b/v-next/hardhat/src/internal/cli/telemetry/sentry/anonymize-paths.ts @@ -107,7 +107,7 @@ function anonymizeSinglePath(path: string): string { return normalizedPath; } - // We first get the index of the first /node_modules to desambiguate some + // We first get the index of the first /node_modules to disambiguate some // special cases below const nodeModulesIndex = normalizedPath.indexOf("/node_modules"); diff --git a/v-next/hardhat/src/internal/cli/telemetry/sentry/vendor/integrations/contextlines.ts b/v-next/hardhat/src/internal/cli/telemetry/sentry/vendor/integrations/contextlines.ts index b0530b946e6..2546a989d77 100644 --- a/v-next/hardhat/src/internal/cli/telemetry/sentry/vendor/integrations/contextlines.ts +++ b/v-next/hardhat/src/internal/cli/telemetry/sentry/vendor/integrations/contextlines.ts @@ -140,7 +140,7 @@ function getContextLinesFromFile(path: string, ranges: ReadlineRange[], output: // as it will cause the 'line' event to // be emitted before the listener is attached. const stream = createReadStream(path); - const lineReaded = createInterface({ + const lineRead = createInterface({ input: stream, }); @@ -170,18 +170,18 @@ function getContextLinesFromFile(path: string, ranges: ReadlineRange[], output: // Mark file path as failed to read and prevent multiple read attempts. LRU_FILE_CONTENTS_FS_READ_FAILED.set(path, 1); DEBUG_BUILD && logger.error(`Failed to read file: ${path}. Error: ${e}`); - lineReaded.close(); - lineReaded.removeAllListeners(); + lineRead.close(); + lineRead.removeAllListeners(); destroyStreamAndResolve(); } // We need to handle the error event to prevent the process from crashing in < Node 16 // https://github.com/nodejs/node/pull/31603 stream.on('error', onStreamError); - lineReaded.on('error', onStreamError); - lineReaded.on('close', destroyStreamAndResolve); + lineRead.on('error', onStreamError); + lineRead.on('close', destroyStreamAndResolve); - lineReaded.on('line', line => { + lineRead.on('line', line => { lineNumber++; if (lineNumber < rangeStart) return; @@ -191,16 +191,16 @@ function getContextLinesFromFile(path: string, ranges: ReadlineRange[], output: if (lineNumber >= rangeEnd) { if (currentRangeIndex === ranges.length - 1) { // We need to close the file stream and remove listeners, else the reader will continue to run our listener; - lineReaded.close(); - lineReaded.removeAllListeners(); + lineRead.close(); + lineRead.removeAllListeners(); return; } currentRangeIndex++; const range = ranges[currentRangeIndex]; if (range === undefined) { // This should never happen as it means we have a bug in the context. - lineReaded.close(); - lineReaded.removeAllListeners(); + lineRead.close(); + lineRead.removeAllListeners(); return; } rangeStart = range[0]; diff --git a/v-next/hardhat/src/internal/core/user-interruptions.ts b/v-next/hardhat/src/internal/core/user-interruptions.ts index 5be603ebe5f..b216b865ff3 100644 --- a/v-next/hardhat/src/internal/core/user-interruptions.ts +++ b/v-next/hardhat/src/internal/core/user-interruptions.ts @@ -121,7 +121,7 @@ async function defaultRequestSecretInput( assertHardhatInvariant( rlAsAny.output !== undefined, - "Espected readline output to be defined", + "Expected readline output to be defined", ); // We show the initial message as is diff --git a/v-next/hardhat/src/types/artifacts.ts b/v-next/hardhat/src/types/artifacts.ts index fec52f692cd..a8597bc057a 100644 --- a/v-next/hardhat/src/types/artifacts.ts +++ b/v-next/hardhat/src/types/artifacts.ts @@ -239,7 +239,7 @@ export interface LinkReferences { * is the id of the AST node that represents the variable. */ export interface ImmutableReferences { - [immuatableId: string]: Array<{ start: number; length: number }>; + [immutableId: string]: Array<{ start: number; length: number }>; } /** diff --git a/v-next/hardhat/src/types/hre.ts b/v-next/hardhat/src/types/hre.ts index 598378d26f9..8536b8a08a6 100644 --- a/v-next/hardhat/src/types/hre.ts +++ b/v-next/hardhat/src/types/hre.ts @@ -15,7 +15,7 @@ export interface HardhatRuntimeEnvironment { readonly hardhat: string; readonly edr: string; }; - // These fields are defined using module agumentation despite being part of + // These fields are defined using module augmentation despite being part of // Hardhat's core: // readonly hooks: HookManager; // readonly tasks: TaskManager; diff --git a/v-next/hardhat/src/types/network.ts b/v-next/hardhat/src/types/network.ts index 4950287dd78..f45dfac1015 100644 --- a/v-next/hardhat/src/types/network.ts +++ b/v-next/hardhat/src/types/network.ts @@ -10,7 +10,7 @@ import type { EthereumProvider } from "./providers.js"; export type ChainType = GenericChainType | "l1" | "op"; /** - * The most generic chanin type. + * The most generic chain type. */ export type GenericChainType = "generic"; diff --git a/v-next/hardhat/src/types/solidity/build-system.ts b/v-next/hardhat/src/types/solidity/build-system.ts index c9e8615da31..cbfb027aec6 100644 --- a/v-next/hardhat/src/types/solidity/build-system.ts +++ b/v-next/hardhat/src/types/solidity/build-system.ts @@ -72,7 +72,7 @@ export type RunCompilationJobOptions = Pick< */ export interface CompileBuildInfoOptions { /** - * If `true`, this option foces the build system to recompile the build info, + * If `true`, this option forces the build system to recompile the build info, * even if its output is cached. */ force?: boolean; diff --git a/v-next/hardhat/src/types/solidity/resolved-file.ts b/v-next/hardhat/src/types/solidity/resolved-file.ts index 3c7b05ece8f..c226f77acc5 100644 --- a/v-next/hardhat/src/types/solidity/resolved-file.ts +++ b/v-next/hardhat/src/types/solidity/resolved-file.ts @@ -3,7 +3,7 @@ */ export interface ResolvedNpmPackage { /** - * The name of the package, potentially scopde. + * The name of the package, potentially scoped. */ name: string; @@ -103,7 +103,7 @@ export interface NpmPackageResolvedFile { } /** - * The resolult of resolving a file or import using a Resolver. + * The result of resolving a file or import using a Resolver. */ export type ResolvedFile = ProjectResolvedFile | NpmPackageResolvedFile; diff --git a/v-next/hardhat/test/internal/builtin-plugins/coverage/coverage-manager.ts b/v-next/hardhat/test/internal/builtin-plugins/coverage/coverage-manager.ts index 522b255bcf0..5051ef2ebcd 100644 --- a/v-next/hardhat/test/internal/builtin-plugins/coverage/coverage-manager.ts +++ b/v-next/hardhat/test/internal/builtin-plugins/coverage/coverage-manager.ts @@ -452,23 +452,23 @@ describe("CoverageManagerImplementation - report data processing", () => { } it("should run coverage on multiple files, one is covered by tests, the other is not", async () => { - const testScenrario = COVERAGE_TEST_SCENARIO_MULTIPLE_FILES; + const testScenario = COVERAGE_TEST_SCENARIO_MULTIPLE_FILES; await hre.tasks.getTask(["test", "solidity"]).run({ noCompile: true, - testFiles: [testScenrario.testFilePath1], + testFiles: [testScenario.testFilePath1], }); const res = await coverageManagerTmp.getReport(); assert.deepEqual( - res[testScenrario.sourceFilePath1], - testScenrario.expectedResult1, + res[testScenario.sourceFilePath1], + testScenario.expectedResult1, ); assert.deepEqual( - res[testScenrario.sourceFilePath2], - testScenrario.expectedResult2, + res[testScenario.sourceFilePath2], + testScenario.expectedResult2, ); }); }); diff --git a/v-next/hardhat/test/internal/builtin-plugins/network-manager/edr/edr-provider.ts b/v-next/hardhat/test/internal/builtin-plugins/network-manager/edr/edr-provider.ts index a20a905a5c1..f829b2b9bb3 100644 --- a/v-next/hardhat/test/internal/builtin-plugins/network-manager/edr/edr-provider.ts +++ b/v-next/hardhat/test/internal/builtin-plugins/network-manager/edr/edr-provider.ts @@ -609,7 +609,7 @@ describe("edr-provider", () => { assert.equal(providerConfig.fork?.chainOverrides?.length, 2); - // mainnet doesn't have harfork history, so it should be undefined + // mainnet doesn't have hardfork history, so it should be undefined const mainnetOverride = providerConfig.fork?.chainOverrides[0]; assert.equal(mainnetOverride.name, "mainnet"); assert.equal(mainnetOverride.hardforkActivationOverrides, undefined); diff --git a/v-next/hardhat/test/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.ts b/v-next/hardhat/test/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.ts index b5efe34964f..9e957bec00f 100644 --- a/v-next/hardhat/test/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.ts +++ b/v-next/hardhat/test/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.ts @@ -2041,9 +2041,9 @@ fo/=barr/`, }); describe("Edge cases", () => { - it("Should handle seemgly conflicting remappings in different remappings.txt files", async () => { + it("Should handle seemingly conflicting remappings in different remappings.txt files", async () => { const localTemplate: TestProjectTemplate = { - name: "seemgly-conflicting-remappings", + name: "seemingly-conflicting-remappings", version: "1.0.0", files: { "contracts/A.sol": `A`, diff --git a/v-next/hardhat/test/internal/cli/init/init.ts b/v-next/hardhat/test/internal/cli/init/init.ts index c3030410784..b8cae3a0ca3 100644 --- a/v-next/hardhat/test/internal/cli/init/init.ts +++ b/v-next/hardhat/test/internal/cli/init/init.ts @@ -65,7 +65,7 @@ describe("getWorkspace", () => { }); }); - it("should throw if the provided workspace is within an already initlized hardhat project", async () => { + it("should throw if the provided workspace is within an already initialized hardhat project", async () => { await ensureDir("hardhat-project"); await writeUtf8File("hardhat.config.ts", ""); await assertRejectsWithHardhatError( diff --git a/v-next/hardhat/test/internal/hre-initialization.ts b/v-next/hardhat/test/internal/hre-initialization.ts index 2ae6a0759ea..7f3b5ff8ad7 100644 --- a/v-next/hardhat/test/internal/hre-initialization.ts +++ b/v-next/hardhat/test/internal/hre-initialization.ts @@ -139,7 +139,7 @@ describe("HRE initialization", () => { } }); - it("should noramlize and return the provided path", async () => { + it("should normalize and return the provided path", async () => { assert.equal( await resolveHardhatConfigPath("other.config.js"), await getRealPath("other.config.js"), diff --git a/v-next/ignition-core/src/internal/execution/abi.ts b/v-next/ignition-core/src/internal/execution/abi.ts index b1e6cbf58ac..8f14439f6e2 100644 --- a/v-next/ignition-core/src/internal/execution/abi.ts +++ b/v-next/ignition-core/src/internal/execution/abi.ts @@ -669,7 +669,7 @@ function getEventNameWithParams(eventFragment: EventFragment): string { } /** - * Returtns the bare name of a function or event name. The bare name is the + * Returns the bare name of a function or event name. The bare name is the * function or event name without the parameter types. * * @param functionOrEventName The name, either with or without parames. diff --git a/v-next/ignition-core/src/internal/execution/deployment-state-helpers.ts b/v-next/ignition-core/src/internal/execution/deployment-state-helpers.ts index 1435f5c8020..a22efa3edd0 100644 --- a/v-next/ignition-core/src/internal/execution/deployment-state-helpers.ts +++ b/v-next/ignition-core/src/internal/execution/deployment-state-helpers.ts @@ -27,7 +27,7 @@ export async function loadDeploymentState( } /** - * Ininitalizes the deployment state and records the run start message to the journal. + * Initializes the deployment state and records the run start message to the journal. * * @param chainId The chain ID. * @param deploymentLoader The deployment loader that will be used to record the message. diff --git a/v-next/ignition-core/src/internal/module-builder.ts b/v-next/ignition-core/src/internal/module-builder.ts index 339f683873f..4d430ebb4bd 100644 --- a/v-next/ignition-core/src/internal/module-builder.ts +++ b/v-next/ignition-core/src/internal/module-builder.ts @@ -218,7 +218,7 @@ class IgnitionModuleBuilderImplementation< public contract( contractName: ContractNameT, artifactOrArgs?: Artifact | ArgumentType[], - argsorOptions?: ArgumentType[] | ContractAtOptions, + argsOrOptions?: ArgumentType[] | ContractAtOptions, maybeOptions?: ContractOptions, ): | NamedArtifactContractDeploymentFuture @@ -231,7 +231,7 @@ class IgnitionModuleBuilderImplementation< } if (artifactOrArgs === undefined || Array.isArray(artifactOrArgs)) { - if (Array.isArray(argsorOptions)) { + if (Array.isArray(argsOrOptions)) { this._throwErrorWithStackTrace( `Invalid parameter "options" provided to contract "${contractName}" in module "${this._module.id}"`, this.contract, @@ -241,11 +241,11 @@ class IgnitionModuleBuilderImplementation< return this._namedArtifactContract( contractName, artifactOrArgs, - argsorOptions, + argsOrOptions, ); } - if (argsorOptions !== undefined && !Array.isArray(argsorOptions)) { + if (argsOrOptions !== undefined && !Array.isArray(argsOrOptions)) { this._throwErrorWithStackTrace( `Invalid parameter "args" provided to contract "${contractName}" in module "${this._module.id}"`, this.contract, @@ -255,7 +255,7 @@ class IgnitionModuleBuilderImplementation< return this._contractFromArtifact( contractName, artifactOrArgs, - argsorOptions, + argsOrOptions, maybeOptions, ); } diff --git a/v-next/ignition-core/src/internal/reconciliation/reconciler.ts b/v-next/ignition-core/src/internal/reconciliation/reconciler.ts index 11743bd968c..08f092ea4d4 100644 --- a/v-next/ignition-core/src/internal/reconciliation/reconciler.ts +++ b/v-next/ignition-core/src/internal/reconciliation/reconciler.ts @@ -108,7 +108,7 @@ export class Reconciler { ): Promise { // TODO: swap this out for linearization of execution state // once execution is fleshed out. - const futures = this._getFuturesInReverseTopoligicalOrder(module); + const futures = this._getFuturesInReverseTopologicalOrder(module); const failures = []; @@ -146,7 +146,7 @@ export class Reconciler { return missing; } - private static _getFuturesInReverseTopoligicalOrder( + private static _getFuturesInReverseTopologicalOrder( module: IgnitionModule, ): Future[] { const futures = getFuturesFromModule(module); diff --git a/v-next/ignition-core/src/types/artifact.ts b/v-next/ignition-core/src/types/artifact.ts index 3eb7a9a2fa3..bb41380a3d5 100644 --- a/v-next/ignition-core/src/types/artifact.ts +++ b/v-next/ignition-core/src/types/artifact.ts @@ -25,7 +25,7 @@ export type LinkReferences = Record< * @beta */ export interface ImmutableReferences { - [immuatableId: string]: Array<{ start: number; length: number }>; + [immutableId: string]: Array<{ start: number; length: number }>; } /** diff --git a/v-next/ignition-core/test/execution/abi.ts b/v-next/ignition-core/test/execution/abi.ts index 25dda907093..ea499d88b75 100644 --- a/v-next/ignition-core/test/execution/abi.ts +++ b/v-next/ignition-core/test/execution/abi.ts @@ -543,7 +543,7 @@ describe("abi", () => { }); }); - it("should return RevertWithInvalidData if the revert reason signature is used incorrectlt", async () => { + it("should return RevertWithInvalidData if the revert reason signature is used incorrectly", async () => { const { decoded, returnData } = decode( "C", "revertWithInvalidErrorMessage", diff --git a/v-next/ignition-core/test/execution/libraries.ts b/v-next/ignition-core/test/execution/libraries.ts index e9dabf7f029..ae492a3ec5a 100644 --- a/v-next/ignition-core/test/execution/libraries.ts +++ b/v-next/ignition-core/test/execution/libraries.ts @@ -14,7 +14,7 @@ const mockAddress2 = "0x0011223344556677889900112233445566778899"; describe("Libraries handling", () => { describe("validateLibraryNames", () => { - it("Should not throw if all libraries are provided, no name is ambiguous, repreated or not recognized", () => { + it("Should not throw if all libraries are provided, no name is ambiguous, repeated or not recognized", () => { assert.doesNotThrow(() => { validateLibraryNames(deploymentFixturesArtifacts.WithLibrary, ["Lib"]); }); diff --git a/v-next/ignition-core/test/readEventArgument.ts b/v-next/ignition-core/test/readEventArgument.ts index 352e6158ec5..5b6f3ed80a2 100644 --- a/v-next/ignition-core/test/readEventArgument.ts +++ b/v-next/ignition-core/test/readEventArgument.ts @@ -72,7 +72,7 @@ describe("Read event argument", () => { it("should accept an explicit emitter", () => { const mod = buildModule("Module1", (m) => { const contract = m.contract("ContractThatCallsEmitter"); - const emitter = m.contract("ContractThatEmittsEvent2"); + const emitter = m.contract("ContractThatEmitsEvent2"); const call = m.call(contract, "doSomethingAndCallThEmitter", [emitter]); m.readEventArgument(contract, "EventEmittedDuringConstruction", "arg1"); @@ -194,7 +194,7 @@ describe("Read event argument", () => { assert.include(futuresIds, "Module1#second"); }); - it("should throw if the same read event arguennet is done twice without differentiating ids", () => { + it("should throw if the same read event argument is done twice without differentiating ids", () => { assertThrowsHardhatError( () => buildModule("Module1", (m) => { diff --git a/v-next/ignition-core/test/reconciliation/helpers.ts b/v-next/ignition-core/test/reconciliation/helpers.ts index 14dea9c4500..39649dd657b 100644 --- a/v-next/ignition-core/test/reconciliation/helpers.ts +++ b/v-next/ignition-core/test/reconciliation/helpers.ts @@ -157,7 +157,7 @@ export function assertNoWarningsOrErrors( assert.equal( reconciliationResult.reconciliationFailures.length, 0, - `Unreconcilied futures found: \n${JSON.stringify( + `Unreconciled futures found: \n${JSON.stringify( reconciliationResult.reconciliationFailures, undefined, 2, diff --git a/v-next/ignition-core/test/reconciliation/reconciler.ts b/v-next/ignition-core/test/reconciliation/reconciler.ts index d7f20fb5c5c..4abf8fc187e 100644 --- a/v-next/ignition-core/test/reconciliation/reconciler.ts +++ b/v-next/ignition-core/test/reconciliation/reconciler.ts @@ -103,7 +103,7 @@ describe("Reconciliation", () => { ); }); - it("should flag as unreconsiliable a future that has changed type", async () => { + it("should flag as unreconcilable a future that has changed type", async () => { const moduleDefinition = buildModule("Module1", (m) => { const library1 = m.library("Library1", { id: "Example" }); @@ -193,7 +193,7 @@ describe("Reconciliation", () => { assert.deepStrictEqual(reconiliationResult.reconciliationFailures, []); }); - it("should flag as unreconsiliable a changed from where the history indicates a different from", async () => { + it("should flag as unreconcilable a changed from where the history indicates a different from", async () => { const moduleDefinition = buildModule("Module1", (m) => { const account2 = m.getAccount(2); // from is accounts[2] @@ -241,7 +241,7 @@ describe("Reconciliation", () => { assert.deepStrictEqual(reconiliationResult.reconciliationFailures, []); }); - it("should flag as unreconsiliable a changed ModuleParameter where the history indicates a different account", async () => { + it("should flag as unreconcilable a changed ModuleParameter where the history indicates a different account", async () => { const moduleDefinition = buildModule("Module1", (m) => { const accountParam2 = m.getParameter("account2", m.getAccount(2)); const contract1 = m.contract("Contract1", [accountParam2]); diff --git a/v-next/ignition-core/test/types/deployment-loader.ts b/v-next/ignition-core/test/types/deployment-loader.ts index a16c4ba2e24..ea8bfa7246d 100644 --- a/v-next/ignition-core/test/types/deployment-loader.ts +++ b/v-next/ignition-core/test/types/deployment-loader.ts @@ -12,7 +12,7 @@ describe("DeploymentLoaderImpls", function () { const _implementation: ExactInterface< DeploymentLoader, // we omit readBuildInfo as it is a known addition to file deployment loader - // above the DeploylmentLoader interface + // above the DeploymentLoader interface Omit > = new FileDeploymentLoader("./example"); From 8dadf9b0dfb523a7b61712a2628c51ec48778066 Mon Sep 17 00:00:00 2001 From: Patricio Palladino Date: Wed, 4 Mar 2026 14:12:28 +0000 Subject: [PATCH 08/16] Clean up the dictionary and fix more typos --- .github/workflows/release.yml | 4 +- cspell.config.mts | 4 + cspell.dictionary.txt | 67 +-------- v-next/hardhat-node-test-reporter/README.md | 2 +- v-next/hardhat-verify/test/utils.ts | 4 +- v-next/hardhat-zod-utils/src/index.ts | 4 +- .../builtin-plugins/solidity-test/runner.ts | 2 +- .../vendor/integrations/contextlines.ts | 134 ++++++++++++------ .../builtin-plugins/flatten/task-action.ts | 2 +- .../partial-compilation/helpers.ts | 2 +- v-next/hardhat/test/internal/cli/main.ts | 4 +- .../internal/execution/execution-engine.ts | 2 +- 12 files changed, 110 insertions(+), 121 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b7429530f5b..503003bb6a8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -82,8 +82,8 @@ jobs: } }`; const vars = { owner: context.repo.owner, repo: context.repo.repo, number: Number(number) }; - const qres = await github.graphql(query, vars); - const pr = qres.repository.pullRequest; + const res = await github.graphql(query, vars); + const pr = res.repository.pullRequest; if (pr.isDraft) return { already: true }; // 2) Convert to draft diff --git a/cspell.config.mts b/cspell.config.mts index db4114a9b6e..51a5d5f54bc 100644 --- a/cspell.config.mts +++ b/cspell.config.mts @@ -23,5 +23,9 @@ export default defineConfig({ "v-next/*/dist", "v-next/*/CHANGELOG.md", ".github/config/regression-tests.yml", + "v-next/hardhat-vendored/{src,test}/**/*", + "**/vendored/**/*", + "**/vendor/**/*", + "**/coverage/html/**/*", ], }); diff --git a/cspell.dictionary.txt b/cspell.dictionary.txt index 35b3c0bdcb3..0a457a108bc 100644 --- a/cspell.dictionary.txt +++ b/cspell.dictionary.txt @@ -1,23 +1,12 @@ -aabb abicoder Abicoder accum addy -ALIYUN anonymization APDU arrayified -artio -asdas -asdasd -asdjkhads -asdr authorizationify -basesepolia -bbccddeeff -bdsw behaviour -berachain besu Besu blinenums @@ -31,13 +20,9 @@ chainid CHAINID choco concisify -Couldnt createx cstat -Customise cwrap -daftmjifrfhiuhf -deadbe Dedominici dedup defi @@ -45,54 +30,38 @@ Defi dessant distros DISTROS -dont dorny dsari dtolnay -efcafebabe elif -Elytro -encodec enero esac esbuild -EURS EXLOCK -Extsload fgrep -finalised -fooasd -Foooo fqns Fqns FQNs gcda -grom hdkey hdpath heco -hekla hexlify hoodi Hoodi -igreeter Impls -Initialisation initialise +Initialisation interruptor Interruptor Ints -isnt -jhasd journaled Journaled Jsons -kalidao kanej keccak Keccak klass -kpcpicx Ksync ledgerhq libudev @@ -101,7 +70,6 @@ Linea linearization linenums Listify -lpxkm moreutils mprv msvc @@ -110,7 +78,6 @@ mykey mylib mylock napi -ndation niño Nomic nomiclabs @@ -118,33 +85,22 @@ normalise NOTOK Numberish onuncaughtexception -Ozcs -pcaversaccio -perché perché -placeholderplaceholderplaceholderp +perché popd PREVRANDAO pushd -qres -Queryer randao Randao -rari recompiles reconciliable reconiliation -Reentrancy reserialized -Rhah sarasa schaable -scrollsepolia sokol -solady solcjs SOLCJS -solenv sourcify Sourcify SOURCIFY @@ -155,13 +111,9 @@ substituters supath synthetix Synthetix -taiko -thisisnotvalidjson -tranched triaging tset txts -uage ufixed Uints Uncontended @@ -182,28 +134,13 @@ viem Viem VIEM visualising -vqqnawhkfhzfrcpnxj WAAIT withargs wordz -xabcdefg -xanother -xblock -xblockhas -xblockhash -xbytecodebytecodebytecode -xcontractaddress xdai -xgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg -xnot -xnotanaddress -xtest yalc Yalc -Ypgiat -ZFZWHGZ zkevm zksync -zode zoey zora diff --git a/v-next/hardhat-node-test-reporter/README.md b/v-next/hardhat-node-test-reporter/README.md index ae32cd1991d..ebbc380fee4 100644 --- a/v-next/hardhat-node-test-reporter/README.md +++ b/v-next/hardhat-node-test-reporter/README.md @@ -54,7 +54,7 @@ This reporter is designed to work well with GitHub Actions. By default, it will This reporter will colour the output by default in terminals that support it. You can forcefully disable this feature by setting the `FORCE_COLOR` environment variable to `0` (or passing a `--no-color` flag). Similarly, you can forcefully enable this feature by setting the `FORCE_COLOR` environment variable to `1` (or passing a `--color` flag). -The behaviour is inherited from the [`chalk` package](https://github.com/chalk/chalk?tab=readme-ov-file#supportscolor). +The behavior is inherited from the [`chalk` package](https://github.com/chalk/chalk?tab=readme-ov-file#supportscolor). #### Colour Legend diff --git a/v-next/hardhat-verify/test/utils.ts b/v-next/hardhat-verify/test/utils.ts index 8e7636aaddc..5ea6da8a85a 100644 --- a/v-next/hardhat-verify/test/utils.ts +++ b/v-next/hardhat-verify/test/utils.ts @@ -150,7 +150,7 @@ export async function deployContract( } } - const encodecConstructorArgs = await encodeConstructorArgs( + const encodeConstructorArgsResult = await encodeConstructorArgs( // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- testing artifact.abi as JsonFragment[], constructorArgs, @@ -162,7 +162,7 @@ export async function deployContract( params: [ { from: deployer, - data: bytecode + encodecConstructorArgs, + data: bytecode + encodeConstructorArgsResult, }, ], }); diff --git a/v-next/hardhat-zod-utils/src/index.ts b/v-next/hardhat-zod-utils/src/index.ts index a1e6294fc28..c12c1cefa07 100644 --- a/v-next/hardhat-zod-utils/src/index.ts +++ b/v-next/hardhat-zod-utils/src/index.ts @@ -95,9 +95,9 @@ export const conditionalUnionType = ( return; } - const zodeType = matchingCase[1]; + const zodType = matchingCase[1]; - const parsedData = zodeType.safeParse(data); + const parsedData = zodType.safeParse(data); if (parsedData.error !== undefined) { for (const issue of parsedData.error.issues) { ctx.addIssue(issue); diff --git a/v-next/hardhat/src/internal/builtin-plugins/solidity-test/runner.ts b/v-next/hardhat/src/internal/builtin-plugins/solidity-test/runner.ts index a651cca6632..de2f30ffcba 100644 --- a/v-next/hardhat/src/internal/builtin-plugins/solidity-test/runner.ts +++ b/v-next/hardhat/src/internal/builtin-plugins/solidity-test/runner.ts @@ -38,7 +38,7 @@ export interface RunOptions { * Despite the changes, the signature of the function should still be considered * a draft that may change in the future. * - * TODO: Once the signature is finalised, give feedback to the EDR team. + * TODO: Once the signature is finalized, give feedback to the EDR team. */ export function run( chainType: ChainType, diff --git a/v-next/hardhat/src/internal/cli/telemetry/sentry/vendor/integrations/contextlines.ts b/v-next/hardhat/src/internal/cli/telemetry/sentry/vendor/integrations/contextlines.ts index 2546a989d77..d15039e584c 100644 --- a/v-next/hardhat/src/internal/cli/telemetry/sentry/vendor/integrations/contextlines.ts +++ b/v-next/hardhat/src/internal/cli/telemetry/sentry/vendor/integrations/contextlines.ts @@ -1,15 +1,15 @@ /* eslint-disable -- This file is vendored from https://github.com/getsentry/sentry-javascript/blob/9.4.0/packages/node/src/integrations/contextlines.ts */ -import { createReadStream } from 'node:fs'; -import { createInterface } from 'node:readline'; -import type { Event, IntegrationFn, StackFrame } from '@sentry/core'; -import { LRUMap, defineIntegration, logger, snipLine } from '@sentry/core'; -import { DEBUG_BUILD } from '../debug-build.js'; +import { createReadStream } from "node:fs"; +import { createInterface } from "node:readline"; +import type { Event, IntegrationFn, StackFrame } from "@sentry/core"; +import { LRUMap, defineIntegration, logger, snipLine } from "@sentry/core"; +import { DEBUG_BUILD } from "../debug-build.js"; const LRU_FILE_CONTENTS_CACHE = new LRUMap>(10); const LRU_FILE_CONTENTS_FS_READ_FAILED = new LRUMap(20); const DEFAULT_LINES_OF_CONTEXT = 7; -const INTEGRATION_NAME = 'ContextLines'; +const INTEGRATION_NAME = "ContextLines"; // Determines the upper bound of lineno/colno that we will attempt to read. Large colno values are likely to be // minified code while large lineno values are likely to be bundled code. // Exported for testing purposes. @@ -36,7 +36,11 @@ export function resetFileContentCache(): void { /** * Get or init map value */ -function emplace, K extends string, V>(map: T, key: K, contents: V): V { +function emplace, K extends string, V>( + map: T, + key: K, + contents: V, +): V { const value = map.get(key); if (value === undefined) { @@ -49,18 +53,18 @@ function emplace, K extends string, V>(map: T, key: K, co /** * Determines if context lines should be skipped for a file. - * - .min.(mjs|cjs|js) files are and not useful since they dont point to the original source + * - .min.(mjs|cjs|js) files are and not useful since they don't point to the original source * - node: prefixed modules are part of the runtime and cannot be resolved to a file * - data: skip json, wasm and inline js https://nodejs.org/api/esm.html#data-imports */ function shouldSkipContextLinesForFile(path: string): boolean { // Test the most common prefix and extension first. These are the ones we // are most likely to see in user applications and are the ones we can break out of first. - if (path.startsWith('node:')) return true; - if (path.endsWith('.min.js')) return true; - if (path.endsWith('.min.cjs')) return true; - if (path.endsWith('.min.mjs')) return true; - if (path.startsWith('data:')) return true; + if (path.startsWith("node:")) return true; + if (path.endsWith(".min.js")) return true; + if (path.endsWith(".min.cjs")) return true; + if (path.endsWith(".min.mjs")) return true; + if (path.startsWith("data:")) return true; return false; } @@ -68,14 +72,19 @@ function shouldSkipContextLinesForFile(path: string): boolean { * Determines if we should skip contextlines based off the max lineno and colno values. */ function shouldSkipContextLinesForFrame(frame: StackFrame): boolean { - if (frame.lineno !== undefined && frame.lineno > MAX_CONTEXTLINES_LINENO) return true; - if (frame.colno !== undefined && frame.colno > MAX_CONTEXTLINES_COLNO) return true; + if (frame.lineno !== undefined && frame.lineno > MAX_CONTEXTLINES_LINENO) + return true; + if (frame.colno !== undefined && frame.colno > MAX_CONTEXTLINES_COLNO) + return true; return false; } /** * Checks if we have all the contents that we need in the cache. */ -function rangeExistsInContentCache(file: string, range: ReadlineRange): boolean { +function rangeExistsInContentCache( + file: string, + range: ReadlineRange, +): boolean { const contents = LRU_FILE_CONTENTS_CACHE.get(file); if (contents === undefined) return false; @@ -92,7 +101,10 @@ function rangeExistsInContentCache(file: string, range: ReadlineRange): boolean * Creates contiguous ranges of lines to read from a file. In the case where context lines overlap, * the ranges are merged to create a single range. */ -function makeLineReaderRanges(lines: number[], linecontext: number): ReadlineRange[] { +function makeLineReaderRanges( + lines: number[], + linecontext: number, +): ReadlineRange[] { if (!lines.length) { return []; } @@ -100,7 +112,7 @@ function makeLineReaderRanges(lines: number[], linecontext: number): ReadlineRan let i = 0; const line = lines[0]; - if (typeof line !== 'number') { + if (typeof line !== "number") { return []; } @@ -115,7 +127,7 @@ function makeLineReaderRanges(lines: number[], linecontext: number): ReadlineRan // If the next line falls into the current range, extend the current range to lineno + linecontext. const next = lines[i + 1]; - if (typeof next !== 'number') { + if (typeof next !== "number") { break; } if (next <= current[1]) { @@ -134,7 +146,11 @@ function makeLineReaderRanges(lines: number[], linecontext: number): ReadlineRan /** * Extracts lines from a file and stores them in a cache. */ -function getContextLinesFromFile(path: string, ranges: ReadlineRange[], output: Record): Promise { +function getContextLinesFromFile( + path: string, + ranges: ReadlineRange[], + output: Record, +): Promise { return new Promise((resolve, _reject) => { // It is important *not* to have any async code between createInterface and the 'line' event listener // as it will cause the 'line' event to @@ -177,11 +193,11 @@ function getContextLinesFromFile(path: string, ranges: ReadlineRange[], output: // We need to handle the error event to prevent the process from crashing in < Node 16 // https://github.com/nodejs/node/pull/31603 - stream.on('error', onStreamError); - lineRead.on('error', onStreamError); - lineRead.on('close', destroyStreamAndResolve); + stream.on("error", onStreamError); + lineRead.on("error", onStreamError); + lineRead.on("close", destroyStreamAndResolve); - lineRead.on('line', line => { + lineRead.on("line", (line) => { lineNumber++; if (lineNumber < rangeStart) return; @@ -217,7 +233,10 @@ function getContextLinesFromFile(path: string, ranges: ReadlineRange[], output: * failing reads from happening. */ -async function addSourceContext(event: Event, contextLines: number): Promise { +async function addSourceContext( + event: Event, + contextLines: number, +): Promise { // keep a lookup map of which files we've already enqueued to read, // so we don't enqueue the same file multiple times which would cause multiple i/o reads const filesToLines: Record = {}; @@ -236,8 +255,8 @@ async function addSourceContext(event: Event, contextLines: number): Promise[] = []; for (const file of files) { - // If we failed to read this before, dont try reading it again. + // If we failed to read this before, don't try reading it again. if (LRU_FILE_CONTENTS_FS_READ_FAILED.get(file)) { continue; } @@ -272,7 +291,7 @@ async function addSourceContext(event: Event, contextLines: number): Promise a - b); // Check if the contents are already in the cache and if we can avoid reading the file again. const ranges = makeLineReaderRanges(filesToLineRanges, contextLines); - if (ranges.every(r => rangeExistsInContentCache(file, r))) { + if (ranges.every((r) => rangeExistsInContentCache(file, r))) { continue; } @@ -282,15 +301,25 @@ async function addSourceContext(event: Event, contextLines: number): Promise { - DEBUG_BUILD && logger.log('Failed to read one or more source files and resolve context lines'); + DEBUG_BUILD && + logger.log( + "Failed to read one or more source files and resolve context lines", + ); }); // Perform the same loop as above, but this time we can assume all files are in the cache // and attempt to add source context to frames. if (contextLines > 0 && event.exception?.values) { for (const exception of event.exception.values) { - if (exception.stacktrace?.frames && exception.stacktrace.frames.length > 0) { - addSourceContextToFrames(exception.stacktrace.frames, contextLines, LRU_FILE_CONTENTS_CACHE); + if ( + exception.stacktrace?.frames && + exception.stacktrace.frames.length > 0 + ) { + addSourceContextToFrames( + exception.stacktrace.frames, + contextLines, + LRU_FILE_CONTENTS_CACHE, + ); } } } @@ -307,7 +336,11 @@ function addSourceContextToFrames( ): void { for (const frame of frames) { // Only add context if we have a filename and it hasn't already been added - if (frame.filename && frame.context_line === undefined && typeof frame.lineno === 'number') { + if ( + frame.filename && + frame.context_line === undefined && + typeof frame.lineno === "number" + ) { const contents = cache.get(frame.filename); if (contents === undefined) { continue; @@ -340,29 +373,34 @@ export function addContextToFrame( // When there is no line number in the frame, attaching context is nonsensical and will even break grouping. // We already check for lineno before calling this, but since StackFrame lineno ism optional, we check it again. if (frame.lineno === undefined || contents === undefined) { - DEBUG_BUILD && logger.error('Cannot resolve context for frame with no lineno or file contents'); + DEBUG_BUILD && + logger.error( + "Cannot resolve context for frame with no lineno or file contents", + ); return; } frame.pre_context = []; for (let i = makeRangeStart(lineno, contextLines); i < lineno; i++) { - // We always expect the start context as line numbers cannot be negative. If we dont find a line, then + // We always expect the start context as line numbers cannot be negative. If we don't find a line, then // something went wrong somewhere. Clear the context and return without adding any linecontext. const line = contents[i]; if (line === undefined) { clearLineContext(frame); - DEBUG_BUILD && logger.error(`Could not find line ${i} in file ${frame.filename}`); + DEBUG_BUILD && + logger.error(`Could not find line ${i} in file ${frame.filename}`); return; } frame.pre_context.push(line); } - // We should always have the context line. If we dont, something went wrong, so we clear the context and return + // We should always have the context line. If we don't, something went wrong, so we clear the context and return // without adding any linecontext. if (contents[lineno] === undefined) { clearLineContext(frame); - DEBUG_BUILD && logger.error(`Could not find line ${lineno} in file ${frame.filename}`); + DEBUG_BUILD && + logger.error(`Could not find line ${lineno} in file ${frame.filename}`); return; } @@ -371,7 +409,7 @@ export function addContextToFrame( const end = makeRangeEnd(lineno, contextLines); frame.post_context = []; for (let i = lineno + 1; i <= end; i++) { - // Since we dont track when the file ends, we cant clear the context if we dont find a line as it could + // Since we don't track when the file ends, we cant clear the context if we don't find a line as it could // just be that we reached the end of the file. const line = contents[i]; if (line === undefined) { @@ -393,13 +431,21 @@ function makeRangeEnd(line: number, linecontext: number): number { return line + linecontext; } // Determine start and end indices for context range (inclusive); -function makeContextRange(line: number, linecontext: number): [start: number, end: number] { +function makeContextRange( + line: number, + linecontext: number, +): [start: number, end: number] { return [makeRangeStart(line, linecontext), makeRangeEnd(line, linecontext)]; } /** Exported only for tests, as a type-safe variant. */ -export const _contextLinesIntegration: any = ((options: ContextLinesOptions = {}) => { - const contextLines = options.frameContextLines !== undefined ? options.frameContextLines : DEFAULT_LINES_OF_CONTEXT; +export const _contextLinesIntegration: any = (( + options: ContextLinesOptions = {}, +) => { + const contextLines = + options.frameContextLines !== undefined + ? options.frameContextLines + : DEFAULT_LINES_OF_CONTEXT; return { name: INTEGRATION_NAME, @@ -412,4 +458,6 @@ export const _contextLinesIntegration: any = ((options: ContextLinesOptions = {} /** * Capture the lines before and after the frame's context. */ -export const contextLinesIntegration: any = defineIntegration(_contextLinesIntegration); +export const contextLinesIntegration: any = defineIntegration( + _contextLinesIntegration, +); diff --git a/v-next/hardhat/test/internal/builtin-plugins/flatten/task-action.ts b/v-next/hardhat/test/internal/builtin-plugins/flatten/task-action.ts index 49a8965900f..0d4f37a7d54 100644 --- a/v-next/hardhat/test/internal/builtin-plugins/flatten/task-action.ts +++ b/v-next/hardhat/test/internal/builtin-plugins/flatten/task-action.ts @@ -176,7 +176,7 @@ describe("flatten/task-action", () => { }); describe("SPDX licenses and pragma abicoder directives", () => { - describe("Flatten files that dont contain SPDX licenses or pragma directives", () => { + describe("Flatten files that don't contain SPDX licenses or pragma directives", () => { useFixtureProject("flatten-task/contracts-no-spdx-no-pragma"); it("should successfully flatten and compile the files", async function () { diff --git a/v-next/hardhat/test/internal/builtin-plugins/solidity/build-system/partial-compilation/helpers.ts b/v-next/hardhat/test/internal/builtin-plugins/solidity/build-system/partial-compilation/helpers.ts index 132a65d9b80..80b7b83e14b 100644 --- a/v-next/hardhat/test/internal/builtin-plugins/solidity/build-system/partial-compilation/helpers.ts +++ b/v-next/hardhat/test/internal/builtin-plugins/solidity/build-system/partial-compilation/helpers.ts @@ -236,7 +236,7 @@ export class TestProjectWrapper { ); if (buildInfo === undefined) { - throw new Error(`Couldnt find build info with id ${buildInfoId}`); + throw new Error(`Couldn't find build info with id ${buildInfoId}`); } return buildInfo; diff --git a/v-next/hardhat/test/internal/cli/main.ts b/v-next/hardhat/test/internal/cli/main.ts index 059fdf43ca0..3e2defdd944 100644 --- a/v-next/hardhat/test/internal/cli/main.ts +++ b/v-next/hardhat/test/internal/cli/main.ts @@ -684,7 +684,7 @@ GLOBAL OPTIONS: }); } - it("should have a long name level behaviour (value is required)", async function () { + it("should have a long name level behavior (value is required)", async function () { const command = "npx hardhat task --verbosity 4"; const cliArguments = command.split(" ").slice(2); @@ -702,7 +702,7 @@ GLOBAL OPTIONS: }); }); - it("should have a short name level behaviour (grouped repetition is allowed)", async function () { + it("should have a short name level behavior (grouped repetition is allowed)", async function () { const command = "npx hardhat task -vvvv"; const cliArguments = command.split(" ").slice(2); diff --git a/v-next/ignition-core/src/internal/execution/execution-engine.ts b/v-next/ignition-core/src/internal/execution/execution-engine.ts index 40e0b79519a..5eb09a0bd65 100644 --- a/v-next/ignition-core/src/internal/execution/execution-engine.ts +++ b/v-next/ignition-core/src/internal/execution/execution-engine.ts @@ -192,7 +192,7 @@ export class ExecutionEngine { * This function polls the network every `_blockPollingInterval` milliseconds. * * @param previousBlock The previous block that we know of, to compare from - * the one we get grom the network. + * the one we get from the network. * @returns The new block. */ private async _waitForNextBlock(previousBlock: Block): Promise { From a4291405397be6c3f64349af80553fb8e3e2ed92 Mon Sep 17 00:00:00 2001 From: Patricio Palladino Date: Wed, 4 Mar 2026 14:28:21 +0000 Subject: [PATCH 09/16] Ignore intentional typos --- v-next/hardhat-errors/test/errors.ts | 1 + v-next/hardhat-ethers-chai-matchers/test/matchers/properHex.ts | 1 + v-next/hardhat-ethers/test/plugin-functionalities.ts | 1 + .../integration-tests/fixture-tests/example-test/test.ts | 2 ++ v-next/hardhat-utils/test/bytecode.ts | 1 + v-next/hardhat-verify/test/blockscout.ts | 1 + v-next/hardhat-verify/test/bytecode.ts | 2 ++ v-next/hardhat-verify/test/etherscan.ts | 1 + v-next/hardhat-verify/test/libraries.ts | 3 +++ .../hardhat/src/internal/cli/telemetry/analytics/subprocess.ts | 2 ++ .../builtin-plugins/network-manager/hook-handlers/config.ts | 2 ++ .../builtin-plugins/network-manager/network-manager.ts | 2 ++ .../request-handlers/handlers/accounts/local-accounts.ts | 1 + .../build-system/resolver/remapped-npm-packages-graph.ts | 1 + .../hardhat/test/internal/cli/telemetry/sentry/anonymizer.ts | 1 + .../test-integrations/internal/execution/jsonrpc-client.ts | 1 + .../future-processor/helpers/build-initialize-message-for.ts | 1 + .../future-processor/helpers/network-interaction-execution.ts | 3 +++ .../test/execution/future-processor/named-contract-deploy.ts | 1 + v-next/ignition-core/test/execution/future-processor/utils.ts | 1 + v-next/ignition-core/test/execution/reducers/running-a-call.ts | 2 ++ .../test/execution/reducers/running-a-named-contract-deploy.ts | 2 ++ .../test/execution/reducers/running-a-named-library-deploy.ts | 1 + .../ignition-core/test/execution/reducers/running-send-data.ts | 3 +++ v-next/ignition-core/test/readEventArgument.ts | 2 ++ v-next/ignition-core/test/send.ts | 1 + 26 files changed, 40 insertions(+) diff --git a/v-next/hardhat-errors/test/errors.ts b/v-next/hardhat-errors/test/errors.ts index e110720bdac..32d7d1164f2 100644 --- a/v-next/hardhat-errors/test/errors.ts +++ b/v-next/hardhat-errors/test/errors.ts @@ -1,3 +1,4 @@ +// cSpell:ignore asdr asdjkhads asdasd asdas jhasd import type { ErrorDescriptor } from "../src/descriptors.js"; import type { ErrorMessageTemplateValue, diff --git a/v-next/hardhat-ethers-chai-matchers/test/matchers/properHex.ts b/v-next/hardhat-ethers-chai-matchers/test/matchers/properHex.ts index f9edea853df..99677b723f8 100644 --- a/v-next/hardhat-ethers-chai-matchers/test/matchers/properHex.ts +++ b/v-next/hardhat-ethers-chai-matchers/test/matchers/properHex.ts @@ -49,6 +49,7 @@ describe("properHex", () => { }); it("should handle a negative case failing because of an invalid hex value", () => { + /* cspell:disable-next-line */ const input = "0xabcdefg"; expect(() => expect(input).to.not.be.properHex(8)).to.throw( AssertionError, diff --git a/v-next/hardhat-ethers/test/plugin-functionalities.ts b/v-next/hardhat-ethers/test/plugin-functionalities.ts index c47dac533f3..131d871666c 100644 --- a/v-next/hardhat-ethers/test/plugin-functionalities.ts +++ b/v-next/hardhat-ethers/test/plugin-functionalities.ts @@ -29,6 +29,7 @@ describe("Ethers plugin", () => { // Declare all the artifacts that we need during the test ({ ethers, artifactManager } = await initializeTestEthers([ { artifactName: "Greeter", fileName: "greeter" }, + /* cspell:disable-next-line */ { artifactName: "IGreeter", fileName: "igreeter" }, { artifactName: "TestContractLib", fileName: "test-contract-lib" }, { artifactName: "TestLibrary", fileName: "test-library" }, diff --git a/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/test.ts b/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/test.ts index d20c5a7d317..e27dfde8847 100644 --- a/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/test.ts +++ b/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/test.ts @@ -1,5 +1,6 @@ import { before, beforeEach, describe, it } from "node:test"; +/* cspell:disable-next-line */ describe("Foooo", () => { it("test", async () => {}); @@ -8,6 +9,7 @@ describe("Foooo", () => { }); describe("child", () => { + /* cspell:disable-next-line */ it("asdasd", () => { const error = new Error("Different arrays", { cause: new Error("cause"), diff --git a/v-next/hardhat-utils/test/bytecode.ts b/v-next/hardhat-utils/test/bytecode.ts index 6c7f95edf45..de3e3146090 100644 --- a/v-next/hardhat-utils/test/bytecode.ts +++ b/v-next/hardhat-utils/test/bytecode.ts @@ -1,3 +1,4 @@ +// cSpell:ignore xbytecodebytecodebytecode placeholderplaceholderplaceholderp xnotanaddress import type { Artifact, LibraryAddresses } from "../src/internal/bytecode.js"; import assert from "node:assert/strict"; diff --git a/v-next/hardhat-verify/test/blockscout.ts b/v-next/hardhat-verify/test/blockscout.ts index 20e6a950cae..269db87cf7b 100644 --- a/v-next/hardhat-verify/test/blockscout.ts +++ b/v-next/hardhat-verify/test/blockscout.ts @@ -48,6 +48,7 @@ describe("blockscout", () => { }; const compilerVersion = "0.8.24+commit.e11b9ed9"; const constructorArguments = ""; + /* cspell:disable-next-line */ const guid = "a7lpxkm9kpcpicx7daftmjifrfhiuhf5vqqnawhkfhzfrcpnxj"; describe("constructor", () => { diff --git a/v-next/hardhat-verify/test/bytecode.ts b/v-next/hardhat-verify/test/bytecode.ts index 1bd59e56fad..ef55b88143e 100644 --- a/v-next/hardhat-verify/test/bytecode.ts +++ b/v-next/hardhat-verify/test/bytecode.ts @@ -254,6 +254,7 @@ describe("bytecode", () => { // deployed bytecode: real library address and immutable reference // at bytes 3 and 28 respectively const bytecode = buildBytecode( + /* cspell:disable-next-line */ `deadbe${deployedLibraryAddress}efcafebabe${deployedImmutableReference}`, metadataSection, ); @@ -292,6 +293,7 @@ describe("bytecode", () => { const output = buildCompilerOutputBytecode( // compiled bytecode: placeholders in same positions buildBytecode( + /* cspell:disable-next-line */ `deadbe${libraryPlaceholder}efcafebabe${immutablePlaceholder}`, metadataSection, ), diff --git a/v-next/hardhat-verify/test/etherscan.ts b/v-next/hardhat-verify/test/etherscan.ts index cac08039dd0..2d154c70283 100644 --- a/v-next/hardhat-verify/test/etherscan.ts +++ b/v-next/hardhat-verify/test/etherscan.ts @@ -53,6 +53,7 @@ describe("etherscan", () => { }; const compilerVersion = "0.8.24+commit.e11b9ed9"; const constructorArguments = ""; + /* cspell:disable-next-line */ const guid = "a7lpxkm9kpcpicx7daftmjifrfhiuhf5vqqnawhkfhzfrcpnxj"; describe("constructor", () => { diff --git a/v-next/hardhat-verify/test/libraries.ts b/v-next/hardhat-verify/test/libraries.ts index 3b7b07a7d2d..22c6005ebe5 100644 --- a/v-next/hardhat-verify/test/libraries.ts +++ b/v-next/hardhat-verify/test/libraries.ts @@ -459,6 +459,7 @@ describe("libraries", () => { }, }; const libraryAddress = "1234567890abcdef1234567890abcdef12345678"; + /* cspell:disable-next-line */ const bytecode = `aa${libraryAddress}bbccddeeff`; const expectedLibraries: SourceLibraries = { "contracts/Lib.sol": { @@ -483,6 +484,7 @@ describe("libraries", () => { }; const libAAddress = "1234567890abcdef1234567890abcdef12345678"; const libBAddress = "abcdef1234567890abcdef1234567890abcdef12"; + /* cspell:disable-next-line */ const bytecode = `aabb${libAAddress}ccddee${libBAddress}ff`; const expectedLibraries: SourceLibraries = { "contracts/libs/A.sol": { @@ -510,6 +512,7 @@ describe("libraries", () => { }; const libAAddress = "1234567890abcdef1234567890abcdef12345678"; const libBAddress = "abcdef1234567890abcdef1234567890abcdef12"; + /* cspell:disable-next-line */ const bytecode = `aabb${libAAddress}ccddee${libBAddress}ff`; const expectedLibraries: SourceLibraries = { "contracts/libs/A.sol": { diff --git a/v-next/hardhat/src/internal/cli/telemetry/analytics/subprocess.ts b/v-next/hardhat/src/internal/cli/telemetry/analytics/subprocess.ts index 54be4de612f..8833310e8ad 100644 --- a/v-next/hardhat/src/internal/cli/telemetry/analytics/subprocess.ts +++ b/v-next/hardhat/src/internal/cli/telemetry/analytics/subprocess.ts @@ -5,7 +5,9 @@ import { postJsonRequest } from "@nomicfoundation/hardhat-utils/request"; // These keys are expected to be public const ANALYTICS_URL = "https://www.google-analytics.com/mp/collect"; +/* cspell:disable-next-line */ // const API_SECRET = "iXzTRik5RhahYpgiatSv1w"; // DEV +/* cspell:disable-next-line */ // const MEASUREMENT_ID = "G-ZFZWHGZ64H"; // DEV const API_SECRET = "fQ5joCsDRTOp55wX8a2cVw"; // PROD const MEASUREMENT_ID = "G-8LQ007N2QJ"; // PROD diff --git a/v-next/hardhat/test/internal/builtin-plugins/network-manager/hook-handlers/config.ts b/v-next/hardhat/test/internal/builtin-plugins/network-manager/hook-handlers/config.ts index 34897eae4c8..bda0752709a 100644 --- a/v-next/hardhat/test/internal/builtin-plugins/network-manager/hook-handlers/config.ts +++ b/v-next/hardhat/test/internal/builtin-plugins/network-manager/hook-handlers/config.ts @@ -856,6 +856,7 @@ describe("network-manager/hook-handlers/config", () => { it("should not allow invalid private keys", async () => { hardhatUserConfig.networks.localhost.accounts = [ + /* cspell:disable-next-line */ "0xgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg", ]; @@ -1136,6 +1137,7 @@ describe("network-manager/hook-handlers/config", () => { { balance: "123", privateKey: + /* cspell:disable-next-line */ "0xgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg", }, ]; diff --git a/v-next/hardhat/test/internal/builtin-plugins/network-manager/network-manager.ts b/v-next/hardhat/test/internal/builtin-plugins/network-manager/network-manager.ts index 96fbe5172fc..c6670a2789b 100644 --- a/v-next/hardhat/test/internal/builtin-plugins/network-manager/network-manager.ts +++ b/v-next/hardhat/test/internal/builtin-plugins/network-manager/network-manager.ts @@ -1281,6 +1281,7 @@ describe("NetworkManagerImplementation", () => { const validationErrors = await validateNetworkUserConfig( httpConfig({ accounts: [ + /* cspell:disable-next-line */ "0xgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg", ], }), @@ -1517,6 +1518,7 @@ describe("NetworkManagerImplementation", () => { { balance: "123", privateKey: + /* cspell:disable-next-line */ "0xgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg", }, ], diff --git a/v-next/hardhat/test/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.ts b/v-next/hardhat/test/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.ts index d65852f66cf..95213b47fe2 100644 --- a/v-next/hardhat/test/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.ts +++ b/v-next/hardhat/test/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.ts @@ -373,6 +373,7 @@ describe("LocalAccountsHandler", () => { it("should throw if data string input is not JSON", async () => { const jsonRpcRequest = getJsonRpcRequest(1, "eth_signTypedData_v4", [ "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826", + /* cspell:disable-next-line */ "}thisisnotvalidjson{", ]); diff --git a/v-next/hardhat/test/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.ts b/v-next/hardhat/test/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.ts index c7f7f1d09ab..333c19b4a9a 100644 --- a/v-next/hardhat/test/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.ts +++ b/v-next/hardhat/test/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.ts @@ -1,3 +1,4 @@ +// cSpell:ignore Ozcs fooasd import type { TestProjectTemplate } from "./helpers.js"; import type { Remapping, diff --git a/v-next/hardhat/test/internal/cli/telemetry/sentry/anonymizer.ts b/v-next/hardhat/test/internal/cli/telemetry/sentry/anonymizer.ts index d5dc227462d..19c97d82338 100644 --- a/v-next/hardhat/test/internal/cli/telemetry/sentry/anonymizer.ts +++ b/v-next/hardhat/test/internal/cli/telemetry/sentry/anonymizer.ts @@ -567,6 +567,7 @@ describe("Anonymizer", () => { createTestEvent([hardhatFile, userHardhatConfigFile, userProjectFile], { type: "Error", value: + /* cspell:disable-next-line */ "Cannot find module 'chai'\nRequire stack:\n- /node_modules/@nomicfoundation/hardhat-chai-matchers/internal/add-ch…ndation/hardhat-chai-matchers/index.js\n- /node_modules/@nomicfoundation/hardhat-toolbox/index.js\n- ", }), ); diff --git a/v-next/ignition-core/test-integrations/internal/execution/jsonrpc-client.ts b/v-next/ignition-core/test-integrations/internal/execution/jsonrpc-client.ts index 2073cdb5b62..ccbd9981774 100644 --- a/v-next/ignition-core/test-integrations/internal/execution/jsonrpc-client.ts +++ b/v-next/ignition-core/test-integrations/internal/execution/jsonrpc-client.ts @@ -1587,6 +1587,7 @@ describe("JSON-RPC client", function () { }); describe("With a hardhat network that doesn't throw on transaction errors", function () { + /* cspell:disable-next-line */ useHardhatProject("dont-throw-on-reverts"); describe("sendTransaction", function () { diff --git a/v-next/ignition-core/test/execution/future-processor/helpers/build-initialize-message-for.ts b/v-next/ignition-core/test/execution/future-processor/helpers/build-initialize-message-for.ts index 763c562b38f..e9182dbfec6 100644 --- a/v-next/ignition-core/test/execution/future-processor/helpers/build-initialize-message-for.ts +++ b/v-next/ignition-core/test/execution/future-processor/helpers/build-initialize-message-for.ts @@ -304,6 +304,7 @@ describe("buildInitializeMessageFor", () => { maxFeePerGas: 100n, }, receipt: { + /* cspell:disable-next-line */ blockHash: "0xblock", blockNumber: 0, contractAddress: differentAddress, diff --git a/v-next/ignition-core/test/execution/future-processor/helpers/network-interaction-execution.ts b/v-next/ignition-core/test/execution/future-processor/helpers/network-interaction-execution.ts index f2faf06e464..79aea5d723d 100644 --- a/v-next/ignition-core/test/execution/future-processor/helpers/network-interaction-execution.ts +++ b/v-next/ignition-core/test/execution/future-processor/helpers/network-interaction-execution.ts @@ -858,6 +858,7 @@ class MockGetTransactionJsonRpcClient extends StubJsonRpcClient { public override async getLatestBlock(): Promise { return { + /* cspell:disable-next-line */ hash: "0xblockhas", number: 34, }; @@ -867,8 +868,10 @@ class MockGetTransactionJsonRpcClient extends StubJsonRpcClient { _txHash: string, ): Promise { return { + /* cspell:disable-next-line */ blockHash: "0xblockhash", blockNumber: 34, + /* cspell:disable-next-line */ contractAddress: "0xcontractaddress", logs: [], status: TransactionReceiptStatus.SUCCESS, diff --git a/v-next/ignition-core/test/execution/future-processor/named-contract-deploy.ts b/v-next/ignition-core/test/execution/future-processor/named-contract-deploy.ts index df1f44c8d84..da8553c1d59 100644 --- a/v-next/ignition-core/test/execution/future-processor/named-contract-deploy.ts +++ b/v-next/ignition-core/test/execution/future-processor/named-contract-deploy.ts @@ -44,6 +44,7 @@ describe("future processor", () => { }, { [exampleTxHash]: { + /* cspell:disable-next-line */ blockHash: `0xblockhash-5`, blockNumber: 1, contractAddress: exampleAddress, diff --git a/v-next/ignition-core/test/execution/future-processor/utils.ts b/v-next/ignition-core/test/execution/future-processor/utils.ts index 08f52fc5c68..666f1a100c5 100644 --- a/v-next/ignition-core/test/execution/future-processor/utils.ts +++ b/v-next/ignition-core/test/execution/future-processor/utils.ts @@ -118,6 +118,7 @@ class MockJsonRpcClient implements JsonRpcClient { const blockNumber = this._blockNumber++; return { + /* cspell:disable-next-line */ hash: `0xblockhash-${blockNumber}`, number: blockNumber, }; diff --git a/v-next/ignition-core/test/execution/reducers/running-a-call.ts b/v-next/ignition-core/test/execution/reducers/running-a-call.ts index 41d27413811..e97ce769291 100644 --- a/v-next/ignition-core/test/execution/reducers/running-a-call.ts +++ b/v-next/ignition-core/test/execution/reducers/running-a-call.ts @@ -96,6 +96,7 @@ describe("DeploymentStateReducer", () => { futureId: "Call1", networkInteractionId: 1, transaction: { + /* cspell:disable-next-line */ hash: "0xanother", fees: { maxFeePerGas: BigInt(25), @@ -111,6 +112,7 @@ describe("DeploymentStateReducer", () => { networkInteractionId: 1, hash: "0xdeadbeef", receipt: { + /* cspell:disable-next-line */ blockHash: "0xblockhash", blockNumber: 0, contractAddress: exampleAddress, diff --git a/v-next/ignition-core/test/execution/reducers/running-a-named-contract-deploy.ts b/v-next/ignition-core/test/execution/reducers/running-a-named-contract-deploy.ts index 7fe60ab6f82..fdb254014c2 100644 --- a/v-next/ignition-core/test/execution/reducers/running-a-named-contract-deploy.ts +++ b/v-next/ignition-core/test/execution/reducers/running-a-named-contract-deploy.ts @@ -98,6 +98,7 @@ describe("DeploymentStateReducer", () => { futureId: "future1", networkInteractionId: 1, transaction: { + /* cspell:disable-next-line */ hash: "0xanother", fees: { maxFeePerGas: BigInt(20), @@ -113,6 +114,7 @@ describe("DeploymentStateReducer", () => { networkInteractionId: 1, hash: "0xdeadbeef", receipt: { + /* cspell:disable-next-line */ blockHash: "0xblockhash", blockNumber: 0, contractAddress: exampleAddress, diff --git a/v-next/ignition-core/test/execution/reducers/running-a-named-library-deploy.ts b/v-next/ignition-core/test/execution/reducers/running-a-named-library-deploy.ts index 29fb6c5a2fe..5d20aae6d5d 100644 --- a/v-next/ignition-core/test/execution/reducers/running-a-named-library-deploy.ts +++ b/v-next/ignition-core/test/execution/reducers/running-a-named-library-deploy.ts @@ -78,6 +78,7 @@ describe("DeploymentStateReducer", () => { networkInteractionId: 1, hash: "0xdeadbeef", receipt: { + /* cspell:disable-next-line */ blockHash: "0xblockhash", blockNumber: 0, contractAddress: exampleAddress, diff --git a/v-next/ignition-core/test/execution/reducers/running-send-data.ts b/v-next/ignition-core/test/execution/reducers/running-send-data.ts index 6d8b3148c09..c465148bf24 100644 --- a/v-next/ignition-core/test/execution/reducers/running-send-data.ts +++ b/v-next/ignition-core/test/execution/reducers/running-send-data.ts @@ -79,6 +79,7 @@ describe("DeploymentStateReducer", () => { futureId: "SendData1", networkInteractionId: 1, transaction: { + /* cspell:disable-next-line */ hash: "0xanother", fees: { maxFeePerGas: BigInt(20), @@ -94,6 +95,7 @@ describe("DeploymentStateReducer", () => { networkInteractionId: 1, hash: "0xdeadbeef", receipt: { + /* cspell:disable-next-line */ blockHash: "0xblockhash", blockNumber: 0, contractAddress: exampleAddress, @@ -108,6 +110,7 @@ describe("DeploymentStateReducer", () => { networkInteractionId: 1, hash: "0xdeadbeef", receipt: { + /* cspell:disable-next-line */ blockHash: "0xblockhash", blockNumber: 0, contractAddress: undefined, diff --git a/v-next/ignition-core/test/readEventArgument.ts b/v-next/ignition-core/test/readEventArgument.ts index 5b6f3ed80a2..f4bc8b50d8f 100644 --- a/v-next/ignition-core/test/readEventArgument.ts +++ b/v-next/ignition-core/test/readEventArgument.ts @@ -227,7 +227,9 @@ m.readEventArgument(..., { id: "MyUniqueId"})`, id: "ReadEvent1", }); + /* cspell:disable-next-line */ m.send("first", "0xtest", 0n, "test"); + /* cspell:disable-next-line */ m.send("first", "0xtest", 0n, "test"); return {}; }), diff --git a/v-next/ignition-core/test/send.ts b/v-next/ignition-core/test/send.ts index c6e3cd3c27a..e6f4b88c603 100644 --- a/v-next/ignition-core/test/send.ts +++ b/v-next/ignition-core/test/send.ts @@ -409,6 +409,7 @@ describe("send", () => { assertThrowsHardhatError( () => buildModule("Module1", (m) => { + /* cspell:disable-next-line */ m.send("id", "0xnot-an-address", 0n, ""); return {}; From 480e3f28350f747e9f25e7ea75b44b94c5912f43 Mon Sep 17 00:00:00 2001 From: Patricio Palladino Date: Wed, 4 Mar 2026 14:28:31 +0000 Subject: [PATCH 10/16] Improve the failure message --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 83016bbc868..726ff3564d2 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "prelint:fix": "pnpm build", "lint:fix": "pnpm run --recursive --if-present lint:fix", "version-for-release": "pnpm changeset version && node scripts/bump-peers.mjs apply && pnpm -w install --lockfile-only", - "spellcheck": "cspell --no-progress || echo 'cspell failed. If you think a word is correctly spelled, please add it to cspell.dictionary.txt'" + "spellcheck": "cspell --no-progress || echo \"\\n\\n==== cspell failed ===\\n\\nIf you think a word is correctly spelled, please add it to cspell.dictionary.txt\\nTo ignore a word use the comments 'cSpell:ignore wooord' or 'cspell:disable-next-line'\"" }, "pnpm": { "onlyBuiltDependencies": [ From 19b691d66e6cf994114bc238e4b587f3afc34e64 Mon Sep 17 00:00:00 2001 From: Patricio Palladino Date: Wed, 4 Mar 2026 14:36:12 +0000 Subject: [PATCH 11/16] Add changesets --- .changeset/legal-bananas-invite.md | 5 +++++ .changeset/mean-sloths-attend.md | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 .changeset/legal-bananas-invite.md create mode 100644 .changeset/mean-sloths-attend.md diff --git a/.changeset/legal-bananas-invite.md b/.changeset/legal-bananas-invite.md new file mode 100644 index 00000000000..62734851a82 --- /dev/null +++ b/.changeset/legal-bananas-invite.md @@ -0,0 +1,5 @@ +--- +"@nomicfoundation/hardhat-zod-utils": patch +--- + +Fix typo in default error message [#8028](https://github.com/NomicFoundation/hardhat/pull/8028) diff --git a/.changeset/mean-sloths-attend.md b/.changeset/mean-sloths-attend.md new file mode 100644 index 00000000000..c484b06a2f5 --- /dev/null +++ b/.changeset/mean-sloths-attend.md @@ -0,0 +1,5 @@ +--- +"hardhat": patch +--- + +Fix typo in assertion message [#8028](https://github.com/NomicFoundation/hardhat/pull/8028) From 24a82a820999e92379c363235024dcf63a71760d Mon Sep 17 00:00:00 2001 From: Patricio Palladino Date: Wed, 4 Mar 2026 14:39:22 +0000 Subject: [PATCH 12/16] Resolve review comments --- cspell.config.mts | 8 ++++++-- cspell.dictionary.txt | 1 + scripts/github-release/build-release-descriptors.mjs | 2 +- .../multiple-contracts-with-same-name/package.json | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/cspell.config.mts b/cspell.config.mts index 51a5d5f54bc..e85830c9d40 100644 --- a/cspell.config.mts +++ b/cspell.config.mts @@ -4,8 +4,8 @@ export default defineConfig({ version: "0.2", language: "en", files: [ - "*.{js,ts,md,json}", - "{.github,scripts,v-next}/**/*.{js,ts,md,yml,yaml}", + "*.{js,ts,md,json,yml,yaml,mjs,cjs,mts,cts}", + "{.github,scripts,v-next}/**/*.{js,ts,md,json,yml,yaml,mjs,cjs,mts,cts}", ], ignoreRandomStrings: true, allowCompoundWords: true, @@ -18,6 +18,7 @@ export default defineConfig({ ], dictionaries: ["project-dictionary"], ignorePaths: [ + "pnpm-lock.yaml", "node_modules", "v-next/*/node_modules", "v-next/*/dist", @@ -27,5 +28,8 @@ export default defineConfig({ "**/vendored/**/*", "**/vendor/**/*", "**/coverage/html/**/*", + "**/artifacts/**/*.json", + "**/artifacts/**/*.d.ts", + "**/build-info/**/*", ], }); diff --git a/cspell.dictionary.txt b/cspell.dictionary.txt index 0a457a108bc..1007a0bb212 100644 --- a/cspell.dictionary.txt +++ b/cspell.dictionary.txt @@ -79,6 +79,7 @@ mylib mylock napi niño +NFKC Nomic nomiclabs normalise diff --git a/scripts/github-release/build-release-descriptors.mjs b/scripts/github-release/build-release-descriptors.mjs index a48e65e0877..21e7ef4e3eb 100644 --- a/scripts/github-release/build-release-descriptors.mjs +++ b/scripts/github-release/build-release-descriptors.mjs @@ -45,7 +45,7 @@ export function buildReleaseDescriptors(publishSummary, changelogs) { /** * Extracts the changelog entry for a specific version from raw changelog content. - * Normalises major/minor/patch changes to "### Changes". + * Normalizes major/minor/patch changes to "### Changes". * Throws if the version header is not found. * * @param {string} changelog - Raw changelog file content diff --git a/v-next/hardhat-ignition/test/fixture-projects/multiple-contracts-with-same-name/package.json b/v-next/hardhat-ignition/test/fixture-projects/multiple-contracts-with-same-name/package.json index d7e353f5989..c9a21b52ba2 100644 --- a/v-next/hardhat-ignition/test/fixture-projects/multiple-contracts-with-same-name/package.json +++ b/v-next/hardhat-ignition/test/fixture-projects/multiple-contracts-with-same-name/package.json @@ -4,5 +4,5 @@ "type": "module", "version": "0.0.1", "license": "ISC", - "description": "A Hardat project with multiple contracts with the same name" + "description": "A Hardhat project with multiple contracts with the same name" } From 570c65b6a2739f5890289fb8f6b7d3b78b8b7c90 Mon Sep 17 00:00:00 2001 From: Patricio Palladino Date: Wed, 4 Mar 2026 14:41:23 +0000 Subject: [PATCH 13/16] Fix npm script --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 726ff3564d2..1b099c75b08 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "prelint:fix": "pnpm build", "lint:fix": "pnpm run --recursive --if-present lint:fix", "version-for-release": "pnpm changeset version && node scripts/bump-peers.mjs apply && pnpm -w install --lockfile-only", - "spellcheck": "cspell --no-progress || echo \"\\n\\n==== cspell failed ===\\n\\nIf you think a word is correctly spelled, please add it to cspell.dictionary.txt\\nTo ignore a word use the comments 'cSpell:ignore wooord' or 'cspell:disable-next-line'\"" + "spellcheck": "cspell --no-progress || (echo \"\\n\\n==== cspell failed ===\\n\\nIf you think a word is correctly spelled, please add it to cspell.dictionary.txt\\nTo ignore a word use the comments 'cSpell:ignore wooord' or 'cspell:disable-next-line'\"; exit 1)" }, "pnpm": { "onlyBuiltDependencies": [ From fa1be7825723fc5c3807ad3baab1d2b3f7345fca Mon Sep 17 00:00:00 2001 From: Patricio Palladino Date: Wed, 4 Mar 2026 14:52:03 +0000 Subject: [PATCH 14/16] Fix hardhat-ethers-chai-matchers error --- .../test/matchers/reverted/revertedWithCustomError.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v-next/hardhat-ethers-chai-matchers/test/matchers/reverted/revertedWithCustomError.ts b/v-next/hardhat-ethers-chai-matchers/test/matchers/reverted/revertedWithCustomError.ts index 838b1c2c42d..346607293b6 100644 --- a/v-next/hardhat-ethers-chai-matchers/test/matchers/reverted/revertedWithCustomError.ts +++ b/v-next/hardhat-ethers-chai-matchers/test/matchers/reverted/revertedWithCustomError.ts @@ -489,10 +489,10 @@ describe("INTEGRATION: Reverted with custom error", { timeout: 60000 }, () => { () => expect( matchers.revertWithSomeCustomError(), - ).to.be.revertedWithCustomError(matchers, "SomeCustomError"), + ).to.be.revertedWithCustomError(matchers, "SomeCustomErrorTwo"), (e) => e.message.includes( - `The given contract doesn't have a custom error named "SomeCustomError"`, + `The given contract doesn't have a custom error named "SomeCustomErrorTwo"`, ), "Expected custom error not found error message", ); From b0eb4758e8f4faae4569ce35f1e4c537082bd992 Mon Sep 17 00:00:00 2001 From: Patricio Palladino Date: Wed, 4 Mar 2026 14:59:11 +0000 Subject: [PATCH 15/16] Regenerate updated integration tests' fixture --- .../fixture-tests/example-test/result.svg | 124 +++++++++--------- .../fixture-tests/example-test/result.txt | 15 ++- 2 files changed, 70 insertions(+), 69 deletions(-) diff --git a/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/result.svg b/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/result.svg index c7211323bc7..6ccc89d88c5 100644 --- a/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/result.svg +++ b/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/result.svg @@ -1,6 +1,6 @@ - Qt SVG Document Generated with Qt @@ -11,7 +11,7 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + (integration-tests/fixture-tests/example-test/test.ts:7:11) +  at TestContext. (integration-tests/fixture-tests/example-test/test.ts:8:11) [cause]: Error: cause -  at TestContext. (integration-tests/fixture-tests/example-test/test.ts:7:43) +  at TestContext. (integration-tests/fixture-tests/example-test/test.ts:8:43) 2) Foooo child @@ -61,12 +62,12 @@  3,  ] -  at TestContext. (integration-tests/fixture-tests/example-test/test.ts:12:21) +  at TestContext. (integration-tests/fixture-tests/example-test/test.ts:14:21) [cause]: Error: cause -  at TestContext. (integration-tests/fixture-tests/example-test/test.ts:13:16) +  at TestContext. (integration-tests/fixture-tests/example-test/test.ts:15:16) 3) in describe: Error: before -  at SuiteContext. (integration-tests/fixture-tests/example-test/test.ts:51:11) +  at SuiteContext. (integration-tests/fixture-tests/example-test/test.ts:53:11) From 9d410ca63c91b9d3b2247258567e515d25f5f05a Mon Sep 17 00:00:00 2001 From: Patricio Palladino Date: Wed, 4 Mar 2026 15:56:40 +0000 Subject: [PATCH 16/16] Regenerate example-test fixture --- .../fixture-tests/example-test/result.svg | 124 +++++++++--------- .../fixture-tests/example-test/result.txt | 3 +- 2 files changed, 63 insertions(+), 64 deletions(-) diff --git a/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/result.svg b/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/result.svg index 6ccc89d88c5..af4ed5e9a1c 100644 --- a/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/result.svg +++ b/v-next/hardhat-node-test-reporter/integration-tests/fixture-tests/example-test/result.svg @@ -1,6 +1,6 @@ - Qt SVG Document Generated with Qt @@ -11,7 +11,7 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + +