@geekity/cms 0.31.0 → 0.32.1

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 (759) hide show
  1. package/admin/components/badge.njk +4 -0
  2. package/admin/components/fields.njk +41 -24
  3. package/admin/components/job-status.njk +45 -0
  4. package/admin/components/setting-fields.njk +38 -0
  5. package/admin/layouts/settings-page.njk +16 -0
  6. package/admin/pages/comments/all.njk +1 -2
  7. package/admin/pages/documents/editor.njk +17 -15
  8. package/admin/pages/documents/syndication.njk +4 -4
  9. package/admin/pages/federation/followers.njk +56 -6
  10. package/admin/pages/federation/settings.njk +1 -1
  11. package/admin/pages/media/library.njk +52 -3
  12. package/admin/pages/navigation/menus.njk +2 -2
  13. package/admin/pages/plugins/screen.njk +5 -46
  14. package/admin/pages/settings/discussion.njk +76 -47
  15. package/admin/pages/settings/email.njk +75 -47
  16. package/admin/pages/settings/general.njk +15 -15
  17. package/admin/pages/settings/permalinks.njk +8 -8
  18. package/admin/pages/settings/privacy.njk +6 -6
  19. package/admin/pages/settings/reading.njk +36 -36
  20. package/admin/pages/tools/dev-mode.njk +29 -3
  21. package/admin/pages/tools/export.njk +89 -0
  22. package/admin/pages/tools/maintenance.njk +51 -0
  23. package/admin/pages/users/apps.njk +2 -2
  24. package/admin/pages/users/edit.njk +3 -3
  25. package/admin/pages/users/new.njk +2 -2
  26. package/admin/static/admin.css +80 -0
  27. package/dist/admin/app-activity.d.ts.map +1 -1
  28. package/dist/admin/app-activity.js +2 -3
  29. package/dist/admin/app-activity.js.map +1 -1
  30. package/dist/admin/appearance.d.ts +1 -5
  31. package/dist/admin/appearance.d.ts.map +1 -1
  32. package/dist/admin/appearance.js +9 -16
  33. package/dist/admin/appearance.js.map +1 -1
  34. package/dist/admin/comments.d.ts.map +1 -1
  35. package/dist/admin/comments.js +2 -3
  36. package/dist/admin/comments.js.map +1 -1
  37. package/dist/admin/confirm-password.d.ts +4 -0
  38. package/dist/admin/confirm-password.d.ts.map +1 -0
  39. package/dist/admin/confirm-password.js +11 -0
  40. package/dist/admin/confirm-password.js.map +1 -0
  41. package/dist/admin/connected-apps.d.ts.map +1 -1
  42. package/dist/admin/connected-apps.js +17 -22
  43. package/dist/admin/connected-apps.js.map +1 -1
  44. package/dist/admin/dev-mode.d.ts.map +1 -1
  45. package/dist/admin/dev-mode.js +35 -10
  46. package/dist/admin/dev-mode.js.map +1 -1
  47. package/dist/admin/documents.d.ts.map +1 -1
  48. package/dist/admin/documents.js +22 -10
  49. package/dist/admin/documents.js.map +1 -1
  50. package/dist/admin/editor-actions.d.ts.map +1 -1
  51. package/dist/admin/editor-actions.js +1 -2
  52. package/dist/admin/editor-actions.js.map +1 -1
  53. package/dist/admin/editor-layout.js +1 -1
  54. package/dist/admin/editor-layout.js.map +1 -1
  55. package/dist/admin/export.d.ts +10 -0
  56. package/dist/admin/export.d.ts.map +1 -0
  57. package/dist/admin/export.js +72 -0
  58. package/dist/admin/export.js.map +1 -0
  59. package/dist/admin/federation.d.ts +7 -14
  60. package/dist/admin/federation.d.ts.map +1 -1
  61. package/dist/admin/federation.js +48 -94
  62. package/dist/admin/federation.js.map +1 -1
  63. package/dist/admin/index.d.ts +2 -5
  64. package/dist/admin/index.d.ts.map +1 -1
  65. package/dist/admin/index.js +2 -4
  66. package/dist/admin/index.js.map +1 -1
  67. package/dist/admin/indieauth-consent.d.ts.map +1 -1
  68. package/dist/admin/indieauth-consent.js +5 -7
  69. package/dist/admin/indieauth-consent.js.map +1 -1
  70. package/dist/admin/job-status.d.ts +25 -0
  71. package/dist/admin/job-status.d.ts.map +1 -0
  72. package/dist/admin/job-status.js +53 -0
  73. package/dist/admin/job-status.js.map +1 -0
  74. package/dist/admin/legacy-migrations.d.ts.map +1 -1
  75. package/dist/admin/legacy-migrations.js +7 -6
  76. package/dist/admin/legacy-migrations.js.map +1 -1
  77. package/dist/admin/maintenance.d.ts +9 -0
  78. package/dist/admin/maintenance.d.ts.map +1 -0
  79. package/dist/admin/maintenance.js +42 -0
  80. package/dist/admin/maintenance.js.map +1 -0
  81. package/dist/admin/media.d.ts +4 -1
  82. package/dist/admin/media.d.ts.map +1 -1
  83. package/dist/admin/media.js +16 -1
  84. package/dist/admin/media.js.map +1 -1
  85. package/dist/admin/menu.d.ts.map +1 -1
  86. package/dist/admin/menu.js +4 -0
  87. package/dist/admin/menu.js.map +1 -1
  88. package/dist/admin/messages.d.ts.map +1 -1
  89. package/dist/admin/messages.js +2 -3
  90. package/dist/admin/messages.js.map +1 -1
  91. package/dist/admin/navigation.d.ts.map +1 -1
  92. package/dist/admin/navigation.js +27 -23
  93. package/dist/admin/navigation.js.map +1 -1
  94. package/dist/admin/plugins.d.ts.map +1 -1
  95. package/dist/admin/plugins.js +19 -66
  96. package/dist/admin/plugins.js.map +1 -1
  97. package/dist/admin/preview.d.ts.map +1 -1
  98. package/dist/admin/preview.js +5 -6
  99. package/dist/admin/preview.js.map +1 -1
  100. package/dist/admin/recovery.js +2 -2
  101. package/dist/admin/recovery.js.map +1 -1
  102. package/dist/admin/routes.d.ts.map +1 -1
  103. package/dist/admin/routes.js +6 -3
  104. package/dist/admin/routes.js.map +1 -1
  105. package/dist/admin/setting-overrides.d.ts +4 -0
  106. package/dist/admin/setting-overrides.d.ts.map +1 -0
  107. package/dist/admin/setting-overrides.js +24 -0
  108. package/dist/admin/setting-overrides.js.map +1 -0
  109. package/dist/admin/settings-discussion.d.ts +6 -4
  110. package/dist/admin/settings-discussion.d.ts.map +1 -1
  111. package/dist/admin/settings-discussion.js +75 -45
  112. package/dist/admin/settings-discussion.js.map +1 -1
  113. package/dist/admin/settings-email.d.ts +11 -8
  114. package/dist/admin/settings-email.d.ts.map +1 -1
  115. package/dist/admin/settings-email.js +88 -77
  116. package/dist/admin/settings-email.js.map +1 -1
  117. package/dist/admin/settings-federation.d.ts +0 -7
  118. package/dist/admin/settings-federation.d.ts.map +1 -1
  119. package/dist/admin/settings-federation.js +0 -36
  120. package/dist/admin/settings-federation.js.map +1 -1
  121. package/dist/admin/settings-fields.d.ts +32 -0
  122. package/dist/admin/settings-fields.d.ts.map +1 -0
  123. package/dist/admin/settings-fields.js +368 -0
  124. package/dist/admin/settings-fields.js.map +1 -0
  125. package/dist/admin/settings-general.d.ts.map +1 -1
  126. package/dist/admin/settings-general.js +10 -19
  127. package/dist/admin/settings-general.js.map +1 -1
  128. package/dist/admin/settings-page.d.ts +3 -29
  129. package/dist/admin/settings-page.d.ts.map +1 -1
  130. package/dist/admin/settings-page.js +38 -53
  131. package/dist/admin/settings-page.js.map +1 -1
  132. package/dist/admin/settings-permalinks.js +2 -2
  133. package/dist/admin/settings-permalinks.js.map +1 -1
  134. package/dist/admin/settings-privacy.js +1 -1
  135. package/dist/admin/settings-privacy.js.map +1 -1
  136. package/dist/admin/settings-reading.js +13 -13
  137. package/dist/admin/settings-reading.js.map +1 -1
  138. package/dist/admin/settings-renderer.d.ts +32 -0
  139. package/dist/admin/settings-renderer.d.ts.map +1 -0
  140. package/dist/admin/settings-renderer.js +79 -0
  141. package/dist/admin/settings-renderer.js.map +1 -0
  142. package/dist/admin/site-setting-edit.d.ts +4 -0
  143. package/dist/admin/site-setting-edit.d.ts.map +1 -0
  144. package/dist/admin/site-setting-edit.js +20 -0
  145. package/dist/admin/site-setting-edit.js.map +1 -0
  146. package/dist/admin/taxonomy.d.ts.map +1 -1
  147. package/dist/admin/taxonomy.js +10 -19
  148. package/dist/admin/taxonomy.js.map +1 -1
  149. package/dist/admin/templates.d.ts +2 -0
  150. package/dist/admin/templates.d.ts.map +1 -1
  151. package/dist/admin/templates.js +2 -0
  152. package/dist/admin/templates.js.map +1 -1
  153. package/dist/admin/users.js +1 -1
  154. package/dist/admin/users.js.map +1 -1
  155. package/dist/avatars/avatars.d.ts +0 -2
  156. package/dist/avatars/avatars.d.ts.map +1 -1
  157. package/dist/avatars/avatars.js +9 -10
  158. package/dist/avatars/avatars.js.map +1 -1
  159. package/dist/avatars/index.d.ts +1 -1
  160. package/dist/avatars/index.d.ts.map +1 -1
  161. package/dist/avatars/index.js +1 -1
  162. package/dist/avatars/index.js.map +1 -1
  163. package/dist/cache.d.ts +0 -2
  164. package/dist/cache.d.ts.map +1 -1
  165. package/dist/cache.js +2 -4
  166. package/dist/cache.js.map +1 -1
  167. package/dist/cli.d.ts +1 -1
  168. package/dist/cli.d.ts.map +1 -1
  169. package/dist/cli.js +500 -86
  170. package/dist/cli.js.map +1 -1
  171. package/dist/cms/app.d.ts +1 -1
  172. package/dist/cms/app.d.ts.map +1 -1
  173. package/dist/cms/app.js +13 -2
  174. package/dist/cms/app.js.map +1 -1
  175. package/dist/cms/boot.d.ts +12 -0
  176. package/dist/cms/boot.d.ts.map +1 -1
  177. package/dist/cms/boot.js +43 -17
  178. package/dist/cms/boot.js.map +1 -1
  179. package/dist/cms/create.d.ts +24 -0
  180. package/dist/cms/create.d.ts.map +1 -1
  181. package/dist/cms/create.js +14 -0
  182. package/dist/cms/create.js.map +1 -1
  183. package/dist/cms/services.d.ts +3 -1
  184. package/dist/cms/services.d.ts.map +1 -1
  185. package/dist/cms/services.js +83 -26
  186. package/dist/cms/services.js.map +1 -1
  187. package/dist/cms/site-records.d.ts.map +1 -1
  188. package/dist/cms/site-records.js +0 -2
  189. package/dist/cms/site-records.js.map +1 -1
  190. package/dist/comments/akismet.d.ts +13 -46
  191. package/dist/comments/akismet.d.ts.map +1 -1
  192. package/dist/comments/akismet.js +29 -68
  193. package/dist/comments/akismet.js.map +1 -1
  194. package/dist/comments/conversation.d.ts +14 -8
  195. package/dist/comments/conversation.d.ts.map +1 -1
  196. package/dist/comments/conversation.js.map +1 -1
  197. package/dist/comments/index.d.ts +4 -4
  198. package/dist/comments/index.d.ts.map +1 -1
  199. package/dist/comments/index.js +3 -3
  200. package/dist/comments/index.js.map +1 -1
  201. package/dist/comments/policy.d.ts +23 -26
  202. package/dist/comments/policy.d.ts.map +1 -1
  203. package/dist/comments/policy.js +13 -20
  204. package/dist/comments/policy.js.map +1 -1
  205. package/dist/comments/records.d.ts +0 -2
  206. package/dist/comments/records.d.ts.map +1 -1
  207. package/dist/comments/records.js +2 -3
  208. package/dist/comments/records.js.map +1 -1
  209. package/dist/comments/reply-notices.d.ts +5 -6
  210. package/dist/comments/reply-notices.d.ts.map +1 -1
  211. package/dist/comments/reply-notices.js +27 -15
  212. package/dist/comments/reply-notices.js.map +1 -1
  213. package/dist/comments/reply-post.d.ts.map +1 -1
  214. package/dist/comments/reply-post.js +2 -3
  215. package/dist/comments/reply-post.js.map +1 -1
  216. package/dist/comments/submission.d.ts +0 -2
  217. package/dist/comments/submission.d.ts.map +1 -1
  218. package/dist/comments/submission.js +1 -3
  219. package/dist/comments/submission.js.map +1 -1
  220. package/dist/config-loader.d.ts.map +1 -1
  221. package/dist/config-loader.js +2 -1
  222. package/dist/config-loader.js.map +1 -1
  223. package/dist/config.d.ts +27 -1
  224. package/dist/config.d.ts.map +1 -1
  225. package/dist/config.js +5 -1
  226. package/dist/config.js.map +1 -1
  227. package/dist/contact/delivery.d.ts +2 -4
  228. package/dist/contact/delivery.d.ts.map +1 -1
  229. package/dist/contact/delivery.js +1 -2
  230. package/dist/contact/delivery.js.map +1 -1
  231. package/dist/contact/index.d.ts +1 -1
  232. package/dist/contact/index.d.ts.map +1 -1
  233. package/dist/contact/index.js +1 -1
  234. package/dist/contact/index.js.map +1 -1
  235. package/dist/contact/records.d.ts +0 -2
  236. package/dist/contact/records.d.ts.map +1 -1
  237. package/dist/contact/records.js +3 -5
  238. package/dist/contact/records.js.map +1 -1
  239. package/dist/content/citation.d.ts +1 -0
  240. package/dist/content/citation.d.ts.map +1 -1
  241. package/dist/content/citation.js.map +1 -1
  242. package/dist/content/document-form.d.ts +3 -1
  243. package/dist/content/document-form.d.ts.map +1 -1
  244. package/dist/content/document-form.js.map +1 -1
  245. package/dist/content/enclosure-form.d.ts.map +1 -1
  246. package/dist/content/enclosure-form.js +5 -6
  247. package/dist/content/enclosure-form.js.map +1 -1
  248. package/dist/content/excerpt.d.ts +1 -0
  249. package/dist/content/excerpt.d.ts.map +1 -1
  250. package/dist/content/excerpt.js +3 -0
  251. package/dist/content/excerpt.js.map +1 -1
  252. package/dist/content/index.d.ts +3 -3
  253. package/dist/content/index.d.ts.map +1 -1
  254. package/dist/content/index.js +2 -2
  255. package/dist/content/index.js.map +1 -1
  256. package/dist/content/kept-properties.d.ts +0 -1
  257. package/dist/content/kept-properties.d.ts.map +1 -1
  258. package/dist/content/kept-properties.js +2 -2
  259. package/dist/content/kept-properties.js.map +1 -1
  260. package/dist/content/locations.d.ts +0 -1
  261. package/dist/content/locations.d.ts.map +1 -1
  262. package/dist/content/locations.js +2 -2
  263. package/dist/content/locations.js.map +1 -1
  264. package/dist/content/media.d.ts +7 -0
  265. package/dist/content/media.d.ts.map +1 -1
  266. package/dist/content/media.js +12 -1
  267. package/dist/content/media.js.map +1 -1
  268. package/dist/content/metadata/strip-job.d.ts +16 -0
  269. package/dist/content/metadata/strip-job.d.ts.map +1 -0
  270. package/dist/content/metadata/strip-job.js +24 -0
  271. package/dist/content/metadata/strip-job.js.map +1 -0
  272. package/dist/content/metadata/sweep.d.ts +13 -1
  273. package/dist/content/metadata/sweep.d.ts.map +1 -1
  274. package/dist/content/metadata/sweep.js +47 -25
  275. package/dist/content/metadata/sweep.js.map +1 -1
  276. package/dist/content/permalink-file.d.ts +2 -1
  277. package/dist/content/permalink-file.d.ts.map +1 -1
  278. package/dist/content/permalink-file.js +3 -3
  279. package/dist/content/permalink-file.js.map +1 -1
  280. package/dist/content/photo-form.d.ts +1 -0
  281. package/dist/content/photo-form.d.ts.map +1 -1
  282. package/dist/content/photo-form.js +8 -5
  283. package/dist/content/photo-form.js.map +1 -1
  284. package/dist/content/photo.d.ts +1 -0
  285. package/dist/content/photo.d.ts.map +1 -1
  286. package/dist/content/photo.js +1 -1
  287. package/dist/content/photo.js.map +1 -1
  288. package/dist/content/post-fields.d.ts.map +1 -1
  289. package/dist/content/post-fields.js +5 -9
  290. package/dist/content/post-fields.js.map +1 -1
  291. package/dist/content/read-form.d.ts +10 -3
  292. package/dist/content/read-form.d.ts.map +1 -1
  293. package/dist/content/read-form.js +67 -9
  294. package/dist/content/read-form.js.map +1 -1
  295. package/dist/content/read.d.ts +9 -2
  296. package/dist/content/read.d.ts.map +1 -1
  297. package/dist/content/read.js +22 -3
  298. package/dist/content/read.js.map +1 -1
  299. package/dist/content/store.d.ts +0 -1
  300. package/dist/content/store.d.ts.map +1 -1
  301. package/dist/content/store.js +0 -1
  302. package/dist/content/store.js.map +1 -1
  303. package/dist/content/uploads.d.ts +1 -1
  304. package/dist/content/uploads.d.ts.map +1 -1
  305. package/dist/content/uploads.js +6 -1
  306. package/dist/content/uploads.js.map +1 -1
  307. package/dist/content/write.d.ts +1 -1
  308. package/dist/content/write.d.ts.map +1 -1
  309. package/dist/content/write.js +7 -3
  310. package/dist/content/write.js.map +1 -1
  311. package/dist/dev-mode.d.ts +4 -26
  312. package/dist/dev-mode.d.ts.map +1 -1
  313. package/dist/dev-mode.js +4 -53
  314. package/dist/dev-mode.js.map +1 -1
  315. package/dist/export/export-archives.d.ts +29 -0
  316. package/dist/export/export-archives.d.ts.map +1 -0
  317. package/dist/export/export-archives.js +88 -0
  318. package/dist/export/export-archives.js.map +1 -0
  319. package/dist/export/export-job.d.ts +21 -0
  320. package/dist/export/export-job.d.ts.map +1 -0
  321. package/dist/export/export-job.js +63 -0
  322. package/dist/export/export-job.js.map +1 -0
  323. package/dist/export/site-export.d.ts +101 -0
  324. package/dist/export/site-export.d.ts.map +1 -0
  325. package/dist/export/site-export.js +243 -0
  326. package/dist/export/site-export.js.map +1 -0
  327. package/dist/export/site-import.d.ts +75 -0
  328. package/dist/export/site-import.d.ts.map +1 -0
  329. package/dist/export/site-import.js +492 -0
  330. package/dist/export/site-import.js.map +1 -0
  331. package/dist/exports.d.ts +9 -4
  332. package/dist/exports.d.ts.map +1 -1
  333. package/dist/exports.js +3 -1
  334. package/dist/exports.js.map +1 -1
  335. package/dist/federation/article.d.ts +5 -11
  336. package/dist/federation/article.d.ts.map +1 -1
  337. package/dist/federation/article.js +67 -35
  338. package/dist/federation/article.js.map +1 -1
  339. package/dist/federation/backfill.d.ts +3 -1
  340. package/dist/federation/backfill.d.ts.map +1 -1
  341. package/dist/federation/backfill.js +5 -3
  342. package/dist/federation/backfill.js.map +1 -1
  343. package/dist/federation/cited-post.d.ts +1 -1
  344. package/dist/federation/cited-post.d.ts.map +1 -1
  345. package/dist/federation/cited-post.js +1 -1
  346. package/dist/federation/cited-post.js.map +1 -1
  347. package/dist/federation/delivery.d.ts +5 -2
  348. package/dist/federation/delivery.d.ts.map +1 -1
  349. package/dist/federation/delivery.js +30 -14
  350. package/dist/federation/delivery.js.map +1 -1
  351. package/dist/federation/federation.d.ts +7 -7
  352. package/dist/federation/federation.d.ts.map +1 -1
  353. package/dist/federation/federation.js +6 -13
  354. package/dist/federation/federation.js.map +1 -1
  355. package/dist/federation/handles.d.ts +1 -1
  356. package/dist/federation/handles.d.ts.map +1 -1
  357. package/dist/federation/handles.js +1 -1
  358. package/dist/federation/handles.js.map +1 -1
  359. package/dist/federation/inbox.d.ts.map +1 -1
  360. package/dist/federation/inbox.js +5 -8
  361. package/dist/federation/inbox.js.map +1 -1
  362. package/dist/federation/index.d.ts +1 -0
  363. package/dist/federation/index.d.ts.map +1 -1
  364. package/dist/federation/index.js +1 -0
  365. package/dist/federation/index.js.map +1 -1
  366. package/dist/federation/keys.js +3 -3
  367. package/dist/federation/keys.js.map +1 -1
  368. package/dist/federation/object-ids.d.ts +50 -0
  369. package/dist/federation/object-ids.d.ts.map +1 -0
  370. package/dist/federation/object-ids.js +134 -0
  371. package/dist/federation/object-ids.js.map +1 -0
  372. package/dist/federation/profiles.d.ts +1 -1
  373. package/dist/federation/profiles.d.ts.map +1 -1
  374. package/dist/federation/profiles.js +1 -1
  375. package/dist/federation/profiles.js.map +1 -1
  376. package/dist/federation/queue.d.ts +32 -17
  377. package/dist/federation/queue.d.ts.map +1 -1
  378. package/dist/federation/queue.js +173 -39
  379. package/dist/federation/queue.js.map +1 -1
  380. package/dist/federation/relays.d.ts +6 -2
  381. package/dist/federation/relays.d.ts.map +1 -1
  382. package/dist/federation/relays.js +43 -36
  383. package/dist/federation/relays.js.map +1 -1
  384. package/dist/federation/resend-job.d.ts +44 -0
  385. package/dist/federation/resend-job.d.ts.map +1 -0
  386. package/dist/federation/resend-job.js +59 -0
  387. package/dist/federation/resend-job.js.map +1 -0
  388. package/dist/files/atomic.d.ts +9 -0
  389. package/dist/files/atomic.d.ts.map +1 -1
  390. package/dist/files/atomic.js +1 -1
  391. package/dist/files/atomic.js.map +1 -1
  392. package/dist/files/data-files.d.ts +104 -0
  393. package/dist/files/data-files.d.ts.map +1 -0
  394. package/dist/files/data-files.js +330 -0
  395. package/dist/files/data-files.js.map +1 -0
  396. package/dist/files/export-archives.d.ts +12 -0
  397. package/dist/files/export-archives.d.ts.map +1 -0
  398. package/dist/files/export-archives.js +67 -0
  399. package/dist/files/export-archives.js.map +1 -0
  400. package/dist/files/static-files.d.ts.map +1 -1
  401. package/dist/files/static-files.js +7 -22
  402. package/dist/files/static-files.js.map +1 -1
  403. package/dist/files/tar.d.ts +29 -0
  404. package/dist/files/tar.d.ts.map +1 -0
  405. package/dist/files/tar.js +206 -0
  406. package/dist/files/tar.js.map +1 -0
  407. package/dist/files/upload-types.d.ts +81 -0
  408. package/dist/files/upload-types.d.ts.map +1 -0
  409. package/dist/files/upload-types.js +234 -0
  410. package/dist/files/upload-types.js.map +1 -0
  411. package/dist/forms/protection.d.ts +0 -8
  412. package/dist/forms/protection.d.ts.map +1 -1
  413. package/dist/forms/protection.js +2 -10
  414. package/dist/forms/protection.js.map +1 -1
  415. package/dist/images/icons.d.ts.map +1 -1
  416. package/dist/images/icons.js +2 -0
  417. package/dist/images/icons.js.map +1 -1
  418. package/dist/images/index.d.ts +1 -1
  419. package/dist/images/index.d.ts.map +1 -1
  420. package/dist/images/index.js +1 -1
  421. package/dist/images/index.js.map +1 -1
  422. package/dist/images/markup.d.ts +4 -1
  423. package/dist/images/markup.d.ts.map +1 -1
  424. package/dist/images/markup.js +10 -6
  425. package/dist/images/markup.js.map +1 -1
  426. package/dist/images/paths.d.ts +1 -4
  427. package/dist/images/paths.d.ts.map +1 -1
  428. package/dist/images/paths.js +6 -12
  429. package/dist/images/paths.js.map +1 -1
  430. package/dist/images/variants.d.ts +4 -2
  431. package/dist/images/variants.d.ts.map +1 -1
  432. package/dist/images/variants.js +21 -21
  433. package/dist/images/variants.js.map +1 -1
  434. package/dist/index.d.ts +1 -0
  435. package/dist/index.d.ts.map +1 -1
  436. package/dist/index.js +1 -0
  437. package/dist/index.js.map +1 -1
  438. package/dist/indexnow.d.ts +4 -2
  439. package/dist/indexnow.d.ts.map +1 -1
  440. package/dist/indexnow.js +32 -20
  441. package/dist/indexnow.js.map +1 -1
  442. package/dist/indieauth/tokens.d.ts +0 -2
  443. package/dist/indieauth/tokens.d.ts.map +1 -1
  444. package/dist/indieauth/tokens.js +2 -4
  445. package/dist/indieauth/tokens.js.map +1 -1
  446. package/dist/jobs/file-records.d.ts +13 -0
  447. package/dist/jobs/file-records.d.ts.map +1 -0
  448. package/dist/jobs/file-records.js +104 -0
  449. package/dist/jobs/file-records.js.map +1 -0
  450. package/dist/jobs/in-process.d.ts +10 -0
  451. package/dist/jobs/in-process.d.ts.map +1 -0
  452. package/dist/jobs/in-process.js +45 -0
  453. package/dist/jobs/in-process.js.map +1 -0
  454. package/dist/jobs/lock-file.d.ts +13 -0
  455. package/dist/jobs/lock-file.d.ts.map +1 -0
  456. package/dist/jobs/lock-file.js +107 -0
  457. package/dist/jobs/lock-file.js.map +1 -0
  458. package/dist/jobs/processes.d.ts +11 -0
  459. package/dist/jobs/processes.d.ts.map +1 -0
  460. package/dist/jobs/processes.js +50 -0
  461. package/dist/jobs/processes.js.map +1 -0
  462. package/dist/jobs/queue.d.ts +18 -0
  463. package/dist/jobs/queue.d.ts.map +1 -0
  464. package/dist/jobs/queue.js +220 -0
  465. package/dist/jobs/queue.js.map +1 -0
  466. package/dist/jobs/types.d.ts +159 -0
  467. package/dist/jobs/types.d.ts.map +1 -0
  468. package/dist/jobs/types.js +22 -0
  469. package/dist/jobs/types.js.map +1 -0
  470. package/dist/mail/index.d.ts +0 -2
  471. package/dist/mail/index.d.ts.map +1 -1
  472. package/dist/mail/index.js +0 -1
  473. package/dist/mail/index.js.map +1 -1
  474. package/dist/maintenance.d.ts +5 -42
  475. package/dist/maintenance.d.ts.map +1 -1
  476. package/dist/maintenance.js +4 -67
  477. package/dist/maintenance.js.map +1 -1
  478. package/dist/media/library.d.ts +1 -1
  479. package/dist/media/library.d.ts.map +1 -1
  480. package/dist/media/library.js +4 -1
  481. package/dist/media/library.js.map +1 -1
  482. package/dist/media/uploads.d.ts +1 -1
  483. package/dist/media/uploads.d.ts.map +1 -1
  484. package/dist/media/uploads.js +1 -1
  485. package/dist/media/uploads.js.map +1 -1
  486. package/dist/micropub/endpoint.js +10 -10
  487. package/dist/micropub/endpoint.js.map +1 -1
  488. package/dist/micropub/media.d.ts +0 -2
  489. package/dist/micropub/media.d.ts.map +1 -1
  490. package/dist/micropub/media.js +5 -7
  491. package/dist/micropub/media.js.map +1 -1
  492. package/dist/notifications/comments.d.ts +4 -2
  493. package/dist/notifications/comments.d.ts.map +1 -1
  494. package/dist/notifications/comments.js +77 -65
  495. package/dist/notifications/comments.js.map +1 -1
  496. package/dist/notifications/digest.d.ts +2 -4
  497. package/dist/notifications/digest.d.ts.map +1 -1
  498. package/dist/notifications/digest.js +9 -10
  499. package/dist/notifications/digest.js.map +1 -1
  500. package/dist/notifications/index.d.ts +3 -3
  501. package/dist/notifications/index.d.ts.map +1 -1
  502. package/dist/notifications/index.js +3 -3
  503. package/dist/notifications/index.js.map +1 -1
  504. package/dist/notifications/mail-service.d.ts +10 -8
  505. package/dist/notifications/mail-service.d.ts.map +1 -1
  506. package/dist/notifications/mail-service.js +70 -70
  507. package/dist/notifications/mail-service.js.map +1 -1
  508. package/dist/notifications/optouts.d.ts +0 -2
  509. package/dist/notifications/optouts.d.ts.map +1 -1
  510. package/dist/notifications/optouts.js +2 -4
  511. package/dist/notifications/optouts.js.map +1 -1
  512. package/dist/notifications/tokens.d.ts +0 -2
  513. package/dist/notifications/tokens.d.ts.map +1 -1
  514. package/dist/notifications/tokens.js +2 -28
  515. package/dist/notifications/tokens.js.map +1 -1
  516. package/dist/notify.d.ts +4 -2
  517. package/dist/notify.d.ts.map +1 -1
  518. package/dist/notify.js +27 -15
  519. package/dist/notify.js.map +1 -1
  520. package/dist/plugin.d.ts +36 -16
  521. package/dist/plugin.d.ts.map +1 -1
  522. package/dist/plugin.js +1 -1
  523. package/dist/plugin.js.map +1 -1
  524. package/dist/plugins/changes.d.ts +0 -1
  525. package/dist/plugins/changes.d.ts.map +1 -1
  526. package/dist/plugins/changes.js +2 -3
  527. package/dist/plugins/changes.js.map +1 -1
  528. package/dist/plugins/data.d.ts +19 -0
  529. package/dist/plugins/data.d.ts.map +1 -0
  530. package/dist/plugins/data.js +117 -0
  531. package/dist/plugins/data.js.map +1 -0
  532. package/dist/plugins/enabled.d.ts +1 -13
  533. package/dist/plugins/enabled.d.ts.map +1 -1
  534. package/dist/plugins/enabled.js +11 -23
  535. package/dist/plugins/enabled.js.map +1 -1
  536. package/dist/plugins/install.d.ts +1 -1
  537. package/dist/plugins/install.d.ts.map +1 -1
  538. package/dist/plugins/install.js +7 -42
  539. package/dist/plugins/install.js.map +1 -1
  540. package/dist/plugins/migrate-settings.d.ts +7 -0
  541. package/dist/plugins/migrate-settings.d.ts.map +1 -0
  542. package/dist/plugins/migrate-settings.js +41 -0
  543. package/dist/plugins/migrate-settings.js.map +1 -0
  544. package/dist/plugins/registry.d.ts +10 -14
  545. package/dist/plugins/registry.d.ts.map +1 -1
  546. package/dist/plugins/registry.js +56 -36
  547. package/dist/plugins/registry.js.map +1 -1
  548. package/dist/plugins/settings.d.ts +5 -57
  549. package/dist/plugins/settings.d.ts.map +1 -1
  550. package/dist/plugins/settings.js +47 -180
  551. package/dist/plugins/settings.js.map +1 -1
  552. package/dist/plugins/site.d.ts +2 -1
  553. package/dist/plugins/site.d.ts.map +1 -1
  554. package/dist/plugins/site.js +5 -5
  555. package/dist/plugins/site.js.map +1 -1
  556. package/dist/privacy/retention.d.ts +4 -0
  557. package/dist/privacy/retention.d.ts.map +1 -1
  558. package/dist/privacy/retention.js +12 -5
  559. package/dist/privacy/retention.js.map +1 -1
  560. package/dist/settings/akismet.d.ts +9 -0
  561. package/dist/settings/akismet.d.ts.map +1 -0
  562. package/dist/settings/akismet.js +46 -0
  563. package/dist/settings/akismet.js.map +1 -0
  564. package/dist/settings/declare.d.ts +15 -0
  565. package/dist/settings/declare.d.ts.map +1 -0
  566. package/dist/settings/declare.js +20 -0
  567. package/dist/settings/declare.js.map +1 -0
  568. package/dist/settings/dev-mode.d.ts +29 -0
  569. package/dist/settings/dev-mode.d.ts.map +1 -0
  570. package/dist/settings/dev-mode.js +77 -0
  571. package/dist/settings/dev-mode.js.map +1 -0
  572. package/dist/settings/kinds.d.ts +13 -0
  573. package/dist/settings/kinds.d.ts.map +1 -0
  574. package/dist/settings/kinds.js +108 -0
  575. package/dist/settings/kinds.js.map +1 -0
  576. package/dist/settings/mail.d.ts +10 -0
  577. package/dist/settings/mail.d.ts.map +1 -0
  578. package/dist/settings/mail.js +92 -0
  579. package/dist/settings/mail.js.map +1 -0
  580. package/dist/settings/maintenance.d.ts +6 -0
  581. package/dist/settings/maintenance.d.ts.map +1 -0
  582. package/dist/settings/maintenance.js +33 -0
  583. package/dist/settings/maintenance.js.map +1 -0
  584. package/dist/settings/names.d.ts +7 -0
  585. package/dist/settings/names.d.ts.map +1 -0
  586. package/dist/settings/names.js +31 -0
  587. package/dist/settings/names.js.map +1 -0
  588. package/dist/settings/presence.d.ts +2 -0
  589. package/dist/settings/presence.d.ts.map +1 -0
  590. package/dist/settings/presence.js +7 -0
  591. package/dist/settings/presence.js.map +1 -0
  592. package/dist/settings/registry.d.ts +14 -0
  593. package/dist/settings/registry.d.ts.map +1 -0
  594. package/dist/settings/registry.js +369 -0
  595. package/dist/settings/registry.js.map +1 -0
  596. package/dist/settings/types.d.ts +176 -0
  597. package/dist/settings/types.d.ts.map +1 -0
  598. package/dist/settings/types.js +2 -0
  599. package/dist/settings/types.js.map +1 -0
  600. package/dist/site/namespace.d.ts +88 -0
  601. package/dist/site/namespace.d.ts.map +1 -0
  602. package/dist/site/namespace.js +471 -0
  603. package/dist/site/namespace.js.map +1 -0
  604. package/dist/site/setting-rows.d.ts +9 -10
  605. package/dist/site/setting-rows.d.ts.map +1 -1
  606. package/dist/site/setting-rows.js +109 -228
  607. package/dist/site/setting-rows.js.map +1 -1
  608. package/dist/site/settings-form.d.ts.map +1 -1
  609. package/dist/site/settings-form.js +6 -10
  610. package/dist/site/settings-form.js.map +1 -1
  611. package/dist/site/settings.d.ts +6 -322
  612. package/dist/site/settings.d.ts.map +1 -1
  613. package/dist/site/settings.js +13 -76
  614. package/dist/site/settings.js.map +1 -1
  615. package/dist/site/site-json.d.ts +0 -31
  616. package/dist/site/site-json.d.ts.map +1 -1
  617. package/dist/site/site-json.js +5 -49
  618. package/dist/site/site-json.js.map +1 -1
  619. package/dist/site/users.d.ts +0 -9
  620. package/dist/site/users.d.ts.map +1 -1
  621. package/dist/site/users.js +2 -11
  622. package/dist/site/users.js.map +1 -1
  623. package/dist/store/deliveries.d.ts +2 -0
  624. package/dist/store/deliveries.d.ts.map +1 -1
  625. package/dist/store/deliveries.js +7 -0
  626. package/dist/store/deliveries.js.map +1 -1
  627. package/dist/store/queue-database.d.ts +11 -0
  628. package/dist/store/queue-database.d.ts.map +1 -0
  629. package/dist/store/queue-database.js +39 -0
  630. package/dist/store/queue-database.js.map +1 -0
  631. package/dist/supervisor/control.d.ts +1 -0
  632. package/dist/supervisor/control.d.ts.map +1 -1
  633. package/dist/supervisor/control.js +10 -0
  634. package/dist/supervisor/control.js.map +1 -1
  635. package/dist/supervisor/primary.d.ts.map +1 -1
  636. package/dist/supervisor/primary.js +15 -3
  637. package/dist/supervisor/primary.js.map +1 -1
  638. package/dist/testing.d.ts +1 -1
  639. package/dist/testing.d.ts.map +1 -1
  640. package/dist/testing.js +1 -1
  641. package/dist/testing.js.map +1 -1
  642. package/dist/theme/site-data.d.ts +1 -1
  643. package/dist/theme/site-data.d.ts.map +1 -1
  644. package/dist/theme/site-data.js.map +1 -1
  645. package/dist/web/asset-routes.d.ts +6 -2
  646. package/dist/web/asset-routes.d.ts.map +1 -1
  647. package/dist/web/asset-routes.js +12 -4
  648. package/dist/web/asset-routes.js.map +1 -1
  649. package/dist/web/comment-routes.d.ts.map +1 -1
  650. package/dist/web/comment-routes.js +4 -4
  651. package/dist/web/comment-routes.js.map +1 -1
  652. package/dist/web/contact-routes.js +1 -1
  653. package/dist/web/contact-routes.js.map +1 -1
  654. package/dist/web/context.d.ts +5 -0
  655. package/dist/web/context.d.ts.map +1 -1
  656. package/dist/web/context.js +9 -4
  657. package/dist/web/context.js.map +1 -1
  658. package/dist/web/conversation.d.ts +1 -1
  659. package/dist/web/conversation.d.ts.map +1 -1
  660. package/dist/web/conversation.js +59 -43
  661. package/dist/web/conversation.js.map +1 -1
  662. package/dist/web/document-page.d.ts.map +1 -1
  663. package/dist/web/document-page.js +5 -4
  664. package/dist/web/document-page.js.map +1 -1
  665. package/dist/web/document-site.d.ts +1 -1
  666. package/dist/web/document-site.d.ts.map +1 -1
  667. package/dist/web/document-site.js +2 -1
  668. package/dist/web/document-site.js.map +1 -1
  669. package/dist/web/embed.js +1 -1
  670. package/dist/web/embed.js.map +1 -1
  671. package/dist/web/env.d.ts +9 -0
  672. package/dist/web/env.d.ts.map +1 -1
  673. package/dist/web/federation-routes.d.ts.map +1 -1
  674. package/dist/web/federation-routes.js +5 -2
  675. package/dist/web/federation-routes.js.map +1 -1
  676. package/dist/web/feed-item.js +1 -1
  677. package/dist/web/feed-item.js.map +1 -1
  678. package/dist/web/feed-routes.d.ts +3 -4
  679. package/dist/web/feed-routes.d.ts.map +1 -1
  680. package/dist/web/feed-routes.js +17 -15
  681. package/dist/web/feed-routes.js.map +1 -1
  682. package/dist/web/health.js +1 -1
  683. package/dist/web/health.js.map +1 -1
  684. package/dist/web/index.d.ts +1 -1
  685. package/dist/web/index.d.ts.map +1 -1
  686. package/dist/web/index.js.map +1 -1
  687. package/dist/web/indieauth-activity-log.d.ts +0 -2
  688. package/dist/web/indieauth-activity-log.d.ts.map +1 -1
  689. package/dist/web/indieauth-activity-log.js +2 -4
  690. package/dist/web/indieauth-activity-log.js.map +1 -1
  691. package/dist/web/indieauth-bearer.js +2 -2
  692. package/dist/web/indieauth-bearer.js.map +1 -1
  693. package/dist/web/indieauth-discovery.d.ts +0 -4
  694. package/dist/web/indieauth-discovery.d.ts.map +1 -1
  695. package/dist/web/indieauth-discovery.js +3 -10
  696. package/dist/web/indieauth-discovery.js.map +1 -1
  697. package/dist/web/indieauth-token.d.ts.map +1 -1
  698. package/dist/web/indieauth-token.js +3 -3
  699. package/dist/web/indieauth-token.js.map +1 -1
  700. package/dist/web/listing-pages.d.ts.map +1 -1
  701. package/dist/web/listing-pages.js +1 -2
  702. package/dist/web/listing-pages.js.map +1 -1
  703. package/dist/web/maintenance.js +3 -3
  704. package/dist/web/maintenance.js.map +1 -1
  705. package/dist/web/page-sources.d.ts +1 -2
  706. package/dist/web/page-sources.d.ts.map +1 -1
  707. package/dist/web/page-sources.js +6 -7
  708. package/dist/web/page-sources.js.map +1 -1
  709. package/dist/web/paths.js +1 -1
  710. package/dist/web/paths.js.map +1 -1
  711. package/dist/web/pingback-routes.d.ts.map +1 -1
  712. package/dist/web/pingback-routes.js +3 -3
  713. package/dist/web/pingback-routes.js.map +1 -1
  714. package/dist/web/plugin-federation.js +50 -40
  715. package/dist/web/plugin-federation.js.map +1 -1
  716. package/dist/web/render.d.ts +12 -5
  717. package/dist/web/render.d.ts.map +1 -1
  718. package/dist/web/render.js +36 -22
  719. package/dist/web/render.js.map +1 -1
  720. package/dist/web/request.js +1 -1
  721. package/dist/web/request.js.map +1 -1
  722. package/dist/web/routes.d.ts.map +1 -1
  723. package/dist/web/routes.js +8 -9
  724. package/dist/web/routes.js.map +1 -1
  725. package/dist/web/site-index.d.ts.map +1 -1
  726. package/dist/web/site-index.js +1 -2
  727. package/dist/web/site-index.js.map +1 -1
  728. package/dist/web/site-view.d.ts +0 -2
  729. package/dist/web/site-view.d.ts.map +1 -1
  730. package/dist/web/site-view.js +0 -2
  731. package/dist/web/site-view.js.map +1 -1
  732. package/dist/web/webmention-routes.d.ts.map +1 -1
  733. package/dist/web/webmention-routes.js +2 -2
  734. package/dist/web/webmention-routes.js.map +1 -1
  735. package/dist/web/well-known.d.ts.map +1 -1
  736. package/dist/web/well-known.js +6 -7
  737. package/dist/web/well-known.js.map +1 -1
  738. package/dist/webmention/cited-picture.js +1 -1
  739. package/dist/webmention/cited-picture.js.map +1 -1
  740. package/dist/webmention/pingback.d.ts +1 -8
  741. package/dist/webmention/pingback.d.ts.map +1 -1
  742. package/dist/webmention/pingback.js +2 -11
  743. package/dist/webmention/pingback.js.map +1 -1
  744. package/dist/webmention/receive.d.ts +3 -1
  745. package/dist/webmention/receive.d.ts.map +1 -1
  746. package/dist/webmention/receive.js +5 -3
  747. package/dist/webmention/receive.js.map +1 -1
  748. package/dist/webmention/reply-contexts.d.ts +14 -3
  749. package/dist/webmention/reply-contexts.d.ts.map +1 -1
  750. package/dist/webmention/reply-contexts.js +12 -10
  751. package/dist/webmention/reply-contexts.js.map +1 -1
  752. package/dist/webmention/service.d.ts +3 -1
  753. package/dist/webmention/service.d.ts.map +1 -1
  754. package/dist/webmention/service.js +66 -53
  755. package/dist/webmention/service.js.map +1 -1
  756. package/package.json +13 -11
  757. package/themes/default/partials/post-list.njk +19 -14
  758. package/themes/default/src/style.css +12 -0
  759. package/themes/default/static/style.css +19 -0
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/cms/services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/cms/services.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAK9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,OAAO,KAAK,EAAwB,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAExF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAO/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAQ9D,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,cAAc,EACf,MAAM,wBAAwB,CAAC;AAUhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAM7D,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAUtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAErF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,KAAK,EAAU,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGtD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAE3D,mGAAmG;AACnG,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAE1D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAC;CACxC;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,OAAO,EACP,KAAK,EACL,KAAK,EACL,cAAc,EACd,QAAQ,GACT,EAAE,MAAM,GAAG,QAAQ,CAiYnB"}
@@ -6,10 +6,19 @@ import { createReplyNotices } from '../comments/reply-notices.js';
6
6
  import { createContentSync, createScheduler } from '../content/index.js';
