From 1a81182c903b928c79718eb9d806cb8fe0a819b2 Mon Sep 17 00:00:00 2001 From: Mizan Ali Date: Wed, 7 Oct 2026 00:44:33 +0400 Subject: [PATCH] chore(deps): bump mesh-sdk to 0.28.0 --- apps/agrimesh/App.tsx | 2 +- apps/agrimesh/ios/Podfile.lock | 4 +-- apps/agrimesh/package.json | 2 +- apps/cowrite/README.md | 4 +-- apps/cowrite/ios/Podfile.lock | 4 +-- apps/cowrite/package.json | 2 +- apps/eventfloor/App.tsx | 2 +- apps/eventfloor/README.md | 2 +- apps/eventfloor/ios/Podfile.lock | 4 +-- apps/eventfloor/package.json | 2 +- apps/orderup/README.md | 2 +- apps/orderup/ios/Podfile.lock | 4 +-- apps/orderup/package.json | 2 +- apps/outagenet/README.md | 2 +- apps/outagenet/ios/Podfile.lock | 4 +-- apps/outagenet/package.json | 2 +- apps/stocksync/README.md | 2 +- apps/stocksync/ios/Podfile.lock | 4 +-- apps/stocksync/package.json | 2 +- apps/tictactogether/README.md | 2 +- apps/tictactogether/ios/Podfile.lock | 4 +-- apps/tictactogether/package.json | 2 +- apps/yardgate/README.md | 2 +- apps/yardgate/ios/Podfile.lock | 4 +-- apps/yardgate/package.json | 2 +- packages/mesh/README.md | 2 +- packages/mesh/package.json | 4 +-- pnpm-lock.yaml | 42 ++++++++++++++-------------- pnpm-workspace.yaml | 4 ++- 29 files changed, 61 insertions(+), 59 deletions(-) diff --git a/apps/agrimesh/App.tsx b/apps/agrimesh/App.tsx index 32d7dfe..c5b5b0e 100644 --- a/apps/agrimesh/App.tsx +++ b/apps/agrimesh/App.tsx @@ -49,7 +49,7 @@ function HomeLobby({ onStart }: { onStart: (setup: Setup) => void }) { AgriMesh {DEMO_FARM.name} — field readings hop across Bluetooth mesh to the farm office edge, - then sync once to a mock farm system (SDK 0.27). + then sync once to a mock farm system (SDK 0.28). diff --git a/apps/agrimesh/ios/Podfile.lock b/apps/agrimesh/ios/Podfile.lock index 4576a77..6477c07 100644 --- a/apps/agrimesh/ios/Podfile.lock +++ b/apps/agrimesh/ios/Podfile.lock @@ -3,7 +3,7 @@ PODS: - hermes-engine (250829098.0.10): - hermes-engine/Pre-built (= 250829098.0.10) - hermes-engine/Pre-built (250829098.0.10) - - MeshSdk (0.27.0): + - MeshSdk (0.28.0): - React-Core - RCTDeprecation (0.85.2) - RCTRequired (0.85.2) @@ -2303,7 +2303,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: FBLazyVector: 26fd21c75314e101f280d401e97f27d54f3f7064 hermes-engine: 3a002838bb4972a0235545718ba18f497305aa5d - MeshSdk: dc48b6c67eb632530836c964c9f2c5b1513224dd + MeshSdk: d4a40ad67dd577e5b41da02576c04f9519545545 RCTDeprecation: c7a2768f905d76ca6d2cfefb26e4349eacbdfca3 RCTRequired: 5e502c3553cfbed090a991c444448da452fb752e RCTSwiftUI: 5ce3ccbdc58b78cc4ebbaace01709ec22d58e131 diff --git a/apps/agrimesh/package.json b/apps/agrimesh/package.json index 5a6eb66..501dba8 100644 --- a/apps/agrimesh/package.json +++ b/apps/agrimesh/package.json @@ -18,7 +18,7 @@ "dependencies": { "@offline-app-examples/mesh": "workspace:*", "@offline-app-examples/ui": "workspace:*", - "@offline-protocol/mesh-sdk": "^0.27.0", + "@offline-protocol/mesh-sdk": "^0.28.0", "@react-native-async-storage/async-storage": "^2.2.0", "lucide-react-native": "^1.48.0", "nativewind": "^4.2.7", diff --git a/apps/cowrite/README.md b/apps/cowrite/README.md index be2e2bc..c44e805 100644 --- a/apps/cowrite/README.md +++ b/apps/cowrite/README.md @@ -1,6 +1,6 @@ # Cowrite -A shared document for the people in the room. Several nearby phones edit one plain-text document together, everyone sees everyone's cursor, and it all runs over Bluetooth with no internet, accounts or server. React Native app for iOS and Android, built on `@offline-protocol/mesh-sdk` 0.27 through the shared `@offline-app-examples/mesh` and `@offline-app-examples/ui` packages. +A shared document for the people in the room. Several nearby phones edit one plain-text document together, everyone sees everyone's cursor, and it all runs over Bluetooth with no internet, accounts or server. React Native app for iOS and Android, built on `@offline-protocol/mesh-sdk` 0.28 through the shared `@offline-app-examples/mesh` and `@offline-app-examples/ui` packages. ## Run @@ -46,7 +46,7 @@ The sibling apps [Stock Sync](../stocksync) and [Order Up](../orderup) sync by b - **Offline merges.** Someone who walks away and keeps typing comes back with a pile of edits made against an old version. Replaying them as messages does not produce what either person meant. - **Late joiners.** A newcomer needs the whole current document, not the stream of messages they missed, so a host has to build and send snapshots and reconcile them with edits in flight. -Solving all of that by hand is building a CRDT. The SDK already ships one, the replicated document layer (`DataStore`, see the SDK's [`docs/data.md`](https://github.com/Offline-Protocol/offline-protocol-sdk/blob/v0.27.0/docs/data.md)), so Cowrite uses it and only turns keystrokes into edits. +Solving all of that by hand is building a CRDT. The SDK already ships one, the replicated document layer (`DataStore`, see the SDK's [`docs/data.md`](https://github.com/Offline-Protocol/offline-protocol-sdk/blob/v0.28.0/docs/data.md)), so Cowrite uses it and only turns keystrokes into edits. ## How Cowrite uses DataStore diff --git a/apps/cowrite/ios/Podfile.lock b/apps/cowrite/ios/Podfile.lock index b99ff53..78042c4 100644 --- a/apps/cowrite/ios/Podfile.lock +++ b/apps/cowrite/ios/Podfile.lock @@ -3,7 +3,7 @@ PODS: - hermes-engine (250829098.0.10): - hermes-engine/Pre-built (= 250829098.0.10) - hermes-engine/Pre-built (250829098.0.10) - - MeshSdk (0.27.0): + - MeshSdk (0.28.0): - React-Core - RCTDeprecation (0.85.2) - RCTRequired (0.85.2) @@ -2278,7 +2278,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: FBLazyVector: 26fd21c75314e101f280d401e97f27d54f3f7064 hermes-engine: 25cc110921930e4293b718f2d5d325536b0ed52b - MeshSdk: dc48b6c67eb632530836c964c9f2c5b1513224dd + MeshSdk: d4a40ad67dd577e5b41da02576c04f9519545545 RCTDeprecation: c7a2768f905d76ca6d2cfefb26e4349eacbdfca3 RCTRequired: 5e502c3553cfbed090a991c444448da452fb752e RCTSwiftUI: 5ce3ccbdc58b78cc4ebbaace01709ec22d58e131 diff --git a/apps/cowrite/package.json b/apps/cowrite/package.json index c165aed..efe653d 100644 --- a/apps/cowrite/package.json +++ b/apps/cowrite/package.json @@ -18,7 +18,7 @@ "dependencies": { "@offline-app-examples/mesh": "workspace:*", "@offline-app-examples/ui": "workspace:*", - "@offline-protocol/mesh-sdk": "^0.27.0", + "@offline-protocol/mesh-sdk": "^0.28.0", "lucide-react-native": "^1.48.0", "nativewind": "^4.2.7", "react": "19.2.3", diff --git a/apps/eventfloor/App.tsx b/apps/eventfloor/App.tsx index 0b62082..a95a4ac 100644 --- a/apps/eventfloor/App.tsx +++ b/apps/eventfloor/App.tsx @@ -90,7 +90,7 @@ function HomeLobby({ Event Floor {DEMO_EVENT.name} — offline-capable staff dispatch and gate admission over Bluetooth mesh - (SDK 0.27). + (SDK 0.28). diff --git a/apps/eventfloor/README.md b/apps/eventfloor/README.md index b5bf1f3..feada8c 100644 --- a/apps/eventfloor/README.md +++ b/apps/eventfloor/README.md @@ -1,6 +1,6 @@ # Event Floor -Live-events demo app with **two flows** in one binary: **staff dispatch** when cell is saturated, and **gate admission sync** when scanners cannot reach the cloud. Everything runs over **Bluetooth mesh** (Mesh SDK 0.27) — no Wi‑Fi Direct payload, no accounts. +Live-events demo app with **two flows** in one binary: **staff dispatch** when cell is saturated, and **gate admission sync** when scanners cannot reach the cloud. Everything runs over **Bluetooth mesh** (Mesh SDK 0.28) — no Wi‑Fi Direct payload, no accounts. Built on `@offline-app-examples/mesh` (rooms, MLS group mode, mesh relay) and `@offline-app-examples/ui`. diff --git a/apps/eventfloor/ios/Podfile.lock b/apps/eventfloor/ios/Podfile.lock index 92986ba..c3db64a 100644 --- a/apps/eventfloor/ios/Podfile.lock +++ b/apps/eventfloor/ios/Podfile.lock @@ -3,7 +3,7 @@ PODS: - hermes-engine (250829098.0.10): - hermes-engine/Pre-built (= 250829098.0.10) - hermes-engine/Pre-built (250829098.0.10) - - MeshSdk (0.27.0): + - MeshSdk (0.28.0): - React-Core - RCTDeprecation (0.85.2) - RCTRequired (0.85.2) @@ -2303,7 +2303,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: FBLazyVector: 26fd21c75314e101f280d401e97f27d54f3f7064 hermes-engine: 3a002838bb4972a0235545718ba18f497305aa5d - MeshSdk: dc48b6c67eb632530836c964c9f2c5b1513224dd + MeshSdk: d4a40ad67dd577e5b41da02576c04f9519545545 RCTDeprecation: c7a2768f905d76ca6d2cfefb26e4349eacbdfca3 RCTRequired: 5e502c3553cfbed090a991c444448da452fb752e RCTSwiftUI: 5ce3ccbdc58b78cc4ebbaace01709ec22d58e131 diff --git a/apps/eventfloor/package.json b/apps/eventfloor/package.json index a4a8c15..ce5b9d9 100644 --- a/apps/eventfloor/package.json +++ b/apps/eventfloor/package.json @@ -18,7 +18,7 @@ "dependencies": { "@offline-app-examples/mesh": "workspace:*", "@offline-app-examples/ui": "workspace:*", - "@offline-protocol/mesh-sdk": "^0.27.0", + "@offline-protocol/mesh-sdk": "^0.28.0", "@react-native-async-storage/async-storage": "^2.2.0", "lucide-react-native": "^1.48.0", "nativewind": "^4.2.7", diff --git a/apps/orderup/README.md b/apps/orderup/README.md index 5b532c7..a953d84 100644 --- a/apps/orderup/README.md +++ b/apps/orderup/README.md @@ -7,7 +7,7 @@ status change live. It shows how to build a **host-authoritative** app on [`@offline-protocol/mesh-sdk`](https://www.npmjs.com/package/@offline-protocol/mesh-sdk) -0.27 with plain JSON messages and a small pure reducer, with no CRDTs and no server. The +0.28 with plain JSON messages and a small pure reducer, with no CRDTs and no server. The Bluetooth side (discovery, joining, encryption) lives in `packages/mesh` (`useNearbyRoom`). UI components come from `packages/ui`. diff --git a/apps/orderup/ios/Podfile.lock b/apps/orderup/ios/Podfile.lock index 5fc2067..be8e865 100644 --- a/apps/orderup/ios/Podfile.lock +++ b/apps/orderup/ios/Podfile.lock @@ -3,7 +3,7 @@ PODS: - hermes-engine (250829098.0.10): - hermes-engine/Pre-built (= 250829098.0.10) - hermes-engine/Pre-built (250829098.0.10) - - MeshSdk (0.27.0): + - MeshSdk (0.28.0): - React-Core - RCTDeprecation (0.85.2) - RCTRequired (0.85.2) @@ -2278,7 +2278,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: FBLazyVector: 26fd21c75314e101f280d401e97f27d54f3f7064 hermes-engine: 3a002838bb4972a0235545718ba18f497305aa5d - MeshSdk: dc48b6c67eb632530836c964c9f2c5b1513224dd + MeshSdk: d4a40ad67dd577e5b41da02576c04f9519545545 RCTDeprecation: c7a2768f905d76ca6d2cfefb26e4349eacbdfca3 RCTRequired: 5e502c3553cfbed090a991c444448da452fb752e RCTSwiftUI: 5ce3ccbdc58b78cc4ebbaace01709ec22d58e131 diff --git a/apps/orderup/package.json b/apps/orderup/package.json index 89d328f..1681761 100644 --- a/apps/orderup/package.json +++ b/apps/orderup/package.json @@ -18,7 +18,7 @@ "dependencies": { "@offline-app-examples/mesh": "workspace:*", "@offline-app-examples/ui": "workspace:*", - "@offline-protocol/mesh-sdk": "^0.27.0", + "@offline-protocol/mesh-sdk": "^0.28.0", "lucide-react-native": "^1.48.0", "nativewind": "^4.2.7", "react": "19.2.3", diff --git a/apps/outagenet/README.md b/apps/outagenet/README.md index 03172a9..750e800 100644 --- a/apps/outagenet/README.md +++ b/apps/outagenet/README.md @@ -2,7 +2,7 @@ Field coordination when towers are down. One phone runs the **command post**; others join as **field units** over **Bluetooth mesh** (no internet, no accounts). Post status updates, **hand off responsibility** with explicit accept, and **sync to a mock HQ** with visible duplicate suppression. -Built on `@offline-app-examples/mesh` and `@offline-app-examples/ui`, Mesh SDK 0.27. +Built on `@offline-app-examples/mesh` and `@offline-app-examples/ui`, Mesh SDK 0.28. ## What it demonstrates diff --git a/apps/outagenet/ios/Podfile.lock b/apps/outagenet/ios/Podfile.lock index fe24849..5a2dd3d 100644 --- a/apps/outagenet/ios/Podfile.lock +++ b/apps/outagenet/ios/Podfile.lock @@ -3,7 +3,7 @@ PODS: - hermes-engine (250829098.0.10): - hermes-engine/Pre-built (= 250829098.0.10) - hermes-engine/Pre-built (250829098.0.10) - - MeshSdk (0.27.0): + - MeshSdk (0.28.0): - React-Core - RCTDeprecation (0.85.2) - RCTRequired (0.85.2) @@ -2303,7 +2303,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: FBLazyVector: 26fd21c75314e101f280d401e97f27d54f3f7064 hermes-engine: 3a002838bb4972a0235545718ba18f497305aa5d - MeshSdk: dc48b6c67eb632530836c964c9f2c5b1513224dd + MeshSdk: d4a40ad67dd577e5b41da02576c04f9519545545 RCTDeprecation: c7a2768f905d76ca6d2cfefb26e4349eacbdfca3 RCTRequired: 5e502c3553cfbed090a991c444448da452fb752e RCTSwiftUI: 5ce3ccbdc58b78cc4ebbaace01709ec22d58e131 diff --git a/apps/outagenet/package.json b/apps/outagenet/package.json index 080236e..306ab1f 100644 --- a/apps/outagenet/package.json +++ b/apps/outagenet/package.json @@ -18,7 +18,7 @@ "dependencies": { "@offline-app-examples/mesh": "workspace:*", "@offline-app-examples/ui": "workspace:*", - "@offline-protocol/mesh-sdk": "^0.27.0", + "@offline-protocol/mesh-sdk": "^0.28.0", "@react-native-async-storage/async-storage": "^2.2.0", "lucide-react-native": "^1.48.0", "nativewind": "^4.2.7", diff --git a/apps/stocksync/README.md b/apps/stocksync/README.md index 18e8e4a..4353f45 100644 --- a/apps/stocksync/README.md +++ b/apps/stocksync/README.md @@ -6,7 +6,7 @@ One phone opens a store and the others nearby join it over Bluetooth. Everyone s same small supermarket inventory (milk, bread, apples, eggs, bananas, cheese, cereal, tomatoes), and tapping − or + on any phone updates the count on every phone. No internet, accounts or servers. Built on `@offline-app-examples/mesh` (a thin room layer over -`@offline-protocol/mesh-sdk` 0.27, see `packages/mesh/README.md`) and +`@offline-protocol/mesh-sdk` 0.28, see `packages/mesh/README.md`) and `@offline-app-examples/ui`. ## What it demonstrates diff --git a/apps/stocksync/ios/Podfile.lock b/apps/stocksync/ios/Podfile.lock index b022d9f..b601b70 100644 --- a/apps/stocksync/ios/Podfile.lock +++ b/apps/stocksync/ios/Podfile.lock @@ -3,7 +3,7 @@ PODS: - hermes-engine (250829098.0.10): - hermes-engine/Pre-built (= 250829098.0.10) - hermes-engine/Pre-built (250829098.0.10) - - MeshSdk (0.27.0): + - MeshSdk (0.28.0): - React-Core - RCTDeprecation (0.85.2) - RCTRequired (0.85.2) @@ -2278,7 +2278,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: FBLazyVector: 26fd21c75314e101f280d401e97f27d54f3f7064 hermes-engine: 25cc110921930e4293b718f2d5d325536b0ed52b - MeshSdk: dc48b6c67eb632530836c964c9f2c5b1513224dd + MeshSdk: d4a40ad67dd577e5b41da02576c04f9519545545 RCTDeprecation: c7a2768f905d76ca6d2cfefb26e4349eacbdfca3 RCTRequired: 5e502c3553cfbed090a991c444448da452fb752e RCTSwiftUI: 5ce3ccbdc58b78cc4ebbaace01709ec22d58e131 diff --git a/apps/stocksync/package.json b/apps/stocksync/package.json index 51eda99..3efb4d6 100644 --- a/apps/stocksync/package.json +++ b/apps/stocksync/package.json @@ -18,7 +18,7 @@ "dependencies": { "@offline-app-examples/mesh": "workspace:*", "@offline-app-examples/ui": "workspace:*", - "@offline-protocol/mesh-sdk": "^0.27.0", + "@offline-protocol/mesh-sdk": "^0.28.0", "lucide-react-native": "^1.48.0", "nativewind": "^4.2.7", "react": "19.2.3", diff --git a/apps/tictactogether/README.md b/apps/tictactogether/README.md index cdf65bf..48f5d17 100644 --- a/apps/tictactogether/README.md +++ b/apps/tictactogether/README.md @@ -1,7 +1,7 @@ # Tic Tac Together ✳ A small, colorful rivalry between two nearby phones. React Native app for iOS and Android, built on `@offline-app-examples/mesh` (a thin room layer over -`@offline-protocol/mesh-sdk` 0.27, see `packages/mesh/README.md`) and `@offline-app-examples/ui`. +`@offline-protocol/mesh-sdk` 0.28, see `packages/mesh/README.md`) and `@offline-app-examples/ui`. ## Run diff --git a/apps/tictactogether/ios/Podfile.lock b/apps/tictactogether/ios/Podfile.lock index 1264338..e318ba0 100644 --- a/apps/tictactogether/ios/Podfile.lock +++ b/apps/tictactogether/ios/Podfile.lock @@ -3,7 +3,7 @@ PODS: - hermes-engine (250829098.0.10): - hermes-engine/Pre-built (= 250829098.0.10) - hermes-engine/Pre-built (250829098.0.10) - - MeshSdk (0.27.0): + - MeshSdk (0.28.0): - React-Core - RCTDeprecation (0.85.2) - RCTRequired (0.85.2) @@ -2303,7 +2303,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: FBLazyVector: 26fd21c75314e101f280d401e97f27d54f3f7064 hermes-engine: 25cc110921930e4293b718f2d5d325536b0ed52b - MeshSdk: dc48b6c67eb632530836c964c9f2c5b1513224dd + MeshSdk: d4a40ad67dd577e5b41da02576c04f9519545545 RCTDeprecation: c7a2768f905d76ca6d2cfefb26e4349eacbdfca3 RCTRequired: 5e502c3553cfbed090a991c444448da452fb752e RCTSwiftUI: 5ce3ccbdc58b78cc4ebbaace01709ec22d58e131 diff --git a/apps/tictactogether/package.json b/apps/tictactogether/package.json index 033895b..c9216cf 100644 --- a/apps/tictactogether/package.json +++ b/apps/tictactogether/package.json @@ -18,7 +18,7 @@ "dependencies": { "@offline-app-examples/mesh": "workspace:*", "@offline-app-examples/ui": "workspace:*", - "@offline-protocol/mesh-sdk": "^0.27.0", + "@offline-protocol/mesh-sdk": "^0.28.0", "nativewind": "^4.2.7", "react": "19.2.3", "react-native": "0.85.2", diff --git a/apps/yardgate/README.md b/apps/yardgate/README.md index 4333a60..38fddac 100644 --- a/apps/yardgate/README.md +++ b/apps/yardgate/README.md @@ -2,7 +2,7 @@ Logistics yard check-in when there is no cellular: a **driver** discovers a **gate check-in service** over **Bluetooth mesh**, submits a seeded load / trailer ID, and the **gate officer** approves or denies on their phone. An optional **yard relay** phone carries traffic when the driver is not in direct range of the gate. -Mesh SDK **0.27** — `MeshServices` discover + invoke only (no Proof of Location; invoke bodies are signed plaintext — no secrets). Service responses use SDK status strings **`ok`**, **`error`**, or **`not_found`** (not HTTP codes like `200`). +Mesh SDK **0.28** — `MeshServices` discover + invoke only (no Proof of Location; invoke bodies are signed plaintext — no secrets). Service responses use SDK status strings **`ok`**, **`error`**, or **`not_found`** (not HTTP codes like `200`). ## What it demonstrates diff --git a/apps/yardgate/ios/Podfile.lock b/apps/yardgate/ios/Podfile.lock index 9296f46..b426b1a 100644 --- a/apps/yardgate/ios/Podfile.lock +++ b/apps/yardgate/ios/Podfile.lock @@ -3,7 +3,7 @@ PODS: - hermes-engine (250829098.0.10): - hermes-engine/Pre-built (= 250829098.0.10) - hermes-engine/Pre-built (250829098.0.10) - - MeshSdk (0.27.0): + - MeshSdk (0.28.0): - React-Core - RCTDeprecation (0.85.2) - RCTRequired (0.85.2) @@ -2278,7 +2278,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: FBLazyVector: 26fd21c75314e101f280d401e97f27d54f3f7064 hermes-engine: 3a002838bb4972a0235545718ba18f497305aa5d - MeshSdk: dc48b6c67eb632530836c964c9f2c5b1513224dd + MeshSdk: d4a40ad67dd577e5b41da02576c04f9519545545 RCTDeprecation: c7a2768f905d76ca6d2cfefb26e4349eacbdfca3 RCTRequired: 5e502c3553cfbed090a991c444448da452fb752e RCTSwiftUI: 5ce3ccbdc58b78cc4ebbaace01709ec22d58e131 diff --git a/apps/yardgate/package.json b/apps/yardgate/package.json index 511ae0b..318f9aa 100644 --- a/apps/yardgate/package.json +++ b/apps/yardgate/package.json @@ -18,7 +18,7 @@ "dependencies": { "@offline-app-examples/mesh": "workspace:*", "@offline-app-examples/ui": "workspace:*", - "@offline-protocol/mesh-sdk": "^0.27.0", + "@offline-protocol/mesh-sdk": "^0.28.0", "lucide-react-native": "^1.48.0", "nativewind": "^4.2.7", "react": "19.2.3", diff --git a/packages/mesh/README.md b/packages/mesh/README.md index 9314fb2..6d17d8c 100644 --- a/packages/mesh/README.md +++ b/packages/mesh/README.md @@ -71,7 +71,7 @@ await store.textInsert(room.groupId!, 'doc', 'body', 0, 'Hello'); - One message is at most 16 KiB of JSON; `send` throws above it. Bluetooth moves roughly 180–500 bytes per fragment, so keep messages small. - iOS keeps at most about 4 Bluetooth connections per device, so plan for small rooms. -- Wi-Fi Direct is off: in SDK 0.27 the phone Wi-Fi Direct transport carries no traffic. +- Wi-Fi Direct is off (`wifiDirect: { enabled: false }` in `src/runtime.ts`), so everything goes over Bluetooth LE. - Discovery needs physical phones. Simulators run the UI but never find peers. ## Files diff --git a/packages/mesh/package.json b/packages/mesh/package.json index cc0a160..214c642 100644 --- a/packages/mesh/package.json +++ b/packages/mesh/package.json @@ -11,13 +11,13 @@ "test": "jest" }, "peerDependencies": { - "@offline-protocol/mesh-sdk": "^0.27.0", + "@offline-protocol/mesh-sdk": "^0.28.0", "react": "*", "react-native": "*" }, "devDependencies": { "@babel/core": "^7.25.2", - "@offline-protocol/mesh-sdk": "^0.27.0", + "@offline-protocol/mesh-sdk": "^0.28.0", "@react-native/babel-preset": "0.85.2", "@react-native/typescript-config": "0.85.2", "@jest/globals": "^29.6.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6cd3643..6a6d1f2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -220,8 +220,8 @@ importers: specifier: workspace:* version: link:../../packages/ui '@offline-protocol/mesh-sdk': - specifier: ^0.27.0 - version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) + specifier: ^0.28.0 + version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) '@react-native-async-storage/async-storage': specifier: ^2.2.0 version: 2.2.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1)) @@ -335,8 +335,8 @@ importers: specifier: workspace:* version: link:../../packages/ui '@offline-protocol/mesh-sdk': - specifier: ^0.27.0 - version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) + specifier: ^0.28.0 + version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) lucide-react-native: specifier: ^1.48.0 version: 1.48.0(react-native-svg@15.15.5(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) @@ -447,8 +447,8 @@ importers: specifier: workspace:* version: link:../../packages/ui '@offline-protocol/mesh-sdk': - specifier: ^0.27.0 - version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) + specifier: ^0.28.0 + version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) '@react-native-async-storage/async-storage': specifier: ^2.2.0 version: 2.2.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1)) @@ -562,8 +562,8 @@ importers: specifier: workspace:* version: link:../../packages/ui '@offline-protocol/mesh-sdk': - specifier: ^0.27.0 - version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) + specifier: ^0.28.0 + version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) lucide-react-native: specifier: ^1.48.0 version: 1.48.0(react-native-svg@15.15.5(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) @@ -674,8 +674,8 @@ importers: specifier: workspace:* version: link:../../packages/ui '@offline-protocol/mesh-sdk': - specifier: ^0.27.0 - version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) + specifier: ^0.28.0 + version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) '@react-native-async-storage/async-storage': specifier: ^2.2.0 version: 2.2.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1)) @@ -789,8 +789,8 @@ importers: specifier: workspace:* version: link:../../packages/ui '@offline-protocol/mesh-sdk': - specifier: ^0.27.0 - version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) + specifier: ^0.28.0 + version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) lucide-react-native: specifier: ^1.48.0 version: 1.48.0(react-native-svg@15.15.5(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) @@ -901,8 +901,8 @@ importers: specifier: workspace:* version: link:../../packages/ui '@offline-protocol/mesh-sdk': - specifier: ^0.27.0 - version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) + specifier: ^0.28.0 + version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) nativewind: specifier: ^4.2.7 version: 4.2.7(6af35d6757d3fd7944cdf994ae66f9a7) @@ -1013,8 +1013,8 @@ importers: specifier: workspace:* version: link:../../packages/ui '@offline-protocol/mesh-sdk': - specifier: ^0.27.0 - version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) + specifier: ^0.28.0 + version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) lucide-react-native: specifier: ^1.48.0 version: 1.48.0(react-native-svg@15.15.5(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) @@ -1125,8 +1125,8 @@ importers: specifier: ^29.6.3 version: 29.7.0(supports-color@8.1.1) '@offline-protocol/mesh-sdk': - specifier: ^0.27.0 - version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) + specifier: ^0.28.0 + version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3) '@react-native/babel-preset': specifier: 0.85.2 version: 0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) @@ -2036,8 +2036,8 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@offline-protocol/mesh-sdk@0.27.0': - resolution: {integrity: sha512-yTxtiTR9H2xIZuIL4S4wyGSjEe0Ti0Pm7o6/455mDOkGyE73I02JunFKoaXELzqxJa0g7eoRPr11IbKVgGDyZg==} + '@offline-protocol/mesh-sdk@0.28.0': + resolution: {integrity: sha512-yRxj0Gj8Gv5F4TPYQEHGhIA1FTyADb8I9RpG+N8e6edbrAM8duphRCDPZ8fSjFR0vMMSvKhUSYqqOaMcdw8auw==} peerDependencies: react: '>=16.8.0' react-native: '>=0.70.0' @@ -6164,7 +6164,7 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.3 - '@offline-protocol/mesh-sdk@0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)': + '@offline-protocol/mesh-sdk@0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)': dependencies: react: 19.2.3 react-native: 0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3e712d3..24155da 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,5 @@ packages: - "apps/*" - - "packages/*" \ No newline at end of file + - "packages/*" +minimumReleaseAgeExclude: + - '@offline-protocol/mesh-sdk@0.28.0'