@geekity/cms 0.9.0 → 0.11.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 (190) hide show
  1. package/README.md +86 -24
  2. package/admin/components/admin-bar.njk +26 -0
  3. package/admin/components/fields.njk +55 -12
  4. package/admin/components/public-admin-bar.njk +41 -0
  5. package/admin/layouts/base.njk +6 -1
  6. package/admin/layouts/settings-page.njk +7 -2
  7. package/admin/layouts/shell.njk +9 -20
  8. package/admin/pages/account/forgot.njk +1 -1
  9. package/admin/pages/account/login.njk +1 -1
  10. package/admin/pages/account/reset.njk +4 -2
  11. package/admin/pages/account/setup.njk +1 -1
  12. package/admin/pages/dashboard/home.njk +1 -0
  13. package/admin/pages/documents/list.njk +1 -0
  14. package/admin/pages/documents/taxonomy.njk +1 -0
  15. package/admin/pages/federation/followers.njk +3 -0
  16. package/admin/pages/federation/settings.njk +5 -0
  17. package/admin/pages/media/library.njk +39 -0
  18. package/admin/pages/navigation/menus.njk +6 -1
  19. package/admin/pages/settings/discussion.njk +7 -0
  20. package/admin/pages/settings/email.njk +10 -0
  21. package/admin/pages/settings/general.njk +7 -0
  22. package/admin/pages/settings/permalinks.njk +6 -0
  23. package/admin/pages/settings/reading.njk +7 -0
  24. package/admin/pages/tools/content-index.njk +1 -0
  25. package/admin/pages/tools/personal-data.njk +5 -0
  26. package/admin/pages/users/edit.njk +7 -5
  27. package/admin/pages/users/list.njk +1 -0
  28. package/admin/pages/users/new.njk +5 -1
  29. package/admin/static/admin-bar.css +153 -0
  30. package/admin/static/admin.css +95 -96
  31. package/dist/admin/comments.js +2 -1
  32. package/dist/admin/comments.js.map +1 -1
  33. package/dist/admin/documents.d.ts.map +1 -1
  34. package/dist/admin/documents.js +18 -0
  35. package/dist/admin/documents.js.map +1 -1
  36. package/dist/admin/index.d.ts +1 -1
  37. package/dist/admin/index.d.ts.map +1 -1
  38. package/dist/admin/index.js.map +1 -1
  39. package/dist/admin/media.d.ts +13 -2
  40. package/dist/admin/media.d.ts.map +1 -1
  41. package/dist/admin/media.js +58 -3
  42. package/dist/admin/media.js.map +1 -1
  43. package/dist/admin/personal-data.d.ts.map +1 -1
  44. package/dist/admin/personal-data.js +5 -1
  45. package/dist/admin/personal-data.js.map +1 -1
  46. package/dist/admin/preview.d.ts.map +1 -1
  47. package/dist/admin/preview.js +1 -1
  48. package/dist/admin/preview.js.map +1 -1
  49. package/dist/admin/routes.d.ts.map +1 -1
  50. package/dist/admin/routes.js +2 -1
  51. package/dist/admin/routes.js.map +1 -1
  52. package/dist/admin/store.d.ts +36 -1
  53. package/dist/admin/store.d.ts.map +1 -1
  54. package/dist/admin/store.js +63 -1
  55. package/dist/admin/store.js.map +1 -1
  56. package/dist/admin/templates.d.ts +1 -0
  57. package/dist/admin/templates.d.ts.map +1 -1
  58. package/dist/admin/templates.js +1 -0
  59. package/dist/admin/templates.js.map +1 -1
  60. package/dist/admin/tools.d.ts +2 -0
  61. package/dist/admin/tools.d.ts.map +1 -1
  62. package/dist/admin/tools.js +3 -2
  63. package/dist/admin/tools.js.map +1 -1
  64. package/dist/admin/uploads.d.ts +5 -2
  65. package/dist/admin/uploads.d.ts.map +1 -1
  66. package/dist/admin/uploads.js +6 -2
  67. package/dist/admin/uploads.js.map +1 -1
  68. package/dist/comments/index.d.ts +2 -2
  69. package/dist/comments/index.d.ts.map +1 -1
  70. package/dist/comments/index.js +1 -1
  71. package/dist/comments/index.js.map +1 -1
  72. package/dist/comments/records.d.ts +43 -2
  73. package/dist/comments/records.d.ts.map +1 -1
  74. package/dist/comments/records.js +201 -54
  75. package/dist/comments/records.js.map +1 -1
  76. package/dist/comments/routes.js +1 -1
  77. package/dist/comments/routes.js.map +1 -1
  78. package/dist/comments/viewer.d.ts +13 -0
  79. package/dist/comments/viewer.d.ts.map +1 -1
  80. package/dist/comments/viewer.js +13 -1
  81. package/dist/comments/viewer.js.map +1 -1
  82. package/dist/config.d.ts +21 -0
  83. package/dist/config.d.ts.map +1 -1
  84. package/dist/config.js +2 -0
  85. package/dist/config.js.map +1 -1
  86. package/dist/env.d.ts +19 -0
  87. package/dist/env.d.ts.map +1 -1
  88. package/dist/federation/article.d.ts.map +1 -1
  89. package/dist/federation/article.js +37 -1
  90. package/dist/federation/article.js.map +1 -1
  91. package/dist/federation/delivery.d.ts +3 -1
  92. package/dist/federation/delivery.d.ts.map +1 -1
  93. package/dist/federation/delivery.js +6 -1
  94. package/dist/federation/delivery.js.map +1 -1
  95. package/dist/federation/federation.d.ts +3 -0
  96. package/dist/federation/federation.d.ts.map +1 -1
  97. package/dist/federation/federation.js.map +1 -1
  98. package/dist/federation/inbox.d.ts +7 -5
  99. package/dist/federation/inbox.d.ts.map +1 -1
  100. package/dist/federation/inbox.js +15 -32
  101. package/dist/federation/inbox.js.map +1 -1
  102. package/dist/federation/index.d.ts +2 -0
  103. package/dist/federation/index.d.ts.map +1 -1
  104. package/dist/federation/index.js +1 -0
  105. package/dist/federation/index.js.map +1 -1
  106. package/dist/federation/mount.js +6 -1
  107. package/dist/federation/mount.js.map +1 -1
  108. package/dist/federation/profiles.d.ts +95 -0
  109. package/dist/federation/profiles.d.ts.map +1 -0
  110. package/dist/federation/profiles.js +171 -0
  111. package/dist/federation/profiles.js.map +1 -0
  112. package/dist/federation/relays.d.ts +3 -1
  113. package/dist/federation/relays.d.ts.map +1 -1
  114. package/dist/federation/relays.js +6 -1
  115. package/dist/federation/relays.js.map +1 -1
  116. package/dist/federation/replies.d.ts +13 -4
  117. package/dist/federation/replies.d.ts.map +1 -1
  118. package/dist/federation/replies.js +25 -6
  119. package/dist/federation/replies.js.map +1 -1
  120. package/dist/images/alt-text.d.ts +51 -0
  121. package/dist/images/alt-text.d.ts.map +1 -0
  122. package/dist/images/alt-text.js +113 -0
  123. package/dist/images/alt-text.js.map +1 -0
  124. package/dist/images/icons.d.ts.map +1 -1
  125. package/dist/images/icons.js +3 -2
  126. package/dist/images/icons.js.map +1 -1
  127. package/dist/images/index.d.ts +2 -2
  128. package/dist/images/index.d.ts.map +1 -1
  129. package/dist/images/markup.d.ts +26 -4
  130. package/dist/images/markup.d.ts.map +1 -1
  131. package/dist/images/markup.js +36 -15
  132. package/dist/images/markup.js.map +1 -1
  133. package/dist/images/paths.d.ts +11 -0
  134. package/dist/images/paths.d.ts.map +1 -1
  135. package/dist/images/paths.js +17 -1
  136. package/dist/images/paths.js.map +1 -1
  137. package/dist/images/variants.d.ts +13 -3
  138. package/dist/images/variants.d.ts.map +1 -1
  139. package/dist/images/variants.js +13 -11
  140. package/dist/images/variants.js.map +1 -1
  141. package/dist/index.d.ts +11 -5
  142. package/dist/index.d.ts.map +1 -1
  143. package/dist/index.js +50 -11
  144. package/dist/index.js.map +1 -1
  145. package/dist/notifications/routes.js +1 -1
  146. package/dist/notifications/routes.js.map +1 -1
  147. package/dist/privacy/erase.d.ts.map +1 -1
  148. package/dist/privacy/erase.js +2 -3
  149. package/dist/privacy/erase.js.map +1 -1
  150. package/dist/privacy/retention.js +1 -1
  151. package/dist/privacy/retention.js.map +1 -1
  152. package/dist/web/admin-bar.d.ts +21 -0
  153. package/dist/web/admin-bar.d.ts.map +1 -0
  154. package/dist/web/admin-bar.js +145 -0
  155. package/dist/web/admin-bar.js.map +1 -0
  156. package/dist/web/assets.d.ts +29 -1
  157. package/dist/web/assets.d.ts.map +1 -1
  158. package/dist/web/assets.js +48 -3
  159. package/dist/web/assets.js.map +1 -1
  160. package/dist/web/compression.d.ts +19 -0
  161. package/dist/web/compression.d.ts.map +1 -0
  162. package/dist/web/compression.js +160 -0
  163. package/dist/web/compression.js.map +1 -0
  164. package/dist/web/context.d.ts +5 -1
  165. package/dist/web/context.d.ts.map +1 -1
  166. package/dist/web/context.js +5 -2
  167. package/dist/web/context.js.map +1 -1
  168. package/dist/web/conversation.d.ts.map +1 -1
  169. package/dist/web/conversation.js +13 -12
  170. package/dist/web/conversation.js.map +1 -1
  171. package/dist/web/render.d.ts +27 -0
  172. package/dist/web/render.d.ts.map +1 -1
  173. package/dist/web/render.js +77 -38
  174. package/dist/web/render.js.map +1 -1
  175. package/dist/web/routes.d.ts.map +1 -1
  176. package/dist/web/routes.js +63 -28
  177. package/dist/web/routes.js.map +1 -1
  178. package/dist/web/templates.d.ts.map +1 -1
  179. package/dist/web/templates.js +9 -2
  180. package/dist/web/templates.js.map +1 -1
  181. package/dist/webmention/service.d.ts.map +1 -1
  182. package/dist/webmention/service.js +5 -1
  183. package/dist/webmention/service.js.map +1 -1
  184. package/package.json +8 -8
  185. package/themes/default/README.md +176 -19
  186. package/themes/default/layouts/base.njk +51 -10
  187. package/themes/default/layouts/post.njk +10 -1
  188. package/themes/default/partials/comment-form.njk +33 -14
  189. package/themes/default/partials/contact-form.njk +32 -14
  190. package/themes/default/static/style.css +109 -24
