@geekity/cms 0.15.0 → 0.17.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 (147) hide show
  1. package/README.md +108 -0
  2. package/admin/pages/documents/editor.njk +51 -0
  3. package/admin/pages/documents/syndication.njk +110 -0
  4. package/admin/pages/federation/followers.njk +7 -0
  5. package/admin/pages/users/activity-entry.njk +58 -0
  6. package/admin/pages/users/activity.njk +66 -0
  7. package/admin/static/admin.css +11 -0
  8. package/dist/admin/documents.d.ts +101 -0
  9. package/dist/admin/documents.d.ts.map +1 -1
  10. package/dist/admin/documents.js +199 -67
  11. package/dist/admin/documents.js.map +1 -1
  12. package/dist/admin/federation.d.ts +15 -0
  13. package/dist/admin/federation.d.ts.map +1 -1
  14. package/dist/admin/federation.js +19 -0
  15. package/dist/admin/federation.js.map +1 -1
  16. package/dist/admin/menu.d.ts.map +1 -1
  17. package/dist/admin/menu.js +7 -1
  18. package/dist/admin/menu.js.map +1 -1
  19. package/dist/admin/photo-field.d.ts +39 -0
  20. package/dist/admin/photo-field.d.ts.map +1 -0
  21. package/dist/admin/photo-field.js +91 -0
  22. package/dist/admin/photo-field.js.map +1 -0
  23. package/dist/admin/preview.d.ts.map +1 -1
  24. package/dist/admin/preview.js +6 -1
  25. package/dist/admin/preview.js.map +1 -1
  26. package/dist/admin/routes.d.ts.map +1 -1
  27. package/dist/admin/routes.js +8 -0
  28. package/dist/admin/routes.js.map +1 -1
  29. package/dist/admin/syndication-targets.d.ts +57 -0
  30. package/dist/admin/syndication-targets.d.ts.map +1 -0
  31. package/dist/admin/syndication-targets.js +266 -0
  32. package/dist/admin/syndication-targets.js.map +1 -0
  33. package/dist/admin/templates.d.ts +3 -0
  34. package/dist/admin/templates.d.ts.map +1 -1
  35. package/dist/admin/templates.js +3 -0
  36. package/dist/admin/templates.js.map +1 -1
  37. package/dist/admin/uploads.d.ts +6 -0
  38. package/dist/admin/uploads.d.ts.map +1 -1
  39. package/dist/admin/uploads.js +1 -1
  40. package/dist/admin/uploads.js.map +1 -1
  41. package/dist/admin/users.d.ts +8 -0
  42. package/dist/admin/users.d.ts.map +1 -1
  43. package/dist/admin/users.js +8 -0
  44. package/dist/admin/users.js.map +1 -1
  45. package/dist/content/citation.d.ts +36 -0
  46. package/dist/content/citation.d.ts.map +1 -0
  47. package/dist/content/citation.js +31 -0
  48. package/dist/content/citation.js.map +1 -0
  49. package/dist/content/index.d.ts +2 -0
  50. package/dist/content/index.d.ts.map +1 -1
  51. package/dist/content/index.js +1 -0
  52. package/dist/content/index.js.map +1 -1
  53. package/dist/content/photo.d.ts +45 -0
  54. package/dist/content/photo.d.ts.map +1 -0
  55. package/dist/content/photo.js +55 -0
  56. package/dist/content/photo.js.map +1 -0
  57. package/dist/content/post-type.d.ts +20 -8
  58. package/dist/content/post-type.d.ts.map +1 -1
  59. package/dist/content/post-type.js +17 -0
  60. package/dist/content/post-type.js.map +1 -1
  61. package/dist/env.d.ts +7 -0
  62. package/dist/env.d.ts.map +1 -1
  63. package/dist/federation/article.d.ts.map +1 -1
  64. package/dist/federation/article.js +59 -5
  65. package/dist/federation/article.js.map +1 -1
  66. package/dist/federation/citations.d.ts +38 -0
  67. package/dist/federation/citations.d.ts.map +1 -0
  68. package/dist/federation/citations.js +98 -0
  69. package/dist/federation/citations.js.map +1 -0
  70. package/dist/federation/delivery.d.ts.map +1 -1
  71. package/dist/federation/delivery.js +79 -31
  72. package/dist/federation/delivery.js.map +1 -1
  73. package/dist/images/alt-text.d.ts +6 -0
  74. package/dist/images/alt-text.d.ts.map +1 -1
  75. package/dist/images/alt-text.js +10 -0
  76. package/dist/images/alt-text.js.map +1 -1
  77. package/dist/index.d.ts +4 -4
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +25 -2
  80. package/dist/index.js.map +1 -1
  81. package/dist/indieauth/activity-log.d.ts +112 -0
  82. package/dist/indieauth/activity-log.d.ts.map +1 -0
  83. package/dist/indieauth/activity-log.js +325 -0
  84. package/dist/indieauth/activity-log.js.map +1 -0
  85. package/dist/indieauth/app-activity.d.ts +14 -0
  86. package/dist/indieauth/app-activity.d.ts.map +1 -0
  87. package/dist/indieauth/app-activity.js +106 -0
  88. package/dist/indieauth/app-activity.js.map +1 -0
  89. package/dist/indieauth/bearer.d.ts +6 -1
  90. package/dist/indieauth/bearer.d.ts.map +1 -1
  91. package/dist/indieauth/bearer.js +40 -12
  92. package/dist/indieauth/bearer.js.map +1 -1
  93. package/dist/indieauth/consent.d.ts.map +1 -1
  94. package/dist/indieauth/consent.js +5 -2
  95. package/dist/indieauth/consent.js.map +1 -1
  96. package/dist/indieauth/discovery.d.ts +10 -4
  97. package/dist/indieauth/discovery.d.ts.map +1 -1
  98. package/dist/indieauth/discovery.js +22 -7
  99. package/dist/indieauth/discovery.js.map +1 -1
  100. package/dist/indieauth/token.d.ts.map +1 -1
  101. package/dist/indieauth/token.js +3 -1
  102. package/dist/indieauth/token.js.map +1 -1
  103. package/dist/micropub/create.d.ts +56 -0
  104. package/dist/micropub/create.d.ts.map +1 -0
  105. package/dist/micropub/create.js +200 -0
  106. package/dist/micropub/create.js.map +1 -0
  107. package/dist/micropub/endpoint.d.ts +21 -0
  108. package/dist/micropub/endpoint.d.ts.map +1 -0
  109. package/dist/micropub/endpoint.js +354 -0
  110. package/dist/micropub/endpoint.js.map +1 -0
  111. package/dist/micropub/media.d.ts +14 -0
  112. package/dist/micropub/media.d.ts.map +1 -0
  113. package/dist/micropub/media.js +94 -0
  114. package/dist/micropub/media.js.map +1 -0
  115. package/dist/micropub/update.d.ts +44 -0
  116. package/dist/micropub/update.d.ts.map +1 -0
  117. package/dist/micropub/update.js +133 -0
  118. package/dist/micropub/update.js.map +1 -0
  119. package/dist/web/context.d.ts +42 -3
  120. package/dist/web/context.d.ts.map +1 -1
  121. package/dist/web/context.js +41 -1
  122. package/dist/web/context.js.map +1 -1
  123. package/dist/web/render.d.ts +15 -0
  124. package/dist/web/render.d.ts.map +1 -1
  125. package/dist/web/render.js +16 -0
  126. package/dist/web/render.js.map +1 -1
  127. package/dist/web/routes.js +2 -2
  128. package/dist/webmention/index.d.ts +2 -0
  129. package/dist/webmention/index.d.ts.map +1 -1
  130. package/dist/webmention/index.js +1 -0
  131. package/dist/webmention/index.js.map +1 -1
  132. package/dist/webmention/service.d.ts.map +1 -1
  133. package/dist/webmention/service.js +96 -18
  134. package/dist/webmention/service.js.map +1 -1
  135. package/dist/webmention/syndication.d.ts +135 -0
  136. package/dist/webmention/syndication.d.ts.map +1 -0
  137. package/dist/webmention/syndication.js +337 -0
  138. package/dist/webmention/syndication.js.map +1 -0
  139. package/package.json +1 -1
  140. package/themes/default/README.md +40 -9
  141. package/themes/default/layouts/post.njk +19 -6
  142. package/themes/default/partials/citations.njk +17 -0
  143. package/themes/default/partials/jsonld.njk +12 -1
  144. package/themes/default/partials/photos.njk +10 -0
  145. package/themes/default/partials/post-list.njk +7 -0
  146. package/themes/default/src/style.css +9 -0
  147. package/themes/default/static/style.css +16 -0
