Radish alpha
r
Radicle desktop app
Radicle
Git (anonymous pull)
Log in to clone via SSH
Bump eslint 9 -> 10
Rūdolfs Ošiņš committed 7 days ago
commit 3611241bb7cf7fb747ed22cd035ffd47717477ac
parent 734cbc84b2e51fd79d8a4ce6541fc981780ccaff
4 files changed +140 -284
modified package-lock.json
@@ -24,7 +24,7 @@
        "zod": "^3.25.76"
      },
      "devDependencies": {
-
        "@eslint/js": "^9.39.4",
+
        "@eslint/js": "^10.0.1",
        "@playwright/test": "1.60.0",
        "@radicle/gray-matter": "4.1.0",
        "@sveltejs/vite-plugin-svelte": "^5.1.1",
@@ -42,7 +42,7 @@
        "buffer": "^6.0.3",
        "chalk": "^5.6.2",
        "dompurify": "^3.4.2",
-
        "eslint": "^9.39.4",
+
        "eslint": "^10.3.0",
        "eslint-config-prettier": "^10.1.8",
        "eslint-plugin-simple-import-sort": "^13.0.0",
        "eslint-plugin-svelte": "^3.17.1",
@@ -523,118 +523,89 @@
      }
    },
    "node_modules/@eslint/config-array": {
-
      "version": "0.21.2",
-
      "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz",
-
      "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==",
+
      "version": "0.23.5",
+
      "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz",
+
      "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==",
      "dev": true,
      "license": "Apache-2.0",
      "dependencies": {
-
        "@eslint/object-schema": "^2.1.7",
+
        "@eslint/object-schema": "^3.0.5",
        "debug": "^4.3.1",
-
        "minimatch": "^3.1.5"
+
        "minimatch": "^10.2.4"
      },
      "engines": {
-
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
        "node": "^20.19.0 || ^22.13.0 || >=24"
      }
    },
    "node_modules/@eslint/config-helpers": {
-
      "version": "0.4.2",
-
      "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz",
-
      "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==",
+
      "version": "0.5.5",
+
      "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.5.tgz",
+
      "integrity": "sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==",
      "dev": true,
      "license": "Apache-2.0",
      "dependencies": {
-
        "@eslint/core": "^0.17.0"
+
        "@eslint/core": "^1.2.1"
      },
      "engines": {
-
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
        "node": "^20.19.0 || ^22.13.0 || >=24"
      }
    },
    "node_modules/@eslint/core": {
-
      "version": "0.17.0",
-
      "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz",
-
      "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==",
+
      "version": "1.2.1",
+
      "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz",
+
      "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==",
      "dev": true,
      "license": "Apache-2.0",
      "dependencies": {
        "@types/json-schema": "^7.0.15"
      },
      "engines": {
-
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-
      }
-
    },
-
    "node_modules/@eslint/eslintrc": {
-
      "version": "3.3.5",
-
      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz",
-
      "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==",
-
      "dev": true,
-
      "license": "MIT",
-
      "dependencies": {
-
        "ajv": "^6.14.0",
-
        "debug": "^4.3.2",
-
        "espree": "^10.0.1",
-
        "globals": "^14.0.0",
-
        "ignore": "^5.2.0",
-
        "import-fresh": "^3.2.1",
-
        "js-yaml": "^4.1.1",
-
        "minimatch": "^3.1.5",
-
        "strip-json-comments": "^3.1.1"
-
      },
-
      "engines": {
-
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-
      },
-
      "funding": {
-
        "url": "https://opencollective.com/eslint"
-
      }
-
    },
