@geekity/cms 0.6.0 → 0.8.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.
Files changed (208) hide show
  1. package/README.md +207 -28
  2. package/admin/layouts/shell.njk +13 -6
  3. package/admin/pages/documents/editor.njk +13 -1
  4. package/admin/pages/error.njk +11 -0
  5. package/admin/static/admin.css +69 -15
  6. package/dist/admin/comments.d.ts.map +1 -1
  7. package/dist/admin/comments.js +2 -1
  8. package/dist/admin/comments.js.map +1 -1
  9. package/dist/admin/documents.d.ts +3 -0
  10. package/dist/admin/documents.d.ts.map +1 -1
  11. package/dist/admin/documents.js +109 -42
  12. package/dist/admin/documents.js.map +1 -1
  13. package/dist/admin/federation.d.ts.map +1 -1
  14. package/dist/admin/federation.js +3 -2
  15. package/dist/admin/federation.js.map +1 -1
  16. package/dist/admin/preview.js +3 -0
  17. package/dist/admin/preview.js.map +1 -1
  18. package/dist/admin/routes.d.ts.map +1 -1
  19. package/dist/admin/routes.js +7 -3
  20. package/dist/admin/routes.js.map +1 -1
  21. package/dist/admin/templates.d.ts +1 -0
  22. package/dist/admin/templates.d.ts.map +1 -1
  23. package/dist/admin/templates.js +1 -0
  24. package/dist/admin/templates.js.map +1 -1
  25. package/dist/cli.d.ts +1 -1
  26. package/dist/cli.d.ts.map +1 -1
  27. package/dist/cli.js +128 -3
  28. package/dist/cli.js.map +1 -1
  29. package/dist/comments/submission.d.ts.map +1 -1
  30. package/dist/comments/submission.js +2 -1
  31. package/dist/comments/submission.js.map +1 -1
  32. package/dist/config.d.ts +23 -0
  33. package/dist/config.d.ts.map +1 -1
  34. package/dist/config.js +3 -0
  35. package/dist/config.js.map +1 -1
  36. package/dist/content/document.d.ts +26 -7
  37. package/dist/content/document.d.ts.map +1 -1
  38. package/dist/content/document.js +2 -0
  39. package/dist/content/document.js.map +1 -1
  40. package/dist/content/index.d.ts +2 -0
  41. package/dist/content/index.d.ts.map +1 -1
  42. package/dist/content/index.js +1 -0
  43. package/dist/content/index.js.map +1 -1
  44. package/dist/content/parser.d.ts.map +1 -1
  45. package/dist/content/parser.js +32 -1
  46. package/dist/content/parser.js.map +1 -1
  47. package/dist/content/post-type.d.ts +48 -0
  48. package/dist/content/post-type.d.ts.map +1 -0
  49. package/dist/content/post-type.js +79 -0
  50. package/dist/content/post-type.js.map +1 -0
  51. package/dist/content/store.d.ts +13 -2
  52. package/dist/content/store.d.ts.map +1 -1
  53. package/dist/content/store.js +62 -3
  54. package/dist/content/store.js.map +1 -1
  55. package/dist/content/sync.d.ts.map +1 -1
  56. package/dist/content/sync.js +6 -0
  57. package/dist/content/sync.js.map +1 -1
  58. package/dist/content/writer.d.ts +1 -1
  59. package/dist/content/writer.d.ts.map +1 -1
  60. package/dist/content/writer.js +13 -2
  61. package/dist/content/writer.js.map +1 -1
  62. package/dist/env.d.ts +12 -0
  63. package/dist/env.d.ts.map +1 -1
  64. package/dist/federation/article.d.ts +27 -9
  65. package/dist/federation/article.d.ts.map +1 -1
  66. package/dist/federation/article.js +110 -18
  67. package/dist/federation/article.js.map +1 -1
  68. package/dist/federation/federation.d.ts.map +1 -1
  69. package/dist/federation/federation.js +24 -6
  70. package/dist/federation/federation.js.map +1 -1
  71. package/dist/federation/inbox.d.ts +17 -3
  72. package/dist/federation/inbox.d.ts.map +1 -1
  73. package/dist/federation/inbox.js +72 -6
  74. package/dist/federation/inbox.js.map +1 -1
  75. package/dist/federation/index.d.ts +1 -1
  76. package/dist/federation/index.d.ts.map +1 -1
  77. package/dist/federation/index.js +1 -1
  78. package/dist/federation/index.js.map +1 -1
  79. package/dist/federation/mount.d.ts.map +1 -1
  80. package/dist/federation/mount.js +11 -6
  81. package/dist/federation/mount.js.map +1 -1
  82. package/dist/federation/paths.d.ts +5 -0
  83. package/dist/federation/paths.d.ts.map +1 -1
  84. package/dist/federation/paths.js +5 -0
  85. package/dist/federation/paths.js.map +1 -1
  86. package/dist/federation/quotes.d.ts +56 -0
  87. package/dist/federation/quotes.d.ts.map +1 -0
  88. package/dist/federation/quotes.js +85 -0
  89. package/dist/federation/quotes.js.map +1 -0
  90. package/dist/federation/wordpress.d.ts.map +1 -1
  91. package/dist/federation/wordpress.js +5 -4
  92. package/dist/federation/wordpress.js.map +1 -1
  93. package/dist/index.d.ts +12 -5
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +46 -4
  96. package/dist/index.js.map +1 -1
  97. package/dist/maintenance.d.ts +47 -0
  98. package/dist/maintenance.d.ts.map +1 -0
  99. package/dist/maintenance.js +78 -0
  100. package/dist/maintenance.js.map +1 -0
  101. package/dist/notifications/comments.d.ts.map +1 -1
  102. package/dist/notifications/comments.js +2 -1
  103. package/dist/notifications/comments.js.map +1 -1
  104. package/dist/notifications/digest.d.ts.map +1 -1
  105. package/dist/notifications/digest.js +2 -1
  106. package/dist/notifications/digest.js.map +1 -1
  107. package/dist/web/archive.d.ts +1 -1
  108. package/dist/web/archive.d.ts.map +1 -1
  109. package/dist/web/archive.js +2 -1
  110. package/dist/web/archive.js.map +1 -1
  111. package/dist/web/context.d.ts +22 -2
  112. package/dist/web/context.d.ts.map +1 -1
  113. package/dist/web/context.js +5 -0
  114. package/dist/web/context.js.map +1 -1
  115. package/dist/web/conversation.d.ts.map +1 -1
  116. package/dist/web/conversation.js +3 -33
  117. package/dist/web/conversation.js.map +1 -1
  118. package/dist/web/documents.d.ts +9 -0
  119. package/dist/web/documents.d.ts.map +1 -1
  120. package/dist/web/documents.js +31 -0
  121. package/dist/web/documents.js.map +1 -1
  122. package/dist/web/errors.d.ts +19 -0
  123. package/dist/web/errors.d.ts.map +1 -0
  124. package/dist/web/errors.js +93 -0
  125. package/dist/web/errors.js.map +1 -0
  126. package/dist/web/feed-atom.d.ts.map +1 -1
  127. package/dist/web/feed-atom.js +14 -2
  128. package/dist/web/feed-atom.js.map +1 -1
  129. package/dist/web/feed-item.d.ts +21 -7
  130. package/dist/web/feed-item.d.ts.map +1 -1
  131. package/dist/web/feed-item.js +13 -6
  132. package/dist/web/feed-item.js.map +1 -1
  133. package/dist/web/feed-json.d.ts +13 -2
  134. package/dist/web/feed-json.d.ts.map +1 -1
  135. package/dist/web/feed-json.js +3 -1
  136. package/dist/web/feed-json.js.map +1 -1
  137. package/dist/web/feed-rss.d.ts.map +1 -1
  138. package/dist/web/feed-rss.js +2 -2
  139. package/dist/web/feed-rss.js.map +1 -1
  140. package/dist/web/feed-xml.d.ts +2 -0
  141. package/dist/web/feed-xml.d.ts.map +1 -1
  142. package/dist/web/feed-xml.js +2 -0
  143. package/dist/web/feed-xml.js.map +1 -1
  144. package/dist/web/feeds.d.ts +1 -1
  145. package/dist/web/feeds.d.ts.map +1 -1
  146. package/dist/web/feeds.js.map +1 -1
  147. package/dist/web/health.d.ts +6 -0
  148. package/dist/web/health.d.ts.map +1 -1
  149. package/dist/web/health.js +5 -1
  150. package/dist/web/health.js.map +1 -1
  151. package/dist/web/index.d.ts +5 -1
  152. package/dist/web/index.d.ts.map +1 -1
  153. package/dist/web/index.js +3 -0
  154. package/dist/web/index.js.map +1 -1
  155. package/dist/web/maintenance.d.ts +18 -0
  156. package/dist/web/maintenance.d.ts.map +1 -0
  157. package/dist/web/maintenance.js +108 -0
  158. package/dist/web/maintenance.js.map +1 -0
  159. package/dist/web/redirects.d.ts +75 -0
  160. package/dist/web/redirects.d.ts.map +1 -0
  161. package/dist/web/redirects.js +200 -0
  162. package/dist/web/redirects.js.map +1 -0
  163. package/dist/web/render.d.ts +18 -0
  164. package/dist/web/render.d.ts.map +1 -1
  165. package/dist/web/render.js +38 -1
  166. package/dist/web/render.js.map +1 -1
  167. package/dist/web/routes.d.ts.map +1 -1
  168. package/dist/web/routes.js +55 -1
  169. package/dist/web/routes.js.map +1 -1
  170. package/dist/webmention/index.d.ts +6 -0
  171. package/dist/webmention/index.d.ts.map +1 -1
  172. package/dist/webmention/index.js +3 -0
  173. package/dist/webmention/index.js.map +1 -1
  174. package/dist/webmention/links.d.ts +5 -0
  175. package/dist/webmention/links.d.ts.map +1 -1
  176. package/dist/webmention/links.js +14 -7
  177. package/dist/webmention/links.js.map +1 -1
  178. package/dist/webmention/microformats.d.ts +21 -0
  179. package/dist/webmention/microformats.d.ts.map +1 -1
  180. package/dist/webmention/microformats.js +35 -5
  181. package/dist/webmention/microformats.js.map +1 -1
  182. package/dist/webmention/public-address.d.ts +30 -0
  183. package/dist/webmention/public-address.d.ts.map +1 -0
  184. package/dist/webmention/public-address.js +71 -0
  185. package/dist/webmention/public-address.js.map +1 -0
  186. package/dist/webmention/receive.d.ts.map +1 -1
  187. package/dist/webmention/receive.js +1 -23
  188. package/dist/webmention/receive.js.map +1 -1
  189. package/dist/webmention/reply-context.d.ts +67 -0
  190. package/dist/webmention/reply-context.d.ts.map +1 -0
  191. package/dist/webmention/reply-context.js +189 -0
  192. package/dist/webmention/reply-context.js.map +1 -0
  193. package/dist/webmention/reply-contexts.d.ts +50 -0
  194. package/dist/webmention/reply-contexts.d.ts.map +1 -0
  195. package/dist/webmention/reply-contexts.js +163 -0
  196. package/dist/webmention/reply-contexts.js.map +1 -0
  197. package/dist/webmention/service.d.ts.map +1 -1
  198. package/dist/webmention/service.js +9 -2
  199. package/dist/webmention/service.js.map +1 -1
  200. package/package.json +10 -10
  201. package/themes/default/README.md +20 -0
  202. package/themes/default/layouts/500.njk +8 -0
  203. package/themes/default/layouts/503.njk +8 -0
  204. package/themes/default/layouts/base.njk +5 -3
  205. package/themes/default/layouts/post.njk +8 -0
  206. package/themes/default/layouts/search.njk +4 -2
  207. package/themes/default/partials/post-list.njk +17 -5
  208. package/themes/default/partials/reply-context.njk +29 -0
