@geekity/cms 0.27.0 → 0.29.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 +469 -84
- package/admin/layouts/shell.njk +6 -0
- package/admin/pages/comments/all.njk +3 -1
- package/admin/pages/documents/editor.njk +4 -0
- package/admin/pages/federation/followers.njk +8 -2
- package/admin/pages/plugins/installed.njk +1 -1
- package/admin/pages/tools/dev-mode.njk +47 -0
- package/admin/static/admin.css +8 -0
- package/admin/static/editor-actions.js +13 -9
- package/admin/static/editor.js +31 -17
- package/dist/admin/comments.d.ts +2 -0
- package/dist/admin/comments.d.ts.map +1 -1
- package/dist/admin/comments.js +19 -49
- package/dist/admin/comments.js.map +1 -1
- package/dist/admin/dev-mode.d.ts +9 -0
- package/dist/admin/dev-mode.d.ts.map +1 -0
- package/dist/admin/dev-mode.js +42 -0
- package/dist/admin/dev-mode.js.map +1 -0
- package/dist/admin/documents.d.ts +5 -0
- package/dist/admin/documents.d.ts.map +1 -1
- package/dist/admin/documents.js +45 -17
- package/dist/admin/documents.js.map +1 -1
- package/dist/admin/editor-actions.js +3 -1
- package/dist/admin/editor-actions.js.map +1 -1
- package/dist/admin/federation.d.ts +21 -1
- package/dist/admin/federation.d.ts.map +1 -1
- package/dist/admin/federation.js +19 -7
- package/dist/admin/federation.js.map +1 -1
- package/dist/admin/menu.d.ts.map +1 -1
- package/dist/admin/menu.js +2 -0
- package/dist/admin/menu.js.map +1 -1
- package/dist/admin/own-paragraph.d.ts +7 -0
- package/dist/admin/own-paragraph.d.ts.map +1 -0
- package/dist/admin/own-paragraph.js +9 -0
- package/dist/admin/own-paragraph.js.map +1 -0
- package/dist/admin/plugins.d.ts.map +1 -1
- package/dist/admin/plugins.js +19 -8
- package/dist/admin/plugins.js.map +1 -1
- package/dist/admin/preview.d.ts.map +1 -1
- package/dist/admin/preview.js +4 -1
- package/dist/admin/preview.js.map +1 -1
- package/dist/admin/routes.d.ts.map +1 -1
- package/dist/admin/routes.js +4 -0
- package/dist/admin/routes.js.map +1 -1
- package/dist/admin/settings-email.d.ts.map +1 -1
- package/dist/admin/settings-email.js +4 -0
- package/dist/admin/settings-email.js.map +1 -1
- package/dist/admin/store.d.ts +68 -12
- package/dist/admin/store.d.ts.map +1 -1
- package/dist/admin/store.js +167 -18
- package/dist/admin/store.js.map +1 -1
- package/dist/admin/templates.d.ts +1 -0
- package/dist/admin/templates.d.ts.map +1 -1
- package/dist/admin/templates.js +1 -0
- package/dist/admin/templates.js.map +1 -1
- package/dist/admin/uploads.d.ts +7 -1
- package/dist/admin/uploads.d.ts.map +1 -1
- package/dist/admin/uploads.js +33 -30
- package/dist/admin/uploads.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +78 -12
- package/dist/cli.js.map +1 -1
- package/dist/comments/form.d.ts +3 -1
- package/dist/comments/form.d.ts.map +1 -1
- package/dist/comments/form.js +2 -1
- package/dist/comments/form.js.map +1 -1
- package/dist/comments/index.d.ts +2 -2
- package/dist/comments/index.d.ts.map +1 -1
- package/dist/comments/index.js +1 -1
- package/dist/comments/index.js.map +1 -1
- package/dist/comments/records.d.ts +25 -20
- package/dist/comments/records.d.ts.map +1 -1
- package/dist/comments/records.js +113 -33
- package/dist/comments/records.js.map +1 -1
- package/dist/comments/reply-notices.d.ts +42 -0
- package/dist/comments/reply-notices.d.ts.map +1 -0
- package/dist/comments/reply-notices.js +76 -0
- package/dist/comments/reply-notices.js.map +1 -0
- package/dist/comments/reply-post.d.ts +49 -0
- package/dist/comments/reply-post.d.ts.map +1 -0
- package/dist/comments/reply-post.js +66 -0
- package/dist/comments/reply-post.js.map +1 -0
- package/dist/comments/routes.d.ts +6 -1
- package/dist/comments/routes.d.ts.map +1 -1
- package/dist/comments/routes.js +49 -21
- package/dist/comments/routes.js.map +1 -1
- package/dist/comments/submission.d.ts +8 -25
- package/dist/comments/submission.d.ts.map +1 -1
- package/dist/comments/submission.js +19 -38
- package/dist/comments/submission.js.map +1 -1
- package/dist/comments/viewer.d.ts.map +1 -1
- package/dist/comments/viewer.js +1 -0
- package/dist/comments/viewer.js.map +1 -1
- package/dist/config.d.ts +21 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/content/citation.d.ts +1 -0
- package/dist/content/citation.d.ts.map +1 -1
- package/dist/content/citation.js +2 -0
- package/dist/content/citation.js.map +1 -1
- package/dist/content/markdown.d.ts.map +1 -1
- package/dist/content/markdown.js +33 -1
- package/dist/content/markdown.js.map +1 -1
- package/dist/content/migrated.d.ts +6 -0
- package/dist/content/migrated.d.ts.map +1 -0
- package/dist/content/migrated.js +12 -0
- package/dist/content/migrated.js.map +1 -0
- package/dist/content/original.d.ts +8 -0
- package/dist/content/original.d.ts.map +1 -0
- package/dist/content/original.js +15 -0
- package/dist/content/original.js.map +1 -0
- package/dist/content/parser.d.ts +5 -0
- package/dist/content/parser.d.ts.map +1 -1
- package/dist/content/parser.js +1 -1
- package/dist/content/parser.js.map +1 -1
- package/dist/content/schedule.d.ts +7 -0
- package/dist/content/schedule.d.ts.map +1 -1
- package/dist/content/schedule.js +11 -2
- package/dist/content/schedule.js.map +1 -1
- package/dist/content/store.d.ts +43 -11
- package/dist/content/store.d.ts.map +1 -1
- package/dist/content/store.js +170 -10
- package/dist/content/store.js.map +1 -1
- package/dist/content/sync.d.ts +8 -0
- package/dist/content/sync.d.ts.map +1 -1
- package/dist/content/sync.js +172 -57
- package/dist/content/sync.js.map +1 -1
- package/dist/content/video.d.ts +12 -0
- package/dist/content/video.d.ts.map +1 -0
- package/dist/content/video.js +91 -0
- package/dist/content/video.js.map +1 -0
- package/dist/dev-mode.d.ts +28 -0
- package/dist/dev-mode.d.ts.map +1 -0
- package/dist/dev-mode.js +64 -0
- package/dist/dev-mode.js.map +1 -0
- package/dist/drain.d.ts +9 -3
- package/dist/drain.d.ts.map +1 -1
- package/dist/drain.js +24 -3
- package/dist/drain.js.map +1 -1
- package/dist/federation/article.d.ts.map +1 -1
- package/dist/federation/article.js +2 -1
- package/dist/federation/article.js.map +1 -1
- package/dist/federation/backfill.d.ts +114 -0
- package/dist/federation/backfill.d.ts.map +1 -0
- package/dist/federation/backfill.js +312 -0
- package/dist/federation/backfill.js.map +1 -0
- package/dist/federation/delivery.d.ts +2 -0
- package/dist/federation/delivery.d.ts.map +1 -1
- package/dist/federation/delivery.js +46 -16
- package/dist/federation/delivery.js.map +1 -1
- package/dist/federation/inbox.d.ts.map +1 -1
- package/dist/federation/inbox.js +14 -4
- package/dist/federation/inbox.js.map +1 -1
- package/dist/federation/mount.d.ts.map +1 -1
- package/dist/federation/mount.js +8 -4
- package/dist/federation/mount.js.map +1 -1
- package/dist/federation/records.d.ts +13 -0
- package/dist/federation/records.d.ts.map +1 -1
- package/dist/federation/records.js +49 -10
- package/dist/federation/records.js.map +1 -1
- package/dist/federation/relays.d.ts.map +1 -1
- package/dist/federation/relays.js +16 -1
- package/dist/federation/relays.js.map +1 -1
- package/dist/federation/replies.d.ts +6 -0
- package/dist/federation/replies.d.ts.map +1 -1
- package/dist/federation/replies.js +18 -1
- package/dist/federation/replies.js.map +1 -1
- package/dist/index.d.ts +13 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +95 -14
- package/dist/index.js.map +1 -1
- package/dist/indexnow.d.ts +1 -1
- package/dist/indexnow.d.ts.map +1 -1
- package/dist/indexnow.js +7 -0
- package/dist/indexnow.js.map +1 -1
- package/dist/init.d.ts +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +1 -7
- package/dist/init.js.map +1 -1
- package/dist/mail/service.d.ts +3 -1
- package/dist/mail/service.d.ts.map +1 -1
- package/dist/mail/service.js +17 -0
- package/dist/mail/service.js.map +1 -1
- package/dist/notify.d.ts +1 -1
- package/dist/notify.d.ts.map +1 -1
- package/dist/notify.js +7 -0
- package/dist/notify.js.map +1 -1
- package/dist/plugin.d.ts +67 -4
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/plugins/folder.d.ts +2 -0
- package/dist/plugins/folder.d.ts.map +1 -1
- package/dist/plugins/folder.js +26 -5
- package/dist/plugins/folder.js.map +1 -1
- package/dist/plugins/manage.d.ts +8 -6
- package/dist/plugins/manage.d.ts.map +1 -1
- package/dist/plugins/manage.js +1 -4
- package/dist/plugins/manage.js.map +1 -1
- package/dist/plugins/site.d.ts.map +1 -1
- package/dist/plugins/site.js +56 -0
- package/dist/plugins/site.js.map +1 -1
- package/dist/supervisor/control.d.ts +15 -0
- package/dist/supervisor/control.d.ts.map +1 -0
- package/dist/supervisor/control.js +89 -0
- package/dist/supervisor/control.js.map +1 -0
- package/dist/supervisor/primary.d.ts +18 -4
- package/dist/supervisor/primary.d.ts.map +1 -1
- package/dist/supervisor/primary.js +128 -16
- package/dist/supervisor/primary.js.map +1 -1
- package/dist/supervisor/protocol.d.ts +12 -0
- package/dist/supervisor/protocol.d.ts.map +1 -1
- package/dist/supervisor/protocol.js +21 -2
- package/dist/supervisor/protocol.js.map +1 -1
- package/dist/supervisor/supervision.d.ts +1 -0
- package/dist/supervisor/supervision.d.ts.map +1 -1
- package/dist/supervisor/supervision.js +14 -1
- package/dist/supervisor/supervision.js.map +1 -1
- package/dist/supervisor/worker.d.ts.map +1 -1
- package/dist/supervisor/worker.js +31 -6
- package/dist/supervisor/worker.js.map +1 -1
- package/dist/web/context.d.ts +22 -0
- package/dist/web/context.d.ts.map +1 -1
- package/dist/web/context.js +20 -4
- package/dist/web/context.js.map +1 -1
- package/dist/web/conversation.d.ts +155 -16
- package/dist/web/conversation.d.ts.map +1 -1
- package/dist/web/conversation.js +602 -135
- package/dist/web/conversation.js.map +1 -1
- package/dist/web/documents.d.ts +0 -22
- package/dist/web/documents.d.ts.map +1 -1
- package/dist/web/documents.js +1 -34
- package/dist/web/documents.js.map +1 -1
- package/dist/web/feed-item.d.ts +19 -14
- package/dist/web/feed-item.d.ts.map +1 -1
- package/dist/web/feed-item.js +10 -9
- package/dist/web/feed-item.js.map +1 -1
- package/dist/web/feed-rss.d.ts +2 -2
- package/dist/web/feed-rss.d.ts.map +1 -1
- package/dist/web/feed-rss.js +36 -12
- package/dist/web/feed-rss.js.map +1 -1
- package/dist/web/feed-source.d.ts +30 -1
- package/dist/web/feed-source.d.ts.map +1 -1
- package/dist/web/feed-source.js +25 -0
- package/dist/web/feed-source.js.map +1 -1
- package/dist/web/feeds.d.ts +1 -1
- package/dist/web/feeds.d.ts.map +1 -1
- package/dist/web/feeds.js +7 -2
- package/dist/web/feeds.js.map +1 -1
- package/dist/web/guids.d.ts +59 -0
- package/dist/web/guids.d.ts.map +1 -0
- package/dist/web/guids.js +79 -0
- package/dist/web/guids.js.map +1 -0
- package/dist/web/index.d.ts +5 -6
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js +3 -3
- package/dist/web/index.js.map +1 -1
- package/dist/web/redirects.d.ts +29 -10
- package/dist/web/redirects.d.ts.map +1 -1
- package/dist/web/redirects.js +99 -53
- package/dist/web/redirects.js.map +1 -1
- package/dist/web/render.d.ts +19 -9
- package/dist/web/render.d.ts.map +1 -1
- package/dist/web/render.js +44 -42
- package/dist/web/render.js.map +1 -1
- package/dist/web/routes.d.ts +2 -2
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +94 -31
- package/dist/web/routes.js.map +1 -1
- package/dist/webmention/index.d.ts +1 -1
- package/dist/webmention/index.d.ts.map +1 -1
- package/dist/webmention/index.js +1 -1
- package/dist/webmention/index.js.map +1 -1
- package/dist/webmention/links.d.ts +55 -0
- package/dist/webmention/links.d.ts.map +1 -1
- package/dist/webmention/links.js +162 -0
- package/dist/webmention/links.js.map +1 -1
- package/dist/webmention/microformats.d.ts +15 -0
- package/dist/webmention/microformats.d.ts.map +1 -1
- package/dist/webmention/microformats.js +63 -1
- package/dist/webmention/microformats.js.map +1 -1
- package/dist/webmention/pingback.js +2 -1
- package/dist/webmention/pingback.js.map +1 -1
- package/dist/webmention/receive.d.ts +5 -0
- package/dist/webmention/receive.d.ts.map +1 -1
- package/dist/webmention/receive.js +99 -3
- package/dist/webmention/receive.js.map +1 -1
- package/dist/webmention/reply-context.d.ts +15 -0
- package/dist/webmention/reply-context.d.ts.map +1 -1
- package/dist/webmention/reply-context.js +29 -0
- package/dist/webmention/reply-context.js.map +1 -1
- package/dist/webmention/reply-contexts.d.ts +6 -0
- package/dist/webmention/reply-contexts.d.ts.map +1 -1
- package/dist/webmention/reply-contexts.js +16 -10
- package/dist/webmention/reply-contexts.js.map +1 -1
- package/dist/webmention/routes.d.ts.map +1 -1
- package/dist/webmention/routes.js +2 -1
- package/dist/webmention/routes.js.map +1 -1
- package/dist/webmention/service.d.ts +31 -2
- package/dist/webmention/service.d.ts.map +1 -1
- package/dist/webmention/service.js +183 -33
- package/dist/webmention/service.js.map +1 -1
- package/package.json +1 -2
- package/themes/default/README.md +390 -75
- package/themes/default/layouts/base.njk +19 -2
- package/themes/default/layouts/comment.njk +90 -0
- package/themes/default/layouts/front-page.njk +9 -47
- package/themes/default/layouts/page.njk +2 -0
- package/themes/default/layouts/post.njk +22 -4
- package/themes/default/partials/backlinks.njk +19 -0
- package/themes/default/partials/body-end.njk +1 -0
- package/themes/default/partials/cited-page.njk +3 -1
- package/themes/default/partials/comment-form.njk +10 -0
- package/themes/default/partials/comment.njk +79 -0
- package/themes/default/partials/conversation.njk +14 -59
- package/themes/default/partials/head-end.njk +1 -0
- package/themes/default/src/style.css +46 -0
- package/themes/default/static/style.css +75 -0
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { AdminStore, SentWebmention } from '../admin/store.ts';
|
|
1
|
+
import type { AdminStore, ConversationWrite, SentWebmention } from '../admin/store.ts';
|
|
2
2
|
import type { CommentNotices } from '../comments/records.ts';
|
|
3
3
|
import type { ResolvedConfig } from '../config.ts';
|
|
4
4
|
import type { ContentStore } from '../content/store.ts';
|
|
5
5
|
import type { DocumentChange } from '../content/sync.ts';
|
|
6
6
|
import type { IncomingWebmention, WebmentionOutcome } from './receive.ts';
|
|
7
|
+
import type { ConversationReader } from '../web/conversation.ts';
|
|
7
8
|
/**
|
|
8
9
|
* Telling the pages a post links to that it links to them.
|
|
9
10
|
*
|
|
@@ -24,6 +25,15 @@ import type { IncomingWebmention, WebmentionOutcome } from './receive.ts';
|
|
|
24
25
|
*/
|
|
25
26
|
/** How long one webmention POST is given before it is abandoned. */
|
|
26
27
|
export declare const SEND_TIMEOUT_MS = 10000;
|
|
28
|
+
/**
|
|
29
|
+
* How many salmentions one page sends one target in {@link SALMENTION_WINDOW_MS}
|
|
30
|
+
* (TASK-320). Two sites that both send them, each answering the other, stop
|
|
31
|
+
* on their own once neither has anything new; this is for one that never
|
|
32
|
+
* settles, such as a page that prints something different every time it is
|
|
33
|
+
* read.
|
|
34
|
+
*/
|
|
35
|
+
export declare const SALMENTION_LIMIT = 5;
|
|
36
|
+
export declare const SALMENTION_WINDOW_MS: number;
|
|
27
37
|
/** What one post's links came to. */
|
|
28
38
|
export interface WebmentionReport {
|
|
29
39
|
/** The post they were in. */
|
|
@@ -47,7 +57,7 @@ export interface CreateWebmentionServiceOptions {
|
|
|
47
57
|
* Config after defaults: the base URL, the content and data directories, the
|
|
48
58
|
* clock, and the checker an incoming webmention is put through.
|
|
49
59
|
*/
|
|
50
|
-
config: Pick<ResolvedConfig, 'baseUrl' | 'contentDir' | 'dataDir' | 'now' | 'commentChecker'>;
|
|
60
|
+
config: Pick<ResolvedConfig, 'baseUrl' | 'contentDir' | 'dataDir' | 'devMode' | 'now' | 'commentChecker'>;
|
|
51
61
|
/** Where failures are reported. Defaults to `console`. */
|
|
52
62
|
logger?: WebmentionLogger | undefined;
|
|
53
63
|
/**
|
|
@@ -63,6 +73,11 @@ export interface CreateWebmentionServiceOptions {
|
|
|
63
73
|
* (TASK-197). A reply to the copy tells the original too.
|
|
64
74
|
*/
|
|
65
75
|
originalOf?: ((url: string) => string | undefined) | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* What says which reply on a post an incoming webmention answers (TASK-319),
|
|
78
|
+
* and which pages a salmention goes from (TASK-320).
|
|
79
|
+
*/
|
|
80
|
+
conversation: Pick<ConversationReader, 'replyNamed' | 'upstreams' | 'documentOf'>;
|
|
66
81
|
}
|
|
67
82
|
/** Sends a site's webmentions, takes the ones sent to it, and remembers both. */
|
|
68
83
|
export interface WebmentionService {
|
|
@@ -72,6 +87,12 @@ export interface WebmentionService {
|
|
|
72
87
|
* is not something a stranger's server should be able to hold up.
|
|
73
88
|
*/
|
|
74
89
|
handle(change: DocumentChange): void;
|
|
90
|
+
/**
|
|
91
|
+
* Consider one comment or activity written to the index (TASK-320), and send
|
|
92
|
+
* a salmention from each page whose replies it changed. Returns at once, as
|
|
93
|
+
* {@link handle} does.
|
|
94
|
+
*/
|
|
95
|
+
heard(written: ConversationWrite): void;
|
|
75
96
|
/**
|
|
76
97
|
* Send one post's webmentions again, from the file as it now reads.
|
|
77
98
|
*
|
|
@@ -102,4 +123,12 @@ export interface WebmentionService {
|
|
|
102
123
|
}
|
|
103
124
|
/** Build the webmention service for one site. */
|
|
104
125
|
export declare function createWebmentionService(options: CreateWebmentionServiceOptions): WebmentionService;
|
|
126
|
+
/**
|
|
127
|
+
* File the outcomes of a post whose slug changed under the post it is now
|
|
128
|
+
* (TASK-332). Rows are keyed by slug, so a moved post would otherwise show
|
|
129
|
+
* nothing sent and leave its rows to whatever post takes the old slug. A row
|
|
130
|
+
* whose slug names no document belongs to the document its source names, by
|
|
131
|
+
* the redirect rule comment files follow.
|
|
132
|
+
*/
|
|
133
|
+
export declare function followMovedWebmentions(admin: AdminStore, store: ContentStore, baseUrl: string): void;
|
|
105
134
|
//# sourceMappingURL=service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/webmention/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/webmention/service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,wBAAwB,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAOnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AASzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,KAAK,EAAE,kBAAkB,EAAyB,MAAM,wBAAwB,CAAC;AAExF;;;;;;;;;;;;;;;;;GAiBG;AAEH,oEAAoE;AACpE,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,oBAAoB,QAAiB,CAAC;AAEnD,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,SAAS,cAAc,EAAE,CAAC;CAC1C;AAED,uEAAuE;AACvE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,kDAAkD;AAClD,MAAM,WAAW,8BAA8B;IAC7C,0EAA0E;IAC1E,KAAK,EAAE,UAAU,CAAC;IAClB,+DAA+D;IAC/D,KAAK,EAAE,YAAY,CAAC;IACpB;;;OAGG;IACH,MAAM,EAAE,IAAI,CACV,cAAc,EACd,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,gBAAgB,CAC5E,CAAC;IACF,0DAA0D;IAC1D,MAAM,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACtC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAC/D;;;OAGG;IACH,YAAY,EAAE,IAAI,CAAC,kBAAkB,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC,CAAC;CACnF;AAED,iFAAiF;AACjF,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IACrC;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC;;;;;;;OAOG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAC1D;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClE;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACpD,kFAAkF;IAClF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,iDAAiD;AACjD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,8BAA8B,GACtC,iBAAiB,CAmVnB;AA6GD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,GACd,IAAI,CAON"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
1
2
|
import { readSiteSettings } from '../admin/settings.js';
|
|
3
|
+
import { permalinkOwner } from '../comments/records.js';
|
|
4
|
+
import { holdOutbound } from '../dev-mode.js';
|
|
2
5
|
import { citationsOf } from '../content/citation.js';
|
|
6
|
+
import { isMigrated, isMigratedArrival } from '../content/migrated.js';
|
|
3
7
|
import { readOf } from '../content/read.js';
|
|
4
8
|
import { replyTarget } from '../content/post-type.js';
|
|
5
9
|
import { isFederatedDocument } from '../federation/article.js';
|
|
10
|
+
import { permalinkOfObjectId } from '../web/documents.js';
|
|
6
11
|
import { absoluteUrl } from '../web/negotiate.js';
|
|
7
12
|
import { discoverEndpoint, WEBMENTION_USER_AGENT } from './discovery.js';
|
|
8
13
|
import { externalLinks, externalTarget } from './links.js';
|
|
9
14
|
import { verifyWebmention } from './receive.js';
|
|
10
15
|
import { selectedTargets, syndicationCopies, syndicationTargetsReader } from './syndication.js';
|
|
16
|
+
import { isWithheld } from '../web/conversation.js';
|
|
11
17
|
/**
|
|
12
18
|
* Telling the pages a post links to that it links to them.
|
|
13
19
|
*
|
|
@@ -28,6 +34,15 @@ import { selectedTargets, syndicationCopies, syndicationTargetsReader } from './
|
|
|
28
34
|
*/
|
|
29
35
|
/** How long one webmention POST is given before it is abandoned. */
|
|
30
36
|
export const SEND_TIMEOUT_MS = 10_000;
|
|
37
|
+
/**
|
|
38
|
+
* How many salmentions one page sends one target in {@link SALMENTION_WINDOW_MS}
|
|
39
|
+
* (TASK-320). Two sites that both send them, each answering the other, stop
|
|
40
|
+
* on their own once neither has anything new; this is for one that never
|
|
41
|
+
* settles, such as a page that prints something different every time it is
|
|
42
|
+
* read.
|
|
43
|
+
*/
|
|
44
|
+
export const SALMENTION_LIMIT = 5;
|
|
45
|
+
export const SALMENTION_WINDOW_MS = 60 * 60 * 1000;
|
|
31
46
|
/** Build the webmention service for one site. */
|
|
32
47
|
export function createWebmentionService(options) {
|
|
33
48
|
const { admin, store, config } = options;
|
|
@@ -109,8 +124,13 @@ export function createWebmentionService(options) {
|
|
|
109
124
|
return [];
|
|
110
125
|
return selectedTargets(document, targets(), siteLanguage()).map((target) => target.url);
|
|
111
126
|
}
|
|
127
|
+
function held(source, links) {
|
|
128
|
+
return (links.length > 0 && holdOutbound(config, { kind: 'webmention', what: source, to: links }));
|
|
129
|
+
}
|
|
112
130
|
/** Tell every one of a post's targets, one after another. */
|
|
113
131
|
async function tellAll(slug, source, links) {
|
|
132
|
+
if (held(source, links))
|
|
133
|
+
return [];
|
|
114
134
|
const outcomes = [];
|
|
115
135
|
for (const target of links)
|
|
116
136
|
outcomes.push(await tell(slug, source, target));
|
|
@@ -135,6 +155,98 @@ export function createWebmentionService(options) {
|
|
|
135
155
|
await copies.write(permalink, sent.target, copy);
|
|
136
156
|
}
|
|
137
157
|
}
|
|
158
|
+
// The documents whose conversations changed since the salmentions were
|
|
159
|
+
// last looked at. A webmention carrying nested replies writes several
|
|
160
|
+
// comments in a row, and they are looked at once.
|
|
161
|
+
const changed = new Map();
|
|
162
|
+
let looking = false;
|
|
163
|
+
function conversationChanged(document) {
|
|
164
|
+
changed.set(document.path, document);
|
|
165
|
+
if (looking)
|
|
166
|
+
return;
|
|
167
|
+
looking = true;
|
|
168
|
+
enqueue(async () => {
|
|
169
|
+
looking = false;
|
|
170
|
+
const documents = [...changed.values()];
|
|
171
|
+
changed.clear();
|
|
172
|
+
for (const one of documents) {
|
|
173
|
+
for (const upstream of options.conversation.upstreams(one))
|
|
174
|
+
await salmention(upstream);
|
|
175
|
+
}
|
|
176
|
+
}).catch((thrown) => {
|
|
177
|
+
logger.warn(`A salmention failed: ${messageOf(thrown)}`);
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Tell what a page answers that the replies under it changed, when they did
|
|
182
|
+
* since it was last told, and it has not been told too often lately.
|
|
183
|
+
*/
|
|
184
|
+
async function salmention(upstream) {
|
|
185
|
+
const at = config.now();
|
|
186
|
+
const fingerprint = fingerprintOf(upstream.replies);
|
|
187
|
+
const targets = new Set([upstream.target, originalOf(upstream.target)].flatMap((url) => {
|
|
188
|
+
const target = externalTarget(url, config.baseUrl);
|
|
189
|
+
return target === undefined ? [] : [target];
|
|
190
|
+
}));
|
|
191
|
+
for (const target of targets) {
|
|
192
|
+
const key = `salmention:${upstream.source} ${target}`;
|
|
193
|
+
const recorded = admin.getState(key);
|
|
194
|
+
// A post brought over from another site arrives with the replies it
|
|
195
|
+
// already had, which are not news to anybody: they are where it starts.
|
|
196
|
+
if (recorded === undefined && isMigrated(upstream.post)) {
|
|
197
|
+
admin.setState(key, JSON.stringify({ fingerprint, sent: [] }));
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
const told = toldOf(recorded);
|
|
201
|
+
if (told.fingerprint === fingerprint)
|
|
202
|
+
continue;
|
|
203
|
+
const recent = told.sent.filter((sent) => at.getTime() - Date.parse(sent) < SALMENTION_WINDOW_MS);
|
|
204
|
+
if (recent.length >= SALMENTION_LIMIT) {
|
|
205
|
+
logger.warn(`Not sending another salmention from ${upstream.source} to ${target} this hour.`);
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
if (held(upstream.source, [target]))
|
|
209
|
+
continue;
|
|
210
|
+
admin.setState(key, JSON.stringify({ fingerprint, sent: [...recent, at.toISOString()] }));
|
|
211
|
+
await tell(upstream.post.slug, upstream.source, target);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/** Tell whatever pages one change of a post moved, as {@link WebmentionService.handle} says. */
|
|
215
|
+
function sendFor(change) {
|
|
216
|
+
const now = config.now();
|
|
217
|
+
const document = change.next ?? change.previous;
|
|
218
|
+
if (document === undefined || isMigratedArrival(change, now))
|
|
219
|
+
return;
|
|
220
|
+
// Nothing goes out about a post the outside world has never been able to
|
|
221
|
+
// read: a draft edited into another draft is not news.
|
|
222
|
+
const wasPublic = isPublic(change.previous, now);
|
|
223
|
+
const isNowPublic = isPublic(change.next, now);
|
|
224
|
+
if (!wasPublic && !isNowPublic)
|
|
225
|
+
return;
|
|
226
|
+
// Both versions' links, because a page that has just been unlinked has
|
|
227
|
+
// to be told too: it goes and looks, finds the link gone, and drops what
|
|
228
|
+
// it was showing. That is how a webmention is withdrawn — there is no
|
|
229
|
+
// other way to say it.
|
|
230
|
+
const source = absoluteUrl(document.permalink, config.baseUrl);
|
|
231
|
+
const links = targetsOf([change.previous, change.next], targets(), config.baseUrl, siteLanguage(), originalOf);
|
|
232
|
+
if (links.length === 0)
|
|
233
|
+
return;
|
|
234
|
+
// A post that moved is a new source to its targets, which answer with
|
|
235
|
+
// their copies of it under its new permalink.
|
|
236
|
+
const moved = change.previous !== undefined &&
|
|
237
|
+
change.next !== undefined &&
|
|
238
|
+
change.previous.permalink !== change.next.permalink
|
|
239
|
+
? change.previous.permalink
|
|
240
|
+
: undefined;
|
|
241
|
+
const current = isNowPublic ? change.next : undefined;
|
|
242
|
+
enqueue(async () => {
|
|
243
|
+
if (moved !== undefined)
|
|
244
|
+
await copies.forget(moved);
|
|
245
|
+
await keepCopies(document.permalink, [change.previous, change.next], current, await tellAll(document.slug, source, links));
|
|
246
|
+
}).catch((thrown) => {
|
|
247
|
+
logger.warn(`A webmention failed: ${messageOf(thrown)}`);
|
|
248
|
+
});
|
|
249
|
+
}
|
|
138
250
|
return {
|
|
139
251
|
handle(change) {
|
|
140
252
|
// A full scan is a rebuild of the index, not news about the site.
|
|
@@ -142,39 +254,24 @@ export function createWebmentionService(options) {
|
|
|
142
254
|
return;
|
|
143
255
|
if (!sending())
|
|
144
256
|
return;
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
// Both versions' links, because a page that has just been unlinked has
|
|
156
|
-
// to be told too: it goes and looks, finds the link gone, and drops what
|
|
157
|
-
// it was showing. That is how a webmention is withdrawn — there is no
|
|
158
|
-
// other way to say it.
|
|
159
|
-
const source = absoluteUrl(document.permalink, config.baseUrl);
|
|
160
|
-
const links = targetsOf([change.previous, change.next], targets(), config.baseUrl, siteLanguage(), originalOf);
|
|
161
|
-
if (links.length === 0)
|
|
257
|
+
sendFor(change);
|
|
258
|
+
// And a reply post edited, published or withdrawn changes the replies
|
|
259
|
+
// under whatever it is in.
|
|
260
|
+
for (const version of [change.previous, change.next]) {
|
|
261
|
+
if (version !== undefined)
|
|
262
|
+
conversationChanged(version);
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
heard(written) {
|
|
266
|
+
if (!sending())
|
|
162
267
|
return;
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
const current = isNowPublic ? change.next : undefined;
|
|
171
|
-
enqueue(async () => {
|
|
172
|
-
if (moved !== undefined)
|
|
173
|
-
await copies.forget(moved);
|
|
174
|
-
await keepCopies(document.permalink, [change.previous, change.next], current, await tellAll(document.slug, source, links));
|
|
175
|
-
}).catch((thrown) => {
|
|
176
|
-
logger.warn(`A webmention failed: ${messageOf(thrown)}`);
|
|
177
|
-
});
|
|
268
|
+
const document = written.kind === 'comment'
|
|
269
|
+
? store.getBySlug(written.slug)
|
|
270
|
+
: written.about
|
|
271
|
+
.map((url) => options.conversation.documentOf(url))
|
|
272
|
+
.find((found) => found !== undefined);
|
|
273
|
+
if (document !== undefined)
|
|
274
|
+
conversationChanged(document);
|
|
178
275
|
},
|
|
179
276
|
async send(slug) {
|
|
180
277
|
const document = postBySlug(store, slug);
|
|
@@ -199,6 +296,7 @@ export function createWebmentionService(options) {
|
|
|
199
296
|
records,
|
|
200
297
|
dataDir: config.dataDir,
|
|
201
298
|
baseUrl: config.baseUrl,
|
|
299
|
+
conversation: options.conversation,
|
|
202
300
|
checker: config.commentChecker,
|
|
203
301
|
// The intake decides whether this one is news: a page that is
|
|
204
302
|
// edited and re-sent updates the entry it made, and putting the
|
|
@@ -228,9 +326,12 @@ export function createWebmentionService(options) {
|
|
|
228
326
|
return;
|
|
229
327
|
const now = config.now();
|
|
230
328
|
for (const document of store.listAll()) {
|
|
231
|
-
if (replyTarget(document) !== copy || !isPublic(document, now))
|
|
329
|
+
if (replyTarget(document) !== copy || !isPublic(document, now) || isMigrated(document)) {
|
|
232
330
|
continue;
|
|
331
|
+
}
|
|
233
332
|
const source = absoluteUrl(document.permalink, config.baseUrl);
|
|
333
|
+
if (held(source, [target]))
|
|
334
|
+
continue;
|
|
234
335
|
enqueue(() => tell(document.slug, source, target)).catch((thrown) => {
|
|
235
336
|
logger.warn(`A webmention failed: ${messageOf(thrown)}`);
|
|
236
337
|
});
|
|
@@ -241,6 +342,38 @@ export function createWebmentionService(options) {
|
|
|
241
342
|
},
|
|
242
343
|
};
|
|
243
344
|
}
|
|
345
|
+
/** The ledger entry as the state holds it; nothing recorded is no replies, never told. */
|
|
346
|
+
function toldOf(value) {
|
|
347
|
+
const nothing = { fingerprint: fingerprintOf([]), sent: [] };
|
|
348
|
+
if (value === undefined)
|
|
349
|
+
return nothing;
|
|
350
|
+
try {
|
|
351
|
+
const parsed = JSON.parse(value);
|
|
352
|
+
return {
|
|
353
|
+
fingerprint: typeof parsed.fingerprint === 'string' ? parsed.fingerprint : '',
|
|
354
|
+
sent: Array.isArray(parsed.sent) ? parsed.sent.filter((one) => typeof one === 'string') : [],
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
catch {
|
|
358
|
+
return nothing;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
/** What a reader sees under a page, as one value that changes when any of it does. */
|
|
362
|
+
function fingerprintOf(replies) {
|
|
363
|
+
const shape = (list) => list.map((reply) => isWithheld(reply)
|
|
364
|
+
? [reply.id, shape(reply.replies)]
|
|
365
|
+
: [
|
|
366
|
+
reply.id,
|
|
367
|
+
reply.url,
|
|
368
|
+
reply.author.name,
|
|
369
|
+
reply.content,
|
|
370
|
+
reply.published.toISOString(),
|
|
371
|
+
shape(reply.replies),
|
|
372
|
+
]);
|
|
373
|
+
return createHash('sha256')
|
|
374
|
+
.update(JSON.stringify(shape(replies)))
|
|
375
|
+
.digest('hex');
|
|
376
|
+
}
|
|
244
377
|
/**
|
|
245
378
|
* Every external page any of these versions of a post links to, in order: the
|
|
246
379
|
* post it replies to first, and the original that post is a copy of (TASK-197),
|
|
@@ -298,6 +431,23 @@ function copyOf(response, endpoint) {
|
|
|
298
431
|
function isPublic(document, now) {
|
|
299
432
|
return document !== undefined && isFederatedDocument(document, now);
|
|
300
433
|
}
|
|
434
|
+
/**
|
|
435
|
+
* File the outcomes of a post whose slug changed under the post it is now
|
|
436
|
+
* (TASK-332). Rows are keyed by slug, so a moved post would otherwise show
|
|
437
|
+
* nothing sent and leave its rows to whatever post takes the old slug. A row
|
|
438
|
+
* whose slug names no document belongs to the document its source names, by
|
|
439
|
+
* the redirect rule comment files follow.
|
|
440
|
+
*/
|
|
441
|
+
export function followMovedWebmentions(admin, store, baseUrl) {
|
|
442
|
+
for (const recorded of admin.listSentWebmentionSources()) {
|
|
443
|
+
if (store.getBySlug(recorded.slug) !== undefined)
|
|
444
|
+
continue;
|
|
445
|
+
const permalink = permalinkOfObjectId(recorded.source, baseUrl);
|
|
446
|
+
const owner = permalink === undefined ? undefined : permalinkOwner(store, permalink);
|
|
447
|
+
if (owner !== undefined)
|
|
448
|
+
admin.moveSentWebmentions(recorded, owner.slug);
|
|
449
|
+
}
|
|
450
|
+
}
|
|
301
451
|
/**
|
|
302
452
|
* The post a slug names, the trash included, or `undefined`.
|
|
303
453
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/webmention/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/webmention/service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geekity/cms",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A file-first CMS: Markdown content, a SQLite index, a Hono server that is both the editor and the public site.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -40,7 +40,6 @@
|
|
|
40
40
|
"@fedify/vocab": "^2.4.0",
|
|
41
41
|
"@hono/node-server": "^2.1.3",
|
|
42
42
|
"@js-temporal/polyfill": "^0.5.1",
|
|
43
|
-
"chokidar": "^5.0.0",
|
|
44
43
|
"gray-matter": "^4.0.3",
|
|
45
44
|
"hono": "^4.13.13",
|
|
46
45
|
"js-yaml": "^5.4.2",
|