Skip to content

Commit 9ceb623

Browse files
feat(endpoint-webmention-io): webmention.io endpoint
1 parent 9bb8388 commit 9ceb623

File tree

27 files changed

+1350
-5457
lines changed

27 files changed

+1350
-5457
lines changed

helpers/config/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,5 +63,8 @@ export const testConfig = async (options) => {
6363
user: "username",
6464
accessToken: "abcd1234",
6565
},
66+
"@indiekit/endpoint-webmention-io": {
67+
token: "abcd1234",
68+
},
6669
};
6770
};
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import { MockAgent } from "undici";
2+
3+
/**
4+
* @returns {import("undici").MockAgent} Undici MockAgent
5+
* @see {@link https://undici.nodejs.org/#/docs/api/MockAgent}
6+
*/
7+
export function mockClient() {
8+
const agent = new MockAgent();
9+
agent.disableNetConnect();
10+
agent.enableNetConnect(/(?:127\.0\.0\.1:\d{5})/);
11+
12+
const origin = "https://webmention.io";
13+
14+
agent
15+
.get(origin)
16+
.intercept({
17+
path: "/api/mentions.jf2",
18+
query: {
19+
token: "abcd1234",
20+
domain: "website.example",
21+
"per-page": 20,
22+
},
23+
})
24+
.reply(200, {
25+
type: "feed",
26+
name: "Webmentions",
27+
children: [
28+
{
29+
type: "entry",
30+
author: {
31+
type: "card",
32+
name: "Example",
33+
url: "https://person.example",
34+
},
35+
url: "https://person.example/likes/1/",
36+
published: "2024-12-25T19:00:00+00:00",
37+
"wm-received": "2024-12-25T19:00:00+00:00",
38+
"wm-id": 1,
39+
"wm-source": "https://person.example/likes/1/",
40+
"wm-target": "https://getindiekit.com",
41+
"wm-protocol": "webmention",
42+
content: {
43+
"content-type": "text/html",
44+
value: "<p>This looks interesting.</p>",
45+
html: "<p>This looks interesting.</p>",
46+
text: "This looks interesting.",
47+
},
48+
"like-of": "https://getindiekit.com",
49+
"wm-property": "like-of",
50+
"wm-private": false,
51+
},
52+
],
53+
})
54+
.persist();
55+
56+
return agent;
57+
}

indiekit.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const config = {
1717
plugins: [
1818
"@indiekit-test/frontend",
1919
"@indiekit/endpoint-json-feed",
20+
"@indiekit/endpoint-webmention-io",
2021
"@indiekit/post-type-audio",
2122
"@indiekit/post-type-event",
2223
"@indiekit/post-type-jam",

localazy.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@
2626
"pattern": "packages/endpoint-share/locales/en.json",
2727
"module": "endpoint-share"
2828
},
29+
{
30+
"file": "en.json",
31+
"path": "packages/endpoint-webmention-io/locales",
32+
"pattern": "packages/endpoint-webmention-io/locales/en.json",
33+
"module": "endpoint-webmention-io"
34+
},
2935
{
3036
"file": "en.json",
3137
"path": "packages/error/locales",

0 commit comments

Comments
 (0)