Compare commits

...

9 Commits

Author SHA1 Message Date
NicoR
a272c67a1d [TEST] Add RNQuickCrypto provider to chat-rn-expo example 2025-07-01 12:04:20 -03:00
NicoR
e16e4d53d1 Keep file extension in relative import 2025-06-30 16:52:09 -03:00
NicoR
283d7c6bf0 fix: RNQuickCrypto type error 2025-06-30 15:13:10 -03:00
Guido D'Orsi
0e7a7dbbc0 Merge pull request #2591 from garden-co/fix/ci-e2e-exit-code
fix(ci): listen to e2e-rn-test's exit code
2025-06-30 17:53:34 +02:00
Matteo Manchi
63c69b6b95 fix(ci): listen to e2e-rn-test's exit code 2025-06-30 17:41:57 +02:00
Guido D'Orsi
fd02627069 Merge pull request #2583 from garden-co/changeset-release/main
Version Packages
2025-06-27 18:14:31 +02:00
github-actions[bot]
827adc991d Version Packages 2025-06-27 16:01:01 +00:00
Guido D'Orsi
651b69e5af Merge pull request #2582 from garden-co/fix/circular-deps-sync
fix: fix sync with circular deps
2025-06-27 17:57:32 +02:00
Guido D'Orsi
277e4d49e8 fix: fix sync with circular deps 2025-06-27 17:52:02 +02:00
35 changed files with 191 additions and 29 deletions

View File

@@ -61,7 +61,7 @@ jobs:
disable-animations: true
working-directory: ./examples/chat-rn-expo/
# killall due to this issue: https://github.com/ReactiveCircus/android-emulator-runner/issues/385
script: ./test/e2e/run.sh && killall -INT crashpad_handler || true
script: ./test/e2e/run.sh && ( killall -INT crashpad_handler || true )
- name: Copy Maestro Output
if: steps.e2e_test.outcome != 'success'

View File