7
7
  import { createReplyBackfill, signedRepliesLoader } from '../federation/backfill.js';
8
8
  import { citedPostReader } from '../federation/cited-post.js';
9
+ import { mintMissingIndexNowKey, SITE } from '../site/namespace.js';
10
+ import { messageOf } from '../util/errors.js';
9
11
  import { handleLearner } from '../federation/handles.js';
10
12
  import { createActorProfileService, createDeliveryService, createRelayService, createSiteFederation, signedProfileLoader, } from '../federation/index.js';
11
- import { createSettlingQueue } from '../federation/queue.js';
13
+ import { createFederationQueue } from '../federation/queue.js';
12
14
  import { settleImageVariants } from '../images/variants.js';
15
+ import { stripMetadataJob } from '../content/metadata/strip-job.js';
16
+ import { siteExportJob } from '../export/export-job.js';
17
+ import { resendJob } from '../federation/resend-job.js';
18
+ import { JOBS, dataPath } from '../files/data-files.js';
19
+ import { createFileRecords } from '../jobs/file-records.js';
20
+ import { createInProcessTransport } from '../jobs/in-process.js';
21
+ import { createJobQueue } from '../jobs/queue.js';
13
22
  import { createIndexNowNotifier } from '../indexnow.js';
14
23
  import { activityLogSettled } from '../web/indieauth-activity-log.js';
