@unicitylabs/nostr-js-sdk 0.1.0 → 0.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/README.md +86 -5
- package/dist/browser/index.js +1650 -75
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/index.min.js +7 -6
- package/dist/browser/index.min.js.map +1 -1
- package/dist/browser/index.umd.js +1659 -80
- package/dist/browser/index.umd.js.map +1 -1
- package/dist/browser/index.umd.min.js +7 -6
- package/dist/browser/index.umd.min.js.map +1 -1
- package/dist/cjs/NostrKeyManager.js +57 -0
- package/dist/cjs/NostrKeyManager.js.map +1 -1
- package/dist/cjs/client/NostrClient.js +46 -0
- package/dist/cjs/client/NostrClient.js.map +1 -1
- package/dist/cjs/crypto/index.js +4 -2
- package/dist/cjs/crypto/index.js.map +1 -1
- package/dist/cjs/crypto/nip04.js +14 -3
- package/dist/cjs/crypto/nip04.js.map +1 -1
- package/dist/cjs/crypto/nip44.js +297 -0
- package/dist/cjs/crypto/nip44.js.map +1 -0
- package/dist/cjs/index.js +27 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/messaging/index.js +24 -0
- package/dist/cjs/messaging/index.js.map +1 -0
- package/dist/cjs/messaging/nip17.js +267 -0
- package/dist/cjs/messaging/nip17.js.map +1 -0
- package/dist/cjs/messaging/types.js +20 -0
- package/dist/cjs/messaging/types.js.map +1 -0
- package/dist/cjs/nametag/NametagUtils.js +1 -1
- package/dist/cjs/nametag/NametagUtils.js.map +1 -1
- package/dist/cjs/payment/PaymentRequestProtocol.js +2 -0
- package/dist/cjs/payment/PaymentRequestProtocol.js.map +1 -1
- package/dist/cjs/protocol/EventKinds.js +13 -1
- package/dist/cjs/protocol/EventKinds.js.map +1 -1
- package/dist/esm/NostrKeyManager.js +57 -0
- package/dist/esm/NostrKeyManager.js.map +1 -1
- package/dist/esm/client/NostrClient.js +46 -0
- package/dist/esm/client/NostrClient.js.map +1 -1
- package/dist/esm/crypto/index.js +3 -1
- package/dist/esm/crypto/index.js.map +1 -1
- package/dist/esm/crypto/nip04.js +14 -3
- package/dist/esm/crypto/nip04.js.map +1 -1
- package/dist/esm/crypto/nip44.js +283 -0
- package/dist/esm/crypto/nip44.js.map +1 -0
- package/dist/esm/index.js +4 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/messaging/index.js +8 -0
- package/dist/esm/messaging/index.js.map +1 -0
- package/dist/esm/messaging/nip17.js +229 -0
- package/dist/esm/messaging/nip17.js.map +1 -0
- package/dist/esm/messaging/types.js +16 -0
- package/dist/esm/messaging/types.js.map +1 -0
- package/dist/esm/nametag/NametagUtils.js +1 -1
- package/dist/esm/nametag/NametagUtils.js.map +1 -1
- package/dist/esm/payment/PaymentRequestProtocol.js +2 -0
- package/dist/esm/payment/PaymentRequestProtocol.js.map +1 -1
- package/dist/esm/protocol/EventKinds.js +12 -0
- package/dist/esm/protocol/EventKinds.js.map +1 -1
- package/dist/types/NostrKeyManager.d.ts +36 -0
- package/dist/types/NostrKeyManager.d.ts.map +1 -1
- package/dist/types/client/NostrClient.d.ts +31 -0
- package/dist/types/client/NostrClient.d.ts.map +1 -1
- package/dist/types/crypto/index.d.ts +1 -1
- package/dist/types/crypto/index.d.ts.map +1 -1
- package/dist/types/crypto/nip04.d.ts.map +1 -1
- package/dist/types/crypto/nip44.d.ts +78 -0
- package/dist/types/crypto/nip44.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/messaging/index.d.ts +8 -0
- package/dist/types/messaging/index.d.ts.map +1 -0
- package/dist/types/messaging/nip17.d.ts +42 -0
- package/dist/types/messaging/nip17.d.ts.map +1 -0
- package/dist/types/messaging/types.d.ts +59 -0
- package/dist/types/messaging/types.d.ts.map +1 -0
- package/dist/types/payment/PaymentRequestProtocol.d.ts.map +1 -1
- package/dist/types/protocol/EventKinds.d.ts +6 -0
- package/dist/types/protocol/EventKinds.d.ts.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NIP-17 Private Direct Messages Protocol.
|
|
3
|
+
* Implements gift-wrapping for sender anonymity using NIP-44 encryption.
|
|
4
|
+
*
|
|
5
|
+
* Message flow:
|
|
6
|
+
* 1. Create Rumor (kind 14, unsigned) with actual message content
|
|
7
|
+
* 2. Create Seal (kind 13, signed by sender) encrypting the rumor
|
|
8
|
+
* 3. Create Gift Wrap (kind 1059, signed by random ephemeral key) encrypting the seal
|
|
9
|
+
*
|
|
10
|
+
* Only the recipient can decrypt and verify the true sender.
|
|
11
|
+
*/
|
|
12
|
+
import { sha256 } from '@noble/hashes/sha256';
|
|
13
|
+
import { bytesToHex, hexToBytes } from '@noble/hashes/utils';
|
|
14
|
+
import { NostrKeyManager } from '../NostrKeyManager.js';
|
|
15
|
+
import { Event } from '../protocol/Event.js';
|
|
16
|
+
import * as EventKinds from '../protocol/EventKinds.js';
|
|
17
|
+
import * as NIP44 from '../crypto/nip44.js';
|
|
18
|
+
import * as Schnorr from '../crypto/schnorr.js';
|
|
19
|
+
// Randomization window for timestamps (+/- 2 days in seconds)
|
|
20
|
+
const TIMESTAMP_RANDOMIZATION = 2 * 24 * 60 * 60;
|
|
21
|
+
/**
|
|
22
|
+
* Create a gift-wrapped private message.
|
|
23
|
+
*
|
|
24
|
+
* @param senderKeys Sender's key manager
|
|
25
|
+
* @param recipientPubkeyHex Recipient's public key (hex)
|
|
26
|
+
* @param content Message content
|
|
27
|
+
* @param options Optional message options (reply-to, etc.)
|
|
28
|
+
* @returns Gift-wrapped event (kind 1059)
|
|
29
|
+
*/
|
|
30
|
+
export function createGiftWrap(senderKeys, recipientPubkeyHex, content, options) {
|
|
31
|
+
// 1. Create Rumor (kind 14, unsigned)
|
|
32
|
+
const rumor = createRumor(senderKeys.getPublicKeyHex(), recipientPubkeyHex, content, EventKinds.CHAT_MESSAGE, options?.replyToEventId);
|
|
33
|
+
// 2. Create Seal (kind 13, signed by sender, encrypts rumor)
|
|
34
|
+
const seal = createSeal(senderKeys, recipientPubkeyHex, rumor);
|
|
35
|
+
// 3. Create Gift Wrap (kind 1059, signed by ephemeral key, encrypts seal)
|
|
36
|
+
return wrapSeal(seal, recipientPubkeyHex);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Create a gift-wrapped read receipt.
|
|
40
|
+
*
|
|
41
|
+
* @param senderKeys Sender's key manager
|
|
42
|
+
* @param recipientPubkeyHex Recipient (original sender) public key
|
|
43
|
+
* @param messageEventId Event ID of the message being acknowledged
|
|
44
|
+
* @returns Gift-wrapped read receipt event
|
|
45
|
+
*/
|
|
46
|
+
export function createReadReceipt(senderKeys, recipientPubkeyHex, messageEventId) {
|
|
47
|
+
// Create rumor with kind 15 (read receipt)
|
|
48
|
+
const tags = [
|
|
49
|
+
['p', recipientPubkeyHex],
|
|
50
|
+
['e', messageEventId],
|
|
51
|
+
];
|
|
52
|
+
// Use actual timestamp for rumor (privacy via outer layers)
|
|
53
|
+
const actualTimestamp = Math.floor(Date.now() / 1000);
|
|
54
|
+
const rumor = {
|
|
55
|
+
id: '', // Will be computed
|
|
56
|
+
pubkey: senderKeys.getPublicKeyHex(),
|
|
57
|
+
created_at: actualTimestamp,
|
|
58
|
+
kind: EventKinds.READ_RECEIPT,
|
|
59
|
+
tags,
|
|
60
|
+
content: '', // Read receipts have empty content
|
|
61
|
+
};
|
|
62
|
+
// Compute the rumor ID
|
|
63
|
+
rumor.id = computeRumorId(rumor);
|
|
64
|
+
const seal = createSeal(senderKeys, recipientPubkeyHex, rumor);
|
|
65
|
+
return wrapSeal(seal, recipientPubkeyHex);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Unwrap a gift-wrapped message.
|
|
69
|
+
*
|
|
70
|
+
* @param giftWrap Gift wrap event (kind 1059)
|
|
71
|
+
* @param recipientKeys Recipient's key manager
|
|
72
|
+
* @returns Parsed private message
|
|
73
|
+
*/
|
|
74
|
+
export function unwrap(giftWrap, recipientKeys) {
|
|
75
|
+
if (giftWrap.kind !== EventKinds.GIFT_WRAP) {
|
|
76
|
+
throw new Error(`Event is not a gift wrap (kind ${giftWrap.kind})`);
|
|
77
|
+
}
|
|
78
|
+
// Get ephemeral sender's pubkey from gift wrap
|
|
79
|
+
const ephemeralPubkey = giftWrap.pubkey;
|
|
80
|
+
const ephemeralPubkeyBytes = hexToBytes(ephemeralPubkey);
|
|
81
|
+
// Decrypt seal from gift wrap content
|
|
82
|
+
const sealJson = NIP44.decrypt(giftWrap.content, recipientKeys.getPrivateKey(), ephemeralPubkeyBytes);
|
|
83
|
+
const sealData = JSON.parse(sealJson);
|
|
84
|
+
if (sealData.kind !== EventKinds.SEAL) {
|
|
85
|
+
throw new Error(`Inner event is not a seal (kind ${sealData.kind})`);
|
|
86
|
+
}
|
|
87
|
+
// Verify seal signature
|
|
88
|
+
const sealPubkey = sealData.pubkey;
|
|
89
|
+
const sealIdBytes = hexToBytes(sealData.id);
|
|
90
|
+
const sigBytes = hexToBytes(sealData.sig);
|
|
91
|
+
const pubkeyBytes = hexToBytes(sealPubkey);
|
|
92
|
+
if (!Schnorr.verify(sigBytes, sealIdBytes, pubkeyBytes)) {
|
|
93
|
+
throw new Error('Seal signature verification failed');
|
|
94
|
+
}
|
|
95
|
+
// Decrypt rumor from seal content
|
|
96
|
+
const rumorJson = NIP44.decrypt(sealData.content, recipientKeys.getPrivateKey(), pubkeyBytes);
|
|
97
|
+
const rumor = JSON.parse(rumorJson);
|
|
98
|
+
// Extract reply-to event ID if present
|
|
99
|
+
const replyToEventId = getTagValue(rumor.tags, 'e');
|
|
100
|
+
return {
|
|
101
|
+
eventId: giftWrap.id,
|
|
102
|
+
senderPubkey: sealPubkey,
|
|
103
|
+
recipientPubkey: recipientKeys.getPublicKeyHex(),
|
|
104
|
+
content: rumor.content,
|
|
105
|
+
timestamp: rumor.created_at,
|
|
106
|
+
kind: rumor.kind,
|
|
107
|
+
replyToEventId,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
// ========== Helper Functions ==========
|
|
111
|
+
/**
|
|
112
|
+
* Create an unsigned rumor (kind 14 or 15).
|
|
113
|
+
* Note: Rumor uses actual timestamp for correct message ordering.
|
|
114
|
+
* Only seal and gift wrap use randomized timestamps for privacy.
|
|
115
|
+
*/
|
|
116
|
+
function createRumor(senderPubkey, recipientPubkey, content, kind, replyToEventId) {
|
|
117
|
+
const tags = [['p', recipientPubkey]];
|
|
118
|
+
if (replyToEventId) {
|
|
119
|
+
tags.push(['e', replyToEventId, '', 'reply']);
|
|
120
|
+
}
|
|
121
|
+
// Use actual timestamp for rumor (inner message) - needed for correct ordering
|
|
122
|
+
// Privacy is provided by randomized timestamps on seal and gift wrap layers
|
|
123
|
+
const actualTimestamp = Math.floor(Date.now() / 1000);
|
|
124
|
+
const rumor = {
|
|
125
|
+
id: '', // Will be computed
|
|
126
|
+
pubkey: senderPubkey,
|
|
127
|
+
created_at: actualTimestamp,
|
|
128
|
+
kind,
|
|
129
|
+
tags,
|
|
130
|
+
content,
|
|
131
|
+
};
|
|
132
|
+
// Compute the rumor ID
|
|
133
|
+
rumor.id = computeRumorId(rumor);
|
|
134
|
+
return rumor;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Compute the rumor ID from serialized data.
|
|
138
|
+
* ID = SHA-256([0, pubkey, created_at, kind, tags, content])
|
|
139
|
+
*/
|
|
140
|
+
function computeRumorId(rumor) {
|
|
141
|
+
const serialized = JSON.stringify([
|
|
142
|
+
0,
|
|
143
|
+
rumor.pubkey,
|
|
144
|
+
rumor.created_at,
|
|
145
|
+
rumor.kind,
|
|
146
|
+
rumor.tags,
|
|
147
|
+
rumor.content,
|
|
148
|
+
]);
|
|
149
|
+
const hash = sha256(new TextEncoder().encode(serialized));
|
|
150
|
+
return bytesToHex(hash);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Create a seal (kind 13) that encrypts a rumor.
|
|
154
|
+
*/
|
|
155
|
+
function createSeal(senderKeys, recipientPubkeyHex, rumor) {
|
|
156
|
+
const rumorJson = JSON.stringify(rumor);
|
|
157
|
+
// Encrypt rumor with NIP-44
|
|
158
|
+
const recipientPubkey = hexToBytes(recipientPubkeyHex);
|
|
159
|
+
const encryptedRumor = NIP44.encrypt(rumorJson, senderKeys.getPrivateKey(), recipientPubkey);
|
|
160
|
+
// Create seal data
|
|
161
|
+
const pubkey = senderKeys.getPublicKeyHex();
|
|
162
|
+
const created_at = randomizeTimestamp();
|
|
163
|
+
const kind = EventKinds.SEAL;
|
|
164
|
+
const tags = []; // Seals have no tags
|
|
165
|
+
const content = encryptedRumor;
|
|
166
|
+
// Calculate ID
|
|
167
|
+
const sealId = Event.calculateId(pubkey, created_at, kind, tags, content);
|
|
168
|
+
// Sign
|
|
169
|
+
const sealIdBytes = hexToBytes(sealId);
|
|
170
|
+
const sig = senderKeys.signHex(sealIdBytes);
|
|
171
|
+
return new Event({
|
|
172
|
+
id: sealId,
|
|
173
|
+
pubkey,
|
|
174
|
+
created_at,
|
|
175
|
+
kind,
|
|
176
|
+
tags,
|
|
177
|
+
content,
|
|
178
|
+
sig,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Wrap a seal in a gift wrap (kind 1059) using an ephemeral key.
|
|
183
|
+
*/
|
|
184
|
+
function wrapSeal(seal, recipientPubkeyHex) {
|
|
185
|
+
// Generate ephemeral key for the gift wrap
|
|
186
|
+
const ephemeralKeys = NostrKeyManager.generate();
|
|
187
|
+
const sealJson = JSON.stringify(seal.toJSON());
|
|
188
|
+
// Encrypt seal with NIP-44 using ephemeral key
|
|
189
|
+
const recipientPubkey = hexToBytes(recipientPubkeyHex);
|
|
190
|
+
const encryptedSeal = NIP44.encrypt(sealJson, ephemeralKeys.getPrivateKey(), recipientPubkey);
|
|
191
|
+
// Create gift wrap data
|
|
192
|
+
const pubkey = ephemeralKeys.getPublicKeyHex();
|
|
193
|
+
const created_at = randomizeTimestamp();
|
|
194
|
+
const kind = EventKinds.GIFT_WRAP;
|
|
195
|
+
const tags = [['p', recipientPubkeyHex]];
|
|
196
|
+
const content = encryptedSeal;
|
|
197
|
+
// Calculate ID
|
|
198
|
+
const giftWrapId = Event.calculateId(pubkey, created_at, kind, tags, content);
|
|
199
|
+
// Sign with ephemeral key
|
|
200
|
+
const giftWrapIdBytes = hexToBytes(giftWrapId);
|
|
201
|
+
const sig = ephemeralKeys.signHex(giftWrapIdBytes);
|
|
202
|
+
// Clear ephemeral key from memory
|
|
203
|
+
ephemeralKeys.clear();
|
|
204
|
+
return new Event({
|
|
205
|
+
id: giftWrapId,
|
|
206
|
+
pubkey,
|
|
207
|
+
created_at,
|
|
208
|
+
kind,
|
|
209
|
+
tags,
|
|
210
|
+
content,
|
|
211
|
+
sig,
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Generate a randomized timestamp for privacy (+/- 2 days).
|
|
216
|
+
*/
|
|
217
|
+
function randomizeTimestamp() {
|
|
218
|
+
const now = Math.floor(Date.now() / 1000);
|
|
219
|
+
const randomOffset = Math.floor(Math.random() * 2 * TIMESTAMP_RANDOMIZATION) - TIMESTAMP_RANDOMIZATION;
|
|
220
|
+
return now + randomOffset;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Get the first value of a tag by name from a tags array.
|
|
224
|
+
*/
|
|
225
|
+
function getTagValue(tags, tagName) {
|
|
226
|
+
const tag = tags.find((t) => t[0] === tagName);
|
|
227
|
+
return tag?.[1];
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=nip17.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nip17.js","sourceRoot":"","sources":["../../../src/messaging/nip17.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NIP-17 Messaging Types - Private Direct Messages
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Check if a message is a chat message (kind 14).
|
|
6
|
+
*/
|
|
7
|
+
export function isChatMessage(message) {
|
|
8
|
+
return message.kind === 14;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Check if a message is a read receipt (kind 15).
|
|
12
|
+
*/
|
|
13
|
+
export function isReadReceipt(message) {
|
|
14
|
+
return message.kind === 15;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/messaging/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwDH;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAuB;IACnD,OAAO,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAuB;IACnD,OAAO,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC;AAC7B,CAAC"}
|
|
@@ -34,7 +34,7 @@ function isLikelyPhoneNumber(str) {
|
|
|
34
34
|
return false;
|
|
35
35
|
}
|
|
36
36
|
// Count non-digit characters (excluding common phone number chars)
|
|
37
|
-
const cleanedLength = str.replace(/[\s
|
|
37
|
+
const cleanedLength = str.replace(/[\s\-().]/g, '').length;
|
|
38
38
|
const digitRatio = digitCount / cleanedLength;
|
|
39
39
|
return digitRatio > 0.5;
|
|
40
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NametagUtils.js","sourceRoot":"","sources":["../../../src/nametag/NametagUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAe,MAAM,mBAAmB,CAAC;AAEtF,sCAAsC;AACtC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAExC,0DAA0D;AAC1D,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B;;;;GAIG;AACH,SAAS,SAAS,CAAC,KAAa;IAC9B,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,GAAW;IACtC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;IAErC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mEAAmE;IACnE,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"NametagUtils.js","sourceRoot":"","sources":["../../../src/nametag/NametagUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,9 @@ const MESSAGE_PREFIX = 'payment_request:';
|
|
|
11
11
|
*/
|
|
12
12
|
function generateRequestId() {
|
|
13
13
|
const bytes = new Uint8Array(4);
|
|
14
|
+
// eslint-disable-next-line no-undef
|
|
14
15
|
if (typeof crypto !== 'undefined' && crypto.getRandomValues) {
|
|
16
|
+
// eslint-disable-next-line no-undef
|
|
15
17
|
crypto.getRandomValues(bytes);
|
|
16
18
|
}
|
|
17
19
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentRequestProtocol.js","sourceRoot":"","sources":["../../../src/payment/PaymentRequestProtocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,2BAA2B,CAAC;AAExD,0CAA0C;AAC1C,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAwC1C;;GAEG;AACH,SAAS,iBAAiB;IACxB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,OAAO,MAAM,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"PaymentRequestProtocol.js","sourceRoot":"","sources":["../../../src/payment/PaymentRequestProtocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,12 @@ export const CONTACTS = 3;
|
|
|
17
17
|
export const ENCRYPTED_DM = 4;
|
|
18
18
|
/** NIP-09: Event deletion */
|
|
19
19
|
export const DELETION = 5;
|
|
20
|
+
/** NIP-17: Seal (signed, encrypted rumor) */
|
|
21
|
+
export const SEAL = 13;
|
|
22
|
+
/** NIP-17: Private chat message (rumor - unsigned inner event) */
|
|
23
|
+
export const CHAT_MESSAGE = 14;
|
|
24
|
+
/** NIP-17: Read receipt (rumor kind) */
|
|
25
|
+
export const READ_RECEIPT = 15;
|
|
20
26
|
/** NIP-25: Reactions (likes, etc.) */
|
|
21
27
|
export const REACTION = 7;
|
|
22
28
|
/** NIP-59: Gift wrap for private events */
|
|
@@ -89,6 +95,12 @@ export function getName(kind) {
|
|
|
89
95
|
return 'Encrypted DM';
|
|
90
96
|
case DELETION:
|
|
91
97
|
return 'Deletion';
|
|
98
|
+
case SEAL:
|
|
99
|
+
return 'Seal';
|
|
100
|
+
case CHAT_MESSAGE:
|
|
101
|
+
return 'Chat Message';
|
|
102
|
+
case READ_RECEIPT:
|
|
103
|
+
return 'Read Receipt';
|
|
92
104
|
case REACTION:
|
|
93
105
|
return 'Reaction';
|
|
94
106
|
case GIFT_WRAP:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventKinds.js","sourceRoot":"","sources":["../../../src/protocol/EventKinds.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E,oCAAoC;AACpC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AAEzB,8BAA8B;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAE3B,2CAA2C;AAC3C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,qCAAqC;AACrC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;AAE1B,wCAAwC;AACxC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAE9B,6BAA6B;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;AAE1B,sCAAsC;AACtC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;AAE1B,2CAA2C;AAC3C,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAE9B,kCAAkC;AAClC,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC;AAEhC,oEAAoE;AACpE,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC;AAE9B,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E,yCAAyC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;AAEnC,kCAAkC;AAClC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC;AAEpC,oCAAoC;AACpC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC;AAEpC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;AAEnC,+BAA+B;AAC/B,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAErC,+EAA+E;AAC/E,sCAAsC;AACtC,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,KAAK,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,KAAK,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS;YACZ,OAAO,WAAW,CAAC;QACrB,KAAK,eAAe;YAClB,OAAO,iBAAiB,CAAC;QAC3B,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC;QACpB,KAAK,YAAY;YACf,OAAO,cAAc,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC;QACpB,KAAK,SAAS;YACZ,OAAO,WAAW,CAAC;QACrB,KAAK,UAAU;YACb,OAAO,YAAY,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC;QACpB,KAAK,aAAa;YAChB,OAAO,eAAe,CAAC;QACzB,KAAK,cAAc;YACjB,OAAO,gBAAgB,CAAC;QAC1B,KAAK,cAAc;YACjB,OAAO,gBAAgB,CAAC;QAC1B,KAAK,aAAa;YAChB,OAAO,eAAe,CAAC;QACzB,KAAK,eAAe;YAClB,OAAO,iBAAiB,CAAC;QAC3B;YACE,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO,gBAAgB,IAAI,GAAG,CAAC;YACjC,CAAC;YACD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,OAAO,cAAc,IAAI,GAAG,CAAC;YAC/B,CAAC;YACD,IAAI,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,OAAO,8BAA8B,IAAI,GAAG,CAAC;YAC/C,CAAC;YACD,OAAO,YAAY,IAAI,GAAG,CAAC;IAC/B,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"EventKinds.js","sourceRoot":"","sources":["../../../src/protocol/EventKinds.ts"],"names":[],"mappings":"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"}
|
|
@@ -135,6 +135,42 @@ export declare class NostrKeyManager {
|
|
|
135
135
|
* @returns 32-byte shared secret
|
|
136
136
|
*/
|
|
137
137
|
deriveSharedSecret(theirPublicKey: Uint8Array): Uint8Array;
|
|
138
|
+
/**
|
|
139
|
+
* Encrypt a message using NIP-44 encryption.
|
|
140
|
+
* Uses XChaCha20-Poly1305 with HKDF key derivation.
|
|
141
|
+
* @param message Message to encrypt
|
|
142
|
+
* @param recipientPublicKey 32-byte x-only public key of recipient
|
|
143
|
+
* @returns Base64-encoded encrypted content
|
|
144
|
+
*/
|
|
145
|
+
encryptNip44(message: string, recipientPublicKey: Uint8Array): string;
|
|
146
|
+
/**
|
|
147
|
+
* Encrypt a message using NIP-44 with hex-encoded recipient public key.
|
|
148
|
+
* @param message Message to encrypt
|
|
149
|
+
* @param recipientPublicKeyHex Hex-encoded recipient public key
|
|
150
|
+
* @returns Base64-encoded encrypted content
|
|
151
|
+
*/
|
|
152
|
+
encryptNip44Hex(message: string, recipientPublicKeyHex: string): string;
|
|
153
|
+
/**
|
|
154
|
+
* Decrypt a NIP-44 encrypted message.
|
|
155
|
+
* @param encryptedContent Base64-encoded encrypted content
|
|
156
|
+
* @param senderPublicKey 32-byte x-only public key of sender
|
|
157
|
+
* @returns Decrypted message
|
|
158
|
+
*/
|
|
159
|
+
decryptNip44(encryptedContent: string, senderPublicKey: Uint8Array): string;
|
|
160
|
+
/**
|
|
161
|
+
* Decrypt a NIP-44 message using hex-encoded sender public key.
|
|
162
|
+
* @param encryptedContent Base64-encoded encrypted content
|
|
163
|
+
* @param senderPublicKeyHex Hex-encoded sender public key
|
|
164
|
+
* @returns Decrypted message
|
|
165
|
+
*/
|
|
166
|
+
decryptNip44Hex(encryptedContent: string, senderPublicKeyHex: string): string;
|
|
167
|
+
/**
|
|
168
|
+
* Derive NIP-44 conversation key with another party.
|
|
169
|
+
* Uses ECDH + HKDF with sorted public keys as salt.
|
|
170
|
+
* @param theirPublicKey 32-byte x-only public key
|
|
171
|
+
* @returns 32-byte conversation key
|
|
172
|
+
*/
|
|
173
|
+
deriveConversationKey(theirPublicKey: Uint8Array): Uint8Array;
|
|
138
174
|
/**
|
|
139
175
|
* Check if a public key matches this key manager's public key.
|
|
140
176
|
* @param publicKeyHex Hex-encoded public key to check
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NostrKeyManager.d.ts","sourceRoot":"","sources":["../../src/NostrKeyManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"NostrKeyManager.d.ts","sourceRoot":"","sources":["../../src/NostrKeyManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,OAAO,CAAkB;IAEjC;;OAEG;IACH,OAAO;IASP;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,eAAe;IAI9D;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe;IAKhE;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAK9C;;;OAGG;IACH,MAAM,CAAC,QAAQ,IAAI,eAAe;IAKlC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;;OAGG;IACH,aAAa,IAAI,UAAU;IAK3B;;;OAGG;IACH,gBAAgB,IAAI,MAAM;IAK1B;;;OAGG;IACH,OAAO,IAAI,MAAM;IAKjB;;;OAGG;IACH,YAAY,IAAI,UAAU;IAK1B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAKzB;;;OAGG;IACH,OAAO,IAAI,MAAM;IAKjB;;;;OAIG;IACH,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU;IAKzC;;;;OAIG;IACH,OAAO,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM;IAKxC;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CACX,SAAS,EAAE,UAAU,EACrB,WAAW,EAAE,UAAU,EACvB,SAAS,EAAE,UAAU,GACpB,OAAO;IAIV;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CACd,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,UAAU,EACvB,YAAY,EAAE,MAAM,GACnB,OAAO;IAIV;;;;;OAKG;IACG,OAAO,CACX,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,UAAU,GAC7B,OAAO,CAAC,MAAM,CAAC;IAKlB;;;;;OAKG;IACG,UAAU,CACd,OAAO,EAAE,MAAM,EACf,qBAAqB,EAAE,MAAM,GAC5B,OAAO,CAAC,MAAM,CAAC;IAMlB;;;;;OAKG;IACG,OAAO,CACX,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,UAAU,GAC1B,OAAO,CAAC,MAAM,CAAC;IAKlB;;;;;OAKG;IACG,UAAU,CACd,gBAAgB,EAAE,MAAM,EACxB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,MAAM,CAAC;IAMlB;;;;OAIG;IACH,kBAAkB,CAAC,cAAc,EAAE,UAAU,GAAG,UAAU;IAS1D;;;;;;OAMG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,UAAU,GAAG,MAAM;IAKrE;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,MAAM;IAMvE;;;;;OAKG;IACH,YAAY,CAAC,gBAAgB,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,GAAG,MAAM;IAK3E;;;;;OAKG;IACH,eAAe,CAAC,gBAAgB,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM;IAM7E;;;;;OAKG;IACH,qBAAqB,CAAC,cAAc,EAAE,UAAU,GAAG,UAAU;IAK7D;;;;OAIG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAK5C;;;OAGG;IACH,KAAK,IAAI,IAAI;CAKd"}
|
|
@@ -6,6 +6,7 @@ import { NostrKeyManager } from '../NostrKeyManager.js';
|
|
|
6
6
|
import { Event, UnsignedEventData } from '../protocol/Event.js';
|
|
7
7
|
import { Filter } from '../protocol/Filter.js';
|
|
8
8
|
import { NostrEventListener } from './NostrEventListener.js';
|
|
9
|
+
import type { PrivateMessage, PrivateMessageOptions } from '../messaging/types.js';
|
|
9
10
|
/**
|
|
10
11
|
* NostrClient provides the main interface for Nostr protocol operations.
|
|
11
12
|
*/
|
|
@@ -163,5 +164,35 @@ export declare class NostrClient {
|
|
|
163
164
|
* @returns Promise that resolves with the event ID
|
|
164
165
|
*/
|
|
165
166
|
createAndPublishEvent(data: UnsignedEventData): Promise<string>;
|
|
167
|
+
/**
|
|
168
|
+
* Send a private message using NIP-17 gift-wrapping.
|
|
169
|
+
* @param recipientPubkeyHex Recipient's public key (hex)
|
|
170
|
+
* @param message Message content
|
|
171
|
+
* @param options Optional message options (reply-to, etc.)
|
|
172
|
+
* @returns Promise that resolves with the gift wrap event ID
|
|
173
|
+
*/
|
|
174
|
+
sendPrivateMessage(recipientPubkeyHex: string, message: string, options?: PrivateMessageOptions): Promise<string>;
|
|
175
|
+
/**
|
|
176
|
+
* Send a private message to a recipient identified by their nametag.
|
|
177
|
+
* Resolves the nametag to a pubkey automatically.
|
|
178
|
+
* @param recipientNametag Recipient's nametag (Unicity ID)
|
|
179
|
+
* @param message Message content
|
|
180
|
+
* @param options Optional message options (reply-to, etc.)
|
|
181
|
+
* @returns Promise that resolves with the gift wrap event ID
|
|
182
|
+
*/
|
|
183
|
+
sendPrivateMessageToNametag(recipientNametag: string, message: string, options?: PrivateMessageOptions): Promise<string>;
|
|
184
|
+
/**
|
|
185
|
+
* Send a read receipt for a message using NIP-17 gift-wrapping.
|
|
186
|
+
* @param recipientPubkeyHex Recipient (original sender) public key
|
|
187
|
+
* @param messageEventId Event ID of the message being acknowledged
|
|
188
|
+
* @returns Promise that resolves with the gift wrap event ID
|
|
189
|
+
*/
|
|
190
|
+
sendReadReceipt(recipientPubkeyHex: string, messageEventId: string): Promise<string>;
|
|
191
|
+
/**
|
|
192
|
+
* Unwrap a gift-wrapped private message.
|
|
193
|
+
* @param giftWrap Gift wrap event (kind 1059)
|
|
194
|
+
* @returns Parsed private message
|
|
195
|
+
*/
|
|
196
|
+
unwrapPrivateMessage(giftWrap: Event): PrivateMessage;
|
|
166
197
|
}
|
|
167
198
|
//# sourceMappingURL=NostrClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NostrClient.d.ts","sourceRoot":"","sources":["../../../src/client/NostrClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"NostrClient.d.ts","sourceRoot":"","sources":["../../../src/client/NostrClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,6 @@ export * from './bech32.js';
|
|
|
5
5
|
export * as Bech32 from './bech32.js';
|
|
6
6
|
export * from './schnorr.js';
|
|
7
7
|
export * as SchnorrSigner from './schnorr.js';
|
|
8
|
-
export * from './nip04.js';
|
|
9
8
|
export * as NIP04 from './nip04.js';
|
|
9
|
+
export * as NIP44 from './nip44.js';
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,aAAa,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,aAAa,MAAM,cAAc,CAAC;AAI9C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nip04.d.ts","sourceRoot":"","sources":["../../../src/crypto/nip04.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"nip04.d.ts","sourceRoot":"","sources":["../../../src/crypto/nip04.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwLH;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,UAAU,EACxB,cAAc,EAAE,UAAU,GACzB,UAAU,CAsBZ;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAIR;AAED;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,UAAU,EACxB,cAAc,EAAE,UAAU,GACzB,OAAO,CAAC,MAAM,CAAC,CAiCjB;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAC3B,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,UAAU,EACxB,cAAc,EAAE,UAAU,GACzB,OAAO,CAAC,MAAM,CAAC,CAsCjB;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,CAIjB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NIP-44 Encryption implementation.
|
|
3
|
+
* ChaCha20-Poly1305 AEAD encryption with HKDF key derivation.
|
|
4
|
+
* Works in both Node.js and browser environments.
|
|
5
|
+
* See: https://github.com/nostr-protocol/nips/blob/master/44.md
|
|
6
|
+
*/
|
|
7
|
+
/** NIP-44 version byte */
|
|
8
|
+
export declare const VERSION = 2;
|
|
9
|
+
/**
|
|
10
|
+
* Derive conversation key using ECDH + HKDF.
|
|
11
|
+
* NIP-44 uses sorted public keys as salt for HKDF.
|
|
12
|
+
*
|
|
13
|
+
* @param myPrivateKey 32-byte private key
|
|
14
|
+
* @param theirPublicKey 32-byte x-only public key
|
|
15
|
+
* @returns 32-byte conversation key
|
|
16
|
+
*/
|
|
17
|
+
export declare function deriveConversationKey(myPrivateKey: Uint8Array, theirPublicKey: Uint8Array): Uint8Array;
|
|
18
|
+
/**
|
|
19
|
+
* Derive conversation key from hex-encoded keys.
|
|
20
|
+
*/
|
|
21
|
+
export declare function deriveConversationKeyHex(myPrivateKeyHex: string, theirPublicKeyHex: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Calculate padded length according to NIP-44 spec.
|
|
24
|
+
* Uses power-of-2 chunk padding to hide message length.
|
|
25
|
+
*/
|
|
26
|
+
export declare function calcPaddedLen(unpaddedLen: number): number;
|
|
27
|
+
/**
|
|
28
|
+
* Pad message according to NIP-44 spec.
|
|
29
|
+
* Format: length(2 bytes big-endian) || message || padding
|
|
30
|
+
*/
|
|
31
|
+
export declare function pad(message: Uint8Array): Uint8Array;
|
|
32
|
+
/**
|
|
33
|
+
* Unpad message according to NIP-44 spec.
|
|
34
|
+
*/
|
|
35
|
+
export declare function unpad(padded: Uint8Array): Uint8Array;
|
|
36
|
+
/**
|
|
37
|
+
* Encrypt a message using NIP-44.
|
|
38
|
+
*
|
|
39
|
+
* @param message Plaintext message
|
|
40
|
+
* @param myPrivateKey Sender's 32-byte private key
|
|
41
|
+
* @param theirPublicKey Recipient's 32-byte x-only public key
|
|
42
|
+
* @returns Base64-encoded encrypted payload
|
|
43
|
+
*/
|
|
44
|
+
export declare function encrypt(message: string, myPrivateKey: Uint8Array, theirPublicKey: Uint8Array): string;
|
|
45
|
+
/**
|
|
46
|
+
* Encrypt a message using a pre-derived conversation key.
|
|
47
|
+
*
|
|
48
|
+
* @param message Plaintext message
|
|
49
|
+
* @param conversationKey 32-byte conversation key
|
|
50
|
+
* @returns Base64-encoded encrypted payload
|
|
51
|
+
*/
|
|
52
|
+
export declare function encryptWithKey(message: string, conversationKey: Uint8Array): string;
|
|
53
|
+
/**
|
|
54
|
+
* Decrypt a NIP-44 encrypted message.
|
|
55
|
+
*
|
|
56
|
+
* @param encryptedContent Base64-encoded encrypted payload
|
|
57
|
+
* @param myPrivateKey Recipient's 32-byte private key
|
|
58
|
+
* @param theirPublicKey Sender's 32-byte x-only public key
|
|
59
|
+
* @returns Decrypted plaintext message
|
|
60
|
+
*/
|
|
61
|
+
export declare function decrypt(encryptedContent: string, myPrivateKey: Uint8Array, theirPublicKey: Uint8Array): string;
|
|
62
|
+
/**
|
|
63
|
+
* Decrypt a message using a pre-derived conversation key.
|
|
64
|
+
*
|
|
65
|
+
* @param encryptedContent Base64-encoded encrypted payload
|
|
66
|
+
* @param conversationKey 32-byte conversation key
|
|
67
|
+
* @returns Decrypted plaintext message
|
|
68
|
+
*/
|
|
69
|
+
export declare function decryptWithKey(encryptedContent: string, conversationKey: Uint8Array): string;
|
|
70
|
+
/**
|
|
71
|
+
* Encrypt a message using hex-encoded keys.
|
|
72
|
+
*/
|
|
73
|
+
export declare function encryptHex(message: string, myPrivateKeyHex: string, theirPublicKeyHex: string): string;
|
|
74
|
+
/**
|
|
75
|
+
* Decrypt a message using hex-encoded keys.
|
|
76
|
+
*/
|
|
77
|
+
export declare function decryptHex(encryptedContent: string, myPrivateKeyHex: string, theirPublicKeyHex: string): string;
|
|
78
|
+
//# sourceMappingURL=nip44.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nip44.d.ts","sourceRoot":"","sources":["../../../src/crypto/nip44.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,0BAA0B;AAC1B,eAAO,MAAM,OAAO,IAAO,CAAC;AAiB5B;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,UAAU,EACxB,cAAc,EAAE,UAAU,GACzB,UAAU,CAmBZ;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAIR;AA0CD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAiBzD;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,CAsBnD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAkBpD;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,UAAU,EACxB,cAAc,EAAE,UAAU,GACzB,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,GAAG,MAAM,CA8BnF;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,UAAU,EACxB,cAAc,EAAE,UAAU,GACzB,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,GAAG,MAAM,CA8B5F;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAIR"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
export { NostrKeyManager } from './NostrKeyManager.js';
|
|
17
17
|
export * from './crypto/index.js';
|
|
18
|
-
export { Bech32, SchnorrSigner, NIP04, } from './crypto/index.js';
|
|
18
|
+
export { Bech32, SchnorrSigner, NIP04, NIP44, } from './crypto/index.js';
|
|
19
19
|
export * from './protocol/index.js';
|
|
20
20
|
export { EventKinds } from './protocol/index.js';
|
|
21
21
|
export * from './client/index.js';
|
|
@@ -23,10 +23,13 @@ export * from './nametag/index.js';
|
|
|
23
23
|
export { NametagUtils, NametagBinding } from './nametag/index.js';
|
|
24
24
|
export { TokenTransferProtocol } from './token/index.js';
|
|
25
25
|
export { PaymentRequestProtocol } from './payment/index.js';
|
|
26
|
+
export * from './messaging/index.js';
|
|
27
|
+
export * as NIP17 from './messaging/nip17.js';
|
|
26
28
|
export type { DecodedBech32, } from './crypto/bech32.js';
|
|
27
29
|
export type { EventTag, UnsignedEventData, SignedEventData, } from './protocol/Event.js';
|
|
28
30
|
export type { FilterData, } from './protocol/Filter.js';
|
|
29
31
|
export type { NostrEventListener, } from './client/NostrEventListener.js';
|
|
30
32
|
export type { IWebSocket, WebSocketMessageEvent, WebSocketCloseEvent, WebSocketErrorEvent, } from './client/WebSocketAdapter.js';
|
|
31
33
|
export type { PaymentRequest, ParsedPaymentRequest, } from './payment/PaymentRequestProtocol.js';
|
|
34
|
+
export type { Rumor, PrivateMessage, PrivateMessageOptions, } from './messaging/types.js';
|
|
32
35
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,MAAM,EACN,aAAa,EACb,KAAK,GACN,MAAM,mBAAmB,CAAC;AAG3B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGlE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,YAAY,EACV,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,QAAQ,EACR,iBAAiB,EACjB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,UAAU,GACX,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AAExC,YAAY,EACV,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,cAAc,EACd,oBAAoB,GACrB,MAAM,qCAAqC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,MAAM,EACN,aAAa,EACb,KAAK,EACL,KAAK,GACN,MAAM,mBAAmB,CAAC;AAG3B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGlE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,cAAc,sBAAsB,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC;AAG9C,YAAY,EACV,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,QAAQ,EACR,iBAAiB,EACjB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,UAAU,GACX,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AAExC,YAAY,EACV,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,cAAc,EACd,oBAAoB,GACrB,MAAM,qCAAqC,CAAC;AAE7C,YAAY,EACV,KAAK,EACL,cAAc,EACd,qBAAqB,GACtB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/messaging/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|