@@ -3,6 +3,7 @@
"main": "index.ts",
"scripts": {
"build": "expo prebuild",
"check": "tsc --noEmit",
"start": "expo start",
"android": "expo run:android",
"ios": "expo run:ios",

View File

@@ -2,6 +2,7 @@ import { JazzExpoProvider } from "jazz-tools/expo";
import React, { StrictMode } from "react";
import { apiKey } from "./apiKey";
import ChatScreen from "./chat";
import { RNQuickCrypto } from "jazz-tools/expo/crypto";
export default function App() {
return (
@@ -10,6 +11,7 @@ export default function App() {
sync={{
peer: `wss://cloud.jazz.tools/?key=${apiKey}`,
}}
CryptoProvider={RNQuickCrypto}
>
<ChatScreen />
</JazzExpoProvider>

View File

@@ -1,5 +1,11 @@
# passkey-svelte
## 0.0.93
### Patch Changes
- jazz-tools@0.15.4
## 0.0.92
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "chat-svelte",
"version": "0.0.92",
"version": "0.0.93",
"type": "module",
"private": true,
"scripts": {

View File

@@ -1,5 +1,13 @@
# cojson-storage-indexeddb
## 0.15.4
### Patch Changes
- Updated dependencies [277e4d4]
- cojson@0.15.4
- cojson-storage@0.15.4
## 0.15.3
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "cojson-storage-indexeddb",
"version": "0.15.3",
"version": "0.15.4",
"main": "dist/index.js",
"type": "module",
"types": "dist/index.d.ts",

View File

@@ -1,5 +1,13 @@
# cojson-storage-sqlite
## 0.15.4
### Patch Changes
- Updated dependencies [277e4d4]
- cojson@0.15.4
- cojson-storage@0.15.4
## 0.15.3
### Patch Changes

View File

@@ -1,13 +1,13 @@
{
"name": "cojson-storage-sqlite",
"type": "module",
"version": "0.15.3",
"version": "0.15.4",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"license": "MIT",
"dependencies": {
"better-sqlite3": "^11.7.0",
"cojson": "workspace:0.15.3",
"cojson": "workspace:0.15.4",
"cojson-storage": "workspace:*"
},
"devDependencies": {

View File

@@ -1,5 +1,12 @@
# cojson-storage
## 0.15.4
### Patch Changes
- Updated dependencies [277e4d4]
- cojson@0.15.4
## 0.15.3
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "cojson-storage",
"version": "0.15.3",
"version": "0.15.4",
"main": "dist/index.js",
"type": "module",
"types": "dist/index.d.ts",

View File

@@ -1,5 +1,12 @@
# cojson-transport-nodejs-ws
## 0.15.4
### Patch Changes
- Updated dependencies [277e4d4]
- cojson@0.15.4
## 0.15.3
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "cojson-transport-ws",
"type": "module",
"version": "0.15.3",
"version": "0.15.4",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"license": "MIT",

View File

@@ -1,5 +1,11 @@
# cojson
## 0.15.4
### Patch Changes
- 277e4d4: Fix sync with circular deps
## 0.15.3
## 0.15.2

View File

@@ -25,7 +25,7 @@
},
"type": "module",
"license": "MIT",
"version": "0.15.3",
"version": "0.15.4",
"devDependencies": {
"@opentelemetry/sdk-metrics": "^2.0.0",
"typescript": "catalog:"

View File

@@ -207,7 +207,17 @@ export class SyncManager {
}
}
sendNewContentIncludingDependencies(id: RawCoID, peer: PeerState) {
sendNewContentIncludingDependencies(
id: RawCoID,
peer: PeerState,
seen: Set<RawCoID> = new Set(),
) {
if (seen.has(id)) {
return;
}
seen.add(id);
const coValue = this.local.getCoValue(id);
if (!coValue.isAvailable()) {
@@ -215,7 +225,7 @@ export class SyncManager {
}
for (const dependency of coValue.getDependedOnCoValues()) {
this.sendNewContentIncludingDependencies(dependency, peer);
this.sendNewContentIncludingDependencies(dependency, peer, seen);
}
const newContentPieces = coValue.verified.newContentSince(
@@ -494,7 +504,7 @@ export class SyncManager {
)) {
const dependencyCoValue = this.local.getCoValue(dependency);
if (!dependencyCoValue.isAvailable()) {
if (!dependencyCoValue.verified) {
coValue.markMissingDependency(dependency);
if (!dependencyCoValue.verified) {

View File

@@ -826,4 +826,46 @@ describe("loading coValues from server", () => {
]
`);
});
test("coValue with circular deps loading", async () => {
const client = setupTestNode({
connected: true,
});
const group = client.node.createGroup();
const parentGroup = client.node.createGroup();
parentGroup.addMember("everyone", "reader");
group.extend(parentGroup);
// Disable the circular dependency check in the extend function
vi.spyOn(parentGroup, "isSelfExtension").mockImplementation(() => false);
parentGroup.extend(group);
const map = group.createMap();
map.set("hello", "world");
await map.core.waitForSync();
expect(
SyncMessagesLog.getMessages({
ParentGroup: parentGroup.core,
Group: group.core,
Map: map.core,
}),
).toMatchInlineSnapshot(`
[
"client -> server | CONTENT ParentGroup header: true new: After: 0 New: 8",
"server -> client | LOAD Group sessions: empty",
"client -> server | CONTENT Group header: true new: After: 0 New: 6",
"server -> client | KNOWN ParentGroup sessions: empty",
"client -> server | CONTENT Group header: true new: After: 0 New: 6",
"server -> client | KNOWN Group sessions: header/6",
"client -> server | CONTENT Map header: true new: After: 0 New: 1",
"server -> client | KNOWN Group sessions: header/6",
"server -> client | KNOWN Map sessions: header/1",
]
`);
});
});

View File

@@ -1,5 +1,14 @@
# jazz-auth-betterauth
## 0.15.4
### Patch Changes
- Updated dependencies [277e4d4]
- cojson@0.15.4
- jazz-tools@0.15.4
- jazz-betterauth-client-plugin@0.15.4
## 0.15.3
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-auth-betterauth",
"version": "0.15.3",
"version": "0.15.4",
"type": "module",
"main": "dist/index.js",
"types": "src/index.ts",

View File

@@ -1,5 +1,11 @@
# jazz-betterauth-client-plugin
## 0.15.4
### Patch Changes
- jazz-betterauth-server-plugin@0.15.4
## 0.15.3
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-betterauth-client-plugin",
"version": "0.15.3",
"version": "0.15.4",
"type": "module",
"main": "dist/index.js",
"types": "src/index.ts",

View File

@@ -1,5 +1,13 @@
# jazz-betterauth-server-plugin
## 0.15.4
### Patch Changes
- Updated dependencies [277e4d4]
- cojson@0.15.4
- jazz-tools@0.15.4
## 0.15.3
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-betterauth-server-plugin",
"version": "0.15.3",
"version": "0.15.4",
"type": "module",
"main": "dist/index.js",
"types": "src/index.ts",

View File

@@ -1,5 +1,15 @@
# jazz-react-auth-betterauth
## 0.15.4
### Patch Changes
- Updated dependencies [277e4d4]
- cojson@0.15.4
- jazz-auth-betterauth@0.15.4
- jazz-tools@0.15.4
- jazz-betterauth-client-plugin@0.15.4
## 0.15.3
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-react-auth-betterauth",
"version": "0.15.3",
"version": "0.15.4",
"type": "module",
"main": "dist/index.js",
"types": "src/index.tsx",

View File

@@ -1,5 +1,15 @@
# jazz-run
## 0.15.4
### Patch Changes
- Updated dependencies [277e4d4]
- cojson@0.15.4
- cojson-storage-sqlite@0.15.4
- cojson-transport-ws@0.15.4
- jazz-tools@0.15.4
## 0.15.3
### Patch Changes

View File

@@ -3,7 +3,7 @@
"bin": "./dist/index.js",
"type": "module",
"license": "MIT",
"version": "0.15.3",
"version": "0.15.4",
"exports": {
"./startSyncServer": {
"import": "./dist/startSyncServer.js",
@@ -28,11 +28,11 @@
"@effect/printer-ansi": "^0.34.5",
"@effect/schema": "^0.71.1",
"@effect/typeclass": "^0.25.5",
"cojson": "workspace:0.15.3",
"cojson-storage-sqlite": "workspace:0.15.3",
"cojson-transport-ws": "workspace:0.15.3",
"cojson": "workspace:0.15.4",
"cojson-storage-sqlite": "workspace:0.15.4",
"cojson-transport-ws": "workspace:0.15.4",
"effect": "^3.6.5",
"jazz-tools": "workspace:0.15.3",
"jazz-tools": "workspace:0.15.4",
"ws": "^8.14.2"
},
"devDependencies": {

View File

@@ -1,5 +1,15 @@
# jazz-tools
## 0.15.4
### Patch Changes
- Updated dependencies [277e4d4]
- cojson@0.15.4
- cojson-storage@0.15.4
- cojson-storage-indexeddb@0.15.4
- cojson-transport-ws@0.15.4
## 0.15.3
### Patch Changes

View File

@@ -139,7 +139,7 @@
},
"type": "module",
"license": "MIT",
"version": "0.15.3",
"version": "0.15.4",
"dependencies": {
"@manuscripts/prosemirror-recreate-steps": "^0.1.4",
"@op-engineering/op-sqlite": "^11.4.8",

View File

@@ -27,7 +27,7 @@ import { SQLiteReactNative } from "./storage/sqlite-react-native.js";
import { SQLiteDatabaseDriverAsync } from "cojson-storage";
import { WebSocketPeerWithReconnection } from "cojson-transport-ws";
import type { RNQuickCrypto } from "./crypto/RNQuickCrypto.js";
import type { RNQuickCrypto } from "jazz-tools/react-native-core/crypto";
export type BaseReactNativeContextOptions = {
sync: SyncConfig;

10
pnpm-lock.yaml generated
View File

@@ -1623,7 +1623,7 @@ importers:
specifier: ^11.7.0
version: 11.10.0
cojson:
specifier: workspace:0.15.3
specifier: workspace:0.15.4
version: link:../cojson
cojson-storage:
specifier: workspace:*
@@ -1800,19 +1800,19 @@ importers:
specifier: ^0.25.5
version: 0.25.8(effect@3.11.9)
cojson:
specifier: workspace:0.15.3
specifier: workspace:0.15.4
version: link:../cojson
cojson-storage-sqlite:
specifier: workspace:0.15.3
specifier: workspace:0.15.4
version: link:../cojson-storage-sqlite
cojson-transport-ws:
specifier: workspace:0.15.3
specifier: workspace:0.15.4
version: link:../cojson-transport-ws
effect:
specifier: ^3.6.5
version: 3.11.9
jazz-tools:
specifier: workspace:0.15.3
specifier: workspace:0.15.4
version: link:../jazz-tools
ws:
specifier: ^8.14.2

View File

@@ -1,5 +1,11 @@
# jazz-react-tailwind-starter
## 0.0.124
### Patch Changes
- jazz-tools@0.15.4
## 0.0.123
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "jazz-react-passkey-auth-starter",
"private": true,
"version": "0.0.123",
"version": "0.0.124",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,11 @@
# svelte-passkey-auth
## 0.0.98
### Patch Changes
- jazz-tools@0.15.4
## 0.0.97
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "svelte-passkey-auth",
"version": "0.0.97",
"version": "0.0.98",
"type": "module",
"private": true,
"scripts": {