15
24
  import { createIndieAuthState } from '../indieauth/grants.js';
@@ -30,8 +39,8 @@ import { siteRecords } from './site-records.js';
30
39
  export const SCHEDULE_WATERMARK_KEY = 'schedule.watermark';
31
40
  /** Where the instant the scheduler first ran on this site lives in {@link AdminStore.getState}. */
32
41
  export const SCHEDULE_FIRST_RUN_KEY = 'schedule.firstRun';
33
- export function createServices({ resolved, plugins, store, admin, commentRecords, }) {
34
- const site = { admin, store, config: resolved };
42
+ export function createServices({ resolved, plugins, store, admin, commentRecords, settings, }) {
43
+ const site = { admin, store, config: resolved, settings };
35
44
  // Which theme this site renders through (decision-15). One source for the
36
45
  // whole CMS: the pages, the `/theme/` assets and the site's email all read
37
46
  // it, so they cannot disagree about which theme is in use and a choice that
@@ -67,7 +76,7 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
67
76
  // read per send, so a key pasted into the settings screen sends the next
68
77
  // message and one removed stops the message after it, neither needing a
69
78
  // restart. With nothing configured, sending is a line in the log.
70
- const mail = createMailService({ config: resolved, themes, ...resolved.mail });
79
+ const mail = createMailService({ config: resolved, settings, themes, ...resolved.mail });
71
80
  // The one reader of the two indexes a conversation is made of. The page, the
72
81
  // per-post comments feed, `/comments/feed/` and the `source:comments` count
73
82
  // on a post feed are all drawn from it, so a reader cannot be shown one
@@ -84,31 +93,35 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
84
93
  config: resolved,
85
94
  lookup: resolved.hostLookup,
86
95
  fediverse: citedPostReader(() => federationContext()),
87
- held: (target) => {
88
- const found = conversation.heldAt(target);
89
- return found === undefined ? undefined : heldReplyContext(target, found);
96
+ held: {
97
+ settings,
98
+ at: (target, site) => {
99
+ const found = conversation.heldAt(target, site);
100
+ return found === undefined ? undefined : heldReplyContext(target, found);
101
+ },
90
102
  },
91
103
  onStored: (target, previous) => {
92
104
  delivery.citedPageStored(target, previous);
93
- const original = replyContexts.read(target)?.original;
105
+ const original = replyContexts.stored(target)?.original;
94
106
  if (original !== undefined && original !== previous?.original) {
95
107
  webmentions.originalFound(target, original);
96
108
  }
97
109
  },
98
110
  });
99
- const cited = (url) => replyContexts.read(url);
111
+ const citedWith = (site) => (url) => replyContexts.read(url, site);
112
+ const cited = async () => citedWith(await settings.values(SITE));
100
113
  // The faces in a conversation, fetched here and served from here so a
101
114
  // reader's address never reaches the servers they live on (TASK-134).
102
115
  const avatars = createAvatarService({ admin, config: resolved });
103
116
  // What keeps a site from holding its readers' personal data for longer than
104
117
  // its settings say (TASK-135).
105
- const retention = createRetentionService({ admin, config: resolved });
118
+ const retention = createRetentionService({ admin, config: resolved, settings });
106
119
  const renderer = createRenderer({
107
120
  config: resolved,
108
121
  themes,
109
122
  // The stored context of a reply's target: a file read, never a fetch, so
110
123
  // a page is drawn without waiting on anybody's server (TASK-123).
111
- replyContext: cited,
124
+ replyContext: (target, site) => replyContexts.read(target, site),
112
125
  // What has been said about a post, from the very reader the comments
113
126
  // feeds are published from, so the page and the feed cannot disagree.
114
127
  conversation: conversation.thread,
@@ -117,16 +130,16 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
117
130
  store,
118
131
  redirects,
119
132
  siteData,
120
- mailConfigured: () => mail.configured(),
121
133
  }),
122
134
  });
