@magicred-1/ble-mesh 1.2.3 → 1.2.5

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 CHANGED
@@ -108,6 +108,35 @@ interface MeshServiceConfig {
108
108
 
109
109
  Stops the mesh service and disconnects from all peers.
110
110
 
111
+ ##### `requestPermissions(): Promise<PermissionStatus>`
112
+
113
+ Requests all required Bluetooth and location permissions. Called automatically by `start()` unless `autoRequestPermissions: false`.
114
+
115
+ ```typescript
116
+ interface PermissionStatus {
117
+ bluetooth: boolean;
118
+ bluetoothAdvertise?: boolean; // Android 12+
119
+ bluetoothConnect?: boolean; // Android 12+
120
+ bluetoothScan?: boolean; // Android 12+
121
+ location: boolean;
122
+ }
123
+
124
+ const permissions = await BleMesh.requestPermissions();
125
+ if (!permissions.bluetooth || !permissions.location) {
126
+ console.error('Required permissions not granted');
127
+ }
128
+ ```
129
+
130
+ ##### `checkPermissions(): Promise<PermissionStatus>`
131
+
132
+ Checks current permission status without requesting. Useful for showing permission UI state.
133
+
134
+ ```typescript
135
+ const permissions = await BleMesh.checkPermissions();
136
+ console.log('Bluetooth enabled:', permissions.bluetooth);
137
+ console.log('Location enabled:', permissions.location);
138
+ ```
139
+
111
140
  ##### `setNickname(nickname: string): Promise<void>`
112
141
 
113
142
  Updates your nickname and broadcasts the change to peers.
@@ -163,19 +192,23 @@ await BleMesh.sendFile('/path/to/document.pdf', { recipientPeerId: 'abc123' });
163
192
 
164
193
  Sends a Solana transaction for any peer to sign as the second signer. Perfect for multi-signature transactions.
165
194
 
195
+ > **⚠️ Important**: Transactions require **encrypted sessions** with target peer(s). By default, `sendTransaction()` automatically initiates handshakes with peers that don't have active sessions. To disable auto-handshake, set `ensureSession: false` in options.
196
+
166
197
  **Targeted (specific peer):**
167
198
  ```typescript
168
199
  await BleMesh.sendTransaction(base64SerializedTx, {
169
200
  recipientPeerId: 'abc123', // Send to specific peer (optional)
170
201
  firstSignerPublicKey: senderPubKey,
171
202
  secondSignerPublicKey: recipientPubKey, // Preferred signer (optional)
172
- description: 'Payment for services'
203
+ description: 'Payment for services',
204
+ ensureSession: true // Default: auto-initiate handshake if needed
173
205
  });
174
206
  ```
175
207
 
176
208
  **Broadcast (any peer can sign):**
177
209
  ```typescript
178
210
  // Broadcast to all peers - any peer can sign
211
+ // Automatically initiates handshakes with all connected peers
179
212
  await BleMesh.sendTransaction(base64SerializedTx, {
180
213
  firstSignerPublicKey: senderPubKey,
181
214
  // No recipientPeerId - broadcasts to all
@@ -184,6 +217,26 @@ await BleMesh.sendTransaction(base64SerializedTx, {
184
217
  });
185
218
  ```
186
219
 
220
+ **Manual session management (advanced):**
221
+ ```typescript
222
+ // Check if encrypted session exists
223
+ const hasSession = await BleMesh.hasEncryptedSession(peerId);
224
+
225
+ if (!hasSession) {
226
+ // Manually initiate handshake
227
+ await BleMesh.initiateHandshake(peerId);
228
+ // Wait briefly for handshake to complete
229
+ await new Promise(resolve => setTimeout(resolve, 500));
230
+ }
231
+
232
+ // Now send transaction without auto-handshake
233
+ await BleMesh.sendTransaction(base64SerializedTx, {
234
+ recipientPeerId: peerId,
235
+ firstSignerPublicKey: senderPubKey,
236
+ ensureSession: false // Skip auto-handshake
237
+ });
238
+ ```
239
+
187
240
  ##### `respondToTransaction(transactionId: string, recipientPeerId: string, response): Promise<void>`
188
241
 
189
242
  Responds to a received transaction with the signed transaction or an error.
@@ -202,23 +255,76 @@ await BleMesh.respondToTransaction(txId, senderPeerId, {
202
255
 
203
256
  ##### `hasEncryptedSession(peerId: string): Promise<boolean>`
204
257
 
205
- Checks if an encrypted session exists with the specified peer.
258
+ Checks if an encrypted session exists with the specified peer. Useful for verifying secure communication is established before sending sensitive data.
259
+
260
+ ```typescript
261
+ const hasSession = await BleMesh.hasEncryptedSession(peerId);
262
+ if (hasSession) {
263
+ console.log('Secure session active');
264
+ } else {
265
+ console.log('No encrypted session - need handshake');
266
+ }
267
+ ```
206
268
 
207
269
  ##### `initiateHandshake(peerId: string): Promise<void>`
208
270
 
209
- Initiates a Noise handshake with a peer for encrypted communication.
271
+ Initiates a Noise handshake with a peer for encrypted communication. Required before sending private messages or transactions.
272
+
273
+ ```typescript
274
+ // Manually establish encrypted session
275
+ await BleMesh.initiateHandshake(peerId);
276
+ await new Promise(resolve => setTimeout(resolve, 500)); // Wait for completion
277
+
278
+ // Now send encrypted data
279
+ await BleMesh.sendPrivateMessage('Secret data', peerId);
280
+ ```
281
+
282
+ ##### `sendSolanaNonceTransaction(transaction: SolanaNonceTransaction, recipientPeerId: string): Promise<string>`
283
+
284
+ Sends a durable transaction using Solana nonce accounts for offline transaction signing.
285
+
286
+ ```typescript
287
+ interface SolanaNonceTransaction {
288
+ recentBlockhash: string;
289
+ nonceAccount: string;
290
+ nonceAuthority: string;
291
+ feePayer: string;
292
+ instructions: Array<{
293
+ programId: string;
294
+ keys: Array<{ pubkey: string; isSigner: boolean; isWritable: boolean }>;
295
+ data: string; // base64 encoded
296
+ }>;
297
+ }
298
+
299
+ const txId = await BleMesh.sendSolanaNonceTransaction({
300
+ recentBlockhash: nonceAccountValue,
301
+ nonceAccount: nonceAccountPubkey,
302
+ nonceAuthority: authorityPubkey,
303
+ feePayer: feePayerPubkey,
304
+ instructions: [/* ... */]
305
+ }, recipientPeerId);
306
+ ```
210
307
 
211
308
  ##### `getIdentityFingerprint(): Promise<string>`
212
309
 
213
- Returns your identity fingerprint for verification.
310
+ Returns your identity fingerprint for verification. Share this with peers to verify your identity.
214
311
 
215
312
  ##### `getPeerFingerprint(peerId: string): Promise<string | null>`
216
313
 
217
- Returns a peer's identity fingerprint for verification.
314
+ Returns a peer's identity fingerprint for verification. Compare with their shared fingerprint to verify identity.
315
+
316
+ ```typescript
317
+ const peerFingerprint = await BleMesh.getPeerFingerprint(peerId);
318
+ if (peerFingerprint === sharedFingerprint) {
319
+ console.log('Identity verified!');
320
+ } else {
321
+ console.warn('Identity mismatch - possible MITM attack');
322
+ }
323
+ ```
218
324
 
219
325
  ##### `broadcastAnnounce(): Promise<void>`
220
326
 
221
- Forces a broadcast announce to refresh your presence on the mesh.
327
+ Forces a broadcast announce to refresh your presence on the mesh. Useful for re-announcing after network connectivity changes.
222
328
 
223
329
  #### Events
224
330
 
@@ -168,13 +168,56 @@ class BleMeshService {
168
168
  * @param options.secondSignerPublicKey - Preferred second signer (optional, any peer can sign if not specified)
169
169
  * @param options.description - Description of the transaction
170
170
  * @param options.recipientPeerId - Specific peer to send to (optional, broadcasts to all if not specified)
171
+ * @param options.ensureSession - Auto-initiate handshake if no encrypted session exists (default: true)
171
172
  */
172
173
  async sendTransaction(serializedTransaction, options) {
173
174
  this.ensureInitialized();
175
+
176
+ // Auto-initiate handshakes if needed (default: true)
177
+ const ensureSession = options?.ensureSession !== false;
178
+ if (ensureSession) {
179
+ await this.ensureEncryptedSessions(options?.recipientPeerId);
180
+ }
174
181
  const txId = Math.random().toString(36).substring(2, 15);
175
182
  return BleMeshModule.sendTransaction(txId, serializedTransaction, options?.recipientPeerId || null, options?.firstSignerPublicKey, options?.secondSignerPublicKey || null, options?.description || null);
176
183
  }
177
184
 
185
+ /**
186
+ * Ensure encrypted sessions exist with target peer(s) before sending transactions.
187
+ * Auto-initiates handshakes for peers without active sessions.
188
+ *
189
+ * @param recipientPeerId - Specific peer ID, or null/undefined to check all connected peers
190
+ */
191
+ async ensureEncryptedSessions(recipientPeerId) {
192
+ if (recipientPeerId) {
193
+ // Check specific peer
194
+ const hasSession = await this.hasEncryptedSession(recipientPeerId);
195
+ if (!hasSession) {
196
+ console.log(`[BleMesh] No encrypted session with ${recipientPeerId}, initiating handshake...`);
197
+ await this.initiateHandshake(recipientPeerId);
198
+ // Wait briefly for handshake to complete
199
+ await new Promise(resolve => setTimeout(resolve, 500));
200
+ }
201
+ } else {
202
+ // Check all connected peers
203
+ const peers = await this.getPeers();
204
+ const connectedPeers = peers.filter(p => p.isConnected);
205
+ console.log(`[BleMesh] Checking sessions for ${connectedPeers.length} connected peers...`);
206
+ for (const peer of connectedPeers) {
207
+ const hasSession = await this.hasEncryptedSession(peer.peerId);
208
+ if (!hasSession) {
209
+ console.log(`[BleMesh] No encrypted session with ${peer.nickname} (${peer.peerId}), initiating handshake...`);
210
+ await this.initiateHandshake(peer.peerId);
211
+ }
212
+ }
213
+
214
+ // Wait for handshakes to complete
215
+ if (connectedPeers.length > 0) {
216
+ await new Promise(resolve => setTimeout(resolve, 1000));
217
+ }
218
+ }
219
+ }
220
+
178
221
  // Respond to a received transaction (sign or reject)
179
222
  async respondToTransaction(transactionId, recipientPeerId, response) {
180
223
  this.ensureInitialized();
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","BleMeshModule","NativeModules","BleMesh","Proxy","get","Error","eventEmitter","NativeEventEmitter","BleMeshService","isInitialized","requestPermissions","OS","requestAndroidPermissions","requestIOSPermissions","apiLevel","Version","permissions","PermissionsAndroid","PERMISSIONS","BLUETOOTH_ADVERTISE","BLUETOOTH_CONNECT","BLUETOOTH_SCAN","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","results","requestMultiple","status","bluetooth","location","bluetoothAdvertise","bluetoothConnect","bluetoothScan","result","checkPermissions","checkAndroidPermissions","fineLocation","check","advertise","connect","scan","start","config","nickname","autoRequestPermissions","hasAllPermissions","stop","setNickname","ensureInitialized","getMyPeerId","getMyNickname","getPeers","sendMessage","content","channel","sendPrivateMessage","recipientPeerId","sendFile","filePath","options","sendTransaction","serializedTransaction","txId","Math","random","toString","substring","firstSignerPublicKey","secondSignerPublicKey","description","respondToTransaction","transactionId","response","signedTransaction","error","sendReadReceipt","messageId","hasEncryptedSession","peerId","initiateHandshake","sendSolanaNonceTransaction","transaction","getIdentityFingerprint","getPeerFingerprint","broadcastAnnounce","onPeerListUpdated","callback","subscription","addListener","remove","onMessageReceived","onFileReceived","onTransactionReceived","onTransactionResponse","onConnectionStateChanged","onReadReceipt","onDeliveryAck","onError","exports","_default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","BleMeshModule","NativeModules","BleMesh","Proxy","get","Error","eventEmitter","NativeEventEmitter","BleMeshService","isInitialized","requestPermissions","OS","requestAndroidPermissions","requestIOSPermissions","apiLevel","Version","permissions","PermissionsAndroid","PERMISSIONS","BLUETOOTH_ADVERTISE","BLUETOOTH_CONNECT","BLUETOOTH_SCAN","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","results","requestMultiple","status","bluetooth","location","bluetoothAdvertise","bluetoothConnect","bluetoothScan","result","checkPermissions","checkAndroidPermissions","fineLocation","check","advertise","connect","scan","start","config","nickname","autoRequestPermissions","hasAllPermissions","stop","setNickname","ensureInitialized","getMyPeerId","getMyNickname","getPeers","sendMessage","content","channel","sendPrivateMessage","recipientPeerId","sendFile","filePath","options","sendTransaction","serializedTransaction","ensureSession","ensureEncryptedSessions","txId","Math","random","toString","substring","firstSignerPublicKey","secondSignerPublicKey","description","hasSession","hasEncryptedSession","console","log","initiateHandshake","Promise","resolve","setTimeout","peers","connectedPeers","filter","p","isConnected","length","peer","peerId","respondToTransaction","transactionId","response","signedTransaction","error","sendReadReceipt","messageId","sendSolanaNonceTransaction","transaction","getIdentityFingerprint","getPeerFingerprint","broadcastAnnounce","onPeerListUpdated","callback","subscription","addListener","remove","onMessageReceived","onFileReceived","onTransactionReceived","onTransactionResponse","onConnectionStateChanged","onReadReceipt","onDeliveryAck","onError","exports","_default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -162,13 +162,56 @@ class BleMeshService {
162
162
  * @param options.secondSignerPublicKey - Preferred second signer (optional, any peer can sign if not specified)
163
163
  * @param options.description - Description of the transaction
164
164
  * @param options.recipientPeerId - Specific peer to send to (optional, broadcasts to all if not specified)
165
+ * @param options.ensureSession - Auto-initiate handshake if no encrypted session exists (default: true)
165
166
  */
166
167
  async sendTransaction(serializedTransaction, options) {
167
168
  this.ensureInitialized();
169
+
170
+ // Auto-initiate handshakes if needed (default: true)
171
+ const ensureSession = options?.ensureSession !== false;
172
+ if (ensureSession) {
173
+ await this.ensureEncryptedSessions(options?.recipientPeerId);
174
+ }
168
175
  const txId = Math.random().toString(36).substring(2, 15);
169
176
  return BleMeshModule.sendTransaction(txId, serializedTransaction, options?.recipientPeerId || null, options?.firstSignerPublicKey, options?.secondSignerPublicKey || null, options?.description || null);
170
177
  }
171
178
 
179
+ /**
180
+ * Ensure encrypted sessions exist with target peer(s) before sending transactions.
181
+ * Auto-initiates handshakes for peers without active sessions.
182
+ *
183
+ * @param recipientPeerId - Specific peer ID, or null/undefined to check all connected peers
184
+ */
185
+ async ensureEncryptedSessions(recipientPeerId) {
186
+ if (recipientPeerId) {
187
+ // Check specific peer
188
+ const hasSession = await this.hasEncryptedSession(recipientPeerId);
189
+ if (!hasSession) {
190
+ console.log(`[BleMesh] No encrypted session with ${recipientPeerId}, initiating handshake...`);
191
+ await this.initiateHandshake(recipientPeerId);
192
+ // Wait briefly for handshake to complete
193
+ await new Promise(resolve => setTimeout(resolve, 500));
194
+ }
195
+ } else {
196
+ // Check all connected peers
197
+ const peers = await this.getPeers();
198
+ const connectedPeers = peers.filter(p => p.isConnected);
199
+ console.log(`[BleMesh] Checking sessions for ${connectedPeers.length} connected peers...`);
200
+ for (const peer of connectedPeers) {
201
+ const hasSession = await this.hasEncryptedSession(peer.peerId);
202
+ if (!hasSession) {
203
+ console.log(`[BleMesh] No encrypted session with ${peer.nickname} (${peer.peerId}), initiating handshake...`);
204
+ await this.initiateHandshake(peer.peerId);
205
+ }
206
+ }
207
+
208
+ // Wait for handshakes to complete
209
+ if (connectedPeers.length > 0) {
210
+ await new Promise(resolve => setTimeout(resolve, 1000));
211
+ }
212
+ }
213
+ }
214
+
172
215
  // Respond to a received transaction (sign or reject)
173
216
  async respondToTransaction(transactionId, recipientPeerId, response) {
174
217
  this.ensureInitialized();
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","NativeEventEmitter","Platform","PermissionsAndroid","LINKING_ERROR","select","ios","default","BleMeshModule","BleMesh","Proxy","get","Error","eventEmitter","BleMeshService","isInitialized","requestPermissions","OS","requestAndroidPermissions","requestIOSPermissions","apiLevel","Version","permissions","PERMISSIONS","BLUETOOTH_ADVERTISE","BLUETOOTH_CONNECT","BLUETOOTH_SCAN","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","results","requestMultiple","status","bluetooth","location","bluetoothAdvertise","bluetoothConnect","bluetoothScan","result","checkPermissions","checkAndroidPermissions","fineLocation","check","advertise","connect","scan","start","config","nickname","autoRequestPermissions","hasAllPermissions","stop","setNickname","ensureInitialized","getMyPeerId","getMyNickname","getPeers","sendMessage","content","channel","sendPrivateMessage","recipientPeerId","sendFile","filePath","options","sendTransaction","serializedTransaction","txId","Math","random","toString","substring","firstSignerPublicKey","secondSignerPublicKey","description","respondToTransaction","transactionId","response","signedTransaction","error","sendReadReceipt","messageId","hasEncryptedSession","peerId","initiateHandshake","sendSolanaNonceTransaction","transaction","getIdentityFingerprint","getPeerFingerprint","broadcastAnnounce","onPeerListUpdated","callback","subscription","addListener","remove","onMessageReceived","onFileReceived","onTransactionReceived","onTransactionResponse","onConnectionStateChanged","onReadReceipt","onDeliveryAck","onError"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,aAAa,EAAEC,kBAAkB,EAAEC,QAAQ,EAAEC,kBAAkB,QAAoB,cAAc;AAE1G,MAAMC,aAAa,GACjB,mEAAmE,GACnEF,QAAQ,CAACG,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,2EAA2E;AAE7E,MAAMC,aAAa,GAAGR,aAAa,CAACS,OAAO,GACvCT,aAAa,CAACS,OAAO,GACrB,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACR,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,MAAMS,YAAY,GAAG,IAAIZ,kBAAkB,CAACO,aAAa,CAAC;;AAE1D;;AA0FA;;AAUA;;AAGA,MAAMM,cAAc,CAAC;EACXC,aAAa,GAAG,KAAK;;EAE7B;EACA,MAAMC,kBAAkBA,CAAA,EAA8B;IACpD,IAAId,QAAQ,CAACe,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,IAAI,CAACC,yBAAyB,CAAC,CAAC;IACzC,CAAC,MAAM,IAAIhB,QAAQ,CAACe,EAAE,KAAK,KAAK,EAAE;MAChC,OAAO,IAAI,CAACE,qBAAqB,CAAC,CAAC;IACrC;IACA,MAAM,IAAIP,KAAK,CAAC,sBAAsB,CAAC;EACzC;EAEA,MAAcM,yBAAyBA,CAAA,EAA8B;IACnE,MAAME,QAAQ,GAAGlB,QAAQ,CAACmB,OAAiB;IAE3C,IAAIC,WAAyB,GAAG,EAAE;IAElC,IAAIF,QAAQ,IAAI,EAAE,EAAE;MAClB;MACAE,WAAW,GAAG,CACZnB,kBAAkB,CAACoB,WAAW,CAACC,mBAAmB,EAClDrB,kBAAkB,CAACoB,WAAW,CAACE,iBAAiB,EAChDtB,kBAAkB,CAACoB,WAAW,CAACG,cAAc,EAC7CvB,kBAAkB,CAACoB,WAAW,CAACI,oBAAoB,CACpD;IACH,CAAC,MAAM;MACL;MACAL,WAAW,GAAG,CACZnB,kBAAkB,CAACoB,WAAW,CAACI,oBAAoB,EACnDxB,kBAAkB,CAACoB,WAAW,CAACK,sBAAsB,CACtD;IACH;IAEA,MAAMC,OAAO,GAAG,MAAM1B,kBAAkB,CAAC2B,eAAe,CAACR,WAAW,CAAC;IAErE,MAAMS,MAAwB,GAAG;MAC/BC,SAAS,EAAE,IAAI;MACfC,QAAQ,EAAEJ,OAAO,CAAC1B,kBAAkB,CAACoB,WAAW,CAACI,oBAAoB,CAAC,KAAK;IAC7E,CAAC;IAED,IAAIP,QAAQ,IAAI,EAAE,EAAE;MAClBW,MAAM,CAACG,kBAAkB,GAAGL,OAAO,CAAC1B,kBAAkB,CAACoB,WAAW,CAACC,mBAAmB,CAAC,KAAK,SAAS;MACrGO,MAAM,CAACI,gBAAgB,GAAGN,OAAO,CAAC1B,kBAAkB,CAACoB,WAAW,CAACE,iBAAiB,CAAC,KAAK,SAAS;MACjGM,MAAM,CAACK,aAAa,GAAGP,OAAO,CAAC1B,kBAAkB,CAACoB,WAAW,CAACG,cAAc,CAAC,KAAK,SAAS;MAC3FK,MAAM,CAACC,SAAS,GAAGD,MAAM,CAACG,kBAAkB,IAAIH,MAAM,CAACI,gBAAgB,IAAIJ,MAAM,CAACK,aAAa;IACjG;IAEA,OAAOL,MAAM;EACf;EAEA,MAAcZ,qBAAqBA,CAAA,EAA8B;IAC/D;IACA;IACA,MAAMkB,MAAM,GAAG,MAAM7B,aAAa,CAACQ,kBAAkB,CAAC,CAAC;IACvD,OAAO;MACLgB,SAAS,EAAEK,MAAM,CAACL,SAAS;MAC3BC,QAAQ,EAAEI,MAAM,CAACJ;IACnB,CAAC;EACH;;EAEA;EACA,MAAMK,gBAAgBA,CAAA,EAA8B;IAClD,IAAIpC,QAAQ,CAACe,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,IAAI,CAACsB,uBAAuB,CAAC,CAAC;IACvC;IACA,OAAO/B,aAAa,CAAC8B,gBAAgB,CAAC,CAAC;EACzC;EAEA,MAAcC,uBAAuBA,CAAA,EAA8B;IACjE,MAAMnB,QAAQ,GAAGlB,QAAQ,CAACmB,OAAiB;IAE3C,MAAMmB,YAAY,GAAG,MAAMrC,kBAAkB,CAACsC,KAAK,CACjDtC,kBAAkB,CAACoB,WAAW,CAACI,oBACjC,CAAC;IAED,MAAMI,MAAwB,GAAG;MAC/BC,SAAS,EAAE,IAAI;MACfC,QAAQ,EAAEO;IACZ,CAAC;IAED,IAAIpB,QAAQ,IAAI,EAAE,EAAE;MAClB,MAAMsB,SAAS,GAAG,MAAMvC,kBAAkB,CAACsC,KAAK,CAC9CtC,kBAAkB,CAACoB,WAAW,CAACC,mBACjC,CAAC;MACD,MAAMmB,OAAO,GAAG,MAAMxC,kBAAkB,CAACsC,KAAK,CAC5CtC,kBAAkB,CAACoB,WAAW,CAACE,iBACjC,CAAC;MACD,MAAMmB,IAAI,GAAG,MAAMzC,kBAAkB,CAACsC,KAAK,CACzCtC,kBAAkB,CAACoB,WAAW,CAACG,cACjC,CAAC;MAEDK,MAAM,CAACG,kBAAkB,GAAGQ,SAAS;MACrCX,MAAM,CAACI,gBAAgB,GAAGQ,OAAO;MACjCZ,MAAM,CAACK,aAAa,GAAGQ,IAAI;MAC3Bb,MAAM,CAACC,SAAS,GAAGU,SAAS,IAAIC,OAAO,IAAIC,IAAI;IACjD;IAEA,OAAOb,MAAM;EACf;;EAEA;EACA,MAAMc,KAAKA,CAACC,MAAyB,GAAG,CAAC,CAAC,EAAiB;IACzD,MAAM;MAAEC,QAAQ,GAAG,MAAM;MAAEC,sBAAsB,GAAG;IAAK,CAAC,GAAGF,MAAM;IAEnE,IAAIE,sBAAsB,EAAE;MAC1B,MAAM1B,WAAW,GAAG,MAAM,IAAI,CAACN,kBAAkB,CAAC,CAAC;MACnD,MAAMiC,iBAAiB,GAAG3B,WAAW,CAACU,SAAS,IAAIV,WAAW,CAACW,QAAQ;MAEvE,IAAI,CAACgB,iBAAiB,EAAE;QACtB,MAAM,IAAIrC,KAAK,CAAC,oFAAoF,CAAC;MACvG;IACF;IAEA,MAAMJ,aAAa,CAACqC,KAAK,CAACE,QAAQ,CAAC;IACnC,IAAI,CAAChC,aAAa,GAAG,IAAI;EAC3B;;EAEA;EACA,MAAMmC,IAAIA,CAAA,EAAkB;IAC1B,IAAI,CAAC,IAAI,CAACnC,aAAa,EAAE;IACzB,MAAMP,aAAa,CAAC0C,IAAI,CAAC,CAAC;IAC1B,IAAI,CAACnC,aAAa,GAAG,KAAK;EAC5B;;EAEA;EACA,MAAMoC,WAAWA,CAACJ,QAAgB,EAAiB;IACjD,IAAI,CAACK,iBAAiB,CAAC,CAAC;IACxB,MAAM5C,aAAa,CAAC2C,WAAW,CAACJ,QAAQ,CAAC;EAC3C;;EAEA;EACA,MAAMM,WAAWA,CAAA,EAAoB;IACnC,IAAI,CAACD,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAAC6C,WAAW,CAAC,CAAC;EACpC;;EAEA;EACA,MAAMC,aAAaA,CAAA,EAAoB;IACrC,IAAI,CAACF,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAAC8C,aAAa,CAAC,CAAC;EACtC;;EAEA;EACA,MAAMC,QAAQA,CAAA,EAAoB;IAChC,IAAI,CAACH,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAAC+C,QAAQ,CAAC,CAAC;EACjC;;EAEA;EACA,MAAMC,WAAWA,CAACC,OAAe,EAAEC,OAAgB,EAAmB;IACpE,IAAI,CAACN,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAACgD,WAAW,CAACC,OAAO,EAAEC,OAAO,IAAI,IAAI,CAAC;EAC5D;;EAEA;EACA,MAAMC,kBAAkBA,CAACF,OAAe,EAAEG,eAAuB,EAAmB;IAClF,IAAI,CAACR,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAACmD,kBAAkB,CAACF,OAAO,EAAEG,eAAe,CAAC;EACnE;;EAEA;EACA,MAAMC,QAAQA,CACZC,QAAgB,EAChBC,OAAwD,EACvC;IACjB,IAAI,CAACX,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAACqD,QAAQ,CAACC,QAAQ,EAAEC,OAAO,EAAEH,eAAe,IAAI,IAAI,EAAEG,OAAO,EAAEL,OAAO,IAAI,IAAI,CAAC;EACrG;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMM,eAAeA,CACnBC,qBAA6B,EAC7BF,OAKC,EACgB;IACjB,IAAI,CAACX,iBAAiB,CAAC,CAAC;IACxB,MAAMc,IAAI,GAAGC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;IACxD,OAAO9D,aAAa,CAACwD,eAAe,CAClCE,IAAI,EACJD,qBAAqB,EACrBF,OAAO,EAAEH,eAAe,IAAI,IAAI,EAChCG,OAAO,EAAEQ,oBAAoB,EAC7BR,OAAO,EAAES,qBAAqB,IAAI,IAAI,EACtCT,OAAO,EAAEU,WAAW,IAAI,IAC1B,CAAC;EACH;;EAEA;EACA,MAAMC,oBAAoBA,CACxBC,aAAqB,EACrBf,eAAuB,EACvBgB,QAGC,EACc;IACf,IAAI,CAACxB,iBAAiB,CAAC,CAAC;IACxB,MAAM5C,aAAa,CAACkE,oBAAoB,CACtCC,aAAa,EACbf,eAAe,EACfgB,QAAQ,CAACC,iBAAiB,IAAI,IAAI,EAClCD,QAAQ,CAACE,KAAK,IAAI,IACpB,CAAC;EACH;;EAEA;EACA,MAAMC,eAAeA,CAACC,SAAiB,EAAEpB,eAAuB,EAAiB;IAC/E,IAAI,CAACR,iBAAiB,CAAC,CAAC;IACxB,MAAM5C,aAAa,CAACuE,eAAe,CAACC,SAAS,EAAEpB,eAAe,CAAC;EACjE;;EAEA;EACA,MAAMqB,mBAAmBA,CAACC,MAAc,EAAoB;IAC1D,IAAI,CAAC9B,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAACyE,mBAAmB,CAACC,MAAM,CAAC;EAClD;;EAEA;EACA,MAAMC,iBAAiBA,CAACD,MAAc,EAAiB;IACrD,IAAI,CAAC9B,iBAAiB,CAAC,CAAC;IACxB,MAAM5C,aAAa,CAAC2E,iBAAiB,CAACD,MAAM,CAAC;EAC/C;EAEA,MAAME,0BAA0BA,CAC9BC,WAAmC,EACnCzB,eAAuB,EACN;IACjB,IAAI,CAACR,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAAC4E,0BAA0B,CAACC,WAAW,EAAEzB,eAAe,CAAC;EAC/E;;EAEA;EACA,MAAM0B,sBAAsBA,CAAA,EAAoB;IAC9C,IAAI,CAAClC,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAAC8E,sBAAsB,CAAC,CAAC;EAC/C;;EAEA;EACA,MAAMC,kBAAkBA,CAACL,MAAc,EAA0B;IAC/D,IAAI,CAAC9B,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAAC+E,kBAAkB,CAACL,MAAM,CAAC;EACjD;;EAEA;EACA,MAAMM,iBAAiBA,CAAA,EAAkB;IACvC,IAAI,CAACpC,iBAAiB,CAAC,CAAC;IACxB,MAAM5C,aAAa,CAACgF,iBAAiB,CAAC,CAAC;EACzC;;EAEA;EACAC,iBAAiBA,CAACC,QAA6C,EAAc;IAC3E,MAAMC,YAAY,GAAG9E,YAAY,CAAC+E,WAAW,CAAC,mBAAmB,EAAEF,QAAQ,CAAC;IAC5E,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEAC,iBAAiBA,CAACJ,QAA6C,EAAc;IAC3E,MAAMC,YAAY,GAAG9E,YAAY,CAAC+E,WAAW,CAAC,mBAAmB,EAAEF,QAAQ,CAAC;IAC5E,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEAE,cAAcA,CAACL,QAA0C,EAAc;IACrE,MAAMC,YAAY,GAAG9E,YAAY,CAAC+E,WAAW,CAAC,gBAAgB,EAAEF,QAAQ,CAAC;IACzE,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEAG,qBAAqBA,CAACN,QAAiD,EAAc;IACnF,MAAMC,YAAY,GAAG9E,YAAY,CAAC+E,WAAW,CAAC,uBAAuB,EAAEF,QAAQ,CAAC;IAChF,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEAI,qBAAqBA,CAACP,QAAiD,EAAc;IACnF,MAAMC,YAAY,GAAG9E,YAAY,CAAC+E,WAAW,CAAC,uBAAuB,EAAEF,QAAQ,CAAC;IAChF,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEAK,wBAAwBA,CAACR,QAAoD,EAAc;IACzF,MAAMC,YAAY,GAAG9E,YAAY,CAAC+E,WAAW,CAAC,0BAA0B,EAAEF,QAAQ,CAAC;IACnF,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEAM,aAAaA,CAACT,QAAkE,EAAc;IAC5F,MAAMC,YAAY,GAAG9E,YAAY,CAAC+E,WAAW,CAAC,eAAe,EAAEF,QAAQ,CAAC;IACxE,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEAO,aAAaA,CAACV,QAAkE,EAAc;IAC5F,MAAMC,YAAY,GAAG9E,YAAY,CAAC+E,WAAW,CAAC,eAAe,EAAEF,QAAQ,CAAC;IACxE,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEAQ,OAAOA,CAACX,QAAmC,EAAc;IACvD,MAAMC,YAAY,GAAG9E,YAAY,CAAC+E,WAAW,CAAC,SAAS,EAAEF,QAAQ,CAAC;IAClE,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEQzC,iBAAiBA,CAAA,EAAS;IAChC,IAAI,CAAC,IAAI,CAACrC,aAAa,EAAE;MACvB,MAAM,IAAIH,KAAK,CAAC,sDAAsD,CAAC;IACzE;EACF;AACF;;AAEA;AACA,OAAO,MAAMH,OAAO,GAAG,IAAIK,cAAc,CAAC,CAAC;;AAE3C;AACA,SAASA,cAAc;;AAEvB;AACA,eAAeL,OAAO","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","NativeEventEmitter","Platform","PermissionsAndroid","LINKING_ERROR","select","ios","default","BleMeshModule","BleMesh","Proxy","get","Error","eventEmitter","BleMeshService","isInitialized","requestPermissions","OS","requestAndroidPermissions","requestIOSPermissions","apiLevel","Version","permissions","PERMISSIONS","BLUETOOTH_ADVERTISE","BLUETOOTH_CONNECT","BLUETOOTH_SCAN","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","results","requestMultiple","status","bluetooth","location","bluetoothAdvertise","bluetoothConnect","bluetoothScan","result","checkPermissions","checkAndroidPermissions","fineLocation","check","advertise","connect","scan","start","config","nickname","autoRequestPermissions","hasAllPermissions","stop","setNickname","ensureInitialized","getMyPeerId","getMyNickname","getPeers","sendMessage","content","channel","sendPrivateMessage","recipientPeerId","sendFile","filePath","options","sendTransaction","serializedTransaction","ensureSession","ensureEncryptedSessions","txId","Math","random","toString","substring","firstSignerPublicKey","secondSignerPublicKey","description","hasSession","hasEncryptedSession","console","log","initiateHandshake","Promise","resolve","setTimeout","peers","connectedPeers","filter","p","isConnected","length","peer","peerId","respondToTransaction","transactionId","response","signedTransaction","error","sendReadReceipt","messageId","sendSolanaNonceTransaction","transaction","getIdentityFingerprint","getPeerFingerprint","broadcastAnnounce","onPeerListUpdated","callback","subscription","addListener","remove","onMessageReceived","onFileReceived","onTransactionReceived","onTransactionResponse","onConnectionStateChanged","onReadReceipt","onDeliveryAck","onError"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,aAAa,EAAEC,kBAAkB,EAAEC,QAAQ,EAAEC,kBAAkB,QAAoB,cAAc;AAE1G,MAAMC,aAAa,GACjB,mEAAmE,GACnEF,QAAQ,CAACG,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,2EAA2E;AAE7E,MAAMC,aAAa,GAAGR,aAAa,CAACS,OAAO,GACvCT,aAAa,CAACS,OAAO,GACrB,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACR,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,MAAMS,YAAY,GAAG,IAAIZ,kBAAkB,CAACO,aAAa,CAAC;;AAE1D;;AA0FA;;AAUA;;AAGA,MAAMM,cAAc,CAAC;EACXC,aAAa,GAAG,KAAK;;EAE7B;EACA,MAAMC,kBAAkBA,CAAA,EAA8B;IACpD,IAAId,QAAQ,CAACe,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,IAAI,CAACC,yBAAyB,CAAC,CAAC;IACzC,CAAC,MAAM,IAAIhB,QAAQ,CAACe,EAAE,KAAK,KAAK,EAAE;MAChC,OAAO,IAAI,CAACE,qBAAqB,CAAC,CAAC;IACrC;IACA,MAAM,IAAIP,KAAK,CAAC,sBAAsB,CAAC;EACzC;EAEA,MAAcM,yBAAyBA,CAAA,EAA8B;IACnE,MAAME,QAAQ,GAAGlB,QAAQ,CAACmB,OAAiB;IAE3C,IAAIC,WAAyB,GAAG,EAAE;IAElC,IAAIF,QAAQ,IAAI,EAAE,EAAE;MAClB;MACAE,WAAW,GAAG,CACZnB,kBAAkB,CAACoB,WAAW,CAACC,mBAAmB,EAClDrB,kBAAkB,CAACoB,WAAW,CAACE,iBAAiB,EAChDtB,kBAAkB,CAACoB,WAAW,CAACG,cAAc,EAC7CvB,kBAAkB,CAACoB,WAAW,CAACI,oBAAoB,CACpD;IACH,CAAC,MAAM;MACL;MACAL,WAAW,GAAG,CACZnB,kBAAkB,CAACoB,WAAW,CAACI,oBAAoB,EACnDxB,kBAAkB,CAACoB,WAAW,CAACK,sBAAsB,CACtD;IACH;IAEA,MAAMC,OAAO,GAAG,MAAM1B,kBAAkB,CAAC2B,eAAe,CAACR,WAAW,CAAC;IAErE,MAAMS,MAAwB,GAAG;MAC/BC,SAAS,EAAE,IAAI;MACfC,QAAQ,EAAEJ,OAAO,CAAC1B,kBAAkB,CAACoB,WAAW,CAACI,oBAAoB,CAAC,KAAK;IAC7E,CAAC;IAED,IAAIP,QAAQ,IAAI,EAAE,EAAE;MAClBW,MAAM,CAACG,kBAAkB,GAAGL,OAAO,CAAC1B,kBAAkB,CAACoB,WAAW,CAACC,mBAAmB,CAAC,KAAK,SAAS;MACrGO,MAAM,CAACI,gBAAgB,GAAGN,OAAO,CAAC1B,kBAAkB,CAACoB,WAAW,CAACE,iBAAiB,CAAC,KAAK,SAAS;MACjGM,MAAM,CAACK,aAAa,GAAGP,OAAO,CAAC1B,kBAAkB,CAACoB,WAAW,CAACG,cAAc,CAAC,KAAK,SAAS;MAC3FK,MAAM,CAACC,SAAS,GAAGD,MAAM,CAACG,kBAAkB,IAAIH,MAAM,CAACI,gBAAgB,IAAIJ,MAAM,CAACK,aAAa;IACjG;IAEA,OAAOL,MAAM;EACf;EAEA,MAAcZ,qBAAqBA,CAAA,EAA8B;IAC/D;IACA;IACA,MAAMkB,MAAM,GAAG,MAAM7B,aAAa,CAACQ,kBAAkB,CAAC,CAAC;IACvD,OAAO;MACLgB,SAAS,EAAEK,MAAM,CAACL,SAAS;MAC3BC,QAAQ,EAAEI,MAAM,CAACJ;IACnB,CAAC;EACH;;EAEA;EACA,MAAMK,gBAAgBA,CAAA,EAA8B;IAClD,IAAIpC,QAAQ,CAACe,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,IAAI,CAACsB,uBAAuB,CAAC,CAAC;IACvC;IACA,OAAO/B,aAAa,CAAC8B,gBAAgB,CAAC,CAAC;EACzC;EAEA,MAAcC,uBAAuBA,CAAA,EAA8B;IACjE,MAAMnB,QAAQ,GAAGlB,QAAQ,CAACmB,OAAiB;IAE3C,MAAMmB,YAAY,GAAG,MAAMrC,kBAAkB,CAACsC,KAAK,CACjDtC,kBAAkB,CAACoB,WAAW,CAACI,oBACjC,CAAC;IAED,MAAMI,MAAwB,GAAG;MAC/BC,SAAS,EAAE,IAAI;MACfC,QAAQ,EAAEO;IACZ,CAAC;IAED,IAAIpB,QAAQ,IAAI,EAAE,EAAE;MAClB,MAAMsB,SAAS,GAAG,MAAMvC,kBAAkB,CAACsC,KAAK,CAC9CtC,kBAAkB,CAACoB,WAAW,CAACC,mBACjC,CAAC;MACD,MAAMmB,OAAO,GAAG,MAAMxC,kBAAkB,CAACsC,KAAK,CAC5CtC,kBAAkB,CAACoB,WAAW,CAACE,iBACjC,CAAC;MACD,MAAMmB,IAAI,GAAG,MAAMzC,kBAAkB,CAACsC,KAAK,CACzCtC,kBAAkB,CAACoB,WAAW,CAACG,cACjC,CAAC;MAEDK,MAAM,CAACG,kBAAkB,GAAGQ,SAAS;MACrCX,MAAM,CAACI,gBAAgB,GAAGQ,OAAO;MACjCZ,MAAM,CAACK,aAAa,GAAGQ,IAAI;MAC3Bb,MAAM,CAACC,SAAS,GAAGU,SAAS,IAAIC,OAAO,IAAIC,IAAI;IACjD;IAEA,OAAOb,MAAM;EACf;;EAEA;EACA,MAAMc,KAAKA,CAACC,MAAyB,GAAG,CAAC,CAAC,EAAiB;IACzD,MAAM;MAAEC,QAAQ,GAAG,MAAM;MAAEC,sBAAsB,GAAG;IAAK,CAAC,GAAGF,MAAM;IAEnE,IAAIE,sBAAsB,EAAE;MAC1B,MAAM1B,WAAW,GAAG,MAAM,IAAI,CAACN,kBAAkB,CAAC,CAAC;MACnD,MAAMiC,iBAAiB,GAAG3B,WAAW,CAACU,SAAS,IAAIV,WAAW,CAACW,QAAQ;MAEvE,IAAI,CAACgB,iBAAiB,EAAE;QACtB,MAAM,IAAIrC,KAAK,CAAC,oFAAoF,CAAC;MACvG;IACF;IAEA,MAAMJ,aAAa,CAACqC,KAAK,CAACE,QAAQ,CAAC;IACnC,IAAI,CAAChC,aAAa,GAAG,IAAI;EAC3B;;EAEA;EACA,MAAMmC,IAAIA,CAAA,EAAkB;IAC1B,IAAI,CAAC,IAAI,CAACnC,aAAa,EAAE;IACzB,MAAMP,aAAa,CAAC0C,IAAI,CAAC,CAAC;IAC1B,IAAI,CAACnC,aAAa,GAAG,KAAK;EAC5B;;EAEA;EACA,MAAMoC,WAAWA,CAACJ,QAAgB,EAAiB;IACjD,IAAI,CAACK,iBAAiB,CAAC,CAAC;IACxB,MAAM5C,aAAa,CAAC2C,WAAW,CAACJ,QAAQ,CAAC;EAC3C;;EAEA;EACA,MAAMM,WAAWA,CAAA,EAAoB;IACnC,IAAI,CAACD,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAAC6C,WAAW,CAAC,CAAC;EACpC;;EAEA;EACA,MAAMC,aAAaA,CAAA,EAAoB;IACrC,IAAI,CAACF,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAAC8C,aAAa,CAAC,CAAC;EACtC;;EAEA;EACA,MAAMC,QAAQA,CAAA,EAAoB;IAChC,IAAI,CAACH,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAAC+C,QAAQ,CAAC,CAAC;EACjC;;EAEA;EACA,MAAMC,WAAWA,CAACC,OAAe,EAAEC,OAAgB,EAAmB;IACpE,IAAI,CAACN,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAACgD,WAAW,CAACC,OAAO,EAAEC,OAAO,IAAI,IAAI,CAAC;EAC5D;;EAEA;EACA,MAAMC,kBAAkBA,CAACF,OAAe,EAAEG,eAAuB,EAAmB;IAClF,IAAI,CAACR,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAACmD,kBAAkB,CAACF,OAAO,EAAEG,eAAe,CAAC;EACnE;;EAEA;EACA,MAAMC,QAAQA,CACZC,QAAgB,EAChBC,OAAwD,EACvC;IACjB,IAAI,CAACX,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAACqD,QAAQ,CAACC,QAAQ,EAAEC,OAAO,EAAEH,eAAe,IAAI,IAAI,EAAEG,OAAO,EAAEL,OAAO,IAAI,IAAI,CAAC;EACrG;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMM,eAAeA,CACnBC,qBAA6B,EAC7BF,OAMC,EACgB;IACjB,IAAI,CAACX,iBAAiB,CAAC,CAAC;;IAExB;IACA,MAAMc,aAAa,GAAGH,OAAO,EAAEG,aAAa,KAAK,KAAK;IACtD,IAAIA,aAAa,EAAE;MACjB,MAAM,IAAI,CAACC,uBAAuB,CAACJ,OAAO,EAAEH,eAAe,CAAC;IAC9D;IAEA,MAAMQ,IAAI,GAAGC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;IACxD,OAAOhE,aAAa,CAACwD,eAAe,CAClCI,IAAI,EACJH,qBAAqB,EACrBF,OAAO,EAAEH,eAAe,IAAI,IAAI,EAChCG,OAAO,EAAEU,oBAAoB,EAC7BV,OAAO,EAAEW,qBAAqB,IAAI,IAAI,EACtCX,OAAO,EAAEY,WAAW,IAAI,IAC1B,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,MAAcR,uBAAuBA,CAACP,eAA+B,EAAiB;IACpF,IAAIA,eAAe,EAAE;MACnB;MACA,MAAMgB,UAAU,GAAG,MAAM,IAAI,CAACC,mBAAmB,CAACjB,eAAe,CAAC;MAClE,IAAI,CAACgB,UAAU,EAAE;QACfE,OAAO,CAACC,GAAG,CAAC,uCAAuCnB,eAAe,2BAA2B,CAAC;QAC9F,MAAM,IAAI,CAACoB,iBAAiB,CAACpB,eAAe,CAAC;QAC7C;QACA,MAAM,IAAIqB,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAE,GAAG,CAAC,CAAC;MACxD;IACF,CAAC,MAAM;MACL;MACA,MAAME,KAAK,GAAG,MAAM,IAAI,CAAC7B,QAAQ,CAAC,CAAC;MACnC,MAAM8B,cAAc,GAAGD,KAAK,CAACE,MAAM,CAACC,CAAC,IAAIA,CAAC,CAACC,WAAW,CAAC;MAEvDV,OAAO,CAACC,GAAG,CAAC,mCAAmCM,cAAc,CAACI,MAAM,qBAAqB,CAAC;MAE1F,KAAK,MAAMC,IAAI,IAAIL,cAAc,EAAE;QACjC,MAAMT,UAAU,GAAG,MAAM,IAAI,CAACC,mBAAmB,CAACa,IAAI,CAACC,MAAM,CAAC;QAC9D,IAAI,CAACf,UAAU,EAAE;UACfE,OAAO,CAACC,GAAG,CAAC,uCAAuCW,IAAI,CAAC3C,QAAQ,KAAK2C,IAAI,CAACC,MAAM,4BAA4B,CAAC;UAC7G,MAAM,IAAI,CAACX,iBAAiB,CAACU,IAAI,CAACC,MAAM,CAAC;QAC3C;MACF;;MAEA;MACA,IAAIN,cAAc,CAACI,MAAM,GAAG,CAAC,EAAE;QAC7B,MAAM,IAAIR,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAE,IAAI,CAAC,CAAC;MACzD;IACF;EACF;;EAEA;EACA,MAAMU,oBAAoBA,CACxBC,aAAqB,EACrBjC,eAAuB,EACvBkC,QAGC,EACc;IACf,IAAI,CAAC1C,iBAAiB,CAAC,CAAC;IACxB,MAAM5C,aAAa,CAACoF,oBAAoB,CACtCC,aAAa,EACbjC,eAAe,EACfkC,QAAQ,CAACC,iBAAiB,IAAI,IAAI,EAClCD,QAAQ,CAACE,KAAK,IAAI,IACpB,CAAC;EACH;;EAEA;EACA,MAAMC,eAAeA,CAACC,SAAiB,EAAEtC,eAAuB,EAAiB;IAC/E,IAAI,CAACR,iBAAiB,CAAC,CAAC;IACxB,MAAM5C,aAAa,CAACyF,eAAe,CAACC,SAAS,EAAEtC,eAAe,CAAC;EACjE;;EAEA;EACA,MAAMiB,mBAAmBA,CAACc,MAAc,EAAoB;IAC1D,IAAI,CAACvC,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAACqE,mBAAmB,CAACc,MAAM,CAAC;EAClD;;EAEA;EACA,MAAMX,iBAAiBA,CAACW,MAAc,EAAiB;IACrD,IAAI,CAACvC,iBAAiB,CAAC,CAAC;IACxB,MAAM5C,aAAa,CAACwE,iBAAiB,CAACW,MAAM,CAAC;EAC/C;EAEA,MAAMQ,0BAA0BA,CAC9BC,WAAmC,EACnCxC,eAAuB,EACN;IACjB,IAAI,CAACR,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAAC2F,0BAA0B,CAACC,WAAW,EAAExC,eAAe,CAAC;EAC/E;;EAEA;EACA,MAAMyC,sBAAsBA,CAAA,EAAoB;IAC9C,IAAI,CAACjD,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAAC6F,sBAAsB,CAAC,CAAC;EAC/C;;EAEA;EACA,MAAMC,kBAAkBA,CAACX,MAAc,EAA0B;IAC/D,IAAI,CAACvC,iBAAiB,CAAC,CAAC;IACxB,OAAO5C,aAAa,CAAC8F,kBAAkB,CAACX,MAAM,CAAC;EACjD;;EAEA;EACA,MAAMY,iBAAiBA,CAAA,EAAkB;IACvC,IAAI,CAACnD,iBAAiB,CAAC,CAAC;IACxB,MAAM5C,aAAa,CAAC+F,iBAAiB,CAAC,CAAC;EACzC;;EAEA;EACAC,iBAAiBA,CAACC,QAA6C,EAAc;IAC3E,MAAMC,YAAY,GAAG7F,YAAY,CAAC8F,WAAW,CAAC,mBAAmB,EAAEF,QAAQ,CAAC;IAC5E,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEAC,iBAAiBA,CAACJ,QAA6C,EAAc;IAC3E,MAAMC,YAAY,GAAG7F,YAAY,CAAC8F,WAAW,CAAC,mBAAmB,EAAEF,QAAQ,CAAC;IAC5E,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEAE,cAAcA,CAACL,QAA0C,EAAc;IACrE,MAAMC,YAAY,GAAG7F,YAAY,CAAC8F,WAAW,CAAC,gBAAgB,EAAEF,QAAQ,CAAC;IACzE,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEAG,qBAAqBA,CAACN,QAAiD,EAAc;IACnF,MAAMC,YAAY,GAAG7F,YAAY,CAAC8F,WAAW,CAAC,uBAAuB,EAAEF,QAAQ,CAAC;IAChF,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEAI,qBAAqBA,CAACP,QAAiD,EAAc;IACnF,MAAMC,YAAY,GAAG7F,YAAY,CAAC8F,WAAW,CAAC,uBAAuB,EAAEF,QAAQ,CAAC;IAChF,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEAK,wBAAwBA,CAACR,QAAoD,EAAc;IACzF,MAAMC,YAAY,GAAG7F,YAAY,CAAC8F,WAAW,CAAC,0BAA0B,EAAEF,QAAQ,CAAC;IACnF,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEAM,aAAaA,CAACT,QAAkE,EAAc;IAC5F,MAAMC,YAAY,GAAG7F,YAAY,CAAC8F,WAAW,CAAC,eAAe,EAAEF,QAAQ,CAAC;IACxE,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEAO,aAAaA,CAACV,QAAkE,EAAc;IAC5F,MAAMC,YAAY,GAAG7F,YAAY,CAAC8F,WAAW,CAAC,eAAe,EAAEF,QAAQ,CAAC;IACxE,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEAQ,OAAOA,CAACX,QAAmC,EAAc;IACvD,MAAMC,YAAY,GAAG7F,YAAY,CAAC8F,WAAW,CAAC,SAAS,EAAEF,QAAQ,CAAC;IAClE,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;EAEQxD,iBAAiBA,CAAA,EAAS;IAChC,IAAI,CAAC,IAAI,CAACrC,aAAa,EAAE;MACvB,MAAM,IAAIH,KAAK,CAAC,sDAAsD,CAAC;IACzE;EACF;AACF;;AAEA;AACA,OAAO,MAAMH,OAAO,GAAG,IAAIK,cAAc,CAAC,CAAC;;AAE3C;AACA,SAASA,cAAc;;AAEvB;AACA,eAAeL,OAAO","ignoreList":[]}
@@ -137,13 +137,22 @@ declare class BleMeshService {
137
137
  * @param options.secondSignerPublicKey - Preferred second signer (optional, any peer can sign if not specified)
138
138
  * @param options.description - Description of the transaction
139
139
  * @param options.recipientPeerId - Specific peer to send to (optional, broadcasts to all if not specified)
140
+ * @param options.ensureSession - Auto-initiate handshake if no encrypted session exists (default: true)
140
141
  */
141
142
  sendTransaction(serializedTransaction: string, options?: {
142
143
  firstSignerPublicKey: string;
143
144
  secondSignerPublicKey?: string;
144
145
  description?: string;
145
146
  recipientPeerId?: string;
147
+ ensureSession?: boolean;
146
148
  }): Promise<string>;
149
+ /**
150
+ * Ensure encrypted sessions exist with target peer(s) before sending transactions.
151
+ * Auto-initiates handshakes for peers without active sessions.
152
+ *
153
+ * @param recipientPeerId - Specific peer ID, or null/undefined to check all connected peers
154
+ */
155
+ private ensureEncryptedSessions;
147
156
  respondToTransaction(transactionId: string, recipientPeerId: string, response: {
148
157
  signedTransaction?: string;
149
158
  error?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magicred-1/ble-mesh",
3
- "version": "1.2.3",
3
+ "version": "1.2.5",
4
4
  "description": "BLE Mesh networking library for React Native with seamless permissions",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/src/index.ts CHANGED
@@ -301,6 +301,7 @@ class BleMeshService {
301
301
  * @param options.secondSignerPublicKey - Preferred second signer (optional, any peer can sign if not specified)
302
302
  * @param options.description - Description of the transaction
303
303
  * @param options.recipientPeerId - Specific peer to send to (optional, broadcasts to all if not specified)
304
+ * @param options.ensureSession - Auto-initiate handshake if no encrypted session exists (default: true)
304
305
  */
305
306
  async sendTransaction(
306
307
  serializedTransaction: string,
@@ -309,9 +310,17 @@ class BleMeshService {
309
310
  secondSignerPublicKey?: string;
310
311
  description?: string;
311
312
  recipientPeerId?: string;
313
+ ensureSession?: boolean;
312
314
  }
313
315
  ): Promise<string> {
314
316
  this.ensureInitialized();
317
+
318
+ // Auto-initiate handshakes if needed (default: true)
319
+ const ensureSession = options?.ensureSession !== false;
320
+ if (ensureSession) {
321
+ await this.ensureEncryptedSessions(options?.recipientPeerId);
322
+ }
323
+
315
324
  const txId = Math.random().toString(36).substring(2, 15);
316
325
  return BleMeshModule.sendTransaction(
317
326
  txId,
@@ -323,6 +332,44 @@ class BleMeshService {
323
332
  );
324
333
  }
325
334
 
335
+ /**
336
+ * Ensure encrypted sessions exist with target peer(s) before sending transactions.
337
+ * Auto-initiates handshakes for peers without active sessions.
338
+ *
339
+ * @param recipientPeerId - Specific peer ID, or null/undefined to check all connected peers
340
+ */
341
+ private async ensureEncryptedSessions(recipientPeerId?: string | null): Promise<void> {
342
+ if (recipientPeerId) {
343
+ // Check specific peer
344
+ const hasSession = await this.hasEncryptedSession(recipientPeerId);
345
+ if (!hasSession) {
346
+ console.log(`[BleMesh] No encrypted session with ${recipientPeerId}, initiating handshake...`);
347
+ await this.initiateHandshake(recipientPeerId);
348
+ // Wait briefly for handshake to complete
349
+ await new Promise(resolve => setTimeout(resolve, 500));
350
+ }
351
+ } else {
352
+ // Check all connected peers
353
+ const peers = await this.getPeers();
354
+ const connectedPeers = peers.filter(p => p.isConnected);
355
+
356
+ console.log(`[BleMesh] Checking sessions for ${connectedPeers.length} connected peers...`);
357
+
358
+ for (const peer of connectedPeers) {
359
+ const hasSession = await this.hasEncryptedSession(peer.peerId);
360
+ if (!hasSession) {
361
+ console.log(`[BleMesh] No encrypted session with ${peer.nickname} (${peer.peerId}), initiating handshake...`);
362
+ await this.initiateHandshake(peer.peerId);
363
+ }
364
+ }
365
+
366
+ // Wait for handshakes to complete
367
+ if (connectedPeers.length > 0) {
368
+ await new Promise(resolve => setTimeout(resolve, 1000));
369
+ }
370
+ }
371
+ }
372
+
326
373
  // Respond to a received transaction (sign or reject)
327
374
  async respondToTransaction(
328
375
  transactionId: string,