From 51df233429021a999836dad9bc0df8b10250c7e1 Mon Sep 17 00:00:00 2001 From: Innei Date: Fri, 5 Dec 2025 15:59:07 +0800 Subject: [PATCH] chore: update package dependencies and improve documentation - Updated `vite` to the beta version across multiple applications for enhanced features and performance. - Removed deprecated dependencies such as `@clack/prompts`, `consola`, and `opentype.js` from `devDependencies`. - Added new storage provider documentation in `routes.json` and updated last modified dates for existing entries. - Refactored route imports in `routes.ts` to streamline the structure and improve readability. - Enhanced the Table of Contents (TOC) data structure for better organization and accessibility. Signed-off-by: Innei --- apps/docs/package.json | 4 +- apps/docs/src/routes.json | 60 ++--- apps/docs/src/routes.ts | 104 ++++----- apps/docs/src/toc-data.ts | 106 +++++++++ be/apps/core/package.json | 3 +- be/apps/dashboard/package.json | 2 +- .../components/DataManagementPanel.tsx | 10 +- .../library/PhotoLibraryActionBar.tsx | 10 +- .../components/library/PhotoLibraryGrid.tsx | 70 +++--- .../components/ManagedStorageEntryCard.tsx | 4 +- .../components/ProviderCard.tsx | 44 ++-- .../components/ProviderEditModal.tsx | 16 +- .../components/StorageProvidersManager.tsx | 4 +- be/apps/dashboard/src/pages/(main)/plan.tsx | 6 +- be/apps/oauth-gateway/package.json | 2 +- package.json | 7 +- packages/builder/package.json | 3 +- packages/webgl-viewer/package.json | 4 +- pnpm-lock.yaml | 217 +++++++++--------- 19 files changed, 409 insertions(+), 267 deletions(-) diff --git a/apps/docs/package.json b/apps/docs/package.json index ae039287..f885c05c 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -65,6 +65,6 @@ "tsx": "^4.21.0", "typescript": "~5.9.3", "typescript-eslint": "^8.48.1", - "vite": "^7.2.6" + "vite": "8.0.0-beta.0" } -} +} \ No newline at end of file diff --git a/apps/docs/src/routes.json b/apps/docs/src/routes.json index 63ecc22d..cbb3c090 100644 --- a/apps/docs/src/routes.json +++ b/apps/docs/src/routes.json @@ -28,7 +28,7 @@ "title": "Quick Start", "description": "Get your gallery running in about 5 minutes.", "createdAt": "2025-11-14T22:20:00+08:00", - "lastModified": "2025-11-23T19:40:52+08:00", + "lastModified": "2025-12-05T15:28:22+08:00", "order": "2" } }, @@ -94,7 +94,7 @@ "title": "Storage Providers", "description": "Choose a storage provider for your photo collection.", "createdAt": "2025-11-14T22:40:00+08:00", - "lastModified": "2025-11-24T10:15:00+08:00", + "lastModified": "2025-12-05T15:28:22+08:00", "order": "30" } }, @@ -105,32 +105,10 @@ "title": "S3 / S3-Compatible", "description": "Configure S3 or S3-compatible storage for your photo collection.", "createdAt": "2025-11-14T22:10:00+08:00", - "lastModified": "2025-11-23T19:40:52+08:00", + "lastModified": "2025-12-05T15:28:22+08:00", "order": "32" } }, - { - "path": "/storage/providers/oss", - "title": "Aliyun OSS", - "meta": { - "title": "Aliyun OSS", - "description": "Configure Aliyun Object Storage Service (OSS) for China-mainland friendly deployments.", - "createdAt": "2025-11-24T10:05:00+08:00", - "lastModified": "2025-11-24T10:05:00+08:00", - "order": "37" - } - }, - { - "path": "/storage/providers/cos", - "title": "Tencent COS", - "meta": { - "title": "Tencent COS", - "description": "Configure Tencent Cloud Object Storage (COS) for deployments within the Tencent ecosystem.", - "createdAt": "2025-11-24T10:06:00+08:00", - "lastModified": "2025-11-24T10:06:00+08:00", - "order": "38" - } - }, { "path": "/storage/providers/b2", "title": "B2 (Backblaze B2)", @@ -138,7 +116,7 @@ "title": "B2 (Backblaze B2)", "description": "Configure Backblaze B2 storage for cost-effective cloud storage.", "createdAt": "2025-11-14T22:10:00+08:00", - "lastModified": "2025-11-23T19:40:52+08:00", + "lastModified": "2025-12-05T15:28:22+08:00", "order": "33" } }, @@ -149,7 +127,7 @@ "title": "GitHub Storage", "description": "Use a GitHub repository as photo storage for simple deployments.", "createdAt": "2025-11-14T22:10:00+08:00", - "lastModified": "2025-11-23T19:40:52+08:00", + "lastModified": "2025-12-05T15:28:22+08:00", "order": "34" } }, @@ -160,7 +138,7 @@ "title": "Local Storage", "description": "Use local file system paths for development and self-hosting.", "createdAt": "2025-11-14T22:10:00+08:00", - "lastModified": "2025-11-23T19:40:52+08:00", + "lastModified": "2025-12-05T15:28:22+08:00", "order": "35" } }, @@ -171,7 +149,7 @@ "title": "SaaS Architecture", "description": "Tenant model, domain routing, OAuth flow, and data injection paths.", "createdAt": "2025-11-23T20:20:00+08:00", - "lastModified": "2025-11-23T20:44:02+08:00", + "lastModified": "2025-11-30T14:03:05+08:00", "order": "36" } }, @@ -182,7 +160,7 @@ "title": "Eagle Storage", "description": "Publish directly from an Eagle 4 library with filtering support.", "createdAt": "2025-11-14T22:10:00+08:00", - "lastModified": "2025-11-23T19:40:52+08:00", + "lastModified": "2025-12-05T15:28:22+08:00", "order": "36" } }, @@ -197,6 +175,28 @@ "order": "37" } }, + { + "path": "/storage/providers/oss", + "title": "Aliyun OSS", + "meta": { + "title": "Aliyun OSS", + "description": "Configure Aliyun Object Storage Service (OSS) for China-mainland friendly deployments.", + "createdAt": "2025-11-24T10:05:00+08:00", + "lastModified": "2025-11-24T22:26:48+08:00", + "order": "37" + } + }, + { + "path": "/storage/providers/cos", + "title": "Tencent COS", + "meta": { + "title": "Tencent COS", + "description": "Configure Tencent Cloud Object Storage (COS) for deployments within the Tencent ecosystem.", + "createdAt": "2025-11-24T10:06:00+08:00", + "lastModified": "2025-11-24T22:26:48+08:00", + "order": "38" + } + }, { "path": "/builder", "title": "Builder", diff --git a/apps/docs/src/routes.ts b/apps/docs/src/routes.ts index 077885fc..08fd317c 100644 --- a/apps/docs/src/routes.ts +++ b/apps/docs/src/routes.ts @@ -6,28 +6,28 @@ import Route3 from '../contents/architecture.mdx' import Route7 from '../contents/builder/built-ins.mdx' import Route1 from '../contents/builder/cli.mdx' import Route4 from '../contents/builder/config.mdx' -import Route16 from '../contents/builder/index.mdx' +import Route18 from '../contents/builder/index.mdx' import Route5 from '../contents/builder/pipeline.mdx' import Route6 from '../contents/builder/plugins.mdx' -import Route20 from '../contents/deployment/cloudflare-pages.mdx' -import Route18 from '../contents/deployment/docker.mdx' -import Route19 from '../contents/deployment/github-pages.mdx' -import Route17 from '../contents/deployment/index.mdx' -import Route21 from '../contents/deployment/vercel.mdx' -import Route24 from '../contents/docs-site.mdx' +import Route22 from '../contents/deployment/cloudflare-pages.mdx' +import Route20 from '../contents/deployment/docker.mdx' +import Route21 from '../contents/deployment/github-pages.mdx' +import Route19 from '../contents/deployment/index.mdx' +import Route23 from '../contents/deployment/vercel.mdx' +import Route26 from '../contents/docs-site.mdx' import Route2 from '../contents/getting-started/quick-start.mdx' import Route0 from '../contents/index.mdx' import Route13 from '../contents/saas/architecture.mdx' -import Route23 from '../contents/saas/cms.mdx' +import Route25 from '../contents/saas/cms.mdx' import Route15 from '../contents/saas/deployment.mdx' -import Route22 from '../contents/saas/index.mdx' +import Route24 from '../contents/saas/index.mdx' import Route10 from '../contents/storage/providers/b2.mdx' -import Route26 from '../contents/storage/providers/cos.mdx' +import Route17 from '../contents/storage/providers/cos.mdx' import Route14 from '../contents/storage/providers/eagle.mdx' import Route11 from '../contents/storage/providers/github.mdx' import Route8 from '../contents/storage/providers/index.mdx' import Route12 from '../contents/storage/providers/local.mdx' -import Route25 from '../contents/storage/providers/oss.mdx' +import Route16 from '../contents/storage/providers/oss.mdx' import Route9 from '../contents/storage/providers/s3.mdx' export interface RouteConfig { @@ -70,7 +70,7 @@ export const routes: RouteConfig[] = [ title: 'Quick Start', description: 'Get your gallery running in about 5 minutes.', createdAt: '2025-11-14T22:20:00+08:00', - lastModified: '2025-11-23T19:40:52+08:00', + lastModified: '2025-12-05T15:28:22+08:00', order: '2', }, }, @@ -142,7 +142,7 @@ export const routes: RouteConfig[] = [ title: 'Storage Providers', description: 'Choose a storage provider for your photo collection.', createdAt: '2025-11-14T22:40:00+08:00', - lastModified: '2025-11-24T10:15:00+08:00', + lastModified: '2025-12-05T15:28:22+08:00', order: '30', }, }, @@ -154,34 +154,10 @@ export const routes: RouteConfig[] = [ title: 'S3 / S3-Compatible', description: 'Configure S3 or S3-compatible storage for your photo collection.', createdAt: '2025-11-14T22:10:00+08:00', - lastModified: '2025-11-23T19:40:52+08:00', + lastModified: '2025-12-05T15:28:22+08:00', order: '32', }, }, - { - path: '/storage/providers/oss', - component: Route25, - title: 'Aliyun OSS', - meta: { - title: 'Aliyun OSS', - description: 'Configure Aliyun Object Storage Service (OSS) for China-mainland friendly deployments.', - createdAt: '2025-11-24T10:05:00+08:00', - lastModified: '2025-11-24T10:05:00+08:00', - order: '37', - }, - }, - { - path: '/storage/providers/cos', - component: Route26, - title: 'Tencent COS', - meta: { - title: 'Tencent COS', - description: 'Configure Tencent Cloud Object Storage (COS) for deployments within the Tencent ecosystem.', - createdAt: '2025-11-24T10:06:00+08:00', - lastModified: '2025-11-24T10:06:00+08:00', - order: '38', - }, - }, { path: '/storage/providers/b2', component: Route10, @@ -190,7 +166,7 @@ export const routes: RouteConfig[] = [ title: 'B2 (Backblaze B2)', description: 'Configure Backblaze B2 storage for cost-effective cloud storage.', createdAt: '2025-11-14T22:10:00+08:00', - lastModified: '2025-11-23T19:40:52+08:00', + lastModified: '2025-12-05T15:28:22+08:00', order: '33', }, }, @@ -202,7 +178,7 @@ export const routes: RouteConfig[] = [ title: 'GitHub Storage', description: 'Use a GitHub repository as photo storage for simple deployments.', createdAt: '2025-11-14T22:10:00+08:00', - lastModified: '2025-11-23T19:40:52+08:00', + lastModified: '2025-12-05T15:28:22+08:00', order: '34', }, }, @@ -214,7 +190,7 @@ export const routes: RouteConfig[] = [ title: 'Local Storage', description: 'Use local file system paths for development and self-hosting.', createdAt: '2025-11-14T22:10:00+08:00', - lastModified: '2025-11-23T19:40:52+08:00', + lastModified: '2025-12-05T15:28:22+08:00', order: '35', }, }, @@ -226,7 +202,7 @@ export const routes: RouteConfig[] = [ title: 'SaaS Architecture', description: 'Tenant model, domain routing, OAuth flow, and data injection paths.', createdAt: '2025-11-23T20:20:00+08:00', - lastModified: '2025-11-23T20:44:02+08:00', + lastModified: '2025-11-30T14:03:05+08:00', order: '36', }, }, @@ -238,7 +214,7 @@ export const routes: RouteConfig[] = [ title: 'Eagle Storage', description: 'Publish directly from an Eagle 4 library with filtering support.', createdAt: '2025-11-14T22:10:00+08:00', - lastModified: '2025-11-23T19:40:52+08:00', + lastModified: '2025-12-05T15:28:22+08:00', order: '36', }, }, @@ -255,8 +231,32 @@ export const routes: RouteConfig[] = [ }, }, { - path: '/builder', + path: '/storage/providers/oss', component: Route16, + title: 'Aliyun OSS', + meta: { + title: 'Aliyun OSS', + description: 'Configure Aliyun Object Storage Service (OSS) for China-mainland friendly deployments.', + createdAt: '2025-11-24T10:05:00+08:00', + lastModified: '2025-11-24T22:26:48+08:00', + order: '37', + }, + }, + { + path: '/storage/providers/cos', + component: Route17, + title: 'Tencent COS', + meta: { + title: 'Tencent COS', + description: 'Configure Tencent Cloud Object Storage (COS) for deployments within the Tencent ecosystem.', + createdAt: '2025-11-24T10:06:00+08:00', + lastModified: '2025-11-24T22:26:48+08:00', + order: '38', + }, + }, + { + path: '/builder', + component: Route18, title: 'Builder', meta: { title: 'Builder', @@ -268,7 +268,7 @@ export const routes: RouteConfig[] = [ }, { path: '/deployment', - component: Route17, + component: Route19, title: 'Deployment', meta: { title: 'Deployment', @@ -280,7 +280,7 @@ export const routes: RouteConfig[] = [ }, { path: '/deployment/docker', - component: Route18, + component: Route20, title: 'Docker', meta: { title: 'Docker', @@ -292,7 +292,7 @@ export const routes: RouteConfig[] = [ }, { path: '/deployment/github-pages', - component: Route19, + component: Route21, title: 'GitHub Pages', meta: { title: 'GitHub Pages', @@ -304,7 +304,7 @@ export const routes: RouteConfig[] = [ }, { path: '/deployment/cloudflare-pages', - component: Route20, + component: Route22, title: 'Cloudflare Pages', meta: { title: 'Cloudflare Pages', @@ -316,7 +316,7 @@ export const routes: RouteConfig[] = [ }, { path: '/deployment/vercel', - component: Route21, + component: Route23, title: 'Vercel', meta: { title: 'Vercel', @@ -328,7 +328,7 @@ export const routes: RouteConfig[] = [ }, { path: '/saas', - component: Route22, + component: Route24, title: 'SaaS Mode', meta: { title: 'SaaS Mode', @@ -340,7 +340,7 @@ export const routes: RouteConfig[] = [ }, { path: '/saas/cms', - component: Route23, + component: Route25, title: 'CMS & Live Updates', meta: { title: 'CMS & Live Updates', @@ -352,7 +352,7 @@ export const routes: RouteConfig[] = [ }, { path: '/docs-site', - component: Route24, + component: Route26, title: 'Docs Site', meta: { title: 'Docs Site', diff --git a/apps/docs/src/toc-data.ts b/apps/docs/src/toc-data.ts index f04ec30c..0cc96fe2 100644 --- a/apps/docs/src/toc-data.ts +++ b/apps/docs/src/toc-data.ts @@ -1437,6 +1437,18 @@ export const tocData: FileToc[] = [ text: '[S3 / S3-Compatible](/storage/providers/s3)', children: [], }, + { + id: 'heading-aliyun-ossstorageprovidersoss', + level: 3, + text: '[Aliyun OSS](/storage/providers/oss)', + children: [], + }, + { + id: 'heading-tencent-cosstorageproviderscos', + level: 3, + text: '[Tencent COS](/storage/providers/cos)', + children: [], + }, { id: 'heading-b2-backblaze-b2storageprovidersb2', level: 3, @@ -1535,6 +1547,50 @@ export const tocData: FileToc[] = [ }, ], }, + { + file: 'storage/providers/cos.mdx', + path: '/storage/providers/cos', + title: 'Tencent COS', + toc: [ + { + id: 'heading-tencent-cos-storage', + level: 1, + text: 'Tencent COS Storage', + children: [ + { + id: 'heading-configuration', + level: 2, + text: 'Configuration', + children: [], + }, + { + id: 'heading-environment-variables', + level: 2, + text: 'Environment Variables', + children: [], + }, + { + id: 'heading-cos-specific-considerations', + level: 2, + text: 'COS-specific Considerations', + children: [], + }, + { + id: 'heading-best-practices', + level: 2, + text: 'Best Practices', + children: [], + }, + { + id: 'heading-troubleshooting', + level: 2, + text: 'Troubleshooting', + children: [], + }, + ], + }, + ], + }, { file: 'storage/providers/eagle.mdx', path: '/storage/providers/eagle', @@ -1675,6 +1731,12 @@ export const tocData: FileToc[] = [ text: 'Raw URL CDN', children: [], }, + { + id: 'heading-custom-cdn-domain', + level: 2, + text: 'Custom CDN Domain', + children: [], + }, { id: 'heading-private-repositories', level: 2, @@ -1772,6 +1834,50 @@ export const tocData: FileToc[] = [ }, ], }, + { + file: 'storage/providers/oss.mdx', + path: '/storage/providers/oss', + title: 'Aliyun OSS', + toc: [ + { + id: 'heading-aliyun-oss-storage', + level: 1, + text: 'Aliyun OSS Storage', + children: [ + { + id: 'heading-configuration', + level: 2, + text: 'Configuration', + children: [], + }, + { + id: 'heading-environment-variables', + level: 2, + text: 'Environment Variables', + children: [], + }, + { + id: 'heading-notes-on-endpoints', + level: 2, + text: 'Notes on Endpoints', + children: [], + }, + { + id: 'heading-best-practices', + level: 2, + text: 'Best Practices', + children: [], + }, + { + id: 'heading-troubleshooting', + level: 2, + text: 'Troubleshooting', + children: [], + }, + ], + }, + ], + }, { file: 'storage/providers/s3.mdx', path: '/storage/providers/s3', diff --git a/be/apps/core/package.json b/be/apps/core/package.json index 2873f219..a1c44d28 100644 --- a/be/apps/core/package.json +++ b/be/apps/core/package.json @@ -34,6 +34,7 @@ "@types/busboy": "1.5.4", "better-auth": "1.4.5", "busboy": "1.6.0", + "consola": "3.4.2", "drizzle-orm": "^0.45.0", "ejs": "3.1.10", "hono": "4.10.7", @@ -54,7 +55,7 @@ "@types/pg": "8.15.6", "nodemon": "3.1.11", "unplugin-swc": "1.5.9", - "vite": "7.2.6", + "vite": "8.0.0-beta.0", "vite-bundle-analyzer": "1.2.3", "vite-node": "5.2.0", "vite-tsconfig-paths": "5.1.4", diff --git a/be/apps/dashboard/package.json b/be/apps/dashboard/package.json index f45880a8..f56f7699 100644 --- a/be/apps/dashboard/package.json +++ b/be/apps/dashboard/package.json @@ -93,7 +93,7 @@ "tailwindcss-safe-area": "catalog:", "tw-animate-css": "1.4.0", "typescript": "5.9.3", - "vite": "7.2.6", + "vite": "8.0.0-beta.0", "vite-plugin-checker": "0.11.0", "vite-plugin-route-builder": "0.4.1", "vite-tsconfig-paths": "5.1.4" diff --git a/be/apps/dashboard/src/modules/data-management/components/DataManagementPanel.tsx b/be/apps/dashboard/src/modules/data-management/components/DataManagementPanel.tsx index f4142945..80127bfb 100644 --- a/be/apps/dashboard/src/modules/data-management/components/DataManagementPanel.tsx +++ b/be/apps/dashboard/src/modules/data-management/components/DataManagementPanel.tsx @@ -1,6 +1,6 @@ import { Button, Prompt } from '@afilmory/ui' import { clsxm } from '@afilmory/utils' -import { DynamicIcon } from 'lucide-react/dynamic' +import { DatabaseIcon, RadiationIcon, TriangleAlertIcon } from 'lucide-react' import { useTranslation } from 'react-i18next' import { toast } from 'sonner' @@ -220,8 +220,8 @@ export function DataManagementPanel() {
- - + + {t(dataManagementKeys.summary.badge)}
@@ -260,7 +260,7 @@ export function DataManagementPanel() {
- + {t(dataManagementKeys.truncate.badge)}
@@ -287,7 +287,7 @@ export function DataManagementPanel() {
- + {t(dataManagementKeys.delete.badge)}
diff --git a/be/apps/dashboard/src/modules/photos/components/library/PhotoLibraryActionBar.tsx b/be/apps/dashboard/src/modules/photos/components/library/PhotoLibraryActionBar.tsx index ab926c50..5cd7b625 100644 --- a/be/apps/dashboard/src/modules/photos/components/library/PhotoLibraryActionBar.tsx +++ b/be/apps/dashboard/src/modules/photos/components/library/PhotoLibraryActionBar.tsx @@ -1,6 +1,6 @@ import { Button, Modal } from '@afilmory/ui' import { clsxm } from '@afilmory/utils' -import { DynamicIcon } from 'lucide-react/dynamic' +import { CheckSquare, Square, Tags, Trash2, X } from 'lucide-react' import type { ChangeEventHandler } from 'react' import { useMemo, useRef } from 'react' import { useTranslation } from 'react-i18next' @@ -152,7 +152,7 @@ export function PhotoLibraryActionBar() { onClick={handleEditSelectedTags} className="flex items-center gap-1 text-text-secondary hover:text-text" > - + {t(photoLibraryActionKeys.editTags)}
@@ -179,7 +179,7 @@ export function PhotoLibraryActionBar() { onClick={selectAll} className="flex items-center gap-1 text-text-secondary hover:text-text" > - + {canSelectAll ? : } {selectAllLabel}
diff --git a/be/apps/dashboard/src/modules/photos/components/library/PhotoLibraryGrid.tsx b/be/apps/dashboard/src/modules/photos/components/library/PhotoLibraryGrid.tsx index ad669d16..4a299802 100644 --- a/be/apps/dashboard/src/modules/photos/components/library/PhotoLibraryGrid.tsx +++ b/be/apps/dashboard/src/modules/photos/components/library/PhotoLibraryGrid.tsx @@ -10,7 +10,22 @@ import { } from '@afilmory/ui' import { clsxm } from '@afilmory/utils' import { useAtomValue } from 'jotai' -import { DynamicIcon } from 'lucide-react/dynamic' +import { + ArrowDown, + ArrowUp, + Camera, + Check, + ChevronDown, + Clock, + ExternalLink, + HardDrive, + Info, + MoreHorizontal, + Square, + Tags, + Trash2, + Upload, +} from 'lucide-react' import type { ReactNode } from 'react' import { useCallback, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -31,15 +46,15 @@ import type { DeleteAssetOptions } from './types' type PhotoLibrarySortBy = 'uploadedAt' | 'capturedAt' type PhotoLibrarySortOrder = 'desc' | 'asc' -const SORT_BY_OPTIONS: { value: PhotoLibrarySortBy; labelKey: I18nKeys; icon: string }[] = [ - { value: 'uploadedAt', labelKey: 'photos.library.sort.by-uploaded', icon: 'upload' }, - { value: 'capturedAt', labelKey: 'photos.library.sort.by-captured', icon: 'camera' }, -] +const SORT_BY_OPTIONS = [ + { value: 'uploadedAt', labelKey: 'photos.library.sort.by-uploaded', Icon: Upload }, + { value: 'capturedAt', labelKey: 'photos.library.sort.by-captured', Icon: Camera }, +] as const -const SORT_ORDER_OPTIONS: { value: PhotoLibrarySortOrder; labelKey: I18nKeys; icon: string }[] = [ - { value: 'desc', labelKey: 'photos.library.sort.order-desc', icon: 'arrow-down' }, - { value: 'asc', labelKey: 'photos.library.sort.order-asc', icon: 'arrow-up' }, -] +const SORT_ORDER_OPTIONS = [ + { value: 'desc', labelKey: 'photos.library.sort.order-desc', Icon: ArrowDown }, + { value: 'asc', labelKey: 'photos.library.sort.order-asc', Icon: ArrowUp }, +] as const const photoLibraryGridKeys = { card: { @@ -185,7 +200,7 @@ function PhotoGridItem({ isSelected ? 'bg-accent text-white' : 'hover:bg-white/10', )} > - + {isSelected ? : } {isSelected ? t(photoLibraryGridKeys.card.selected) : t(photoLibraryGridKeys.card.select)}
@@ -193,15 +208,15 @@ function PhotoGridItem({
- + {deviceLabel}
- + {updatedAtLabel}
- + {fileSizeLabel}
@@ -213,7 +228,7 @@ function PhotoGridItem({ className="bg-black/40 text-white hover:bg-black/60 h-7 px-2.5" onClick={() => onOpenAsset(asset)} > - + @@ -223,26 +238,19 @@ function PhotoGridItem({ size="xs" className="bg-black/40 text-white hover:bg-black/60 h-7 px-2.5" > - + - } - onSelect={() => onEditTags(asset)} - > + } onSelect={() => onEditTags(asset)}> {t('photos.library.card.edit-tags')} - } - disabled={!manifest} - onSelect={handleViewExif} - > + } disabled={!manifest} onSelect={handleViewExif}> {t('photos.library.card.view-exif')}
} + icon={} disabled={isDeleting} onSelect={handleDelete} className="text-red focus:text-red focus:bg-red/10" @@ -354,9 +362,9 @@ export function PhotoLibraryGrid() { size="sm" className="hover:bg-background-secondary/70 flex items-center gap-1.5 rounded-full border px-3 h-8 text-text" > - + {t(currentSortBy.labelKey)} - + @@ -364,7 +372,7 @@ export function PhotoLibraryGrid() { } + icon={} onSelect={() => setSortBy(option.value)} > {t(option.labelKey)} @@ -381,9 +389,9 @@ export function PhotoLibraryGrid() { size="sm" className="hover:bg-background-secondary/70 flex items-center gap-1.5 rounded-full border px-3 h-8 text-text" > - + {t(currentSortOrder.labelKey)} - + @@ -391,7 +399,7 @@ export function PhotoLibraryGrid() { } + icon={} onSelect={() => setSortOrder(option.value)} > {t(option.labelKey)} diff --git a/be/apps/dashboard/src/modules/storage-providers/components/ManagedStorageEntryCard.tsx b/be/apps/dashboard/src/modules/storage-providers/components/ManagedStorageEntryCard.tsx index 72623435..42679dfe 100644 --- a/be/apps/dashboard/src/modules/storage-providers/components/ManagedStorageEntryCard.tsx +++ b/be/apps/dashboard/src/modules/storage-providers/components/ManagedStorageEntryCard.tsx @@ -1,5 +1,5 @@ import { Button, Modal } from '@afilmory/ui' -import { DynamicIcon } from 'lucide-react/dynamic' +import { HardDrive } from 'lucide-react' import { m } from 'motion/react' import { useTranslation } from 'react-i18next' @@ -61,7 +61,7 @@ export function ManagedStorageEntryCard({
- +
diff --git a/be/apps/dashboard/src/modules/storage-providers/components/ProviderCard.tsx b/be/apps/dashboard/src/modules/storage-providers/components/ProviderCard.tsx index 9dc1eabe..bc9302ee 100644 --- a/be/apps/dashboard/src/modules/storage-providers/components/ProviderCard.tsx +++ b/be/apps/dashboard/src/modules/storage-providers/components/ProviderCard.tsx @@ -1,6 +1,20 @@ import { Button } from '@afilmory/ui' import { clsxm } from '@afilmory/utils' -import { DynamicIcon } from 'lucide-react/dynamic' +import type {LucideIcon} from 'lucide-react'; +import { + Check, + CheckCircle, + Cloud, + CloudDrizzle, + CloudSnow, + Database, + Folder, + Github, + Image, + Pencil, + Server, + XCircle +} from 'lucide-react' import type { FC } from 'react' import { useTranslation } from 'react-i18next' @@ -10,48 +24,48 @@ import type { StorageProvider } from '../types' const providerTypeConfig: Record< string, { - icon: string + Icon: LucideIcon color: string bgColor: string } > = { s3: { - icon: 'database', + Icon: Database, color: 'text-orange-500', bgColor: 'bg-orange-500/10', }, oss: { - icon: 'cloud-drizzle', + Icon: CloudDrizzle, color: 'text-emerald-500', bgColor: 'bg-emerald-500/10', }, cos: { - icon: 'cloud-snow', + Icon: CloudSnow, color: 'text-cyan-500', bgColor: 'bg-cyan-500/10', }, b2: { - icon: 'cloud', + Icon: Cloud, color: 'text-sky-500', bgColor: 'bg-sky-500/10', }, github: { - icon: 'github', + Icon: Github, color: 'text-purple-500', bgColor: 'bg-purple-500/10', }, local: { - icon: 'folder', + Icon: Folder, color: 'text-blue-500', bgColor: 'bg-blue-500/10', }, minio: { - icon: 'server', + Icon: Server, color: 'text-red-500', bgColor: 'bg-red-500/10', }, eagle: { - icon: 'image', + Icon: Image, color: 'text-amber-500', bgColor: 'bg-amber-500/10', }, @@ -110,7 +124,7 @@ export const ProviderCard: FC = ({ provider, isActive, onEdit {isActive && (
- + {t(storageProvidersI18nKeys.card.active)}
@@ -119,7 +133,7 @@ export const ProviderCard: FC = ({ provider, isActive, onEdit {/* Provider Icon */}
- +
@@ -142,17 +156,17 @@ export const ProviderCard: FC = ({ provider, isActive, onEdit className="text-text-secondary hover:text-text" onClick={onToggleActive} > - + {t(storageProvidersI18nKeys.card.makeInactive)} ) : ( )}
diff --git a/be/apps/dashboard/src/modules/storage-providers/components/ProviderEditModal.tsx b/be/apps/dashboard/src/modules/storage-providers/components/ProviderEditModal.tsx index 9092a7d5..3dab7cd2 100644 --- a/be/apps/dashboard/src/modules/storage-providers/components/ProviderEditModal.tsx +++ b/be/apps/dashboard/src/modules/storage-providers/components/ProviderEditModal.tsx @@ -14,7 +14,7 @@ import { Textarea, } from '@afilmory/ui' import { clsxm, Spring } from '@afilmory/utils' -import { DynamicIcon } from 'lucide-react/dynamic' +import { Edit, Plus, PlusCircle, Save } from 'lucide-react' import { m } from 'motion/react' import { nanoid } from 'nanoid' import { useEffect, useMemo, useState } from 'react' @@ -106,7 +106,7 @@ export function ProviderEditModal({ isNewProvider ? 'bg-accent/10 text-accent' : 'bg-fill text-text', )} > - + {isNewProvider ? : }

@@ -248,7 +248,7 @@ export function ProviderEditModal({ {t(storageProvidersI18nKeys.actions.cancel)}

@@ -256,7 +256,7 @@ export function ProviderEditModal({ // Edit mode: Delete + cancel + set active + save
@@ -273,3 +273,11 @@ ProviderEditModal.contentProps = { maxHeight: '90vh', }, } + +// Configure modal content +ProviderEditModal.contentClassName = 'max-w-2xl w-[95vw] max-h-[90vh] p-0' +ProviderEditModal.contentProps = { + style: { + maxHeight: '90vh', + }, +} diff --git a/be/apps/dashboard/src/modules/storage-providers/components/StorageProvidersManager.tsx b/be/apps/dashboard/src/modules/storage-providers/components/StorageProvidersManager.tsx index d5a2f4d1..23af85a8 100644 --- a/be/apps/dashboard/src/modules/storage-providers/components/StorageProvidersManager.tsx +++ b/be/apps/dashboard/src/modules/storage-providers/components/StorageProvidersManager.tsx @@ -1,6 +1,6 @@ import { Button, Modal, Prompt, Switch } from '@afilmory/ui' import { Spring } from '@afilmory/utils' -import { DynamicIcon } from 'lucide-react/dynamic' +import { ShieldCheck } from 'lucide-react' import { m } from 'motion/react' import { startTransition, useEffect, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -356,7 +356,7 @@ export function StorageProvidersManager() {
- +
diff --git a/be/apps/dashboard/src/pages/(main)/plan.tsx b/be/apps/dashboard/src/pages/(main)/plan.tsx index 725788ed..7eadb95d 100644 --- a/be/apps/dashboard/src/pages/(main)/plan.tsx +++ b/be/apps/dashboard/src/pages/(main)/plan.tsx @@ -282,11 +282,7 @@ function PlanCard({ disabled={!canCheckout || checkoutLoading} onClick={handleCheckout} > - {checkoutLoading - ? t(planI18nKeys.checkoutLoading) - : canCheckout - ? t(planI18nKeys.checkoutUpgrade) - : t(planI18nKeys.checkoutComingSoon)} + {checkoutLoading ? t(planI18nKeys.checkoutLoading) : t(planI18nKeys.checkoutUpgrade)} )} diff --git a/be/apps/oauth-gateway/package.json b/be/apps/oauth-gateway/package.json index d1a9fb01..f086e18f 100644 --- a/be/apps/oauth-gateway/package.json +++ b/be/apps/oauth-gateway/package.json @@ -19,7 +19,7 @@ "@types/node": "^24.10.1", "nodemon": "3.1.11", "typescript": "catalog:", - "vite": "7.2.6", + "vite": "8.0.0-beta.0", "vite-node": "5.2.0" } } diff --git a/package.json b/package.json index 0cbf7691..2c425233 100644 --- a/package.json +++ b/package.json @@ -40,18 +40,15 @@ }, "devDependencies": { "@afilmory/builder": "workspace:*", - "@clack/prompts": "^0.11.0", "@innei/prettier": "1.0.0", "@types/node": "24.10.1", "ast-kit": "2.2.0", - "consola": "3.4.2", "dotenv-expand": "catalog:", "eslint": "9.39.1", "eslint-config-hyoban": "4.0.10", "fast-glob": "3.3.3", "lint-staged": "16.2.7", "nbump": "2.1.8", - "opentype.js": "1.3.4", "prettier": "3.7.4", "sharp": "0.34.5", "simple-git-hooks": "2.13.1", @@ -59,7 +56,7 @@ "tsx": "4.21.0", "typescript": "catalog:", "unplugin-ast": "0.15.4", - "vite": "7.2.6", + "vite": "8.0.0-beta.0", "vite-bundle-analyzer": "1.2.3", "vite-plugin-babel": "1.3.2", "vite-plugin-checker": "0.11.0", @@ -79,4 +76,4 @@ "pnpm update:lastmodified" ] } -} +} \ No newline at end of file diff --git a/packages/builder/package.json b/packages/builder/package.json index 47a93a77..15a257f1 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -15,6 +15,7 @@ "@vingle/bmp-js": "^0.2.5", "blurhash": "2.0.5", "c12": "^3.3.2", + "consola": "3.4.2", "dotenv-expand": "catalog:", "execa": "9.6.1", "exiftool-vendored": "33.5.0", @@ -42,4 +43,4 @@ } } } -} +} \ No newline at end of file diff --git a/packages/webgl-viewer/package.json b/packages/webgl-viewer/package.json index f18950a7..8174110f 100644 --- a/packages/webgl-viewer/package.json +++ b/packages/webgl-viewer/package.json @@ -23,7 +23,7 @@ "react": "19.2.1", "tsdown": "0.17.0", "unplugin-dts": "1.0.0-beta.6", - "vite": "7.2.6" + "vite": "8.0.0-beta.0" }, "publishConfig": { "access": "public", @@ -35,4 +35,4 @@ } } } -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ddf38af0..a9aa58b3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -75,9 +75,6 @@ importers: specifier: 'catalog:' version: 4.1.13 devDependencies: - '@clack/prompts': - specifier: ^0.11.0 - version: 0.11.0 '@innei/prettier': specifier: 1.0.0 version: 1.0.0 @@ -87,9 +84,6 @@ importers: ast-kit: specifier: 2.2.0 version: 2.2.0 - consola: - specifier: 3.4.2 - version: 3.4.2 dotenv-expand: specifier: 'catalog:' version: 12.0.3 @@ -108,9 +102,6 @@ importers: nbump: specifier: 2.1.8 version: 2.1.8(conventional-commits-filter@5.0.0)(magicast@0.3.5) - opentype.js: - specifier: 1.3.4 - version: 1.3.4 prettier: specifier: 3.7.4 version: 3.7.4 @@ -133,20 +124,20 @@ importers: specifier: 0.15.4 version: 0.15.4 vite: - specifier: 7.2.6 - version: 7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) + specifier: 8.0.0-beta.0 + version: 8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) vite-bundle-analyzer: specifier: 1.2.3 version: 1.2.3 vite-plugin-babel: specifier: 1.3.2 - version: 1.3.2(@babel/core@7.28.5)(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) + version: 1.3.2(@babel/core@7.28.5)(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) vite-plugin-checker: specifier: 0.11.0 - version: 0.11.0(eslint@9.39.1(jiti@2.6.1))(meow@13.2.0)(optionator@0.9.4)(typescript@5.9.3)(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) + version: 0.11.0(eslint@9.39.1(jiti@2.6.1))(meow@13.2.0)(optionator@0.9.4)(typescript@5.9.3)(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) + version: 5.1.4(typescript@5.9.3)(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) apps/docs: dependencies: @@ -173,7 +164,7 @@ importers: version: 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@tailwindcss/vite': specifier: 4.1.17 - version: 4.1.17(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) + version: 4.1.17(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) '@types/mdast': specifier: ^4.0.4 version: 4.0.4 @@ -252,7 +243,7 @@ importers: version: 1.0.0 '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.1.1(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) + version: 5.1.1(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) code-inspector-plugin: specifier: 1.3.0 version: 1.3.0 @@ -299,8 +290,8 @@ importers: specifier: ^8.48.1 version: 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) vite: - specifier: ^7.2.6 - version: 7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) + specifier: 8.0.0-beta.0 + version: 8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) apps/landing: dependencies: @@ -819,7 +810,7 @@ importers: version: 0.5.19(tailwindcss@4.1.17) '@tailwindcss/vite': specifier: 4.1.17 - version: 4.1.17(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) + version: 4.1.17(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) '@types/node': specifier: 24.10.1 version: 24.10.1 @@ -831,7 +822,7 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.1.1(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) + version: 5.1.1(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) ast-kit: specifier: 2.2.0 version: 2.2.0 @@ -888,10 +879,10 @@ importers: version: 0.15.4 vite-plugin-html: specifier: 3.2.2 - version: 3.2.2(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) + version: 3.2.2(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) vite-plugin-pwa: specifier: 1.2.0 - version: 1.2.0(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0) + version: 1.2.0(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0) be: dependencies: @@ -974,6 +965,9 @@ importers: busboy: specifier: 1.6.0 version: 1.6.0 + consola: + specifier: 3.4.2 + version: 3.4.2 drizzle-orm: specifier: ^0.45.0 version: 0.45.0(@types/pg@8.15.6)(@vercel/postgres@0.10.0)(kysely@0.28.8)(pg@8.16.3)(postgres@3.4.7) @@ -1030,8 +1024,8 @@ importers: specifier: 1.5.9 version: 1.5.9(@swc/core@1.15.3(@swc/helpers@0.5.17))(rollup@4.53.3) vite: - specifier: 7.2.6 - version: 7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) + specifier: 8.0.0-beta.0 + version: 8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) vite-bundle-analyzer: specifier: 1.2.3 version: 1.2.3 @@ -1040,7 +1034,7 @@ importers: version: 5.2.0(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) + version: 5.1.4(typescript@5.9.3)(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) vitest: specifier: 4.0.15 version: 4.0.15(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) @@ -1200,7 +1194,7 @@ importers: version: 0.5.19(tailwindcss@4.1.17) '@tailwindcss/vite': specifier: 4.1.17 - version: 4.1.17(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) + version: 4.1.17(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) '@types/node': specifier: 24.10.1 version: 24.10.1 @@ -1212,7 +1206,7 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.1.1(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) + version: 5.1.1(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) autoprefixer: specifier: 10.4.22 version: 10.4.22(postcss@8.5.6) @@ -1271,17 +1265,17 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: 7.2.6 - version: 7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) + specifier: 8.0.0-beta.0 + version: 8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) vite-plugin-checker: specifier: 0.11.0 - version: 0.11.0(eslint@9.39.1(jiti@2.6.1))(meow@13.2.0)(optionator@0.9.4)(typescript@5.9.3)(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) + version: 0.11.0(eslint@9.39.1(jiti@2.6.1))(meow@13.2.0)(optionator@0.9.4)(typescript@5.9.3)(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) vite-plugin-route-builder: specifier: 0.4.1 version: 0.4.1 vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) + version: 5.1.4(typescript@5.9.3)(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) be/apps/oauth-gateway: dependencies: @@ -1311,8 +1305,8 @@ importers: specifier: 'catalog:' version: 5.9.3 vite: - specifier: 7.2.6 - version: 7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) + specifier: 8.0.0-beta.0 + version: 8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) vite-node: specifier: 5.2.0 version: 5.2.0(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) @@ -1434,6 +1428,9 @@ importers: c12: specifier: ^3.3.2 version: 3.3.2(magicast@0.5.1) + consola: + specifier: 3.4.2 + version: 3.4.2 dotenv-expand: specifier: 'catalog:' version: 12.0.3 @@ -1617,10 +1614,10 @@ importers: version: 0.17.0(synckit@0.11.11)(typescript@5.9.3) unplugin-dts: specifier: 1.0.0-beta.6 - version: 1.0.0-beta.6(@microsoft/api-extractor@7.52.13(@types/node@24.10.1))(esbuild@0.27.1)(rollup@4.53.3)(typescript@5.9.3)(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) + version: 1.0.0-beta.6(@microsoft/api-extractor@7.52.13(@types/node@24.10.1))(esbuild@0.25.12)(rollup@4.53.3)(typescript@5.9.3)(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)) vite: - specifier: 7.2.6 - version: 7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) + specifier: 8.0.0-beta.0 + version: 8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) packages: @@ -2480,12 +2477,6 @@ packages: '@clack/core@0.3.5': resolution: {integrity: sha512-5cfhQNH+1VQ2xLQlmzXMqUoiaH0lRBq9/CLW9lTyMbuKLC3+xEK01tHVvyut++mLOn5urSHmkm6I0Lg9MaJSTQ==} - '@clack/core@0.5.0': - resolution: {integrity: sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow==} - - '@clack/prompts@0.11.0': - resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@clack/prompts@0.8.2': resolution: {integrity: sha512-6b9Ab2UiZwJYA9iMyboYyW9yJvAO9V753ZhS+DHKEjZRKAxPPOb7MXXu84lsPFG+vZt6FRFniZ8rXi+zCIw4yQ==} @@ -2566,15 +2557,9 @@ packages: peerDependencies: tailwindcss: '*' - '@emnapi/core@1.6.0': - resolution: {integrity: sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg==} - '@emnapi/core@1.7.1': resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==} - '@emnapi/runtime@1.7.0': - resolution: {integrity: sha512-oAYoQnCYaQZKVS53Fq23ceWMRxq5EhQsE0x0RdQ55jT7wagMu5k+fS39v1fiSLrtrLQlXwVINenqhLMtTrV/1Q==} - '@emnapi/runtime@1.7.1': resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} @@ -9814,11 +9799,6 @@ packages: resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true - opentype.js@1.3.4: - resolution: {integrity: sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw==} - engines: {node: '>= 8.0.0'} - hasBin: true - optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -12162,6 +12142,46 @@ packages: yaml: optional: true + vite@8.0.0-beta.0: + resolution: {integrity: sha512-bXHWmtg5hUxn/MB5zJ8qhBLphnsNmO1EYOFmBO/fVCBJekTdWDuqJ/GmUMLgrC0QUCCrxhw3JLgteWdiyqaVSQ==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + esbuild: ^0.25.0 + jiti: '>=1.21.0' + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitest@4.0.15: resolution: {integrity: sha512-n1RxDp8UJm6N0IbJLQo+yzLZ2sQCDyl1o0LeugbPWf8+8Fttp29GghsQBjYJVmWq3gBFfe9Hs1spR44vovn2wA==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -13050,7 +13070,7 @@ snapshots: '@babel/code-frame@7.27.1': dependencies: - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 @@ -13061,7 +13081,7 @@ snapshots: '@babel/core@7.28.4': dependencies: '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 + '@babel/generator': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) '@babel/helpers': 7.28.4 @@ -13867,17 +13887,6 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@clack/core@0.5.0': - dependencies: - picocolors: 1.1.1 - sisteransi: 1.0.5 - - '@clack/prompts@0.11.0': - dependencies: - '@clack/core': 0.5.0 - picocolors: 1.1.1 - sisteransi: 1.0.5 - '@clack/prompts@0.8.2': dependencies: '@clack/core': 0.3.5 @@ -13983,23 +13992,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@emnapi/core@1.6.0': - dependencies: - '@emnapi/wasi-threads': 1.1.0 - tslib: 2.8.1 - optional: true - '@emnapi/core@1.7.1': dependencies: '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.7.0': - dependencies: - tslib: 2.8.1 - optional: true - '@emnapi/runtime@1.7.1': dependencies: tslib: 2.8.1 @@ -14815,7 +14813,7 @@ snapshots: '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.7.0 + '@emnapi/runtime': 1.7.1 optional: true '@img/sharp-win32-arm64@0.34.5': @@ -15206,8 +15204,8 @@ snapshots: '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.6.0 - '@emnapi/runtime': 1.7.0 + '@emnapi/core': 1.7.1 + '@emnapi/runtime': 1.7.1 '@tybys/wasm-util': 0.10.1 optional: true @@ -17274,12 +17272,12 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.1.17 - '@tailwindcss/vite@4.1.17(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1))': + '@tailwindcss/vite@4.1.17(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1))': dependencies: '@tailwindcss/node': 4.1.17 '@tailwindcss/oxide': 4.1.17 tailwindcss: 4.1.17 - vite: 7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) + vite: 8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) '@tanstack/devtools-event-client@0.3.5': {} @@ -18047,7 +18045,7 @@ snapshots: optionalDependencies: maplibre-gl: 5.14.0 - '@vitejs/plugin-react@5.1.1(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1))': + '@vitejs/plugin-react@5.1.1(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) @@ -18055,7 +18053,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.47 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) + vite: 8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -22288,11 +22286,6 @@ snapshots: opener@1.5.2: {} - opentype.js@1.3.4: - dependencies: - string.prototype.codepointat: 0.2.1 - tiny-inflate: 1.0.3 - optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -24647,9 +24640,9 @@ snapshots: '@babel/generator': 7.28.5 ast-kit: 2.2.0 magic-string-ast: 1.0.3 - unplugin: 2.3.10 + unplugin: 2.3.11 - unplugin-dts@1.0.0-beta.6(@microsoft/api-extractor@7.52.13(@types/node@24.10.1))(esbuild@0.27.1)(rollup@4.53.3)(typescript@5.9.3)(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)): + unplugin-dts@1.0.0-beta.6(@microsoft/api-extractor@7.52.13(@types/node@24.10.1))(esbuild@0.25.12)(rollup@4.53.3)(typescript@5.9.3)(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)): dependencies: '@rollup/pluginutils': 5.3.0(rollup@4.53.3) '@volar/typescript': 2.4.23 @@ -24662,9 +24655,9 @@ snapshots: unplugin: 2.3.10 optionalDependencies: '@microsoft/api-extractor': 7.52.13(@types/node@24.10.1) - esbuild: 0.27.1 + esbuild: 0.25.12 rollup: 4.53.3 - vite: 7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) + vite: 8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -24855,12 +24848,12 @@ snapshots: - tsx - yaml - vite-plugin-babel@1.3.2(@babel/core@7.28.5)(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)): + vite-plugin-babel@1.3.2(@babel/core@7.28.5)(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)): dependencies: '@babel/core': 7.28.5 - vite: 7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) + vite: 8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) - vite-plugin-checker@0.11.0(eslint@9.39.1(jiti@2.6.1))(meow@13.2.0)(optionator@0.9.4)(typescript@5.9.3)(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)): + vite-plugin-checker@0.11.0(eslint@9.39.1(jiti@2.6.1))(meow@13.2.0)(optionator@0.9.4)(typescript@5.9.3)(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)): dependencies: '@babel/code-frame': 7.27.1 chokidar: 4.0.3 @@ -24869,7 +24862,7 @@ snapshots: picomatch: 4.0.3 tiny-invariant: 1.3.3 tinyglobby: 0.2.15 - vite: 7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) + vite: 8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) vscode-uri: 3.1.0 optionalDependencies: eslint: 9.39.1(jiti@2.6.1) @@ -24877,7 +24870,7 @@ snapshots: optionator: 0.9.4 typescript: 5.9.3 - vite-plugin-html@3.2.2(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)): + vite-plugin-html@3.2.2(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)): dependencies: '@rollup/pluginutils': 4.2.1 colorette: 2.0.20 @@ -24891,14 +24884,14 @@ snapshots: html-minifier-terser: 6.1.0 node-html-parser: 5.4.2 pathe: 0.2.0 - vite: 7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) + vite: 8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) - vite-plugin-pwa@1.2.0(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0): + vite-plugin-pwa@1.2.0(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0): dependencies: debug: 4.4.3(supports-color@5.5.0) pretty-bytes: 6.1.1 tinyglobby: 0.2.15 - vite: 7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) + vite: 8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) workbox-build: 7.3.0(@types/babel__core@7.20.5) workbox-window: 7.3.0 transitivePeerDependencies: @@ -24906,13 +24899,13 @@ snapshots: vite-plugin-route-builder@0.4.1: {} - vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)): + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1)): dependencies: debug: 4.4.3(supports-color@5.5.0) globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.2.6(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) + vite: 8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1) transitivePeerDependencies: - supports-color - typescript @@ -24934,6 +24927,24 @@ snapshots: tsx: 4.21.0 yaml: 2.8.1 + vite@8.0.0-beta.0(@types/node@24.10.1)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1): + dependencies: + '@oxc-project/runtime': 0.101.0 + fdir: 6.5.0(picomatch@4.0.3) + lightningcss: 1.30.2 + picomatch: 4.0.3 + postcss: 8.5.6 + rolldown: 1.0.0-beta.53 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.10.1 + esbuild: 0.25.12 + fsevents: 2.3.3 + jiti: 2.6.1 + terser: 5.44.1 + tsx: 4.21.0 + yaml: 2.8.1 + vitest@4.0.15(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.1): dependencies: '@vitest/expect': 4.0.15