@y/y 14.0.0-rc.12 → 14.0.0-rc.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -2
- package/dist/src/utils/ids.d.ts +1 -1
- package/dist/src/utils/ids.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/utils/ids.js +18 -7
package/README.md
CHANGED
|
@@ -400,12 +400,16 @@ There are several Yjs-compatible ports to other programming languages.
|
|
|
400
400
|
* [y-crdt](https://github.com/y-crdt/y-crdt) - Rust implementation with multiple
|
|
401
401
|
language bindings to other languages
|
|
402
402
|
* [yrs](https://github.com/y-crdt/y-crdt/tree/main/yrs) - Rust interface
|
|
403
|
-
* [
|
|
403
|
+
* [pycrdt](https://github.com/y-crdt/pycrdt) - Python binding
|
|
404
404
|
* [yrb](https://github.com/y-crdt/yrb) - Ruby binding
|
|
405
|
+
* [yr](https://github.com/y-crdt/yr) - R binding
|
|
406
|
+
* [ydotnet](https://github.com/y-crdt/ydotnet) - .NET/C# binding
|
|
405
407
|
* [yswift](https://github.com/y-crdt/yswift) - Swift binding
|
|
408
|
+
* [ykt](https://github.com/y-crdt/ykt) - Kotlin binding
|
|
406
409
|
* [yffi](https://github.com/y-crdt/y-crdt/tree/main/yffi) - C-FFI
|
|
407
410
|
* [ywasm](https://github.com/y-crdt/y-crdt/tree/main/ywasm) - WASM binding
|
|
408
|
-
* [y_ex](https://github.com/satoren/y_ex) - Elixir
|
|
411
|
+
* [y_ex](https://github.com/satoren/y_ex) - Elixir binding
|
|
412
|
+
* [ypy](https://github.com/y-crdt/ypy) - Python binding (deprecated, use pycrdt)
|
|
409
413
|
* [ycs](https://github.com/yjs/ycs) - .Net compatible C# implementation.
|
|
410
414
|
|
|
411
415
|
## Getting Started
|
package/dist/src/utils/ids.d.ts
CHANGED
|
@@ -59,7 +59,7 @@ export class IdRanges {
|
|
|
59
59
|
sorted: boolean;
|
|
60
60
|
/**
|
|
61
61
|
* A typical use-case for IdSet is to append data. We heavily optimize this case by allowing the
|
|
62
|
-
* last item to be mutated
|
|
62
|
+
* last item to be mutated if it isn't used currently.
|
|
63
63
|
* This flag is true if the last item was exposed to the outside.
|
|
64
64
|
*/
|
|
65
65
|
_lastIsUsed: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/utils/ids.js"],"names":[],"mappings":"AAaA;;GAEG;AAEH;;GAEG;AAEH;IACE;;;OAGG;IACH,mBAHW,MAAM,OACN,MAAM,EAWhB;IARC;;OAEG;IACH,OAFU,MAAM,CAEE;IAClB;;OAEG;IACH,KAFU,MAAM,CAEF;IAGhB;;;OAGG;IACH,gBAHW,MAAM,OACN,MAAM,WAIhB;IAED;;;;OAIG;IACH,aAFY,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAIvC;CACF;AAED;IACE;;;;OAIG;IACH,mBAJW,MAAM,OACN,MAAM,UACN,OAAO,EAejB;IAZC;;OAEG;IACH,OAFU,MAAM,CAEE;IAClB;;OAEG;IACH,KAFU,MAAM,CAEF;IACd;;OAEG;IACH,QAFU,OAAO,CAEG;CAEvB;AAQM,0CALI,MAAM,OACN,MAAM,UACN,OAAO,GACN,YAAY,CAEsE;AAE9F;IACE;;OAEG;IACH,iBAFW,KAAK,CAAC,OAAO,CAAC,EAcxB;IAXC,gBAAmB;IACnB;;;;OAIG;IACH,qBAAwB;IACxB;;OAEG;IACH,aAAe;IAGjB,
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/utils/ids.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@y/y",
|
|
3
|
-
"version": "14.0.0-rc.
|
|
3
|
+
"version": "14.0.0-rc.14",
|
|
4
4
|
"description": "Shared Editing Library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
},
|
|
72
72
|
"homepage": "https://docs.yjs.dev",
|
|
73
73
|
"dependencies": {
|
|
74
|
-
"lib0": "^1.0.0-rc.
|
|
74
|
+
"lib0": "^1.0.0-rc.13"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
77
|
"@types/node": "^22.14.1",
|
package/src/utils/ids.js
CHANGED
|
@@ -91,7 +91,7 @@ export class IdRanges {
|
|
|
91
91
|
this.sorted = false
|
|
92
92
|
/**
|
|
93
93
|
* A typical use-case for IdSet is to append data. We heavily optimize this case by allowing the
|
|
94
|
-
* last item to be mutated
|
|
94
|
+
* last item to be mutated if it isn't used currently.
|
|
95
95
|
* This flag is true if the last item was exposed to the outside.
|
|
96
96
|
*/
|
|
97
97
|
this._lastIsUsed = false
|
|
@@ -102,7 +102,10 @@ export class IdRanges {
|
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
copy () {
|
|
105
|
-
|
|
105
|
+
const cpy = new IdRanges(this._ids.slice())
|
|
106
|
+
cpy.sorted = this.sorted
|
|
107
|
+
this._lastIsUsed = true
|
|
108
|
+
return cpy
|
|
106
109
|
}
|
|
107
110
|
|
|
108
111
|
/**
|
|
@@ -378,9 +381,13 @@ export const iterateStructsByIdSetWithoutSplits = (store, ds, f) =>
|
|
|
378
381
|
const ranges = idRanges.getIds()
|
|
379
382
|
const structs = /** @type {Array<GC|Item>} */ (store.clients.get(clientid))
|
|
380
383
|
if (structs != null) {
|
|
384
|
+
const lastStruct = structs[structs.length - 1]
|
|
385
|
+
const nextClock = lastStruct.id.clock + lastStruct.length
|
|
381
386
|
for (let i = 0; i < ranges.length; i++) {
|
|
382
387
|
const del = ranges[i]
|
|
383
|
-
|
|
388
|
+
if (del.clock < nextClock) {
|
|
389
|
+
iterateStructsWithoutSplits(structs, del.clock, del.len, f)
|
|
390
|
+
}
|
|
384
391
|
}
|
|
385
392
|
}
|
|
386
393
|
})
|
|
@@ -478,9 +485,9 @@ const _insertIntoIdSet = (dest, src) => {
|
|
|
478
485
|
array.appendTo(targetRanges.getIds(), srcRanges.getIds())
|
|
479
486
|
targetRanges.sorted = false
|
|
480
487
|
} else {
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
dest.clients.set(client, /** @type {any} */ (
|
|
488
|
+
// order first
|
|
489
|
+
srcRanges.getIds()
|
|
490
|
+
dest.clients.set(client, /** @type {any} */ (srcRanges.copy()))
|
|
484
491
|
}
|
|
485
492
|
})
|
|
486
493
|
}
|
|
@@ -933,7 +940,9 @@ export class AttrRanges {
|
|
|
933
940
|
}
|
|
934
941
|
|
|
935
942
|
copy () {
|
|
936
|
-
|
|
943
|
+
const cpy = new AttrRanges(this._ids.slice())
|
|
944
|
+
cpy.sorted = this.sorted
|
|
945
|
+
return cpy
|
|
937
946
|
}
|
|
938
947
|
|
|
939
948
|
/**
|
|
@@ -1431,6 +1440,8 @@ export const createIdMap = () => new IdMap()
|
|
|
1431
1440
|
* Remove all ranges from `exclude` from `ds`. The result is a fresh IdMap containing all ranges from `idSet` that are not
|
|
1432
1441
|
* in `exclude`.
|
|
1433
1442
|
*
|
|
1443
|
+
* @todo this should be called "excludeIdMap"
|
|
1444
|
+
*
|
|
1434
1445
|
* @template {IdMap<any>} ISet
|
|
1435
1446
|
* @param {ISet} set
|
|
1436
1447
|
* @param {IdSet | IdMap<any>} exclude
|