-
    "node_modules/@eslint/eslintrc/node_modules/globals": {
-
      "version": "14.0.0",
-
      "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
-
      "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
-
      "dev": true,
-
      "license": "MIT",
-
      "engines": {
-
        "node": ">=18"
-
      },
-
      "funding": {
-
        "url": "https://github.com/sponsors/sindresorhus"
+
        "node": "^20.19.0 || ^22.13.0 || >=24"
      }
    },
    "node_modules/@eslint/js": {
-
      "version": "9.39.4",
-
      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz",
-
      "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==",
+
      "version": "10.0.1",
+
      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz",
+
      "integrity": "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==",
      "dev": true,
      "license": "MIT",
      "engines": {
-
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
        "node": "^20.19.0 || ^22.13.0 || >=24"
      },
      "funding": {
        "url": "https://eslint.org/donate"
+
      },
+
      "peerDependencies": {
+
        "eslint": "^10.0.0"
+
      },
+
      "peerDependenciesMeta": {
+
        "eslint": {
+
          "optional": true
+
        }
      }
    },
    "node_modules/@eslint/object-schema": {
-
      "version": "2.1.7",
-
      "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz",
-
      "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",
+
      "version": "3.0.5",
+
      "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz",
+
      "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==",
      "dev": true,
      "license": "Apache-2.0",
      "engines": {
-
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
        "node": "^20.19.0 || ^22.13.0 || >=24"
      }
    },
    "node_modules/@eslint/plugin-kit": {
-
      "version": "0.4.1",
-
      "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz",
-
      "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==",
+
      "version": "0.7.1",
+
      "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.1.tgz",
+
      "integrity": "sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==",
      "dev": true,
      "license": "Apache-2.0",
      "dependencies": {
-
        "@eslint/core": "^0.17.0",
+
        "@eslint/core": "^1.2.1",
        "levn": "^0.4.1"
      },
      "engines": {
-
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
        "node": "^20.19.0 || ^22.13.0 || >=24"
      }
    },
    "node_modules/@floating-ui/core": {
@@ -1494,6 +1465,13 @@
      "dev": true,
      "license": "MIT"
    },
+
    "node_modules/@types/esrecurse": {
+
      "version": "4.3.1",
+
      "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz",
+
      "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==",
+
      "dev": true,
+
      "license": "MIT"
+
    },
    "node_modules/@types/estree": {
      "version": "1.0.7",
      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
@@ -1784,45 +1762,6 @@
        "typescript": ">=4.8.4 <6.1.0"
      }
    },
-
    "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": {
-
      "version": "4.0.4",
-
      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
-
      "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
-
      "dev": true,
-
      "license": "MIT",
-
      "engines": {
-
        "node": "18 || 20 || >=22"
-
      }
-
    },
-
    "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
-
      "version": "5.0.6",
-
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz",
-
      "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==",
-
      "dev": true,
-
      "license": "MIT",
-
      "dependencies": {
-
        "balanced-match": "^4.0.2"
-
      },
-
      "engines": {
-
        "node": "18 || 20 || >=22"
-
      }
-
    },
-
    "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
-
      "version": "10.2.5",
-
      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
-
      "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
-
      "dev": true,
-
      "license": "BlueOak-1.0.0",
-
      "dependencies": {
-
        "brace-expansion": "^5.0.5"
-
      },
-
      "engines": {
-
        "node": "18 || 20 || >=22"
-
      },
-
      "funding": {
-
        "url": "https://github.com/sponsors/isaacs"
-
      }
-
    },
    "node_modules/@typescript-eslint/utils": {
      "version": "8.59.3",
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.3.tgz",
@@ -2054,21 +1993,6 @@
        "url": "https://github.com/sponsors/epoberezkin"
      }
    },
-
    "node_modules/ansi-styles": {
-
      "version": "4.3.0",
-
      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-
      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-
      "dev": true,
-
      "dependencies": {
-
        "color-convert": "^2.0.1"
-
      },
-
      "engines": {
-
        "node": ">=8"
-
      },
-
      "funding": {
-
        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
-
      }
-
    },
    "node_modules/argparse": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -2128,11 +2052,14 @@
      "dev": true
    },
    "node_modules/balanced-match": {
-
      "version": "1.0.2",
-
      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
-
      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+
      "version": "4.0.4",
+
      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+
      "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
      "dev": true,
-
      "license": "MIT"
+
      "license": "MIT",
+
      "engines": {
+
        "node": "18 || 20 || >=22"
+
      }
    },
    "node_modules/base-x": {
      "version": "5.0.1",
@@ -2161,14 +2088,16 @@
      ]
    },
    "node_modules/brace-expansion": {
-
      "version": "1.1.14",
-
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz",
-
      "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==",
+
      "version": "5.0.6",
+
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz",
+
      "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==",
      "dev": true,
      "license": "MIT",
      "dependencies": {
-
        "balanced-match": "^1.0.0",
-
        "concat-map": "0.0.1"
+
        "balanced-match": "^4.0.2"
+
      },
+
      "engines": {
+
        "node": "18 || 20 || >=22"
      }
    },
    "node_modules/bs58": {
@@ -2228,16 +2157,6 @@
        "node": ">= 0.4"
      }
    },
