[web] avoid accessing the sharejs snapshot directly (#25037)

* [web] avoid accessing the sharejs snapshot directly

* [web] limit API interface for sharejs types

GitOrigin-RevId: faece372128e4580376e32fa93aa8fedf1e02957
This commit is contained in:
Jakob Ackermann
2025-04-24 08:05:15 +00:00
committed by Copybot
parent 7f086b21c8
commit fe1129c2cf
4 changed files with 8 additions and 10 deletions
@@ -580,7 +580,7 @@ export const EditorManagerProvider: FC = ({ children }) => {
editorContent =
typeof editorContent === 'string'
? editorContent
: document.doc?._doc.snapshot
: document.getSnapshot()
// Tear down the ShareJsDoc.
if (document.doc) document.doc.clearInflightAndPendingOps()
@@ -60,7 +60,7 @@ export const ReferencesProvider: FC = ({ children }) => {
// avoid reindexing references if the bib file has not changed since the
// last time they were indexed
const docId = doc.doc_id
const snapshot = doc._doc.snapshot
const snapshot = doc.getSnapshot()
const now = Date.now()
const sha1 = generateSHA1Hash(
'blob ' + snapshot.length + '\x00' + snapshot
@@ -142,11 +142,8 @@ export class ShareJsDoc extends EventEmitter {
private removeCarriageReturnCharFromShareJsDoc() {
const doc = this._doc
if (doc.snapshot.indexOf('\r') === -1) {
return
}
let nextPos
while ((nextPos = doc.snapshot.indexOf('\r')) !== -1) {
while ((nextPos = doc.getText().indexOf('\r')) !== -1) {
debugConsole.log('[ShareJsDoc] remove-carriage-return-char', nextPos)
doc.del(nextPos, 1)
}
@@ -259,7 +256,7 @@ export class ShareJsDoc extends EventEmitter {
}
getSnapshot() {
return this._doc.snapshot as string | undefined
return this._doc.getText() as string
}
getVersion() {