Compare commits

...

5 Commits

Author SHA1 Message Date
Guido D'Orsi
f71f26d1dc Merge pull request #1303 from garden-co/changeset-release/main
Version Packages
2025-01-29 19:43:35 +01:00
github-actions[bot]
95822300d7 Version Packages 2025-01-29 18:39:50 +00:00
Guido D'Orsi
679fe040cf Merge pull request #1302 from garden-co/handler-websocket-errors
fix: handle websocket errors and add onSuccess callback
2025-01-29 19:38:38 +01:00
Guido D'Orsi
14b6149f50 fix: handle websocket errors and add onSuccess callback 2025-01-29 18:58:56 +01:00
Guido D'Orsi
4446738940 chore: disable formatter on package.json 2025-01-29 18:57:48 +01:00
73 changed files with 607 additions and 68 deletions

View File

@@ -42,6 +42,15 @@
}
},
"overrides": [
{
"include": ["**/package.json"],
"linter": {
"enabled": false
},
"formatter": {
"enabled": false
}
},
{
"include": ["packages/**/src/**"],
"linter": {

View File

@@ -1,5 +1,12 @@
# chat-rn-clerk
## 1.0.63
### Patch Changes
- jazz-react-native@0.9.22
- jazz-react-native-auth-clerk@0.9.22
## 1.0.62
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "chat-rn-clerk",
"main": "index.js",
"version": "1.0.62",
"version": "1.0.63",
"scripts": {
"build": "expo export -p ios",
"start": "expo start",

View File

@@ -1,5 +1,11 @@
# chat-rn
## 1.0.60
### Patch Changes
- jazz-react-native@0.9.22
## 1.0.59
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "chat-rn",
"version": "1.0.59",
"version": "1.0.60",
"main": "index.js",
"scripts": {
"build": "expo export -p ios",

View File

@@ -1,5 +1,12 @@
# chat-vue
## 0.0.47
### Patch Changes
- jazz-browser@0.9.22
- jazz-vue@0.9.22
## 0.0.46
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "chat-vue",
"version": "0.0.46",
"version": "0.0.47",
"private": true,
"type": "module",
"scripts": {

View File

@@ -1,5 +1,12 @@
# jazz-example-chat
## 0.0.143
### Patch Changes
- jazz-browser-media-images@0.9.22
- jazz-react@0.9.22
## 0.0.142
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "jazz-example-chat",
"private": true,
"version": "0.0.142",
"version": "0.0.143",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,12 @@
# minimal-auth-clerk
## 0.0.42
### Patch Changes
- jazz-react@0.9.22
- jazz-react-auth-clerk@0.9.22
## 0.0.41
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "clerk",
"private": true,
"version": "0.0.41",
"version": "0.0.42",
"type": "module",
"scripts": {
"dev": "vite",
@@ -13,7 +13,7 @@
"dependencies": {
"@clerk/clerk-react": "^5.4.1",
"jazz-react": "workspace:*",
"jazz-react-auth-clerk": "workspace:0.9.21",
"jazz-react-auth-clerk": "workspace:0.9.22",
"jazz-tools": "workspace:*",
"react": "^18.3.1",
"react-dom": "^18.3.1"

View File

@@ -1,5 +1,11 @@
# file-share-svelte
## 0.0.27
### Patch Changes
- jazz-svelte@0.9.22
## 0.0.26
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "file-share-svelte",
"version": "0.0.26",
"version": "0.0.27",
"private": true,
"type": "module",
"scripts": {

View File

@@ -1,5 +1,12 @@
# form
## 0.0.38
### Patch Changes
- jazz-browser-media-images@0.9.22
- jazz-react@0.9.22
## 0.0.37
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "form",
"private": true,
"version": "0.0.37",
"version": "0.0.38",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,12 @@
# image-upload
## 0.0.40
### Patch Changes
- jazz-browser-media-images@0.9.22
- jazz-react@0.9.22
## 0.0.39
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "image-upload",
"private": true,
"version": "0.0.39",
"version": "0.0.40",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,12 @@
# jazz-example-inspector
## 0.0.101
### Patch Changes
- Updated dependencies [14b6149]
- cojson-transport-ws@0.9.22
## 0.0.100
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "jazz-inspector-app",
"private": true,
"version": "0.0.100",
"version": "0.0.101",
"type": "module",
"scripts": {
"dev": "vite",
@@ -17,7 +17,7 @@
"class-variance-authority": "^0.7.0",
"clsx": "^2.0.0",
"cojson": "workspace:0.9.19",
"cojson-transport-ws": "workspace:0.9.19",
"cojson-transport-ws": "workspace:0.9.22",
"hash-slash": "workspace:0.2.1",
"lucide-react": "^0.274.0",
"qrcode": "^1.5.3",

View File

@@ -1,5 +1,11 @@
# jazz-example-musicplayer
## 0.0.64
### Patch Changes
- jazz-react@0.9.22
## 0.0.63
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "jazz-example-music-player",
"private": true,
"version": "0.0.63",
"version": "0.0.64",
"type": "module",
"scripts": {
"dev": "vite",
@@ -18,7 +18,7 @@
"@radix-ui/react-toast": "^1.1.4",
"class-variance-authority": "^0.7.0",
"clsx": "^2.0.0",
"jazz-react": "workspace:0.9.21",
"jazz-react": "workspace:0.9.22",
"jazz-tools": "workspace:0.9.21",
"jazz-inspector": "workspace:*",
"lucide-react": "^0.274.0",

View File

@@ -1,5 +1,12 @@
# jazz-example-onboarding
## 0.0.44
### Patch Changes
- jazz-browser-media-images@0.9.22
- jazz-react@0.9.22
## 0.0.43
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "jazz-example-onboarding",
"private": true,
"version": "0.0.43",
"version": "0.0.44",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,11 @@
# organization
## 0.0.36
### Patch Changes
- jazz-react@0.9.22
## 0.0.35
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "organization",
"private": true,
"version": "0.0.35",
"version": "0.0.36",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,11 @@
# passkey-svelte
## 0.0.31
### Patch Changes
- jazz-svelte@0.9.22
## 0.0.30
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "passkey-svelte",
"version": "0.0.30",
"version": "0.0.31",
"type": "module",
"private": true,
"scripts": {

View File

@@ -1,5 +1,11 @@
# minimal-auth-passkey
## 0.0.41
### Patch Changes
- jazz-react@0.9.22
## 0.0.40
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "passkey",
"private": true,
"version": "0.0.40",
"version": "0.0.41",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,11 @@
# jazz-password-manager
## 0.0.62
### Patch Changes
- jazz-react@0.9.22
## 0.0.61
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "jazz-password-manager",
"private": true,
"version": "0.0.61",
"version": "0.0.62",
"type": "module",
"scripts": {
"dev": "vite",
@@ -12,7 +12,7 @@
"clean-install": "rm -rf node_modules pnpm-lock.yaml && pnpm install"
},
"dependencies": {
"jazz-react": "workspace:0.9.21",
"jazz-react": "workspace:0.9.22",
"jazz-tools": "workspace:0.9.21",
"react": "^18.3.1",
"react-dom": "^18.3.1",

View File

@@ -1,5 +1,12 @@
# jazz-example-pets
## 0.0.160
### Patch Changes
- jazz-browser-media-images@0.9.22
- jazz-react@0.9.22
## 0.0.159
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "jazz-example-pets",
"private": true,
"version": "0.0.159",
"version": "0.0.160",
"type": "module",
"scripts": {
"dev": "vite",
@@ -19,8 +19,8 @@
"@radix-ui/react-toast": "^1.1.4",
"class-variance-authority": "^0.7.0",
"clsx": "^2.0.0",
"jazz-browser-media-images": "workspace:0.9.21",
"jazz-react": "workspace:0.9.21",
"jazz-browser-media-images": "workspace:0.9.22",
"jazz-react": "workspace:0.9.22",
"jazz-tools": "workspace:0.9.21",
"lucide-react": "^0.274.0",
"qrcode": "^1.5.3",
@@ -41,7 +41,7 @@
"@vitejs/plugin-react-swc": "^3.3.2",
"autoprefixer": "^10.4.20",
"is-ci": "^3.0.1",
"jazz-run": "workspace:0.9.21",
"jazz-run": "workspace:0.9.22",
"postcss": "^8.4.27",
"tailwindcss": "^3.4.15",
"typescript": "~5.6.2",

View File

@@ -1,5 +1,12 @@
# reactions
## 0.0.40
### Patch Changes
- jazz-browser-media-images@0.9.22
- jazz-react@0.9.22
## 0.0.39
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "reactions",
"private": true,
"version": "0.0.39",
"version": "0.0.40",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,12 @@
# todo-vue
## 0.0.45
### Patch Changes
- jazz-browser@0.9.22
- jazz-vue@0.9.22
## 0.0.44
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "todo-vue",
"version": "0.0.44",
"version": "0.0.45",
"private": true,
"type": "module",
"scripts": {

View File

@@ -1,5 +1,11 @@
# jazz-example-todo
## 0.0.159
### Patch Changes
- jazz-react@0.9.22
## 0.0.158
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "jazz-example-todo",
"private": true,
"version": "0.0.158",
"version": "0.0.159",
"type": "module",
"scripts": {
"dev": "vite",
@@ -16,7 +16,7 @@
"@radix-ui/react-toast": "^1.1.4",
"class-variance-authority": "^0.7.0",
"clsx": "^2.0.0",
"jazz-react": "workspace:0.9.21",
"jazz-react": "workspace:0.9.22",
"jazz-tools": "workspace:0.9.21",
"lucide-react": "^0.274.0",
"qrcode": "^1.5.3",

View File

@@ -1,5 +1,11 @@
# version-history
## 0.0.37
### Patch Changes
- jazz-react@0.9.22
## 0.0.36
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "version-history",
"private": true,
"version": "0.0.36",
"version": "0.0.37",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,11 @@
# cojson-transport-nodejs-ws
## 0.9.22
### Patch Changes
- 14b6149: Handle websocket errors and add an onSuccess callback
## 0.9.19
### Patch Changes

View File

@@ -1,12 +1,12 @@
{
"name": "cojson-transport-ws",
"type": "module",
"version": "0.9.19",
"version": "0.9.22",
"main": "dist/index.js",
"types": "src/index.ts",
"license": "MIT",
"dependencies": {
"cojson": "workspace:0.9.19",
"cojson": "workspace:*",
"typescript": "~5.6.2"
},
"scripts": {
@@ -19,6 +19,7 @@
"prepublishOnly": "npm run build"
},
"devDependencies": {
"@types/ws": "8.5.10"
"@types/ws": "8.5.10",
"ws": "^8.14.2"
}
}

View File

@@ -21,6 +21,7 @@ export type CreateWebSocketPeerOpts = {
batchingByDefault?: boolean;
deletePeerStateOnClose?: boolean;
onClose?: () => void;
onSuccess?: () => void;
};
function createPingTimeoutListener(enabled: boolean, callback: () => void) {
@@ -127,6 +128,7 @@ export function createWebSocketPeer({
expectPings = true,
batchingByDefault = true,
deletePeerStateOnClose = false,
onSuccess,
onClose,
}: CreateWebSocketPeerOpts): Peer {
const incoming = new cojsonInternals.Channel<
@@ -142,6 +144,13 @@ export function createWebSocketPeer({
}
websocket.addEventListener("close", handleClose);
websocket.addEventListener("error" as any, (err) => {
logger.warn(err.message);
if (err.message.includes("ECONNREFUSED")) {
websocket.close();
}
});
const pingTimeout = createPingTimeoutListener(expectPings, () => {
incoming
@@ -154,6 +163,7 @@ export function createWebSocketPeer({
websocket,
batchingByDefault,
);
let isFirstMessage = true;
function handleIncomingMsg(event: { data: unknown }) {
if (event.data === "") {
@@ -169,6 +179,13 @@ export function createWebSocketPeer({
return;
}
if (isFirstMessage) {
// The only way to know that the connection has been correctly established with our sync server
// is to track that we got a message from the server.
onSuccess?.();
isFirstMessage = false;
}
const { messages } = result;
if (messages.length > 1) {

View File

@@ -170,6 +170,31 @@ describe("createWebSocketPeer", () => {
);
});
test("should call onSuccess handler after receiving first message", () => {
const onSuccess = vi.fn();
const { listeners } = setup({ onSuccess });
const messageHandler = listeners.get("message");
const message: SyncMessage = {
action: "known",
id: "co_ztest",
header: false,
sessions: {},
};
// First message should trigger onSuccess
messageHandler?.(
new MessageEvent("message", { data: JSON.stringify(message) }),
);
expect(onSuccess).toHaveBeenCalledTimes(1);
// Subsequent messages should not trigger onSuccess again
messageHandler?.(
new MessageEvent("message", { data: JSON.stringify(message) }),
);
expect(onSuccess).toHaveBeenCalledTimes(1);
});
describe("batchingByDefault = true", () => {
test("should batch outgoing messages", async () => {
const { peer, mockWebSocket } = setup();

View File

@@ -0,0 +1,132 @@
import { ControlledAgent, LocalNode, WasmCrypto } from "cojson";
import { afterEach, beforeEach, describe, expect, test } from "vitest";
import { WebSocket } from "ws";
import { createWebSocketPeer } from "../index";
import { startSyncServer } from "./syncServer";
describe("WebSocket Peer Integration", () => {
let server: any;
let syncServerUrl: string;
let crypto: WasmCrypto;
beforeEach(async () => {
crypto = await WasmCrypto.create();
const result = await startSyncServer();
server = result;
syncServerUrl = result.syncServer;
});
afterEach(() => {
server.close();
});
test("should establish connection between client and server nodes", async () => {
// Create client node
const clientAgent = crypto.newRandomAgentSecret();
const clientNode = new LocalNode(
new ControlledAgent(clientAgent, crypto),
crypto.newRandomSessionID(crypto.getAgentID(clientAgent)),
crypto,
);
// Create WebSocket connection
const ws = new WebSocket(syncServerUrl);
// Track connection success
let connectionEstablished = false;
// Create peer and add to client node
const peer = createWebSocketPeer({
id: "test-client",
websocket: ws,
role: "server",
onSuccess: () => {
connectionEstablished = true;
},
});
clientNode.syncManager.addPeer(peer);
// Wait for connection to establish
await new Promise<void>((resolve) => {
const checkConnection = setInterval(() => {
if (connectionEstablished) {
clearInterval(checkConnection);
resolve();
}
}, 100);
});
expect(connectionEstablished).toBe(true);
expect(clientNode.syncManager.getPeers()).toHaveLength(1);
});
test("should sync data between nodes through WebSocket connection", async () => {
const clientAgent = crypto.newRandomAgentSecret();
const clientNode = new LocalNode(
new ControlledAgent(clientAgent, crypto),
crypto.newRandomSessionID(crypto.getAgentID(clientAgent)),
crypto,
);
const ws = new WebSocket(syncServerUrl);
const peer = createWebSocketPeer({
id: "test-client",
websocket: ws,
role: "server",
});
clientNode.syncManager.addPeer(peer);
// Create a test group
const group = clientNode.createGroup();
const map = group.createMap();
map.set("testKey", "testValue", "trusting");
// Wait for sync
await map.core.waitForSync();
console.log("synced");
// Verify data reached the server
const serverNode = server.localNode;
const serverMap = await serverNode.load(map.id);
expect(serverMap.get("testKey")).toBe("testValue");
});
test("should handle disconnection and cleanup", async () => {
const clientAgent = crypto.newRandomAgentSecret();
const clientNode = new LocalNode(
new ControlledAgent(clientAgent, crypto),
crypto.newRandomSessionID(crypto.getAgentID(clientAgent)),
crypto,
);
const ws = new WebSocket(syncServerUrl);
let disconnectCalled = false;
const peer = createWebSocketPeer({
id: "test-client",
websocket: ws,
role: "server",
onClose: () => {
disconnectCalled = true;
},
});
clientNode.syncManager.addPeer(peer);
// Wait for connection to establish
await new Promise((resolve) => setTimeout(resolve, 200));
// Close the server
server.close();
// Wait for disconnect handling
await new Promise((resolve) => setTimeout(resolve, 200));
expect(disconnectCalled).toBe(true);
expect(ws.readyState).toBe(WebSocket.CLOSED);
});
});

View File

@@ -0,0 +1,89 @@
import { createServer } from "http";
import { ControlledAgent, LocalNode, WasmCrypto } from "cojson";
import { WebSocket, WebSocketServer } from "ws";
import { createWebSocketPeer } from "../index";
export const startSyncServer = async (port?: number) => {
const crypto = await WasmCrypto.create();
const server = createServer((req, res) => {
if (req.url === "/health") {
res.writeHead(200);
res.end("ok");
}
});
const wss = new WebSocketServer({ noServer: true });
const agentSecret = crypto.newRandomAgentSecret();
const agentID = crypto.getAgentID(agentSecret);
const localNode = new LocalNode(
new ControlledAgent(agentSecret, crypto),
crypto.newRandomSessionID(agentID),
crypto,
);
const connections = new Set<WebSocket>();
wss.on("connection", function connection(ws, req) {
connections.add(ws);
const sendPing = () => {
ws.send(
JSON.stringify({
type: "ping",
time: Date.now(),
dc: "unknown",
}),
);
};
// ping/pong for the connection liveness
const pinging = setInterval(sendPing, 100);
sendPing(); // Immediately send a ping to the client to signal that the connection is established
ws.on("close", () => {
clearInterval(pinging);
connections.delete(ws);
});
const clientId = new Date().toISOString();
localNode.syncManager.addPeer(
createWebSocketPeer({
id: clientId,
role: "client",
websocket: ws,
expectPings: false,
batchingByDefault: false,
deletePeerStateOnClose: true,
}),
);
ws.on("error", (e) => console.error(`Error on connection ${clientId}:`, e));
});
server.on("upgrade", function upgrade(req, socket, head) {
if (req.url !== "/health") {
wss.handleUpgrade(req, socket, head, function done(ws) {
wss.emit("connection", ws, req);
});
}
});
server.listen(port ?? 0);
port = (server.address() as { port: number }).port;
const syncServer = `ws://localhost:${port}`;
return {
close: () => {
connections.forEach((ws) => ws.close());
server.close();
},
syncServer,
port,
localNode,
};
};

View File

@@ -1,5 +1,11 @@
# jazz-browser-media-images
## 0.9.22
### Patch Changes
- jazz-browser@0.9.22
## 0.9.21
### Patch Changes

View File

@@ -1,13 +1,13 @@
{
"name": "jazz-browser-auth-clerk",
"version": "0.9.21",
"version": "0.9.22",
"type": "module",
"main": "dist/index.js",
"types": "src/index.ts",
"license": "MIT",
"dependencies": {
"cojson": "workspace:0.9.19",
"jazz-browser": "workspace:0.9.21",
"jazz-browser": "workspace:0.9.22",
"jazz-tools": "workspace:0.9.21"
},
"scripts": {

View File

@@ -1,5 +1,11 @@
# jazz-browser-media-images
## 0.9.22
### Patch Changes
- jazz-browser@0.9.22
## 0.9.21
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-browser-media-images",
"version": "0.9.21",
"version": "0.9.22",
"type": "module",
"main": "dist/index.js",
"types": "src/index.ts",
@@ -8,7 +8,7 @@
"dependencies": {
"@types/image-blob-reduce": "^4.1.1",
"image-blob-reduce": "^4.1.0",
"jazz-browser": "workspace:0.9.21",
"jazz-browser": "workspace:0.9.22",
"jazz-tools": "workspace:0.9.21",
"pica": "^9.0.1",
"typescript": "~5.6.2"

View File

@@ -1,5 +1,12 @@
# jazz-browser
## 0.9.22
### Patch Changes
- Updated dependencies [14b6149]
- cojson-transport-ws@0.9.22
## 0.9.21
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-browser",
"version": "0.9.21",
"version": "0.9.22",
"type": "module",
"main": "dist/index.js",
"types": "src/index.ts",
@@ -9,7 +9,7 @@
"@scure/bip39": "^1.3.0",
"cojson": "workspace:0.9.19",
"cojson-storage-indexeddb": "workspace:0.9.19",
"cojson-transport-ws": "workspace:0.9.19",
"cojson-transport-ws": "workspace:0.9.22",
"jazz-tools": "workspace:0.9.21",
"typescript": "~5.6.2"
},

View File

@@ -1,5 +1,12 @@
# jazz-autosub
## 0.9.22
### Patch Changes
- Updated dependencies [14b6149]
- cojson-transport-ws@0.9.22
## 0.9.21
### Patch Changes

View File

@@ -5,10 +5,10 @@
"types": "src/index.ts",
"type": "module",
"license": "MIT",
"version": "0.9.21",
"version": "0.9.22",
"dependencies": {
"cojson": "workspace:0.9.19",
"cojson-transport-ws": "workspace:0.9.19",
"cojson-transport-ws": "workspace:0.9.22",
"jazz-tools": "workspace:0.9.21",
"ws": "^8.14.2"
},

View File

@@ -131,4 +131,53 @@ describe("startWorker integration", () => {
await worker1.done();
await worker2.done();
});
test("worker reconnects when sync server is closed and reopened", async () => {
const worker1 = await setup();
const worker2 = await setupWorker(worker1.syncServer);
const group = Group.create({ owner: worker1.worker });
group.addMember("everyone", "reader");
const map = TestMap.create(
{
value: "initial value",
},
{ owner: group },
);
await map.waitForSync();
// Close the sync server
worker1.server.close();
// Create a new value while server is down
const map2 = TestMap.create(
{
value: "created while offline",
},
{ owner: group },
);
// Start a new sync server on the same port
const newServer = await startSyncServer({
port: worker1.port,
inMemory: true,
db: "",
});
// Wait for reconnection and sync
await map2.waitForSync();
// Verify both old and new values are synced
const mapOnWorker2 = await TestMap.load(map.id, worker2.worker, {});
const map2OnWorker2 = await TestMap.load(map2.id, worker2.worker, {});
expect(mapOnWorker2?.value).toBe("initial value");
expect(map2OnWorker2?.value).toBe("created while offline");
// Cleanup
await worker2.done();
newServer.close();
});
});

View File

@@ -1,5 +1,12 @@
# jazz-browser-media-images
## 0.9.22
### Patch Changes
- jazz-browser-auth-clerk@0.9.22
- jazz-react@0.9.22
## 0.9.21
### Patch Changes

View File

@@ -1,14 +1,14 @@
{
"name": "jazz-react-auth-clerk",
"version": "0.9.21",
"version": "0.9.22",
"type": "module",
"main": "dist/index.js",
"types": "src/index.tsx",
"license": "MIT",
"dependencies": {
"cojson": "workspace:0.9.19",
"jazz-browser-auth-clerk": "workspace:0.9.21",
"jazz-react": "workspace:0.9.21",
"jazz-browser-auth-clerk": "workspace:0.9.22",
"jazz-react": "workspace:0.9.22",
"jazz-tools": "workspace:0.9.21"
},
"peerDependencies": {

View File

@@ -1,5 +1,11 @@
# jazz-react-native-auth-clerk
## 0.9.22
### Patch Changes
- jazz-react-native@0.9.22
## 0.9.21
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-react-native-auth-clerk",
"version": "0.9.21",
"version": "0.9.22",
"type": "module",
"main": "dist/index.js",
"types": "src/index.ts",

View File

@@ -1,5 +1,12 @@
# jazz-browser
## 0.9.22
### Patch Changes
- Updated dependencies [14b6149]
- cojson-transport-ws@0.9.22
## 0.9.21
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-react-native",
"version": "0.9.21",
"version": "0.9.22",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",

View File

@@ -1,5 +1,11 @@
# jazz-react
## 0.9.22
### Patch Changes
- jazz-browser@0.9.22
## 0.9.21
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-react",
"version": "0.9.21",
"version": "0.9.22",
"type": "module",
"main": "dist/index.js",
"types": "src/index.ts",
@@ -18,7 +18,7 @@
"dependencies": {
"@scure/bip39": "^1.3.0",
"cojson": "workspace:0.9.19",
"jazz-browser": "workspace:0.9.21",
"jazz-browser": "workspace:0.9.22",
"jazz-tools": "workspace:0.9.21",
"jazz-react-core": "workspace:*"
},

View File

@@ -1,5 +1,12 @@
# jazz-run
## 0.9.22
### Patch Changes
- Updated dependencies [14b6149]
- cojson-transport-ws@0.9.22
## 0.9.21
### Patch Changes

View File

@@ -3,7 +3,7 @@
"bin": "./dist/index.js",
"type": "module",
"license": "MIT",
"version": "0.9.21",
"version": "0.9.22",
"exports": {
"./startSyncServer": {
"import": "./dist/startSyncServer.js",
@@ -30,7 +30,7 @@
"@effect/typeclass": "^0.25.5",
"cojson": "workspace:0.9.19",
"cojson-storage-sqlite": "workspace:0.9.19",
"cojson-transport-ws": "workspace:0.9.19",
"cojson-transport-ws": "workspace:0.9.22",
"effect": "^3.6.5",
"jazz-tools": "workspace:0.9.21",
"ws": "^8.14.2"

View File

@@ -1,5 +1,11 @@
# jazz-svelte
## 0.9.22
### Patch Changes
- jazz-browser@0.9.22
## 0.9.21
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-svelte",
"version": "0.9.21",
"version": "0.9.22",
"scripts": {
"dev": "vite dev",
"build": "vite build && npm run package",

View File

@@ -1,5 +1,11 @@
# jazz-react
## 0.9.22
### Patch Changes
- jazz-browser@0.9.22
## 0.9.21
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-vue",
"version": "0.9.21",
"version": "0.9.22",
"type": "module",
"main": "dist/index.js",
"types": "src/index.ts",

37
pnpm-lock.yaml generated
View File

@@ -453,7 +453,7 @@ importers:
specifier: workspace:*
version: link:../../packages/jazz-react
jazz-react-auth-clerk:
specifier: workspace:0.9.21
specifier: workspace:0.9.22
version: link:../../packages/jazz-react-auth-clerk
jazz-tools:
specifier: workspace:*
@@ -685,7 +685,7 @@ importers:
specifier: workspace:0.9.19
version: link:../../packages/cojson
cojson-transport-ws:
specifier: workspace:0.9.19
specifier: workspace:0.9.22
version: link:../../packages/cojson-transport-ws
hash-slash:
specifier: workspace:0.2.1
@@ -770,7 +770,7 @@ importers:
specifier: workspace:*
version: link:../../packages/jazz-inspector
jazz-react:
specifier: workspace:0.9.21
specifier: workspace:0.9.22
version: link:../../packages/jazz-react
jazz-tools:
specifier: workspace:0.9.21
@@ -1027,7 +1027,7 @@ importers:
examples/password-manager:
dependencies:
jazz-react:
specifier: workspace:0.9.21
specifier: workspace:0.9.22
version: link:../../packages/jazz-react
jazz-tools:
specifier: workspace:0.9.21
@@ -1091,10 +1091,10 @@ importers:
specifier: ^2.0.0
version: 2.1.1
jazz-browser-media-images:
specifier: workspace:0.9.21
specifier: workspace:0.9.22
version: link:../../packages/jazz-browser-media-images
jazz-react:
specifier: workspace:0.9.21
specifier: workspace:0.9.22
version: link:../../packages/jazz-react
jazz-tools:
specifier: workspace:0.9.21
@@ -1152,7 +1152,7 @@ importers:
specifier: ^3.0.1
version: 3.0.1
jazz-run:
specifier: workspace:0.9.21
specifier: workspace:0.9.22
version: link:../../packages/jazz-run
postcss:
specifier: ^8.4.27
@@ -1231,7 +1231,7 @@ importers:
specifier: ^2.0.0
version: 2.1.1
jazz-react:
specifier: workspace:0.9.21
specifier: workspace:0.9.22
version: link:../../packages/jazz-react
jazz-tools:
specifier: workspace:0.9.21
@@ -1518,7 +1518,7 @@ importers:
packages/cojson-transport-ws:
dependencies:
cojson:
specifier: workspace:0.9.19
specifier: workspace:*
version: link:../cojson
typescript:
specifier: ~5.6.2
@@ -1527,6 +1527,9 @@ importers:
'@types/ws':
specifier: 8.5.10
version: 8.5.10
ws:
specifier: ^8.14.2
version: 8.18.0
packages/create-jazz-app:
dependencies:
@@ -1586,7 +1589,7 @@ importers:
specifier: workspace:0.9.19
version: link:../cojson-storage-indexeddb
cojson-transport-ws:
specifier: workspace:0.9.19
specifier: workspace:0.9.22
version: link:../cojson-transport-ws
jazz-tools:
specifier: workspace:0.9.21
@@ -1601,7 +1604,7 @@ importers:
specifier: workspace:0.9.19
version: link:../cojson
jazz-browser:
specifier: workspace:0.9.21
specifier: workspace:0.9.22
version: link:../jazz-browser
jazz-tools:
specifier: workspace:0.9.21
@@ -1620,7 +1623,7 @@ importers:
specifier: ^4.1.0
version: 4.1.0
jazz-browser:
specifier: workspace:0.9.21
specifier: workspace:0.9.22
version: link:../jazz-browser
jazz-tools:
specifier: workspace:0.9.21
@@ -1676,7 +1679,7 @@ importers:
specifier: workspace:0.9.19
version: link:../cojson
cojson-transport-ws:
specifier: workspace:0.9.19
specifier: workspace:0.9.22
version: link:../cojson-transport-ws
jazz-tools:
specifier: workspace:0.9.21
@@ -1704,7 +1707,7 @@ importers:
specifier: workspace:0.9.19
version: link:../cojson
jazz-browser:
specifier: workspace:0.9.21
specifier: workspace:0.9.22
version: link:../jazz-browser
jazz-react-core:
specifier: workspace:*
@@ -1741,10 +1744,10 @@ importers:
specifier: workspace:0.9.19
version: link:../cojson
jazz-browser-auth-clerk:
specifier: workspace:0.9.21
specifier: workspace:0.9.22
version: link:../jazz-browser-auth-clerk
jazz-react:
specifier: workspace:0.9.21
specifier: workspace:0.9.22
version: link:../jazz-react
jazz-tools:
specifier: workspace:0.9.21
@@ -1890,7 +1893,7 @@ importers:
specifier: workspace:0.9.19
version: link:../cojson-storage-sqlite
cojson-transport-ws:
specifier: workspace:0.9.19
specifier: workspace:0.9.22
version: link:../cojson-transport-ws
effect:
specifier: ^3.6.5

View File

@@ -1,5 +1,11 @@
# jazz-tailwind-demo-auth-starter
## 0.0.37
### Patch Changes
- jazz-react@0.9.22
## 0.0.36
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "jazz-tailwind-demo-auth-starter",
"private": true,
"version": "0.0.36",
"version": "0.0.37",
"type": "module",
"scripts": {
"dev": "vite",