-
    "node_modules/callsites": {
-
      "version": "3.1.0",
-
      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
-
      "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
-
      "dev": true,
-
      "license": "MIT",
-
      "engines": {
-
        "node": ">=6"
-
      }
-
    },
    "node_modules/ccount": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
@@ -2340,24 +2259,6 @@
        "node": ">=6"
      }
    },
-
    "node_modules/color-convert": {
-
      "version": "2.0.1",
-
      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-
      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-
      "dev": true,
-
      "dependencies": {
-
        "color-name": "~1.1.4"
-
      },
-
      "engines": {
-
        "node": ">=7.0.0"
-
      }
-
    },
-
    "node_modules/color-name": {
-
      "version": "1.1.4",
-
      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-
      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-
      "dev": true
-
    },
    "node_modules/combined-stream": {
      "version": "1.0.8",
      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -2390,13 +2291,6 @@
        "node": ">= 12"
      }
    },
-
    "node_modules/concat-map": {
-
      "version": "0.0.1",
-
      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-
      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
-
      "dev": true,
-
      "license": "MIT"
-
    },
    "node_modules/cross-spawn": {
      "version": "7.0.6",
      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
@@ -2661,33 +2555,30 @@
      }
    },
    "node_modules/eslint": {
-
      "version": "9.39.4",
-
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz",
-
      "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==",
+
      "version": "10.3.0",
+
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.3.0.tgz",
+
      "integrity": "sha512-XbEXaRva5cF0ZQB8w6MluHA0kZZfV2DuCMJ3ozyEOHLwDpZX2Lmm/7Pp0xdJmI0GL1W05VH5VwIFHEm1Vcw2gw==",
      "dev": true,
      "license": "MIT",
      "dependencies": {
        "@eslint-community/eslint-utils": "^4.8.0",
-
        "@eslint-community/regexpp": "^4.12.1",
-
        "@eslint/config-array": "^0.21.2",
-
        "@eslint/config-helpers": "^0.4.2",
-
        "@eslint/core": "^0.17.0",
-
        "@eslint/eslintrc": "^3.3.5",
-
        "@eslint/js": "9.39.4",
-
        "@eslint/plugin-kit": "^0.4.1",
+
        "@eslint-community/regexpp": "^4.12.2",
+
        "@eslint/config-array": "^0.23.5",
+
        "@eslint/config-helpers": "^0.5.5",
+
        "@eslint/core": "^1.2.1",
+
        "@eslint/plugin-kit": "^0.7.1",
        "@humanfs/node": "^0.16.6",
        "@humanwhocodes/module-importer": "^1.0.1",
        "@humanwhocodes/retry": "^0.4.2",
        "@types/estree": "^1.0.6",
        "ajv": "^6.14.0",
-
        "chalk": "^4.0.0",
        "cross-spawn": "^7.0.6",
        "debug": "^4.3.2",
        "escape-string-regexp": "^4.0.0",
-
        "eslint-scope": "^8.4.0",
-
        "eslint-visitor-keys": "^4.2.1",
-
        "espree": "^10.4.0",
-
        "esquery": "^1.5.0",
+
        "eslint-scope": "^9.1.2",
+
        "eslint-visitor-keys": "^5.0.1",
+
        "espree": "^11.2.0",
+
        "esquery": "^1.7.0",
        "esutils": "^2.0.2",
        "fast-deep-equal": "^3.1.3",
        "file-entry-cache": "^8.0.0",
@@ -2697,8 +2588,7 @@
        "imurmurhash": "^0.1.4",
        "is-glob": "^4.0.0",
        "json-stable-stringify-without-jsonify": "^1.0.1",
-
        "lodash.merge": "^4.6.2",
-
        "minimatch": "^3.1.5",
+
        "minimatch": "^10.2.4",
        "natural-compare": "^1.4.0",
        "optionator": "^0.9.3"
      },
@@ -2706,7 +2596,7 @@
        "eslint": "bin/eslint.js"
      },
      "engines": {
-
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
        "node": "^20.19.0 || ^22.13.0 || >=24"
      },
      "funding": {
        "url": "https://eslint.org/donate"
@@ -2823,20 +2713,61 @@
        "url": "https://opencollective.com/eslint"
      }
    },
