Commit Graph

137 Commits

Author SHA1 Message Date
Innei
bc9c87d008 feat: b2 provider
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 21:11:47 +08:00
Innei
76debaa386 feat(photo): implement photo tag management and update functionality
- 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>
2025-11-17 15:01:56 +08:00
Innei
a5afd8b233 feat: add photo upload and sync limits configuration
- 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>
2025-11-16 16:35:51 +08:00
Innei
1616f866e5 feat: upload modal
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-16 02:09:36 +08:00
Innei
dafc621033 feat(config): update site configuration and enhance author handling
- 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>
2025-11-15 01:08:31 +08:00
Innei
77f16490e4 chore: adjust docs and add cjk font
- 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>
2025-11-14 21:52:54 +08:00
Innei
ef19962eb2 feat(docker): optimize Dockerfile and enhance EXIF data extraction
- 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>
2025-11-14 20:04:53 +08:00
Innei
fa7b953d78 feat(logger): enhance logging functionality with tag support and message relaying
- 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>
2025-11-14 18:32:00 +08:00
Innei
51a5a51f20 feat(data-sync): enhance error handling in data synchronization process
- 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>
2025-11-14 17:54:01 +08:00
Innei
5e4b4bb4d1 feat(data-management): add data management module for photo asset maintenance
- 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>
2025-11-14 16:38:15 +08:00
Wenzhuo Liu
f2658cf5a5 feat: support hdr motion photo (#155) 2025-11-14 14:26:03 +08:00
Innei
6085335242 chore(builder): update package version and adjust module exports
- 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>
2025-11-14 00:31:32 +08:00
Innei
3e60b382e1 feat(builder): integrate GitHub repository synchronization plugin and update configuration
- 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>
2025-11-14 00:23:26 +08:00
Innei
6a4f868a5a feat(docker): add Docker Compose configuration for database and caching services
- 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>
2025-11-13 23:43:22 +08:00
Innei
936666d8a2 refactor: remove unnecessary window checks across components
- Eliminated checks for `typeof window !== 'undefined'` in various components and utility functions, simplifying the codebase.
- Updated logic to directly access `window` properties, assuming the code runs in a browser environment.
- Improved readability and maintainability by streamlining conditional checks related to window availability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-13 15:03:46 +08:00
Innei
76a4c251e4 feat(photo): enhance photo asset normalization and logging
- 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>
2025-11-13 14:52:00 +08:00
Innei
e8f967a7ea refactor(s3): replace AWS SDK S3 types with custom S3ObjectLike interface
- 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>
2025-11-13 13:53:54 +08:00
Innei
ff73de44c8 feat(data-sync): implement logging for data synchronization process
- 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>
2025-11-13 00:42:43 +08:00
Innei
42c217e2f8 chore(deps): update package versions across the project
- 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>
2025-11-12 23:57:37 +08:00
Innei
76d60fd672 feat(ui): introduce LinearBorderContainer component and enhance NotFound pages
- Added LinearBorderContainer component for improved UI styling with gradient borders.
- Refactored NotFound components in both web and dashboard to utilize LinearBorderContainer, enhancing visual presentation and user experience.
- Updated layout and messaging for 404 error pages to provide clearer navigation options.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-12 22:47:56 +08:00
Innei
ee938d1f67 feat: implement root tenant login functionality
- Renamed core package to @afilmory/core for better namespace management.
- Added AppInitializationModule and AppInitializationProvider to handle application startup and root tenant provisioning.
- Introduced root tenant login page and updated routing to support root login.
- Enhanced tenant context resolution to accommodate root tenant paths and added related utility functions.
- Refactored existing services and modules to integrate root tenant logic and improve overall structure.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-11 19:33:51 +08:00
Innei
88f763d2e2 feat: implement placeholder tenant support across guards and decorators
- Introduced AllowPlaceholderTenant decorator to manage placeholder tenant access.
- Added PlaceholderTenantGuard to enforce access rules for placeholder tenants.
- Enhanced AuthGuard to handle placeholder tenant contexts and permissions.
- Updated roles handling to support inheritance and added RolesGuard for role-based access control.
- Integrated placeholder tenant logic into various controllers and services for consistent behavior.
- Improved tenant context resolution to fallback to placeholder tenant when necessary.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-11 15:28:46 +08:00
Innei
082f201aea refactor!: split builder config (#154)
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-11 00:39:56 +08:00
Wenzhuo Liu
777e8cbbba feat: add support for motion photo (#153) 2025-11-10 23:23:09 +08:00
Innei
4064c1341c refactor(auth): streamline onboarding process and enhance registration flow
- Removed the onboarding module and its associated components to simplify the application structure.
- Introduced a new welcome module with components for site schema and registration wizard.
- Updated routing to direct users to the new welcome page for tenant registration.
- Enhanced the registration process by integrating social authentication options and improving user experience.
- Refactored related hooks and utilities to support the new onboarding flow.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-10 00:55:20 +08:00
Innei
5cae9431c0 refactor(config): simplify default builder configuration and enforce storage requirement
- 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>
2025-11-09 23:17:24 +08:00
Innei
8d0e5dfe6b feat(sdk): consolidate SDK functionality and update dependencies
- Introduced a new SDK package to replace the previous ssr-sdk, consolidating shared functionality for handling views and reactions.
- Updated package.json files across applications to reference the new @afilmory/sdk.
- Removed the old ssr-sdk package and its associated files, streamlining the codebase.
- Enhanced API routes for reactions and views to utilize the new SDK schemas and client methods.
- Updated dependencies in various packages to ensure compatibility and improved functionality.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-08 21:13:02 +08:00
Innei
44f9cbb376 feat(feed): implement RSS feed generation and caching mechanism
- Introduced a new FeedModule with FeedService and FeedController for managing RSS feed generation.
- Added CacheModule to handle caching of feed data, improving performance and reducing load.
- Implemented generateRSSFeed function to create RSS XML from photo manifest data.
- Enhanced static web service to include site metadata and configuration in the generated documents.
- Refactored existing modules to integrate new feed functionalities and ensure proper dependency management.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-08 17:05:09 +08:00
Innei
4633dbbd1e refactor(server): tanant auth (#148)
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-06 01:10:08 +08:00
Whitewater
22f058aee3 feat(builder): enhance eagle storage plugin to read and inject image metadata (#141)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-03 12:56:58 +08:00
Whitewater
757ebd900c fix: manifest saving on load failure and thumbnail removal (#142) 2025-11-03 12:46:44 +08:00
Whitewater
a9119b2811 fix: reorder plugin reference handling in AfilmoryBuilder class (#146) 2025-11-03 12:45:45 +08:00
Innei
3d7c528c45 feat(builder): implement photo execution context for improved logging and storage key normalization
- 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>
2025-10-31 23:36:42 +08:00
Innei
e27b45ec49 feat(builder): upload thumbnails via storage plugin (#137)
Signed-off-by: Innei <tukon479@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2025-10-31 21:49:31 +08:00
Innei
ba68be802e feat: revamp dashboard photo management (#136)
Signed-off-by: Innei <tukon479@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-31 02:07:13 +08:00
Innei
7dd6c1c812 feat: sync photos from active storage provider (#135)
Signed-off-by: Innei <tukon479@gmail.com>
2025-10-30 00:21:10 +08:00
Ailuntz
298c98efbd fix: add duplicate ID detection in toc-extractor to match remark-heading (#133) 2025-10-29 10:54:59 +08:00
Innei
33a56b629b feat: enhance storage provider management and settings
- Added functionality to manage storage providers, including adding, editing, and toggling active status.
- Introduced utility functions for normalizing and serializing storage provider configurations.
- Implemented masking of sensitive fields in storage provider settings.
- Updated the dashboard UI components to reflect the new storage provider management features.
- Added new constants and utility functions for better handling of storage provider data.

Signed-off-by: Innei <tukon479@gmail.com>
2025-10-28 23:49:16 +08:00
Innei
e99b211ac6 refactor: remove optional logger parameter from getFile methods across storage providers and update logging implementation
- 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>
2025-10-28 20:03:22 +08:00
Innei
af170a43bb refactor!: builder pipe and plugin system
Signed-off-by: Innei <tukon479@gmail.com>
2025-10-28 19:48:04 +08:00
Innei
ad0c8830a6 chore: lint
Signed-off-by: Innei <tukon479@gmail.com>
2025-10-28 13:52:09 +08:00
Innei
7670d58aaa feat: unify dashboard design 2025-10-28 13:52:01 +08:00
Innei
a4e506f51c feat(dashboard): provider init 2025-10-27 23:05:02 +08:00
Innei
addb2435c8 feat: onboarding ui adjust
Signed-off-by: Innei <tukon479@gmail.com>
2025-10-27 16:56:30 +08:00
Whitewater
68ab78b336 fix: correct variable name in EagleStorageProvider's copyToDist method (#129) 2025-10-26 21:41:22 +08:00
Innei
310e1c502e feat: adjust onboarding ui 2025-10-26 18:47:38 +08:00
Innei
bb3088208d feat(server): onboarding init 2025-10-26 18:37:56 +08:00
Innei
55ec982272 fix: next build
Signed-off-by: Innei <tukon479@gmail.com>
2025-10-25 01:23:39 +08:00
Innei
197135f530 chore: update dependencies and refactor imports
- Removed the deprecated @afilmory/components package and replaced it with @afilmory/ui and @afilmory/utils in the SSR app.
- Updated pnpm-lock.yaml to reflect the new dependencies.
- Refactored imports in PhotoItem, HistogramChart, LoadingIndicator, RawExifViewer, and MasonryPhotoItem components to use the new packages.
- Added new icons to the @afilmory/ui package.

Signed-off-by: Innei <tukon479@gmail.com>
2025-10-25 01:12:36 +08:00
Innei
d6ad6d17ab refactor: component move to monorepo (#128)
Signed-off-by: Innei <tukon479@gmail.com>
2025-10-25 00:59:25 +08:00