@@ -1,9 +1,12 @@
1
- import { Article, Create, Delete, Hashtag, PUBLIC_COLLECTION, Source, Tombstone, Update, } from '@fedify/vocab';
1
+ import { Article, Create, Delete, Hashtag, InteractionPolicy, InteractionRule, Note, PUBLIC_COLLECTION, Source, Tombstone, Update, } from '@fedify/vocab';
2
2
  import { Temporal as TemporalPolyfill } from '@js-temporal/polyfill';
3
3
  import { listUsers, primaryUser } from '../admin/accounts.js';
4
4
  import { readSiteSettings, taxonomyBasesFromSettings } from '../admin/settings.js';
5
+ import { postTypeOf, replyTarget } from '../content/post-type.js';
6
+ import { htmlToText } from '../content/search.js';
5
7
  import { userForAuthor } from '../web/authors.js';
6
- import { isPublicDocument, postObjectId } from '../web/documents.js';
8
+ import { isPublicDocument, permalinkOfObjectId, postObjectId } from '../web/documents.js';
9
+ import { feedExcerpt } from '../web/feed-item.js';
7
10
  import { absoluteUrl } from '../web/negotiate.js';
8
11
  import { categoryHref, tagHref } from '../web/taxonomy.js';
9
12
  import { actorId } from './actor.js';