-
    "node_modules/eslint/node_modules/chalk": {
-
      "version": "4.1.2",
-
      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-
      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+
    "node_modules/eslint/node_modules/@types/estree": {
+
      "version": "1.0.9",
+
      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz",
+
      "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==",
+
      "dev": true,
+
      "license": "MIT"
+
    },
+
    "node_modules/eslint/node_modules/eslint-scope": {
+
      "version": "9.1.2",
+
      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz",
+
      "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==",
      "dev": true,
+
      "license": "BSD-2-Clause",
      "dependencies": {
-
        "ansi-styles": "^4.1.0",
-
        "supports-color": "^7.1.0"
+
        "@types/esrecurse": "^4.3.1",
+
        "@types/estree": "^1.0.8",
+
        "esrecurse": "^4.3.0",
+
        "estraverse": "^5.2.0"
      },
      "engines": {
-
        "node": ">=10"
+
        "node": "^20.19.0 || ^22.13.0 || >=24"
      },
      "funding": {
-
        "url": "https://github.com/chalk/chalk?sponsor=1"
+
        "url": "https://opencollective.com/eslint"
+
      }
+
    },
+
    "node_modules/eslint/node_modules/eslint-visitor-keys": {
+
      "version": "5.0.1",
+
      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
+
      "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
+
      "dev": true,
+
      "license": "Apache-2.0",
+
      "engines": {
+
        "node": "^20.19.0 || ^22.13.0 || >=24"
+
      },
+
      "funding": {
+
        "url": "https://opencollective.com/eslint"
+
      }
+
    },
+
    "node_modules/eslint/node_modules/espree": {
+
      "version": "11.2.0",
+
      "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz",
+
      "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==",
+
      "dev": true,
+
      "license": "BSD-2-Clause",
+
      "dependencies": {
+
        "acorn": "^8.16.0",
+
        "acorn-jsx": "^5.3.2",
+
        "eslint-visitor-keys": "^5.0.1"
+
      },
+
      "engines": {
+
        "node": "^20.19.0 || ^22.13.0 || >=24"
+
      },
+
      "funding": {
+
        "url": "https://opencollective.com/eslint"
      }
    },
    "node_modules/esm-env": {
@@ -2863,10 +2794,11 @@
      }
    },
    "node_modules/esquery": {
-
      "version": "1.6.0",
-
      "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
-
      "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
+
      "version": "1.7.0",
+
      "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz",
+
      "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
      "dev": true,
+
      "license": "BSD-3-Clause",
      "dependencies": {
        "estraverse": "^5.1.0"
      },
@@ -3300,15 +3232,6 @@
        "node": ">=20.0.0"
      }
    },
-
    "node_modules/has-flag": {
-
      "version": "4.0.0",
-
      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-
      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-
      "dev": true,
-
      "engines": {
-
        "node": ">=8"
-
      }
-
    },
    "node_modules/has-symbols": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
@@ -3446,25 +3369,9 @@
      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
      "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
      "dev": true,
-
      "engines": {
-
        "node": ">= 4"
-
      }
-
    },
-
    "node_modules/import-fresh": {
-
      "version": "3.3.1",
-
      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
-
      "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
-
      "dev": true,
      "license": "MIT",
-
      "dependencies": {
-
        "parent-module": "^1.0.0",
-
        "resolve-from": "^4.0.0"
-
      },
      "engines": {
-
        "node": ">=6"
-
      },
-
      "funding": {
-
        "url": "https://github.com/sponsors/sindresorhus"
+
        "node": ">= 4"
      }
    },
    "node_modules/import-meta-resolve": {
@@ -3767,12 +3674,6 @@
      "dev": true,
      "license": "MIT"
    },