123
135
  const federationKv = resolved.federation.kv ?? new MemoryKvStore();
124
- const federationQueue = resolved.federation.queue === undefined ? createSettlingQueue() : undefined;
136
+ const federationQueue = createFederationQueue(resolved.federation.queue, site);
125
137
  const federation = createSiteFederation({
126
138
  baseUrl: resolved.baseUrl,
127
139
  ...resolved.federation,
128
- ...(federationQueue === undefined ? {} : { queue: federationQueue }),
140
+ queue: federationQueue ?? null,
129
141
  kv: federationKv,
142
+ federationOptions: { manuallyStartQueue: true },
130
143
  });
131
144
  // The names and faces of the actors who are not followers (TASK-184),
132
145
  // fetched in the background when one is heard from and on a sweep.
@@ -135,8 +148,12 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
135
148
  config: resolved,
136
149
  load: signedProfileLoader(() => federationContext()),
137
150
  });
138
- const federated = { ...site, actorProfiles, cited };
139
- const federationContext = () => federation.createContext(new URL(resolved.baseUrl), federated);
151
+ const federated = { ...site, actorProfiles, cited: citedWith };
152
+ const federationData = async () => {
153
+ const settled = await settings.values(SITE);
154
+ return { ...federated, site: settled, cited: citedWith(settled) };
155
+ };
156
+ const federationContext = async () => federation.createContext(new URL(resolved.baseUrl), await federationData());
140
157
  const learnHandles = handleLearner(federationContext);
