Radish alpha
r
rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5
Radicle web interface
Radicle
Git
radicle-explorer package.json
{
  "name": "radicle-explorer",
  "private": true,
  "version": "1.0.0",
  "scripts": {
    "start": "vite",
    "serve": "vite preview",
    "build": "vite build && scripts/copy-katex-assets && scripts/install-twemoji-assets",
    "postinstall": "scripts/copy-katex-assets && scripts/install-twemoji-assets",
    "check": "scripts/check",
    "check:radicle-httpd": "cd radicle-httpd && cargo clippy --all --tests && cargo fmt --all --check",
    "format": "npx prettier '**/*.@(ts|js|svelte|json|css|html|yml)' --write",
    "test:unit": "TZ='UTC' vitest run",
    "test:e2e": "NODE_CONFIG_ENV='test' TZ='UTC' playwright test",
    "test:e2e:local": "scripts/compile-local-httpd && USE_LOCAL_HTTPD=true NODE_CONFIG_ENV='test' TZ='UTC' playwright test",
    "test:http-client:unit": "NODE_CONFIG_ENV='test' TZ='UTC' vitest run --config http-client/vite.config.ts --reporter verbose",
    "test:http-client:unit:local": "scripts/compile-local-httpd && USE_LOCAL_HTTPD=true NODE_CONFIG_ENV='test' TZ='UTC' vitest run --config http-client/vite.config.ts --reporter verbose",
    "test:radicle-httpd": "cd radicle-httpd && cargo test --all-features",
    "deploy": "rimraf build && npm clean-install && npm run build && scripts/inject-plausible && npx wrangler deploy",
    "deploy:open-graph": "cd workers/open-graph && npx wrangler deploy",
    "start:open-graph": "cd workers/open-graph && npx wrangler dev"
  },
  "type": "module",
  "engines": {
    "node": ">=24"
  },
  "devDependencies": {
    "@eslint/js": "^10.0.1",
    "@playwright/test": "^1.59.1",
    "@sveltejs/vite-plugin-svelte": "^7.0.0",
    "@tsconfig/svelte": "^5.0.8",
    "@types/katex": "^0.16.8",
    "@types/lodash": "^4.17.24",
    "@types/md5": "^2.3.6",
    "@types/node": "^24",
    "@types/wait-on": "^5.3.4",
    "@typescript-eslint/parser": "^8.59.0",
    "chalk": "^5.6.2",
    "config": "^4.4.1",
    "eslint": "^10.2.1",
    "eslint-config-prettier": "^10.1.8",
    "eslint-plugin-svelte": "^3.17.1",
    "execa": "^9.6.1",
    "get-port": "^7.2.0",
    "globals": "^17.5.0",
    "happy-dom": "^20.9.0",
    "prettier": "^3.8.3",
    "prettier-plugin-svelte": "^3.5.1",
    "rimraf": "^6.1.3",
    "svelte-check": "^4.4.6",
    "svelte-eslint-parser": "^1.6.0",
    "typescript": "^6.0.3",
    "typescript-eslint": "^8.59.0",
    "vite": "^8.0.9",
    "vitest": "^4.1.5",
    "wait-on": "^9.0.5"
  },
  "dependencies": {
    "@radicle/gray-matter": "4.1.0",
    "@wooorm/starry-night": "^3.9.0",
    "async-mutex": "^0.5.0",
    "baconjs": "^3.0.23",
    "bs58": "^6.0.0",
    "buffer": "^6.0.3",
    "compare-versions": "^6.1.1",
    "dompurify": "^3.4.1",
    "fuzzysort": "^3.1.0",
    "hast-util-to-dom": "^4.0.1",
    "hast-util-to-html": "^9.0.5",
    "lodash": "^4.18.1",
    "lru-cache": "^11.3.5",
    "marked": "^18.0.2",
    "marked-emoji": "^2.0.3",
    "marked-footnote": "^1.4.0",
    "marked-katex-extension": "^5.1.8",
    "marked-linkify-it": "^3.1.15",
    "md5": "^2.3.0",
    "svelte": "^5.55.4",
    "twemoji": "^14.0.2",
    "zod": "^4.3.6"
  }
}