- LICENSE: GNU AGPL-3.0 (full text) - Copyright headers added to all 19 source files (TS + Vue) - COMMERCIAL_LICENSE.md: dual-license explanation (AGPL + commercial)
73 lines
2.2 KiB
TypeScript
73 lines
2.2 KiB
TypeScript
// racecraft — Vue.js web client for sim racing telemetry analysis
|
|
// Copyright (C) 2026 Jan-Peter v. Hunnius
|
|
//
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU Affero General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU Affero General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU Affero General Public License
|
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
import { createRouter, createWebHistory } from 'vue-router'
|
|
|
|
const router = createRouter({
|
|
history: createWebHistory(import.meta.env.BASE_URL),
|
|
routes: [
|
|
{
|
|
path: '/',
|
|
name: 'dashboard',
|
|
component: () => import('@/views/DashboardView.vue'),
|
|
},
|
|
{
|
|
path: '/live',
|
|
name: 'live',
|
|
component: () => import('@/views/LiveView.vue'),
|
|
},
|
|
{
|
|
path: '/sessions',
|
|
name: 'sessions',
|
|
component: () => import('@/views/SessionsView.vue'),
|
|
},
|
|
{
|
|
path: '/sessions/:id',
|
|
name: 'session-detail',
|
|
component: () => import('@/views/SessionDetailView.vue'),
|
|
props: true,
|
|
},
|
|
{
|
|
path: '/analysis/shift-points/:id',
|
|
name: 'shift-points',
|
|
component: () => import('@/views/ShiftPointsView.vue'),
|
|
props: true,
|
|
},
|
|
{
|
|
path: '/analysis/grip/:id',
|
|
name: 'grip-analysis',
|
|
component: () => import('@/views/GripAnalysisView.vue'),
|
|
props: true,
|
|
},
|
|
{
|
|
path: '/tracks',
|
|
name: 'tracks',
|
|
component: () => import('@/views/TracksView.vue'),
|
|
},
|
|
{
|
|
path: '/tracks/:game/:trackName',
|
|
name: 'track-detail',
|
|
component: () => import('@/views/TrackDetailView.vue'),
|
|
props: true,
|
|
},
|
|
{
|
|
path: '/characteristics',
|
|
name: 'characteristics',
|
|
component: () => import('@/views/CharacteristicsView.vue'),
|
|
},
|
|
],
|
|
})
|
|
|
|
export default router
|