nostr-core 0.7.0 → 0.9.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 +15 -3
- package/dist/blossom.d.ts +122 -0
- package/dist/blossom.d.ts.map +1 -0
- package/dist/blossom.js +237 -0
- package/dist/blossom.js.map +1 -0
- package/dist/bolt11.d.ts +78 -0
- package/dist/bolt11.d.ts.map +1 -0
- package/dist/bolt11.js +296 -0
- package/dist/bolt11.js.map +1 -0
- package/dist/index.d.ts +14 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/nip58.d.ts +29 -49
- package/dist/nip58.d.ts.map +1 -1
- package/dist/nip58.js +119 -88
- package/dist/nip58.js.map +1 -1
- package/dist/nip60.d.ts +132 -0
- package/dist/nip60.d.ts.map +1 -0
- package/dist/nip60.js +256 -0
- package/dist/nip60.js.map +1 -0
- package/dist/nwc.d.ts +4 -3
- package/dist/nwc.d.ts.map +1 -1
- package/dist/nwc.js +51 -64
- package/dist/nwc.js.map +1 -1
- package/dist/rss.d.ts +108 -0
- package/dist/rss.d.ts.map +1 -0
- package/dist/rss.js +357 -0
- package/dist/rss.js.map +1 -0
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -3
package/dist/rss.d.ts
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { type LongFormContent } from './nip23.js';
|
|
2
|
+
import { type BlobDescriptor } from './blossom.js';
|
|
3
|
+
import type { Signer } from './signer.js';
|
|
4
|
+
import type { NostrEvent } from './event.js';
|
|
5
|
+
export type FeedFormat = 'rss' | 'atom' | 'jsonfeed';
|
|
6
|
+
export type FeedItem = {
|
|
7
|
+
/** Stable id from the feed (guid/id/url). Used to derive the NIP-23 d-tag. */
|
|
8
|
+
guid: string;
|
|
9
|
+
title: string;
|
|
10
|
+
link?: string;
|
|
11
|
+
summary?: string;
|
|
12
|
+
/** Full HTML body when the feed provides it; falls back to summary HTML. */
|
|
13
|
+
contentHtml: string;
|
|
14
|
+
/** Unix seconds. */
|
|
15
|
+
publishedAt?: number;
|
|
16
|
+
categories?: string[];
|
|
17
|
+
image?: string;
|
|
18
|
+
author?: string;
|
|
19
|
+
};
|
|
20
|
+
export type Feed = {
|
|
21
|
+
format: FeedFormat;
|
|
22
|
+
title: string;
|
|
23
|
+
link?: string;
|
|
24
|
+
description?: string;
|
|
25
|
+
items: FeedItem[];
|
|
26
|
+
};
|
|
27
|
+
export declare class RssError extends Error {
|
|
28
|
+
code: string;
|
|
29
|
+
constructor(message: string, code?: string);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Parse a feed string. Auto-detects RSS 2.0, Atom, or JSON Feed.
|
|
33
|
+
*/
|
|
34
|
+
export declare function parseFeed(input: string): Feed;
|
|
35
|
+
/**
|
|
36
|
+
* Fetch a feed URL and parse it. Uses the global fetch.
|
|
37
|
+
*
|
|
38
|
+
* Note: in browsers, the target site must allow CORS. If it doesn't, fetch
|
|
39
|
+
* the XML through your own proxy and call `parseFeed` directly.
|
|
40
|
+
*/
|
|
41
|
+
export declare function fetchFeed(url: string, init?: RequestInit): Promise<Feed>;
|
|
42
|
+
/**
|
|
43
|
+
* Convert HTML to Markdown using turndown.
|
|
44
|
+
*
|
|
45
|
+
* Browser/Deno: works out of the box. Node: turndown ships with a DOM shim,
|
|
46
|
+
* but if you see errors install `@mixmark-io/domino` explicitly.
|
|
47
|
+
*/
|
|
48
|
+
export declare function htmlToMarkdown(html: string): string;
|
|
49
|
+
export type ItemToDraftOptions = {
|
|
50
|
+
/** Extra hashtags merged with the item's categories. */
|
|
51
|
+
hashtags?: string[];
|
|
52
|
+
/** Prefix prepended to the derived d-tag identifier. */
|
|
53
|
+
identifierPrefix?: string;
|
|
54
|
+
/** Append the original post URL as a footer when present (default true). */
|
|
55
|
+
appendSourceLink?: boolean;
|
|
56
|
+
/** Override the HTML→Markdown converter. Defaults to turndown. */
|
|
57
|
+
htmlToMarkdown?: (html: string) => string;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Convert a FeedItem into a `LongFormContent` ready for `createLongFormEvent`.
|
|
61
|
+
*
|
|
62
|
+
* The result is markdown by default. Pass `isDraft: true` on the caller side
|
|
63
|
+
* to publish as kind 30024.
|
|
64
|
+
*/
|
|
65
|
+
export declare function itemToDraft(item: FeedItem, opts?: ItemToDraftOptions): LongFormContent;
|
|
66
|
+
export type RehostMode = 'mirror' | 'upload';
|
|
67
|
+
export type RehostOptions = {
|
|
68
|
+
servers: string[];
|
|
69
|
+
signer: Signer;
|
|
70
|
+
/** 'mirror' (BUD-04, server-side pull — no browser CORS) or 'upload' (fetch then PUT). */
|
|
71
|
+
mode?: RehostMode;
|
|
72
|
+
/** Seconds until the Blossom auth token expires (default 300). */
|
|
73
|
+
authTtl?: number;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Find image URLs in markdown, push each to a Blossom server, and rewrite
|
|
77
|
+
* the markdown to reference the Blossom-hosted blob.
|
|
78
|
+
*
|
|
79
|
+
* In `mirror` mode the Blossom server fetches the URL itself (recommended in
|
|
80
|
+
* the browser to avoid CORS). In `upload` mode we download the image then
|
|
81
|
+
* PUT it. Already-hosted Blossom URLs and data: URIs are left untouched.
|
|
82
|
+
*/
|
|
83
|
+
export declare function rehostImagesInMarkdown(markdown: string, opts: RehostOptions): Promise<{
|
|
84
|
+
markdown: string;
|
|
85
|
+
blobs: BlobDescriptor[];
|
|
86
|
+
}>;
|
|
87
|
+
export type ImportFeedOptions = {
|
|
88
|
+
signer: Signer;
|
|
89
|
+
/** Cap on items to import (default: all). */
|
|
90
|
+
limit?: number;
|
|
91
|
+
/** Skip items published before this unix-seconds timestamp. */
|
|
92
|
+
since?: number;
|
|
93
|
+
/** Forwarded to itemToDraft. */
|
|
94
|
+
draft?: ItemToDraftOptions;
|
|
95
|
+
/** When provided, image URLs are rehosted via Blossom before signing. */
|
|
96
|
+
blossom?: {
|
|
97
|
+
servers: string[];
|
|
98
|
+
mode?: RehostMode;
|
|
99
|
+
};
|
|
100
|
+
/** Publish as kind 30024 draft (default true). false → kind 30023. */
|
|
101
|
+
asDraft?: boolean;
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Glue: fetch a feed, transform each item to a NIP-23 long-form event, and
|
|
105
|
+
* return the signed events. Caller is responsible for publishing to relays.
|
|
106
|
+
*/
|
|
107
|
+
export declare function importFeedAsDrafts(feedUrl: string, opts: ImportFeedOptions): Promise<NostrEvent[]>;
|
|
108
|
+
//# sourceMappingURL=rss.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rss.d.ts","sourceRoot":"","sources":["../src/rss.ts"],"names":[],"mappings":"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"}
|
package/dist/rss.js
ADDED
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
import { XMLParser } from 'fast-xml-parser';
|
|
2
|
+
import TurndownService from 'turndown';
|
|
3
|
+
import { sha256 } from '@noble/hashes/sha2';
|
|
4
|
+
import { bytesToHex } from '@noble/hashes/utils';
|
|
5
|
+
import { utf8Encoder } from './utils.js';
|
|
6
|
+
import { createLongFormEventTemplate } from './nip23.js';
|
|
7
|
+
import { createAuthEventTemplate, uploadBlob, mirrorBlob, } from './blossom.js';
|
|
8
|
+
export class RssError extends Error {
|
|
9
|
+
code;
|
|
10
|
+
constructor(message, code = 'RSS_ERROR') {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = 'RssError';
|
|
13
|
+
this.code = code;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
// ── Internal helpers ───────────────────────────────────────────────────
|
|
17
|
+
const xmlParser = new XMLParser({
|
|
18
|
+
ignoreAttributes: false,
|
|
19
|
+
attributeNamePrefix: '@_',
|
|
20
|
+
textNodeName: '#text',
|
|
21
|
+
parseTagValue: false,
|
|
22
|
+
trimValues: true,
|
|
23
|
+
cdataPropName: '#cdata',
|
|
24
|
+
htmlEntities: true,
|
|
25
|
+
isArray: (name) => ['item', 'entry', 'category', 'author'].includes(name),
|
|
26
|
+
});
|
|
27
|
+
function pickLink(linkNode) {
|
|
28
|
+
if (!linkNode)
|
|
29
|
+
return undefined;
|
|
30
|
+
const arr = Array.isArray(linkNode) ? linkNode : [linkNode];
|
|
31
|
+
for (const l of arr) {
|
|
32
|
+
if (typeof l === 'string' && l)
|
|
33
|
+
return l;
|
|
34
|
+
if (l && typeof l === 'object') {
|
|
35
|
+
const rec = l;
|
|
36
|
+
if ((rec['@_rel'] ?? 'alternate') !== 'alternate')
|
|
37
|
+
continue;
|
|
38
|
+
const href = rec['@_href'];
|
|
39
|
+
if (typeof href === 'string' && href)
|
|
40
|
+
return href;
|
|
41
|
+
const t = text(l);
|
|
42
|
+
if (t)
|
|
43
|
+
return t;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
function text(node) {
|
|
49
|
+
if (node == null)
|
|
50
|
+
return '';
|
|
51
|
+
if (typeof node === 'string')
|
|
52
|
+
return node;
|
|
53
|
+
if (typeof node === 'number' || typeof node === 'boolean')
|
|
54
|
+
return String(node);
|
|
55
|
+
if (typeof node === 'object') {
|
|
56
|
+
const obj = node;
|
|
57
|
+
if (typeof obj['#cdata'] === 'string')
|
|
58
|
+
return obj['#cdata'];
|
|
59
|
+
if (typeof obj['#text'] === 'string')
|
|
60
|
+
return obj['#text'];
|
|
61
|
+
}
|
|
62
|
+
return '';
|
|
63
|
+
}
|
|
64
|
+
function parseDate(s) {
|
|
65
|
+
if (!s)
|
|
66
|
+
return undefined;
|
|
67
|
+
const t = Date.parse(s);
|
|
68
|
+
return Number.isFinite(t) ? Math.floor(t / 1000) : undefined;
|
|
69
|
+
}
|
|
70
|
+
function firstImageFromHtml(html) {
|
|
71
|
+
const m = html.match(/<img[^>]+src=["']([^"']+)["']/i);
|
|
72
|
+
return m?.[1];
|
|
73
|
+
}
|
|
74
|
+
function deriveIdentifier(item, prefix) {
|
|
75
|
+
const seed = item.guid || item.link || item.title || '';
|
|
76
|
+
if (!seed) {
|
|
77
|
+
throw new RssError('Cannot derive identifier: item has no guid, link, or title', 'NO_IDENTIFIER');
|
|
78
|
+
}
|
|
79
|
+
const hash = bytesToHex(sha256(utf8Encoder.encode(seed))).slice(0, 16);
|
|
80
|
+
return prefix ? `${prefix}${hash}` : hash;
|
|
81
|
+
}
|
|
82
|
+
// ── Feed parsing ───────────────────────────────────────────────────────
|
|
83
|
+
function parseRss(root) {
|
|
84
|
+
const channel = root.rss?.channel;
|
|
85
|
+
if (!channel)
|
|
86
|
+
throw new RssError('Missing <rss><channel>', 'INVALID_RSS');
|
|
87
|
+
const items = (channel.item ?? []).map((it) => {
|
|
88
|
+
const contentEncoded = text(it['content:encoded']);
|
|
89
|
+
const description = text(it.description);
|
|
90
|
+
const contentHtml = contentEncoded || description;
|
|
91
|
+
const link = pickLink(it.link);
|
|
92
|
+
const categories = (it.category ?? [])
|
|
93
|
+
.map((c) => text(c))
|
|
94
|
+
.filter((c) => c.length > 0);
|
|
95
|
+
const enclosure = it.enclosure;
|
|
96
|
+
const enclosureUrl = enclosure && (enclosure['@_type'] ?? '').startsWith('image/')
|
|
97
|
+
? enclosure['@_url']
|
|
98
|
+
: undefined;
|
|
99
|
+
const mediaContent = it['media:content']?.['@_url'];
|
|
100
|
+
const mediaThumb = it['media:thumbnail']?.['@_url'];
|
|
101
|
+
return {
|
|
102
|
+
guid: text(it.guid) || link || text(it.title),
|
|
103
|
+
title: text(it.title),
|
|
104
|
+
link,
|
|
105
|
+
summary: description && description !== contentHtml ? description : undefined,
|
|
106
|
+
contentHtml,
|
|
107
|
+
publishedAt: parseDate(text(it.pubDate)),
|
|
108
|
+
categories: categories.length ? categories : undefined,
|
|
109
|
+
image: enclosureUrl || mediaContent || mediaThumb || firstImageFromHtml(contentHtml),
|
|
110
|
+
author: text(it['dc:creator']) || text(it.author) || undefined,
|
|
111
|
+
};
|
|
112
|
+
});
|
|
113
|
+
return {
|
|
114
|
+
format: 'rss',
|
|
115
|
+
title: text(channel.title),
|
|
116
|
+
link: typeof channel.link === 'string' ? channel.link : text(channel.link),
|
|
117
|
+
description: text(channel.description),
|
|
118
|
+
items,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function parseAtom(root) {
|
|
122
|
+
const feed = root.feed;
|
|
123
|
+
if (!feed)
|
|
124
|
+
throw new RssError('Missing <feed>', 'INVALID_ATOM');
|
|
125
|
+
const items = (feed.entry ?? []).map((e) => {
|
|
126
|
+
const contentHtml = text(e.content) || text(e.summary);
|
|
127
|
+
const summary = text(e.summary);
|
|
128
|
+
const link = pickLink(e.link);
|
|
129
|
+
const categories = (e.category ?? [])
|
|
130
|
+
.map((c) => c['@_term'] || text(c))
|
|
131
|
+
.filter((c) => c && c.length > 0);
|
|
132
|
+
const authorArr = e.author ?? [];
|
|
133
|
+
const author = authorArr.length ? text(authorArr[0]?.name) : undefined;
|
|
134
|
+
return {
|
|
135
|
+
guid: text(e.id) || link || text(e.title),
|
|
136
|
+
title: text(e.title),
|
|
137
|
+
link,
|
|
138
|
+
summary: summary && summary !== contentHtml ? summary : undefined,
|
|
139
|
+
contentHtml,
|
|
140
|
+
publishedAt: parseDate(text(e.published) || text(e.updated)),
|
|
141
|
+
categories: categories.length ? categories : undefined,
|
|
142
|
+
image: firstImageFromHtml(contentHtml),
|
|
143
|
+
author,
|
|
144
|
+
};
|
|
145
|
+
});
|
|
146
|
+
return {
|
|
147
|
+
format: 'atom',
|
|
148
|
+
title: text(feed.title),
|
|
149
|
+
link: pickLink(feed.link),
|
|
150
|
+
description: text(feed.subtitle),
|
|
151
|
+
items,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
function parseJsonFeed(json) {
|
|
155
|
+
if (!json || typeof json !== 'object' || !Array.isArray(json.items)) {
|
|
156
|
+
throw new RssError('Invalid JSON Feed', 'INVALID_JSONFEED');
|
|
157
|
+
}
|
|
158
|
+
const items = json.items.map((it) => {
|
|
159
|
+
const contentHtml = it.content_html || it.content_text || it.summary || '';
|
|
160
|
+
return {
|
|
161
|
+
guid: it.id || it.url || it.title,
|
|
162
|
+
title: it.title || '',
|
|
163
|
+
link: it.url,
|
|
164
|
+
summary: it.summary,
|
|
165
|
+
contentHtml,
|
|
166
|
+
publishedAt: parseDate(it.date_published),
|
|
167
|
+
categories: Array.isArray(it.tags) ? it.tags : undefined,
|
|
168
|
+
image: it.image || it.banner_image || firstImageFromHtml(contentHtml),
|
|
169
|
+
author: it.author?.name || (Array.isArray(it.authors) ? it.authors[0]?.name : undefined),
|
|
170
|
+
};
|
|
171
|
+
});
|
|
172
|
+
return {
|
|
173
|
+
format: 'jsonfeed',
|
|
174
|
+
title: json.title || '',
|
|
175
|
+
link: json.home_page_url,
|
|
176
|
+
description: json.description,
|
|
177
|
+
items,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Parse a feed string. Auto-detects RSS 2.0, Atom, or JSON Feed.
|
|
182
|
+
*/
|
|
183
|
+
export function parseFeed(input) {
|
|
184
|
+
const trimmed = input.trimStart();
|
|
185
|
+
if (trimmed.startsWith('{')) {
|
|
186
|
+
return parseJsonFeed(JSON.parse(trimmed));
|
|
187
|
+
}
|
|
188
|
+
const root = xmlParser.parse(trimmed);
|
|
189
|
+
if (root.rss)
|
|
190
|
+
return parseRss(root);
|
|
191
|
+
if (root.feed)
|
|
192
|
+
return parseAtom(root);
|
|
193
|
+
throw new RssError('Unrecognized feed format', 'UNKNOWN_FORMAT');
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Fetch a feed URL and parse it. Uses the global fetch.
|
|
197
|
+
*
|
|
198
|
+
* Note: in browsers, the target site must allow CORS. If it doesn't, fetch
|
|
199
|
+
* the XML through your own proxy and call `parseFeed` directly.
|
|
200
|
+
*/
|
|
201
|
+
export async function fetchFeed(url, init) {
|
|
202
|
+
const res = await fetch(url, init);
|
|
203
|
+
if (!res.ok) {
|
|
204
|
+
throw new RssError(`Feed fetch failed: ${res.status} ${res.statusText}`, 'FETCH_ERROR');
|
|
205
|
+
}
|
|
206
|
+
return parseFeed(await res.text());
|
|
207
|
+
}
|
|
208
|
+
// ── HTML → Markdown ────────────────────────────────────────────────────
|
|
209
|
+
let _turndown;
|
|
210
|
+
function getTurndown() {
|
|
211
|
+
if (!_turndown) {
|
|
212
|
+
_turndown = new TurndownService({
|
|
213
|
+
headingStyle: 'atx',
|
|
214
|
+
codeBlockStyle: 'fenced',
|
|
215
|
+
bulletListMarker: '-',
|
|
216
|
+
emDelimiter: '_',
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
return _turndown;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Convert HTML to Markdown using turndown.
|
|
223
|
+
*
|
|
224
|
+
* Browser/Deno: works out of the box. Node: turndown ships with a DOM shim,
|
|
225
|
+
* but if you see errors install `@mixmark-io/domino` explicitly.
|
|
226
|
+
*/
|
|
227
|
+
export function htmlToMarkdown(html) {
|
|
228
|
+
return getTurndown().turndown(html);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Convert a FeedItem into a `LongFormContent` ready for `createLongFormEvent`.
|
|
232
|
+
*
|
|
233
|
+
* The result is markdown by default. Pass `isDraft: true` on the caller side
|
|
234
|
+
* to publish as kind 30024.
|
|
235
|
+
*/
|
|
236
|
+
export function itemToDraft(item, opts = {}) {
|
|
237
|
+
const convert = opts.htmlToMarkdown ?? htmlToMarkdown;
|
|
238
|
+
let markdown = convert(item.contentHtml || '').trim();
|
|
239
|
+
if ((opts.appendSourceLink ?? true) && item.link) {
|
|
240
|
+
markdown += `\n\n---\n\n*Originally published at [${item.link}](${item.link})*`;
|
|
241
|
+
}
|
|
242
|
+
const tagSet = new Set();
|
|
243
|
+
for (const t of item.categories ?? [])
|
|
244
|
+
tagSet.add(t.toLowerCase().trim());
|
|
245
|
+
for (const t of opts.hashtags ?? [])
|
|
246
|
+
tagSet.add(t.toLowerCase().trim());
|
|
247
|
+
tagSet.delete('');
|
|
248
|
+
return {
|
|
249
|
+
identifier: deriveIdentifier(item, opts.identifierPrefix),
|
|
250
|
+
title: item.title || undefined,
|
|
251
|
+
image: item.image,
|
|
252
|
+
summary: item.summary,
|
|
253
|
+
publishedAt: item.publishedAt,
|
|
254
|
+
hashtags: tagSet.size ? Array.from(tagSet) : undefined,
|
|
255
|
+
content: markdown,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
// ── Blossom image rehosting ────────────────────────────────────────────
|
|
259
|
+
const MD_IMAGE_RE = /!\[([^\]]*)\]\(([^)\s]+)(?:\s+"[^"]*")?\)/g;
|
|
260
|
+
/**
|
|
261
|
+
* Find image URLs in markdown, push each to a Blossom server, and rewrite
|
|
262
|
+
* the markdown to reference the Blossom-hosted blob.
|
|
263
|
+
*
|
|
264
|
+
* In `mirror` mode the Blossom server fetches the URL itself (recommended in
|
|
265
|
+
* the browser to avoid CORS). In `upload` mode we download the image then
|
|
266
|
+
* PUT it. Already-hosted Blossom URLs and data: URIs are left untouched.
|
|
267
|
+
*/
|
|
268
|
+
export async function rehostImagesInMarkdown(markdown, opts) {
|
|
269
|
+
const mode = opts.mode ?? 'mirror';
|
|
270
|
+
const ttl = opts.authTtl ?? 300;
|
|
271
|
+
const servers = opts.servers.filter(Boolean);
|
|
272
|
+
if (!servers.length) {
|
|
273
|
+
throw new RssError('rehostImagesInMarkdown: at least one Blossom server is required', 'NO_SERVERS');
|
|
274
|
+
}
|
|
275
|
+
const primary = servers[0];
|
|
276
|
+
const urls = new Set();
|
|
277
|
+
for (const match of markdown.matchAll(MD_IMAGE_RE)) {
|
|
278
|
+
const url = match[2];
|
|
279
|
+
if (!url || url.startsWith('data:'))
|
|
280
|
+
continue;
|
|
281
|
+
urls.add(url);
|
|
282
|
+
}
|
|
283
|
+
const blobs = [];
|
|
284
|
+
const remap = new Map();
|
|
285
|
+
for (const url of urls) {
|
|
286
|
+
try {
|
|
287
|
+
let blob;
|
|
288
|
+
if (mode === 'mirror') {
|
|
289
|
+
const authTpl = createAuthEventTemplate({
|
|
290
|
+
action: 'upload',
|
|
291
|
+
content: 'Mirror image from RSS import',
|
|
292
|
+
expiration: Math.floor(Date.now() / 1000) + ttl,
|
|
293
|
+
});
|
|
294
|
+
const authEvent = (await opts.signer.signEvent(authTpl));
|
|
295
|
+
blob = await mirrorBlob(primary, url, authEvent);
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
const res = await fetch(url);
|
|
299
|
+
if (!res.ok)
|
|
300
|
+
throw new RssError(`Image fetch failed: ${res.status}`, 'IMG_FETCH');
|
|
301
|
+
const data = new Uint8Array(await res.arrayBuffer());
|
|
302
|
+
const hash = bytesToHex(sha256(data));
|
|
303
|
+
const authTpl = createAuthEventTemplate({
|
|
304
|
+
action: 'upload',
|
|
305
|
+
content: 'Upload image from RSS import',
|
|
306
|
+
expiration: Math.floor(Date.now() / 1000) + ttl,
|
|
307
|
+
hashes: [hash],
|
|
308
|
+
size: data.length,
|
|
309
|
+
});
|
|
310
|
+
const authEvent = (await opts.signer.signEvent(authTpl));
|
|
311
|
+
blob = await uploadBlob(primary, data, authEvent, res.headers.get('content-type') ?? undefined);
|
|
312
|
+
}
|
|
313
|
+
blobs.push(blob);
|
|
314
|
+
remap.set(url, blob.url);
|
|
315
|
+
}
|
|
316
|
+
catch {
|
|
317
|
+
// Leave the original URL in place if rehosting fails for one image.
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
const rewritten = markdown.replace(MD_IMAGE_RE, (full, alt, url) => {
|
|
321
|
+
const next = remap.get(url);
|
|
322
|
+
return next ? `` : full;
|
|
323
|
+
});
|
|
324
|
+
return { markdown: rewritten, blobs };
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Glue: fetch a feed, transform each item to a NIP-23 long-form event, and
|
|
328
|
+
* return the signed events. Caller is responsible for publishing to relays.
|
|
329
|
+
*/
|
|
330
|
+
export async function importFeedAsDrafts(feedUrl, opts) {
|
|
331
|
+
const feed = await fetchFeed(feedUrl);
|
|
332
|
+
const asDraft = opts.asDraft ?? true;
|
|
333
|
+
const out = [];
|
|
334
|
+
let items = feed.items;
|
|
335
|
+
if (opts.since !== undefined) {
|
|
336
|
+
items = items.filter((i) => (i.publishedAt ?? 0) >= opts.since);
|
|
337
|
+
}
|
|
338
|
+
if (opts.limit !== undefined) {
|
|
339
|
+
items = items.slice(0, opts.limit);
|
|
340
|
+
}
|
|
341
|
+
for (const item of items) {
|
|
342
|
+
const article = itemToDraft(item, opts.draft);
|
|
343
|
+
if (opts.blossom?.servers?.length) {
|
|
344
|
+
const { markdown } = await rehostImagesInMarkdown(article.content, {
|
|
345
|
+
servers: opts.blossom.servers,
|
|
346
|
+
mode: opts.blossom.mode,
|
|
347
|
+
signer: opts.signer,
|
|
348
|
+
});
|
|
349
|
+
article.content = markdown;
|
|
350
|
+
}
|
|
351
|
+
const tpl = createLongFormEventTemplate({ ...article, isDraft: asDraft });
|
|
352
|
+
const signed = (await opts.signer.signEvent(tpl));
|
|
353
|
+
out.push(signed);
|
|
354
|
+
}
|
|
355
|
+
return out;
|
|
356
|
+
}
|
|
357
|
+
//# sourceMappingURL=rss.js.map
|
package/dist/rss.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rss.js","sourceRoot":"","sources":["../src/rss.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -131,7 +131,10 @@ export type Nip47Notification = {
|
|
|
131
131
|
};
|
|
132
132
|
export type NWCConnectionOptions = {
|
|
133
133
|
walletPubkey: string;
|
|
134
|
+
/** Primary relay URL (first relay in the connection string) */
|
|
134
135
|
relayUrl: string;
|
|
136
|
+
/** All relay URLs from the connection string */
|
|
137
|
+
relayUrls: string[];
|
|
135
138
|
secret: string;
|
|
136
139
|
};
|
|
137
140
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nostr-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Comprehensive Nostr protocol toolkit and NWC (Nostr Wallet Connect) client",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -33,9 +33,12 @@
|
|
|
33
33
|
"@noble/hashes": "^1.7.0",
|
|
34
34
|
"@scure/base": "^1.2.0",
|
|
35
35
|
"@scure/bip32": "^2.0.1",
|
|
36
|
-
"@scure/bip39": "^2.0.1"
|
|
36
|
+
"@scure/bip39": "^2.0.1",
|
|
37
|
+
"fast-xml-parser": "^4.5.0",
|
|
38
|
+
"turndown": "^7.2.0"
|
|
37
39
|
},
|
|
38
40
|
"devDependencies": {
|
|
41
|
+
"@types/turndown": "^5.0.5",
|
|
39
42
|
"typescript": "^5.7.0",
|
|
40
43
|
"vitepress": "^1.6.3"
|
|
41
44
|
},
|
|
@@ -75,6 +78,12 @@
|
|
|
75
78
|
"nip-59",
|
|
76
79
|
"nip-65",
|
|
77
80
|
"nip-75",
|
|
78
|
-
"nip-98"
|
|
81
|
+
"nip-98",
|
|
82
|
+
"nip-60",
|
|
83
|
+
"cashu",
|
|
84
|
+
"ecash",
|
|
85
|
+
"bolt-11",
|
|
86
|
+
"blossom",
|
|
87
|
+
"nip-b7"
|
|
79
88
|
]
|
|
80
89
|
}
|