@@ -58,7 +61,55 @@ export function isFederatedDocument(document, now = new Date()) {
58
61
  return document.type === 'post' && isPublicDocument(document, now);
59
62
  }
60
63
  /**
61
- * One post as the `Article` doc-4 describes.
64
+ * The post an ActivityStreams object id names, federated or not.
65
+ *
66
+ * Either the post whose file stores that id, or the one at the permalink the
67
+ * id spells — and then only when that post's id really is this URL, so a
68
+ * migrated post is not found a second time under its permalink.
69
+ */
70
+ export function postByObjectId(store, objectId, baseUrl) {
71
+ const permalink = permalinkOfObjectId(objectId, baseUrl);
72
+ const document = store.getByStoredObjectId(objectId) ??
73
+ (permalink === undefined ? undefined : store.getByPermalink(permalink));
74
+ if (document?.type !== 'post' || postObjectId(document, baseUrl) !== objectId)
75
+ return undefined;
76
+ return document;
77
+ }
78
+ /** The ActivityStreams object types a post can federate as, by name. */
79
+ const OBJECT_TYPES = { Note, Article };
80
+ /**
81
+ * The object type each discovered post type federates as: the rows of Post
82
+ * Type Discovery's own AS2 mapping (section 6) that this site has post types
83
+ * for. A reply is a `Note` even with a title of its own (decision-18).
84
+ */
85
+ const OBJECT_TYPE_OF = {
86
+ reply: 'Note',
87
+ note: 'Note',
88
+ article: 'Article',
89
+ };
90
+ function isPostObjectType(value) {
91
+ return Object.hasOwn(OBJECT_TYPES, value);
92
+ }
93
+ /**
94
+ * The ActivityStreams type a post federates as: the one its front matter
95
+ * names in `activitypub.type`, else the one its discovered post type maps to.
96
+ *
97
+ * A name this site cannot send is logged and ignored rather than refused, as
98
+ * an unusable theme choice is: a typo in one file should not stop the post
99
+ * reaching anybody.
100
+ */
101
+ function postObjectType(document) {
102
+ const derived = OBJECT_TYPE_OF[postTypeOf(document)];
103
+ const chosen = document.activitypub?.type;
104
+ if (chosen === undefined || isPostObjectType(chosen))
105
+ return chosen ?? derived;
106
+ console.warn(`${document.path} names activitypub.type "${chosen}", which is not one of ` +
107
+ `${Object.keys(OBJECT_TYPES).join(', ')}. It is federated as ${derived} instead.`);
108
+ return derived;
109
+ }
110
+ /**
111
+ * One post as the `Note` or `Article` doc-4 describes, whichever
112
+ * {@link postObjectType} says it is.
62
113
  *
63
114
  * Its `id` and its `url` are the same URL — the permalink — because
64
115
  * decision-13 gives a post one name for both audiences: a browser asking for
@@ -66,6 +117,14 @@ export function isFederatedDocument(document, now = new Date()) {
66
117
  * exception is a post whose file already names an `activitypub.id`, which
67
118
  * keeps it; see {@link articleObjectId}.
68
119
  *
120
+ * The two types are not one object with two labels, because Mastodon reads
121
+ * them differently. An `Article`'s status is built from `name`, `summary` and
122
+ * `url`, and `content` is dropped, so it carries the excerpt the feeds print
123
+ * ({@link feedExcerpt}) as its `summary`. A `Note`'s status is its `content`,
124
+ * `name` is never read and `summary` is shown as a content warning, so a note
125
+ * sends neither and carries its title, when its text does not already start
126
+ * with it, at the top of its `content`.
127
+ *
69
128
  * `source` carries the Markdown the file holds, so a peer that wants to quote
70
129
  * or re-render the post has the text rather than only the rendering of it.
71
130
  *
@@ -73,17 +132,18 @@ export function isFederatedDocument(document, now = new Date()) {
73
132
  * (decision-14), and `cc` is that user's followers: a post belongs to a person
74
133
  * on this site, not to the site.
75
134
  */