@@ -3,7 +3,9 @@ import { Temporal as TemporalPolyfill } from '@js-temporal/polyfill';
3
3
  import path from 'node:path';
4
4
  import { listUsers, primaryUser } from '../admin/accounts.js';
5
5
  import { readSiteSettings, taxonomyBasesFromSettings } from '../admin/settings.js';
6
- import { enclosureOf, playsAsVideo } from '../content/enclosure.js';
6
+ import { citationsOf } from '../content/citation.js';
7
+ import { enclosureOf, isUploadUrl, playsAsVideo } from '../content/enclosure.js';
8
+ import { photoAlt, photosOf } from '../content/photo.js';
7
9
  import { canonicalType, UPLOAD_MEDIA_TYPES } from '../content/media.js';
8
10
  import { readAltTexts } from '../images/alt-text.js';
9
11
  import { imagesIn } from '../images/markup.js';
@@ -86,10 +88,17 @@ const OBJECT_TYPES = { Note, Article };
86
88
  /**
87
89
  * The object type each discovered post type federates as: the rows of Post
88
90
  * Type Discovery's own AS2 mapping (section 6) that this site has post types
89
- * for. A reply is a `Note` even with a title of its own (decision-18).
91
+ * for. A reply is a `Note` even with a title of its own (decision-18), and so
92
+ * is a photo post, whose photos are its attachments (TASK-166).
90
93
  */
