diff --git a/README.md b/README.md index 3c72d5a90..96458c0b6 100644 --- a/README.md +++ b/README.md @@ -21,5 +21,5 @@ Your app is ready to be deployed! Latest production deployment 👉 https://app.radicle.xyz -If you want to connect to pre-heartwood seed nodes, you can run the app locally +If you want to connect to pre-heartwood nodes, you can run the app locally using the `legacy` tag, available by running `git checkout legacy`. diff --git a/src/App.svelte b/src/App.svelte index 006872a18..adee27e45 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -12,7 +12,7 @@ import Home from "@app/views/home/Index.svelte"; import Projects from "@app/views/projects/View.svelte"; - import Seeds from "@app/views/seeds/View.svelte"; + import Nodes from "@app/views/nodes/View.svelte"; import Session from "@app/views/session/Index.svelte"; import LoadError from "@app/components/LoadError.svelte"; @@ -63,8 +63,8 @@
{#if $activeRouteStore.resource === "home"} - {:else if $activeRouteStore.resource === "seeds"} - + {:else if $activeRouteStore.resource === "nodes"} + {:else if $activeRouteStore.resource === "session"} {:else if $activeRouteStore.resource === "projects"} diff --git a/src/App/Header/Connect.svelte b/src/App/Header/Connect.svelte index 621a73232..9ce279393 100644 --- a/src/App/Header/Connect.svelte +++ b/src/App/Header/Connect.svelte @@ -119,7 +119,7 @@ diff --git a/src/config.json b/src/config.json index f8f9cde3f..97893ad98 100644 --- a/src/config.json +++ b/src/config.json @@ -1,6 +1,6 @@ { "reactions": ["👍", "👎", "😄", "🎉", "🙁", "🚀", "👀"], - "seeds": { + "nodes": { "defaultHttpdPort": 443, "defaultLocalHttpdPort": 8080, "defaultHttpdScheme": "https", diff --git a/src/lib/commit.ts b/src/lib/commit.ts index 1ce80fbb2..e95b9a5ef 100644 --- a/src/lib/commit.ts +++ b/src/lib/commit.ts @@ -31,44 +31,38 @@ export function groupCommits(commits: CommitHeader[]): CommitGroup[] { const groupedCommits: CommitGroup[] = []; let groupDate: Date | undefined = undefined; - try { - commits = commits.sort((a, b) => { - if (a.committer.time > b.committer.time) { - return -1; - } else if (a.committer.time < b.committer.time) { - return 1; - } - - return 0; - }); - - for (const commit of commits) { - const time = commit.committer.time * 1000; - const date = new Date(time); - const isNewDay = - !groupedCommits.length || - !groupDate || - date.getDate() < groupDate.getDate() || - date.getMonth() < groupDate.getMonth() || - date.getFullYear() < groupDate.getFullYear(); - - if (isNewDay) { - groupedCommits.push({ - date: formatGroupTime(time), - time, - commits: [], - week: 0, - }); - groupDate = date; - } - groupedCommits[groupedCommits.length - 1].commits.push(commit); + commits = commits.sort((a, b) => { + if (a.committer.time > b.committer.time) { + return -1; + } else if (a.committer.time < b.committer.time) { + return 1; } - return groupedCommits; - } catch (err) { - throw new Error( - "Not able to create commit history, please consider updating seed HTTP API.", - ); + + return 0; + }); + + for (const commit of commits) { + const time = commit.committer.time * 1000; + const date = new Date(time); + const isNewDay = + !groupedCommits.length || + !groupDate || + date.getDate() < groupDate.getDate() || + date.getMonth() < groupDate.getMonth() || + date.getFullYear() < groupDate.getFullYear(); + + if (isNewDay) { + groupedCommits.push({ + date: formatGroupTime(time), + time, + commits: [], + week: 0, + }); + groupDate = date; + } + groupedCommits[groupedCommits.length - 1].commits.push(commit); } + return groupedCommits; } function groupCommitsByWeek(commits: number[]): WeeklyActivity[] { diff --git a/src/lib/config.ts b/src/lib/config.ts index 7526cd27a..110d5fb81 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -4,7 +4,7 @@ import configJson from "@app/config.json"; export interface Config { reactions: string[]; - seeds: { + nodes: { defaultHttpdPort: number; defaultLocalHttpdPort: number; defaultNodePort: number; @@ -24,7 +24,7 @@ function getConfig(): Config { if (window.VITEST) { return { reactions: [], - seeds: { + nodes: { defaultHttpdPort: 8081, defaultLocalHttpdPort: 8081, defaultHttpdScheme: "http", diff --git a/src/lib/httpd.ts b/src/lib/httpd.ts index a4b3b703f..c005f1685 100644 --- a/src/lib/httpd.ts +++ b/src/lib/httpd.ts @@ -25,7 +25,7 @@ export const httpdStore = derived(store, s => s); export const api = new HttpdClient({ hostname: "127.0.0.1", - port: config.seeds.defaultLocalHttpdPort, + port: config.nodes.defaultLocalHttpdPort, scheme: "http", }); diff --git a/src/lib/router.ts b/src/lib/router.ts index 722c0ed47..aabacf050 100644 --- a/src/lib/router.ts +++ b/src/lib/router.ts @@ -12,7 +12,7 @@ import { resolveProjectRoute, } from "@app/views/projects/router"; import { loadRoute } from "@app/lib/router/definitions"; -import { seedPath } from "@app/views/seeds/router"; +import { nodePath } from "@app/views/nodes/router"; export { type Route }; @@ -128,7 +128,7 @@ function setTitle(loadedRoute: LoadedRoute) { title.push("Radicle"); } else if (loadedRoute.resource === "projects") { title.push(...projectTitle(loadedRoute)); - } else if (loadedRoute.resource === "seeds") { + } else if (loadedRoute.resource === "nodes") { title.push(loadedRoute.params.baseUrl.hostname); } else if (loadedRoute.resource === "session") { title.push("Authenticating"); @@ -151,15 +151,15 @@ export async function replace(newRoute: Route): Promise { function extractBaseUrl(hostAndPort: string): BaseUrl { if ( hostAndPort === "radicle.local" || - hostAndPort === `radicle.local:${config.seeds.defaultHttpdPort}` || + hostAndPort === `radicle.local:${config.nodes.defaultHttpdPort}` || hostAndPort === "0.0.0.0" || - hostAndPort === `0.0.0.0:${config.seeds.defaultHttpdPort}` || + hostAndPort === `0.0.0.0:${config.nodes.defaultHttpdPort}` || hostAndPort === "127.0.0.1" || - hostAndPort === `127.0.0.1:${config.seeds.defaultHttpdPort}` + hostAndPort === `127.0.0.1:${config.nodes.defaultHttpdPort}` ) { return { hostname: "127.0.0.1", - port: config.seeds.defaultHttpdPort, + port: config.nodes.defaultHttpdPort, scheme: "http", }; } else if (hostAndPort.includes(":")) { @@ -169,13 +169,13 @@ function extractBaseUrl(hostAndPort: string): BaseUrl { port: Number(port), scheme: utils.isLocal(hostname) ? "http" - : config.seeds.defaultHttpdScheme, + : config.nodes.defaultHttpdScheme, }; } else { return { hostname: hostAndPort, - port: config.seeds.defaultHttpdPort, - scheme: config.seeds.defaultHttpdScheme, + port: config.nodes.defaultHttpdPort, + scheme: config.nodes.defaultHttpdScheme, }; } } @@ -185,6 +185,7 @@ function urlToRoute(url: URL): Route | null { const resource = segments.shift(); switch (resource) { + case "nodes": case "seeds": { const hostAndPort = segments.shift(); if (hostAndPort) { @@ -194,7 +195,7 @@ function urlToRoute(url: URL): Route | null { return resolveProjectRoute(baseUrl, id, segments, url.search); } else { return { - resource: "seeds", + resource: "nodes", params: { baseUrl, projectPageIndex: 0 }, }; } @@ -229,8 +230,8 @@ export function routeToPath(route: Route): string { return "/"; } else if (route.resource === "session") { return `/session?id=${route.params.id}&sig=${route.params.signature}&pk=${route.params.publicKey}`; - } else if (route.resource === "seeds") { - return seedPath(route.params.baseUrl); + } else if (route.resource === "nodes") { + return nodePath(route.params.baseUrl); } else if (route.resource === "loadError") { return ""; } else if ( diff --git a/src/lib/router/definitions.ts b/src/lib/router/definitions.ts index 71fa37c27..730073a55 100644 --- a/src/lib/router/definitions.ts +++ b/src/lib/router/definitions.ts @@ -3,11 +3,11 @@ import type { ProjectLoadedRoute, ProjectRoute, } from "@app/views/projects/router"; -import type { SeedsLoadedRoute, SeedsRoute } from "@app/views/seeds/router"; +import type { NodesRoute, NodesLoadedRoute } from "@app/views/nodes/router"; import { loadHomeRoute } from "@app/views/home/router"; import { loadProjectRoute } from "@app/views/projects/router"; -import { loadSeedRoute } from "@app/views/seeds/router"; +import { loadNodeRoute } from "@app/views/nodes/router"; interface BootingRoute { resource: "booting"; @@ -38,7 +38,7 @@ export type Route = | LoadError | NotFoundRoute | ProjectRoute - | SeedsRoute + | NodesRoute | SessionRoute; export type LoadedRoute = @@ -47,12 +47,12 @@ export type LoadedRoute = | LoadError | NotFoundRoute | ProjectLoadedRoute - | SeedsLoadedRoute + | NodesLoadedRoute | SessionRoute; export async function loadRoute(route: Route): Promise { - if (route.resource === "seeds") { - return await loadSeedRoute(route.params); + if (route.resource === "nodes") { + return await loadNodeRoute(route.params); } else if (route.resource === "home") { return await loadHomeRoute(); } else if ( diff --git a/src/lib/search.ts b/src/lib/search.ts index 77b3865ba..15025fbff 100644 --- a/src/lib/search.ts +++ b/src/lib/search.ts @@ -19,13 +19,13 @@ export async function searchProjectsAndProfiles( query: string, ): Promise { try { - const pinned = config.seeds.pinned.map(seed => ({ + const pinned = config.nodes.pinned.map(node => ({ id: query, - baseUrl: seed.baseUrl, + baseUrl: node.baseUrl, })); if (utils.isRepositoryId(query)) { - const results = await getProjectsFromSeeds(pinned); + const results = await getProjectsFromNodes(pinned); if (results.length === 0) { return { type: "nothing" }; @@ -49,7 +49,7 @@ export async function searchProjectsAndProfiles( } } -export async function getProjectsFromSeeds( +export async function getProjectsFromNodes( params: { id: string; baseUrl: BaseUrl }[], ): Promise { const projectPromises = params.map(async param => { diff --git a/src/views/home/Index.svelte b/src/views/home/Index.svelte index 6d6f215d0..89463d8a1 100644 --- a/src/views/home/Index.svelte +++ b/src/views/home/Index.svelte @@ -72,7 +72,7 @@ route={{ resource: "project.tree", project: project.id, - seed: baseUrl, + node: baseUrl, }}> { try { - const projects = await getProjectsFromSeeds(config.projects.pinned); + const projects = await getProjectsFromNodes(config.projects.pinned); const results = await Promise.all( - projects.map(async projectSeed => { + projects.map(async projectNode => { const activity = await loadProjectActivity( - projectSeed.project.id, - projectSeed.baseUrl, + projectNode.project.id, + projectNode.baseUrl, ); return { - ...projectSeed, + ...projectNode, activity, }; }), diff --git a/src/views/seeds/View.svelte b/src/views/nodes/View.svelte similarity index 91% rename from src/views/seeds/View.svelte rename to src/views/nodes/View.svelte index f0573218f..0fd3c69cc 100644 --- a/src/views/seeds/View.svelte +++ b/src/views/nodes/View.svelte @@ -1,10 +1,10 @@