@welshman/content 0.0.1 → 0.0.3

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/build/index.cjs CHANGED
@@ -1,15 +1,20 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.truncate = exports.parse = exports.parseNext = exports.parsers = exports.parseLegacyMention = exports.parseTopic = exports.parseProfile = exports.parseNewline = exports.parseLink = exports.parseInvoice = exports.parseEvent = exports.parseCodeInline = exports.parseCodeBlock = exports.parseCashu = exports.parseAddress = exports.ParsedType = void 0;
6
+ exports.render = exports.renderAddress = exports.renderProfile = exports.renderEvent = exports.renderTopic = exports.renderText = exports.renderNewline = exports.renderLink = exports.renderInvoice = exports.renderEllipsis = exports.renderCode = exports.renderCashu = exports.HTML = exports.defaultRenderOptions = exports.truncate = exports.parse = exports.parseNext = exports.parsers = exports.parseLegacyMention = exports.parseTopic = exports.parseProfile = exports.parseNewline = exports.parseLink = exports.parseInvoice = exports.parseEvent = exports.parseCodeInline = exports.parseCodeBlock = exports.parseCashu = exports.parseAddress = exports.isTopic = exports.isText = exports.isProfile = exports.isNewline = exports.isLink = exports.isInvoice = exports.isEvent = exports.isEllipsis = exports.isCode = exports.isCashu = exports.isAddress = exports.ParsedType = exports.urlIsMedia = void 0;
4
7
  const nostr_tools_1 = require("nostr-tools");
8
+ const insane_1 = __importDefault(require("insane"));
5
9
  const last = (xs, ...args) => xs[xs.length - 1];
6
10
  const fromNostrURI = (s) => s.replace(/^nostr:\/?\/?/, "");
11
+ const urlIsMedia = (url) => Boolean(url.match(/\.(jpe?g|png|wav|mp3|mp4|mov|avi|webm|webp|gif|bmp|svg)$/));
12
+ exports.urlIsMedia = urlIsMedia;
7
13
  var ParsedType;
8
14
  (function (ParsedType) {
9
15
  ParsedType["Address"] = "address";
10
16
  ParsedType["Cashu"] = "cashu";
11
- ParsedType["CodeBlock"] = "code_block";
12
- ParsedType["CodeInline"] = "code_inline";
17
+ ParsedType["Code"] = "code";
13
18
  ParsedType["Ellipsis"] = "ellipsis";
14
19
  ParsedType["Event"] = "event";
15
20
  ParsedType["Invoice"] = "invoice";
@@ -19,13 +24,36 @@ var ParsedType;
19
24
  ParsedType["Text"] = "text";
20
25
  ParsedType["Topic"] = "topic";
21
26
  })(ParsedType || (exports.ParsedType = ParsedType = {}));
27
+ // Matchers
28
+ const isAddress = (parsed) => parsed.type === ParsedType.Address;
29
+ exports.isAddress = isAddress;
30
+ const isCashu = (parsed) => parsed.type === ParsedType.Cashu;
31
+ exports.isCashu = isCashu;
32
+ const isCode = (parsed) => parsed.type === ParsedType.Code;
33
+ exports.isCode = isCode;
34
+ const isEllipsis = (parsed) => parsed.type === ParsedType.Ellipsis;
35
+ exports.isEllipsis = isEllipsis;
36
+ const isEvent = (parsed) => parsed.type === ParsedType.Event;
37
+ exports.isEvent = isEvent;
38
+ const isInvoice = (parsed) => parsed.type === ParsedType.Invoice;
39
+ exports.isInvoice = isInvoice;
40
+ const isLink = (parsed) => parsed.type === ParsedType.Link;
41
+ exports.isLink = isLink;
42
+ const isNewline = (parsed) => parsed.type === ParsedType.Newline;
43
+ exports.isNewline = isNewline;
44
+ const isProfile = (parsed) => parsed.type === ParsedType.Profile;
45
+ exports.isProfile = isProfile;
46
+ const isText = (parsed) => parsed.type === ParsedType.Text;
47
+ exports.isText = isText;
48
+ const isTopic = (parsed) => parsed.type === ParsedType.Topic;
49
+ exports.isTopic = isTopic;
22
50
  // Parsers for known formats