91
94
  const OBJECT_TYPE_OF = {
95
+ // A like or a repost of a fediverse object goes as a `Like` or an
96
+ // `Announce` instead (decision-28); this is the object its permalink serves.
97
+ repost: 'Note',
98
+ like: 'Note',
99
+ bookmark: 'Note',
92
100
  reply: 'Note',
101
+ photo: 'Note',
93
102
  note: 'Note',
94
103
  article: 'Article',
95
104
  };
@@ -168,6 +177,7 @@ export function postObject(context, document) {
168
177
  interactionPolicy: QUOTABLE_BY_ANYONE,
169
178
  attachments: [
170
179
  ...recordingAttachment(document, baseUrl),
180
+ ...photoAttachments(document, context.data.config),
171
181
  ...imageAttachments(document, context.data.config),
172
182
  ],
173
183
  // Both taxonomies become hashtags: a relay or a search that keys on a
@@ -179,14 +189,17 @@ export function postObject(context, document) {
179
189
  ],
180
190
  };
181
191
  if (postObjectType(document) === 'Note') {
182
- return new Note({ ...common, contents: inLanguage(noteContent(document), language) });
192
+ return new Note({
193
+ ...common,
194
+ contents: inLanguage(citing(document) + noteContent(document), language),
195
+ });
183
196
  }
184
197
  const summary = feedExcerpt(document);
185
198
  return new Article({
186
199
  ...common,
187
200
  name: document.title === '' ? null : document.title,
188
201
  summaries: summary === '' ? [] : inLanguage(summary, language),
189
- contents: inLanguage(document.html, language),
202
+ contents: inLanguage(citing(document) + document.html, language),
190
203
  });
191
204
  }
192
205
  /**
@@ -222,6 +235,28 @@ function recordingAttachment(document, baseUrl) {
222
235
  };
223
236
  return [playsAsVideo(enclosure.type) ? new Video(values) : new Audio(values)];
224
237
  }
238
+ /**
239
+ * Each of the post's photos (TASK-166), as an `Image` whose `name` is its alt
240
+ * text, the media library's when the post gives none.
241
+ *
242
+ * They go after the recording and before the body's images, because they are
243
+ * what a photo post is. A photo from another site is attached without a media
244
+ * type, which this site cannot check.
245
+ */
246
+ function photoAttachments(document, config) {
247
+ const library = readAltTexts(config.contentDir);
248
+ return photosOf(document.extra).map((photo) => {
249
+ const media = isUploadUrl(photo.url)
250
+ ? UPLOAD_MEDIA_TYPES.get(path.extname(photo.url).toLowerCase())
251
+ : undefined;
252
+ const alt = photoAlt(photo, library) ?? '';
253
+ return new Image({
254
+ url: new URL(absoluteUrl(photo.url, config.baseUrl)),
255
+ mediaType: media?.kind === 'image' ? (canonicalType(media) ?? null) : null,
256
+ name: alt === '' ? null : alt,
257
+ });
258
+ });
259
+ }
225
260
  /**
226
261
  * Each image the post shows from the site's own uploads, as an `Image` whose
227
262
  * `name` is its alt text (TASK-141).
@@ -234,9 +269,11 @@ function recordingAttachment(document, baseUrl) {
234
269
  */