76
- export function postArticle(context, document) {
135
+ export function postObject(context, document) {
77
136
  const { baseUrl } = context.data.config;
78
137
  const { actor, followers } = attribution(context, document);
79
138
  // The archives an activity points at are wherever the site currently serves
80
139
  // them, which is a setting rather than a constant (TASK-36).
81
140
  const bases = taxonomyBasesFromSettings(readSiteSettings(context.data.config.contentDir));
82
- return new Article({
141
+ const inReplyTo = replyTarget(document);
142
+ const common = {
83
143
  id: articleObjectId(context, document),
144
+ // On either type, so an activitypub.type override never breaks a thread.
145
+ replyTarget: inReplyTo === undefined ? null : new URL(inReplyTo),
84
146
  url: new URL(absoluteUrl(document.permalink, baseUrl)),
85
- name: document.title,
86
- content: document.html,
87
147
  source: new Source({ content: document.body, mediaType: SOURCE_MEDIA_TYPE }),
88
148
  published: toInstant(document.date) ?? null,
89
149
  updated: toInstant(document.updated) ?? null,
@@ -92,6 +152,10 @@ export function postArticle(context, document) {
92
152
  // follower of its author is told about it.
93
153
  to: PUBLIC_COLLECTION,
94
154
  cc: followers,
155
+ // FEP-044f: a post with no policy is one Mastodon lets nobody quote. Every
156
+ // post that federates is addressed to Public, so anybody may quote it, and
157
+ // the inbox approves each QuoteRequest on the same rule (TASK-125).
158
+ interactionPolicy: QUOTABLE_BY_ANYONE,
95
159
  // Both taxonomies become hashtags: a relay or a search that keys on a
96
160
  // hashtag has no reason to care which of the two a term came from, and
97
161
  // each one points at the archive the site serves for it.
@@ -99,8 +163,36 @@ export function postArticle(context, document) {
99
163
  ...document.tags.map((tag) => hashtag(tag, tagHref(tag, 0, bases), baseUrl)),
100
164
  ...document.categories.map((category) => hashtag(category, categoryHref(category, 0, bases), baseUrl)),
101
165
  ],
166
+ };
167
+ if (postObjectType(document) === 'Note') {
168
+ return new Note({ ...common, content: noteContent(document) });
169
+ }
170
+ const summary = feedExcerpt(document);
171
+ return new Article({
172
+ ...common,
173
+ name: document.title === '' ? null : document.title,
174
+ summary: summary === '' ? null : summary,
175
+ content: document.html,
102
176
  });
103
177
  }
178
+ const QUOTABLE_BY_ANYONE = new InteractionPolicy({
179
+ canQuote: new InteractionRule({ automaticApproval: PUBLIC_COLLECTION }),
180
+ });
181
+ /** A note's HTML: its title first when its text does not already open with it. */
182
+ function noteContent(document) {
183
+ const title = document.title.trim();
184
+ if (title === '' || collapse(htmlToText(document.html)).startsWith(collapse(title))) {
185
+ return document.html;
186
+ }
187
+ const heading = `<p>${escapeHtml(title)}</p>`;
188
+ return document.html === '' ? heading : `${heading}\n${document.html}`;
189
+ }
190
+ function collapse(value) {
191
+ return value.trim().replace(/\s+/g, ' ');
192
+ }
193
+ function escapeHtml(value) {
194
+ return value.replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;');
195
+ }
104
196
  /** One taxonomy term as a `Hashtag` pointing at its archive. */
105
197
  function hashtag(term, href, baseUrl) {
106
198
  return new Hashtag({ name: `#${term}`, href: new URL(absoluteUrl(href, baseUrl)) });
@@ -109,17 +201,17 @@ function hashtag(term, href, baseUrl) {
109
201
  * The `Create` that announces a post: what the outbox lists, and what delivery
110
202
  * sends.
111
203
  *
112
- * Its addressing is the article's, because an activity a follower cannot see
204
+ * Its addressing is the object's, because an activity a follower cannot see
113
205
  * is an object it will never learn about. The id is a fragment of the
114
- * article's, so the same post always produces the same activity id.
206
+ * object's, so the same post always produces the same activity id.
115
207
  */
116
208
  export function postCreateActivity(context, document) {
117
- const article = postArticle(context, document);
209
+ const object = postObject(context, document);
118
210
  const { actor, followers } = attribution(context, document);
119
211
  return new Create({
120
212
  id: createActivityId(articleObjectId(context, document)),
121
213
  actor,
122
- object: article,
214
+ object,
123
215
  published: toInstant(document.date) ?? null,
124
216
  to: PUBLIC_COLLECTION,
125
217
  cc: followers,
@@ -128,7 +220,7 @@ export function postCreateActivity(context, document) {
128
220
  /**
129
221
  * The `Update` that announces an edit to a post followers already hold.
130
222
  *
131
- * The whole article goes with it rather than a diff, because that is all
223
+ * The whole object goes with it rather than a diff, because that is all
132
224
  * ActivityPub offers and all a peer can apply. Its id carries the document's
133
225
  * hash, so two edits are two activities and the same edit delivered twice is
134
226
  * one; see {@link updateActivityId}.
@@ -140,25 +232,25 @@ export function postCreateActivity(context, document) {
140
232
  * which is what makes a resent `Update` and a saved one the same shape.
141
233
  */
142
234
  export function postUpdateActivity(context, document, revision = revisionOf(document)) {
143
- const article = postArticle(context, document);
235
+ const object = postObject(context, document);
144
236
  const { actor, followers } = attribution(context, document);
145
237
  return new Update({
146
238
  id: updateActivityId(articleObjectId(context, document), revision),
147
239
  actor,
148
- object: article,
240
+ object,
149
241
  published: toInstant(document.updated ?? document.date) ?? null,
150
242
  to: PUBLIC_COLLECTION,
151
243
  cc: followers,
152
244
  });
153
245
  }
154
246
  /**
155
- * The `Delete` that withdraws a post: a `Tombstone` where the `Article` was.
247
+ * The `Delete` that withdraws a post: a `Tombstone` where its object was.
156
248
  *
157
249
  * doc-4 sends this when a post becomes a draft, is trashed or is deleted, and
158
250
  * all three look the same from outside — the object is gone and the copy every
159
251
  * follower holds should go with it. The `Tombstone` keeps the object's id and
160
252
  * says what it used to be, which is what lets a peer that never held the
161
- * article recognise what it is being told about.
253
+ * object recognise what it is being told about.
162
254
  *
163
255
  * The document is the one as it was before it went, because after a delete
164
256
  * there is no other.
@@ -171,7 +263,7 @@ export function postDeleteActivity(context, document, deleted) {
171
263
  actor,
172
264
  object: new Tombstone({
173
265
  id: objectId,
174
- formerType: Article,
266
+ formerType: OBJECT_TYPES[postObjectType(document)],
175
267
  deleted: toInstant(deleted) ?? null,
176
268
  }),
177
269
  to: PUBLIC_COLLECTION,
@@ -183,7 +275,7 @@ export function postDeleteActivity(context, document, deleted) {
183
275
  * or the id its file already names (decision-13).
184
276
  *
185
277
  * A thin wrapper over {@link postObjectId} so everything in this module reads
186
- * the id the same way and off the same base URL the article's `url` is built
278
+ * the id the same way and off the same base URL the object's `url` is built
187
279
  * on. The rule itself lives in `web/documents.ts`, because the page, the feed
188
280
  * item and the object are one identity now rather than three.
189
281
  */
@@ -1 +1 @@
1
- {"version":3,"file":"article.js","sourceRoot":"","sources":["../../src/federation/article.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"article.js","sourceRoot":"","sources":["../../src/federation/article.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/federation/federation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAoB,MAAM,EAAsC,MAAM,eAAe,CAAC;AAI7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAyBxD,2FAA2F;AAC3F,eAAO,MAAM,aAAa,gBAAgB,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;CACjC;AAED,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAE/D;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB;IACtE;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC,GAAG,SAAS,CAAC;CACnF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,cAAc,CAiJzF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAKrF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,SAAS,CAAC,MAAM,CAAC,CAYnB"}
1
+ {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/federation/federation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAGL,MAAM,EAQP,MAAM,eAAe,CAAC;AAIvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AA4BxD,2FAA2F;AAC3F,eAAO,MAAM,aAAa,gBAAgB,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;CACjC;AAED,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAE/D;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB;IACtE;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC,GAAG,SAAS,CAAC;CACnF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,cAAc,CAsKzF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAKrF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,SAAS,CAAC,MAAM,CAAC,CAYnB"}
@@ -1,14 +1,15 @@
1
1
  import { createRequire } from 'node:module';
2
2
  import { createFederation, InProcessMessageQueue, MemoryKvStore } from '@fedify/fedify';
3
- import { Accept, Announce, Create, Delete, Follow, Like, Reject, Undo } from '@fedify/vocab';
3
+ import { Accept, Announce, Create, Delete, Follow, Like, QuoteAuthorization, QuoteRequest, Reject, Undo, } from '@fedify/vocab';
4
4
  import { countUsers, listUsers } from '../admin/accounts.js';
5
5
  import { authorNames } from '../web/authors.js';
6
6
  import { userActor, userByUsername } from './actor.js';
7
- import { isFederatedDocument, postCreateActivity } from './article.js';
7
+ import { isFederatedDocument, postByObjectId, postCreateActivity } from './article.js';
8
8
  import { followersPage, lastFollowersCursor } from './followers.js';
9
- import { handleAccept, handleDelete, handleFollow, handleLoggedActivity, handleReject, handleUndo, } from './inbox.js';
9
+ import { handleAccept, handleDelete, handleFollow, handleLoggedActivity, handleQuoteRequest, handleReject, handleUndo, } from './inbox.js';
10
10
  import { loadActorKeyPairs } from './keys.js';
11
- import { ACTOR_PATH, federationOrigin, FOLLOWERS_PATH, FOLLOWING_PATH, INBOX_PATH, NODEINFO_PATH, OUTBOX_PATH, SHARED_INBOX_PATH, } from './paths.js';
11
+ import { ACTOR_PATH, federationOrigin, FOLLOWERS_PATH, FOLLOWING_PATH, INBOX_PATH, NODEINFO_PATH, OUTBOX_PATH, QUOTE_AUTHORIZATION_PATH, SHARED_INBOX_PATH, } from './paths.js';
12
+ import { quoteAuthorization, readQuoteAuthorizations } from './quotes.js';
12
13
  /** The `software.name` this CMS reports in NodeInfo. Lower case, as the schema demands. */
13
14
  export const SOFTWARE_NAME = 'geekity-cms';
14
15
  /**
@@ -72,6 +73,22 @@ export function createSiteFederation(options) {
72
73
  // middleware in `mount.ts` answers an ActivityStreams request there, and
73
74
  // `isFederatedDocument` is the one rule it and the outbox both read, so they
74
75
  // cannot disagree about what exists.
76
+ // A quote approval, for anybody who asks, as long as the quote still stands
77
+ // and the post it quotes is still one this site federates: a stamp on a post
78
+ // nobody can see any more approves nothing (FEP-044f).
79
+ federation.setObjectDispatcher(QuoteAuthorization, QUOTE_AUTHORIZATION_PATH, (context, { identifier, id }) => {
80
+ const user = actorFor(context, identifier);
81
+ if (user === undefined)
82
+ return null;
83
+ const { config, store } = context.data;
84
+ const record = readQuoteAuthorizations(config.contentDir, user.username).find((entry) => entry.id === id);
85
+ if (record === undefined)
86
+ return null;
87
+ const post = postByObjectId(store, record.post, config.baseUrl);
88
+ if (post === undefined || !isFederatedDocument(post, store.now()))
89
+ return null;
90
+ return quoteAuthorization(context, user, record);
91
+ });
75
92
  /** Every stored `author` string that reads as this user (TASK-67). */
76
93
  function namesOf(context, user) {
77
94
  return authorNames(listUsers(context.data.config.dataDir), user);
@@ -126,7 +143,7 @@ export function createSiteFederation(options) {
126
143
  // by the time a listener runs — an unsigned or badly signed delivery never
127
144
  // reaches one — so a handler may trust that the activity's actor really sent
128
145
  // it. An activity of a type not listed here is answered 202 and dropped,
129
- // which is what doc-4 asks for everything past these five.
146
+ // which is what doc-4 asks for everything past these.
130
147
  federation
131
148
  .setInboxListeners(INBOX_PATH, SHARED_INBOX_PATH)
132
149
  // `per-origin` rather than Fedify's default `per-inbox`, which folds the
@@ -142,7 +159,8 @@ export function createSiteFederation(options) {
142
159
  .on(Delete, handleDelete)
143
160
  .on(Like, handleLoggedActivity)
144
161
  .on(Announce, handleLoggedActivity)
145
- .on(Create, handleLoggedActivity);
162
+ .on(Create, handleLoggedActivity)
163
+ .on(QuoteRequest, handleQuoteRequest);
146
164
  federation.setNodeInfoDispatcher(NODEINFO_PATH, (context) => {
147
165
  const counts = context.data.store.counts();
148
166
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"federation.js","sourceRoot":"","sources":["../../src/federation/federation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federation.js","sourceRoot":"","sources":["../../src/federation/federation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { InboxContext } from '@fedify/fedify';
2
- import { Accept, Follow } from '@fedify/vocab';
3
- import type { Activity, Actor, Announce, Create, Delete, Like, Reject, Undo } from '@fedify/vocab';
2
+ import { Accept, Follow, Reject } from '@fedify/vocab';
3
+ import type { Activity, Actor, Announce, Create, Delete, Like, QuoteRequest, Undo } from '@fedify/vocab';
4
4
  import type { NewFollower } from '../admin/store.ts';
5
5
  import type { FederationContextData } from './federation.ts';
6
6
  /** What an inbox handler is handed: a Fedify context over the CMS's stores. */
@@ -23,7 +23,8 @@ export type SiteInboxContext = InboxContext<FederationContextData>;
23
23
  */
24
24
  export declare function handleFollow(context: SiteInboxContext, follow: Follow): Promise<void>;
25
25
  /**
26
- * Handle an `Undo`: an undone `Follow` removes the follower.
26
+ * Handle an `Undo`: an undone `Follow` removes the follower, and an undone
27
+ * `QuoteRequest` withdraws the quote approval it was given.
27
28
  *
28
29
  * Only the actor that sent the `Follow` may undo it. Without that check any
29
30
  * signed actor could unfollow the site on somebody else's behalf, since the
@@ -40,6 +41,19 @@ export declare function handleUndo(context: SiteInboxContext, undo: Undo): Promi
40
41
  * object to remove.
41
42
  */
42
43
  export declare function handleDelete(context: SiteInboxContext, activity: Delete): Promise<void>;
44
+ /**
45
+ * Handle a `QuoteRequest` (FEP-044f): approve a quote of a post this site
46
+ * federates, and refuse anything else.
47
+ *
48
+ * Every federated post is public and advertises `canQuote` for anybody (see
49
+ * `postObject`), so approval is automatic and the one rule is whether the
50
+ * quoted object is such a post. The quote has to live on the requester's own
51
+ * server too, as Mastodon insists of any activity: otherwise anybody could
52
+ * obtain a stamp for somebody else's post. An approval is stored, then sent
53
+ * as the `result` of an `Accept`; a refusal is a `Reject` and stores nothing.
54
+ * Either way the answer comes from the post's author, to the requester.
55
+ */
56
+ export declare function handleQuoteRequest(context: SiteInboxContext, request: QuoteRequest): Promise<void>;
43
57
  /**
44
58
  * Handle an `Accept`: a relay agreeing to the subscription the site asked for.
45
59
  *
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/federation/inbox.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EACV,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,IAAI,EAEJ,MAAM,EACN,IAAI,EACL,MAAM,eAAe,CAAC;AAIvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAK7D,+EAA+E;AAC/E,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B3F;AA4BD;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBrF;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU7F;AA8BD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3F;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3F;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,IAAI,GAAG,QAAQ,GAAG,MAAM,GACjC,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,QAAQ,EAClB,SAAS,GAAE,MAAM,GAAG,SAA0C,GAC7D,OAAO,CAAC,IAAI,CAAC,CAUf;AAOD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC,CAcpD"}
1
+ {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/federation/inbox.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EACV,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,IAAI,EAEJ,YAAY,EACZ,IAAI,EACL,MAAM,eAAe,CAAC;AAIvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAM7D,+EAA+E;AAC/E,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B3F;AA4BD;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BrF;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB7F;AA8BD;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC,CAmDf;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3F;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3F;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,IAAI,GAAG,QAAQ,GAAG,MAAM,GACjC,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,QAAQ,EAClB,SAAS,GAAE,MAAM,GAAG,SAA0C,GAC7D,OAAO,CAAC,IAAI,CAAC,CAUf;AAOD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC,CAcpD"}
@@ -1,7 +1,10 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { Accept, Follow } from '@fedify/vocab';
3
- import { listUsers } from '../admin/accounts.js';
2
+ import { Accept, Follow, Reject } from '@fedify/vocab';
3
+ import { listUsers, primaryUser } from '../admin/accounts.js';
4
4
  import { actorId, senderKeyPairs, userByUsername } from './actor.js';
5
+ import { documentAuthor, isFederatedDocument, postByObjectId } from './article.js';
6
+ import { postObjectId } from '../web/documents.js';
7
+ import { authorizeQuote, quoteAuthorization, revokeQuotes } from './quotes.js';
5
8
  import { addFollower, appendInboxActivity, removeFollower } from './records.js';
6
9
  import { acceptRelay, rejectRelay } from './relays.js';
7
10
  /**
@@ -71,7 +74,8 @@ function followedUser(context, follow) {
71
74
  return listUsers(context.data.config.dataDir).find((user) => user.actorId === wanted);
72
75
  }
73
76
  /**
74
- * Handle an `Undo`: an undone `Follow` removes the follower.
77
+ * Handle an `Undo`: an undone `Follow` removes the follower, and an undone
78
+ * `QuoteRequest` withdraws the quote approval it was given.
75
79
  *
76
80
  * Only the actor that sent the `Follow` may undo it. Without that check any
77
81
  * signed actor could unfollow the site on somebody else's behalf, since the
@@ -79,14 +83,20 @@ function followedUser(context, follow) {
79
83
  * about who the follow belonged to.
80
84
  */
81
85
  export async function handleUndo(context, undo) {
86
+ // A withdrawn QuoteRequest takes its approval with it. Matched on the ids
87
+ // alone, so an Undo naming the request by a URL nobody can fetch still counts.
88
+ const undoer = undo.actorId?.href;
89
+ const undone = undo.objectId?.href;
90
+ if (undoer !== undefined && undone !== undefined) {
91
+ await revokeQuotes(context.data.config.contentDir, (record) => record.request === undone && record.actor === undoer);
92
+ }
82
93
  const object = await undo.getObject(dereference(context));
83
94
  const followed = object instanceof Follow ? followedUser(context, object) : undefined;
84
95
  await logActivity(context, undo, followed?.username);
85
96
  if (!(object instanceof Follow))
86
97
  return;
87
- const undoer = undo.actorId;
88
98
  const follower = object.actorId;
89
- if (undoer === null || follower === null || undoer.href !== follower.href)
99
+ if (undoer === undefined || follower === null || undoer !== follower.href)
90
100
  return;
91
101
  // An `Undo` that names which actor was followed unfollows exactly that one;
92
102
  // one that does not — the object arrived as a bare id nothing could
@@ -106,8 +116,13 @@ export async function handleDelete(context, activity) {
106
116
  await logActivity(context, activity, context.recipient ?? undefined);
107
117
  const actor = activity.actorId;
108
118
  const object = activity.objectId;
109
- if (actor === null || object === null || actor.href !== object.href)
119
+ if (actor === null || object === null)
120
+ return;
121
+ if (actor.href !== object.href) {
122
+ // A quote its author deleted is no longer one this site vouches for.
123
+ await revokeQuotes(context.data.config.contentDir, (record) => record.quote === object.href && record.actor === actor.href);
110
124
  return;
125
+ }
111
126
  // An account that is gone is gone from everybody's followers, whichever
112
127
  // inbox the announcement happened to reach.
113
128
  await forget(context, object.href);
@@ -133,6 +148,57 @@ async function forget(context, actorHref, username) {
133
148
  for (const name of usernames)
134
149
  await removeFollower(records, name, actorHref);
135
150
  }
151
+ /**
152
+ * Handle a `QuoteRequest` (FEP-044f): approve a quote of a post this site
153
+ * federates, and refuse anything else.
154
+ *
155
+ * Every federated post is public and advertises `canQuote` for anybody (see
156
+ * `postObject`), so approval is automatic and the one rule is whether the
157
+ * quoted object is such a post. The quote has to live on the requester's own
158
+ * server too, as Mastodon insists of any activity: otherwise anybody could
159
+ * obtain a stamp for somebody else's post. An approval is stored, then sent
160
+ * as the `result` of an `Accept`; a refusal is a `Reject` and stores nothing.
161
+ * Either way the answer comes from the post's author, to the requester.
162
+ */
163
+ export async function handleQuoteRequest(context, request) {
164
+ const { config, store } = context.data;
165
+ const post = request.objectId === null
166
+ ? undefined
167
+ : postByObjectId(store, request.objectId.href, config.baseUrl);
168
+ const author = post === undefined
169
+ ? (userByUsername(config.dataDir, context.recipient ?? '') ?? primaryUser(config.dataDir))
170
+ : documentAuthor(context, post);
171
+ await logActivity(context, request, author?.username);
172
+ if (request.id === null || author === undefined)
173
+ return;
174
+ const requester = await request.getActor(dereference(context));
175
+ if (requester === null || requester.id === null)
176
+ return;
177
+ const quote = request.instrumentId;
178
+ const quotable = post !== undefined &&
179
+ isFederatedDocument(post, store.now()) &&
180
+ quote !== null &&
181
+ quote.origin === requester.id.origin;
182
+ const sender = await senderKeyPairs(context, author);
183
+ const from = actorId(context, author);
184
+ if (!quotable) {
185
+ await context.sendActivity(sender, requester, new Reject({ id: new URL(`#reject/${randomUUID()}`, from), actor: from, object: request }));
186
+ return;
187
+ }
188
+ const record = await authorizeQuote(config.contentDir, author.username, {
189
+ quote: quote.href,
190
+ post: postObjectId(post, config.baseUrl),
191
+ request: request.id.href,
192
+ actor: requester.id.href,
193
+ });
194
+ const stamp = quoteAuthorization(context, author, record);
195
+ await context.sendActivity(sender, requester, new Accept({
196
+ id: new URL(`#accept/${randomUUID()}`, from),
197
+ actor: from,
198
+ object: request,
199
+ result: stamp,
200
+ }));
201
+ }
136
202
  /**
137
203
  * Handle an `Accept`: a relay agreeing to the subscription the site asked for.
138
204
  *
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/federation/inbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/federation/inbox.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export { actorAliases, actorId, avatarUrl, keyIdFor, mainKeyId, multikeyId, senderKeyPairs, userActor, userByUsername, } from './actor.ts';
2
2
  export type { UserActorOptions } from './actor.ts';
3
- export { articleObjectId, documentAuthor, isFederatedDocument, postArticle, postCreateActivity, postDeleteActivity, postUpdateActivity, SOURCE_MEDIA_TYPE, toInstant, } from './article.ts';
3
+ export { articleObjectId, documentAuthor, isFederatedDocument, postCreateActivity, postDeleteActivity, postObject, postUpdateActivity, SOURCE_MEDIA_TYPE, toInstant, } from './article.ts';
4
4
  export { createDeliveryService, deliveryTargets, groupByInbox } from './delivery.ts';
5
5
  export type { CreateDeliveryServiceOptions, DeliveryLogger, DeliveryReport, DeliveryService, DeliveryTarget, } from './delivery.ts';
6
6
  export { createSiteFederation, federatedPost, outboxPage, OUTBOX_PAGE_SIZE, SOFTWARE_NAME, } from './federation.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/federation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,cAAc,EACd,SAAS,EACT,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACrF,YAAY,EACV,4BAA4B,EAC5B,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,2BAA2B,EAC3B,qBAAqB,EACrB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,qBAAqB,EACrB,WAAW,EACX,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,EACd,SAAS,EACT,UAAU,EACV,eAAe,EACf,YAAY,EACZ,wBAAwB,EACxB,aAAa,EACb,YAAY,EACZ,wBAAwB,EACxB,cAAc,EACd,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACvF,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,yBAAyB,EACzB,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC1F,YAAY,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,gCAAgC,EAChC,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,GACf,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/federation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,cAAc,EACd,SAAS,EACT,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACrF,YAAY,EACV,4BAA4B,EAC5B,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,2BAA2B,EAC3B,qBAAqB,EACrB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,qBAAqB,EACrB,WAAW,EACX,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,EACd,SAAS,EACT,UAAU,EACV,eAAe,EACf,YAAY,EACZ,wBAAwB,EACxB,aAAa,EACb,YAAY,EACZ,wBAAwB,EACxB,cAAc,EACd,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACvF,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,yBAAyB,EACzB,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC1F,YAAY,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,gCAAgC,EAChC,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,GACf,MAAM,gBAAgB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export { actorAliases, actorId, avatarUrl, keyIdFor, mainKeyId, multikeyId, senderKeyPairs, userActor, userByUsername, } from './actor.js';
2
- export { articleObjectId, documentAuthor, isFederatedDocument, postArticle, postCreateActivity, postDeleteActivity, postUpdateActivity, SOURCE_MEDIA_TYPE, toInstant, } from './article.js';
2
+ export { articleObjectId, documentAuthor, isFederatedDocument, postCreateActivity, postDeleteActivity, postObject, postUpdateActivity, SOURCE_MEDIA_TYPE, toInstant, } from './article.js';
3
3
  export { createDeliveryService, deliveryTargets, groupByInbox } from './delivery.js';
4
4
  export { createSiteFederation, federatedPost, outboxPage, OUTBOX_PAGE_SIZE, SOFTWARE_NAME, } from './federation.js';
5
5
  export { ExistingKeyPairError, importWordPressActor, UnusableKeyPemError, } from './import-wordpress.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/federation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,cAAc,EACd,SAAS,EACT,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAQrF,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,EACd,SAAS,EACT,UAAU,EACV,eAAe,EACf,YAAY,EACZ,wBAAwB,EACxB,aAAa,EACb,YAAY,EACZ,wBAAwB,EACxB,cAAc,EACd,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEvF,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC;AAOrB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE1F,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/federation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,cAAc,EACd,SAAS,EACT,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAQrF,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,EACd,SAAS,EACT,UAAU,EACV,eAAe,EACf,YAAY,EACZ,wBAAwB,EACxB,aAAa,EACb,YAAY,EACZ,wBAAwB,EACxB,cAAc,EACd,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEvF,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC;AAOrB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE1F,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC"}