Commit graph

14 commits

Author SHA1 Message Date
Johannes Millan
ce91c8b1dc Merge branch 'master' into feat/operation-logs
Resolve merge conflicts:
- package.json: use @types/node@^22.19.5
- sync-form.const.ts: keep eslint-disable for naming convention
- global-config.effects.ts: remove extra blank line
- unlink-all-tasks-on-provider-deletion.effects.ts: keep deprecation notice
- auto-fix-typia-errors.ts: keep better-typed getValueByPath
- undo-task-delete.meta-reducer.spec.ts: keep getLastDeletePayload import
- Accept deletions for files refactored into operation-logs architecture
2026-01-10 17:08:09 +01:00
Johannes Millan
132947a69b feat(deps): upgrade Angular to v21
- Update @angular/* packages to v21.0.8
- Update @angular/material and @angular/cdk to v21.0.6
- Update @angular-eslint/* to v21.1.0
- Update @ngrx/* to v21.0.1
- Update TypeScript to 5.9.3
- Update ngx-markdown to v21 and marked to v17
- Update typia to v11 for TypeScript 5.9 support
- Update @types/node to v22, chart.js to v4.5.1

Breaking changes addressed:
- Replace deep imports with public API imports (idb, formly, ngrx)
- Update marked-options-factory for marked v17 API changes
- Add custom FormlySliderComponent (formly slider incompatible with Mat v21)
- Update ngx-markdown SANITIZE configuration
- Fix HostListener decorators with unused $event args
- Fix crypto.subtle type compatibility
- Add skipLibCheck for dependency type conflicts
- Update tsconfig module settings for Angular 21

Removed:
- @angular-builders/custom-webpack (unused)
2026-01-10 15:27:20 +01:00
Johannes Millan
8dc8207da2 feat(sync): add shared schema versioning package for frontend/backend
Create @sp/shared-schema package with pure TypeScript migration functions
that work in both Angular frontend and Node.js backend environments.

Package contents:
- schema-version.ts: Version constants (CURRENT=1, MAX_SKIP=3)
- migration.types.ts: OperationLike, SchemaMigration interfaces
- migrate.ts: Pure functions (migrateState, migrateOperation, etc.)
- migrations/index.ts: Empty migrations array (ready for first migration)
- 22 unit tests covering all migration scenarios

Backend changes:
- Add snapshot_schema_version column to user_sync_state table
- Migrate snapshots during generateSnapshot if outdated
- Migrate operations during replayOpsToState if outdated
- Drop operations that return null from migration (removed features)

Frontend changes:
- Refactor SchemaMigrationService to use @sp/shared-schema
- Re-export constants for backwards compatibility
- All 20 existing tests pass

This enables coordinated schema migrations across client and server,
ensuring old snapshots and operations can be upgraded when the state
structure changes.

Rollout strategy: Deploy backend first, then frontend.
2025-12-12 20:47:44 +01:00
Johannes Millan
d4d81bf511 feat(plugin-api): create foundational plugin API package
- Add @super-productivity/plugin-api package with TypeScript definitions
- Define core plugin interfaces, types, and manifest structure
- Add plugin hooks system for event-driven architecture
- Create plugin API type definitions and constants
- Add documentation and development guidelines
2025-06-27 18:13:19 +02:00
Johannes Millan
3d132f13f7 feat(pfapi): make most basic validations via typia work 2025-04-12 13:59:17 +02:00
Johannes Millan
1404b15a3e migrate: make workers work again 2024-06-18 20:56:52 +02:00
Johannes Millan
851bce04b1 migrate: make e2e tests work step 1 2024-06-18 15:11:42 +02:00
Johannes Millan
0425097c38 build: upgrade ngrx store to 16 2024-06-15 12:42:12 +02:00
Johannes Millan
7a3cf1eb1b build: upgrade angular core to 16 2024-06-15 12:36:22 +02:00
Johannes Millan
0da1a080c6 refactor: add noImplicitOverride rule 2024-02-01 19:02:42 +01:00
Johannes Millan
e2b9f82411 feat(electronSecurity): make electron log work again 2023-12-15 16:38:00 +01:00
Johannes Millan
d23d69fd0d feat: migrate tslint noUnusedLocals to eslint rule as it is annoying 2021-06-11 10:51:20 +02:00
Dominik Broj
7708a45ad3 build: set target to es2015 2020-10-11 19:44:53 +02:00
Dominik Broj
404c6b6e4b build: upgrade to angular 10 2020-08-29 17:53:28 +02:00