141
158
  const replyBackfill = createReplyBackfill({
142
159
  ...site,
@@ -170,15 +187,18 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
170
187
  const webmentions = createWebmentionService({
171
188
  ...site,
172
189
  notifications,
173
- originalOf: (url) => replyContexts.read(url)?.original,
190
+ originalOf: (url) => replyContexts.stored(url)?.original,
174
191
  conversation,
175
192
  });
176
193
  // The notify server listens to the index for the same reason: a post edited
177
194
  // on disk changed the same feeds as one saved through the editor.
178
- const notifier = createFeedNotifier({ config: resolved });
195
+ const notifier = createFeedNotifier({ config: resolved, settings });
179
196
  // IndexNow listens for the same reason, and wants the pages as well as the
180
197
  // posts: a search engine indexes both (TASK-151).
181
- const indexNow = createIndexNowNotifier({ config: resolved });
198
+ const indexNow = createIndexNowNotifier({ config: resolved, settings });
199
+ mintMissingIndexNowKey(settings, 'boot').catch((thrown) => {
200
+ console.error(`No IndexNow key was minted: ${messageOf(thrown)}`);
201
+ });
182
202
  // A post whose date is in the future is held back (TASK-44), and nothing
183
203
  // watches a clock: this is what notices that one has come due and reports it
184
204
  // as the publish it is, so delivery, the notifier and a site's `onPublish`
@@ -203,7 +223,23 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
203
223
  // database has never heard of is followed here, which is what makes a
204
224
  // rebuilt database catch up rather than silently stop federating to it.
205
225
  const relays = createRelayService({ ...federated, federation });
206
- relays.sync();
226
+ relays.sync().catch((thrown) => {
227
+ console.warn(`The relays could not be read: ${messageOf(thrown)}`);
228
+ });
229
+ settings.watch(SITE.relays, async () => {
230
+ await relays.sync();
231
+ });
232
+ const jobs = createJobQueue({
233
+ transport: resolved.jobs.transport ?? createInProcessTransport(),
234
+ records: resolved.jobs.records ?? createFileRecords(dataPath(resolved.dataDir, JOBS)),
235
+ jobs: [
236
+ stripMetadataJob(resolved.contentDir),
237
+ resendJob({ store, delivery, webmentions }),
238
+ siteExportJob({ config: resolved, settings, plugins }, resolved.now),
239
+ ...(resolved.jobs.definitions ?? []),
240
+ ],
241
+ now: resolved.now,
242
+ });
207
243
  const changeSubscribers = [
208
244
  // A watched change waits for its burst to settle, as a scan does: a git
209
245
  // pull that moves a post and adds another at its old URL must not hand the
@@ -242,7 +278,7 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
242
278
  // (a salmention, TASK-320).
243
279
  const conversationWriteSubscribers = [
244
280
  (written) => {
245
- replyNotices.heard(written);
281
+ replyNotices.queueNoticesFor(written);
246
282
  },
247
283
  (written) => {
248
284
  webmentions.heard(written);
@@ -268,9 +304,31 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
268
304
  },
269
305
  settled: () => scheduler.settled(),
270
306
  },
307
+ // After the scan, so a job reads an index that is up to date. Settled
308
+ // before delivery, so what a job queued there is waited for after it.
309
+ {
310
+ start: () => jobs.start(),
311
+ stop: () => {
312
+ jobs.stop();
313
+ },
314
+ settled: () => jobs.close(),
315
+ },
271
316
  { settled: () => delivery.settled() },
272
317
  { settled: () => relays.settled() },
273
318
  {
319
+ start: async () => {
320
+ if (federationQueue === undefined)
321
+ return;
322
+ if (federationQueue.kind === 'pausing')
323
+ federationQueue.resume();
324
+ federation.startQueue(await federationData()).catch((error) => {
325
+ console.error(`The federation queue stopped: ${messageOf(error)}`);
326
+ });
327
+ },
328
+ stop: () => {
329
+ if (federationQueue?.kind === 'pausing')
330
+ federationQueue.pause();
331
+ },
274
332
  settled: async () => {
275
333
  await federationQueue?.settled();
276
334
  },
@@ -304,6 +362,8 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
304
362
  start: () => plugins.reconcile(readEnabledPlugins(resolved.contentDir)),
305
363
  stop: (ending) => stopPlugins(plugins, ending),
306
364
  },
365
+ { settled: () => replyNotices.settled() },
366
+ { settled: () => notifications.settled() },
307
367
  { settled: () => mail.settled() },
308
368
  // A page render derives an upload's variants in the background; the
309
369
  // encode finishes before the directories it writes into can be removed.
@@ -333,12 +393,9 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
333
393
  scheduler,
334
394
  learnHandles,
335
395
  siteRecords: siteRecords(resolved),
336
- maintenance: createMaintenanceSwitch({
337
- dataDir: resolved.dataDir,
338
- forced: resolved.maintenance,
339
- now: resolved.now,
340
- }),
396
+ maintenance: createMaintenanceSwitch({ settings, now: resolved.now }),
341
397
  indieauth: createIndieAuthState(resolved.now),
398
+ jobs,
342
399
  lifecycle,
343
400
  };
344
401
  }
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/cms/services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/cms/services.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"site-records.d.ts","sourceRoot":"","sources":["../../src/cms/site-records.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKvD,wBAAgB,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,SAAS,CAAC,GAAG,WAAW,CAQ/F"}
1
+ {"version":3,"file":"site-records.d.ts","sourceRoot":"","sources":["../../src/cms/site-records.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,wBAAgB,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,SAAS,CAAC,GAAG,WAAW,CAO/F"}
@@ -1,13 +1,11 @@
1
1
  import { existsSync } from 'node:fs';
2
2
  import { commentsFile } from '../comments/records.js';
3
- import { readSiteSettings } from '../site/site-json.js';
4
3
  import { listUsers } from '../site/users.js';
5
4
  import { syndicationTargetsReader } from '../webmention/syndication.js';
6
5
  export function siteRecords(config) {
7
6
  const syndicationTargets = syndicationTargetsReader(config.contentDir);
8
7
  return {
9
8
  users: () => listUsers(config.dataDir),
10
- timezone: () => readSiteSettings(config.contentDir).timezone,
11
9
  syndicationTargets: () => syndicationTargets(),
12
10
  hasComments: (slug) => existsSync(commentsFile(config.contentDir, slug)),
13
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"site-records.js","sourceRoot":"","sources":["../../src/cms/site-records.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,MAAM,UAAU,WAAW,CAAC,MAAsD;IAChF,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvE,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;QACtC,QAAQ,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ;QAC5D,kBAAkB,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE;QAC9C,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;KACzE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"site-records.js","sourceRoot":"","sources":["../../src/cms/site-records.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,MAAM,UAAU,WAAW,CAAC,MAAsD;IAChF,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvE,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;QACtC,kBAAkB,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE;QAC9C,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;KACzE,CAAC;AACJ,CAAC"}
@@ -1,3 +1,5 @@
1
+ import type { AkismetKeyStatus } from '../settings/akismet.ts';
2
+ import type { ChangedBy, SettingsRegistry } from '../settings/types.ts';
1
3
  import type { CommentChecker } from '../forms/checker.ts';
2
4
  /**
3
5
  * Akismet, as the one {@link CommentChecker} this package ships.
@@ -8,18 +10,16 @@ import type { CommentChecker } from '../forms/checker.ts';
8
10
  *
9
11
  * Two things make it optional at runtime rather than at build time:
10
12
  *
11
- * - **The key is a credential**, so it lives in `data/akismet.json` at mode
12
- * `0600` beside the password hashes and the actor's private keys, and never
13
- * in `content/_data/site.json`, which is public, in git and published with
14
- * the site.
15
- * - **The key file is read on every call**, so a key pasted into the settings
13
+ * - **The key is a credential**, so it is the secret `akismet.key` setting,
14
+ * kept in `data/akismet.json` at mode `0600` or set by
15
+ * `GEEKITY_AKISMET__KEY`, and never in `content/_data/site.json`, which is
16
+ * public, in git and published with the site.
17
+ * - **The key is read on every call**, so a key pasted into the settings
16
18
  * screen starts filtering the next comment and a key removed stops filtering
17
19
  * at once. Without one, nothing is sent anywhere and the verdict is
18
20
  * `unknown` — the site's own rules decide, exactly as they did before
19
21
  * anybody had heard of Akismet.
20
22
  */
21
- /** Where the key lives, under `dataDir`. */
22
- export declare const AKISMET_KEY_FILE = "akismet.json";
23
23
  /** The API this speaks. */
24
24
  export declare const AKISMET_ENDPOINT = "https://rest.akismet.com/1.1";
25
25
  /**
@@ -36,60 +36,27 @@ export declare const AKISMET_USER_AGENT = "Geekity CMS/1.0 | Akismet/1.1";
36
36
  * logged failure and no opinion, and the comment goes to the queue.
37
37
  */
38
38
  export declare const AKISMET_TIMEOUT_MS = 10000;
39
- /** What the last {@link verifyAkismetKey} of a key came to. */
40
- export type AkismetKeyStatus =
41
- /** Akismet said `valid`. */
42
- 'valid'
43
- /** Akismet said `invalid`: the key is not one of theirs, or not any more. */
44
- | 'invalid'
45
- /** Akismet could not be reached, so nothing is known either way. */
46
- | 'unchecked';
47
- /** The key as `data/akismet.json` holds it. */
48
- export interface AkismetKeyRecord {
49
- /** The key itself. */
50
- key: string;
51
- /** What Akismet said about it when it was last checked. */
52
- status: AkismetKeyStatus;
53
- /** When that was, as an instant. */
54
- checkedAt: string;
55
- }
56
- /**
57
- * The stored key, or `undefined` when the site has none.
58
- *
59
- * Read tolerantly and synchronously, like every other file this CMS treats as
60
- * truth: a file that will not parse, or one with no key in it, is a site with
61
- * no Akismet rather than a site that will not boot.
62
- */
63
- export declare function readAkismetKey(dataDir: string): AkismetKeyRecord | undefined;
64
- /** Write the key, private to the account the site runs as. */
65
- export declare function writeAkismetKey(dataDir: string, record: AkismetKeyRecord): Promise<void>;
66
- /** Forget the key, which is how a site turns Akismet off. */
67
- export declare function removeAkismetKey(dataDir: string): Promise<void>;
68
- /** Where one site's key file is. */
69
- export declare function akismetKeyPath(dataDir: string): string;
70
39
  /** What {@link verifyAkismetKey} needs. */
71
40
  export interface VerifyAkismetKeyOptions {
72
- /** The key to check. */
73
- key: string;
41
+ settings: SettingsRegistry;
74
42
  /** The site's public origin, which Akismet calls the blog. */
75
43
  blog: string;
44
+ at: Date;
45
+ by: ChangedBy;
76
46
  /** The HTTP client. Defaults to the global `fetch`; a test hands in its own. */
77
47
  fetch?: typeof fetch | undefined;
78
48
  /** How long to wait. */
79
49
  timeoutMs?: number | undefined;
80
50
  }
81
51
  /**
82
- * Ask Akismet whether a key is one of theirs.
83
- *
84
52
  * Three answers rather than two, because "we could not ask" is not "no": a key
85
53
  * typed while the machine is offline should not be reported as a bad key, and
86
54
  * the settings screen says which of the two happened.
87
55
  */
88
- export declare function verifyAkismetKey(options: VerifyAkismetKeyOptions): Promise<AkismetKeyStatus>;
56
+ export declare function verifyAkismetKey(options: VerifyAkismetKeyOptions): Promise<AkismetKeyStatus | undefined>;
89
57
  /** What {@link createAkismetChecker} needs around it. */
90
58
  export interface AkismetCheckerOptions {
91
- /** Where the key file lives. Read on every call, so a new key needs no restart. */
92
- dataDir: string;
59
+ settings: SettingsRegistry;
93
60
  /**
94
61
  * The site's language, as `blog_lang` wants it.
95
62
  *
@@ -97,7 +64,7 @@ export interface AkismetCheckerOptions {
97
64
  * rewrites: reading it when a comment arrives is what makes a change to it
98
65
  * take effect at once, the way every other setting does (decision-9).
99
66
  */
100
- language: () => string;
67
+ language: () => Promise<string>;
101
68
  /** The HTTP client. Defaults to the global `fetch`; a test hands in its own. */
102
69
  fetch?: typeof fetch | undefined;
103
70
  /** Where a failure is reported. Defaults to the console. */
@@ -1 +1 @@
1
- {"version":3,"file":"akismet.d.ts","sourceRoot":"","sources":["../../src/comments/akismet.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAoC,MAAM,qBAAqB,CAAC;AAE5F;;;;;;;;;;;;;;;;;;GAkBG;AAEH,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,2BAA2B;AAC3B,eAAO,MAAM,gBAAgB,iCAAiC,CAAC;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAElE;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,+DAA+D;AAC/D,MAAM,MAAM,gBAAgB;AAC1B,4BAA4B;AAC1B,OAAO;AACT,6EAA6E;GAC3E,SAAS;AACX,oEAAoE;GAClE,WAAW,CAAC;AAEhB,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,MAAM,EAAE,gBAAgB,CAAC;IACzB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAsB5E;AAED,8DAA8D;AAC9D,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9F;AAED,6DAA6D;AAC7D,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErE;AAED,oCAAoC;AACpC,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,2CAA2C;AAC3C,MAAM,WAAW,uBAAuB;IACtC,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;IACjC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAY3B;AAED,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACpC,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,MAAM,CAAC;IACvB,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;IACjC,4DAA4D;IAC5D,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,SAAS,CAAC;IACrD,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,cAAc,CA+DnF"}
1
+ {"version":3,"file":"akismet.d.ts","sourceRoot":"","sources":["../../src/comments/akismet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxE,OAAO,KAAK,EAAE,cAAc,EAAoC,MAAM,qBAAqB,CAAC;AAE5F;;;;;;;;;;;;;;;;;;GAkBG;AAEH,2BAA2B;AAC3B,eAAO,MAAM,gBAAgB,iCAAiC,CAAC;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAElE;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,2CAA2C;AAC3C,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,IAAI,CAAC;IACT,EAAE,EAAE,SAAS,CAAC;IACd,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;IACjC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAcvC;AAmBD,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;IACjC,4DAA4D;IAC5D,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,SAAS,CAAC;IACrD,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,cAAc,CAkEnF"}
@@ -1,6 +1,4 @@
1
- import { rm } from 'node:fs/promises';
2
- import path from 'node:path';
3
- import { readFileIfPresentSync, writeFileAtomically } from '../files/atomic.js';
1
+ import { AKISMET } from '../settings/akismet.js';
4
2
  import { messageOf } from '../util/errors.js';
5
3
  import { COMMENT_FIELDS } from './submission.js';
6
4
  /**
@@ -12,18 +10,16 @@ import { COMMENT_FIELDS } from './submission.js';
12
10
  *
13
11
  * Two things make it optional at runtime rather than at build time:
14
12
  *
15
- * - **The key is a credential**, so it lives in `data/akismet.json` at mode
16
- * `0600` beside the password hashes and the actor's private keys, and never
17
- * in `content/_data/site.json`, which is public, in git and published with
18
- * the site.
19
- * - **The key file is read on every call**, so a key pasted into the settings
13
+ * - **The key is a credential**, so it is the secret `akismet.key` setting,
14
+ * kept in `data/akismet.json` at mode `0600` or set by
15
+ * `GEEKITY_AKISMET__KEY`, and never in `content/_data/site.json`, which is
16
+ * public, in git and published with the site.
17
+ * - **The key is read on every call**, so a key pasted into the settings
20
18
  * screen starts filtering the next comment and a key removed stops filtering
21
19
  * at once. Without one, nothing is sent anywhere and the verdict is
22
20
  * `unknown` — the site's own rules decide, exactly as they did before
23
21
  * anybody had heard of Akismet.
24
22
  */
25
- /** Where the key lives, under `dataDir`. */
26
- export const AKISMET_KEY_FILE = 'akismet.json';
27
23
  /** The API this speaks. */
28
24
  export const AKISMET_ENDPOINT = 'https://rest.akismet.com/1.1';
29
25
  /**
@@ -41,59 +37,23 @@ export const AKISMET_USER_AGENT = 'Geekity CMS/1.0 | Akismet/1.1';
41
37
  */
42
38
  export const AKISMET_TIMEOUT_MS = 10_000;
43
39
  /**
44
- * The stored key, or `undefined` when the site has none.
45
- *
46
- * Read tolerantly and synchronously, like every other file this CMS treats as
47
- * truth: a file that will not parse, or one with no key in it, is a site with
48
- * no Akismet rather than a site that will not boot.
49
- */
50
- export function readAkismetKey(dataDir) {
51
- const raw = readFileIfPresentSync(akismetKeyPath(dataDir));
52
- if (raw === undefined)
53
- return undefined;
54
- let parsed;
55
- try {
56
- parsed = JSON.parse(raw);
57
- }
58
- catch {
59
- return undefined;
60
- }
61
- if (typeof parsed !== 'object' || parsed === null)
62
- return undefined;
63
- const file = parsed;
64
- const key = typeof file['key'] === 'string' ? file['key'].trim() : '';
65
- if (key === '')
66
- return undefined;
67
- const status = file['status'];
68
- return {
69
- key,
70
- status: status === 'valid' || status === 'invalid' ? status : 'unchecked',
71
- checkedAt: typeof file['checkedAt'] === 'string' ? file['checkedAt'] : '',
72
- };
73
- }
74
- /** Write the key, private to the account the site runs as. */
75
- export async function writeAkismetKey(dataDir, record) {
76
- await writeFileAtomically(akismetKeyPath(dataDir), `${JSON.stringify(record, null, 2)}\n`, {
77
- mode: 0o600,
78
- });
79
- }
80
- /** Forget the key, which is how a site turns Akismet off. */
81
- export async function removeAkismetKey(dataDir) {
82
- await rm(akismetKeyPath(dataDir), { force: true });
83
- }
84
- /** Where one site's key file is. */
85
- export function akismetKeyPath(dataDir) {
86
- return path.join(dataDir, AKISMET_KEY_FILE);
87
- }
88
- /**
89
- * Ask Akismet whether a key is one of theirs.
90
- *
91
40
  * Three answers rather than two, because "we could not ask" is not "no": a key
92
41
  * typed while the machine is offline should not be reported as a bad key, and
93
42
  * the settings screen says which of the two happened.
94
43
  */
95
44
  export async function verifyAkismetKey(options) {
96
- const body = new URLSearchParams({ api_key: options.key, blog: options.blog });
45
+ const key = await options.settings.get(AKISMET.key);
46
+ if (key === '')
47
+ return undefined;
48
+ const status = await askAboutKey(key, options);
49
+ await options.settings.set('akismet', new Map([
50
+ ['status', status],
51
+ ['checked_at', options.at.toISOString()],
52
+ ]), options.by);
53
+ return status;
54
+ }
55
+ async function askAboutKey(key, options) {
56
+ const body = new URLSearchParams({ api_key: key, blog: options.blog });
97
57
  let answer;
98
58
  try {
99
59
  answer = await post(`${AKISMET_ENDPOINT}/verify-key`, body, options.fetch, options.timeoutMs);
@@ -124,11 +84,12 @@ export function createAkismetChecker(options) {
124
84
  };
125
85
  /** Send one call, or nothing at all when the site has no key. */
126
86
  async function send(method, fields) {
127
- const stored = readAkismetKey(options.dataDir);
128
- if (stored === undefined)
87
+ const key = await options.settings.get(AKISMET.key);
88
+ if (key === '')
129
89
  return undefined;
90
+ const language = await options.language();
130
91
  try {
131
- const answer = await post(`${AKISMET_ENDPOINT}/${method}`, fields(stored.key), options.fetch, options.timeoutMs);
92
+ const answer = await post(`${AKISMET_ENDPOINT}/${method}`, fields(key, language), options.fetch, options.timeoutMs);
132
93
  if (!answer.ok) {
133
94
  warn(`Akismet answered ${method} with ${String(answer.status)}.${help(answer)}`);
134
95
  return undefined;
@@ -142,7 +103,7 @@ export function createAkismetChecker(options) {
142
103
  }
143
104
  return {
144
105
  async check(submission) {
145
- const answer = await send('comment-check', (key) => checkFields(key, submission, options));
106
+ const answer = await send('comment-check', (key, language) => checkFields(key, language, submission, options));
146
107
  if (answer === undefined)
147
108
  return 'unknown';
148
109
  const said = answer.body.trim();
@@ -161,15 +122,15 @@ export function createAkismetChecker(options) {
161
122
  return 'unknown';
162
123
  },
163
124
  async reportSpam(report) {
164
- await send('submit-spam', (key) => reportFields(key, report, options));
125
+ await send('submit-spam', (key, language) => reportFields(key, language, report, options));
165
126
  },
166
127
  async reportHam(report) {
167
- await send('submit-ham', (key) => reportFields(key, report, options));
128
+ await send('submit-ham', (key, language) => reportFields(key, language, report, options));
168
129
  },
169
130
  };
170
131
  }
171
132
  /** The fields one `comment-check` carries. */
172
- function checkFields(key, submission, options) {
133
+ function checkFields(key, language, submission, options) {
173
134
  const { comment } = submission;
174
135
  // A webmention is a page linking here rather than a form somebody filled in,
175
136
  // so it has no honeypot to name; a contact message is a form like a
@@ -179,7 +140,7 @@ function checkFields(key, submission, options) {
179
140
  api_key: key,
180
141
  blog: submission.baseUrl,
181
142
  blog_charset: 'UTF-8',
182
- blog_lang: blogLang(options.language()),
143
+ blog_lang: blogLang(language),
183
144
  user_ip: submission.address,
184
145
  user_agent: submission.userAgent,
185
146
  referrer: submission.referrer,
@@ -210,13 +171,13 @@ function checkFields(key, submission, options) {
210
171
  * The content, the author and the permalink are what is left, and they are
211
172
  * what a correction is mostly about.
212
173
  */
213
- function reportFields(key, report, options) {
174
+ function reportFields(key, language, report, options) {
214
175
  const { comment } = report;
215
176
  return fields({
216
177
  api_key: key,
217
178
  blog: report.baseUrl,
218
179
  blog_charset: 'UTF-8',
219
- blog_lang: blogLang(options.language()),
180
+ blog_lang: blogLang(language),
220
181
  permalink: report.url,
221
182
  comment_type: comment.source === 'webmention' ? 'webmention' : 'comment',
222
183
  comment_author: comment.author.name,