@bsv/message-box-client 1.1.10 → 1.2.0
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/dist/cjs/package.json +4 -4
- package/dist/cjs/src/MessageBoxClient.js +747 -129
- package/dist/cjs/src/MessageBoxClient.js.map +1 -1
- package/dist/cjs/src/PeerPayClient.js +61 -28
- package/dist/cjs/src/PeerPayClient.js.map +1 -1
- package/dist/cjs/src/Utils/logger.js +22 -21
- package/dist/cjs/src/Utils/logger.js.map +1 -1
- package/dist/cjs/src/types/permissions.js +6 -0
- package/dist/cjs/src/types/permissions.js.map +1 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/MessageBoxClient.js +636 -57
- package/dist/esm/src/MessageBoxClient.js.map +1 -1
- package/dist/esm/src/PeerPayClient.js +1 -1
- package/dist/esm/src/PeerPayClient.js.map +1 -1
- package/dist/esm/src/Utils/logger.js +17 -19
- package/dist/esm/src/Utils/logger.js.map +1 -1
- package/dist/esm/src/types/permissions.js +5 -0
- package/dist/esm/src/types/permissions.js.map +1 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/MessageBoxClient.d.ts +235 -24
- package/dist/types/src/MessageBoxClient.d.ts.map +1 -1
- package/dist/types/src/PeerPayClient.d.ts.map +1 -1
- package/dist/types/src/Utils/logger.d.ts +5 -8
- package/dist/types/src/Utils/logger.d.ts.map +1 -1
- package/dist/types/src/types/permissions.d.ts +75 -0
- package/dist/types/src/types/permissions.d.ts.map +1 -0
- package/dist/types/src/types.d.ts +80 -2
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +1 -1
- package/package.json +4 -4
- package/src/MessageBoxClient.ts +781 -68
- package/src/PeerPayClient.ts +11 -11
- package/src/Utils/logger.ts +17 -19
- package/src/types/permissions.ts +81 -0
- package/src/types.ts +87 -2
|
@@ -21,16 +21,10 @@
|
|
|
21
21
|
* @author Project Babbage
|
|
22
22
|
* @license Open BSV License
|
|
23
23
|
*/
|
|
24
|
-
import { AuthFetch,
|
|
24
|
+
import { AuthFetch, PubKeyHex } from '@bsv/sdk';
|
|
25
25
|
import { AuthSocketClient } from '@bsv/authsocket-client';
|
|
26
|
-
import { AcknowledgeMessageParams, ListMessagesParams, MessageBoxClientOptions, PeerMessage, SendMessageParams, SendMessageResponse } from './types.js';
|
|
27
|
-
|
|
28
|
-
host: string;
|
|
29
|
-
txid: HexString;
|
|
30
|
-
outputIndex: number;
|
|
31
|
-
lockingScript: LockingScript;
|
|
32
|
-
beef: BEEF;
|
|
33
|
-
}
|
|
26
|
+
import { AcknowledgeMessageParams, AdvertisementToken, ListMessagesParams, MessageBoxClientOptions, PeerMessage, SendMessageParams, SendMessageResponse, DeviceRegistrationParams, DeviceRegistrationResponse, RegisteredDevice } from './types.js';
|
|
27
|
+
import { SetMessageBoxPermissionParams, GetMessageBoxPermissionParams, MessageBoxPermission, MessageBoxQuote, ListPermissionsParams, GetQuoteParams } from './types/permissions.js';
|
|
34
28
|
/**
|
|
35
29
|
* @class MessageBoxClient
|
|
36
30
|
* @description
|
|
@@ -72,7 +66,7 @@ export declare class MessageBoxClient {
|
|
|
72
66
|
* @constructor
|
|
73
67
|
* @param {Object} options - Initialization options for the MessageBoxClient.
|
|
74
68
|
* @param {string} [options.host] - The base URL of the MessageBox server. If omitted, defaults to mainnet/testnet hosts.
|
|
75
|
-
* @param {
|
|
69
|
+
* @param {WalletInterface} options.walletClient - Wallet instance used for authentication, signing, and encryption.
|
|
76
70
|
* @param {boolean} [options.enableLogging=false] - Whether to enable detailed debug logging to the console.
|
|
77
71
|
* @param {'local' | 'mainnet' | 'testnet'} [options.networkPreset='mainnet'] - Overlay network preset used for routing and advertisement lookup.
|
|
78
72
|
*
|
|
@@ -97,6 +91,7 @@ export declare class MessageBoxClient {
|
|
|
97
91
|
* @method init
|
|
98
92
|
* @async
|
|
99
93
|
* @param {string} [targetHost] - Optional host to set or override the default host.
|
|
94
|
+
* @param {string} [originator] - Optional originator to use with walletClient.
|
|
100
95
|
* @returns {Promise<void>}
|
|
101
96
|
*
|
|
102
97
|
* @description
|
|
@@ -115,7 +110,7 @@ export declare class MessageBoxClient {
|
|
|
115
110
|
* await client.init()
|
|
116
111
|
* await client.sendMessage({ recipient, messageBox: 'inbox', body: 'Hello' })
|
|
117
112
|
*/
|
|
118
|
-
init(targetHost?: string): Promise<void>;
|
|
113
|
+
init(targetHost?: string, originator?: string): Promise<void>;
|
|
119
114
|
/**
|
|
120
115
|
* @method assertInitialized
|
|
121
116
|
* @private
|
|
@@ -138,12 +133,13 @@ export declare class MessageBoxClient {
|
|
|
138
133
|
getJoinedRooms(): Set<string>;
|
|
139
134
|
/**
|
|
140
135
|
* @method getIdentityKey
|
|
136
|
+
* @param {string} [originator] - Optional originator to use for identity key lookup
|
|
141
137
|
* @returns {Promise<string>} The identity public key of the user
|
|
142
138
|
* @description
|
|
143
139
|
* Returns the client's identity key, used for signing, encryption, and addressing.
|
|
144
140
|
* If not already loaded, it will fetch and cache it.
|
|
145
141
|
*/
|
|
146
|
-
getIdentityKey(): Promise<string>;
|
|
142
|
+
getIdentityKey(originator?: string): Promise<string>;
|
|
147
143
|
/**
|
|
148
144
|
* @property testSocket
|
|
149
145
|
* @readonly
|
|
@@ -158,6 +154,7 @@ export declare class MessageBoxClient {
|
|
|
158
154
|
get testSocket(): ReturnType<typeof AuthSocketClient> | undefined;
|
|
159
155
|
/**
|
|
160
156
|
* @method initializeConnection
|
|
157
|
+
* @param {string} [originator] - Optional originator to use for authentication.
|
|
161
158
|
* @async
|
|
162
159
|
* @returns {Promise<void>}
|
|
163
160
|
* @description
|
|
@@ -179,11 +176,12 @@ export declare class MessageBoxClient {
|
|
|
179
176
|
* await mb.initializeConnection()
|
|
180
177
|
* // WebSocket is now ready for use
|
|
181
178
|
*/
|
|
182
|
-
initializeConnection(): Promise<void>;
|
|
179
|
+
initializeConnection(originator?: string): Promise<void>;
|
|
183
180
|
/**
|
|
184
181
|
* @method resolveHostForRecipient
|
|
185
182
|
* @async
|
|
186
183
|
* @param {string} identityKey - The public identity key of the intended recipient.
|
|
184
|
+
* @param {string} [originator] - The originator to use for the WalletClient.
|
|
187
185
|
* @returns {Promise<string>} - A fully qualified host URL for the recipient's MessageBox server.
|
|
188
186
|
*
|
|
189
187
|
* @description
|
|
@@ -198,7 +196,7 @@ export declare class MessageBoxClient {
|
|
|
198
196
|
* @example
|
|
199
197
|
* const host = await resolveHostForRecipient('028d...') // → returns either overlay host or this.host
|
|
200
198
|
*/
|
|
201
|
-
resolveHostForRecipient(identityKey: string): Promise<string>;
|
|
199
|
+
resolveHostForRecipient(identityKey: string, originator?: string): Promise<string>;
|
|
202
200
|
/**
|
|
203
201
|
* Core lookup: ask the LookupResolver (optionally filtered by host),
|
|
204
202
|
* decode every PushDrop output, and collect all the host URLs you find.
|
|
@@ -207,7 +205,7 @@ export declare class MessageBoxClient {
|
|
|
207
205
|
* @param host? if passed, only look for adverts anointed at that host
|
|
208
206
|
* @returns 0-length array if nothing valid was found
|
|
209
207
|
*/
|
|
210
|
-
queryAdvertisements(identityKey?: string, host?: string): Promise<AdvertisementToken[]>;
|
|
208
|
+
queryAdvertisements(identityKey?: string, host?: string, originator?: string): Promise<AdvertisementToken[]>;
|
|
211
209
|
/**
|
|
212
210
|
* @method joinRoom
|
|
213
211
|
* @async
|
|
@@ -256,9 +254,10 @@ export declare class MessageBoxClient {
|
|
|
256
254
|
* onMessage: (msg) => console.log('Received live message:', msg)
|
|
257
255
|
* })
|
|
258
256
|
*/
|
|
259
|
-
listenForLiveMessages({ onMessage, messageBox }: {
|
|
257
|
+
listenForLiveMessages({ onMessage, messageBox, originator }: {
|
|
260
258
|
onMessage: (message: PeerMessage) => void;
|
|
261
259
|
messageBox: string;
|
|
260
|
+
originator?: string;
|
|
262
261
|
}): Promise<void>;
|
|
263
262
|
/**
|
|
264
263
|
* @method sendLiveMessage
|
|
@@ -289,7 +288,7 @@ export declare class MessageBoxClient {
|
|
|
289
288
|
* body: { amount: 1000 }
|
|
290
289
|
* })
|
|
291
290
|
*/
|
|
292
|
-
sendLiveMessage({ recipient, messageBox, body, messageId, skipEncryption }: SendMessageParams): Promise<SendMessageResponse>;
|
|
291
|
+
sendLiveMessage({ recipient, messageBox, body, messageId, skipEncryption, checkPermissions, originator }: SendMessageParams): Promise<SendMessageResponse>;
|
|
293
292
|
/**
|
|
294
293
|
* @method leaveRoom
|
|
295
294
|
* @async
|
|
@@ -347,7 +346,7 @@ export declare class MessageBoxClient {
|
|
|
347
346
|
* body: { type: 'ping' }
|
|
348
347
|
* })
|
|
349
348
|
*/
|
|
350
|
-
sendMessage(message: SendMessageParams, overrideHost?: string): Promise<SendMessageResponse>;
|
|
349
|
+
sendMessage(message: SendMessageParams, overrideHost?: string, originator?: string): Promise<SendMessageResponse>;
|
|
351
350
|
/**
|
|
352
351
|
* @method anointHost
|
|
353
352
|
* @async
|
|
@@ -371,13 +370,14 @@ export declare class MessageBoxClient {
|
|
|
371
370
|
* @example
|
|
372
371
|
* const { txid } = await client.anointHost('https://my-messagebox.io')
|
|
373
372
|
*/
|
|
374
|
-
anointHost(host: string): Promise<{
|
|
373
|
+
anointHost(host: string, originator?: string): Promise<{
|
|
375
374
|
txid: string;
|
|
376
375
|
}>;
|
|
377
376
|
/**
|
|
378
377
|
* @method revokeHostAdvertisement
|
|
379
378
|
* @async
|
|
380
379
|
* @param {AdvertisementToken} advertisementToken - The advertisement token containing the messagebox host to revoke.
|
|
380
|
+
* @param {string} [originator] - Optional originator to use with walletClient.
|
|
381
381
|
* @returns {Promise<{ txid: string }>} - The transaction ID of the revocation broadcast to the overlay network.
|
|
382
382
|
*
|
|
383
383
|
* @description
|
|
@@ -387,7 +387,7 @@ export declare class MessageBoxClient {
|
|
|
387
387
|
* @example
|
|
388
388
|
* const { txid } = await client.revokeHost('https://my-messagebox.io')
|
|
389
389
|
*/
|
|
390
|
-
revokeHostAdvertisement(advertisementToken: AdvertisementToken): Promise<{
|
|
390
|
+
revokeHostAdvertisement(advertisementToken: AdvertisementToken, originator?: string): Promise<{
|
|
391
391
|
txid: string;
|
|
392
392
|
}>;
|
|
393
393
|
/**
|
|
@@ -402,9 +402,16 @@ export declare class MessageBoxClient {
|
|
|
402
402
|
*
|
|
403
403
|
* Each message is:
|
|
404
404
|
* - Parsed and, if encrypted, decrypted using AES-256-GCM via BRC-2-compliant ECDH key derivation and symmetric encryption.
|
|
405
|
+
* - Automatically processed for payments: if the message includes recipient fee payments, they are internalized using `walletClient.internalizeAction()`.
|
|
405
406
|
* - Returned as a normalized `PeerMessage` with readable string body content.
|
|
406
407
|
*
|
|
407
|
-
*
|
|
408
|
+
* Payment Processing:
|
|
409
|
+
* - Detects messages that include payment data (from paid message delivery).
|
|
410
|
+
* - Automatically internalizes recipient payment outputs, allowing you to receive payments without additional API calls.
|
|
411
|
+
* - Only recipient payments are stored with messages - delivery fees are already processed by the server.
|
|
412
|
+
* - Continues processing messages even if payment internalization fails.
|
|
413
|
+
*
|
|
414
|
+
* Decryption automatically derives a shared secret using the sender's identity key and the receiver's child private key.
|
|
408
415
|
* If the sender is the same as the recipient, the `counterparty` is set to `'self'`.
|
|
409
416
|
*
|
|
410
417
|
* @throws {Error} If no messageBox is specified, the request fails, or the server returns an error.
|
|
@@ -412,8 +419,9 @@ export declare class MessageBoxClient {
|
|
|
412
419
|
* @example
|
|
413
420
|
* const messages = await client.listMessages({ messageBox: 'inbox' })
|
|
414
421
|
* messages.forEach(msg => console.log(msg.sender, msg.body))
|
|
422
|
+
* // Payments included with messages are automatically received
|
|
415
423
|
*/
|
|
416
|
-
listMessages({ messageBox, host }: ListMessagesParams): Promise<PeerMessage[]>;
|
|
424
|
+
listMessages({ messageBox, host, originator }: ListMessagesParams): Promise<PeerMessage[]>;
|
|
417
425
|
/**
|
|
418
426
|
* @method acknowledgeMessage
|
|
419
427
|
* @async
|
|
@@ -435,7 +443,210 @@ export declare class MessageBoxClient {
|
|
|
435
443
|
* @example
|
|
436
444
|
* await client.acknowledgeMessage({ messageIds: ['msg123', 'msg456'] })
|
|
437
445
|
*/
|
|
438
|
-
acknowledgeMessage({ messageIds, host }: AcknowledgeMessageParams): Promise<string>;
|
|
446
|
+
acknowledgeMessage({ messageIds, host, originator }: AcknowledgeMessageParams): Promise<string>;
|
|
447
|
+
/**
|
|
448
|
+
* @method setMessageBoxPermission
|
|
449
|
+
* @async
|
|
450
|
+
* @param {SetMessageBoxPermissionParams} params - Permission configuration
|
|
451
|
+
* @param {string} [overrideHost] - Optional host override
|
|
452
|
+
* @returns {Promise<void>} Permission status after setting
|
|
453
|
+
*
|
|
454
|
+
* @description
|
|
455
|
+
* Sets permission for receiving messages in a specific messageBox.
|
|
456
|
+
* Can set sender-specific permissions or box-wide defaults.
|
|
457
|
+
*
|
|
458
|
+
* @example
|
|
459
|
+
* // Set box-wide default: allow notifications for 10 sats
|
|
460
|
+
* await client.setMessageBoxPermission({ messageBox: 'notifications', recipientFee: 10 })
|
|
461
|
+
*
|
|
462
|
+
* // Block specific sender
|
|
463
|
+
* await client.setMessageBoxPermission({
|
|
464
|
+
* messageBox: 'notifications',
|
|
465
|
+
* sender: '03abc123...',
|
|
466
|
+
* recipientFee: -1
|
|
467
|
+
* })
|
|
468
|
+
*/
|
|
469
|
+
setMessageBoxPermission(params: SetMessageBoxPermissionParams, overrideHost?: string): Promise<void>;
|
|
470
|
+
/**
|
|
471
|
+
* @method getMessageBoxPermission
|
|
472
|
+
* @async
|
|
473
|
+
* @param {GetMessageBoxPermissionParams} params - Permission query parameters
|
|
474
|
+
* @param {string} [overrideHost] - Optional host override
|
|
475
|
+
* @returns {Promise<MessageBoxPermission | null>} Permission data (null if not set)
|
|
476
|
+
*
|
|
477
|
+
* @description
|
|
478
|
+
* Gets current permission data for a sender/messageBox combination.
|
|
479
|
+
* Returns null if no permission is set.
|
|
480
|
+
*
|
|
481
|
+
* @example
|
|
482
|
+
* const status = await client.getMessageBoxPermission({
|
|
483
|
+
* recipient: '03def456...',
|
|
484
|
+
* messageBox: 'notifications',
|
|
485
|
+
* sender: '03abc123...'
|
|
486
|
+
* })
|
|
487
|
+
*/
|
|
488
|
+
getMessageBoxPermission(params: GetMessageBoxPermissionParams, overrideHost?: string): Promise<MessageBoxPermission | null>;
|
|
489
|
+
/**
|
|
490
|
+
* @method getMessageBoxQuote
|
|
491
|
+
* @async
|
|
492
|
+
* @param {GetQuoteParams} params - Quote request parameters
|
|
493
|
+
* @returns {Promise<MessageBoxQuote>} Fee quote and permission status
|
|
494
|
+
*
|
|
495
|
+
* @description
|
|
496
|
+
* Gets a fee quote for sending a message, including delivery and recipient fees.
|
|
497
|
+
*
|
|
498
|
+
* @example
|
|
499
|
+
* const quote = await client.getMessageBoxQuote({
|
|
500
|
+
* recipient: '03def456...',
|
|
501
|
+
* messageBox: 'notifications'
|
|
502
|
+
* })
|
|
503
|
+
*/
|
|
504
|
+
getMessageBoxQuote(params: GetQuoteParams, overrideHost?: string): Promise<MessageBoxQuote>;
|
|
505
|
+
/**
|
|
506
|
+
* @method listMessageBoxPermissions
|
|
507
|
+
* @async
|
|
508
|
+
* @param {ListPermissionsParams} [params] - Optional filtering and pagination parameters
|
|
509
|
+
* @returns {Promise<MessageBoxPermission[]>} List of current permissions
|
|
510
|
+
*
|
|
511
|
+
* @description
|
|
512
|
+
* Lists permissions for the authenticated user's messageBoxes with optional pagination.
|
|
513
|
+
*
|
|
514
|
+
* @example
|
|
515
|
+
* // List all permissions
|
|
516
|
+
* const all = await client.listMessageBoxPermissions()
|
|
517
|
+
*
|
|
518
|
+
* // List only notification permissions with pagination
|
|
519
|
+
* const notifications = await client.listMessageBoxPermissions({
|
|
520
|
+
* messageBox: 'notifications',
|
|
521
|
+
* limit: 50,
|
|
522
|
+
* offset: 0
|
|
523
|
+
* })
|
|
524
|
+
*/
|
|
525
|
+
listMessageBoxPermissions(params?: ListPermissionsParams, overrideHost?: string): Promise<MessageBoxPermission[]>;
|
|
526
|
+
/**
|
|
527
|
+
* @method allowNotificationsFromPeer
|
|
528
|
+
* @async
|
|
529
|
+
* @param {PubKeyHex} identityKey - Sender's identity key to allow
|
|
530
|
+
* @param {number} [recipientFee=0] - Fee to charge (0 for always allow)
|
|
531
|
+
* @param {string} [overrideHost] - Optional host override
|
|
532
|
+
* @returns {Promise<void>} Permission status after allowing
|
|
533
|
+
*
|
|
534
|
+
* @description
|
|
535
|
+
* Convenience method to allow notifications from a specific peer.
|
|
536
|
+
*
|
|
537
|
+
* @example
|
|
538
|
+
* await client.allowNotificationsFromPeer('03abc123...') // Always allow
|
|
539
|
+
* await client.allowNotificationsFromPeer('03def456...', 5) // Allow for 5 sats
|
|
540
|
+
*/
|
|
541
|
+
allowNotificationsFromPeer(identityKey: PubKeyHex, recipientFee?: number, overrideHost?: string): Promise<void>;
|
|
542
|
+
/**
|
|
543
|
+
* @method denyNotificationsFromPeer
|
|
544
|
+
* @async
|
|
545
|
+
* @param {PubKeyHex} identityKey - Sender's identity key to block
|
|
546
|
+
* @returns {Promise<void>} Permission status after denying
|
|
547
|
+
*
|
|
548
|
+
* @description
|
|
549
|
+
* Convenience method to block notifications from a specific peer.
|
|
550
|
+
*
|
|
551
|
+
* @example
|
|
552
|
+
* await client.denyNotificationsFromPeer('03spam123...')
|
|
553
|
+
*/
|
|
554
|
+
denyNotificationsFromPeer(identityKey: PubKeyHex, overrideHost?: string): Promise<void>;
|
|
555
|
+
/**
|
|
556
|
+
* @method checkPeerNotificationStatus
|
|
557
|
+
* @async
|
|
558
|
+
* @param {PubKeyHex} identityKey - Sender's identity key to check
|
|
559
|
+
* @returns {Promise<MessageBoxPermission>} Current permission status
|
|
560
|
+
*
|
|
561
|
+
* @description
|
|
562
|
+
* Convenience method to check notification permission for a specific peer.
|
|
563
|
+
*
|
|
564
|
+
* @example
|
|
565
|
+
* const status = await client.checkPeerNotificationStatus('03abc123...')
|
|
566
|
+
* console.log(status.allowed) // true/false
|
|
567
|
+
*/
|
|
568
|
+
checkPeerNotificationStatus(identityKey: PubKeyHex, overrideHost?: string): Promise<MessageBoxPermission | null>;
|
|
569
|
+
/**
|
|
570
|
+
* @method listPeerNotifications
|
|
571
|
+
* @async
|
|
572
|
+
* @returns {Promise<MessageBoxPermission[]>} List of notification permissions
|
|
573
|
+
*
|
|
574
|
+
* @description
|
|
575
|
+
* Convenience method to list all notification permissions.
|
|
576
|
+
*
|
|
577
|
+
* @example
|
|
578
|
+
* const notifications = await client.listPeerNotifications()
|
|
579
|
+
*/
|
|
580
|
+
listPeerNotifications(overrideHost?: string): Promise<MessageBoxPermission[]>;
|
|
581
|
+
/**
|
|
582
|
+
* @method sendNotification
|
|
583
|
+
* @async
|
|
584
|
+
* @param {PubKeyHex} recipient - Recipient's identity key
|
|
585
|
+
* @param {string | object} body - Notification content
|
|
586
|
+
* @param {string} [overrideHost] - Optional host override
|
|
587
|
+
* @returns {Promise<SendMessageResponse>} Send result
|
|
588
|
+
*
|
|
589
|
+
* @description
|
|
590
|
+
* Convenience method to send a notification with automatic quote fetching and payment handling.
|
|
591
|
+
* Automatically determines the required payment amount and creates the payment if needed.
|
|
592
|
+
*
|
|
593
|
+
* @example
|
|
594
|
+
* // Send notification (auto-determines payment needed)
|
|
595
|
+
* await client.sendNotification('03def456...', 'Hello!')
|
|
596
|
+
*
|
|
597
|
+
* // Send with maximum payment limit for safety
|
|
598
|
+
* await client.sendNotification('03def456...', { title: 'Alert', body: 'Important update' }, 50)
|
|
599
|
+
*/
|
|
600
|
+
sendNotification(recipient: PubKeyHex, body: string | object, overrideHost?: string): Promise<SendMessageResponse>;
|
|
601
|
+
/**
|
|
602
|
+
* Register a device for FCM push notifications.
|
|
603
|
+
*
|
|
604
|
+
* @async
|
|
605
|
+
* @param {DeviceRegistrationParams} params - Device registration parameters
|
|
606
|
+
* @param {string} [overrideHost] - Optional host override
|
|
607
|
+
* @returns {Promise<DeviceRegistrationResponse>} Registration response
|
|
608
|
+
*
|
|
609
|
+
* @description
|
|
610
|
+
* Registers a device with the message box server to receive FCM push notifications.
|
|
611
|
+
* The FCM token is obtained from Firebase SDK on the client side.
|
|
612
|
+
*
|
|
613
|
+
* @example
|
|
614
|
+
* const result = await client.registerDevice({
|
|
615
|
+
* fcmToken: 'eBo8F...',
|
|
616
|
+
* platform: 'ios',
|
|
617
|
+
* deviceId: 'iPhone15Pro'
|
|
618
|
+
* })
|
|
619
|
+
*/
|
|
620
|
+
registerDevice(params: DeviceRegistrationParams, overrideHost?: string): Promise<DeviceRegistrationResponse>;
|
|
621
|
+
/**
|
|
622
|
+
* List all registered devices for push notifications.
|
|
623
|
+
*
|
|
624
|
+
* @async
|
|
625
|
+
* @param {string} [overrideHost] - Optional host override
|
|
626
|
+
* @returns {Promise<RegisteredDevice[]>} Array of registered devices
|
|
627
|
+
*
|
|
628
|
+
* @description
|
|
629
|
+
* Retrieves all devices registered by the authenticated user for FCM push notifications.
|
|
630
|
+
* Only shows devices belonging to the current user (authenticated via AuthFetch).
|
|
631
|
+
*
|
|
632
|
+
* @example
|
|
633
|
+
* const devices = await client.listRegisteredDevices()
|
|
634
|
+
* console.log(`Found ${devices.length} registered devices`)
|
|
635
|
+
* devices.forEach(device => {
|
|
636
|
+
* console.log(`Device: ${device.platform} - ${device.fcmToken}`)
|
|
637
|
+
* })
|
|
638
|
+
*/
|
|
639
|
+
listRegisteredDevices(overrideHost?: string): Promise<RegisteredDevice[]>;
|
|
640
|
+
private static getStatusFromFee;
|
|
641
|
+
/**
|
|
642
|
+
* Creates payment transaction for message delivery fees
|
|
643
|
+
* TODO: Consider consolidating payment generating logic with a util PeerPayClient can use as well.
|
|
644
|
+
* @private
|
|
645
|
+
* @param {string} recipient - Recipient identity key
|
|
646
|
+
* @param {MessageBoxQuote} quote - Fee quote with delivery and recipient fees
|
|
647
|
+
* @param {string} description - Description for the payment transaction
|
|
648
|
+
* @returns {Promise<Payment>} Payment transaction data
|
|
649
|
+
*/
|
|
650
|
+
private createMessagePayment;
|
|
439
651
|
}
|
|
440
|
-
export {};
|
|
441
652
|
//# sourceMappingURL=MessageBoxClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageBoxClient.d.ts","sourceRoot":"","sources":["../../../src/MessageBoxClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAEL,SAAS,EAMT,
|
|
1
|
+
{"version":3,"file":"MessageBoxClient.d.ts","sourceRoot":"","sources":["../../../src/MessageBoxClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PeerPayClient.d.ts","sourceRoot":"","sources":["../../../src/PeerPayClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAAE,YAAY,EAAiC,UAAU,EAAa,YAAY,EAAE,MAAM,UAAU,CAAA;AAc3G,eAAO,MAAM,2BAA2B,kBAAkB,CAAA;AAG1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kBAAkB,EAAE;QAClB,gBAAgB,EAAE,YAAY,CAAA;QAC9B,gBAAgB,EAAE,YAAY,CAAA;KAC/B,CAAA;IACD,WAAW,EAAE,UAAU,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,YAAY,CAAA;CACpB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAc;IAClD,OAAO,CAAC,kBAAkB,CAAC,CAAW;
|
|
1
|
+
{"version":3,"file":"PeerPayClient.d.ts","sourceRoot":"","sources":["../../../src/PeerPayClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAAE,YAAY,EAAiC,UAAU,EAAa,YAAY,EAAE,MAAM,UAAU,CAAA;AAc3G,eAAO,MAAM,2BAA2B,kBAAkB,CAAA;AAG1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kBAAkB,EAAE;QAClB,gBAAgB,EAAE,YAAY,CAAA;QAC9B,gBAAgB,EAAE,YAAY,CAAA;KAC/B,CAAA;IACD,WAAW,EAAE,UAAU,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,YAAY,CAAA;CACpB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAc;IAClD,OAAO,CAAC,kBAAkB,CAAC,CAAW;gBAE1B,MAAM,EAAE,mBAAmB;IASvC,OAAO,KAAK,iBAAiB,GAK5B;IAED;;;;;;;;;;;OAWG;IACG,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAgEvE;;;;;;;;;;;OAWG;IACG,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC;IAevD;;;;;;;;;;;;OAYG;IACG,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB5D;;;;;;;;;;OAUG;IACG,qBAAqB,CAAC,EAC1B,SAAS,EACV,EAAE;QAAE,SAAS,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBpE;;;;;;;;;;OAUG;IACG,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IA8B3D;;;;;;;;;OASG;IACG,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAoD5D;;;;;;;OAOG;IACG,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;CAazD"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static warn(...args: unknown[]): void;
|
|
7
|
-
static error(...args: unknown[]): void;
|
|
8
|
-
}
|
|
1
|
+
export declare function enable(): void;
|
|
2
|
+
export declare function disable(): void;
|
|
3
|
+
export declare function log(...args: unknown[]): void;
|
|
4
|
+
export declare function warn(...args: unknown[]): void;
|
|
5
|
+
export declare function error(...args: unknown[]): void;
|
|
9
6
|
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/Utils/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/Utils/logger.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,IAAK,IAAI,CAE9B;AAED,wBAAgB,OAAO,IAAK,IAAI,CAE/B;AAED,wBAAgB,GAAG,CAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAI7C;AAED,wBAAgB,IAAI,CAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAI9C;AAED,wBAAgB,KAAK,CAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAE/C"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Permission and fee management types for MessageBox system
|
|
3
|
+
*/
|
|
4
|
+
import { PubKeyHex } from '@bsv/sdk';
|
|
5
|
+
/**
|
|
6
|
+
* Parameters for setting message box permissions
|
|
7
|
+
*/
|
|
8
|
+
export interface SetMessageBoxPermissionParams {
|
|
9
|
+
/** The messageBox type (e.g., 'notifications', 'inbox') */
|
|
10
|
+
messageBox: string;
|
|
11
|
+
/** Optional sender - if omitted, sets box-wide default */
|
|
12
|
+
sender?: string;
|
|
13
|
+
/** Recipient fee: -1=block all, 0=always allow, >0=satoshi amount required */
|
|
14
|
+
recipientFee: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Parameters for getting message box permissions
|
|
18
|
+
*/
|
|
19
|
+
export interface GetMessageBoxPermissionParams {
|
|
20
|
+
/** The recipient's identity key */
|
|
21
|
+
recipient: string;
|
|
22
|
+
/** The messageBox type */
|
|
23
|
+
messageBox: string;
|
|
24
|
+
/** Optional sender - if omitted, gets box-wide default */
|
|
25
|
+
sender?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Permission response from server
|
|
29
|
+
*/
|
|
30
|
+
export interface MessageBoxPermission {
|
|
31
|
+
/** Sender identity key (null for box-wide defaults) */
|
|
32
|
+
sender: string | null;
|
|
33
|
+
/** MessageBox type */
|
|
34
|
+
messageBox: string;
|
|
35
|
+
/** Recipient fee setting */
|
|
36
|
+
recipientFee: number;
|
|
37
|
+
/** Permission status derived from recipientFee */
|
|
38
|
+
status: 'always_allow' | 'blocked' | 'payment_required';
|
|
39
|
+
/** Creation timestamp */
|
|
40
|
+
createdAt: string;
|
|
41
|
+
/** Last update timestamp */
|
|
42
|
+
updatedAt: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Fee quote response
|
|
46
|
+
*/
|
|
47
|
+
export interface MessageBoxQuote {
|
|
48
|
+
/** Server delivery fee */
|
|
49
|
+
deliveryFee: number;
|
|
50
|
+
/** Recipient fee */
|
|
51
|
+
recipientFee: number;
|
|
52
|
+
/** Delivery agent identity key */
|
|
53
|
+
deliveryAgentIdentityKey: PubKeyHex;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Parameters for listing permissions
|
|
57
|
+
*/
|
|
58
|
+
export interface ListPermissionsParams {
|
|
59
|
+
/** Optional messageBox filter */
|
|
60
|
+
messageBox?: string;
|
|
61
|
+
/** Optional pagination limit */
|
|
62
|
+
limit?: number;
|
|
63
|
+
/** Optional pagination offset */
|
|
64
|
+
offset?: number;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Parameters for getting fee quote
|
|
68
|
+
*/
|
|
69
|
+
export interface GetQuoteParams {
|
|
70
|
+
/** Recipient identity key */
|
|
71
|
+
recipient: string;
|
|
72
|
+
/** MessageBox type */
|
|
73
|
+
messageBox: string;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../../src/types/permissions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAA;IAClB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAA;IACjB,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,4BAA4B;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,kDAAkD;IAClD,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,kBAAkB,CAAA;IACvD,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,kCAAkC;IAClC,wBAAwB,EAAE,SAAS,CAAA;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Base64String,
|
|
1
|
+
import { AtomicBEEF, Base64String, BasketStringUnder300Bytes, BEEF, BooleanDefaultTrue, DescriptionString5to50Bytes, HexString, LabelStringUnder300Bytes, LockingScript, OutputTagStringUnder300Bytes, PositiveIntegerOrZero, PubKeyHex, WalletInterface } from '@bsv/sdk';
|
|
2
2
|
/**
|
|
3
3
|
* Configuration options for initializing a MessageBoxClient.
|
|
4
4
|
*/
|
|
@@ -7,7 +7,7 @@ export interface MessageBoxClientOptions {
|
|
|
7
7
|
* Wallet instance used for auth, identity, and encryption.
|
|
8
8
|
* If not provided, a new WalletClient will be created.
|
|
9
9
|
*/
|
|
10
|
-
walletClient?:
|
|
10
|
+
walletClient?: WalletInterface;
|
|
11
11
|
/**
|
|
12
12
|
* Base URL of the MessageBox server.
|
|
13
13
|
* @default 'https://messagebox.babbage.systems'
|
|
@@ -23,6 +23,10 @@ export interface MessageBoxClientOptions {
|
|
|
23
23
|
* @default 'local'
|
|
24
24
|
*/
|
|
25
25
|
networkPreset?: 'local' | 'mainnet' | 'testnet';
|
|
26
|
+
/**
|
|
27
|
+
* Originator of the message box client.
|
|
28
|
+
*/
|
|
29
|
+
originator?: string;
|
|
26
30
|
}
|
|
27
31
|
/**
|
|
28
32
|
* Represents a decrypted message received from a MessageBox.
|
|
@@ -56,6 +60,9 @@ export interface SendMessageParams {
|
|
|
56
60
|
body: string | object;
|
|
57
61
|
messageId?: string;
|
|
58
62
|
skipEncryption?: boolean;
|
|
63
|
+
/** Optional: Enable permission and fee checking (default: false for backwards compatibility) */
|
|
64
|
+
checkPermissions?: boolean;
|
|
65
|
+
originator?: string;
|
|
59
66
|
}
|
|
60
67
|
/**
|
|
61
68
|
* Server response structure for successful message delivery.
|
|
@@ -73,20 +80,24 @@ export interface SendMessageResponse {
|
|
|
73
80
|
*
|
|
74
81
|
* @property {string[]} messageIds - An array of message IDs to acknowledge.
|
|
75
82
|
* @property {string} [host] - Optional host URL where the messages originated.
|
|
83
|
+
* @property {string} [originator] - Optional originator of the message box client.
|
|
76
84
|
*/
|
|
77
85
|
export interface AcknowledgeMessageParams {
|
|
78
86
|
messageIds: string[];
|
|
79
87
|
host?: string;
|
|
88
|
+
originator?: string;
|
|
80
89
|
}
|
|
81
90
|
/**
|
|
82
91
|
* Parameters for listing messages in a message box.
|
|
83
92
|
*
|
|
84
93
|
* @property messageBox - The identifier of the message box to retrieve messages from.
|
|
85
94
|
* @property host - (Optional) The host URL to connect to for retrieving messages.
|
|
95
|
+
* @property originator - (Optional) The originator of the message box client.
|
|
86
96
|
*/
|
|
87
97
|
export interface ListMessagesParams {
|
|
88
98
|
messageBox: string;
|
|
89
99
|
host?: string;
|
|
100
|
+
originator?: string;
|
|
90
101
|
}
|
|
91
102
|
/**
|
|
92
103
|
* Encapsulates an AES-256-GCM encrypted message body.
|
|
@@ -96,4 +107,71 @@ export interface ListMessagesParams {
|
|
|
96
107
|
export interface EncryptedMessage {
|
|
97
108
|
encryptedMessage: Base64String;
|
|
98
109
|
}
|
|
110
|
+
export interface AdvertisementToken {
|
|
111
|
+
host: string;
|
|
112
|
+
txid: HexString;
|
|
113
|
+
outputIndex: number;
|
|
114
|
+
lockingScript: LockingScript;
|
|
115
|
+
beef: BEEF;
|
|
116
|
+
}
|
|
117
|
+
export interface Payment {
|
|
118
|
+
tx: AtomicBEEF;
|
|
119
|
+
outputs: Array<{
|
|
120
|
+
outputIndex: PositiveIntegerOrZero;
|
|
121
|
+
protocol: 'wallet payment' | 'basket insertion';
|
|
122
|
+
paymentRemittance?: {
|
|
123
|
+
derivationPrefix: Base64String;
|
|
124
|
+
derivationSuffix: Base64String;
|
|
125
|
+
senderIdentityKey: PubKeyHex;
|
|
126
|
+
};
|
|
127
|
+
insertionRemittance?: {
|
|
128
|
+
basket: BasketStringUnder300Bytes;
|
|
129
|
+
customInstructions?: string;
|
|
130
|
+
tags?: OutputTagStringUnder300Bytes[];
|
|
131
|
+
};
|
|
132
|
+
}>;
|
|
133
|
+
description: DescriptionString5to50Bytes;
|
|
134
|
+
labels?: LabelStringUnder300Bytes[];
|
|
135
|
+
seekPermission?: BooleanDefaultTrue;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Device registration parameters for FCM notifications
|
|
139
|
+
*/
|
|
140
|
+
export interface DeviceRegistrationParams {
|
|
141
|
+
/** FCM token from Firebase SDK */
|
|
142
|
+
fcmToken: string;
|
|
143
|
+
/** Optional device identifier */
|
|
144
|
+
deviceId?: string;
|
|
145
|
+
/** Optional platform type */
|
|
146
|
+
platform?: 'ios' | 'android' | 'web';
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Device registration response
|
|
150
|
+
*/
|
|
151
|
+
export interface DeviceRegistrationResponse {
|
|
152
|
+
status: string;
|
|
153
|
+
message: string;
|
|
154
|
+
deviceId: number;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Registered device information
|
|
158
|
+
*/
|
|
159
|
+
export interface RegisteredDevice {
|
|
160
|
+
id: number;
|
|
161
|
+
deviceId: string | null;
|
|
162
|
+
platform: string | null;
|
|
163
|
+
fcmToken: string;
|
|
164
|
+
active: boolean;
|
|
165
|
+
createdAt: string;
|
|
166
|
+
updatedAt: string;
|
|
167
|
+
lastUsed: string;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Response from listing registered devices
|
|
171
|
+
*/
|
|
172
|
+
export interface ListDevicesResponse {
|
|
173
|
+
status: string;
|
|
174
|
+
devices: RegisteredDevice[];
|
|
175
|
+
description?: string;
|
|
176
|
+
}
|
|
99
177
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|