-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
WIP Feat/sync lib #4256
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
WIP Feat/sync lib #4256
Changes from 250 commits
Commits
Show all changes
271 commits
Select commit
Hold shift + click to select a range
b2bd4f7
feat(pfapi): outline actual integration and fix alot of errors
johannesjo 3ee4f55
feat(pfapi): make super basic data uploading work
johannesjo cd5fda1
feat(pfapi): add decryption compression interface
johannesjo c665db4
feat(pfapi): outline client id generation
johannesjo 1515a71
feat(pfapi): wip private credential store
johannesjo 6786e3e
feat(pfapi): solve namespacing much better
johannesjo 8c0abaf
feat(pfapi): improve structure
johannesjo 4f4a11f
feat(pfapi): improve logging
johannesjo 7b6cf28
feat(pfapi): make sync credential store work
johannesjo 2513b2b
feat(pfapi): extract string values
johannesjo d407d67
feat(pfapi): implement lock file
johannesjo e00781b
feat(pfapi): improve database
johannesjo f7c1d3b
feat(pfapi): wip make stuff work halfway
johannesjo ab80273
feat(pfapi): make get model ids to update work better
johannesjo e9f7542
feat(pfapi): prepare getSyncStatusFromMetaFiles
johannesjo 57c2522
feat(pfapi): improve error handling
johannesjo 01b0719
feat(pfapi): make sync status work
johannesjo cb29307
feat(pfapi): improve logging and credentials store
johannesjo 135f82f
feat(pfapi): split up local and remote meta types and make most basic…
johannesjo e53e0ef
feat(pfapi): outline update local
johannesjo 4314a47
feat(pfapi): outline using pfapi for all models
johannesjo 48ba8da
feat(pfapi): improve pfapi as persistence provider
johannesjo 040f783
feat(pfapi): make basic auth flow work for dropbox
johannesjo b2fb6dd
feat(pfapi): prepare conflict resolution
johannesjo 688e664
feat(pfapi): prepare data import
johannesjo dd4eb58
feat(pfapi): make execAction and getById work again
johannesjo 50001c1
feat(pfapi): use pfapiService instead of persistence
johannesjo fec3255
feat(pfapi): replace persistenceService completely with pfapi
johannesjo f216a0b
feat(pfapi): improve pfapi service
johannesjo 56c3396
fix: bootstrap
johannesjo 18e12c7
feat(pfapi): clean logs
johannesjo ecd43ab
feat(pfapi): detect too many requests case and prepare upload all stuff
johannesjo fb489ec
feat(pfapi): add load balancing and too many request handling
johannesjo 4262738
feat(pfapi): prepare fixing dataImport service
johannesjo ce0475e
feat(pfapi): make clear clearDatabaseExceptLocalOnly work
johannesjo b767549
feat(pfapi): make updating local data work
johannesjo 1ddfcd1
feat(pfapi): improve sync error handling
johannesjo 7689595
feat(pfapi): improve on various sync cases
johannesjo b121d8a
feat(pfapi): make legacy data import work
johannesjo ff88f81
feat(pfapi): speed up things as much as possible
johannesjo 3686c33
feat(pfapi): implement basic webdav
johannesjo 87b5875
feat(pfapi): make basic webdav work
johannesjo 005ca99
feat(pfapi): outline cascading mode
johannesjo 0533e36
feat(pfapi): add cool fast main file mode
johannesjo 0fdc6e1
feat(pfapi): make edge cases work
johannesjo ba99fa6
feat(pfapi): make it work for firefox
johannesjo 7b128e6
feat(pfapi): reduce lgos
johannesjo 113702d
feat(pfapi): fix webdav revs case
johannesjo 2b696a3
feat(pfapi): fix another sync problem case
johannesjo 93ae1aa
feat(pfapi): restructure files
johannesjo 32df74b
feat(pfapi): make rev model update work as it should
johannesjo 069b4f3
feat(pfapi): prepare validation
johannesjo efd36cb
feat(pfapi): prepare validation and data repair
johannesjo 490018d
feat(pfapi): remove data import service completely
johannesjo 0a0a6d8
feat(pfapi): improve on imex view service
johannesjo 9416ac3
feat(pfapi): also validate data before providing backup
johannesjo ff507ef
feat(pfapi): improve backup handling
johannesjo ad3cad6
feat(pfapi): rename
johannesjo d0bddde
feat(pfapi): handle taskArchive edge case
johannesjo 44f3988
feat(pfapi): make sure sync model data is valid
johannesjo 196d041
feat(pfapi): improve provider init
johannesjo da45494
feat(pfapi): remove imex view handling for now
johannesjo ad8ad3b
feat(pfapi): make isCurrentProviderInSync$ work
johannesjo ac99338
feat(pfapi): outline local file sync as provider
johannesjo 0c307df
feat(pfapi): make super basic electron file sync work
johannesjo d7def28
feat(pfapi): make removing files work for local file sync
johannesjo 5c4b6cb
feat(pfapi): prevent electron to hang on startup
johannesjo a862f5e
feat(pfapi): prepare better handling of credentials
johannesjo 40275ae
feat(pfapi): rename credentials to private cfg
johannesjo a64536d
feat(pfapi): make saving private sync settings work
johannesjo bb0b57e
feat(pfapi): improve on configuring and saving the different types of…
johannesjo 6eae2e9
feat(pfapi): make life updates for sync form work
johannesjo 9f47035
feat(pfapi): make initial sync work again
johannesjo 65ad786
feat(pfapi): make encryption work
johannesjo 8eae3dc
feat(pfapi): make compression work
johannesjo 56ab3cd
feat(pfapi): prevent full data from bein uploaded to meta file
johannesjo a461f60
feat(pfapi): move task repeat stuff to main file model
johannesjo 9257986
feat(pfapi): outline model version check
johannesjo 8203080
feat(pfapi): improve etag handling for webdav
johannesjo 6d13abc
feat(pfapi): prepare cors skip headers for calendar requests
johannesjo 3d67cd8
feat(pfapi): add custom webdav implementation
johannesjo 1182f41
feat(pfapi): improve on custom webdav solution to use head instead of…
johannesjo 88c25c6
feat(pfapi): improve error structure
johannesjo 646d639
feat(pfapi): improve webdav error handling
johannesjo 0e18e35
feat(pfapi): further improve webdav error handling
johannesjo 155d3cb
feat(pfapi): further improve webdav error handling 2
johannesjo 2ec5490
feat(pfapi): remove axios dependency from dropbox api
johannesjo 0f8769c
feat(pfapi): improve error handling for dropbox api
johannesjo 12d1307
feat(pfapi): improve error handling for dropbox api
johannesjo 463e1dc
feat(pfapi): deal with sync edge case
johannesjo 4b81ac5
feat(pfapi): add If None match to file rev request
johannesjo 669da0d
feat(pfapi): improve android dropbox
johannesjo 2e4bea0
feat(pfapi): implement local file sync for android
johannesjo b03cfcd
feat(pfapi): improve error and tmp backup handling
johannesjo 34197e5
feat(pfapi): make complete data import work
johannesjo ff3d40d
feat(pfapi): implement db lock to avoid problems during complete import
johannesjo 3867809
feat(pfapi): make file import work again as it should
johannesjo 8cdd24e
feat(pfapi): prepare better android file sync
johannesjo a8de103
feat(pfapi): make android file sync work
johannesjo e50c22d
feat(pfapi): work around initial load problem on android and electron
johannesjo 691123d
feat(pfapi): improve on pfapi init
johannesjo c538c5b
feat(pfapi): improve on snack
johannesjo c8dc21a
feat(pfapi): use md5 hash also for electron file sync
johannesjo 0e59ff7
feat(pfapi): improve electron file sync
johannesjo b4e627e
feat(pfapi): improve file sync
johannesjo d58d5d7
feat(pfapi): improve initial experience for electron file sync
johannesjo a760cb0
feat(pfapi): remove multi file mode to make things easier
johannesjo cdd3ab7
refactor(pfapi): remove unnecessary assignments
johannesjo 584882d
feat(pfapi): use meta file as lock file replacement
johannesjo f61e58b
refactor(pfapi): to getter
johannesjo 1e13c66
feat(pfapi): implement one file sync for local file sync providers
johannesjo 8c5ed3e
feat(pfapi): improve sync button state
johannesjo 7f1f9ef
refactor(pfapi): improve sync service
johannesjo 91cdf9f
feat(pfapi): improve isSyncInProgress$ and global spinner handling
johannesjo 0bc89eb
feat(pfapi): implement rev map check
johannesjo 44b362c
feat(pfapi): handle all incomplete sync cases
johannesjo 50c49f0
feat(pfapi): implement transformBeforeUpload
johannesjo 904c5e2
feat(pfapi): implement transformBeforeDownload
johannesjo 4ddbbba
feat(pfapi): make app reload model changes after downloading remote
johannesjo bb55c04
feat(pfapi): add snack info when importing data from remote
johannesjo a34d427
refactor(pfapi): extract meta file service from sync service
johannesjo 4709f4f
refactor(pfapi): extract model sync service from sync service
johannesjo e76cec0
refactor(pfapi): further extract stuff from sync.service
johannesjo 96172de
feat(pfapi): outline new time tracking model
johannesjo 1b127ea
feat(pfapi): make sync trigger work again
johannesjo c06f0a2
feat(pfapi): remove legacy stuff for sync
johannesjo 6f1b894
feat(pfapi): make migration work
johannesjo bae3879
feat(pfapi): remove alert
johannesjo b1c1f8f
feat(pfapi): improve
johannesjo fbb5d0a
test(pfapi): add some basic unit tests
johannesjo 5c4c99b
test(pfapi): add lots of tests
johannesjo 6d642d8
refactor(pfapi): rename syncService to syncWrapperService
johannesjo 394f652
test(pfapi): add for ModelSyncService
johannesjo 7758b28
build: update package-lock.json
johannesjo 0df2475
feat(pfapi): implement different sync folder for dev
johannesjo 0aa89b3
test(pfapi): minor adjustment
johannesjo cb2c556
feat(pfapi): improve migration experience for electron
johannesjo 5fd88ec
feat(pfapi): improve migration experience 2 #4137
johannesjo 5e89a62
fix: input duration directive not working as expected
johannesjo 2912143
refactor(pfapi): cleanup sync form
johannesjo eae4ea4
feat(timeTracking): outline new state
johannesjo f818367
feat: remove android permanent notification stuff
johannesjo ec4a08a
feat(timeTracking): migrate project and tag to new model 1
johannesjo cd1ecf5
feat(timeTracking): prepare pfapi stuff for migration
johannesjo b584c82
feat(timeTracking): prepare pfapi stuff for migration
johannesjo cfa6814
feat(timeTracking): make store stuff work for new project/tag
johannesjo cf20e14
feat(timeTracking): make persisting data work as it should
johannesjo 8990e95
feat(timeTracking): also make break stuff to tt model
johannesjo 38fcb10
feat(timeTracking): minimize disk space usage
johannesjo c245088
feat(timeTracking): improve merging code
johannesjo 03534d4
feat(timeTracking): outline cross model migrations
johannesjo b583caa
test(timeTracking): make them work again
johannesjo d875063
test(timeTracking): make migration work for project and tag
johannesjo a0e0b22
feat(timeTracking): make TTWorkContextData members optional (to save …
johannesjo 0c05311
feat(pfapi): extract migrate stuff into its own service
johannesjo 23a00d2
feat(pfapi): add migration before importing complete data and during …
johannesjo e5ec28e
feat(timeTracking): slightly improve stats fallback
johannesjo 5441bba
feat(timeTracking): move addTimeSpent to timeTracking actions
johannesjo 6127c0e
fix(timeTracking): reduce number of disk writes by at least 15x #2355…
johannesjo f18a0b6
feat(timeTracking): outline flush to archive mechanism
johannesjo 4c7b1d4
update t.const.ts
johannesjo 85affac
cleanup local backup module
johannesjo d5ef1d8
feat(timeTracking): implement new taskArchive service
johannesjo a2bdd2b
feat(timeTracking): improve new taskArchiveService
johannesjo 7b75b9d
feat(timeTracking): outline updating both archives
johannesjo 62943a6
feat(timeTracking): make also task archive stuff work in a smart and …
johannesjo ce5f7f6
feat(timeTracking): rename archive to archiveYoung
johannesjo dd16cd8
feat(timeTracking): replace taskArchive everywhere
johannesjo 1ae7d1b
feat(timeTracking): implement flushing mechanism 1
johannesjo 4fb5f9c
feat(timeTracking): implement flushing mechanism 2
johannesjo 79eb8fa
test(timeTracking): make them work again
johannesjo 6e3eb9a
feat(timeTracking): eliminate quirks for sort data to flush functions
johannesjo 2cf6ee7
feat(timeTracking): add cleanup for timeTracking data on project or t…
johannesjo ae777b5
feat(timeTracking): flush parent and child tasks always together to o…
johannesjo 82e01d6
feat(timeTracking): also migrate legacy tasks without doneOn
johannesjo b917ca0
feat(timeTracking): improve code
johannesjo f30718d
feat(timeTracking): make project and tag related data deletion work
johannesjo 514aea1
feat(timeTracking): make getBreakNrForProject$ and getBreakTimeForPro…
johannesjo 2267d1d
test(timeTracking): add unit test for merge-time-tracking-states.spec.ts
johannesjo 5fc9281
test(timeTracking): add for time tracking reducer
johannesjo c7439c6
feat(timeTracking): adjust flushing logic once more
johannesjo b2b52fa
feat(timeTracking): add vals for testing
johannesjo fd6d389
feat(timeTracking): be a bit more lenient for data repair script
johannesjo 15898f8
feat(timeTracking): improve initial migration behavior
johannesjo 6a78049
feat(pfapi): also filter out modelIds without a local model ctrl
johannesjo 3e29554
feat(pfapi): improve typing
johannesjo 10fbc71
feat(timeTracking): make archive update trigger work as expected
johannesjo 5cb0858
feat(timeTracking): improve model
johannesjo 6890a52
feat(timeTracking): avoid empty object creation
johannesjo bd1c692
feat(pfapi): implement validation and repair
johannesjo a9e722a
feat(pfapi): improve on validations
johannesjo 1e88740
feat(pfapi): add some validations
johannesjo 70ff1eb
feat(pfapi): just delete stray backup if not restored
johannesjo 3d132f1
feat(pfapi): make most basic validations via typia work
johannesjo 40cd575
feat(pfapi): add task model validation and proper migration
johannesjo 464b854
feat(pfapi): cleanup logs
johannesjo 84238dd
test(pfapi): make em run again
johannesjo 809893b
feat(pfapi): remove ui property on archiving
johannesjo 1cd68e5
feat(pfapi): add validations for all the models
johannesjo c6f03b6
feat(pfapi): prevent endless loop during backup import
johannesjo 5d1dc92
feat(pfapi): add defaults to board during migration
johannesjo 5e79c81
feat(pfapi): adjust sound model to reality
johannesjo 385a1e2
feat(pfapi): add validate all data and legacy data cases work
johannesjo da8181d
build: ignore compiled environment files
johannesjo 8d83598
feat(pfapi): add note for later
johannesjo fb3a381
feat(task): improve ShowSubTasksMode model by renaming it and reducin…
johannesjo c959250
feat(task): also cleanup empty notes
johannesjo 95567c2
feat(pfapi): re-structure validation fns
johannesjo cc778f8
feat(pfapi): make data repair stuff work better
johannesjo eb74e3c
fix: don't update daily summary note until really changed
johannesjo 8686879
feat(pfapi): improve structure for validation stuff
johannesjo 1c6a428
feat(pfapi): remove direct bindings from pfapi service in favor of di…
johannesjo dae2f3d
feat(pfapi): improve validity check message
johannesjo e3d9a14
fix(task): wrong model
johannesjo df67f4a
feat: sync whenever app goes to background on mobile
johannesjo 43ee2a7
build: add stats command
johannesjo 657340d
refactor(pfapi): cleanup fns
johannesjo 3e8b55f
refactor(pfapi): improve on database functions
johannesjo 15180e7
refactor(pfapi): improve migration service
johannesjo 7dd76ee
refactor(pfapi): improve meta model ctrl
johannesjo a651555
refactor(pfapi): use 0 as pfLog error code
johannesjo 45ad1d8
refactor(pfapi): improve model-ctrl
johannesjo cd16206
refactor(pfapi): improve sync-provider-private-cfg-store
johannesjo 472f918
refactor(pfapi): improve sync.service
johannesjo 9990da6
refactor(pfapi): improve sync.service.spec
johannesjo 5f896c9
feat(pfapi): implement deletion of obsolete data during sync
johannesjo f529ed0
refactor(pfapi): improve meta-sync.service.ts
johannesjo 740da32
refactor(pfapi): improve dropbox-api stuff
johannesjo 5c2e821
refactor(pfapi): improve file sync stuff
johannesjo 489bc14
refactor(pfapi): improve webdav stuff
johannesjo 3fc6f80
fix(pfapi): error when adding sub task
johannesjo 9844b21
fix: various quirks for new validation
johannesjo d2ece8a
refactor: remove legacy stuff
johannesjo 59e67e7
fix: legacy data edge case with motivationalImgs
johannesjo 4ee9c9f
build: update deps 1
johannesjo c37849b
build: update package-lock.json
johannesjo 2b430d8
feat(pfapi): make decryption work and ask for password if wrong
johannesjo 1e12417
feat(pfapi): make decryption work and ask for password if wrong
johannesjo 4807bc7
feat(pfapi): improve private config interface
johannesjo 3141be4
feat(pfapi): save encryption key privately
johannesjo 7649288
feat(pfapi): save encryption key privately 2
johannesjo 992c1f1
feat(pfapi): make decryption wrong password cases work smoothly
johannesjo 4e0940f
feat(pfapi): improve migration and avoid potential error cases
johannesjo 6109d43
refactor(pfapi): improve migration and avoid potential error cases
johannesjo 5bf22e5
feat(pfapi): improve sync service and fix tests
johannesjo 69e1062
feat(pfapi): remove testing thresholds for archive flush
johannesjo 230e8de
feat(pfapi): improve dropbox
johannesjo 4bc0626
feat(pfapi): work around edge case
johannesjo 2a0566a
feat(pfapi): get etag directly from upload
johannesjo 647e022
feat(pfapi): add various translations
johannesjo File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Casting the caught error to a string using 'e as string' may not reliably convert non-string errors. Consider using e.toString() to produce a consistent error message.
Copilot is powered by AI, so mistakes are possible. Review output carefully before use.