-
    "node_modules/lodash.merge": {
-
      "version": "4.6.2",
-
      "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
-
      "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
-
      "dev": true
-
    },
    "node_modules/loupe": {
      "version": "3.2.1",
      "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz",
@@ -4011,16 +3912,19 @@
      }
    },
    "node_modules/minimatch": {
-
      "version": "3.1.5",
-
      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
-
      "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
+
      "version": "10.2.5",
+
      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
+
      "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
      "dev": true,
-
      "license": "ISC",
+
      "license": "BlueOak-1.0.0",
      "dependencies": {
-
        "brace-expansion": "^1.1.7"
+
        "brace-expansion": "^5.0.5"
      },
      "engines": {
-
        "node": "*"
+
        "node": "18 || 20 || >=22"
+
      },
+
      "funding": {
+
        "url": "https://github.com/sponsors/isaacs"
      }
    },
    "node_modules/minimist": {
@@ -4162,19 +4066,6 @@
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
-
    "node_modules/parent-module": {
-
      "version": "1.0.1",
-
      "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
-
      "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
-
      "dev": true,
-
      "license": "MIT",
-
      "dependencies": {
-
        "callsites": "^3.0.0"
-
      },
-
      "engines": {
-
        "node": ">=6"
-
      }
-
    },
    "node_modules/parse-ms": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz",
@@ -4499,16 +4390,6 @@
        "url": "https://paulmillr.com/funding/"
      }
    },
-
    "node_modules/resolve-from": {
-
      "version": "4.0.0",
-
      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
-
      "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
-
      "dev": true,
-
      "license": "MIT",
-
      "engines": {
-
        "node": ">=4"
-
      }
-
    },
    "node_modules/rollup": {
      "version": "4.40.2",
      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz",
@@ -4699,19 +4580,6 @@
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
-
    "node_modules/strip-json-comments": {
-
      "version": "3.1.1",
-
      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
-
      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
-
      "dev": true,
-
      "license": "MIT",
-
      "engines": {
-
        "node": ">=8"
-
      },
-
      "funding": {
-
        "url": "https://github.com/sponsors/sindresorhus"
-
      }
-
    },
    "node_modules/strip-literal": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz",
@@ -4725,18 +4593,6 @@
        "url": "https://github.com/sponsors/antfu"
      }
    },
-
    "node_modules/supports-color": {
-
      "version": "7.2.0",
-
      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-
      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-
      "dev": true,
-
      "dependencies": {
-
        "has-flag": "^4.0.0"
-
      },
-
      "engines": {
-
        "node": ">=8"
-
      }
-
    },
    "node_modules/svelte": {
      "version": "5.55.5",
      "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.55.5.tgz",
modified package.json
@@ -40,7 +40,7 @@
    "zod": "^3.25.76"
  },
  "devDependencies": {
-
    "@eslint/js": "^9.39.4",
+
    "@eslint/js": "^10.0.1",
    "@playwright/test": "1.60.0",
    "@radicle/gray-matter": "4.1.0",
    "@sveltejs/vite-plugin-svelte": "^5.1.1",
@@ -58,7 +58,7 @@
    "buffer": "^6.0.3",
    "chalk": "^5.6.2",
    "dompurify": "^3.4.2",
-
    "eslint": "^9.39.4",
+
    "eslint": "^10.3.0",
    "eslint-config-prettier": "^10.1.8",
    "eslint-plugin-simple-import-sort": "^13.0.0",
    "eslint-plugin-svelte": "^3.17.1",
modified src/lib/avatar.ts
@@ -828,7 +828,7 @@ function renderUserAvatar(key: string): string {
            const sectorIdx = Math.floor(a / ((2 * Math.PI) / petals));
            if (!sectorGate(a, petals, sectorMask)) continue;

-
            let inside = false;
+
            let inside: boolean;
            if (shapeModel === "rose") inside = shapeRose(a, petals, tol);
            else if (shapeModel === "starburst")
              inside = shapeStarburst(a, petals, softness);
modified src/lib/utils.ts
@@ -223,7 +223,7 @@ export function parseNodeId(
): { prefix: string; pubkey: string } | undefined {
  const match = /^(did:key:)?(z[a-zA-Z0-9]+)$/.exec(nid);
  if (match) {
-
    let hex: Uint8Array | undefined = undefined;
+
    let hex: Uint8Array;
    try {
      hex = bs58.decode(match[2].substring(1));
    } catch (error) {