applesauce-content 0.0.0-next-20241108100553 → 0.0.0-next-20241112141526
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/helpers/regexp.d.ts +1 -0
- package/dist/helpers/regexp.js +3 -0
- package/dist/nast/eol-metadata.js +6 -4
- package/dist/text/content.js +12 -1
- package/dist/text/emoji.d.ts +1 -1
- package/dist/text/index.d.ts +1 -0
- package/dist/text/index.js +1 -0
- package/dist/text/link.d.ts +3 -0
- package/dist/text/link.js +22 -0
- package/dist/text/links.d.ts +3 -0
- package/dist/text/links.js +22 -0
- package/dist/text/parser.js +6 -8
- package/package.json +2 -3
package/dist/helpers/regexp.d.ts
CHANGED
package/dist/helpers/regexp.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export function eolMetadata() {
|
|
2
2
|
return (tree) => {
|
|
3
3
|
for (let i = 0; i < tree.children.length; i++) {
|
|
4
|
-
|
|
4
|
+
const node = tree.children[i];
|
|
5
5
|
const next = tree.children[i + 1];
|
|
6
|
-
if (
|
|
7
|
-
next
|
|
8
|
-
next.
|
|
6
|
+
if ((node.type === "text" && node.value.endsWith("\n")) ||
|
|
7
|
+
!next ||
|
|
8
|
+
(next.type === "text" && next.value.startsWith("\n"))) {
|
|
9
|
+
node.data = node.data || {};
|
|
10
|
+
node.data.eol = true;
|
|
9
11
|
}
|
|
10
12
|
}
|
|
11
13
|
};
|
package/dist/text/content.js
CHANGED
|
@@ -7,9 +7,20 @@ import { createTextNoteATS } from "./parser.js";
|
|
|
7
7
|
import { hashtags } from "./hashtag.js";
|
|
8
8
|
import { galleries } from "./gallery.js";
|
|
9
9
|
import { lightningInvoices } from "./lightning.js";
|
|
10
|
+
import { eolMetadata } from "../nast/eol-metadata.js";
|
|
11
|
+
import { links } from "./links.js";
|
|
10
12
|
export const ParsedTextContentSymbol = Symbol.for("parsed-text-content");
|
|
11
13
|
// default kind 1 transformers
|
|
12
|
-
export const defaultTransformers = [
|
|
14
|
+
export const defaultTransformers = [
|
|
15
|
+
links,
|
|
16
|
+
nostrMentions,
|
|
17
|
+
galleries,
|
|
18
|
+
emojis,
|
|
19
|
+
hashtags,
|
|
20
|
+
lightningInvoices,
|
|
21
|
+
cashuTokens,
|
|
22
|
+
eolMetadata,
|
|
23
|
+
];
|
|
13
24
|
/** Parsed and process a note with custom transformers */
|
|
14
25
|
export function getParsedTextContent(event, content, transformers = defaultTransformers) {
|
|
15
26
|
// process strings
|
package/dist/text/emoji.d.ts
CHANGED
package/dist/text/index.d.ts
CHANGED
package/dist/text/index.js
CHANGED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import Expressions from "../helpers/regexp.js";
|
|
2
|
+
import { findAndReplace } from "../nast/find-and-replace.js";
|
|
3
|
+
export function links() {
|
|
4
|
+
return (tree) => {
|
|
5
|
+
findAndReplace(tree, [
|
|
6
|
+
[
|
|
7
|
+
Expressions.link,
|
|
8
|
+
(_) => {
|
|
9
|
+
try {
|
|
10
|
+
return {
|
|
11
|
+
type: "link",
|
|
12
|
+
href: new URL(_).toString(),
|
|
13
|
+
value: _,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
catch (error) { }
|
|
17
|
+
return false;
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
]);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import Expressions from "../helpers/regexp.js";
|
|
2
|
+
import { findAndReplace } from "../nast/find-and-replace.js";
|
|
3
|
+
export function links() {
|
|
4
|
+
return (tree) => {
|
|
5
|
+
findAndReplace(tree, [
|
|
6
|
+
[
|
|
7
|
+
Expressions.link,
|
|
8
|
+
(_) => {
|
|
9
|
+
try {
|
|
10
|
+
return {
|
|
11
|
+
type: "link",
|
|
12
|
+
href: new URL(_).toString(),
|
|
13
|
+
value: _,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
catch (error) { }
|
|
17
|
+
return false;
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
]);
|
|
21
|
+
};
|
|
22
|
+
}
|
package/dist/text/parser.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import { tokenize } from "linkifyjs";
|
|
2
1
|
/** Creates a {@link Root} ATS node for a text note */
|
|
3
2
|
export function createTextNoteATS(event, content) {
|
|
4
|
-
const tokens = tokenize(content || (typeof event === "string" ? event : event.content));
|
|
5
3
|
return {
|
|
6
4
|
type: "root",
|
|
7
5
|
event: typeof event !== "string" ? event : undefined,
|
|
8
|
-
children:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
children: [
|
|
7
|
+
{
|
|
8
|
+
type: "text",
|
|
9
|
+
value: content || (typeof event === "string" ? event : event.content),
|
|
10
|
+
},
|
|
11
|
+
],
|
|
14
12
|
};
|
|
15
13
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "applesauce-content",
|
|
3
|
-
"version": "0.0.0-next-
|
|
3
|
+
"version": "0.0.0-next-20241112141526",
|
|
4
4
|
"description": "Unified plugins for processing event content",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -40,8 +40,7 @@
|
|
|
40
40
|
"@types/hast": "^3.0.4",
|
|
41
41
|
"@types/mdast": "^4.0.4",
|
|
42
42
|
"@types/unist": "^3.0.3",
|
|
43
|
-
"applesauce-core": "0.0.0-next-
|
|
44
|
-
"linkifyjs": "^4.1.3",
|
|
43
|
+
"applesauce-core": "0.0.0-next-20241112141526",
|
|
45
44
|
"mdast-util-find-and-replace": "^3.0.1",
|
|
46
45
|
"nostr-tools": "^2.10.1",
|
|
47
46
|
"remark": "^15.0.1",
|