* [editor-core] gracefully handle no-op TextOperation
* [web] avoid sending sync to pdf requests without a ?file
* [validation-tools] log deeper nested violations
* [editor-core] fix round trip of EditNoOperation
* [web] use custom error for sync to pdf w/o file, fix tests
* [validation-tools] include request params in log msg for violation
* Revert "[editor-core] gracefully handle no-op TextOperation"
This reverts commit c1d37261d5db72b37dbf39428c54edcfb5423f41.
* [web] gracefully handle rejected sync to pdf from context menu
GitOrigin-RevId: 21de7dc96b23575b0d67b6eb0c68ed9c2f86292b
* [editor-core] address zod violation for group_id
* [monorepo] use discriminated union in zod schemas where possible
* [editor-core] v1_source_doc_id is a number
GitOrigin-RevId: 38f591b07cca4e22954bfe30bf855545a6af675d
* [editor-core] extend coverage of zod schemas
* [real-time] adopt strict zod types and extend test coverage
* [project-history] make type check happy
* [web] make type check happy
GitOrigin-RevId: e1a65b9b3560b31ad2af817067a4b549865a5bb1
* [editor-core] avoid duplicate non-bmp check on InsertOp.insertion
* [editor-core] remove non-bmp check from StringFileData
Existing content may contain non-bmp characters. New edits with non-bmp
input are rejected via non-bmp check in InsertOp constructor.
GitOrigin-RevId: e9ef3a4a8c4696e8dc751325608a788351791d1c
* [monorepo] record ERROR/FATAL log messages in junit report
* [web] put SaaS specific code behind feature flag
* [web] use split test cache for getting user assignments
The unit tests needed updating as they did not replicate any of the
mongo filtering. The acceptance tests cover this logic.
* [web] make better use of existing indexes
* [web] avoid col-scan in tests of notifications module
* [web] remove cleanup of empty feedbacks collection
* [web] add assertion for reason of rejected request in launchpad test
* [web] add missing indexes
* [web] enable mongo notablescan
* [web] make emailNotifications tests compatible with notablescan
GitOrigin-RevId: b888f2feeb3a0e915f068ae1c4ea23ec17821221
* [libraries] move all the unit tests into test/unit
* [settings] remove empty test file
* [mongo-utils] remove test setup as there are no tests
* [libraries] ensure that all libraries with tests have test/setup.js
* [monorepo] remove test step from Cloud build for libraries without tests
GitOrigin-RevId: b9a0a8a3330db7d8646c7a272b03fbb8c5e44bc0
* Use snapshot timestamp, remove request for paths at version
* Add timestamp to core Snapshot object
* Avoid mutating function argument
* Explain assumption about editable files
* snapshot.toRaw() in getContentAtVersion
* fix project-history acceptance test
* fix history_v1 test
* fix web tests
* Include the snapshot timestamp in stored chunks
---------
Co-authored-by: Eric Mc Sween <5454374+emcsween@users.noreply.github.com>
GitOrigin-RevId: 376a53e1f927cb56544e6782b47d80345655038c
* Add getDocUpdaterCompatibleRanges utility function
* use history snapshot for file/project restore
* move overleaf-editor-core from devDependencies
GitOrigin-RevId: 62481a5304ada9d931e018418be3c0719bccf1f3
* [project-history] trim logging when projectVersion is out of order
* [editor-core] record reason rather than full pathname when not clean
* [editor-core] remove pathname from error messages
* [project-history] avoid logging updates when historyId is inconsistent
* [project-history] avoid logging failed history-v1 requests repeatedly
* [project-history] log once when doc version is out of order in chunk
GitOrigin-RevId: 5ac431ac87b57c00fac9d5ab486ca305b1775372
* add RestoreFileOrigin in overleaf-editor-core
* support source to be an object
* use sourceOrOrigin as param
* rename to originOrSource so the priority is more clear
* get timestamp from version
* fix test
* include version and min_count in getUpdatesFromHistory
* extractOriginOrSource util function
* fix RestoreManagerTests
GitOrigin-RevId: 0ace05a6ade2794c753a9d0bffb4f858ecc6899a
* [overleaf-editor-core+project-history] Mark TC list backing array as private
* [overleaf-editor-core] Add invariant for overlapping comment ranges
* [overleaf-editor-core] Assert that ranges are non-empty
GitOrigin-RevId: e60a3712eba2326e0767a75a3ffc75333311c057
* make range class immutable
* rename variable
* use newRanges
* range readonly props
* skrinkBy test
* Fix range shrinking bug
* [overleaf-core-editor] Make comment properties immutable
* remove added line
* format fix
* make readonly array
* [overleaf-editor-core] AddCommentOperation and DeleteCommentOperation (#16871)
* [overleaf-editor-core] AddCommentOperation and DeleteCommentOperation
* added add comment op test
* delete comment op test
* import core to escape circle deps
* desctructure in tests
* require directly in builder
* invert of add comment is always delete comment
* no merging on compose
* NoOp if comment is not found
* use comment.clone()
* update test
* change CommentRawData type
* jsdoc assert type
* fix formating
* EditNoOperation
* return other in compose
* use ReturnType
* Revert "use ReturnType"
This reverts commit 2c7e04f1541310e9fc08963170a783a437ed1992.
* transorm add comment operation
* transform delete comment operation
* moved comment.js
* format fix
* fix transform addComment and textoperation
* fix merge
* test more complex test operations
* change to else if
* move range.js
* fix types
* fix AddComment and TextOperation transform
* fixed AddComment-TextOperation trasform, added test
* deletecommentoperation should win
* should not delete comment
* remove unused function, fix type
* fix format
* add resolved for existing comment
* transform EditNoOperation
* fix test description
* change the order of EditNoOperation
* fix DeleteCommentOperation-DeleteCommentOperation transform
* fix types after merging main
* refactor operation types
* fix errors after merging
* fix bad merge
* format fix
* removed comment.clone()
* return old comment
* remove unused var
GitOrigin-RevId: e31d723075cb04b0b7177e7cae0014c295f92a68
* [overleaf-editor-core] AddCommentOperation and DeleteCommentOperation
* added add comment op test
* delete comment op test
* import core to escape circle deps
* desctructure in tests
* require directly in builder
* invert of add comment is always delete comment
* no merging on compose
* NoOp if comment is not found
* use comment.clone()
* update test
* change CommentRawData type
* jsdoc assert type
* fix formating
* EditNoOperation
* return other in compose
* use ReturnType
* Revert "use ReturnType"
This reverts commit 2c7e04f1541310e9fc08963170a783a437ed1992.
* transorm add comment operation
* transform delete comment operation
* moved comment.js
* format fix
* fix transform addComment and textoperation
* fix merge
* test more complex test operations
* change to else if
* move range.js
* fix types
* fix AddComment and TextOperation transform
* fixed AddComment-TextOperation trasform, added test
* deletecommentoperation should win
* should not delete comment
* remove unused function, fix type
* fix format
* add resolved for existing comment
* transform EditNoOperation
* fix test description
* change the order of EditNoOperation
* fix DeleteCommentOperation-DeleteCommentOperation transform
* fix types after merging main
* refactor operation types
GitOrigin-RevId: 6f127763a6dc50d4fe3524d9b25dc7526b6b0028
* make range class immutable
* rename variable
* use newRanges
* range readonly props
* skrinkBy test
* Fix range shrinking bug
GitOrigin-RevId: ea9a568b28f53e74dec4c500be3d5dba65abf0ad