nostr-core 0.4.0 → 0.7.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/index.d.ts +93 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +99 -3
- package/dist/index.js.map +1 -1
- package/dist/lnurl.d.ts +161 -0
- package/dist/lnurl.d.ts.map +1 -0
- package/dist/lnurl.js +343 -0
- package/dist/lnurl.js.map +1 -0
- package/dist/nip02.d.ts +27 -0
- package/dist/nip02.d.ts.map +1 -0
- package/dist/nip02.js +55 -0
- package/dist/nip02.js.map +1 -0
- package/dist/nip05.d.ts +24 -0
- package/dist/nip05.d.ts.map +1 -0
- package/dist/nip05.js +57 -0
- package/dist/nip05.js.map +1 -0
- package/dist/nip06.d.ts +26 -0
- package/dist/nip06.d.ts.map +1 -0
- package/dist/nip06.js +49 -0
- package/dist/nip06.js.map +1 -0
- package/dist/nip09.d.ts +34 -0
- package/dist/nip09.d.ts.map +1 -0
- package/dist/nip09.js +66 -0
- package/dist/nip09.js.map +1 -0
- package/dist/nip10.d.ts +40 -0
- package/dist/nip10.d.ts.map +1 -0
- package/dist/nip10.js +69 -0
- package/dist/nip10.js.map +1 -0
- package/dist/nip11.d.ts +41 -0
- package/dist/nip11.d.ts.map +1 -0
- package/dist/nip11.js +38 -0
- package/dist/nip11.js.map +1 -0
- package/dist/nip13.d.ts +26 -0
- package/dist/nip13.d.ts.map +1 -0
- package/dist/nip13.js +75 -0
- package/dist/nip13.js.map +1 -0
- package/dist/nip18.d.ts +28 -0
- package/dist/nip18.d.ts.map +1 -0
- package/dist/nip18.js +66 -0
- package/dist/nip18.js.map +1 -0
- package/dist/nip21.d.ts +14 -0
- package/dist/nip21.d.ts.map +1 -0
- package/dist/nip21.js +24 -0
- package/dist/nip21.js.map +1 -0
- package/dist/nip22.d.ts +26 -0
- package/dist/nip22.d.ts.map +1 -0
- package/dist/nip22.js +109 -0
- package/dist/nip22.js.map +1 -0
- package/dist/nip23.d.ts +24 -0
- package/dist/nip23.d.ts.map +1 -0
- package/dist/nip23.js +70 -0
- package/dist/nip23.js.map +1 -0
- package/dist/nip24.d.ts +31 -0
- package/dist/nip24.d.ts.map +1 -0
- package/dist/nip24.js +75 -0
- package/dist/nip24.js.map +1 -0
- package/dist/nip25.d.ts +32 -0
- package/dist/nip25.d.ts.map +1 -0
- package/dist/nip25.js +54 -0
- package/dist/nip25.js.map +1 -0
- package/dist/nip27.d.ts +16 -0
- package/dist/nip27.d.ts.map +1 -0
- package/dist/nip27.js +44 -0
- package/dist/nip27.js.map +1 -0
- package/dist/nip28.d.ts +52 -0
- package/dist/nip28.d.ts.map +1 -0
- package/dist/nip28.js +118 -0
- package/dist/nip28.js.map +1 -0
- package/dist/nip29.d.ts +60 -0
- package/dist/nip29.d.ts.map +1 -0
- package/dist/nip29.js +122 -0
- package/dist/nip29.js.map +1 -0
- package/dist/nip30.d.ts +18 -0
- package/dist/nip30.d.ts.map +1 -0
- package/dist/nip30.js +24 -0
- package/dist/nip30.js.map +1 -0
- package/dist/nip31.d.ts +11 -0
- package/dist/nip31.d.ts.map +1 -0
- package/dist/nip31.js +15 -0
- package/dist/nip31.js.map +1 -0
- package/dist/nip36.d.ts +14 -0
- package/dist/nip36.d.ts.map +1 -0
- package/dist/nip36.js +24 -0
- package/dist/nip36.js.map +1 -0
- package/dist/nip40.d.ts +14 -0
- package/dist/nip40.d.ts.map +1 -0
- package/dist/nip40.js +26 -0
- package/dist/nip40.js.map +1 -0
- package/dist/nip42.d.ts +20 -0
- package/dist/nip42.d.ts.map +1 -0
- package/dist/nip42.js +38 -0
- package/dist/nip42.js.map +1 -0
- package/dist/nip48.d.ts +23 -0
- package/dist/nip48.d.ts.map +1 -0
- package/dist/nip48.js +30 -0
- package/dist/nip48.js.map +1 -0
- package/dist/nip50.d.ts +23 -0
- package/dist/nip50.d.ts.map +1 -0
- package/dist/nip50.js +47 -0
- package/dist/nip50.js.map +1 -0
- package/dist/nip51.d.ts +57 -0
- package/dist/nip51.d.ts.map +1 -0
- package/dist/nip51.js +118 -0
- package/dist/nip51.js.map +1 -0
- package/dist/nip52.d.ts +112 -0
- package/dist/nip52.d.ts.map +1 -0
- package/dist/nip52.js +405 -0
- package/dist/nip52.js.map +1 -0
- package/dist/nip56.d.ts +28 -0
- package/dist/nip56.d.ts.map +1 -0
- package/dist/nip56.js +60 -0
- package/dist/nip56.js.map +1 -0
- package/dist/nip57.d.ts +48 -0
- package/dist/nip57.d.ts.map +1 -0
- package/dist/nip57.js +140 -0
- package/dist/nip57.js.map +1 -0
- package/dist/nip58.d.ts +133 -0
- package/dist/nip58.d.ts.map +1 -0
- package/dist/nip58.js +275 -0
- package/dist/nip58.js.map +1 -0
- package/dist/nip59.js +1 -1
- package/dist/nip65.d.ts +28 -0
- package/dist/nip65.d.ts.map +1 -0
- package/dist/nip65.js +83 -0
- package/dist/nip65.js.map +1 -0
- package/dist/nip75.d.ts +43 -0
- package/dist/nip75.d.ts.map +1 -0
- package/dist/nip75.js +144 -0
- package/dist/nip75.js.map +1 -0
- package/dist/nip98.d.ts +24 -0
- package/dist/nip98.d.ts.map +1 -0
- package/dist/nip98.js +68 -0
- package/dist/nip98.js.map +1 -0
- package/dist/relay.d.ts +2 -0
- package/dist/relay.d.ts.map +1 -1
- package/dist/relay.js +20 -0
- package/dist/relay.js.map +1 -1
- package/package.json +35 -4
package/dist/nip65.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { finalizeEvent } from './event.js';
|
|
2
|
+
import { normalizeURL } from './utils.js';
|
|
3
|
+
// Kind constant
|
|
4
|
+
const RELAY_LIST_KIND = 10002;
|
|
5
|
+
// Public API
|
|
6
|
+
/**
|
|
7
|
+
* Parse a kind 10002 relay list event into structured relay entries.
|
|
8
|
+
*/
|
|
9
|
+
export function parseRelayList(event) {
|
|
10
|
+
if (event.kind !== RELAY_LIST_KIND) {
|
|
11
|
+
throw new Error(`Expected kind ${RELAY_LIST_KIND} relay list event, got kind ${event.kind}`);
|
|
12
|
+
}
|
|
13
|
+
const relays = [];
|
|
14
|
+
const seen = new Set();
|
|
15
|
+
for (const tag of event.tags) {
|
|
16
|
+
if (tag[0] !== 'r')
|
|
17
|
+
continue;
|
|
18
|
+
const url = normalizeURL(tag[1]);
|
|
19
|
+
if (seen.has(url))
|
|
20
|
+
continue;
|
|
21
|
+
seen.add(url);
|
|
22
|
+
const marker = tag[2];
|
|
23
|
+
if (marker === 'read') {
|
|
24
|
+
relays.push({ url, read: true, write: false });
|
|
25
|
+
}
|
|
26
|
+
else if (marker === 'write') {
|
|
27
|
+
relays.push({ url, read: false, write: true });
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
// No marker = bidirectional
|
|
31
|
+
relays.push({ url, read: true, write: true });
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return relays;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create a kind 10002 relay list event template (unsigned).
|
|
38
|
+
* Sign with `finalizeEvent()` or pass to a Signer.
|
|
39
|
+
*/
|
|
40
|
+
export function createRelayListEventTemplate(relays) {
|
|
41
|
+
const tags = [];
|
|
42
|
+
const seen = new Set();
|
|
43
|
+
for (const relay of relays) {
|
|
44
|
+
const url = normalizeURL(relay.url);
|
|
45
|
+
if (seen.has(url))
|
|
46
|
+
continue;
|
|
47
|
+
seen.add(url);
|
|
48
|
+
if (relay.read && relay.write) {
|
|
49
|
+
tags.push(['r', url]);
|
|
50
|
+
}
|
|
51
|
+
else if (relay.read) {
|
|
52
|
+
tags.push(['r', url, 'read']);
|
|
53
|
+
}
|
|
54
|
+
else if (relay.write) {
|
|
55
|
+
tags.push(['r', url, 'write']);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
kind: RELAY_LIST_KIND,
|
|
60
|
+
tags,
|
|
61
|
+
content: '',
|
|
62
|
+
created_at: Math.floor(Date.now() / 1000),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Create and sign a kind 10002 relay list event.
|
|
67
|
+
*/
|
|
68
|
+
export function createRelayListEvent(relays, secretKey) {
|
|
69
|
+
return finalizeEvent(createRelayListEventTemplate(relays), secretKey);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get only read relays from a parsed relay list.
|
|
73
|
+
*/
|
|
74
|
+
export function getReadRelays(relays) {
|
|
75
|
+
return relays.filter(r => r.read).map(r => r.url);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get only write relays from a parsed relay list.
|
|
79
|
+
*/
|
|
80
|
+
export function getWriteRelays(relays) {
|
|
81
|
+
return relays.filter(r => r.write).map(r => r.url);
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=nip65.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nip65.js","sourceRoot":"","sources":["../src/nip65.ts"],"names":[],"mappings":"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"}
|
package/dist/nip75.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type NostrEvent, type EventTemplate } from './event.js';
|
|
2
|
+
export type ZapBeneficiary = {
|
|
3
|
+
pubkey: string;
|
|
4
|
+
relay?: string;
|
|
5
|
+
weight?: string;
|
|
6
|
+
};
|
|
7
|
+
export type ZapGoal = {
|
|
8
|
+
content: string;
|
|
9
|
+
amount: number;
|
|
10
|
+
relays: string[];
|
|
11
|
+
closedAt?: number;
|
|
12
|
+
image?: string;
|
|
13
|
+
summary?: string;
|
|
14
|
+
references?: string[];
|
|
15
|
+
addresses?: string[];
|
|
16
|
+
beneficiaries?: ZapBeneficiary[];
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Create a kind 9041 zap goal event template.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createZapGoalTemplate(goal: ZapGoal): EventTemplate;
|
|
22
|
+
/**
|
|
23
|
+
* Create and sign a kind 9041 zap goal event.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createZapGoalEvent(goal: ZapGoal, secretKey: Uint8Array): NostrEvent;
|
|
26
|
+
/**
|
|
27
|
+
* Parse a kind 9041 zap goal event.
|
|
28
|
+
*/
|
|
29
|
+
export declare function parseZapGoal(event: NostrEvent): ZapGoal;
|
|
30
|
+
/**
|
|
31
|
+
* Check if a zap goal is still open (not past its closed_at timestamp).
|
|
32
|
+
*/
|
|
33
|
+
export declare function isZapGoalOpen(event: NostrEvent): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Calculate the zap goal progress from a list of zap receipt events (kind 9735).
|
|
36
|
+
* Returns the total amount received in millisatoshis.
|
|
37
|
+
*/
|
|
38
|
+
export declare function calculateZapGoalProgress(zapReceipts: NostrEvent[]): number;
|
|
39
|
+
/**
|
|
40
|
+
* Build a `goal` tag for an addressable event that references a zap goal.
|
|
41
|
+
*/
|
|
42
|
+
export declare function buildGoalTag(goalEventId: string, relay?: string): string[];
|
|
43
|
+
//# sourceMappingURL=nip75.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nip75.d.ts","sourceRoot":"","sources":["../src/nip75.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAI/E,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,aAAa,CAAC,EAAE,cAAc,EAAE,CAAA;CACjC,CAAA;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,CA8BlE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,GAAG,UAAU,CAEnF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CA8CvD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAKxD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAmB1E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAI1E"}
|
package/dist/nip75.js
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { finalizeEvent } from './event.js';
|
|
2
|
+
/**
|
|
3
|
+
* Create a kind 9041 zap goal event template.
|
|
4
|
+
*/
|
|
5
|
+
export function createZapGoalTemplate(goal) {
|
|
6
|
+
const tags = [
|
|
7
|
+
['amount', String(goal.amount)],
|
|
8
|
+
['relays', ...goal.relays],
|
|
9
|
+
];
|
|
10
|
+
if (goal.closedAt)
|
|
11
|
+
tags.push(['closed_at', String(goal.closedAt)]);
|
|
12
|
+
if (goal.image)
|
|
13
|
+
tags.push(['image', goal.image]);
|
|
14
|
+
if (goal.summary)
|
|
15
|
+
tags.push(['summary', goal.summary]);
|
|
16
|
+
if (goal.references) {
|
|
17
|
+
for (const r of goal.references)
|
|
18
|
+
tags.push(['r', r]);
|
|
19
|
+
}
|
|
20
|
+
if (goal.addresses) {
|
|
21
|
+
for (const a of goal.addresses)
|
|
22
|
+
tags.push(['a', a]);
|
|
23
|
+
}
|
|
24
|
+
if (goal.beneficiaries) {
|
|
25
|
+
for (const b of goal.beneficiaries) {
|
|
26
|
+
const tag = ['zap', b.pubkey];
|
|
27
|
+
if (b.relay)
|
|
28
|
+
tag.push(b.relay);
|
|
29
|
+
if (b.weight)
|
|
30
|
+
tag.push(b.weight);
|
|
31
|
+
tags.push(tag);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
kind: 9041,
|
|
36
|
+
tags,
|
|
37
|
+
content: goal.content,
|
|
38
|
+
created_at: Math.floor(Date.now() / 1000),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Create and sign a kind 9041 zap goal event.
|
|
43
|
+
*/
|
|
44
|
+
export function createZapGoalEvent(goal, secretKey) {
|
|
45
|
+
return finalizeEvent(createZapGoalTemplate(goal), secretKey);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Parse a kind 9041 zap goal event.
|
|
49
|
+
*/
|
|
50
|
+
export function parseZapGoal(event) {
|
|
51
|
+
const result = { content: event.content, amount: 0, relays: [] };
|
|
52
|
+
const references = [];
|
|
53
|
+
const addresses = [];
|
|
54
|
+
const beneficiaries = [];
|
|
55
|
+
for (const tag of event.tags) {
|
|
56
|
+
switch (tag[0]) {
|
|
57
|
+
case 'amount':
|
|
58
|
+
result.amount = parseInt(tag[1], 10);
|
|
59
|
+
break;
|
|
60
|
+
case 'relays':
|
|
61
|
+
result.relays = tag.slice(1);
|
|
62
|
+
break;
|
|
63
|
+
case 'closed_at':
|
|
64
|
+
result.closedAt = parseInt(tag[1], 10);
|
|
65
|
+
break;
|
|
66
|
+
case 'image':
|
|
67
|
+
result.image = tag[1];
|
|
68
|
+
break;
|
|
69
|
+
case 'summary':
|
|
70
|
+
result.summary = tag[1];
|
|
71
|
+
break;
|
|
72
|
+
case 'r':
|
|
73
|
+
if (tag[1])
|
|
74
|
+
references.push(tag[1]);
|
|
75
|
+
break;
|
|
76
|
+
case 'a':
|
|
77
|
+
if (tag[1])
|
|
78
|
+
addresses.push(tag[1]);
|
|
79
|
+
break;
|
|
80
|
+
case 'zap': {
|
|
81
|
+
if (tag[1]) {
|
|
82
|
+
const b = { pubkey: tag[1] };
|
|
83
|
+
if (tag[2])
|
|
84
|
+
b.relay = tag[2];
|
|
85
|
+
if (tag[3])
|
|
86
|
+
b.weight = tag[3];
|
|
87
|
+
beneficiaries.push(b);
|
|
88
|
+
}
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (references.length > 0)
|
|
94
|
+
result.references = references;
|
|
95
|
+
if (addresses.length > 0)
|
|
96
|
+
result.addresses = addresses;
|
|
97
|
+
if (beneficiaries.length > 0)
|
|
98
|
+
result.beneficiaries = beneficiaries;
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Check if a zap goal is still open (not past its closed_at timestamp).
|
|
103
|
+
*/
|
|
104
|
+
export function isZapGoalOpen(event) {
|
|
105
|
+
const closedAtTag = event.tags.find(t => t[0] === 'closed_at');
|
|
106
|
+
if (!closedAtTag)
|
|
107
|
+
return true;
|
|
108
|
+
const closedAt = parseInt(closedAtTag[1], 10);
|
|
109
|
+
return Math.floor(Date.now() / 1000) < closedAt;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Calculate the zap goal progress from a list of zap receipt events (kind 9735).
|
|
113
|
+
* Returns the total amount received in millisatoshis.
|
|
114
|
+
*/
|
|
115
|
+
export function calculateZapGoalProgress(zapReceipts) {
|
|
116
|
+
let total = 0;
|
|
117
|
+
for (const receipt of zapReceipts) {
|
|
118
|
+
if (receipt.kind !== 9735)
|
|
119
|
+
continue;
|
|
120
|
+
const descriptionTag = receipt.tags.find(t => t[0] === 'description');
|
|
121
|
+
if (!descriptionTag?.[1])
|
|
122
|
+
continue;
|
|
123
|
+
try {
|
|
124
|
+
const zapRequest = JSON.parse(descriptionTag[1]);
|
|
125
|
+
const amountTag = zapRequest.tags.find(t => t[0] === 'amount');
|
|
126
|
+
if (amountTag)
|
|
127
|
+
total += parseInt(amountTag[1], 10);
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
// Invalid description JSON, skip
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return total;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Build a `goal` tag for an addressable event that references a zap goal.
|
|
137
|
+
*/
|
|
138
|
+
export function buildGoalTag(goalEventId, relay) {
|
|
139
|
+
const tag = ['goal', goalEventId];
|
|
140
|
+
if (relay)
|
|
141
|
+
tag.push(relay);
|
|
142
|
+
return tag;
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=nip75.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nip75.js","sourceRoot":"","sources":["../src/nip75.ts"],"names":[],"mappings":"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"}
|
package/dist/nip98.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type NostrEvent, type EventTemplate } from './event.js';
|
|
2
|
+
export type HttpAuthOptions = {
|
|
3
|
+
url: string;
|
|
4
|
+
method: string;
|
|
5
|
+
body?: Uint8Array | string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Create a kind 27235 HTTP auth event template (unsigned).
|
|
9
|
+
*/
|
|
10
|
+
export declare function createHttpAuthEventTemplate(opts: HttpAuthOptions): EventTemplate;
|
|
11
|
+
/**
|
|
12
|
+
* Create and sign a kind 27235 HTTP auth event.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createHttpAuthEvent(opts: HttpAuthOptions, secretKey: Uint8Array): NostrEvent;
|
|
15
|
+
/**
|
|
16
|
+
* Get the Authorization header value from a signed HTTP auth event.
|
|
17
|
+
* Returns "Nostr <base64>" format.
|
|
18
|
+
*/
|
|
19
|
+
export declare function getAuthorizationHeader(event: NostrEvent): string;
|
|
20
|
+
/**
|
|
21
|
+
* Verify an HTTP auth event against expected request parameters.
|
|
22
|
+
*/
|
|
23
|
+
export declare function verifyHttpAuthEvent(event: NostrEvent, opts: HttpAuthOptions): boolean;
|
|
24
|
+
//# sourceMappingURL=nip98.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nip98.d.ts","sourceRoot":"","sources":["../src/nip98.ts"],"names":[],"mappings":"AAIA,OAAO,EAA8B,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAG5F,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,CAAA;CAC3B,CAAA;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,eAAe,GAAG,aAAa,CAkBhF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,GAAG,UAAU,CAE5F;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAIhE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAsBrF"}
|
package/dist/nip98.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { sha256 } from '@noble/hashes/sha2';
|
|
2
|
+
import { bytesToHex } from '@noble/hashes/utils';
|
|
3
|
+
import { base64 } from '@scure/base';
|
|
4
|
+
import { finalizeEvent, verifyEvent } from './event.js';
|
|
5
|
+
import { utf8Encoder } from './utils.js';
|
|
6
|
+
/**
|
|
7
|
+
* Create a kind 27235 HTTP auth event template (unsigned).
|
|
8
|
+
*/
|
|
9
|
+
export function createHttpAuthEventTemplate(opts) {
|
|
10
|
+
const tags = [
|
|
11
|
+
['u', opts.url],
|
|
12
|
+
['method', opts.method.toUpperCase()],
|
|
13
|
+
];
|
|
14
|
+
if (opts.body) {
|
|
15
|
+
const bodyBytes = typeof opts.body === 'string' ? utf8Encoder.encode(opts.body) : opts.body;
|
|
16
|
+
const hash = bytesToHex(sha256(bodyBytes));
|
|
17
|
+
tags.push(['payload', hash]);
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
kind: 27235,
|
|
21
|
+
tags,
|
|
22
|
+
content: '',
|
|
23
|
+
created_at: Math.floor(Date.now() / 1000),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create and sign a kind 27235 HTTP auth event.
|
|
28
|
+
*/
|
|
29
|
+
export function createHttpAuthEvent(opts, secretKey) {
|
|
30
|
+
return finalizeEvent(createHttpAuthEventTemplate(opts), secretKey);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get the Authorization header value from a signed HTTP auth event.
|
|
34
|
+
* Returns "Nostr <base64>" format.
|
|
35
|
+
*/
|
|
36
|
+
export function getAuthorizationHeader(event) {
|
|
37
|
+
const json = JSON.stringify(event);
|
|
38
|
+
const encoded = base64.encode(utf8Encoder.encode(json));
|
|
39
|
+
return `Nostr ${encoded}`;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Verify an HTTP auth event against expected request parameters.
|
|
43
|
+
*/
|
|
44
|
+
export function verifyHttpAuthEvent(event, opts) {
|
|
45
|
+
if (event.kind !== 27235)
|
|
46
|
+
return false;
|
|
47
|
+
if (!verifyEvent(event))
|
|
48
|
+
return false;
|
|
49
|
+
// Check timestamp is within 60 seconds
|
|
50
|
+
const now = Math.floor(Date.now() / 1000);
|
|
51
|
+
if (Math.abs(event.created_at - now) > 60)
|
|
52
|
+
return false;
|
|
53
|
+
const urlTag = event.tags.find(t => t[0] === 'u');
|
|
54
|
+
const methodTag = event.tags.find(t => t[0] === 'method');
|
|
55
|
+
if (!urlTag || urlTag[1] !== opts.url)
|
|
56
|
+
return false;
|
|
57
|
+
if (!methodTag || methodTag[1] !== opts.method.toUpperCase())
|
|
58
|
+
return false;
|
|
59
|
+
if (opts.body) {
|
|
60
|
+
const bodyBytes = typeof opts.body === 'string' ? utf8Encoder.encode(opts.body) : opts.body;
|
|
61
|
+
const expectedHash = bytesToHex(sha256(bodyBytes));
|
|
62
|
+
const payloadTag = event.tags.find(t => t[0] === 'payload');
|
|
63
|
+
if (!payloadTag || payloadTag[1] !== expectedHash)
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=nip98.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nip98.js","sourceRoot":"","sources":["../src/nip98.ts"],"names":[],"mappings":"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"}
|
package/dist/relay.d.ts
CHANGED
|
@@ -27,6 +27,7 @@ export declare class Relay {
|
|
|
27
27
|
eoseTimeout: number;
|
|
28
28
|
publishTimeout: number;
|
|
29
29
|
openSubs: Map<string, Subscription>;
|
|
30
|
+
onauth: ((challenge: string) => void) | undefined;
|
|
30
31
|
private connectionPromise;
|
|
31
32
|
private openEventPublishes;
|
|
32
33
|
private ws;
|
|
@@ -44,6 +45,7 @@ export declare class Relay {
|
|
|
44
45
|
subscribe(filters: Filter[], params: SubscriptionParams & {
|
|
45
46
|
id?: string;
|
|
46
47
|
}): Subscription;
|
|
48
|
+
auth(event: NostrEvent): Promise<string>;
|
|
47
49
|
close(): void;
|
|
48
50
|
private closeAllSubscriptions;
|
|
49
51
|
_onmessage(ev: MessageEvent): void;
|
package/dist/relay.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAGvD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAA;IACnC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,qBAAa,YAAY;IACvB,SAAgB,KAAK,EAAE,KAAK,CAAA;IAC5B,SAAgB,EAAE,EAAE,MAAM,CAAA;IACnB,MAAM,UAAQ;IACd,KAAK,UAAQ;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;IAEjB,OAAO,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAA;IAClC,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAEtD,OAAO,CAAC,iBAAiB,CAA2C;gBAExD,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,kBAAkB;IASnF,IAAI;IAKJ,YAAY;IAOZ,KAAK,CAAC,MAAM,SAAqB;CAYlC;AAED,qBAAa,KAAK;IAChB,SAAgB,GAAG,EAAE,MAAM,CAAA;IAC3B,OAAO,CAAC,UAAU,CAAQ;IACnB,WAAW,SAAO;IAClB,cAAc,SAAO;IACrB,QAAQ,4BAAkC;
|
|
1
|
+
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAGvD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAA;IACnC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,qBAAa,YAAY;IACvB,SAAgB,KAAK,EAAE,KAAK,CAAA;IAC5B,SAAgB,EAAE,EAAE,MAAM,CAAA;IACnB,MAAM,UAAQ;IACd,KAAK,UAAQ;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;IAEjB,OAAO,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAA;IAClC,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAEtD,OAAO,CAAC,iBAAiB,CAA2C;gBAExD,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,kBAAkB;IASnF,IAAI;IAKJ,YAAY;IAOZ,KAAK,CAAC,MAAM,SAAqB;CAYlC;AAED,qBAAa,KAAK;IAChB,SAAgB,GAAG,EAAE,MAAM,CAAA;IAC3B,OAAO,CAAC,UAAU,CAAQ;IACnB,WAAW,SAAO;IAClB,cAAc,SAAO;IACrB,QAAQ,4BAAkC;IAC1C,MAAM,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAExD,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,kBAAkB,CAItB;IACJ,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,UAAU,CAAkB;gBAExB,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,uBAAuB,CAAC,EAAE,OAAO,SAAS,CAAA;KAAE;IAK9E,IAAI,SAAS,IAAI,OAAO,CAEvB;IAEK,OAAO,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CzD,IAAI,CAAC,OAAO,EAAE,MAAM;IAKd,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAejD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,kBAAkB,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,YAAY;IASlF,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAe9C,KAAK;IASL,OAAO,CAAC,qBAAqB;IAY7B,UAAU,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;CAsDnC"}
|
package/dist/relay.js
CHANGED
|
@@ -50,6 +50,7 @@ export class Relay {
|
|
|
50
50
|
eoseTimeout = 4400;
|
|
51
51
|
publishTimeout = 4400;
|
|
52
52
|
openSubs = new Map();
|
|
53
|
+
onauth;
|
|
53
54
|
connectionPromise;
|
|
54
55
|
openEventPublishes = new Map();
|
|
55
56
|
ws;
|
|
@@ -128,6 +129,20 @@ export class Relay {
|
|
|
128
129
|
sub.fire();
|
|
129
130
|
return sub;
|
|
130
131
|
}
|
|
132
|
+
async auth(event) {
|
|
133
|
+
const ret = new Promise((resolve, reject) => {
|
|
134
|
+
const timeout = setTimeout(() => {
|
|
135
|
+
const ep = this.openEventPublishes.get(event.id);
|
|
136
|
+
if (ep) {
|
|
137
|
+
ep.reject(new Error('auth timed out'));
|
|
138
|
+
this.openEventPublishes.delete(event.id);
|
|
139
|
+
}
|
|
140
|
+
}, this.publishTimeout);
|
|
141
|
+
this.openEventPublishes.set(event.id, { resolve, reject, timeout });
|
|
142
|
+
});
|
|
143
|
+
this.send('["AUTH",' + JSON.stringify(event) + ']');
|
|
144
|
+
return ret;
|
|
145
|
+
}
|
|
131
146
|
close() {
|
|
132
147
|
this.closeAllSubscriptions('relay connection closed by us');
|
|
133
148
|
this._connected = false;
|
|
@@ -195,6 +210,11 @@ export class Relay {
|
|
|
195
210
|
so.close(data[2]);
|
|
196
211
|
return;
|
|
197
212
|
}
|
|
213
|
+
case 'AUTH': {
|
|
214
|
+
const challenge = data[1];
|
|
215
|
+
this.onauth?.(challenge);
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
198
218
|
case 'NOTICE': {
|
|
199
219
|
return;
|
|
200
220
|
}
|
package/dist/relay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,YAAY,EAAe,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AASzC,MAAM,OAAO,YAAY;IACP,KAAK,CAAO;IACZ,EAAE,CAAQ;IACnB,MAAM,GAAG,KAAK,CAAA;IACd,KAAK,GAAG,KAAK,CAAA;IACb,OAAO,CAAU;IAEjB,OAAO,CAA2B;IAClC,MAAM,CAA0B;IAChC,OAAO,CAAwC;IAE9C,iBAAiB,CAA2C;IAEpE,YAAY,KAAY,EAAE,EAAU,EAAE,OAAiB,EAAE,MAA0B;QACjF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;IAC/B,CAAC;IAED,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QACxF,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACxF,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,KAAK;YAAE,OAAM;QACtB,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,GAAG,kBAAkB;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAA;YAC9D,CAAC;YAAC,MAAM,CAAC;gBACP,8BAA8B;YAChC,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAA;IACxB,CAAC;CACF;AAED,MAAM,OAAO,KAAK;IACA,GAAG,CAAQ;IACnB,UAAU,GAAG,KAAK,CAAA;IACnB,WAAW,GAAG,IAAI,CAAA;IAClB,cAAc,GAAG,IAAI,CAAA;IACrB,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nostr-core",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.7.0",
|
|
4
|
+
"description": "Comprehensive Nostr protocol toolkit and NWC (Nostr Wallet Connect) client",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -31,7 +31,9 @@
|
|
|
31
31
|
"@noble/ciphers": "^1.2.0",
|
|
32
32
|
"@noble/curves": "^1.8.0",
|
|
33
33
|
"@noble/hashes": "^1.7.0",
|
|
34
|
-
"@scure/base": "^1.2.0"
|
|
34
|
+
"@scure/base": "^1.2.0",
|
|
35
|
+
"@scure/bip32": "^2.0.1",
|
|
36
|
+
"@scure/bip39": "^2.0.1"
|
|
35
37
|
},
|
|
36
38
|
"devDependencies": {
|
|
37
39
|
"typescript": "^5.7.0",
|
|
@@ -44,6 +46,35 @@
|
|
|
44
46
|
"wallet-connect",
|
|
45
47
|
"lightning",
|
|
46
48
|
"bitcoin",
|
|
47
|
-
"nip-
|
|
49
|
+
"nip-04",
|
|
50
|
+
"nip-05",
|
|
51
|
+
"nip-06",
|
|
52
|
+
"nip-07",
|
|
53
|
+
"nip-09",
|
|
54
|
+
"nip-10",
|
|
55
|
+
"nip-11",
|
|
56
|
+
"nip-17",
|
|
57
|
+
"nip-19",
|
|
58
|
+
"nip-21",
|
|
59
|
+
"nip-22",
|
|
60
|
+
"nip-23",
|
|
61
|
+
"nip-24",
|
|
62
|
+
"nip-25",
|
|
63
|
+
"nip-27",
|
|
64
|
+
"nip-29",
|
|
65
|
+
"nip-30",
|
|
66
|
+
"nip-31",
|
|
67
|
+
"nip-42",
|
|
68
|
+
"nip-44",
|
|
69
|
+
"nip-46",
|
|
70
|
+
"nip-47",
|
|
71
|
+
"nip-51",
|
|
72
|
+
"nip-52",
|
|
73
|
+
"nip-57",
|
|
74
|
+
"nip-58",
|
|
75
|
+
"nip-59",
|
|
76
|
+
"nip-65",
|
|
77
|
+
"nip-75",
|
|
78
|
+
"nip-98"
|
|
48
79
|
]
|
|
49
80
|
}
|