@@ -1,4 +1,5 @@
1
- import { createReadStream, statSync } from 'node:fs';
1
+ import { createHash } from 'node:crypto';
2
+ import { createReadStream, readFileSync, statSync } from 'node:fs';
2
3
  import path from 'node:path';
3
4
  import { Readable } from 'node:stream';
4
5
  /** URL prefix the theme's own files are served under. */
@@ -21,8 +22,15 @@ export function findUpload(relative, contentDir) {
21
22
  }
22
23
  /** Directory inside a theme that holds the files served over HTTP. */
23
24
  export const THEME_STATIC_DIR = 'static';
24
- /** How long a browser may keep a theme asset. One hour. */
25
+ /** How long a browser may keep a theme asset at its unhashed URL. One hour. */
25
26
  export const THEME_ASSET_MAX_AGE = 3600;
27
+ /**
28
+ * How long a browser may keep a file whose URL names its bytes. A year, the
29
+ * longest lifetime HTTP caches are asked to honour.
30
+ */
31
+ export const IMMUTABLE_ASSET_MAX_AGE = 31536000;
32
+ /** The query parameter a fingerprinted theme asset URL carries its hash in. */
33
+ export const ASSET_VERSION_PARAM = 'v';
26
34
  /**
27
35
  * Find one file under a list of roots, first root that has it winning.
28
36
  *
@@ -69,6 +77,42 @@ export function findAsset(relative, roots) {
69
77
  export function findThemeAsset(relative, themeDirs) {
70
78
  return findAsset(relative, themeDirs.map((themeDir) => path.join(themeDir, THEME_STATIC_DIR)));
71
79
  }
80
+ /** The lifetime of a response whose URL names its bytes. */
81
+ export const IMMUTABLE_ASSET = {
82
+ maxAge: IMMUTABLE_ASSET_MAX_AGE,
83
+ immutable: true,
84
+ };
85
+ const versions = new Map();
86
+ /**
87
+ * A short hash of an asset's bytes, the part of a fingerprinted URL that
88
+ * changes when the file does.
89
+ *
90
+ * Memoised per file on the size-and-mtime validator, so a page pays a `stat`
91
+ * rather than a read, and an edit in place is seen on the next render with no
92
+ * restart and no watcher.
93
+ */
94
+ export function assetVersion(asset) {
95
+ const known = versions.get(asset.file);
96
+ if (known?.etag === asset.etag)
97
+ return known.version;
98
+ const version = createHash('sha256').update(readFileSync(asset.file)).digest('hex').slice(0, 12);
99
+ versions.set(asset.file, { etag: asset.etag, version });
100
+ return version;
101
+ }
102
+ /**
103
+ * The URL a theme should link one of its files at: under
104
+ * {@link THEME_ASSET_PREFIX} with a hash of the bytes the search path resolves
105
+ * to, so it can be cached for a year and still change the moment the file
106
+ * does. A file no theme has gets its plain URL, which will 404 as it would
107
+ * have anyway.
108
+ */
109
+ export function themeAssetUrl(relative, themeDirs) {
110
+ const pathname = `${THEME_ASSET_PREFIX}${relative.replace(/^\/+/, '')}`;
111
+ const asset = findThemeAsset(relative, themeDirs);
112
+ if (asset === undefined)
113
+ return pathname;
114
+ return `${pathname}?${ASSET_VERSION_PARAM}=${assetVersion(asset)}`;
115
+ }
72
116
  /** The response body and headers for an asset. */
