From a2edb02d0242fd6ba67e56d256db16b786d91aac Mon Sep 17 00:00:00 2001 From: lody Date: Mon, 29 Dec 2025 11:13:31 +0000 Subject: [PATCH] feat(adaptors): upgrade flock to 4.1.0 and use inclusiveVersion for sync check - Update @loro-dev/flock peerDependency to ^4.1.0 in loro-adaptors - Update @loro-dev/flock devDependency to ^4.1.0 in loro-websocket - Use flock.version() for encoding (sending to server) - Use flock.inclusiveVersion() for waitForReachingServerVersion check The inclusiveVersion() includes all peers ever seen, making it correct for checking if we have received all data from the server, while version() only includes peers with current entries, which is correct for incremental sync. Co-authored-by: lody --- packages/loro-adaptors/package.json | 2 +- packages/loro-adaptors/src/flock-adaptor.ts | 4 +- packages/loro-websocket/package.json | 2 +- pnpm-lock.yaml | 148 ++++++++++---------- 4 files changed, 78 insertions(+), 78 deletions(-) diff --git a/packages/loro-adaptors/package.json b/packages/loro-adaptors/package.json index 5a31b91..c1808c5 100644 --- a/packages/loro-adaptors/package.json +++ b/packages/loro-adaptors/package.json @@ -15,7 +15,7 @@ "loro-protocol": "workspace:*" }, "peerDependencies": { - "@loro-dev/flock": "^4.0.0", + "@loro-dev/flock": "^4.1.0", "loro-crdt": "^1.9.0", "yjs": "*" }, diff --git a/packages/loro-adaptors/src/flock-adaptor.ts b/packages/loro-adaptors/src/flock-adaptor.ts index 57243ae..976502e 100644 --- a/packages/loro-adaptors/src/flock-adaptor.ts +++ b/packages/loro-adaptors/src/flock-adaptor.ts @@ -155,7 +155,7 @@ export class FlockAdaptor implements CrdtDocAdaptor { try { const serverVersion = decodeVersionVector(res.version); this.initServerVersion = serverVersion; - const comparison = compareVersions(this.flock.version(), serverVersion); + const comparison = compareVersions(this.flock.inclusiveVersion(), serverVersion); if (comparison != null && comparison >= 0) { this.markReachedServerVersion(); } @@ -195,7 +195,7 @@ export class FlockAdaptor implements CrdtDocAdaptor { this.lastExportVersion = (this.flock.version()); if (this.initServerVersion && !this.hasReachedServerVersion) { const comparison = compareVersions( - this.flock.version(), + this.flock.inclusiveVersion(), this.initServerVersion ); if (comparison != null && comparison >= 0) { diff --git a/packages/loro-websocket/package.json b/packages/loro-websocket/package.json index 48c486a..d5ace1c 100644 --- a/packages/loro-websocket/package.json +++ b/packages/loro-websocket/package.json @@ -72,7 +72,7 @@ "ws": "^8.18.3" }, "devDependencies": { - "@loro-dev/flock": "^4.0.0", + "@loro-dev/flock": "^4.1.0", "get-port": "^7.1.0", "tsdown": "^0.14.1", "tsx": "^4.20.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d32c91e..03c47c5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,8 +30,8 @@ importers: packages/loro-adaptors: dependencies: '@loro-dev/flock': - specifier: ^4.0.0 - version: 4.0.0 + specifier: ^4.1.0 + version: 4.1.0 loro-crdt: specifier: ^1.9.0 version: 1.9.0 @@ -86,8 +86,8 @@ importers: version: 8.18.3 devDependencies: '@loro-dev/flock': - specifier: ^4.0.0 - version: 4.0.0 + specifier: ^4.1.0 + version: 4.1.0 get-port: specifier: ^7.1.0 version: 7.1.0 @@ -443,15 +443,15 @@ packages: '@jridgewell/trace-mapping@0.3.29': resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} - '@loro-dev/flock@4.0.0': - resolution: {integrity: sha512-jWzwV/XZiNIXGkJ9oedy2On2byxf7WPMLpJ6WTpMOFXO+YAkEPHyfPNnrkz3Ek6q+s5pAz15daNX7pYEoeYkHw==} + '@loro-dev/flock@4.1.0': + resolution: {integrity: sha512-e5zL4LMC+LT1fwgqWSwbCQTXA24aGB283838D6pgMx5ugMhSZhrBL2n8lZLKHynXW24RX8MgGY849hrgJOQAfg==} engines: {node: '>=18'} '@napi-rs/wasm-runtime@1.1.0': resolution: {integrity: sha512-Fq6DJW+Bb5jaWE69/qOE0D1TUN9+6uWhCeZpdnSBk14pjLcCWR7Q8n49PTSPHazM37JqrsdpEthXy2xn6jWWiA==} - '@oxc-project/types@0.102.0': - resolution: {integrity: sha512-8Skrw405g+/UJPKWJ1twIk3BIH2nXdiVlVNtYT23AXVwpsd79es4K+KYt06Fbnkc5BaTvk/COT2JuCLYdwnCdA==} + '@oxc-project/types@0.103.0': + resolution: {integrity: sha512-bkiYX5kaXWwUessFRSoXFkGIQTmc6dLGdxuRTrC+h8PSnIdZyuXHHlLAeTmOue5Br/a0/a7dHH0Gca6eXn9MKg==} '@oxlint-tsgolint/darwin-arm64@0.0.4': resolution: {integrity: sha512-qL0zqIYdYrXl6ghTIHnhJkvyYy1eKz0P8YIEp59MjY3/zNiyk/gtyp8LkwZdqb9ezbcX9UDQhSuSO1wURJsq8g==} @@ -526,85 +526,85 @@ packages: '@quansync/fs@0.1.5': resolution: {integrity: sha512-lNS9hL2aS2NZgNW7BBj+6EBl4rOf8l+tQ0eRY6JWCI8jI2kc53gSoqbjojU0OnAWhzoXiOjFyGsHcDGePB3lhA==} - '@rolldown/binding-android-arm64@1.0.0-beta.54': - resolution: {integrity: sha512-zZRx/ur3Fai3fxiEmVp48+6GCBR48PRWJR1X3TTMn9yiq2bBHlYPgBaQtDOYWXv5H3J5dXujeTyGnuoY+kdGCg==} + '@rolldown/binding-android-arm64@1.0.0-beta.57': + resolution: {integrity: sha512-GoOVDy8bjw9z1K30Oo803nSzXJS/vWhFijFsW3kzvZCO8IZwFnNa6pGctmbbJstKl3Fv6UBwyjJQN6msejW0IQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.0-beta.54': - resolution: {integrity: sha512-zMyFEJmbIs91x22HAA/eUvmZHgjX8tGsD3TJ+WC9aY4bCdl3w84H9vMZmChSHAF1dYvGNH4KQDI2IubeZaCYtg==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.57': + resolution: {integrity: sha512-9c4FOhRGpl+PX7zBK5p17c5efpF9aSpTPgyigv57hXf5NjQUaJOOiejPLAtFiKNBIfm5Uu6yFkvLKzOafNvlTw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.54': - resolution: {integrity: sha512-Ex7QttdaVnEpmE/zroUT5Qm10e2+Vjd9q0LX9eXm59SitxDODMpC8GI1Rct5RrLf4GLU4DzdXBj6DGzuR+6g6w==} + '@rolldown/binding-darwin-x64@1.0.0-beta.57': + resolution: {integrity: sha512-6RsB8Qy4LnGqNGJJC/8uWeLWGOvbRL/KG5aJ8XXpSEupg/KQtlBEiFaYU/Ma5Usj1s+bt3ItkqZYAI50kSplBA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.54': - resolution: {integrity: sha512-E1XO10ryM/Vxw3Q1wvs9s2mSpVBfbHtzkbJcdu26qh17ZmVwNWLiIoqEcbkXm028YwkReG4Gd2gCZ3NxgTQ28Q==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.57': + resolution: {integrity: sha512-uA9kG7+MYkHTbqwv67Tx+5GV5YcKd33HCJIi0311iYBd25yuwyIqvJfBdt1VVB8tdOlyTb9cPAgfCki8nhwTQg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.54': - resolution: {integrity: sha512-oS73Uks8jczQR9pg0Bj718vap/x71exyJ5yuxu4X5V4MhwRQnky7ANSPm6ARUfraxOqt49IBfcMeGnw2rTSqdA==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.57': + resolution: {integrity: sha512-3KkS0cHsllT2T+Te+VZMKHNw6FPQihYsQh+8J4jkzwgvAQpbsbXmrqhkw3YU/QGRrD8qgcOvBr6z5y6Jid+rmw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.54': - resolution: {integrity: sha512-pY8N2X5C+/ZQcy0eRdfOzOP//OFngP1TaIqDjFwfBPws2UNavKS8SpxhPEgUaYIaT0keVBd/TB+eVy9z+CIOtw==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.57': + resolution: {integrity: sha512-A3/wu1RgsHhqP3rVH2+sM81bpk+Qd2XaHTl8LtX5/1LNR7QVBFBCpAoiXwjTdGnI5cMdBVi7Z1pi52euW760Fw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.54': - resolution: {integrity: sha512-cgTooAFm2MUmFriB7IYaWBNyqrGlRPKG+yaK2rGFl2rcdOcO24urY4p3eyB0ogqsRLvJbIxwjjYiWiIP7Eo1Cw==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.57': + resolution: {integrity: sha512-d0kIVezTQtazpyWjiJIn5to8JlwfKITDqwsFv0Xc6s31N16CD2PC/Pl2OtKgS7n8WLOJbfqgIp5ixYzTAxCqMg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.54': - resolution: {integrity: sha512-nGyLT1Qau0W+kEL44V2jhHmvfS3wyJW08E4WEu2E6NuIy+uChKN1X0aoxzFIDi2owDsYaZYez/98/f268EupIQ==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.57': + resolution: {integrity: sha512-E199LPijo98yrLjPCmETx8EF43sZf9t3guSrLee/ej1rCCc3zDVTR4xFfN9BRAapGVl7/8hYqbbiQPTkv73kUg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.54': - resolution: {integrity: sha512-KH374P0TUjDXssROT/orvzaWrzGOptD13PTrltgKwbDprJTMknoLiYsOD6Ttz92O2VuAcCtFuJ1xbyFM2Uo/Xg==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.57': + resolution: {integrity: sha512-++EQDpk/UJ33kY/BNsh7A7/P1sr/jbMuQ8cE554ZIy+tCUWCivo9zfyjDUoiMdnxqX6HLJEqqGnbGQOvzm2OMQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@rolldown/binding-openharmony-arm64@1.0.0-beta.54': - resolution: {integrity: sha512-oMAVO4wbfAbhpBxPsSp8R7ntL2DchpNfO+tGhN8/sI9jsbYwOv78uIW1fTwOBslhjTVFltGJ+l23mubNQcYNaQ==} + '@rolldown/binding-openharmony-arm64@1.0.0-beta.57': + resolution: {integrity: sha512-voDEBcNqxbUv/GeXKFtxXVWA+H45P/8Dec4Ii/SbyJyGvCqV1j+nNHfnFUIiRQ2Q40DwPe/djvgYBs9PpETiMA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.54': - resolution: {integrity: sha512-MYY/FmY+HehHiQkNx04W5oLy/Fqd1hXYqZmmorSDXvAHnxMbSgmdFicKsSYOg/sVGHBMEP1tTn6kV5sWrS45rA==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.57': + resolution: {integrity: sha512-bRhcF7NLlCnpkzLVlVhrDEd0KH22VbTPkPTbMjlYvqhSmarxNIq5vtlQS8qmV7LkPKHrNLWyJW/V/sOyFba26Q==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.54': - resolution: {integrity: sha512-66o3uKxUmcYskT9exskxs3OVduXf5x0ndlMkYOjSpBgqzhLtkub136yDvZkNT1OkNDET0odSwcU7aWdpnwzAyg==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.57': + resolution: {integrity: sha512-rnDVGRks2FQ2hgJ2g15pHtfxqkGFGjJQUDWzYznEkE8Ra2+Vag9OffxdbJMZqBWXHVM0iS4dv8qSiEn7bO+n1Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.54': - resolution: {integrity: sha512-FbbbrboChLBXfeEsOfaypBGqzbdJ/CcSA2BPLCggojnIHy58Jo+AXV7HATY8opZk7194rRbokIT8AfPJtZAWtg==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.57': + resolution: {integrity: sha512-OqIUyNid1M4xTj6VRXp/Lht/qIP8fo25QyAZlCP+p6D2ATCEhyW4ZIFLnC9zAGN/HMbXoCzvwfa8Jjg/8J4YEg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-beta.54': - resolution: {integrity: sha512-AHgcZ+w7RIRZ65ihSQL8YuoKcpD9Scew4sEeP1BBUT9QdTo6KjwHrZZXjID6nL10fhKessCH6OPany2QKwAwTQ==} + '@rolldown/pluginutils@1.0.0-beta.57': + resolution: {integrity: sha512-aQNelgx14tGA+n2tNSa9x6/jeoCL9fkDeCei7nOKnHx0fEFRRMu5ReiITo+zZD5TzWDGGRjbSYCs93IfRIyTuQ==} '@rollup/rollup-android-arm-eabi@4.46.2': resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==} @@ -1024,8 +1024,8 @@ packages: vue-tsc: optional: true - rolldown@1.0.0-beta.54: - resolution: {integrity: sha512-3lIvjCWgjPL3gmiATUdV1NeVBGJZy6FdtwgLPol25tAkn46Q/MsVGfCSNswXwFOxGrxglPaN20IeALSIFuFyEg==} + rolldown@1.0.0-beta.57: + resolution: {integrity: sha512-lMMxcNN71GMsSko8RyeTaFoATHkCh4IWU7pYF73ziMYjhHZWfVesC6GQ+iaJCvZmVjvgSks9Ks1aaqEkBd8udg==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -1456,7 +1456,7 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.4 - '@loro-dev/flock@4.0.0': {} + '@loro-dev/flock@4.1.0': {} '@napi-rs/wasm-runtime@1.1.0': dependencies: @@ -1465,7 +1465,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@oxc-project/types@0.102.0': {} + '@oxc-project/types@0.103.0': {} '@oxlint-tsgolint/darwin-arm64@0.0.4': optional: true @@ -1513,48 +1513,48 @@ snapshots: dependencies: quansync: 0.2.11 - '@rolldown/binding-android-arm64@1.0.0-beta.54': + '@rolldown/binding-android-arm64@1.0.0-beta.57': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.54': + '@rolldown/binding-darwin-arm64@1.0.0-beta.57': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.54': + '@rolldown/binding-darwin-x64@1.0.0-beta.57': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.54': + '@rolldown/binding-freebsd-x64@1.0.0-beta.57': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.54': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.57': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.54': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.57': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.54': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.57': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.54': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.57': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.54': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.57': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.54': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.57': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.54': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.57': dependencies: '@napi-rs/wasm-runtime': 1.1.0 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.54': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.57': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.54': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.57': optional: true - '@rolldown/pluginutils@1.0.0-beta.54': {} + '@rolldown/pluginutils@1.0.0-beta.57': {} '@rollup/rollup-android-arm-eabi@4.46.2': optional: true @@ -1939,7 +1939,7 @@ snapshots: resolve-pkg-maps@1.0.0: {} - rolldown-plugin-dts@0.15.6(rolldown@1.0.0-beta.54)(typescript@5.9.2): + rolldown-plugin-dts@0.15.6(rolldown@1.0.0-beta.57)(typescript@5.9.2): dependencies: '@babel/generator': 7.28.3 '@babel/parser': 7.28.3 @@ -1949,31 +1949,31 @@ snapshots: debug: 4.4.1 dts-resolver: 2.1.1 get-tsconfig: 4.10.1 - rolldown: 1.0.0-beta.54 + rolldown: 1.0.0-beta.57 optionalDependencies: typescript: 5.9.2 transitivePeerDependencies: - oxc-resolver - supports-color - rolldown@1.0.0-beta.54: + rolldown@1.0.0-beta.57: dependencies: - '@oxc-project/types': 0.102.0 - '@rolldown/pluginutils': 1.0.0-beta.54 + '@oxc-project/types': 0.103.0 + '@rolldown/pluginutils': 1.0.0-beta.57 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.54 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.54 - '@rolldown/binding-darwin-x64': 1.0.0-beta.54 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.54 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.54 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.54 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.54 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.54 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.54 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.54 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.54 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.54 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.54 + '@rolldown/binding-android-arm64': 1.0.0-beta.57 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.57 + '@rolldown/binding-darwin-x64': 1.0.0-beta.57 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.57 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.57 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.57 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.57 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.57 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.57 + '@rolldown/binding-openharmony-arm64': 1.0.0-beta.57 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.57 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.57 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.57 rollup@4.46.2: dependencies: @@ -2047,8 +2047,8 @@ snapshots: diff: 8.0.2 empathic: 2.0.0 hookable: 5.5.3 - rolldown: 1.0.0-beta.54 - rolldown-plugin-dts: 0.15.6(rolldown@1.0.0-beta.54)(typescript@5.9.2) + rolldown: 1.0.0-beta.57 + rolldown-plugin-dts: 0.15.6(rolldown@1.0.0-beta.57)(typescript@5.9.2) semver: 7.7.2 tinyexec: 1.0.1 tinyglobby: 0.2.14