diff --git a/package-lock.json b/package-lock.json index 752a338..53e110f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,8 +16,8 @@ "@askrjs/node": ">=0.0.8 <0.1.0", "@askrjs/schema": ">=0.0.5 <0.1.0", "@askrjs/server": ">=0.0.11 <0.1.0", - "@askrjs/themes": ">=0.0.22 <0.1.0", - "@askrjs/ui": ">=0.0.25 <0.1.0", + "@askrjs/themes": ">=0.0.23 <0.1.0", + "@askrjs/ui": ">=0.0.26 <0.1.0", "argon2": "^0.45.1", "better-sqlite3": "^13.0.3" }, @@ -25,7 +25,7 @@ "@askrjs/vite": ">=0.0.12 <0.1.0", "@playwright/test": "^1.62.1", "@types/better-sqlite3": "^9.6.0", - "@types/node": "^26.1.2", + "@types/node": "^26.2.0", "typescript": "^7.0.2", "vite-plus": "^0.2.8" }, @@ -129,28 +129,28 @@ } }, "node_modules/@askrjs/themes": { - "version": "0.0.22", - "resolved": "https://registry.npmjs.org/@askrjs/themes/-/themes-0.0.22.tgz", - "integrity": "sha512-3hpFT81HgrNVFkqL9/45l9C1sAUt2Qa5tlDLCqA1ScsOG1rUfTFT3P0D9oQOInPrOA0kuYlgAofEJfhGjRUv5g==", + "version": "0.0.23", + "resolved": "https://registry.npmjs.org/@askrjs/themes/-/themes-0.0.23.tgz", + "integrity": "sha512-kD6oBcnjgucVj8duIUB9zK4m6kepHXlvLPh01nDd2Jq925ofvy43Ja0lMr2uqRwzBsDWFjCLXxou5LFkdMMOcQ==", "license": "Apache-2.0", "engines": { "node": ">=24.0.0" }, "peerDependencies": { - "@askrjs/askr": ">=0.0.85 <0.1.0", - "@askrjs/ui": ">=0.0.24 <0.1.0" + "@askrjs/askr": ">=0.0.87 <0.1.0", + "@askrjs/ui": ">=0.0.25 <0.1.0" } }, "node_modules/@askrjs/ui": { - "version": "0.0.25", - "resolved": "https://registry.npmjs.org/@askrjs/ui/-/ui-0.0.25.tgz", - "integrity": "sha512-cpmBsA3omTCnoIYnOTP6cex7XyIz5gAkTsdLtsEfIxKwJwHd1H8LiQ7bplFvy1Qw1JSkFF6kYuORwcxsbudBjA==", + "version": "0.0.26", + "resolved": "https://registry.npmjs.org/@askrjs/ui/-/ui-0.0.26.tgz", + "integrity": "sha512-4OV6C7YSYrLQAt+07mRPl70jZWtzhWzA5YFcZR2vnQf2Wg0K8fl/AyHfJcoDkiGy/GiJ9K2u8nTOkbQKR3Dzaw==", "license": "Apache-2.0", "engines": { "node": ">=24.0.0" }, "peerDependencies": { - "@askrjs/askr": ">=0.0.85 <0.1.0" + "@askrjs/askr": ">=0.0.88 <0.1.0" } }, "node_modules/@askrjs/vite": { @@ -1512,9 +1512,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "26.1.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.2.tgz", - "integrity": "sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==", + "version": "26.2.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.2.0.tgz", + "integrity": "sha512-5IviulTZeRNp2vAJ514cc/HUlY5nZ9fCbq9DMyC52BrhFZACo3nI0R7qBxhQmo/d27NFe96ur/b7Wwxklda+kg==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 756b02e..cddefcd 100644 --- a/package.json +++ b/package.json @@ -28,8 +28,8 @@ "@askrjs/node": ">=0.0.8 <0.1.0", "@askrjs/schema": ">=0.0.5 <0.1.0", "@askrjs/server": ">=0.0.11 <0.1.0", - "@askrjs/themes": ">=0.0.22 <0.1.0", - "@askrjs/ui": ">=0.0.25 <0.1.0", + "@askrjs/themes": ">=0.0.23 <0.1.0", + "@askrjs/ui": ">=0.0.26 <0.1.0", "argon2": "^0.45.1", "better-sqlite3": "^13.0.3" }, @@ -37,7 +37,7 @@ "@askrjs/vite": ">=0.0.12 <0.1.0", "@playwright/test": "^1.62.1", "@types/better-sqlite3": "^9.6.0", - "@types/node": "^26.1.2", + "@types/node": "^26.2.0", "typescript": "^7.0.2", "vite-plus": "^0.2.8" }, diff --git a/src/pages/_routes.ts b/src/pages/_routes.ts index 1e6ed6b..ad2b4ab 100644 --- a/src/pages/_routes.ts +++ b/src/pages/_routes.ts @@ -1,23 +1,24 @@ -import { createRouteRegistry, group, route, type RouteOptions } from "@askrjs/askr/router"; +import { createRouteRegistry, group, lazy, route, type RouteOptions } from "@askrjs/askr/router"; import { safeRedirect } from "@askrjs/server/auth"; import { requireAnonymous, requireUser } from "@askrjs/auth"; import { resolveAuth } from "../auth"; import { PageLayout } from "./_layout"; -import { AboutPage } from "./about"; -import { ContactPage } from "./contact"; -import { DocsPage } from "./docs"; -import { HomePage } from "./home"; -import { LoginPage } from "./login"; -import { LogsPage } from "./logs"; -import { LogoutPage } from "./logout"; -import { MetricsPage } from "./metrics"; -import { ProfilePage } from "./profile"; -import { SettingsPage } from "./settings"; -import { SignupPage } from "./signup"; import { operatorSettingsQuery, settingsActions } from "../features/settings/settings-model"; import { liveLogQuery } from "../features/logs/live-logs-resource"; import { operationsMetricsQuery } from "../features/metrics/metrics-model"; +const AboutPage = lazy(() => import("./about").then((module) => module.AboutPage)); +const ContactPage = lazy(() => import("./contact").then((module) => module.ContactPage)); +const DocsPage = lazy(() => import("./docs").then((module) => module.DocsPage)); +const HomePage = lazy(() => import("./home").then((module) => module.HomePage)); +const LoginPage = lazy(() => import("./login").then((module) => module.LoginPage)); +const LogsPage = lazy(() => import("./logs").then((module) => module.LogsPage)); +const LogoutPage = lazy(() => import("./logout").then((module) => module.LogoutPage)); +const MetricsPage = lazy(() => import("./metrics").then((module) => module.MetricsPage)); +const ProfilePage = lazy(() => import("./profile").then((module) => module.ProfilePage)); +const SettingsPage = lazy(() => import("./settings").then((module) => module.SettingsPage)); +const SignupPage = lazy(() => import("./signup").then((module) => module.SignupPage)); + const settingsRoute = { auth: requireUser(), actions: settingsActions,