- 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>
- Introduced a new `docker-compose.yml` file to define services for PostgreSQL and Redis, facilitating local development and testing.
- Configured health checks for both services to ensure they are ready before the core application starts.
- Set up environment variables for the PostgreSQL service to manage user credentials and database initialization.
- Added volume mappings for persistent data storage in both PostgreSQL and Redis.
refactor(auth): streamline tenant context resolution and error handling
- Simplified the `AuthGuard` to throw a `BizException` with a detailed message when tenant IDs do not match.
- Removed unnecessary response header settings in the `TenantContextResolver` and middleware, improving clarity and maintainability.
- Updated various controllers and services to utilize the new tenant context handling logic, ensuring consistent behavior across the application.
feat(super-admin): implement builder debug functionality
- Added `SuperAdminBuilderDebugController` to handle image debugging requests with progress tracking.
- Introduced an in-memory storage provider for debugging purposes, allowing for temporary file uploads and processing.
- Enhanced the dashboard with a new debug page for super admins to test and validate image processing workflows.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated photo asset service to correctly use regex in normalization functions, ensuring proper path formatting.
- Introduced builder log relay functionality in the data sync controller to improve logging during synchronization tasks.
- Added error handling improvements across various components, utilizing a centralized error message function for consistency.
- Enhanced photo page actions and library action bar with new select all functionality for better user experience.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed dependencies on AWS SDK's S3 types in favor of a custom S3ObjectLike interface for better type management.
- Updated various services and components to utilize the new S3ObjectLike type, enhancing code clarity and maintainability.
- Introduced a SimpleS3Client interface to streamline S3 client interactions and improve fetch handling.
- Added fast-xml-parser for XML response parsing in S3 operations, enhancing object listing functionality.
Signed-off-by: Innei <tukon479@gmail.com>
- Added logging functionality to the DataSyncService to track progress and errors during the manifest generation process.
- Introduced DataSyncLogLevel and DataSyncLogPayload types for structured logging.
- Updated emitLog method to handle different log levels (info, success, warn, error) and include relevant details.
- Enhanced PhotoSyncProgressState to maintain a log of synchronization events, displayed in the PhotoSyncProgressPanel.
Signed-off-by: Innei <tukon479@gmail.com>
- Bumped versions for several dependencies including `@types/node`, `eslint`, `sharp`, `vite`, and various `@tanstack/react-query` packages to their latest releases for improved stability and features.
- Updated Tailwind CSS related packages to version 4.1.17 for consistency across the project.
- Adjusted other dependencies such as `jotai`, `lucide-react`, and `tailwind-merge` to their latest versions to ensure compatibility and access to new features.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed unnecessary fields from the default builder configuration, including repository and storage settings.
- Set storage to null to enforce configuration validation.
- Updated loadBuilderConfig to ensure storage configuration is provided, throwing an error if missing.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new `PhotoExecutionContext` to manage execution context for photo processing, enhancing logger management and storage key normalization.
- Refactored photo processing methods to utilize the new context, replacing global logger usage with context-based loggers.
- Updated related modules to ensure compatibility with the new execution context, improving modularity and reducing global state dependencies.
Signed-off-by: Innei <tukon479@gmail.com>
- Simplified getFile method signatures in StorageProvider and its implementations by removing the optional logger parameter.
- Updated logging calls to use a global logger instance instead of passing a logger as an argument.
- Ensured consistent logging behavior across different storage providers.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced .gitattributes to manage large media files with Git LFS for various formats including HEIC, MOV, and JPG.
- Added a new build script in package.json for preparing demo data.
- Enhanced logging in the PhotoGalleryBuilder to include storage provider information.
- Updated the LocalStorageProvider to use the correct type for file stats.
- Added multiple new media files to the project.
Signed-off-by: Innei <tukon479@gmail.com>
- Upgraded various dependencies across the project, including dotenv, eslint, prettier, and typescript.
- Updated package versions in package.json and pnpm-lock.yaml for better compatibility and performance.
- Adjusted tailwindcss and related plugins to the latest versions.
- Enhanced the S3 client configuration in the builder package.
- Fixed import statements in CSS files to use @import instead of @plugin for tailwindcss-safe-area.
Signed-off-by: Innei <tukon479@gmail.com>
- Added network tuning options to the builder configuration, including keep-alive settings, timeouts, and retry mechanisms.
- Integrated the NodeHttpHandler for improved HTTP handling in the S3 client.
- Implemented a download concurrency limiter using a semaphore to manage concurrent downloads.
- Enhanced the getFile method to include retry logic and timeout handling for S3 file downloads, improving robustness and performance.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a migration system for manifest files to support versioning and backward compatibility.
- Updated image processing to switch thumbnail format from WebP to JPEG for better compatibility.
- Added new commands for manifest migration and improved thumbnail handling in the builder.
- Enhanced documentation with architecture details and development commands.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new FilterPanel component for selecting tags, cameras, and lenses.
- Updated gallery settings to include selected cameras and lenses.
- Enhanced photo filtering logic to support camera and lens criteria.
- Updated UI to reflect changes in filtering options and improved user experience.
- Added localization for new filter options in English.
Signed-off-by: Innei <tukon479@gmail.com>
- Added Thumbhash component to replace Blurhash in PhotoViewer and PhotoMasonryItem for enhanced image loading performance.
- Updated the manifest version from 'v4' to 'v5' across multiple files to reflect the new data structure.
- Introduced thumbHash generation in the image processing pipeline, ensuring compatibility with existing thumbnail logic.
- Updated package dependencies to include thumbhash version 0.1.1.
Signed-off-by: Innei <tukon479@gmail.com>
- Replaced `fallbackRender` with `fallback={null}` in ErrorBoundary components for consistency across the application.
- Updated the manifest version from 'v3' to 'v4' in multiple files to reflect the new data structure.
- Enhanced the PhotoViewer and PhotoMasonryItem components to handle potential errors more gracefully with the updated ErrorBoundary.
Signed-off-by: Innei <tukon479@gmail.com>
- Enhanced the ErrorElement component by adjusting the layout for better centering and added select-text class for improved text selection.
- Modified the HistogramChart component to accept a thumbnail URL instead of tone analysis, streamlining the data flow.
- Refactored the histogram calculation logic to improve performance and clarity, including compression of histogram data.
- Updated the manifest version from 'v2' to 'v3' across multiple files to reflect the new data structure.
Signed-off-by: Innei <tukon479@gmail.com>
- Consolidated thumbnail and blurhash processing into a dedicated data-processing module for better code organization.
- Improved the logic for reusing existing thumbnails and blurhashes, ensuring efficient handling of image processing.
- Updated the cache manager to validate cache data integrity and streamline the overall photo processing workflow.
- Enhanced logging for better traceability during thumbnail generation and processing.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced new markdown files explaining the generation of blurhash strings and the necessity for xComponent and yComponent to match during usage.
- Updated the blurhash generation logic to improve clarity and logging, ensuring accurate component calculations based on image dimensions.
- Removed unnecessary logging parameters and streamlined the thumbnail generation process for better performance.
Signed-off-by: Innei <tukon479@gmail.com>
- Implemented a check for Git user identity in the `pushManifestToRemoteRepo` function to handle cases where the identity is not configured in CI environments.
- Added logic to set a default CI user identity if none is found, ensuring smooth operation during automated deployments.
Signed-off-by: Innei <tukon479@gmail.com>