diff --git a/INTERNALS.md b/INTERNALS.md index 8ec81c07..79bd7f29 100644 --- a/INTERNALS.md +++ b/INTERNALS.md @@ -60,7 +60,7 @@ characters have either been deleted or all characters are not deleted. The item will be split if the run is interrupted for any reason (eg a character in the middle of the run is deleted). -When an item is created, it stores a reference to the IDs of the preceeding and +When an item is created, it stores a reference to the IDs of the preceding and succeeding item. These are stored in the item's `origin` and `originRight` fields, respectively. These are used when peers concurrently insert at the same location in a document. Though quite rare in practice, Yjs needs to make sure diff --git a/README.md b/README.md index 5803373f..20cab46d 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ Showcase](https://yjs-diagram.synergy.codes/). * [Synthesia](https://www.synthesia.io) - Collaborative Video Editor * [thinkdeli](https://thinkdeli.com) - A fast and simple notes app powered by AI * [ourboard](https://github.com/raimohanska/ourboard) - A collaborative whiteboard - applicaiton + application * [Ellie.ai](https://ellie.ai) - Data Product Design and Collaboration * [GoPeer](https://gopeer.org/) - Collaborative tutoring * [screen.garden](https://screen.garden) - Collaborative backend for PKM apps. @@ -189,7 +189,7 @@ backends to y-websocket.
y-webrtc
Propagates document updates peer-to-peer using WebRTC. The peers exchange -signaling data over signaling servers. Publically available signaling servers +signaling data over signaling servers. Publicly available signaling servers are available. Communication over the signaling servers can be encrypted by providing a shared secret, keeping the connection information and the shared document private. @@ -1097,7 +1097,7 @@ encoding format for document updates. If you prefer JSON encoding, you can simply JSON.stringify / JSON.parse the relative position instead.
Y.decodeRelativePosition(Uint8Array):RelativePosition -
Decode a binary-encoded relative position to a RelativePositon object.
+
Decode a binary-encoded relative position to a RelativePosition object.
### Y.UndoManager @@ -1277,11 +1277,11 @@ More information about the specific implementation is available in CRDTs that are suitable for shared text editing suffer from the fact that they only grow in size. There are CRDTs that do not grow in size, but they do not -have the characteristics that are benificial for shared text editing (like +have the characteristics that are beneficial for shared text editing (like intention preservation). Yjs implements many improvements to the original algorithm that diminish the trade-off that the document only grows in size. We can't garbage collect deleted structs (tombstones) while ensuring a unique -order of the structs. But we can 1. merge preceeding structs into a single +order of the structs. But we can 1. merge preceding structs into a single struct to reduce the amount of meta information, 2. we can delete content from the struct if it is deleted, and 3. we can garbage collect tombstones if we don't care about the order of the structs anymore (e.g. if the parent was diff --git a/src/structs/AbstractStruct.js b/src/structs/AbstractStruct.js index ad000053..52773eb7 100644 --- a/src/structs/AbstractStruct.js +++ b/src/structs/AbstractStruct.js @@ -26,7 +26,7 @@ export class AbstractStruct { * This method is already assuming that `this.id.clock + this.length === this.id.clock`. * Also this method does *not* remove right from StructStore! * @param {AbstractStruct} right - * @return {boolean} wether this merged with right + * @return {boolean} whether this merged with right */ mergeWith (right) { return false diff --git a/src/types/AbstractType.js b/src/types/AbstractType.js index 24fa8802..019369ec 100644 --- a/src/types/AbstractType.js +++ b/src/types/AbstractType.js @@ -155,11 +155,11 @@ export const findMarker = (yarray, index) => { // } // } // if (marker) { - // if (window.lengthes == null) { - // window.lengthes = [] - // window.getLengthes = () => window.lengthes.sort((a, b) => a - b) + // if (window.lengths == null) { + // window.lengths = [] + // window.getLengths = () => window.lengths.sort((a, b) => a - b) // } - // window.lengthes.push(marker.index - pindex) + // window.lengths.push(marker.index - pindex) // console.log('distance', marker.index - pindex, 'len', p && p.parent.length) // } if (marker !== null && math.abs(marker.index - pindex) < /** @type {YText|YArray} */ (p.parent).length / maxSearchMarker) { @@ -751,7 +751,7 @@ export const typeListInsertGenerics = (transaction, parent, index, content) => { /** * Pushing content is special as we generally want to push after the last item. So we don't have to update - * the serach marker. + * the search marker. * * @param {Transaction} transaction * @param {AbstractType} parent diff --git a/src/types/YText.js b/src/types/YText.js index d4c59f03..a196ecd0 100644 --- a/src/types/YText.js +++ b/src/types/YText.js @@ -478,7 +478,7 @@ export const cleanupYTextFormatting = type => { } /** - * This will be called by the transction once the event handlers are called to potentially cleanup + * This will be called by the transaction once the event handlers are called to potentially cleanup * formatting attributes. * * @param {Transaction} transaction @@ -568,7 +568,7 @@ const deleteText = (transaction, currPos, length) => { /** * The Quill Delta format represents changes on a text document with - * formatting information. For mor information visit {@link https://quilljs.com/docs/delta/|Quill Delta} + * formatting information. For more information visit {@link https://quilljs.com/docs/delta/|Quill Delta} * * @example * { diff --git a/src/types/YXmlEvent.js b/src/types/YXmlEvent.js index 022b72d5..f18a06e8 100644 --- a/src/types/YXmlEvent.js +++ b/src/types/YXmlEvent.js @@ -12,7 +12,7 @@ export class YXmlEvent extends YEvent { * @param {YXmlElement|YXmlText|YXmlFragment} target The target on which the event is created. * @param {Set} subs The set of changed attributes. `null` is included if the * child list changed. - * @param {Transaction} transaction The transaction instance with wich the + * @param {Transaction} transaction The transaction instance with which the * change was created. */ constructor (target, subs, transaction) { diff --git a/src/utils/Doc.js b/src/utils/Doc.js index d5165426..317f8c21 100644 --- a/src/utils/Doc.js +++ b/src/utils/Doc.js @@ -106,7 +106,7 @@ export class Doc extends ObservableV2 { this.isSynced = false this.isDestroyed = false /** - * Promise that resolves once the document has been loaded from a presistence provider. + * Promise that resolves once the document has been loaded from a persistence provider. */ this.whenLoaded = promise.create(resolve => { this.on('load', () => { diff --git a/src/utils/PermanentUserData.js b/src/utils/PermanentUserData.js index 80b71259..a5d990b9 100644 --- a/src/utils/PermanentUserData.js +++ b/src/utils/PermanentUserData.js @@ -62,7 +62,7 @@ export class PermanentUserData { initUser(storeType.get(userDescription), userDescription) ) }) - // add intial data + // add initial data storeType.forEach(initUser) } diff --git a/src/utils/RelativePosition.js b/src/utils/RelativePosition.js index cba65996..4f6ced71 100644 --- a/src/utils/RelativePosition.js +++ b/src/utils/RelativePosition.js @@ -66,7 +66,7 @@ export class RelativePosition { * after the meant position. * I.e. position 1 in 'ab' is associated to character 'b'. * - * If assoc < 0, then the relative position is associated to the caharacter + * If assoc < 0, then the relative position is associated to the character * before the meant position. * * @type {number} diff --git a/src/utils/StructStore.js b/src/utils/StructStore.js index 55a85178..692743d7 100644 --- a/src/utils/StructStore.js +++ b/src/utils/StructStore.js @@ -66,13 +66,13 @@ export const getState = (store, client) => { * @private * @function */ -export const integretyCheck = store => { +export const integrityCheck = store => { store.clients.forEach(structs => { for (let i = 1; i < structs.length; i++) { const l = structs[i - 1] const r = structs[i] if (l.id.clock + l.length !== r.id.clock) { - throw new Error('StructStore failed integrety check') + throw new Error('StructStore failed integrity check') } } }) diff --git a/src/utils/UpdateEncoder.js b/src/utils/UpdateEncoder.js index 8cf30381..2b742bee 100644 --- a/src/utils/UpdateEncoder.js +++ b/src/utils/UpdateEncoder.js @@ -167,7 +167,7 @@ export class UpdateEncoderV2 extends DSEncoderV2 { */ this.keyMap = new Map() /** - * Refers to the next uniqe key-identifier to me used. + * Refers to the next unique key-identifier to me used. * See writeKey method for more information. * * @type {number} diff --git a/src/utils/encoding.js b/src/utils/encoding.js index 08a9602d..b195ccc3 100644 --- a/src/utils/encoding.js +++ b/src/utils/encoding.js @@ -211,7 +211,7 @@ export const readClientsStructRefs = (decoder, doc) => { * then we start emptying the stack. * * It is not possible to have circles: i.e. struct1 (from client1) depends on struct2 (from client2) - * depends on struct3 (from client1). Therefore the max stack size is eqaul to `structReaders.length`. + * depends on struct3 (from client1). Therefore the max stack size is equal to `structReaders.length`. * * This method is implemented in a way so that we can resume computation if this update * causally depends on another update. @@ -279,14 +279,14 @@ const integrateStructs = (transaction, store, clientsStructRefs) => { const addStackToRestSS = () => { for (const item of stack) { const client = item.id.client - const unapplicableItems = clientsStructRefs.get(client) - if (unapplicableItems) { + const inapplicableItems = clientsStructRefs.get(client) + if (inapplicableItems) { // decrement because we weren't able to apply previous operation - unapplicableItems.i-- - restStructs.clients.set(client, unapplicableItems.refs.slice(unapplicableItems.i)) + inapplicableItems.i-- + restStructs.clients.set(client, inapplicableItems.refs.slice(inapplicableItems.i)) clientsStructRefs.delete(client) - unapplicableItems.i = 0 - unapplicableItems.refs = [] + inapplicableItems.i = 0 + inapplicableItems.refs = [] } else { // item was the last item on clientsStructRefs and the field was already cleared. Add item to restStructs and continue restStructs.clients.set(client, [item]) diff --git a/tests/compatibility.tests.js b/tests/compatibility.tests.js index fc71364c..0b8e1100 100644 --- a/tests/compatibility.tests.js +++ b/tests/compatibility.tests.js @@ -1,5 +1,5 @@ /** - * Testing if encoding/decoding compatibility and integration compatiblity is given. + * Testing if encoding/decoding compatibility and integration compatibility is given. * We expect that the document always looks the same, even if we upgrade the integration algorithm, or add additional encoding approaches. * * The v1 documents were generated with Yjs v13.2.0 based on the randomisized tests. diff --git a/tests/snapshot.tests.js b/tests/snapshot.tests.js index 4f3ecd47..01c956f4 100644 --- a/tests/snapshot.tests.js +++ b/tests/snapshot.tests.js @@ -58,7 +58,7 @@ export const testEmptyRestoreSnapshot = _tc => { t.compare(docRestored.getArray().toArray(), []) t.compare(doc.getArray().toArray(), ['world']) - // now this snapshot reflects the latest state. It shoult still work. + // now this snapshot reflects the latest state. It should still work. const snap2 = Y.snapshot(doc) const docRestored2 = Y.createDocFromSnapshot(doc, snap2) t.compare(docRestored2.getArray().toArray(), ['world']) diff --git a/tests/y-map.tests.js b/tests/y-map.tests.js index 70b3e3b1..080b7140 100644 --- a/tests/y-map.tests.js +++ b/tests/y-map.tests.js @@ -369,11 +369,11 @@ export const testObserversUsingObservedeep = tc => { /** * @type {Array>} */ - const pathes = [] + const paths = [] let calls = 0 map0.observeDeep(events => { events.forEach(event => { - pathes.push(event.path) + paths.push(event.path) }) calls++ }) @@ -381,7 +381,7 @@ export const testObserversUsingObservedeep = tc => { map0.get('map').set('array', new Y.Array()) map0.get('map').get('array').insert(0, ['content']) t.assert(calls === 3) - t.compare(pathes, [[], ['map'], ['map', 'array']]) + t.compare(paths, [[], ['map'], ['map', 'array']]) compare(users) } @@ -393,14 +393,14 @@ export const testPathsOfSiblingEvents = tc => { /** * @type {Array>} */ - const pathes = [] + const paths = [] let calls = 0 const doc = users[0] map0.set('map', new Y.Map()) map0.get('map').set('text1', new Y.Text('initial')) map0.observeDeep(events => { events.forEach(event => { - pathes.push(event.path) + paths.push(event.path) }) calls++ }) @@ -409,7 +409,7 @@ export const testPathsOfSiblingEvents = tc => { map0.get('map').set('text2', new Y.Text('new')) }) t.assert(calls === 1) - t.compare(pathes, [['map'], ['map', 'text1']]) + t.compare(paths, [['map'], ['map', 'text1']]) compare(users) } diff --git a/tests/y-text.tests.js b/tests/y-text.tests.js index 34ae7e9e..4b9c6d2e 100644 --- a/tests/y-text.tests.js +++ b/tests/y-text.tests.js @@ -376,7 +376,7 @@ export const testDeltaBug = _tc => { }, { insert: '\n', - // This attibutes has only list and no table-cell-line + // This attributes has only list and no table-cell-line attributes: { list: { rowspan: '1',