- Added a new package `@afilmory/typing` to centralize type definitions.
- Updated various files to import types from `@afilmory/typing` instead of individual modules.
- Adjusted package dependencies in `package.json` files for affected packages.
- Modified `pnpm-lock.yaml` to include the new package and its dependencies.
Signed-off-by: Innei <tukon479@gmail.com>
When users switched from Tencent COS to managed storage and saved, the UI would
incorrectly show Tencent COS as the active provider on reload, and uploads would
fail because the wrong storage backend was being used.
Root cause: The `getActiveStorageProvider` method had a fallback behavior that
automatically set and persisted the first provider as active when only one
provider existed. This caused the managed storage selection to be overwritten.
Changes:
- Remove auto-persist fallback in getActiveStorageProvider (setting.service.ts)
- Add proper validation for managed storage subscription (storage-setting.service.ts)
- Reorder storage resolution to check managed storage first (photo-storage.service.ts)
- Add getActivePlanSummaryForTenant with Creem subscription validation (storage-plan.service.ts)
- Update dashboard UI to handle provider state correctly (StorageProvidersManager.tsx)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Upgraded package manager from pnpm@10.24.0 to pnpm@10.26.2 across multiple applications.
- Updated various package dependencies including lucide-react, eslint-plugin-react-refresh, typescript-eslint, and others to their latest versions.
- Adjusted @types/node version from ^24.10.1 to ^25.0.3 in several packages for compatibility with the latest Node.js features.
Signed-off-by: Innei <tukon479@gmail.com>
- 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 <tukon479@gmail.com>
- Upgraded various package dependencies including:
- `prettier` to version 3.7.4
- `tsx` to version 4.21.0
- `vite` to version 7.2.6
- `react` and `react-dom` to version 19.2.1
- `drizzle-orm` to version 0.45.0
- `jotai` to version 2.15.2
- `motion` to version 12.23.25
- Updated several other packages to their latest versions for improved performance and compatibility.
Signed-off-by: Innei <tukon479@gmail.com>
- Added MailModule to handle email notifications for comment events.
- Introduced CommentCreatedEvent to encapsulate comment creation details.
- Implemented CommentNotificationListener to send notifications to relevant users when a comment is created.
- Integrated Resend service for sending emails, with templates for comment notifications.
- Updated various modules to support the new email notification feature.
Signed-off-by: Innei <tukon479@gmail.com>
- Upgraded pnpm to version 10.24.0 across multiple applications.
- Updated various package dependencies including:
- `@shikijs/rehype` to version 3.19.0
- `shiki` to version 3.19.0
- `tsx` to version 4.21.0
- `typescript-eslint` to version 8.48.1
- `maplibre-gl` to version 5.14.0
- `@hono/node-server` to version 1.19.6
- `jotai` to version 2.15.2
- `motion` to version 12.23.25
- Ensured consistency in package versions across applications.
Signed-off-by: Innei <tukon479@gmail.com>
- Added 'demo' to the list of reserved slugs in tenant.ts to prevent its use as a tenant identifier.
- This change ensures better management of tenant slugs and avoids potential conflicts with common terms.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated `PageHeaderLeft` to conditionally display social media links on larger screens.
- Introduced `MoreActionMenu` in `PageHeaderRight` for mobile users, allowing access to view mode settings and social links.
- Modified `ViewModeSegment` to ensure consistent display across different screen sizes.
- Enhanced `DropdownMenuItem` to support child components for better flexibility in dropdown menus.
Signed-off-by: Innei <tukon479@gmail.com>
- Imported `toast` from 'sonner' to enable toast notifications.
- Updated styles for the toast icon to improve visual consistency and responsiveness.
Signed-off-by: Innei <tukon479@gmail.com>
- Added LinearBlur effect to the PageHeader for a refined visual appearance.
- Updated PageHeaderRight to use background styles instead of borders for a modern look.
- Adjusted ViewModeSegment styling to maintain consistency across components.
Signed-off-by: Innei <tukon479@gmail.com>
- Integrated virtualized rendering using @tanstack/react-virtual for improved performance in the GalleryThumbnail component.
- Added HoverCard functionality for displaying additional photo information on hover.
- Removed unused thumbnail gap and padding size constants to streamline the code.
- Updated scroll behavior to utilize virtual item measurements for accurate thumbnail positioning.
Signed-off-by: Innei <tukon479@gmail.com>
- Added animation effects to the PageHeaderCenter component using AnimatePresence and motion for a smoother user experience.
- Updated the Input component to support input composition handling, improving text input behavior during composition events.
- Adjusted styling in AutoSelect component for better layout consistency.
Signed-off-by: Innei <tukon479@gmail.com>
- Changed the import path for AfilmoryManifest from '@afilmory/builder/types/manifest' to '@afilmory/builder/types/manifest.js' to ensure compatibility with the updated module structure.
Signed-off-by: Innei <tukon479@gmail.com>
- Changed the condition for checking GPS altitude reference from string comparison to numeric values for 'Above Sea Level' and 'Below Sea Level'.
- Updated related logic in the EXIF data formatting and migration scripts to ensure consistency with the new numeric representation.
Signed-off-by: Innei <tukon479@gmail.com>
- Upgraded various dependencies including es-toolkit, lint-staged, vite, and zod to their latest versions.
- Updated tailwind-variants and tailwindcss-safe-area to newer versions.
- Adjusted types for React and other related packages to ensure compatibility.
- Removed obsolete patch for @creem_io/better-auth.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated documentation to include Aliyun OSS and Tencent COS as storage options.
- Introduced configuration examples for both providers in the storage providers documentation.
- Enhanced the storage provider registration to accommodate new providers.
- Updated the storage configuration interfaces to support OSS and COS.
- Modified the S3 client and provider implementations to handle requests for OSS and COS.
- Added environment variable configurations for OSS and COS.
- Implemented necessary changes in the UI schema and routes to reflect the new providers.
- Updated localization files for new storage provider types.
Signed-off-by: Innei <tukon479@gmail.com>
- Reorganized route imports in `routes.ts` to enhance clarity and maintainability, adding new storage provider routes.
- Modified `scroller.ts` to use a default scroller element based on window availability, improving compatibility in different environments.
- Updated context creation in `ctx.ts` to ensure proper handling of the scroll element in non-browser environments.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a comprehensive `DEVELOPMENT.md` guide for contributors and self-hosters, detailing workspace layout and common commands.
- Updated `README.md` to include links to the new development guide and improved deployment instructions.
- Added new documentation files covering architecture, builder pipeline, configuration, and deployment strategies.
- Implemented new storage provider documentation for Backblaze B2, Eagle, GitHub, and local storage options.
- Enhanced the UI components with new features, including a navigation context and improved theme handling.
- Removed outdated GitHub Action deployment documentation.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced new helper functions for string and date normalization, enhancing input validation across various services.
- Updated SiteSettingService and SystemSettingService to utilize the new normalization functions for improved data handling.
- Refactored existing code to replace custom normalization logic with the new helper methods, ensuring consistency and reducing redundancy.
- Enhanced localization files to support new error messages related to normalization.
Signed-off-by: Innei <tukon479@gmail.com>
- Added support for new storage providers including Backblaze B2 and GitHub.
- Introduced a new UI schema for storage provider configuration, allowing for better user experience.
- Updated localization files to include new keys for storage provider fields and usage metrics.
- Refactored existing storage provider logic to accommodate new categories and improve overall structure.
Signed-off-by: Innei <tukon479@gmail.com>
- Added UpdatePhotoTagsDto for validating photo tag updates.
- Implemented updateAssetTags method in PhotoAssetService to handle tag updates, including validation and error handling.
- Enhanced PhotoController with a new endpoint for updating photo tags.
- Introduced PhotoTagEditorModal for editing tags in the UI, allowing batch updates for selected photos.
- Updated PhotoLibrary components to support tag editing and display changes in the UI.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced new system settings for maximum photo upload size, maximum data sync object size, and maximum photo library items.
- Updated the SystemSettingService to parse and manage these new settings.
- Enhanced the photo upload workflow to enforce these limits during asset uploads and data synchronization.
- Added UI schema components for configuring these settings in the admin interface.
- Integrated progress tracking for photo uploads with server event handling.
Signed-off-by: Innei <tukon479@gmail.com>
- Changed default site name and URL to reflect new branding.
- Updated author information in the site configuration, including name, URL, and avatar.
- Removed author-related settings from the configuration schema to streamline the setup.
- Enhanced the SiteSettingService to resolve author details dynamically based on tenant context.
- Added a new endpoint to retrieve the status of photo synchronization, improving user feedback on sync operations.
Signed-off-by: Innei <tukon479@gmail.com>
- Created a new documentation site under `apps/docs` using Vite, React, and MDX.
- Added essential files including `index.html`, `package.json`, and various configuration files.
- Implemented a file-system based routing system with automatic route generation from markdown files.
- Included support for syntax highlighting, responsive design, and TypeScript.
- Established a structure for documentation content with initial deployment guides and storage provider information.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated Dockerfile to use Alpine base image for reduced size and added necessary runtime dependencies including exiftool.
- Refactored EXIF data extraction logic to utilize exiftool with improved error handling and logging.
- Simplified metadata handling by removing unnecessary checks and ensuring consistent extraction of EXIF data.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the ConsolaCompatibleLogger to include a tag parameter for better log categorization.
- Introduced a relayLogMessage function to facilitate message relaying with associated tags and log levels.
- Refactored the createBuilderLoggerAdapter function to utilize the new tagging system, improving log context and traceability.
Signed-off-by: Innei <tukon479@gmail.com>
- Added an 'errors' field to the DataSyncResultSummary and updated related types to track synchronization errors.
- Modified the DataSyncService to categorize certain failures as errors instead of conflicts.
- Updated UI components to display error counts in synchronization summaries and progress panels, improving user feedback during data sync operations.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced the DataManagementModule, including a controller and service for managing photo asset records.
- Implemented functionality to truncate photo asset records from the database, enhancing data management capabilities.
- Updated existing photo asset deletion logic to support optional deletion from storage.
- Added a new DataManagementPanel in the dashboard for user interaction with data management features.
Signed-off-by: Innei <tukon479@gmail.com>
- Bumped package version from 0.1.3 to 0.2.2 for the builder.
- Changed main entry point and module exports from `.js` to `.mjs` and updated type definitions to `.d.mts` for better compatibility with ES modules.
- Modified GitHub repository synchronization plugin options to allow an optional `enable` flag, enhancing configuration flexibility.
Signed-off-by: Innei <tukon479@gmail.com>
- Added `githubRepoSyncPlugin` to the builder configuration, enabling synchronization with a GitHub repository.
- Removed deprecated repository settings from user configuration and streamlined the plugin's integration.
- Updated CLI and documentation to reflect changes in repository configuration handling, enhancing clarity for users.
Signed-off-by: Innei <tukon479@gmail.com>