Followup to #1451
Empty string in email field of connect.json caused validation error on
load.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added a file-watching script to streamline development workflows.
* Introduced comprehensive property-based and randomized tests for
configuration parsing, migration, and validation.
* **Bug Fixes**
* Improved handling and validation of configuration fields, including
stricter email validation and robust handling of optional fields.
* **Refactor**
* Updated configuration change detection to buffer events for improved
performance.
* Made minor formatting and visibility adjustments for clarity and
maintainability.
* **Chores**
* Added new development dependencies for testing and data generation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Refactor**
- Reduced the delay before configuration changes are processed,
resulting in faster response times to configuration updates throughout
the application.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a CLI tool to scaffold new Unraid API plugins, including
templates for configuration, persistence, and GraphQL resolvers.
- Added plugin management commands to the CLI for installing, removing,
and listing plugins as peer dependencies.
- Implemented robust configuration state management with validation,
persistence, and error handling.
- Added scheduled and debounced persistence for configuration changes.
- Provided utilities for file existence checks and CSV string parsing.
- Enhanced GraphQL schema with new queries and mutations for health
checks and demo configuration.
- **Improvements**
- Updated configuration and environment handling to support modular,
persistent plugin configs.
- Improved logging and error handling throughout CLI and service layers.
- Refined dependency management for plugins, including support for
bundled dependencies.
- **Bug Fixes**
- Improved error handling during Docker service initialization to
prevent unhandled exceptions.
- **Chores**
- Added and updated development dependencies and TypeScript
configurations for better compatibility and type safety.
- **Refactor**
- Restructured internal modules to support dynamic plugin loading and
configuration injection.
- Removed deprecated plugin schema extension logic and related code.
- **Documentation**
- Updated and added configuration files and templates for easier plugin
development and management.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->