{
"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"
}
}