* fix: unified source config + credentials
Accept optional credentials in PUT /api/sources/:sourceId so the
dashboard can send config and credentials in a single request,
eliminating the race condition between parallel config/credential
updates that left sources uninitialized until server restart.
The existing /credentials endpoint is preserved for independent
credential updates.
Co-authored-by: Ona <no-reply@ona.com>
* refactor: rename upsertSourceConfig to saveSourceConfig
Co-authored-by: Ona <no-reply@ona.com>
---------
Co-authored-by: Ona <no-reply@ona.com>
* feat: migrate to TypeScript 6 and add tsgo
- Upgrade typescript from ^5 to ^6 across all packages
- Address TS6 breaking changes in tsconfig files:
- Add explicit types array (new default is [])
- Remove deprecated baseUrl (paths work without it)
- Remove redundant esModuleInterop: true
- Merge DOM.Iterable into DOM lib
- Install @typescript/native-preview for tsgo CLI
- Enable tsgo in VS Code settings
Co-authored-by: Ona <no-reply@ona.com>
* chore: remove redundant tsconfig comments
Co-authored-by: Ona <no-reply@ona.com>
---------
Co-authored-by: Ona <no-reply@ona.com>
Add source definition for aelis.caldav with server URL, username,
password, look-ahead days, and timezone fields.
Route per-user credentials through /api/sources/:id/credentials
instead of the admin provider config endpoint, controlled by a
perUserCredentials flag on the source definition.
Co-authored-by: Ona <no-reply@ona.com>
Wrap the session check in beforeLoad with a try/catch so
network errors, 404s, and other failures redirect to the
login page instead of showing an error boundary.
Co-authored-by: Ona <no-reply@ona.com>