- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>