refactor(restic): split each command into its own file
refactor: add missing await before promise expects
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
## Release Notes
* **Tests**
* Improved async assertion handling across test suites for enhanced test reliability
* Expanded test coverage for backup, restore, and other core operations
* **Refactor**
* Reorganized internal utility structure for improved code maintainability
* **Chores**
* Updated linting configuration and TypeScript dependencies
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes#562
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
## Release Notes
* **New Features**
* Improved repository setup with context-aware descriptions for new vs. existing repositories
* Enhanced path handling: unique identifiers automatically appended for new repositories, exact paths preserved when importing existing ones
* **Chores**
* Updated documentation and build configuration
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
When a selected subfolder had the exact same name as its parent volume
mount, the `path.relative` check falsely identified the subfolder path
as an absolute path already inside the volume. This caused the entire
volume root to be backed up instead of the intended subfolder.
Closes#250
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
* **Bug Fixes**
* Improved handling of backup patterns when folder names match volume names.
* Enhanced error handling for snapshot deletion operations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
* **Bug Fixes**
* Enhanced error handling in retention category calculations to gracefully handle missing or invalid repositories, ensuring the system returns safe defaults instead of failing
* Optimized repository cache validation and lookup mechanisms for improved performance
* Strengthened repository validation checks to prevent potential calculation failures
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes#519
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
* **New Features**
* Notification destinations can now be tested even when disabled, enabling configuration validation before activation
* **Improvements**
* Discord notification formatting parameters optimized for enhanced message delivery
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
* feat: edit repository form
* refactor: local repo path concat as a code migration
* refactor: server constants
* chore: fix lint issue in test file
* refactor: add auth to getServerConstants
* refactor: add nitro bootstrap plugin to ensure app is started before first call
* refactor(bootstrap): avoid duplicate event firing
* refactor: extract common setup in initModule function
* refactor: remove proxy pattern for db and auth
Since we migrated away from rr this is not needed anymore as the bundler
correctly split chunks
* refactor: move migrations to new structure
* refactor: convert all findMany to new structure
* fix(backups-schedule): missing null matching for last backup status
* chore: move root lib to server