73
117
  export function assetResponse(asset, options = {}) {
74
118
  const body = Readable.toWeb(createReadStream(asset.file));
@@ -102,10 +146,11 @@ export function matchesEtag(ifNoneMatch, etag) {
102
146
  }
103
147
  function assetHeaders(asset, options) {
104
148
  const maxAge = options.maxAge ?? THEME_ASSET_MAX_AGE;
149
+ const immutable = options.immutable === true ? ', immutable' : '';
105
150
  return new Headers({
106
151
  'content-type': asset.contentType,
107
152
  'content-length': String(asset.stats.size),
108
- 'cache-control': `public, max-age=${String(maxAge)}`,
153
+ 'cache-control': `public, max-age=${String(maxAge)}${immutable}`,
109
154
  'last-modified': new Date(asset.stats.mtimeMs).toUTCString(),
110
155
  etag: asset.etag,
111
156
  });
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/web/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAErD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,yDAAyD;AACzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAE/C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAE1C,qFAAqF;AACrF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAE1C,yDAAyD;AACzD,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,UAAkB;IAC7D,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAEzC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAiBxC;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,KAAe;IACzD,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE/C,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAE5C,wEAAwE;QACxE,0CAA0C;QAC1C,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QAEjE,IAAI,KAAY,CAAC;QACjB,IAAI,CAAC;YACH,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,SAAS;QAE9B,OAAO;YACL,IAAI;YACJ,KAAK;YACL,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC;YACjC,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG;SAC/E,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,SAA4B;IAE5B,OAAO,SAAS,CACd,QAAQ,EACR,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CACnE,CAAC;AACJ,CAAC;AAQD,kDAAkD;AAClD,MAAM,UAAU,aAAa,CAAC,KAAkB,EAAE,OAAO,GAAyB,EAAE;IAClF,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAmB,CAAC;IAC5E,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,gBAAgB,CAAC,KAAkB,EAAE,OAAO,GAAyB,EAAE;IACrF,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACjC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC/B,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,kBAAkB,CAAC,KAAiB;IAClD,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,qBAAqB,CAAC,KAAiB;IACrD,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,WAAW,CAAC,WAA+B,EAAE,IAAY;IACvE,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,WAAW;SACf,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SACxD,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,KAAkB,EAAE,OAA6B;IACrE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,mBAAmB,CAAC;IACrD,OAAO,IAAI,OAAO,CAAC;QACjB,cAAc,EAAE,KAAK,CAAC,WAAW;QACjC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1C,eAAe,EAAE,mBAAmB,MAAM,CAAC,MAAM,CAAC,EAAE;QACpD,eAAe,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE;QAC5D,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9C,wEAAwE;IACxE,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,mDAAmD;AACnD,MAAM,aAAa,GAAgC,IAAI,GAAG,CAAC;IACzD,CAAC,MAAM,EAAE,yBAAyB,CAAC;IACnC,CAAC,KAAK,EAAE,gCAAgC,CAAC;IACzC,CAAC,MAAM,EAAE,gCAAgC,CAAC;IAC1C,CAAC,OAAO,EAAE,iCAAiC,CAAC;IAC5C,CAAC,MAAM,EAAE,iCAAiC,CAAC;IAC3C,CAAC,MAAM,EAAE,eAAe,CAAC;IACzB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,MAAM,EAAE,YAAY,CAAC;IACtB,CAAC,OAAO,EAAE,YAAY,CAAC;IACvB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,OAAO,EAAE,YAAY,CAAC;IACvB,CAAC,OAAO,EAAE,YAAY,CAAC;IACvB,CAAC,MAAM,EAAE,cAAc,CAAC;IACxB,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,QAAQ,EAAE,YAAY,CAAC;IACxB,CAAC,MAAM,EAAE,UAAU,CAAC;IACpB,CAAC,MAAM,EAAE,UAAU,CAAC;IACpB,CAAC,MAAM,EAAE,2BAA2B,CAAC;IACrC,CAAC,cAAc,EAAE,2BAA2B,CAAC;CAC9C,CAAC,CAAC;AAEH,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,0BAA0B,CAAC;AAC3F,CAAC"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/web/assets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { MiddlewareHandler } from 'hono';
2
+ /**
3
+ * Below this many bytes a response goes out as it is: the saving is smaller
4
+ * than the encoding's own framing and the CPU it costs.
5
+ */
6
+ export declare const COMPRESSION_THRESHOLD = 1024;
7
+ /**
8
+ * Compress text responses on the way out (TASK-139).
9
+ *
10
+ * Mounted outside every other middleware, so it sees the body the client is
11
+ * about to get. It adds `Vary: Accept-Encoding` to every text response,
12
+ * compressed or not, so a cache never hands brotli to a client that asked for
13
+ * none. A compressed response's ETag is weakened: the encoded octets differ
14
+ * from the plain ones, but the representation is the same, and every
15
+ * `If-None-Match` check in the CMS already compares weakly, so the one
16
+ * validator revalidates in every encoding.
17
+ */
18
+ export declare function compression(): MiddlewareHandler;
19
+ //# sourceMappingURL=compression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/web/compression.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAK9C;;;GAGG;AACH,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAsB1C;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,IAAI,iBAAiB,CAoD/C"}
@@ -0,0 +1,160 @@
1
+ import { promisify } from 'node:util';
2
+ import { brotliCompress, constants, gzip } from 'node:zlib';
3
+ import { ADMIN_ASSET_PREFIX } from '../admin/assets.js';
4
+ import { ADMIN_PREFIX } from '../admin/session.js';
5
+ /**
6
+ * Below this many bytes a response goes out as it is: the saving is smaller
7
+ * than the encoding's own framing and the CPU it costs.
8
+ */
9
+ export const COMPRESSION_THRESHOLD = 1024;
10
+ const ENCODINGS = ['br', 'gzip'];
11
+ /**
12
+ * Media types that are text under another name. Everything `text/*`, `+json`
13
+ * and `+xml` (feeds, ActivityStreams, SVG, the manifest) is text already; the
14
+ * fonts are the two formats that carry no compression of their own.
15
+ */
16
+ const COMPRESSIBLE_TYPES = new Set([
17
+ 'application/json',
18
+ 'application/javascript',
19
+ 'application/xml',
20
+ 'font/otf',
21
+ 'font/ttf',
22
+ ]);
23
+ const brotli = promisify(brotliCompress);
24
+ const gzipAsync = promisify(gzip);
25
+ /**
26
+ * Compress text responses on the way out (TASK-139).
27
+ *
28
+ * Mounted outside every other middleware, so it sees the body the client is
29
+ * about to get. It adds `Vary: Accept-Encoding` to every text response,
30
+ * compressed or not, so a cache never hands brotli to a client that asked for
31
+ * none. A compressed response's ETag is weakened: the encoded octets differ
32
+ * from the plain ones, but the representation is the same, and every
33
+ * `If-None-Match` check in the CMS already compares weakly, so the one
34
+ * validator revalidates in every encoding.
35
+ */
36
+ export function compression() {
37
+ return async (c, next) => {
38
+ await next();
39
+ const response = c.res;
40
+ if (response.status === 304) {
41
+ // A 304 carries no media type to judge by, and a cache copies its
42
+ // headers over the stored response's, so a 304 saying only `Vary:
43
+ // Accept` would strip Accept-Encoding from a stored page. Every 304
44
+ // says it varies: over-stating Vary costs a cache a spare entry, while
45
+ // under-stating it could hand brotli to a client that cannot read it.
46
+ c.res = new Response(null, response);
47
+ addVary(c.res.headers);
48
+ // A client revalidating a compressed copy sends the weak form it was
49
+ // given; hand that back, so the validator it stores stays the one it has.
50
+ const etag = c.res.headers.get('etag');
51
+ if (etag !== null &&
52
+ !etag.startsWith('W/') &&
53
+ presents(c.req.header('if-none-match'), `W/${etag}`)) {
54
+ c.res.headers.set('etag', `W/${etag}`);
55
+ }
56
+ return;
57
+ }
58
+ if (holdsSecrets(c.req.path, response) || !worthCompressing(response))
59
+ return;
60
+ const encoding = chooseEncoding(c.req.header('accept-encoding'));
61
+ const declared = Number(response.headers.get('content-length') ?? Number.NaN);
62
+ if (encoding === undefined || declared < COMPRESSION_THRESHOLD) {
63
+ c.res = new Response(response.body, response);
64
+ addVary(c.res.headers);
65
+ return;
66
+ }
67
+ const plain = new Uint8Array(await response.arrayBuffer());
68
+ if (plain.byteLength < COMPRESSION_THRESHOLD) {
69
+ c.res = new Response(plain, response);
70
+ addVary(c.res.headers);
71
+ return;
72
+ }
73
+ const encoded = await encode(plain, encoding);
74
+ c.res = new Response(encoded, response);
75
+ const headers = c.res.headers;
76
+ addVary(headers);
77
+ headers.set('content-encoding', encoding);
78
+ headers.set('content-length', String(encoded.byteLength));
79
+ const etag = headers.get('etag');
80
+ if (etag !== null && !etag.startsWith('W/'))
81
+ headers.set('etag', `W/${etag}`);
82
+ };
83
+ }
84
+ /**
85
+ * Whether a response may carry a secret beside text a visitor controls: a
86
+ * CSRF token, a session's own data. Compressing such a page lets an attacker
87
+ * who can inject text and watch its size recover the secret a byte at a time
88
+ * (BREACH), so it goes out plain. Every page drawn for somebody signed in says
89
+ * `private` or `no-store`; the admin's screens, the setup and login forms
90
+ * among them, say neither, so the path covers those. The admin's static files
91
+ * hold no secret and are compressed like any other.
92
+ */
93
+ function holdsSecrets(requestPath, response) {
94
+ if (/\b(private|no-store)\b/i.test(response.headers.get('cache-control') ?? ''))
95
+ return true;
96
+ if (requestPath.startsWith(ADMIN_ASSET_PREFIX))
97
+ return false;
98
+ return requestPath === ADMIN_PREFIX || requestPath.startsWith(`${ADMIN_PREFIX}/`);
99
+ }
100
+ /** Whether this response is text with a body that nothing has encoded yet. */
101
+ function worthCompressing(response) {
102
+ if (response.body === null || response.status === 204 || response.status === 206)
103
+ return false;
104
+ if (response.headers.has('content-encoding'))
105
+ return false;
106
+ if (/\bno-transform\b/i.test(response.headers.get('cache-control') ?? ''))
107
+ return false;
108
+ return isCompressible(response.headers.get('content-type'));
109
+ }
110
+ function isCompressible(contentType) {
111
+ const type = (contentType ?? '').split(';')[0]?.trim().toLowerCase() ?? '';
112
+ return (type.startsWith('text/') ||
113
+ type.endsWith('+json') ||
114
+ type.endsWith('+xml') ||
115
+ COMPRESSIBLE_TYPES.has(type));
116
+ }
117
+ /**
118
+ * The encoding to send for an `Accept-Encoding`, brotli first. A coding the
119
+ * header names with `q=0` is refused; one it leaves out is taken only when
120
+ * `*` is offered.
121
+ */
122
+ function chooseEncoding(accept) {
123
+ if (accept === undefined)
124
+ return undefined;
125
+ const weights = new Map();
126
+ for (const part of accept.split(',')) {
127
+ const [name = '', ...params] = part.split(';').map((piece) => piece.trim().toLowerCase());
128
+ if (name === '')
129
+ continue;
130
+ const q = params.find((param) => param.startsWith('q='));
131
+ weights.set(name, q === undefined ? 1 : Number(q.slice(2)) || 0);
132
+ }
133
+ return ENCODINGS.find((encoding) => (weights.get(encoding) ?? weights.get('*') ?? 0) > 0);
134
+ }
135
+ function encode(body, encoding) {
136
+ if (encoding === 'gzip')
137
+ return gzipAsync(body, { level: 6 });
138
+ // Quality 5 rather than the maximum 11: these bodies are built per request,
139
+ // and at 11 the time spent encoding outweighs the bytes it saves.
140
+ return brotli(body, {
141
+ params: {
142
+ [constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT,
143
+ [constants.BROTLI_PARAM_QUALITY]: 5,
144
+ [constants.BROTLI_PARAM_SIZE_HINT]: body.byteLength,
145
+ },
146
+ });
147
+ }
148
+ function addVary(headers) {
149
+ const names = (headers.get('vary') ?? '')
150
+ .split(',')
151
+ .map((name) => name.trim())
152
+ .filter((name) => name !== '');
153
+ if (names.some((name) => name === '*' || name.toLowerCase() === 'accept-encoding'))
154
+ return;
155
+ headers.set('vary', [...names, 'Accept-Encoding'].join(', '));
156
+ }
157
+ function presents(ifNoneMatch, etag) {
158
+ return (ifNoneMatch ?? '').split(',').some((candidate) => candidate.trim() === etag);
159
+ }
160
+ //# sourceMappingURL=compression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compression.js","sourceRoot":"","sources":["../../src/web/compression.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { ResolvedConfig } from '../config.ts';
2
2
  import type { Document } from '../content/document.ts';
3
3
  import type { PostType } from '../content/post-type.ts';
4
+ import type { ImageLoading } from '../images/markup.ts';
4
5
  import type { ImageConfig } from '../images/variants.ts';
5
6
  import type { AuthorContext } from './authors.ts';
6
7
  import type { TaxonomyBases, TaxonomyRedirect } from './taxonomy.ts';
@@ -189,8 +190,11 @@ export interface NeighbourContext {
189
190
  * login, a display name from before decision-14, or somebody who has no
190
191
  * account here at all. Without one the file's own string is left where it was,
191
192
  * which is what a test over a single template renders.
193
+ *
194
+ * `loading` says whether this document opens the page it is printed on, and
195
+ * so whether its first image is fetched at once rather than lazily.
192
196
  */
193
- export declare function documentContext(document: Document, images?: ImageConfig, author?: AuthorContext): DocumentContext;
197
+ export declare function documentContext(document: Document, images?: ImageConfig, author?: AuthorContext, loading?: ImageLoading): DocumentContext;
194
198
  /** Reads `content/_data/site.json`, and re-reads it when the file changes. */
195
199
  export interface SiteDataSource {
196
200
  /** The current site data, defaults filled in. */
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/web/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/web/context.ts"],"names":[],"mappings":"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"}
@@ -31,8 +31,11 @@ export const DEFAULT_POSTS_PER_PAGE = 10;
31
31
  * login, a display name from before decision-14, or somebody who has no
32
32
  * account here at all. Without one the file's own string is left where it was,
33
33
  * which is what a test over a single template renders.
34
+ *
35
+ * `loading` says whether this document opens the page it is printed on, and
36
+ * so whether its first image is fetched at once rather than lazily.
34
37
  */
35
- export function documentContext(document, images, author) {
38
+ export function documentContext(document, images, author, loading) {
36
39
  const date = toDate(document.date);
37
40
  return {
38
41
  ...document.extra,
@@ -51,7 +54,7 @@ export function documentContext(document, images, author) {
51
54
  ...optional('date', date),
52
55
  tags: document.tags,
53
56
  categories: document.categories,
54
- content: images === undefined ? document.html : siteImageMarkup(images, document.html),
57
+ content: images === undefined ? document.html : siteImageMarkup(images, document.html, loading),
55
58
  // The plain-text summary, taken off the document rather than off the
56
59
  // markup above: an excerpt is text, and the `<picture>` a site's image
57
60
  // config puts in the HTML is not something to cut words out of.
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/web/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/web/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAItD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpG,8EAA8E;AAC9E,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAEhD,sEAAsE;AACtE,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAqKzC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAkB,EAClB,MAAoB,EACpB,MAAsB,EACtB,OAAsB;IAEtB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEnC,OAAO;QACL,GAAG,QAAQ,CAAC,KAAK;QACjB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,GAAG,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,WAAW,CAAC;QAChD,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;QAChD,GAAG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChD,GAAG,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,WAAW,CAAC;QAEhD,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC;QAC9B,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;QACxB,GAAG,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC/C,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC;QAC1B,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;QACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QAC/F,qEAAqE;QACrE,uEAAuE;QACvE,gEAAgE;QAChE,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC;QAC9B,GAAG,EAAE,QAAQ,CAAC,SAAS;QACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,IAAI,EAAE;YACJ,GAAG,EAAE,QAAQ,CAAC,SAAS;YACvB,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;YACzB,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,SAAS,EAAE,KAAK,QAAQ,CAAC,IAAI,EAAE;SAChC;KACF,CAAC;AACJ,CAAC;AAQD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAsB;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAExE,IAAI,MAAM,GAA4B,EAAE,CAAC;IACzC,IAAI,UAA8B,CAAC;IAEnC,SAAS,QAAQ;QACf,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,GAAG,SAAS,CAAC;YACvB,MAAM,GAAG,EAAE,CAAC;YACZ,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,IAAI,KAAK,UAAU;YAAE,OAAO,MAAM,CAAC;QAEvC,UAAU,GAAG,IAAI,CAAC;QAClB,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO;QACL,IAAI;YACF,kEAAkE;YAClE,sEAAsE;YACtE,mBAAmB;YACnB,MAAM,QAAQ,GAAa;gBACzB,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,MAAM,CAAC,OAAO;gBACnB,OAAO,EAAE,sBAAsB,CAAC,GAAG;gBACnC,YAAY,EAAE,sBAAsB,CAAC,QAAQ;aAC9C,CAAC;YACF,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,EAAE,CAAC;QACxC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAC5E,CAAC,CAAE,MAAkC;YACrC,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,YAAY,CAAC,IAAc;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;IACxC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACrF,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,OAAO,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACvF,CAAC;AAUD;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,IAAc;IAC3C,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAExF,6EAA6E;IAC7E,yEAAyE;IACzE,oDAAoD;IACpD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AACnE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,IAAc;IAC1C,OAAO,sBAAsB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAc;IAC1C,OAAO,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,MAAM,CAAC,KAAyB;IACvC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7D,CAAC;AAED,SAAS,QAAQ,CAAsB,GAAM,EAAE,KAAoB;IACjE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAmB,CAAC;AACvE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/web/conversation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/web/conversation.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { avatarHref } from '../avatars/avatars.js';
2
2
  import { postLabel } from '../content/post-type.js';
3
3
  import { readAllQuoteAuthorizations } from '../federation/quotes.js';
4
- import { actorHandle, quoteFrom, replyFrom, REPLY_ACTIVITY_TYPE } from '../federation/replies.js';
4
+ import { actorHandle, guessedName, quoteFrom, replyFrom, REPLY_ACTIVITY_TYPE, } from '../federation/replies.js';
5
5
  import { activityStreamsId, isPublicDocument, permalinkOfObjectId } from './documents.js';
6
6
  import { absoluteUrl } from './negotiate.js';
7
7
  import { sanitizeCommentHtml } from './sanitize.js';
@@ -554,10 +554,11 @@ function withdrawnBy(activities) {
554
554
  /**
555
555
  * How an actor is named, memoised for the length of one conversation.
556
556
  *
557
- * A follower is named from the profile it published when it followed; everyone
558
- * else is named by the handle their actor URL implies, which is a guess and
559
- * deliberately so — naming them properly would mean dereferencing the actor,
560
- * a network round trip per comment on the page.
557
+ * A follower is named from the profile it published when it followed, and
558
+ * anybody else from the profile the site fetched when they were first heard
559
+ * from (TASK-184). Both are read from the database: nothing is fetched while a
560
+ * page is drawn. Only an actor neither knows is named by a guess from their
561
+ * URL, which is their server when the URL ends in a number.
561
562
  */
562
563
  function authorNaming(admin) {
563
564
  const known = new Map();
@@ -565,19 +566,19 @@ function authorNaming(admin) {
565
566
  // followers are one row per (user, actor) now (decision-14), so the same
566
567
  // stranger may be on the list several times and any of those rows names them
567
568
  // the same way — the columns read here are the actor's own name and picture.
568
- let profiles;
569
+ let followers;
569
570
  return (actorId) => {
570
571
  const held = known.get(actorId);
571
572
  if (held !== undefined)
572
573
  return held;
573
- profiles ??= new Map(admin.listFollowers().map((entry) => [entry.actorId, entry]));
574
- const follower = profiles.get(actorId);
575
- const handle = follower?.handle ?? actorHandle(actorId) ?? null;
576
- const icon = follower?.iconUrl ?? null;
574
+ followers ??= new Map(admin.listFollowers().map((entry) => [entry.actorId, entry]));
575
+ const profile = followers.get(actorId) ?? admin.getActorProfile(actorId);
576
+ const handle = profile?.handle ?? actorHandle(actorId) ?? null;
577
+ const icon = profile?.iconUrl ?? null;
577
578
  const author = {
578
- name: follower?.name ?? handle ?? actorId,
579
+ name: profile?.name ?? handle ?? guessedName(actorId),
579
580
  handle,
580
- url: follower?.url ?? actorId,
581
+ url: profile?.url ?? actorId,
581
582
  avatar: icon === null ? null : avatarHref(icon),
582
583
  actorId,
583
584
  };
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/web/conversation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/web/conversation.ts"],"names":[],"mappings":"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"}
@@ -118,6 +118,11 @@ export interface Renderer {
118
118
  * still names a published page.
119
119
  */
120
120
  frontPageSlugs(): FrontPageSlugs;
121
+ /**
122
+ * One document's page, as {@link renderDocument} or, with `frontPage`,
123
+ * {@link renderFrontPage} draws it, together with what validates it.
124
+ */
125
+ renderPage(document: Document, options: RenderPageOptions): RenderedPage;
121
126
  /**
122
127
  * One document through its type's layout.
123
128
  *
@@ -280,5 +285,27 @@ export interface CreateRendererOptions {
280
285
  * switch as "this is a development server": with `watch: true` a template edit
281
286
  * shows up on the next request, exactly as a content edit does.
282
287
  */
288
+ /** Which page of a document {@link Renderer.renderPage} draws, and for whom. */
289
+ export interface RenderPageOptions {
290
+ /** Whether it is being served at `/` as the site's front page. */
291
+ frontPage?: boolean | undefined;
292
+ /** Context that goes on last and wins, as {@link Renderer.renderDocument} takes it. */
293
+ extra?: Record<string, unknown> | undefined;
294
+ /** Who the request's session says is reading, when it says anybody. */
295
+ viewer?: CommentViewer | undefined;
296
+ }
297
+ /** A document's page and the fingerprint its ETag is made from (TASK-181). */
298
+ export interface RenderedPage {
299
+ /** The page as it is sent. */
300
+ readonly html: string;
301
+ /**
302
+ * Everything the page shows except the forms' loaded-at stamps, which are
303
+ * the clock rather than the page: the same page drawn a second later is
304
+ * the same page. The window each stamp falls in goes in instead, so a
305
+ * browser revalidating an old copy is told it is fresh only while the stamp
306
+ * it holds is young enough to submit.
307
+ */
308
+ readonly fingerprint: string;
309
+ }
283
310
  export declare function createRenderer(options: CreateRendererOptions): Renderer;
284
311
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/web/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/web/render.ts"],"names":[],"mappings":"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"}