mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-11-13 18:40:50 +08:00
httpd: - Serve the API at /api, not only under /v1 - Keep serving it at /api/v1, without a redirect, until the first major release after explorer and the Open Graph worker switch to /api - Remove apiVersion: released explorers do not read it - Add `httpd.releases` to `/info`, set by the artifacts feature explorer: - Remove the API version check, its config and the unused compare-versions dependency - Keep the node version in a plain parse error message - Add `minimumSupportedVersion`, set to 0.28.0, and warn on nodes whose major is older, treating 0.y as the major before 1.0 - Do not warn on builds without a release number - Show a warning on the node page of an outdated node - Mark an outdated node in the seed picker on every page - Name the node version and the floor in parse errors - Drop the `/node` fallback for httpd without `/info`, which predates the floor - Check the status, not `ResponseError`, so the Open Graph worker can import compat without the fetcher - Name the httpd release each shim serves, not a date - Drop the mime shim for httpd 0.18.1 and the unused `lib/file.ts` - Read the node from `/info` in repo views - Pass the node and its features to repo views as one `node` param - Show the releases tab and pages when the node supports releases, and the counter only when there is a count - Read a release count as release support on older httpd - Test the flag and the fallback docs: - Restructure docs/api-changes.md: the supported versions, one table of removals, fixed fields per change, and a link to ADR 0001 for the rules - Say in ADR 0001 that each compat comment names what the other side does - Say in ADR 0001 when a capability needs a flag in /info tests: - Run e2e tests on httpd 0.30.0, above the floor, instead of 0.26.0 - Run the release tests on it too, so they cover the compat shims - Skip only those that need release counts per scope on it - Test a node without release support through a mocked `/info` flag, instead of an httpd that predates the floor
95 lines
3.3 KiB
JSON
95 lines
3.3 KiB
JSON
{
|
|
"name": "radicle-explorer",
|
|
"private": true,
|
|
"version": "1.0.0",
|
|
"scripts": {
|
|
"start": "vite",
|
|
"start:httpd": "cargo run -p radicle-httpd --release -- --listen 127.0.0.1:8080",
|
|
"serve": "vite preview",
|
|
"build": "vite build",
|
|
"check": "scripts/check",
|
|
"check:ci": "scripts/check-ci",
|
|
"check:open-graph": "cd workers/open-graph && npx wrangler deploy --dry-run",
|
|
"check:radicle-httpd": "cargo clippy --all --tests && cargo fmt --all --check",
|
|
"format": "npx prettier . --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": "cargo test --all-features",
|
|
"deploy": "rimraf build && npm clean-install && NODE_CONFIG_ENV='radicle.network' 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.61.1",
|
|
"@sveltejs/vite-plugin-svelte": "^7.2.0",
|
|
"@tsconfig/svelte": "^5.0.8",
|
|
"@types/js-yaml": "^4.0.9",
|
|
"@types/katex": "^0.16.8",
|
|
"@types/linkify-it": "^5.0.0",
|
|
"@types/lodash": "^4.17.24",
|
|
"@types/md5": "^2.3.6",
|
|
"@types/node": "^24",
|
|
"@types/wait-on": "^5.3.4",
|
|
"@typescript-eslint/parser": "^8.64.0",
|
|
"chalk": "^5.6.2",
|
|
"config": "^4.4.2",
|
|
"eslint": "^10.7.0",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-plugin-svelte": "^3.20.0",
|
|
"execa": "^9.6.1",
|
|
"get-port": "^7.2.0",
|
|
"globals": "^17.7.0",
|
|
"jsdom": "^29.1.1",
|
|
"katex": "^0.18.9",
|
|
"mdsvex": "^0.12.7",
|
|
"prettier": "^3.9.5",
|
|
"prettier-plugin-svelte": "^4.1.1",
|
|
"rehype-slug": "^6.0.0",
|
|
"remark-unwrap-images": "^4.0.1",
|
|
"rimraf": "^6.1.3",
|
|
"shiki": "^4.3.1",
|
|
"svelte-check": "^4.7.2",
|
|
"svelte-eslint-parser": "^1.8.0",
|
|
"typescript": "^6.0.3",
|
|
"typescript-eslint": "^8.64.0",
|
|
"vite": "^8.1.4",
|
|
"vitest": "^4.1.12",
|
|
"wait-on": "^9.0.10"
|
|
},
|
|
"dependencies": {
|
|
"@radicle-gui/ui": "0.0.0",
|
|
"@twemoji/svg": "^15.0.0",
|
|
"@wooorm/starry-night": "^3.10.0",
|
|
"async-mutex": "^0.5.0",
|
|
"baconjs": "^3.0.23",
|
|
"bs58": "^6.0.0",
|
|
"buffer": "^6.0.3",
|
|
"dompurify": "^3.4.12",
|
|
"fuzzysort": "^3.1.0",
|
|
"hast-util-to-dom": "^4.0.1",
|
|
"hast-util-to-html": "^9.0.5",
|
|
"js-yaml": "^5.2.1",
|
|
"linkify-it": "^6.0.0",
|
|
"lodash": "^4.18.1",
|
|
"lru-cache": "^11.5.2",
|
|
"marked": "^18.0.6",
|
|
"marked-emoji": "^2.0.3",
|
|
"marked-footnote": "^1.4.0",
|
|
"marked-katex-extension": "^5.1.10",
|
|
"marked-linkify-it": "^3.1.15",
|
|
"md5": "^2.3.0",
|
|
"mermaid": "^11.16.0",
|
|
"svelte": "^5.56.5",
|
|
"twemoji": "^14.0.2",
|
|
"zod": "^4.4.3"
|
|
}
|
|
}
|