235
270
  function imageAttachments(document, config) {
236
271
  const library = readAltTexts(config.contentDir);
272
+ // A photo shown again in the body is already attached.
273
+ const photos = new Set(photosOf(document.extra).map((photo) => photo.url));
237
274
  const attachments = [];
238
275
  for (const image of imagesIn(document.html)) {
239
- if (image.source === undefined)
276
+ if (image.source === undefined || photos.has(image.src))
240
277
  continue;
241
278
  if (library.get(image.source)?.kind === 'decorative')
242
279
  continue;
@@ -256,6 +293,23 @@ function imageAttachments(document, config) {
256
293
  const QUOTABLE_BY_ANYONE = new InteractionPolicy({
257
294
  canQuote: new InteractionRule({ automaticApproval: PUBLIC_COLLECTION }),
258
295
  });
296
+ /**
297
+ * What a like, a repost or a bookmark cites, as a line linking each page
298
+ * (decision-28): the words a peer shows, since a `Note` has no field for it.
299
+ */
300
+ function citing(document) {
301
+ return citationsOf(document.extra)
302
+ .map(({ property, url }) => {
303
+ const href = escapeHtml(url).replaceAll('"', '"');
304
+ return `<p>${CITING_VERBS[property]} <a href="${href}">${escapeHtml(url)}</a></p>\n`;
305
+ })
306
+ .join('');
307
+ }
308
+ const CITING_VERBS = {
309
+ 'repost-of': 'Reposted',
310
+ 'like-of': 'Liked',
311
+ 'bookmark-of': 'Bookmarked',
312
+ };
259
313
  /** A note's HTML: its title first when its text does not already open with it. */
260
314
  function noteContent(document) {
261
315
  const title = document.title.trim();
@@ -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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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * How a like or a repost federates (decision-28): as the `Like` or `Announce`
3
+ * of the fediverse object it cites, when what it cites is one. Every other
4
+ * post, a bookmark included, federates as the `Note` or `Article` it is, whose
5
+ * content links the page it cites.
6
+ */
7
+ import type { Context } from '@fedify/fedify';
8
+ import { Announce, Like, Undo } from '@fedify/vocab';
9
+ import type { Actor } from '@fedify/vocab';
10
+ import type { Document } from '../content/document.ts';
11
+ import type { FederationContextData } from './federation.ts';
12
+ export type CitingActivity = Like | Announce;
13
+ /** A like or a repost of a fediverse object, and the author it goes to. */
14
+ export interface Citing {
15
+ readonly activity: CitingActivity;
16
+ /** Who wrote the object, when they say, so they hear about it. */
17
+ readonly author: Actor | undefined;
18
+ }
19
+ /**
20
+ * The `Like` or `Announce` a post sends, or `undefined` for a post that is no
21
+ * like or repost, or whose target is not a fediverse object this site can
22
+ * fetch: a page with no ActivityPub form, an actor, or a host that does not
23
+ * answer.
24
+ *
25
+ * The object is named by the id its server gives it, not by the URL the post
26
+ * cites, because a status's page and its id are often two URLs. The fetch is
27
+ * signed as the post's author, as a server in authorized fetch mode needs.
28
+ * The activity id carries that object id, so a like moved to another target
29
+ * is a second activity rather than one a peer has already seen.
30
+ */
31
+ export declare function citingActivity(context: Context<FederationContextData>, document: Document): Promise<Citing | undefined>;
32
+ /**
33
+ * The `Undo` that takes a like or a repost back, addressed as the activity
34
+ * it undoes was. `revision` is the moment, as a `Delete`'s is, since a post
35
+ * can be liked, taken back and liked again.
36
+ */
37
+ export declare function undoActivity(activity: CitingActivity, revision: string): Undo;
38
+ //# sourceMappingURL=citations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citations.d.ts","sourceRoot":"","sources":["../../src/federation/citations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAW,IAAI,EAAqB,IAAI,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,QAAQ,CAAC;AAE7C,2EAA2E;AAC3E,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,SAAS,CAAC;CACpC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuD7B;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAW7E"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * How a like or a repost federates (decision-28): as the `Like` or `Announce`
3
+ * of the fediverse object it cites, when what it cites is one. Every other
4
+ * post, a bookmark included, federates as the `Note` or `Article` it is, whose
5
+ * content links the page it cites.
6
+ */
7
+ import { Announce, isActor, Like, PUBLIC_COLLECTION, Undo } from '@fedify/vocab';
8
+ import { citationOf } from '../content/citation.js';
9
+ import { postTypeOf } from '../content/post-type.js';
10
+ import { actorId, senderKeyPairs } from './actor.js';
11
+ import { articleObjectId, documentAuthor, toInstant } from './article.js';
12
+ /**
13
+ * The `Like` or `Announce` a post sends, or `undefined` for a post that is no
14
+ * like or repost, or whose target is not a fediverse object this site can
15
+ * fetch: a page with no ActivityPub form, an actor, or a host that does not
16
+ * answer.
17
+ *
18
+ * The object is named by the id its server gives it, not by the URL the post
19
+ * cites, because a status's page and its id are often two URLs. The fetch is
20
+ * signed as the post's author, as a server in authorized fetch mode needs.
21
+ * The activity id carries that object id, so a like moved to another target
22
+ * is a second activity rather than one a peer has already seen.
23
+ */
24
+ export async function citingActivity(context, document) {
25
+ const postType = postTypeOf(document);
26
+ if (postType !== 'like' && postType !== 'repost')
27
+ return undefined;
28
+ const target = citationOf(document, postType === 'like' ? 'like-of' : 'repost-of');
29
+ const user = documentAuthor(context, document);
30
+ if (target === undefined || user === undefined)
31
+ return undefined;
32
+ const [key] = await senderKeyPairs(context, user);
33
+ const loaders = {
34
+ documentLoader: key === undefined ? context.documentLoader : context.getDocumentLoader(key),
35
+ contextLoader: context.contextLoader,
36
+ };
37
+ let object;
38
+ try {
39
+ object = await context.lookupObject(target, loaders);
40
+ }
41
+ catch {
42
+ return undefined;
43
+ }
44
+ if (object === null || isActor(object) || object.id === null)
45
+ return undefined;
46
+ let author;
47
+ try {
48
+ const attributed = await object.getAttribution(loaders);
49
+ author = isActor(attributed) && attributed.inboxId !== null ? attributed : undefined;
50
+ }
51
+ catch {
52
+ author = undefined;
53
+ }
54
+ const actor = actorId(context, user);
55
+ const followers = context.getFollowersUri(user.username);
56
+ const authorId = author?.id ?? undefined;
57
+ const postId = articleObjectId(context, document);
58
+ const common = {
59
+ actor,
60
+ object: object.id,
61
+ published: toInstant(document.date) ?? null,
62
+ };
63
+ const of = encodeURIComponent(object.id.href);
64
+ // A repost is public, as a boost is; a like is addressed to the one who
65
+ // wrote what it likes, and copied to the followers as every activity is.
66
+ const activity = postType === 'repost'
67
+ ? new Announce({
68
+ ...common,
69
+ id: new URL(`${postId.href}#announce/${of}`),
70
+ to: PUBLIC_COLLECTION,
71
+ ccs: authorId === undefined ? [followers] : [followers, authorId],
72
+ })
73
+ : new Like({
74
+ ...common,
75
+ id: new URL(`${postId.href}#like/${of}`),
76
+ tos: authorId === undefined ? [] : [authorId],
77
+ cc: followers,
78
+ });
79
+ return { activity, author };
80
+ }
81
+ /**
82
+ * The `Undo` that takes a like or a repost back, addressed as the activity
83
+ * it undoes was. `revision` is the moment, as a `Delete`'s is, since a post
84
+ * can be liked, taken back and liked again.
85
+ */
86
+ export function undoActivity(activity, revision) {
87
+ if (activity.id === null || activity.actorId === null) {
88
+ throw new TypeError('Only an activity with an id and an actor can be undone.');
89
+ }
90
+ return new Undo({
91
+ id: new URL(`${activity.id.href.replace(/#.*$/, '')}#undo/${encodeURIComponent(revision)}`),
92
+ actor: activity.actorId,
93
+ object: activity,
94
+ tos: activity.toIds,
95
+ ccs: activity.ccIds,
96
+ });
97
+ }
98
+ //# sourceMappingURL=citations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citations.js","sourceRoot":"","sources":["../../src/federation/citations.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../src/federation/delivery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAkB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAazD,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAK7E,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sCAAsC;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,QAAQ,EAAE,CAAC;CAC1C;AAED,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,gDAAgD;AAChD,MAAM,WAAW,4BAA4B;IAC3C,gFAAgF;IAChF,UAAU,EAAE,cAAc,CAAC;IAC3B,sCAAsC;IACtC,KAAK,EAAE,UAAU,CAAC;IAClB,yEAAyE;IACzE,KAAK,EAAE,YAAY,CAAC;IACpB,uDAAuD;IACvD,MAAM,EAAE,cAAc,CAAC;IACvB,gFAAgF;IAChF,aAAa,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACtD,0DAA0D;IAC1D,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C;;;;;;;;OAQG;IACH,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAC7D;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAC1D,4EAA4E;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,eAAe,CAgW5F;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAuBrF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAWpF"}
1
+ {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../src/federation/delivery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAkB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAazD,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAO7E,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sCAAsC;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,QAAQ,EAAE,CAAC;CAC1C;AAED,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,gDAAgD;AAChD,MAAM,WAAW,4BAA4B;IAC3C,gFAAgF;IAChF,UAAU,EAAE,cAAc,CAAC;IAC3B,sCAAsC;IACtC,KAAK,EAAE,UAAU,CAAC;IAClB,yEAAyE;IACzE,KAAK,EAAE,YAAY,CAAC;IACpB,uDAAuD;IACvD,MAAM,EAAE,cAAc,CAAC;IACvB,gFAAgF;IAChF,aAAa,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACtD,0DAA0D;IAC1D,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C;;;;;;;;OAQG;IACH,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAC7D;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAC1D,4EAA4E;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,eAAe,CA+Y5F;AAiCD;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAuBrF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAWpF"}
@@ -7,6 +7,7 @@ import { documentContent } from '../content/writer.js';
7
7
  import { authorNames } from '../web/authors.js';
8
8
  import { ActorUpdate, actorId, senderKeyPairs, userActor } from './actor.js';
9
9
  import { articleObjectId, documentAuthor, isFederatedDocument, postCreateActivity, postDeleteActivity, postPinActivity, postUpdateActivity, } from './article.js';
10
+ import { citingActivity, undoActivity } from './citations.js';
10
11
  import { followerRecipient } from './followers.js';
11
12
  import { updateActivityId } from './paths.js';
12
13
  import { acceptedRelays, relayRecipient } from './relays.js';
@@ -94,7 +95,7 @@ export function createDeliveryService(options) {
94
95
  * because the activity itself is not kept: it is rebuilt from the file
95
96
  * whenever it is wanted again (decision-9).
96
97
  */
97
- async function send(context, activity, about) {
98
+ async function send(context, activity, about, also = []) {
98
99
  const activityId = activity.id?.href;
99
100
  if (activityId === undefined) {
100
101
  throw new TypeError('An activity cannot be delivered without an id.');
@@ -109,7 +110,34 @@ export function createDeliveryService(options) {
109
110
  activityType: typeNameOf(activity),
110
111
  objectId: articleObjectId(context, about).href,
111
112
  slug: about.slug,
112
- });
113
+ }, also);
114
+ }
115
+ /**
116
+ * What a version of a post is to a peer: the `Like` or `Announce` of the
117
+ * fediverse object it cites, or the object it is (decision-28). Asked of
118
+ * the post as it reads now, so a target that stops answering makes it the
119
+ * object again.
120
+ */
121
+ async function shapeOf(context, document) {
122
+ const citing = await citingActivity(context, document);
123
+ return citing === undefined
124
+ ? { kind: 'object', id: articleObjectId(context, document).href }
125
+ : { kind: 'citing', id: citing.activity.id?.href ?? '', citing };
126
+ }
127
+ /** Tell the peers a post is out: its `Create`, or its `Like` or `Announce`. */
128
+ async function announce(context, document, shape) {
129
+ if (shape.kind === 'object') {
130
+ return await send(context, postCreateActivity(context, document), document);
131
+ }
132
+ return await send(context, shape.citing.activity, document, citedAuthor(shape.citing));
133
+ }
134
+ /** Take a post back: a `Delete` of its object, or an `Undo` of its `Like` or `Announce`. */
135
+ async function withdraw(context, document, shape) {
136
+ const deleted = new Date().toISOString();
137
+ if (shape.kind === 'object') {
138
+ return await send(context, postDeleteActivity(context, document, deleted), document);
139
+ }
140
+ return await send(context, undoActivity(shape.citing.activity, deleted), document, citedAuthor(shape.citing));
113
141
  }
114
142
  /**
115
143
  * Deliver one activity to every follower and every accepted relay, one inbox
@@ -125,10 +153,14 @@ export function createDeliveryService(options) {
125
153
  * rather than `{ identifier }`: doc-8 makes that the one shape a stored
126
154
  * actor id can sign under.
127
155
  */
128
- async function fanOut(context, sender, activity, about) {
156
+ async function fanOut(context, sender, activity, about, also = []) {
129
157
  const deliveries = [];
130
158
  const keys = await senderKeyPairs(context, sender);
131
- for (const target of deliveryTargets(admin, sender.username)) {
159
+ const targets = deliveryTargets(admin, sender.username);
160
+ // One POST to an inbox the followers already share is enough.
161
+ const reached = new Set(targets.map((target) => target.inboxId));
162
+ targets.push(...also.filter((target) => !reached.has(target.inboxId)));
163
+ for (const target of targets) {
132
164
  let status = synchronous ? 'sent' : 'queued';
133
165
  let error = null;
134
166
  try {
@@ -202,32 +234,29 @@ export function createDeliveryService(options) {
202
234
  // stood, and the only version there is to build a Tombstone from.
203
235
  if (before === undefined)
204
236
  return;
205
- const deleted = new Date().toISOString();
206
- queue(() => send(context, postDeleteActivity(context, before, deleted), before));
237
+ queue(async () => await withdraw(context, before, await shapeOf(context, before)));
207
238
  return;
208
239
  }
209
- {
210
- const stamped = await stamp(after);
211
- if (before === undefined) {
212
- queue(() => send(context, postCreateActivity(context, stamped), stamped));
213
- queuePinChange(context, undefined, stamped);
214
- return;
215
- }
216
- // Almost always the same id, because the stamped one follows the post
217
- // through a rename. When it is not — a post federated before this
218
- // version, renamed since — the old object is withdrawn rather than
219
- // left standing under an id nothing answers to any more.
220
- const previousId = articleObjectId(context, before).href;
221
- if (previousId === articleObjectId(context, stamped).href) {
222
- queue(() => send(context, postUpdateActivity(context, stamped), stamped));
223
- queuePinChange(context, before, stamped);
224
- return;
240
+ const stamped = await stamp(after);
241
+ // The same object after a save is an `Update`, or nothing at all for a
242
+ // like or a repost, which has no content of its own to update. Anything
243
+ // else, a rename or a change of what it cites, takes the old version back
244
+ // before the new one goes out.
245
+ const sameId = before !== undefined && sameObject(context, before, stamped);
246
+ queue(async () => {
247
+ const is = await shapeOf(context, stamped);
248
+ if (before === undefined)
249
+ return await announce(context, stamped, is);
250
+ const was = await shapeOf(context, before);
251
+ if (was.kind === is.kind && was.id === is.id) {
252
+ if (is.kind === 'citing')
253
+ return undefined;
254
+ return await send(context, postUpdateActivity(context, stamped), stamped);
225
255
  }
226
- const deleted = new Date().toISOString();
227
- queue(() => send(context, postDeleteActivity(context, before, deleted), before));
228
- queue(() => send(context, postCreateActivity(context, stamped), stamped));
229
- queuePinChange(context, undefined, stamped);
230
- }
256
+ await withdraw(context, before, was);
257
+ return await announce(context, stamped, is);
258
+ });
259
+ queuePinChange(context, sameId ? before : undefined, stamped);
231
260
  },
232
261
  async updateActor(user) {
233
262
  // Building the actor loads — and on a cold database generates — the key
@@ -284,12 +313,14 @@ export function createDeliveryService(options) {
284
313
  // A draft, a trashed post, or one re-dated into the future: every
285
314
  // one of them is gone as far as a follower is concerned, and the
286
315
  // file still carries the id their copy is filed under.
287
- return await send(context, postDeleteActivity(context, document, new Date().toISOString()), document);
316
+ return await withdraw(context, document, await shapeOf(context, document));
288
317
  }
289
318
  const stamped = await stamp(document);
290
- if (!announced) {
291
- return await send(context, postCreateActivity(context, stamped), stamped);
292
- }
319
+ const shape = await shapeOf(context, stamped);
320
+ // A like or a repost is sent again as it is: its id is one a peer
321
+ // that already holds it recognises, and one that missed it does not.
322
+ if (!announced || shape.kind === 'citing')
323
+ return await announce(context, stamped, shape);
293
324
  // The moment rather than the content hash, which is what a save uses:
294
325
  // the point of a resend is that the followers hear about a revision
295
326
  // they have already been sent and ignored, or never received at all,
@@ -314,6 +345,23 @@ export function createDeliveryService(options) {
314
345
  });
315
346
  }
316
347
  }
348
+ /** The author of what a like or a repost cites, as one more inbox to tell. */
349
+ function citedAuthor(citing) {
350
+ const { author } = citing;
351
+ if (author?.id == null || author.inboxId === null)
352
+ return [];
353
+ return [
354
+ {
355
+ inboxId: (author.endpoints?.sharedInbox ?? author.inboxId).href,
356
+ recipients: [author],
357
+ actorIds: [author.id.href],
358
+ },
359
+ ];
360
+ }
361
+ /** Whether two versions of a post are one object to a peer: the same id. */
362
+ function sameObject(context, before, after) {
363
+ return articleObjectId(context, before).href === articleObjectId(context, after).href;
364
+ }
317
365
  /**
318
366
  * Everywhere one public activity goes: one user's followers, grouped by the
319
367
  * inbox they share, and every accepted relay.
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../src/federation/delivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../src/federation/delivery.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { Photo } from '../content/photo.ts';
1
2
  /**
2
3
  * Alt text for the media library.
3
4
  *
@@ -48,4 +49,9 @@ export interface UndescribedImage {
48
49
  * out the file name.
49
50
  */
50
51
  export declare function undescribedImages(html: string, library: AltTextLibrary): UndescribedImage[];
52
+ /**
53
+ * A post's photos (TASK-166) that nobody has described, neither the post nor
54
+ * the media library.
55
+ */
56
+ export declare function undescribedPhotos(photos: readonly Photo[], library: AltTextLibrary): UndescribedImage[];
51
57
  //# sourceMappingURL=alt-text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alt-text.d.ts","sourceRoot":"","sources":["../../src/images/alt-text.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;GAYG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAE7C,sFAAsF;AACtF,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC;AAEnF,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAI1D,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAW/D;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,GAAG,SAAS,GACvB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,gBAAgB,EAAE,CAI3F"}
1
+ {"version":3,"file":"alt-text.d.ts","sourceRoot":"","sources":["../../src/images/alt-text.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAIjD;;;;;;;;;;;;GAYG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAE7C,sFAAsF;AACtF,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC;AAEnF,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAI1D,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAW/D;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,GAAG,SAAS,GACvB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,gBAAgB,EAAE,CAI3F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,OAAO,EAAE,cAAc,GACtB,gBAAgB,EAAE,CAIpB"}
@@ -1,5 +1,6 @@
1
1
  import path from 'node:path';
2
2
  import { readFileIfPresentSync, updateFileAtomically } from '../files/atomic.js';
3
+ import { photoAlt } from '../content/photo.js';
3
4
  import { imagesIn } from './markup.js';
4
5
  /**
5
6
  * Alt text for the media library.
@@ -60,6 +61,15 @@ export function undescribedImages(html, library) {
60
61
  .filter((image) => !described(image, library))
61
62
  .map((image) => ({ src: image.src, name: imageName(image.src) }));
62
63
  }
64
+ /**
65
+ * A post's photos (TASK-166) that nobody has described, neither the post nor
66
+ * the media library.
67
+ */
68
+ export function undescribedPhotos(photos, library) {
69
+ return photos
70
+ .filter((photo) => photoAlt(photo, library) === undefined)
71
+ .map((photo) => ({ src: photo.url, name: imageName(photo.url) }));
72
+ }
63
73
  function described(image, library) {
64
74
  if (image.alt === undefined)
65
75
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"alt-text.js","sourceRoot":"","sources":["../../src/images/alt-text.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC;;;;;;;;;;;;GAYG;AAEH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAQ7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqD,CAAC;AAE3E,kFAAkF;AAClF,MAAM,UAAU,YAAY,CAAC,UAAkB;IAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAEzC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,MAAM,EAAE,IAAI,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAEjD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAkB,EAClB,MAAc,EACd,GAAwB;IAExB,MAAM,oBAAoB,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE;QAC5D,MAAM,GAAG,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;;YACrC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QACxF,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAUD;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,OAAuB;IACrE,OAAO,QAAQ,CAAC,IAAI,CAAC;SAClB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC7C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,SAAS,CAAC,KAAiB,EAAE,OAAuB;IAC3D,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,YAAY,CAAC;AACxF,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,IAAI,GAAG,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,UAAkB;IACnC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC3C,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAC/B,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"alt-text.js","sourceRoot":"","sources":["../../src/images/alt-text.ts"],"names":[],"mappings":"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"}