23
- const parseAddress = (raw, context) => {
24
- const [naddr] = raw.match(/^(web\+)?(nostr:)?\/?\/?naddr1[\d\w]+/i) || [];
51
+ const parseAddress = (text, context) => {
52
+ const [naddr] = text.match(/^(web\+)?(nostr:)?\/?\/?naddr1[\d\w]+/i) || [];
25
53
  if (naddr) {
26
54
  try {
27
55
  const { data } = nostr_tools_1.nip19.decode(fromNostrURI(naddr));
28
- return { type: ParsedType.Address, value: data, raw };
56
+ return { type: ParsedType.Address, value: data, raw: naddr };
29
57
  }
30
58
  catch (e) {
31
59
  // Pass
@@ -33,36 +61,36 @@ const parseAddress = (raw, context) => {
33
61
  }
34
62
  };
35
63
  exports.parseAddress = parseAddress;
36
- const parseCashu = (raw, context) => {
37
- const [value] = raw.match(/^(cashu)[\d\w=]{50,5000}/i) || [];
64
+ const parseCashu = (text, context) => {
65
+ const [value] = text.match(/^(cashu)[\d\w=]{50,5000}/i) || [];
38
66
  if (value) {
39
- return { type: ParsedType.Cashu, value, raw };
67
+ return { type: ParsedType.Cashu, value, raw: value };
40
68
  }
41
69
  };
42
70
  exports.parseCashu = parseCashu;
43
- const parseCodeBlock = (raw, context) => {
44
- const [code, value] = raw.match(/^```([^]*?)```/i) || [];
71
+ const parseCodeBlock = (text, context) => {
72
+ const [code, value] = text.match(/^```([^]*?)```/i) || [];
45
73
  if (code) {
46
- return { type: ParsedType.CodeBlock, value, raw };
74
+ return { type: ParsedType.Code, value, raw: code };
47
75
  }
48
76
  };
49
77
  exports.parseCodeBlock = parseCodeBlock;
50
- const parseCodeInline = (raw, context) => {
51
- const [code, value] = raw.match(/^`(.*?)`/i) || [];
78
+ const parseCodeInline = (text, context) => {
79
+ const [code, value] = text.match(/^`(.*?)`/i) || [];
52
80
  if (code) {
53
- return { type: ParsedType.CodeInline, value, raw };
81
+ return { type: ParsedType.Code, value, raw: code };
54
82
  }
55
83
  };
56
84
  exports.parseCodeInline = parseCodeInline;
57
- const parseEvent = (raw, context) => {
58
- const [entity] = raw.match(/^(web\+)?(nostr:)?\/?\/?n(event|ote)1[\d\w]+/i) || [];
85
+ const parseEvent = (text, context) => {
86
+ const [entity] = text.match(/^(web\+)?(nostr:)?\/?\/?n(event|ote)1[\d\w]+/i) || [];
59
87
  if (entity) {
60
88
  try {
61
89
  const { type, data } = nostr_tools_1.nip19.decode(fromNostrURI(entity));
62
90
  const value = type === "note"
63
91
  ? { id: data, relays: [] }
64
92
  : data;
65
- return { type: ParsedType.Event, value, raw };
93
+ return { type: ParsedType.Event, value, raw: entity };
66
94
  }
67
95
  catch (e) {
68
96
  // Pass
@@ -70,62 +98,53 @@ const parseEvent = (raw, context) => {
70
98
  }
71
99
  };
72
100
  exports.parseEvent = parseEvent;
73
- const parseInvoice = (raw, context) => {
74
- const [value] = raw.match(/^ln(lnbc|lnurl)[\d\w]{50,1000}/i) || [];
101
+ const parseInvoice = (text, context) => {
102
+ const [value] = text.match(/^ln(lnbc|lnurl)[\d\w]{50,1000}/i) || [];
75
103
  if (value) {
76
- return { type: ParsedType.Invoice, value, raw };
104
+ return { type: ParsedType.Invoice, value, raw: value };
77
105
  }
78
106
  };
79
107
  exports.parseInvoice = parseInvoice;
80
- const parseLink = (raw, context) => {
81
- var _a;
82
- const [link] = raw.match(/^([a-z\+:]{2,30}:\/\/)?[^<>\(\)\s]+\.[a-z]{2,6}[^\s]*[^<>"'\.!?,:\s\)\(]/gi) || [];
83
- if (!link) {
84
- return;
85
- }
108
+ const parseLink = (text, context) => {
86
109
  const prev = last(context.results);
87
- // Skip url if it's just the end of a filepath
88
- if ((prev === null || prev === void 0 ? void 0 : prev.type) === ParsedType.Text && prev.value.endsWith("/")) {
110
+ const [link] = text.match(/^([a-z\+:]{2,30}:\/\/)?[^<>\(\)\s]+\.[a-z]{2,6}[^\s]*[^<>"'\.!?,:\s\)\(]/gi) || [];
111
+ // Skip url if it's just the end of a filepath or an ellipse
112
+ if (!link || (prev === null || prev === void 0 ? void 0 : prev.type) === ParsedType.Text && prev.value.endsWith("/") || link.match(/\.\./)) {
89
113
  return;
90
114
  }
91
- // Strip hash component
92
- let [url, hash] = link.split("#");
93
- // Skip ellipses and very short non-urls
94
- if (url.match(/\.\./)) {
95
- return;
115
+ // Parse using URL, make sure there's a protocol
116
+ let url;
117
+ try {
118
+ url = new URL(link.match(/^\w+:\/\//) ? link : "https://" + link);
96
119
  }
97
- // Make sure there's a protocol
98
- if (!url.match("^\w+://")) {
99
- url = "https://" + url;
120
+ catch (e) {
121
+ return;
100
122
  }
101
- const meta = Object.fromEntries(new URLSearchParams(hash).entries());
123
+ const meta = Object.fromEntries(new URLSearchParams(url.hash.slice(1)).entries());
102
124
  for (const tag of context.tags) {
103
- if (tag[0] === 'imeta' && tag.find(t => t.includes(`url ${raw}`))) {
125
+ if (tag[0] === 'imeta' && tag.find(t => t.includes(`url ${link}`))) {
104
126
  Object.assign(meta, Object.fromEntries(tag.slice(1).map((m) => m.split(" "))));
105
127
  }
106
128
  }
107
- const isMedia = Boolean(url.match(/\.(jpe?g|png|wav|mp3|mp4|mov|avi|webm|webp|gif|bmp|svg)$/) &&
108
- ((_a = last(url.replace(/\/$/, "").split("://"))) === null || _a === void 0 ? void 0 : _a.includes("/")));
109
- const value = { url, hash, meta, isMedia };
110
- return { type: ParsedType.Link, value, raw };
129
+ return { type: ParsedType.Link, value: { url, meta, isMedia: (0, exports.urlIsMedia)(url.pathname) }, raw: link };
111
130
  };
112
131
  exports.parseLink = parseLink;
113
- const parseNewline = (raw, context) => {
114
- const [value] = raw.match(/^\n+/) || [];
132
+ const parseNewline = (text, context) => {
133
+ const [value] = text.match(/^\n+/) || [];
115
134
  if (value) {
116
- return { type: ParsedType.Newline, raw, value };
135
+ return { type: ParsedType.Newline, value, raw: value };
117
136
  }
118
137
  };
119
138
  exports.parseNewline = parseNewline;
120
- const parseProfile = (raw, context) => {
121
- const [entity] = raw.match(/^(web\+)?(nostr:)?\/?\/?n(profile|pub)1[\d\w]+/i) || [];
139
+ const parseProfile = (text, context) => {
140
+ const [entity] = text.match(/^(web\+)?(nostr:)?\/?\/?n(profile|pub)1[\d\w]+/i) || [];
122
141
  if (entity) {
123
142
  try {
124
143
  const { type, data } = nostr_tools_1.nip19.decode(fromNostrURI(entity));
125
144
  const value = type === "npub"
126
145
  ? { pubkey: data, relays: [] }
127
146
  : data;
128
- return { type: ParsedType.Profile, value, raw };
147
+ return { type: ParsedType.Profile, value, raw: entity };
129
148
  }
130
149
  catch (e) {
131
150
  // Pass
@@ -133,25 +152,25 @@ const parseProfile = (raw, context) => {
133
152
  }
134
153
  };
135
154
  exports.parseProfile = parseProfile;
136
- const parseTopic = (raw, context) => {
137
- const [value] = raw.match(/^#[^\s!\"#$%&'()*+,-.\/:;<=>?@[\\\]^_`{|}~]+/i) || [];
155
+ const parseTopic = (text, context) => {
156
+ const [value] = text.match(/^#[^\s!\"#$%&'()*+,-.\/:;<=>?@[\\\]^_`{|}~]+/i) || [];
138
157
  // Skip numeric topics
139
158
  if (value && !value.match(/^#\d+$/)) {
140
- return { type: ParsedType.Topic, raw, value };
159
+ return { type: ParsedType.Topic, value: value.slice(1), raw: value };
141
160
  }
142
161
  };
143
162
  exports.parseTopic = parseTopic;
144
163
  // Parse other formats to known types
145
- const parseLegacyMention = (raw, context) => {
146
- const mentionMatch = raw.match(/^#\[(\d+)\]/i) || [];
164
+ const parseLegacyMention = (text, context) => {
165
+ const mentionMatch = text.match(/^#\[(\d+)\]/i) || [];
147
166
  if (mentionMatch) {
148
167
  const [tag, value, url] = context.tags[parseInt(mentionMatch[1])] || [];
149
168
  const relays = url ? [url] : [];
150
169
  if (tag === "p") {
151
- return { type: ParsedType.Profile, value: { pubkey: value, relays }, raw };
170
+ return { type: ParsedType.Profile, value: { pubkey: value, relays }, raw: mentionMatch[0] };
152
171
  }
153
172
  if (tag === "e") {
154
- return { type: ParsedType.Event, value: { id: value, relays }, raw };
173
+ return { type: ParsedType.Event, value: { id: value, relays }, raw: mentionMatch[0] };
155
174
  }
156
175
  }
157
176
  };
@@ -208,7 +227,7 @@ const parse = ({ content = "", tags = [] }) => {
208
227
  return context.results;
209
228
  };
210
229
  exports.parse = parse;
211
- const truncate = (content, { minLength = 400, maxLength = 600, mediaLength = 200, entityLength = 30, }) => {
230
+ const truncate = (content, { minLength = 400, maxLength = 600, mediaLength = 200, entityLength = 30, } = {}) => {
212
231
  // Get a list of content sizes so we know where to truncate
213
232
  // Non-plaintext things might take up more or less room if rendered
214
233
  const sizes = content.map((parsed) => {
@@ -244,4 +263,62 @@ const truncate = (content, { minLength = 400, maxLength = 600, mediaLength = 200
244
263
  return content;
245
264
  };
246
265
  exports.truncate = truncate;
266
+ exports.defaultRenderOptions = {
267
+ entityBaseUrl: 'https://njump.me/'
268
+ };
269
+ class HTML {
270
+ constructor(value) {
271
+ this.value = value;
272
+ this.toString = () => this.value;
273
+ this.value = value;
274
+ }
275
+ }
276
+ exports.HTML = HTML;
277
+ HTML.useSafely = (value) => new HTML((0, insane_1.default)(value));
278
+ HTML.useDangerously = (value) => new HTML(value);
279
+ HTML.buildLink = (href, display) => HTML.useSafely(`<a href=${href} target="_blank">${display}</a>`);
280
+ HTML.buildEntityLink = (entity, options) => HTML.buildLink(options.entityBaseUrl + entity, entity.slice(0, 16) + '…');
281
+ const renderCashu = (parsed, options) => HTML.useSafely(parsed.value);
282
+ exports.renderCashu = renderCashu;
283
+ const renderCode = (parsed, options) => HTML.useSafely(parsed.value);
284
+ exports.renderCode = renderCode;
285
+ const renderEllipsis = (parsed, options) => "…";
286
+ exports.renderEllipsis = renderEllipsis;
287
+ const renderInvoice = (parsed, options) => HTML.useSafely(parsed.value);
288
+ exports.renderInvoice = renderInvoice;
289
+ const renderLink = (parsed, options) => {
290
+ const href = parsed.value.url.toString();
291
+ const display = parsed.value.url.host + parsed.value.url.pathname;
292
+ return HTML.buildLink(href, display);
293
+ };
294
+ exports.renderLink = renderLink;
295
+ const renderNewline = (parsed, options) => HTML.useSafely(Array.from(parsed.value).map(() => '<br />').join(''));
296
+ exports.renderNewline = renderNewline;
297
+ const renderText = (parsed, options) => HTML.useSafely(parsed.value);
298
+ exports.renderText = renderText;
299
+ const renderTopic = (parsed, options) => HTML.useSafely(parsed.value);
300
+ exports.renderTopic = renderTopic;
301
+ const renderEvent = (parsed, options) => HTML.buildEntityLink(nostr_tools_1.nip19.neventEncode(parsed.value), options);
302
+ exports.renderEvent = renderEvent;
303
+ const renderProfile = (parsed, options) => HTML.buildEntityLink(nostr_tools_1.nip19.nprofileEncode(parsed.value), options);
304
+ exports.renderProfile = renderProfile;
305
+ const renderAddress = (parsed, options) => HTML.buildEntityLink(nostr_tools_1.nip19.naddrEncode(parsed.value), options);
306
+ exports.renderAddress = renderAddress;
307
+ const render = (parsed, options = {}) => {
308
+ options = { ...exports.defaultRenderOptions, ...options };
309
+ switch (parsed.type) {
310
+ case ParsedType.Address: return (0, exports.renderAddress)(parsed, options);
311
+ case ParsedType.Cashu: return (0, exports.renderCashu)(parsed, options);
312
+ case ParsedType.Code: return (0, exports.renderCode)(parsed, options);
313
+ case ParsedType.Ellipsis: return (0, exports.renderEllipsis)(parsed, options);
314
+ case ParsedType.Event: return (0, exports.renderEvent)(parsed, options);
315
+ case ParsedType.Invoice: return (0, exports.renderInvoice)(parsed, options);
316
+ case ParsedType.Link: return (0, exports.renderLink)(parsed, options);
317
+ case ParsedType.Newline: return (0, exports.renderNewline)(parsed, options);
318
+ case ParsedType.Profile: return (0, exports.renderProfile)(parsed, options);
319
+ case ParsedType.Text: return (0, exports.renderText)(parsed, options);
320
+ case ParsedType.Topic: return (0, exports.renderTopic)(parsed, options);
321
+ }
322
+ };
323
+ exports.render = render;
247
324
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,6CAAiC;AAEjC,MAAM,IAAI,GAAG,CAAI,EAAO,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAElE,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;AA+BlE,IAAY,UAaX;AAbD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,6BAAe,CAAA;IACf,sCAAwB,CAAA;IACxB,wCAA0B,CAAA;IAC1B,mCAAqB,CAAA;IACrB,6BAAe,CAAA;IACf,iCAAmB,CAAA;IACnB,2BAAa,CAAA;IACb,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,2BAAa,CAAA;IACb,6BAAe,CAAA;AACjB,CAAC,EAbW,UAAU,0BAAV,UAAU,QAarB;AA+FD,4BAA4B;AAErB,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,OAAqB,EAAwB,EAAE;IACvF,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,IAAI,EAAE,CAAA;IAEzE,IAAI,KAAK,EAAE;QACT,IAAI;YACF,MAAM,EAAC,IAAI,EAAC,GAAG,mBAAK,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;YAEhD,OAAO,EAAC,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,IAAsB,EAAE,GAAG,EAAC,CAAA;SACtE;QAAC,OAAO,CAAC,EAAE;YACV,OAAO;SACR;KACF;AACH,CAAC,CAAA;AAZY,QAAA,YAAY,gBAYxB;AAEM,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,OAAqB,EAAsB,EAAE;IACnF,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAA;IAE5D,IAAI,KAAK,EAAE;QACT,OAAO,EAAC,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAC,CAAA;KAC5C;AACH,CAAC,CAAA;AANY,QAAA,UAAU,cAMtB;AAEM,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,OAAqB,EAA0B,EAAE;IAC3F,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAA;IAExD,IAAI,IAAI,EAAE;QACR,OAAO,EAAC,IAAI,EAAE,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,EAAC,CAAA;KAChD;AACH,CAAC,CAAA;AANY,QAAA,cAAc,kBAM1B;AAEM,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,OAAqB,EAA2B,EAAE;IAC7F,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;IAElD,IAAI,IAAI,EAAE;QACR,OAAO,EAAC,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,EAAC,CAAA;KACjD;AACH,CAAC,CAAA;AANY,QAAA,eAAe,mBAM3B;AAEM,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,OAAqB,EAAsB,EAAE;IACnF,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,+CAA+C,CAAC,IAAI,EAAE,CAAA;IAEjF,IAAI,MAAM,EAAE;QACV,IAAI;YACF,MAAM,EAAC,IAAI,EAAE,IAAI,EAAC,GAAG,mBAAK,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;YACvD,MAAM,KAAK,GAAG,IAAI,KAAK,MAAM;gBAC3B,CAAC,CAAC,EAAC,EAAE,EAAE,IAAc,EAAE,MAAM,EAAE,EAAE,EAAC;gBAClC,CAAC,CAAC,IAAoB,CAAA;YAExB,OAAO,EAAC,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAC,CAAA;SAC5C;QAAC,OAAO,CAAC,EAAE;YACV,OAAO;SACR;KACF;AACH,CAAC,CAAA;AAfY,QAAA,UAAU,cAetB;AAEM,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,OAAqB,EAAwB,EAAE;IACvF,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAA;IAElE,IAAI,KAAK,EAAE;QACT,OAAO,EAAC,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAC,CAAA;KAC9C;AACH,CAAC,CAAA;AANY,QAAA,YAAY,gBAMxB;AAEM,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,OAAqB,EAAqB,EAAE;;IACjF,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,4EAA4E,CAAC,IAAI,EAAE,CAAA;IAE5G,IAAI,CAAC,IAAI,EAAE;QACT,OAAM;KACP;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAElC,8CAA8C;IAC9C,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC9D,OAAM;KACP;IAED,uBAAuB;IACvB,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEjC,wCAAwC;IACxC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;QACrB,OAAM;KACP;IAED,+BAA+B;IAC/B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QACzB,GAAG,GAAG,UAAU,GAAG,GAAG,CAAA;KACvB;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;IAEpE,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE;QAC9B,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE;YACjE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;SACvF;KACF;IAED,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,CAAC,KAAK,CAAC,0DAA0D,CAAC;SACrE,MAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,0CAAE,QAAQ,CAAC,GAAG,CAAC,CAAA,CACzD,CAAA;IAED,MAAM,KAAK,GAAG,EAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,CAAA;IAExC,OAAO,EAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAC,CAAA;AAC5C,CAAC,CAAA;AA3CY,QAAA,SAAS,aA2CrB;AAEM,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,OAAqB,EAAwB,EAAE;IACvF,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAEvC,IAAI,KAAK,EAAE;QACT,OAAO,EAAC,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAC,CAAA;KAC9C;AACH,CAAC,CAAA;AANY,QAAA,YAAY,gBAMxB;AAEM,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,OAAqB,EAAwB,EAAE;IACvF,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,iDAAiD,CAAC,IAAI,EAAE,CAAA;IAEnF,IAAI,MAAM,EAAE;QACV,IAAI;YACF,MAAM,EAAC,IAAI,EAAE,IAAI,EAAC,GAAG,mBAAK,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;YACvD,MAAM,KAAK,GAAG,IAAI,KAAK,MAAM;gBAC3B,CAAC,CAAC,EAAC,MAAM,EAAE,IAAc,EAAE,MAAM,EAAE,EAAE,EAAC;gBACtC,CAAC,CAAC,IAAsB,CAAA;YAE1B,OAAO,EAAC,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAC,CAAA;SAC9C;QAAC,OAAO,CAAC,EAAE;YACV,OAAO;SACR;KACF;AACH,CAAC,CAAA;AAfY,QAAA,YAAY,gBAexB;AAEM,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,OAAqB,EAAsB,EAAE;IACnF,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,+CAA+C,CAAC,IAAI,EAAE,CAAA;IAEhF,sBAAsB;IACtB,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;QACnC,OAAO,EAAC,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAC,CAAA;KAC5C;AACH,CAAC,CAAA;AAPY,QAAA,UAAU,cAOtB;AAGD,qCAAqC;AAE9B,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,OAAqB,EAAsC,EAAE;IAC3G,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;IAEpD,IAAI,YAAY,EAAE;QAChB,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACvE,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAE/B,IAAI,GAAG,KAAK,GAAG,EAAE;YACf,OAAO,EAAC,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAC,EAAE,GAAG,EAAC,CAAA;SACvE;QAED,IAAI,GAAG,KAAK,GAAG,EAAE;YACf,OAAO,EAAC,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,EAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAC,EAAE,GAAG,EAAC,CAAA;SACjE;KACF;AACH,CAAC,CAAA;AAfY,QAAA,kBAAkB,sBAe9B;AAEY,QAAA,OAAO,GAAG;IACrB,oBAAY;IACZ,0BAAkB;IAClB,kBAAU;IACV,sBAAc;IACd,uBAAe;IACf,oBAAY;IACZ,oBAAY;IACZ,kBAAU;IACV,kBAAU;IACV,oBAAY;IACZ,iBAAS;CACV,CAAA;AAEM,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,OAAqB,EAAiB,EAAE;IAC7E,KAAK,MAAM,MAAM,IAAI,eAAO,EAAE;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAEnC,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAA;SACd;KACF;AACH,CAAC,CAAA;AARY,QAAA,SAAS,aAQrB;AAED,eAAe;AAER,MAAM,KAAK,GAAG,CAAC,EAAC,OAAO,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAwC,EAAE,EAAE;;IACxF,MAAM,OAAO,GAAiB,EAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAC,CAAA;IAE1D,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,KAAI,MAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,0CAAG,CAAC,CAAC,CAAA,IAAI,EAAE,CAAA;IAE3E,OAAO,SAAS,EAAE;QAChB,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAE5C,IAAI,MAAM,EAAE;YACV,IAAI,MAAM,EAAE;gBACV,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAC,CAAC,CAAA;gBACzE,MAAM,GAAG,EAAE,CAAA;aACZ;YAED,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC5B,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;SAC/C;aAAM;YACL,2FAA2F;YAC3F,uEAAuE;YACvE,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;YAE9D,MAAM,IAAI,KAAK,CAAA;YACf,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;SAC1C;KACF;IAED,IAAI,MAAM,EAAE;QACV,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAC,CAAC,CAAA;KAC1E;IAED,OAAO,OAAO,CAAC,OAAO,CAAA;AACxB,CAAC,CAAA;AAhCY,QAAA,KAAK,SAgCjB;AASM,MAAM,QAAQ,GAAG,CACtB,OAAiB,EACjB,EACE,SAAS,GAAG,GAAG,EACf,SAAS,GAAG,GAAG,EACf,WAAW,GAAG,GAAG,EACjB,YAAY,GAAG,EAAE,GACJ,EACf,EAAE;IACF,2DAA2D;IAC3D,mEAAmE;IACnE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAc,EAAE,EAAE;QAC3C,QAAQ,MAAM,CAAC,IAAI,EAAE;YACnB,KAAK,UAAU,CAAC,IAAI,CAAC;YACrB,KAAK,UAAU,CAAC,KAAK,CAAC;YACtB,KAAK,UAAU,CAAC,OAAO;gBACrB,OAAO,WAAW,CAAA;YACpB,KAAK,UAAU,CAAC,KAAK,CAAC;YACtB,KAAK,UAAU,CAAC,OAAO,CAAC;YACxB,KAAK,UAAU,CAAC,OAAO;gBACrB,OAAO,YAAY,CAAA;YACrB;gBACE,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAA;SAC7B;IACH,CAAC,CAAC,CAAA;IAEF,gDAAgD;IAChD,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,EAAE;QAChD,OAAO,OAAO,CAAA;KACf;IAED,IAAI,WAAW,GAAG,CAAC,CAAA;IAEnB,iFAAiF;IACjF,wFAAwF;IACxF,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACtB,WAAW,IAAI,IAAI,CAAA;QAEnB,iCAAiC;QACjC,IAAI,WAAW,GAAG,SAAS,IAAI,CAAC,GAAG,CAAC,EAAE;YACpC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAE7B,OAAO,KAAK,CAAA;SACb;QAGD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAlDY,QAAA,QAAQ,YAkDpB"}
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export declare const urlIsMedia: (url: string) => boolean;
1
2
  type AddressPointer = {
2
3
  identifier: string;
3
4
  pubkey: string;
@@ -22,8 +23,7 @@ export type ParseContext = {
22
23
  export declare enum ParsedType {
23
24
  Address = "address",
24
25
  Cashu = "cashu",
25
- CodeBlock = "code_block",
26
- CodeInline = "code_inline",
26
+ Code = "code",
27
27
  Ellipsis = "ellipsis",
28
28
  Event = "event",
29
29
  Invoice = "invoice",
@@ -38,13 +38,8 @@ export type ParsedCashu = {
38
38
  value: string;
39
39
  raw: string;
40
40
  };
41
- export type ParsedCodeBlock = {
42
- type: ParsedType.CodeBlock;
43
- value: string;
44
- raw: string;
45
- };
46
- export type ParsedCodeInline = {
47
- type: ParsedType.CodeInline;
41
+ export type ParsedCode = {
42
+ type: ParsedType.Code;
48
43
  value: string;
49
44
  raw: string;
50
45
  };
@@ -59,8 +54,7 @@ export type ParsedInvoice = {
59
54
  raw: string;
60
55
  };
61
56
  export type ParsedLinkValue = {
62
- url: string;
63
- hash: string;
57
+ url: URL;
64
58
  meta: Record<string, string>;
65
59
  isMedia: boolean;
66
60
  };
@@ -99,29 +93,67 @@ export type ParsedAddress = {
99
93
  value: AddressPointer;
100
94
  raw: string;
101
95
  };
102
- export type Parsed = ParsedAddress | ParsedCashu | ParsedCodeBlock | ParsedCodeInline | ParsedEllipsis | ParsedEvent | ParsedInvoice | ParsedLink | ParsedNewline | ParsedProfile | ParsedText | ParsedTopic;
103
- export declare const parseAddress: (raw: string, context: ParseContext) => ParsedAddress | void;
104
- export declare const parseCashu: (raw: string, context: ParseContext) => ParsedCashu | void;
105
- export declare const parseCodeBlock: (raw: string, context: ParseContext) => ParsedCodeBlock | void;
106
- export declare const parseCodeInline: (raw: string, context: ParseContext) => ParsedCodeInline | void;
107
- export declare const parseEvent: (raw: string, context: ParseContext) => ParsedEvent | void;
108
- export declare const parseInvoice: (raw: string, context: ParseContext) => ParsedInvoice | void;
109
- export declare const parseLink: (raw: string, context: ParseContext) => ParsedLink | void;
110
- export declare const parseNewline: (raw: string, context: ParseContext) => ParsedNewline | void;
111
- export declare const parseProfile: (raw: string, context: ParseContext) => ParsedProfile | void;
112
- export declare const parseTopic: (raw: string, context: ParseContext) => ParsedTopic | void;
113
- export declare const parseLegacyMention: (raw: string, context: ParseContext) => ParsedProfile | ParsedEvent | void;
114
- export declare const parsers: (((raw: string, context: ParseContext) => ParsedAddress | void) | ((raw: string, context: ParseContext) => ParsedCashu | void) | ((raw: string, context: ParseContext) => ParsedCodeBlock | void) | ((raw: string, context: ParseContext) => ParsedCodeInline | void) | ((raw: string, context: ParseContext) => ParsedInvoice | void) | ((raw: string, context: ParseContext) => ParsedLink | void) | ((raw: string, context: ParseContext) => ParsedNewline | void) | ((raw: string, context: ParseContext) => ParsedTopic | void) | ((raw: string, context: ParseContext) => ParsedProfile | ParsedEvent | void))[];
96
+ export type Parsed = ParsedAddress | ParsedCashu | ParsedCode | ParsedEllipsis | ParsedEvent | ParsedInvoice | ParsedLink | ParsedNewline | ParsedProfile | ParsedText | ParsedTopic;
97
+ export declare const isAddress: (parsed: Parsed) => parsed is ParsedAddress;
98
+ export declare const isCashu: (parsed: Parsed) => parsed is ParsedCashu;
99
+ export declare const isCode: (parsed: Parsed) => parsed is ParsedCode;
100
+ export declare const isEllipsis: (parsed: Parsed) => parsed is ParsedEllipsis;
101
+ export declare const isEvent: (parsed: Parsed) => parsed is ParsedEvent;
102
+ export declare const isInvoice: (parsed: Parsed) => parsed is ParsedInvoice;
103
+ export declare const isLink: (parsed: Parsed) => parsed is ParsedLink;
104
+ export declare const isNewline: (parsed: Parsed) => parsed is ParsedNewline;
105
+ export declare const isProfile: (parsed: Parsed) => parsed is ParsedProfile;
106
+ export declare const isText: (parsed: Parsed) => parsed is ParsedText;
107
+ export declare const isTopic: (parsed: Parsed) => parsed is ParsedTopic;
108
+ export declare const parseAddress: (text: string, context: ParseContext) => ParsedAddress | void;
109
+ export declare const parseCashu: (text: string, context: ParseContext) => ParsedCashu | void;
110
+ export declare const parseCodeBlock: (text: string, context: ParseContext) => ParsedCode | void;
111
+ export declare const parseCodeInline: (text: string, context: ParseContext) => ParsedCode | void;
112
+ export declare const parseEvent: (text: string, context: ParseContext) => ParsedEvent | void;
113
+ export declare const parseInvoice: (text: string, context: ParseContext) => ParsedInvoice | void;
114
+ export declare const parseLink: (text: string, context: ParseContext) => ParsedLink | void;
115
+ export declare const parseNewline: (text: string, context: ParseContext) => ParsedNewline | void;
116
+ export declare const parseProfile: (text: string, context: ParseContext) => ParsedProfile | void;
117
+ export declare const parseTopic: (text: string, context: ParseContext) => ParsedTopic | void;
118
+ export declare const parseLegacyMention: (text: string, context: ParseContext) => ParsedProfile | ParsedEvent | void;
119
+ export declare const parsers: (((text: string, context: ParseContext) => ParsedAddress | void) | ((text: string, context: ParseContext) => ParsedCashu | void) | ((text: string, context: ParseContext) => ParsedCode | void) | ((text: string, context: ParseContext) => ParsedInvoice | void) | ((text: string, context: ParseContext) => ParsedLink | void) | ((text: string, context: ParseContext) => ParsedNewline | void) | ((text: string, context: ParseContext) => ParsedTopic | void) | ((text: string, context: ParseContext) => ParsedProfile | ParsedEvent | void))[];
115
120
  export declare const parseNext: (raw: string, context: ParseContext) => Parsed | void;
116
121
  export declare const parse: ({ content, tags }: {
117
122
  content?: string | undefined;
118
123
  tags?: string[][] | undefined;
119
124
  }) => Parsed[];
120
125
  type TruncateOpts = {
121
- minLength: number;
122
- maxLength: number;
123
- mediaLength: number;
124
- entityLength: number;
125
- };
126
- export declare const truncate: (content: Parsed[], { minLength, maxLength, mediaLength, entityLength, }: TruncateOpts) => Parsed[];
126
+ minLength?: number;
127
+ maxLength?: number;
128
+ mediaLength?: number;
129
+ entityLength?: number;
130
+ };
131
+ export declare const truncate: (content: Parsed[], { minLength, maxLength, mediaLength, entityLength, }?: TruncateOpts) => Parsed[];
132
+ export type RenderOptions = {
133
+ entityBaseUrl?: string;
134
+ };
135
+ export declare const defaultRenderOptions: {
136
+ entityBaseUrl: string;
137
+ };
138
+ export declare class HTML {
139
+ readonly value: string;
140
+ constructor(value: string);
141
+ toString: () => string;
142
+ static useSafely: (value: string) => HTML;
143
+ static useDangerously: (value: string) => HTML;
144
+ static buildLink: (href: string, display: string) => HTML;
145
+ static buildEntityLink: (entity: string, options: RenderOptions) => HTML;
146
+ }
147
+ export declare const renderCashu: (parsed: ParsedCashu, options: RenderOptions) => HTML;
148
+ export declare const renderCode: (parsed: ParsedCode, options: RenderOptions) => HTML;
149
+ export declare const renderEllipsis: (parsed: ParsedEllipsis, options: RenderOptions) => string;
150
+ export declare const renderInvoice: (parsed: ParsedInvoice, options: RenderOptions) => HTML;
151
+ export declare const renderLink: (parsed: ParsedLink, options: RenderOptions) => HTML;
152
+ export declare const renderNewline: (parsed: ParsedNewline, options: RenderOptions) => HTML;
153
+ export declare const renderText: (parsed: ParsedText, options: RenderOptions) => HTML;
154
+ export declare const renderTopic: (parsed: ParsedTopic, options: RenderOptions) => HTML;
155
+ export declare const renderEvent: (parsed: ParsedEvent, options: RenderOptions) => HTML;
156
+ export declare const renderProfile: (parsed: ParsedProfile, options: RenderOptions) => HTML;
157
+ export declare const renderAddress: (parsed: ParsedAddress, options: RenderOptions) => HTML;
158
+ export declare const render: (parsed: Parsed, options?: RenderOptions) => string | HTML;
127
159
  export {};
package/build/index.mjs CHANGED
@@ -1,12 +1,13 @@
1
1
  import { nip19 } from "nostr-tools";
2
+ import insane from 'insane';
2
3
  const last = (xs, ...args) => xs[xs.length - 1];
3
4
  const fromNostrURI = (s) => s.replace(/^nostr:\/?\/?/, "");
5
+ export const urlIsMedia = (url) => Boolean(url.match(/\.(jpe?g|png|wav|mp3|mp4|mov|avi|webm|webp|gif|bmp|svg)$/));
4
6
  export var ParsedType;
5
7
  (function (ParsedType) {
6
8
  ParsedType["Address"] = "address";
7
9
  ParsedType["Cashu"] = "cashu";
8
- ParsedType["CodeBlock"] = "code_block";
9
- ParsedType["CodeInline"] = "code_inline";
10
+ ParsedType["Code"] = "code";
10
11
  ParsedType["Ellipsis"] = "ellipsis";
11
12
  ParsedType["Event"] = "event";
12
13
  ParsedType["Invoice"] = "invoice";
@@ -16,129 +17,132 @@ export var ParsedType;
16
17
  ParsedType["Text"] = "text";
17
18
  ParsedType["Topic"] = "topic";
18
19
  })(ParsedType || (ParsedType = {}));
20
+ // Matchers
21
+ export const isAddress = (parsed) => parsed.type === ParsedType.Address;
22
+ export const isCashu = (parsed) => parsed.type === ParsedType.Cashu;
23
+ export const isCode = (parsed) => parsed.type === ParsedType.Code;
24
+ export const isEllipsis = (parsed) => parsed.type === ParsedType.Ellipsis;
25
+ export const isEvent = (parsed) => parsed.type === ParsedType.Event;
26
+ export const isInvoice = (parsed) => parsed.type === ParsedType.Invoice;
27
+ export const isLink = (parsed) => parsed.type === ParsedType.Link;
28
+ export const isNewline = (parsed) => parsed.type === ParsedType.Newline;
29
+ export const isProfile = (parsed) => parsed.type === ParsedType.Profile;
30
+ export const isText = (parsed) => parsed.type === ParsedType.Text;
31
+ export const isTopic = (parsed) => parsed.type === ParsedType.Topic;
19
32
  // Parsers for known formats
20
- export const parseAddress = (raw, context) => {
21
- const [naddr] = raw.match(/^(web\+)?(nostr:)?\/?\/?naddr1[\d\w]+/i) || [];
33
+ export const parseAddress = (text, context) => {
34
+ const [naddr] = text.match(/^(web\+)?(nostr:)?\/?\/?naddr1[\d\w]+/i) || [];
22
35
  if (naddr) {
23
36
  try {
24
37
  const { data } = nip19.decode(fromNostrURI(naddr));
25
- return { type: ParsedType.Address, value: data, raw };
38
+ return { type: ParsedType.Address, value: data, raw: naddr };
26
39
  }
27
40
  catch (e) {
28
41
  // Pass
29
42
  }
30
43
  }
31
44
  };
32
- export const parseCashu = (raw, context) => {
33
- const [value] = raw.match(/^(cashu)[\d\w=]{50,5000}/i) || [];
45
+ export const parseCashu = (text, context) => {
46
+ const [value] = text.match(/^(cashu)[\d\w=]{50,5000}/i) || [];
34
47
  if (value) {
35
- return { type: ParsedType.Cashu, value, raw };
48
+ return { type: ParsedType.Cashu, value, raw: value };
36
49
  }
37
50
  };
38
- export const parseCodeBlock = (raw, context) => {
39
- const [code, value] = raw.match(/^```([^]*?)```/i) || [];
51
+ export const parseCodeBlock = (text, context) => {
52
+ const [code, value] = text.match(/^```([^]*?)```/i) || [];
40
53
  if (code) {
41
- return { type: ParsedType.CodeBlock, value, raw };
54
+ return { type: ParsedType.Code, value, raw: code };
42
55
  }
43
56
  };
44
- export const parseCodeInline = (raw, context) => {
45
- const [code, value] = raw.match(/^`(.*?)`/i) || [];
57
+ export const parseCodeInline = (text, context) => {
58
+ const [code, value] = text.match(/^`(.*?)`/i) || [];
46
59
  if (code) {
47
- return { type: ParsedType.CodeInline, value, raw };
60
+ return { type: ParsedType.Code, value, raw: code };
48
61
  }
49
62
  };
50
- export const parseEvent = (raw, context) => {
51
- const [entity] = raw.match(/^(web\+)?(nostr:)?\/?\/?n(event|ote)1[\d\w]+/i) || [];
63
+ export const parseEvent = (text, context) => {
64
+ const [entity] = text.match(/^(web\+)?(nostr:)?\/?\/?n(event|ote)1[\d\w]+/i) || [];
52
65
  if (entity) {
53
66
  try {
54
67
  const { type, data } = nip19.decode(fromNostrURI(entity));
55
68
  const value = type === "note"
56
69
  ? { id: data, relays: [] }
57
70
  : data;
58
- return { type: ParsedType.Event, value, raw };
71
+ return { type: ParsedType.Event, value, raw: entity };
59
72
  }
60
73
  catch (e) {
61
74
  // Pass
62
75
  }
63
76
  }
64
77
  };
65
- export const parseInvoice = (raw, context) => {
66
- const [value] = raw.match(/^ln(lnbc|lnurl)[\d\w]{50,1000}/i) || [];
78
+ export const parseInvoice = (text, context) => {
79
+ const [value] = text.match(/^ln(lnbc|lnurl)[\d\w]{50,1000}/i) || [];
67
80
  if (value) {
68
- return { type: ParsedType.Invoice, value, raw };
81
+ return { type: ParsedType.Invoice, value, raw: value };
69
82
  }
70
83
  };
71
- export const parseLink = (raw, context) => {
72
- var _a;
73
- const [link] = raw.match(/^([a-z\+:]{2,30}:\/\/)?[^<>\(\)\s]+\.[a-z]{2,6}[^\s]*[^<>"'\.!?,:\s\)\(]/gi) || [];
74
- if (!link) {
75
- return;
76
- }
84
+ export const parseLink = (text, context) => {
77
85
  const prev = last(context.results);
78
- // Skip url if it's just the end of a filepath
79
- if ((prev === null || prev === void 0 ? void 0 : prev.type) === ParsedType.Text && prev.value.endsWith("/")) {
86
+ const [link] = text.match(/^([a-z\+:]{2,30}:\/\/)?[^<>\(\)\s]+\.[a-z]{2,6}[^\s]*[^<>"'\.!?,:\s\)\(]/gi) || [];
87
+ // Skip url if it's just the end of a filepath or an ellipse
88
+ if (!link || (prev === null || prev === void 0 ? void 0 : prev.type) === ParsedType.Text && prev.value.endsWith("/") || link.match(/\.\./)) {
80
89
  return;
81
90
  }
82
- // Strip hash component
83
- let [url, hash] = link.split("#");
84
- // Skip ellipses and very short non-urls
85
- if (url.match(/\.\./)) {
86
- return;
91
+ // Parse using URL, make sure there's a protocol
92
+ let url;
93
+ try {
94
+ url = new URL(link.match(/^\w+:\/\//) ? link : "https://" + link);
87
95
  }
88
- // Make sure there's a protocol
89
- if (!url.match("^\w+://")) {
90
- url = "https://" + url;
96
+ catch (e) {
97
+ return;
91
98
  }
92
- const meta = Object.fromEntries(new URLSearchParams(hash).entries());
99
+ const meta = Object.fromEntries(new URLSearchParams(url.hash.slice(1)).entries());
93
100
  for (const tag of context.tags) {
94
- if (tag[0] === 'imeta' && tag.find(t => t.includes(`url ${raw}`))) {
101
+ if (tag[0] === 'imeta' && tag.find(t => t.includes(`url ${link}`))) {
95
102
  Object.assign(meta, Object.fromEntries(tag.slice(1).map((m) => m.split(" "))));
96
103
  }
97
104
  }
98
- const isMedia = Boolean(url.match(/\.(jpe?g|png|wav|mp3|mp4|mov|avi|webm|webp|gif|bmp|svg)$/) &&
99
- ((_a = last(url.replace(/\/$/, "").split("://"))) === null || _a === void 0 ? void 0 : _a.includes("/")));
100
- const value = { url, hash, meta, isMedia };
101
- return { type: ParsedType.Link, value, raw };
105
+ return { type: ParsedType.Link, value: { url, meta, isMedia: urlIsMedia(url.pathname) }, raw: link };
102
106
  };
103
- export const parseNewline = (raw, context) => {
104
- const [value] = raw.match(/^\n+/) || [];
107
+ export const parseNewline = (text, context) => {
108
+ const [value] = text.match(/^\n+/) || [];
105
109
  if (value) {
106
- return { type: ParsedType.Newline, raw, value };
110
+ return { type: ParsedType.Newline, value, raw: value };
107
111
  }
108
112
  };
109
- export const parseProfile = (raw, context) => {
110
- const [entity] = raw.match(/^(web\+)?(nostr:)?\/?\/?n(profile|pub)1[\d\w]+/i) || [];
113
+ export const parseProfile = (text, context) => {
114
+ const [entity] = text.match(/^(web\+)?(nostr:)?\/?\/?n(profile|pub)1[\d\w]+/i) || [];
111
115
  if (entity) {
112
116
  try {
113
117
  const { type, data } = nip19.decode(fromNostrURI(entity));
114
118
  const value = type === "npub"
115
119
  ? { pubkey: data, relays: [] }
116
120
  : data;
117
- return { type: ParsedType.Profile, value, raw };
121
+ return { type: ParsedType.Profile, value, raw: entity };
118
122
  }
119
123
  catch (e) {
120
124
  // Pass
121
125
  }
122
126
  }
123
127
  };
124
- export const parseTopic = (raw, context) => {
125
- const [value] = raw.match(/^#[^\s!\"#$%&'()*+,-.\/:;<=>?@[\\\]^_`{|}~]+/i) || [];
128
+ export const parseTopic = (text, context) => {
129
+ const [value] = text.match(/^#[^\s!\"#$%&'()*+,-.\/:;<=>?@[\\\]^_`{|}~]+/i) || [];
126
130
  // Skip numeric topics
127
131
  if (value && !value.match(/^#\d+$/)) {
128
- return { type: ParsedType.Topic, raw, value };
132
+ return { type: ParsedType.Topic, value: value.slice(1), raw: value };
129
133
  }
130
134
  };
131
135
  // Parse other formats to known types
132
- export const parseLegacyMention = (raw, context) => {
133
- const mentionMatch = raw.match(/^#\[(\d+)\]/i) || [];
136
+ export const parseLegacyMention = (text, context) => {
137
+ const mentionMatch = text.match(/^#\[(\d+)\]/i) || [];
134
138
  if (mentionMatch) {
135
139
  const [tag, value, url] = context.tags[parseInt(mentionMatch[1])] || [];
136
140
  const relays = url ? [url] : [];
137
141
  if (tag === "p") {
138
- return { type: ParsedType.Profile, value: { pubkey: value, relays }, raw };
142
+ return { type: ParsedType.Profile, value: { pubkey: value, relays }, raw: mentionMatch[0] };
139
143
  }
140
144
  if (tag === "e") {
141
- return { type: ParsedType.Event, value: { id: value, relays }, raw };
145
+ return { type: ParsedType.Event, value: { id: value, relays }, raw: mentionMatch[0] };
142
146
  }
143
147
  }
144
148
  };
@@ -192,7 +196,7 @@ export const parse = ({ content = "", tags = [] }) => {
192
196
  }
193
197
  return context.results;
194
198
  };
195
- export const truncate = (content, { minLength = 400, maxLength = 600, mediaLength = 200, entityLength = 30, }) => {
199
+ export const truncate = (content, { minLength = 400, maxLength = 600, mediaLength = 200, entityLength = 30, } = {}) => {
196
200
  // Get a list of content sizes so we know where to truncate
197
201
  // Non-plaintext things might take up more or less room if rendered
198
202
  const sizes = content.map((parsed) => {
@@ -227,4 +231,49 @@ export const truncate = (content, { minLength = 400, maxLength = 600, mediaLengt
227
231
  });
228
232
  return content;
229
233
  };
234
+ export const defaultRenderOptions = {
235
+ entityBaseUrl: 'https://njump.me/'
236
+ };
237
+ export class HTML {
238
+ constructor(value) {
239
+ this.value = value;
240
+ this.toString = () => this.value;
241
+ this.value = value;
242
+ }
243
+ }
244
+ HTML.useSafely = (value) => new HTML(insane(value));
245
+ HTML.useDangerously = (value) => new HTML(value);
246
+ HTML.buildLink = (href, display) => HTML.useSafely(`<a href=${href} target="_blank">${display}</a>`);
247
+ HTML.buildEntityLink = (entity, options) => HTML.buildLink(options.entityBaseUrl + entity, entity.slice(0, 16) + '…');
248
+ export const renderCashu = (parsed, options) => HTML.useSafely(parsed.value);
249
+ export const renderCode = (parsed, options) => HTML.useSafely(parsed.value);
250
+ export const renderEllipsis = (parsed, options) => "…";
251
+ export const renderInvoice = (parsed, options) => HTML.useSafely(parsed.value);
252
+ export const renderLink = (parsed, options) => {
253
+ const href = parsed.value.url.toString();
254
+ const display = parsed.value.url.host + parsed.value.url.pathname;
255
+ return HTML.buildLink(href, display);
256
+ };
257
+ export const renderNewline = (parsed, options) => HTML.useSafely(Array.from(parsed.value).map(() => '<br />').join(''));
258
+ export const renderText = (parsed, options) => HTML.useSafely(parsed.value);
259
+ export const renderTopic = (parsed, options) => HTML.useSafely(parsed.value);
260
+ export const renderEvent = (parsed, options) => HTML.buildEntityLink(nip19.neventEncode(parsed.value), options);
261
+ export const renderProfile = (parsed, options) => HTML.buildEntityLink(nip19.nprofileEncode(parsed.value), options);
262
+ export const renderAddress = (parsed, options) => HTML.buildEntityLink(nip19.naddrEncode(parsed.value), options);
263
+ export const render = (parsed, options = {}) => {
264
+ options = { ...defaultRenderOptions, ...options };
265
+ switch (parsed.type) {
266
+ case ParsedType.Address: return renderAddress(parsed, options);
267
+ case ParsedType.Cashu: return renderCashu(parsed, options);
268
+ case ParsedType.Code: return renderCode(parsed, options);
269
+ case ParsedType.Ellipsis: return renderEllipsis(parsed, options);
270
+ case ParsedType.Event: return renderEvent(parsed, options);
271
+ case ParsedType.Invoice: return renderInvoice(parsed, options);
272
+ case ParsedType.Link: return renderLink(parsed, options);
273
+ case ParsedType.Newline: return renderNewline(parsed, options);
274
+ case ParsedType.Profile: return renderProfile(parsed, options);
275
+ case ParsedType.Text: return renderText(parsed, options);
276
+ case ParsedType.Topic: return renderTopic(parsed, options);
277
+ }
278
+ };
230
279
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@welshman/content",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "author": "hodlbod",
5
5
  "license": "MIT",
6
6
  "description": "A collection of utilities for parsing nostr note content.",
@@ -26,11 +26,13 @@
26
26
  "fix": "gts fix"
27
27
  },
28
28
  "devDependencies": {
29
+ "@types/insane": "^1.0.0",
29
30
  "gts": "^5.0.1",
30
31
  "tsc-multi": "^1.1.0",
31
32
  "typescript": "~5.1.6"
32
33
  },
33
34
  "dependencies": {
35
+ "insane": "^2.6.2",
34
36
  "nostr-tools": "^2.7.0"
35
37
  }
36
38
  }