@geekity/cms 0.30.0 → 0.32.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 (1637) hide show
  1. package/README.md +26 -4266
  2. package/admin/components/badge.njk +4 -0
  3. package/admin/components/fields.njk +41 -24
  4. package/admin/components/job-status.njk +45 -0
  5. package/admin/components/setting-fields.njk +38 -0
  6. package/admin/layouts/settings-page.njk +16 -0
  7. package/admin/pages/comments/all.njk +1 -2
  8. package/admin/pages/documents/editor.njk +17 -15
  9. package/admin/pages/documents/syndication.njk +4 -4
  10. package/admin/pages/federation/followers.njk +56 -6
  11. package/admin/pages/federation/settings.njk +1 -1
  12. package/admin/pages/media/library.njk +52 -3
  13. package/admin/pages/navigation/menus.njk +2 -2
  14. package/admin/pages/plugins/screen.njk +5 -46
  15. package/admin/pages/settings/discussion.njk +76 -47
  16. package/admin/pages/settings/email.njk +75 -47
  17. package/admin/pages/settings/general.njk +15 -15
  18. package/admin/pages/settings/permalinks.njk +8 -8
  19. package/admin/pages/settings/privacy.njk +6 -6
  20. package/admin/pages/settings/reading.njk +36 -36
  21. package/admin/pages/tools/dev-mode.njk +29 -3
  22. package/admin/pages/tools/export.njk +89 -0
  23. package/admin/pages/tools/maintenance.njk +51 -0
  24. package/admin/pages/users/apps.njk +2 -2
  25. package/admin/pages/users/edit.njk +3 -3
  26. package/admin/pages/users/new.njk +2 -2
  27. package/admin/static/admin.css +80 -0
  28. package/dist/access-log.d.ts +2 -10
  29. package/dist/access-log.d.ts.map +1 -1
  30. package/dist/access-log.js +1 -1
  31. package/dist/access-log.js.map +1 -1
  32. package/dist/{web → admin}/admin-bar.d.ts +3 -2
  33. package/dist/admin/admin-bar.d.ts.map +1 -0
  34. package/dist/{web → admin}/admin-bar.js +20 -17
  35. package/dist/admin/admin-bar.js.map +1 -0
  36. package/dist/{indieauth → admin}/app-activity.d.ts +2 -2
  37. package/dist/admin/app-activity.d.ts.map +1 -0
  38. package/dist/{indieauth → admin}/app-activity.js +6 -7
  39. package/dist/admin/app-activity.js.map +1 -0
  40. package/dist/admin/appearance.d.ts +4 -8
  41. package/dist/admin/appearance.d.ts.map +1 -1
  42. package/dist/admin/appearance.js +19 -20
  43. package/dist/admin/appearance.js.map +1 -1
  44. package/dist/admin/assets.d.ts +1 -8
  45. package/dist/admin/assets.d.ts.map +1 -1
  46. package/dist/admin/assets.js +2 -9
  47. package/dist/admin/assets.js.map +1 -1
  48. package/dist/admin/comments.d.ts +2 -2
  49. package/dist/admin/comments.d.ts.map +1 -1
  50. package/dist/admin/comments.js +17 -19
  51. package/dist/admin/comments.js.map +1 -1
  52. package/dist/admin/confirm-password.d.ts +4 -0
  53. package/dist/admin/confirm-password.d.ts.map +1 -0
  54. package/dist/admin/confirm-password.js +11 -0
  55. package/dist/admin/confirm-password.js.map +1 -0
  56. package/dist/{indieauth → admin}/connected-apps.d.ts +2 -2
  57. package/dist/admin/connected-apps.d.ts.map +1 -0
  58. package/dist/{indieauth → admin}/connected-apps.js +33 -39
  59. package/dist/admin/connected-apps.js.map +1 -0
  60. package/dist/admin/credentials.js +1 -1
  61. package/dist/admin/credentials.js.map +1 -1
  62. package/dist/admin/dev-mode.d.ts +1 -1
  63. package/dist/admin/dev-mode.d.ts.map +1 -1
  64. package/dist/admin/dev-mode.js +35 -10
  65. package/dist/admin/dev-mode.js.map +1 -1
  66. package/dist/admin/documents.d.ts +16 -301
  67. package/dist/admin/documents.d.ts.map +1 -1
  68. package/dist/admin/documents.js +94 -1040
  69. package/dist/admin/documents.js.map +1 -1
  70. package/dist/admin/editor-actions.d.ts +3 -2
  71. package/dist/admin/editor-actions.d.ts.map +1 -1
  72. package/dist/admin/editor-actions.js +8 -9
  73. package/dist/admin/editor-actions.js.map +1 -1
  74. package/dist/admin/editor-fields.d.ts +45 -0
  75. package/dist/admin/editor-fields.d.ts.map +1 -0
  76. package/dist/admin/editor-fields.js +71 -0
  77. package/dist/admin/editor-fields.js.map +1 -0
  78. package/dist/admin/editor-layout.d.ts +2 -10
  79. package/dist/admin/editor-layout.d.ts.map +1 -1
  80. package/dist/admin/editor-layout.js +2 -2
  81. package/dist/admin/editor-layout.js.map +1 -1
  82. package/dist/admin/export.d.ts +10 -0
  83. package/dist/admin/export.d.ts.map +1 -0
  84. package/dist/admin/export.js +72 -0
  85. package/dist/admin/export.js.map +1 -0
  86. package/dist/admin/federation.d.ts +6 -17
  87. package/dist/admin/federation.d.ts.map +1 -1
  88. package/dist/admin/federation.js +49 -104
  89. package/dist/admin/federation.js.map +1 -1
  90. package/dist/admin/flash.d.ts +2 -2
  91. package/dist/admin/flash.d.ts.map +1 -1
  92. package/dist/admin/headers.d.ts +1 -1
  93. package/dist/admin/headers.d.ts.map +1 -1
  94. package/dist/admin/headers.js +1 -1
  95. package/dist/admin/headers.js.map +1 -1
  96. package/dist/admin/index.d.ts +36 -21
  97. package/dist/admin/index.d.ts.map +1 -1
  98. package/dist/admin/index.js +26 -14
  99. package/dist/admin/index.js.map +1 -1
  100. package/dist/{indieauth/consent.d.ts → admin/indieauth-consent.d.ts} +4 -4
  101. package/dist/admin/indieauth-consent.d.ts.map +1 -0
  102. package/dist/{indieauth/consent.js → admin/indieauth-consent.js} +20 -23
  103. package/dist/admin/indieauth-consent.js.map +1 -0
  104. package/dist/admin/job-status.d.ts +25 -0
  105. package/dist/admin/job-status.d.ts.map +1 -0
  106. package/dist/admin/job-status.js +53 -0
  107. package/dist/admin/job-status.js.map +1 -0
  108. package/dist/admin/legacy-migrations.d.ts +131 -0
  109. package/dist/admin/legacy-migrations.d.ts.map +1 -0
  110. package/dist/admin/legacy-migrations.js +236 -0
  111. package/dist/admin/legacy-migrations.js.map +1 -0
  112. package/dist/admin/maintenance.d.ts +9 -0
  113. package/dist/admin/maintenance.d.ts.map +1 -0
  114. package/dist/admin/maintenance.js +42 -0
  115. package/dist/admin/maintenance.js.map +1 -0
  116. package/dist/admin/media.d.ts +8 -109
  117. package/dist/admin/media.d.ts.map +1 -1
  118. package/dist/admin/media.js +35 -188
  119. package/dist/admin/media.js.map +1 -1
  120. package/dist/admin/menu.d.ts.map +1 -1
  121. package/dist/admin/menu.js +11 -7
  122. package/dist/admin/menu.js.map +1 -1
  123. package/dist/admin/messages.d.ts +1 -1
  124. package/dist/admin/messages.d.ts.map +1 -1
  125. package/dist/admin/messages.js +11 -14
  126. package/dist/admin/messages.js.map +1 -1
  127. package/dist/admin/navigation.d.ts +3 -3
  128. package/dist/admin/navigation.d.ts.map +1 -1
  129. package/dist/admin/navigation.js +34 -33
  130. package/dist/admin/navigation.js.map +1 -1
  131. package/dist/admin/personal-data.d.ts +1 -1
  132. package/dist/admin/personal-data.d.ts.map +1 -1
  133. package/dist/admin/personal-data.js +3 -6
  134. package/dist/admin/personal-data.js.map +1 -1
  135. package/dist/admin/plugins.d.ts +1 -1
  136. package/dist/admin/plugins.d.ts.map +1 -1
  137. package/dist/admin/plugins.js +28 -79
  138. package/dist/admin/plugins.js.map +1 -1
  139. package/dist/admin/preview.d.ts +2 -1
  140. package/dist/admin/preview.d.ts.map +1 -1
  141. package/dist/admin/preview.js +31 -36
  142. package/dist/admin/preview.js.map +1 -1
  143. package/dist/admin/recovery.d.ts +3 -3
  144. package/dist/admin/recovery.d.ts.map +1 -1
  145. package/dist/admin/recovery.js +12 -14
  146. package/dist/admin/recovery.js.map +1 -1
  147. package/dist/admin/routes.d.ts +1 -3
  148. package/dist/admin/routes.d.ts.map +1 -1
  149. package/dist/admin/routes.js +34 -29
  150. package/dist/admin/routes.js.map +1 -1
  151. package/dist/admin/setting-overrides.d.ts +4 -0
  152. package/dist/admin/setting-overrides.d.ts.map +1 -0
  153. package/dist/admin/setting-overrides.js +24 -0
  154. package/dist/admin/setting-overrides.js.map +1 -0
  155. package/dist/admin/settings-discussion.d.ts +6 -4
  156. package/dist/admin/settings-discussion.d.ts.map +1 -1
  157. package/dist/admin/settings-discussion.js +79 -46
  158. package/dist/admin/settings-discussion.js.map +1 -1
  159. package/dist/admin/settings-email.d.ts +12 -9
  160. package/dist/admin/settings-email.d.ts.map +1 -1
  161. package/dist/admin/settings-email.js +94 -80
  162. package/dist/admin/settings-email.js.map +1 -1
  163. package/dist/admin/settings-federation.d.ts +0 -7
  164. package/dist/admin/settings-federation.d.ts.map +1 -1
  165. package/dist/admin/settings-federation.js +0 -36
  166. package/dist/admin/settings-federation.js.map +1 -1
  167. package/dist/admin/settings-fields.d.ts +32 -0
  168. package/dist/admin/settings-fields.d.ts.map +1 -0
  169. package/dist/admin/settings-fields.js +368 -0
  170. package/dist/admin/settings-fields.js.map +1 -0
  171. package/dist/admin/settings-general.d.ts.map +1 -1
  172. package/dist/admin/settings-general.js +17 -23
  173. package/dist/admin/settings-general.js.map +1 -1
  174. package/dist/admin/settings-page.d.ts +5 -32
  175. package/dist/admin/settings-page.d.ts.map +1 -1
  176. package/dist/admin/settings-page.js +39 -55
  177. package/dist/admin/settings-page.js.map +1 -1
  178. package/dist/admin/settings-pages.d.ts +1 -1
  179. package/dist/admin/settings-pages.d.ts.map +1 -1
  180. package/dist/admin/settings-permalinks.js +3 -3
  181. package/dist/admin/settings-permalinks.js.map +1 -1
  182. package/dist/admin/settings-privacy.js +1 -1
  183. package/dist/admin/settings-privacy.js.map +1 -1
  184. package/dist/admin/settings-reading.d.ts +2 -2
  185. package/dist/admin/settings-reading.d.ts.map +1 -1
  186. package/dist/admin/settings-reading.js +17 -16
  187. package/dist/admin/settings-reading.js.map +1 -1
  188. package/dist/admin/settings-renderer.d.ts +32 -0
  189. package/dist/admin/settings-renderer.d.ts.map +1 -0
  190. package/dist/admin/settings-renderer.js +79 -0
  191. package/dist/admin/settings-renderer.js.map +1 -0
  192. package/dist/admin/settings.d.ts +0 -579
  193. package/dist/admin/settings.d.ts.map +1 -1
  194. package/dist/admin/settings.js +1 -1155
  195. package/dist/admin/settings.js.map +1 -1
  196. package/dist/admin/site-setting-edit.d.ts +4 -0
  197. package/dist/admin/site-setting-edit.d.ts.map +1 -0
  198. package/dist/admin/site-setting-edit.js +20 -0
  199. package/dist/admin/site-setting-edit.js.map +1 -0
  200. package/dist/admin/syndication-targets.d.ts +1 -1
  201. package/dist/admin/syndication-targets.d.ts.map +1 -1
  202. package/dist/admin/syndication-targets.js +11 -15
  203. package/dist/admin/syndication-targets.js.map +1 -1
  204. package/dist/admin/taxonomy.d.ts +2 -2
  205. package/dist/admin/taxonomy.d.ts.map +1 -1
  206. package/dist/admin/taxonomy.js +17 -29
  207. package/dist/admin/taxonomy.js.map +1 -1
  208. package/dist/admin/templates.d.ts +2 -0
  209. package/dist/admin/templates.d.ts.map +1 -1
  210. package/dist/admin/templates.js +3 -1
  211. package/dist/admin/templates.js.map +1 -1
  212. package/dist/admin/tools.d.ts +4 -4
  213. package/dist/admin/tools.d.ts.map +1 -1
  214. package/dist/admin/tools.js +3 -6
  215. package/dist/admin/tools.js.map +1 -1
  216. package/dist/admin/uploads.d.ts +1 -106
  217. package/dist/admin/uploads.d.ts.map +1 -1
  218. package/dist/admin/uploads.js +2 -191
  219. package/dist/admin/uploads.js.map +1 -1
  220. package/dist/admin/users.d.ts +20 -15
  221. package/dist/admin/users.d.ts.map +1 -1
  222. package/dist/admin/users.js +84 -81
  223. package/dist/admin/users.js.map +1 -1
  224. package/dist/avatars/avatars.d.ts +2 -4
  225. package/dist/avatars/avatars.d.ts.map +1 -1
  226. package/dist/avatars/avatars.js +15 -19
  227. package/dist/avatars/avatars.js.map +1 -1
  228. package/dist/avatars/index.d.ts +1 -2
  229. package/dist/avatars/index.d.ts.map +1 -1
  230. package/dist/avatars/index.js +1 -2
  231. package/dist/avatars/index.js.map +1 -1
  232. package/dist/cache.d.ts +4 -4
  233. package/dist/cache.d.ts.map +1 -1
  234. package/dist/cache.js +13 -9
  235. package/dist/cache.js.map +1 -1
  236. package/dist/cli.d.ts +2 -33
  237. package/dist/cli.d.ts.map +1 -1
  238. package/dist/cli.js +729 -344
  239. package/dist/cli.js.map +1 -1
  240. package/dist/cms/app.d.ts +11 -0
  241. package/dist/cms/app.d.ts.map +1 -0
  242. package/dist/cms/app.js +126 -0
  243. package/dist/cms/app.js.map +1 -0
  244. package/dist/cms/boot.d.ts +26 -0
  245. package/dist/cms/boot.d.ts.map +1 -0
  246. package/dist/cms/boot.js +128 -0
  247. package/dist/cms/boot.js.map +1 -0
  248. package/dist/cms/create.d.ts +272 -0
  249. package/dist/cms/create.d.ts.map +1 -0
  250. package/dist/cms/create.js +181 -0
  251. package/dist/cms/create.js.map +1 -0
  252. package/dist/cms/lifecycle.d.ts +11 -0
  253. package/dist/cms/lifecycle.d.ts.map +1 -0
  254. package/dist/cms/lifecycle.js +15 -0
  255. package/dist/cms/lifecycle.js.map +1 -0
  256. package/dist/{web/errors.d.ts → cms/server-error.d.ts} +2 -8
  257. package/dist/cms/server-error.d.ts.map +1 -0
  258. package/dist/{web/errors.js → cms/server-error.js} +4 -14
  259. package/dist/cms/server-error.js.map +1 -0
  260. package/dist/cms/services.d.ts +57 -0
  261. package/dist/cms/services.d.ts.map +1 -0
  262. package/dist/cms/services.js +410 -0
  263. package/dist/cms/services.js.map +1 -0
  264. package/dist/cms/site-records.d.ts +4 -0
  265. package/dist/cms/site-records.d.ts.map +1 -0
  266. package/dist/cms/site-records.js +13 -0
  267. package/dist/cms/site-records.js.map +1 -0
  268. package/dist/comments/akismet.d.ts +14 -47
  269. package/dist/comments/akismet.d.ts.map +1 -1
  270. package/dist/comments/akismet.js +30 -71
  271. package/dist/comments/akismet.js.map +1 -1
  272. package/dist/comments/conversation.d.ts +340 -0
  273. package/dist/comments/conversation.d.ts.map +1 -0
  274. package/dist/comments/conversation.js +51 -0
  275. package/dist/comments/conversation.js.map +1 -0
  276. package/dist/comments/form.d.ts +2 -2
  277. package/dist/comments/form.d.ts.map +1 -1
  278. package/dist/comments/form.js +2 -2
  279. package/dist/comments/form.js.map +1 -1
  280. package/dist/comments/index.d.ts +15 -9
  281. package/dist/comments/index.d.ts.map +1 -1
  282. package/dist/comments/index.js +9 -6
  283. package/dist/comments/index.js.map +1 -1
  284. package/dist/comments/intake.d.ts +147 -0
  285. package/dist/comments/intake.d.ts.map +1 -0
  286. package/dist/comments/intake.js +161 -0
  287. package/dist/comments/intake.js.map +1 -0
  288. package/dist/comments/markdown.d.ts.map +1 -1
  289. package/dist/comments/markdown.js +2 -9
  290. package/dist/comments/markdown.js.map +1 -1
  291. package/dist/comments/migrations.d.ts +45 -0
  292. package/dist/comments/migrations.d.ts.map +1 -0
  293. package/dist/comments/migrations.js +194 -0
  294. package/dist/comments/migrations.js.map +1 -0
  295. package/dist/comments/moderate.d.ts +2 -2
  296. package/dist/comments/moderate.d.ts.map +1 -1
  297. package/dist/comments/moderate.js +3 -13
  298. package/dist/comments/moderate.js.map +1 -1
  299. package/dist/comments/page-form.d.ts +52 -0
  300. package/dist/comments/page-form.d.ts.map +1 -0
  301. package/dist/comments/page-form.js +62 -0
  302. package/dist/comments/page-form.js.map +1 -0
  303. package/dist/comments/policy.d.ts +24 -35
  304. package/dist/comments/policy.d.ts.map +1 -1
  305. package/dist/comments/policy.js +16 -38
  306. package/dist/comments/policy.js.map +1 -1
  307. package/dist/comments/records.d.ts +17 -195
  308. package/dist/comments/records.d.ts.map +1 -1
  309. package/dist/comments/records.js +24 -394
  310. package/dist/comments/records.js.map +1 -1
  311. package/dist/comments/reply-notices.d.ts +10 -11
  312. package/dist/comments/reply-notices.d.ts.map +1 -1
  313. package/dist/comments/reply-notices.js +32 -20
  314. package/dist/comments/reply-notices.js.map +1 -1
  315. package/dist/comments/reply-post.d.ts +2 -2
  316. package/dist/comments/reply-post.d.ts.map +1 -1
  317. package/dist/comments/reply-post.js +8 -7
  318. package/dist/comments/reply-post.js.map +1 -1
  319. package/dist/comments/routes.d.ts +3 -3
  320. package/dist/comments/routes.d.ts.map +1 -1
  321. package/dist/comments/routes.js +19 -31
  322. package/dist/comments/routes.js.map +1 -1
  323. package/dist/comments/submission.d.ts +5 -102
  324. package/dist/comments/submission.d.ts.map +1 -1
  325. package/dist/comments/submission.js +5 -22
  326. package/dist/comments/submission.js.map +1 -1
  327. package/dist/comments/viewer.d.ts +1 -25
  328. package/dist/comments/viewer.d.ts.map +1 -1
  329. package/dist/comments/viewer.js +1 -44
  330. package/dist/comments/viewer.js.map +1 -1
  331. package/dist/config-loader.d.ts +35 -0
  332. package/dist/config-loader.d.ts.map +1 -0
  333. package/dist/config-loader.js +117 -0
  334. package/dist/config-loader.js.map +1 -0
  335. package/dist/config.d.ts +99 -51
  336. package/dist/config.d.ts.map +1 -1
  337. package/dist/config.js +137 -181
  338. package/dist/config.js.map +1 -1
  339. package/dist/contact/delivery.d.ts +3 -5
  340. package/dist/contact/delivery.d.ts.map +1 -1
  341. package/dist/contact/delivery.js +5 -14
  342. package/dist/contact/delivery.js.map +1 -1
  343. package/dist/contact/form.d.ts +2 -4
  344. package/dist/contact/form.d.ts.map +1 -1
  345. package/dist/contact/form.js +3 -4
  346. package/dist/contact/form.js.map +1 -1
  347. package/dist/contact/index.d.ts +3 -3
  348. package/dist/contact/index.d.ts.map +1 -1
  349. package/dist/contact/index.js +3 -3
  350. package/dist/contact/index.js.map +1 -1
  351. package/dist/contact/records.d.ts +0 -2
  352. package/dist/contact/records.d.ts.map +1 -1
  353. package/dist/contact/records.js +11 -16
  354. package/dist/contact/records.js.map +1 -1
  355. package/dist/contact/submission.d.ts +2 -2
  356. package/dist/contact/submission.d.ts.map +1 -1
  357. package/dist/contact/submission.js +7 -16
  358. package/dist/contact/submission.js.map +1 -1
  359. package/dist/{images → content}/alt-text.d.ts +1 -1
  360. package/dist/content/alt-text.d.ts.map +1 -0
  361. package/dist/{images → content}/alt-text.js +3 -5
  362. package/dist/content/alt-text.js.map +1 -0
  363. package/dist/content/authors.d.ts +79 -0
  364. package/dist/content/authors.d.ts.map +1 -0
  365. package/dist/content/authors.js +106 -0
  366. package/dist/content/authors.js.map +1 -0
  367. package/dist/content/citation.d.ts +4 -0
  368. package/dist/content/citation.d.ts.map +1 -1
  369. package/dist/content/citation.js +3 -0
  370. package/dist/content/citation.js.map +1 -1
  371. package/dist/content/comments.d.ts +3 -0
  372. package/dist/content/comments.d.ts.map +1 -0
  373. package/dist/content/comments.js +3 -0
  374. package/dist/content/comments.js.map +1 -0
  375. package/dist/content/contact.d.ts +3 -0
  376. package/dist/content/contact.d.ts.map +1 -0
  377. package/dist/content/contact.js +3 -0
  378. package/dist/content/contact.js.map +1 -0
  379. package/dist/content/document-form.d.ts +197 -0
  380. package/dist/content/document-form.d.ts.map +1 -0
  381. package/dist/content/document-form.js +201 -0
  382. package/dist/content/document-form.js.map +1 -0
  383. package/dist/content/document-kind.d.ts +55 -0
  384. package/dist/content/document-kind.d.ts.map +1 -0
  385. package/dist/content/document-kind.js +30 -0
  386. package/dist/content/document-kind.js.map +1 -0
  387. package/dist/{admin/enclosure-field.d.ts → content/enclosure-form.d.ts} +14 -34
  388. package/dist/content/enclosure-form.d.ts.map +1 -0
  389. package/dist/{admin/enclosure-field.js → content/enclosure-form.js} +43 -81
  390. package/dist/content/enclosure-form.js.map +1 -0
  391. package/dist/content/enclosure.d.ts.map +1 -1
  392. package/dist/content/enclosure.js +3 -4
  393. package/dist/content/enclosure.js.map +1 -1
  394. package/dist/{admin/event-field.d.ts → content/event-form.d.ts} +6 -5
  395. package/dist/content/event-form.d.ts.map +1 -0
  396. package/dist/{admin/event-field.js → content/event-form.js} +45 -12
  397. package/dist/content/event-form.js.map +1 -0
  398. package/dist/content/excerpt.d.ts +26 -0
  399. package/dist/content/excerpt.d.ts.map +1 -0
  400. package/dist/content/excerpt.js +46 -0
  401. package/dist/content/excerpt.js.map +1 -0
  402. package/dist/content/form-error.d.ts +10 -0
  403. package/dist/content/form-error.d.ts.map +1 -0
  404. package/dist/content/form-error.js +2 -0
  405. package/dist/content/form-error.js.map +1 -0
  406. package/dist/{web → content}/guids.d.ts +12 -5
  407. package/dist/content/guids.d.ts.map +1 -0
  408. package/dist/{web → content}/guids.js +28 -5
  409. package/dist/content/guids.js.map +1 -0
  410. package/dist/content/image-tags.d.ts +25 -0
  411. package/dist/content/image-tags.d.ts.map +1 -0
  412. package/dist/content/image-tags.js +55 -0
  413. package/dist/content/image-tags.js.map +1 -0
  414. package/dist/content/index.d.ts +11 -6
  415. package/dist/content/index.d.ts.map +1 -1
  416. package/dist/content/index.js +6 -3
  417. package/dist/content/index.js.map +1 -1
  418. package/dist/content/kept-properties.d.ts +0 -1
  419. package/dist/content/kept-properties.d.ts.map +1 -1
  420. package/dist/content/kept-properties.js +2 -2
  421. package/dist/content/kept-properties.js.map +1 -1
  422. package/dist/content/language.d.ts +19 -0
  423. package/dist/content/language.d.ts.map +1 -0
  424. package/dist/content/language.js +19 -0
  425. package/dist/content/language.js.map +1 -0
  426. package/dist/content/license.d.ts.map +1 -0
  427. package/dist/content/license.js.map +1 -0
  428. package/dist/{web → content}/locale.d.ts +0 -6
  429. package/dist/content/locale.d.ts.map +1 -0
  430. package/dist/{web → content}/locale.js +1 -6
  431. package/dist/content/locale.js.map +1 -0
  432. package/dist/content/location-form.d.ts +17 -0
  433. package/dist/content/location-form.d.ts.map +1 -0
  434. package/dist/{admin/location-field.js → content/location-form.js} +2 -23
  435. package/dist/content/location-form.js.map +1 -0
  436. package/dist/content/location.d.ts.map +1 -1
  437. package/dist/content/location.js +1 -3
  438. package/dist/content/location.js.map +1 -1
  439. package/dist/content/locations.d.ts +0 -1
  440. package/dist/content/locations.d.ts.map +1 -1
  441. package/dist/content/locations.js +2 -2
  442. package/dist/content/locations.js.map +1 -1
  443. package/dist/content/markdown-links.d.ts +11 -0
  444. package/dist/content/markdown-links.d.ts.map +1 -0
  445. package/dist/content/markdown-links.js +223 -0
  446. package/dist/content/markdown-links.js.map +1 -0
  447. package/dist/content/markdown.d.ts +2 -1
  448. package/dist/content/markdown.d.ts.map +1 -1
  449. package/dist/content/markdown.js +1 -1
  450. package/dist/content/markdown.js.map +1 -1
  451. package/dist/content/media.d.ts +7 -0
  452. package/dist/content/media.d.ts.map +1 -1
  453. package/dist/content/media.js +12 -1
  454. package/dist/content/media.js.map +1 -1
  455. package/dist/content/metadata/strip-job.d.ts +16 -0
  456. package/dist/content/metadata/strip-job.d.ts.map +1 -0
  457. package/dist/content/metadata/strip-job.js +24 -0
  458. package/dist/content/metadata/strip-job.js.map +1 -0
  459. package/dist/content/metadata/sweep.d.ts +13 -1
  460. package/dist/content/metadata/sweep.d.ts.map +1 -1
  461. package/dist/content/metadata/sweep.js +47 -25
  462. package/dist/content/metadata/sweep.js.map +1 -1
  463. package/dist/content/migrated.js +1 -1
  464. package/dist/content/migrated.js.map +1 -1
  465. package/dist/content/parser.d.ts.map +1 -1
  466. package/dist/content/parser.js +1 -12
  467. package/dist/content/parser.js.map +1 -1
  468. package/dist/content/permalink-file.d.ts +2 -1
  469. package/dist/content/permalink-file.d.ts.map +1 -1
  470. package/dist/content/permalink-file.js +3 -3
  471. package/dist/content/permalink-file.js.map +1 -1
  472. package/dist/content/permalinks.d.ts +34 -0
  473. package/dist/content/permalinks.d.ts.map +1 -0
  474. package/dist/{web/documents.js → content/permalinks.js} +6 -56
  475. package/dist/content/permalinks.js.map +1 -0
  476. package/dist/content/photo-form.d.ts +29 -0
  477. package/dist/content/photo-form.d.ts.map +1 -0
  478. package/dist/{admin/photo-field.js → content/photo-form.js} +43 -40
  479. package/dist/content/photo-form.js.map +1 -0
  480. package/dist/content/photo.d.ts +2 -1
  481. package/dist/content/photo.d.ts.map +1 -1
  482. package/dist/content/photo.js +2 -2
  483. package/dist/content/photo.js.map +1 -1
  484. package/dist/content/post-fields.d.ts +40 -0
  485. package/dist/content/post-fields.d.ts.map +1 -0
  486. package/dist/content/post-fields.js +252 -0
  487. package/dist/content/post-fields.js.map +1 -0
  488. package/dist/content/read-form.d.ts +31 -0
  489. package/dist/content/read-form.d.ts.map +1 -0
  490. package/dist/content/read-form.js +157 -0
  491. package/dist/content/read-form.js.map +1 -0
  492. package/dist/content/read.d.ts +9 -2
  493. package/dist/content/read.d.ts.map +1 -1
  494. package/dist/content/read.js +28 -13
  495. package/dist/content/read.js.map +1 -1
  496. package/dist/content/redirects.d.ts +84 -0
  497. package/dist/content/redirects.d.ts.map +1 -0
  498. package/dist/content/redirects.js +234 -0
  499. package/dist/content/redirects.js.map +1 -0
  500. package/dist/content/sanitize.d.ts +13 -0
  501. package/dist/content/sanitize.d.ts.map +1 -0
  502. package/dist/{web → content}/sanitize.js +4 -71
  503. package/dist/content/sanitize.js.map +1 -0
  504. package/dist/content/save.d.ts +5 -8
  505. package/dist/content/save.d.ts.map +1 -1
  506. package/dist/content/save.js +5 -26
  507. package/dist/content/save.js.map +1 -1
  508. package/dist/content/schedule.d.ts +2 -2
  509. package/dist/content/schedule.d.ts.map +1 -1
  510. package/dist/content/schedule.js +1 -3
  511. package/dist/content/schedule.js.map +1 -1
  512. package/dist/content/served.d.ts +58 -0
  513. package/dist/content/served.d.ts.map +1 -0
  514. package/dist/content/served.js +65 -0
  515. package/dist/content/served.js.map +1 -0
  516. package/dist/content/site-links.d.ts +72 -0
  517. package/dist/content/site-links.d.ts.map +1 -0
  518. package/dist/content/site-links.js +191 -0
  519. package/dist/content/site-links.js.map +1 -0
  520. package/dist/content/sqlite/archive.d.ts +4 -0
  521. package/dist/content/sqlite/archive.d.ts.map +1 -0
  522. package/dist/content/sqlite/archive.js +96 -0
  523. package/dist/content/sqlite/archive.js.map +1 -0
  524. package/dist/content/sqlite/backlinks.d.ts +4 -0
  525. package/dist/content/sqlite/backlinks.d.ts.map +1 -0
  526. package/dist/content/sqlite/backlinks.js +46 -0
  527. package/dist/content/sqlite/backlinks.js.map +1 -0
  528. package/dist/content/sqlite/catalog.d.ts +4 -0
  529. package/dist/content/sqlite/catalog.d.ts.map +1 -0
  530. package/dist/content/sqlite/catalog.js +62 -0
  531. package/dist/content/sqlite/catalog.js.map +1 -0
  532. package/dist/content/sqlite/clauses.d.ts +57 -0
  533. package/dist/content/sqlite/clauses.d.ts.map +1 -0
  534. package/dist/content/sqlite/clauses.js +76 -0
  535. package/dist/content/sqlite/clauses.js.map +1 -0
  536. package/dist/content/sqlite/database.d.ts +26 -0
  537. package/dist/content/sqlite/database.d.ts.map +1 -0
  538. package/dist/content/sqlite/database.js +27 -0
  539. package/dist/content/sqlite/database.js.map +1 -0
  540. package/dist/content/sqlite/documents.d.ts +12 -0
  541. package/dist/content/sqlite/documents.d.ts.map +1 -0
  542. package/dist/content/sqlite/documents.js +40 -0
  543. package/dist/content/sqlite/documents.js.map +1 -0
  544. package/dist/content/sqlite/lookups.d.ts +6 -0
  545. package/dist/content/sqlite/lookups.d.ts.map +1 -0
  546. package/dist/content/sqlite/lookups.js +25 -0
  547. package/dist/content/sqlite/lookups.js.map +1 -0
  548. package/dist/content/sqlite/open.d.ts +8 -0
  549. package/dist/content/sqlite/open.d.ts.map +1 -0
  550. package/dist/content/sqlite/open.js +63 -0
  551. package/dist/content/sqlite/open.js.map +1 -0
  552. package/dist/content/sqlite/replies.d.ts +4 -0
  553. package/dist/content/sqlite/replies.d.ts.map +1 -0
  554. package/dist/content/sqlite/replies.js +21 -0
  555. package/dist/content/sqlite/replies.js.map +1 -0
  556. package/dist/content/sqlite/rows.d.ts +22 -0
  557. package/dist/content/sqlite/rows.d.ts.map +1 -0
  558. package/dist/content/sqlite/rows.js +93 -0
  559. package/dist/content/sqlite/rows.js.map +1 -0
  560. package/dist/content/sqlite/schedule.d.ts +4 -0
  561. package/dist/content/sqlite/schedule.d.ts.map +1 -0
  562. package/dist/content/sqlite/schedule.js +16 -0
  563. package/dist/content/sqlite/schedule.js.map +1 -0
  564. package/dist/content/sqlite/schema.d.ts +10 -0
  565. package/dist/content/sqlite/schema.d.ts.map +1 -0
  566. package/dist/content/sqlite/schema.js +209 -0
  567. package/dist/content/sqlite/schema.js.map +1 -0
  568. package/dist/content/sqlite/search.d.ts +4 -0
  569. package/dist/content/sqlite/search.d.ts.map +1 -0
  570. package/dist/content/sqlite/search.js +54 -0
  571. package/dist/content/sqlite/search.js.map +1 -0
  572. package/dist/content/sqlite/spellings.d.ts +6 -0
  573. package/dist/content/sqlite/spellings.d.ts.map +1 -0
  574. package/dist/content/sqlite/spellings.js +80 -0
  575. package/dist/content/sqlite/spellings.js.map +1 -0
  576. package/dist/content/sqlite/taxonomy.d.ts +4 -0
  577. package/dist/content/sqlite/taxonomy.d.ts.map +1 -0
  578. package/dist/content/sqlite/taxonomy.js +75 -0
  579. package/dist/content/sqlite/taxonomy.js.map +1 -0
  580. package/dist/content/sqlite/writes.d.ts +9 -0
  581. package/dist/content/sqlite/writes.d.ts.map +1 -0
  582. package/dist/content/sqlite/writes.js +164 -0
  583. package/dist/content/sqlite/writes.js.map +1 -0
  584. package/dist/content/store.d.ts +142 -138
  585. package/dist/content/store.d.ts.map +1 -1
  586. package/dist/content/store.js +0 -1051
  587. package/dist/content/store.js.map +1 -1
  588. package/dist/content/sync.d.ts +12 -4
  589. package/dist/content/sync.d.ts.map +1 -1
  590. package/dist/content/sync.js +24 -41
  591. package/dist/content/sync.js.map +1 -1
  592. package/dist/content/syndicate-to.d.ts +25 -0
  593. package/dist/content/syndicate-to.d.ts.map +1 -0
  594. package/dist/content/syndicate-to.js +8 -0
  595. package/dist/content/syndicate-to.js.map +1 -0
  596. package/dist/{web → content}/taxonomy.d.ts +1 -1
  597. package/dist/content/taxonomy.d.ts.map +1 -0
  598. package/dist/{web → content}/taxonomy.js +2 -2
  599. package/dist/content/taxonomy.js.map +1 -0
  600. package/dist/content/time.d.ts +2 -2
  601. package/dist/content/time.d.ts.map +1 -1
  602. package/dist/content/time.js +3 -3
  603. package/dist/content/time.js.map +1 -1
  604. package/dist/content/trash.d.ts +35 -0
  605. package/dist/content/trash.d.ts.map +1 -0
  606. package/dist/content/trash.js +83 -0
  607. package/dist/content/trash.js.map +1 -0
  608. package/dist/content/uploads.d.ts +24 -0
  609. package/dist/content/uploads.d.ts.map +1 -0
  610. package/dist/content/uploads.js +32 -0
  611. package/dist/content/uploads.js.map +1 -0
  612. package/dist/content/video.d.ts.map +1 -1
  613. package/dist/content/video.js +3 -5
  614. package/dist/content/video.js.map +1 -1
  615. package/dist/content/write.d.ts +84 -0
  616. package/dist/content/write.d.ts.map +1 -0
  617. package/dist/content/write.js +570 -0
  618. package/dist/content/write.js.map +1 -0
  619. package/dist/content/writer.d.ts.map +1 -1
  620. package/dist/content/writer.js +1 -2
  621. package/dist/content/writer.js.map +1 -1
  622. package/dist/dev-mode.d.ts +6 -26
  623. package/dist/dev-mode.d.ts.map +1 -1
  624. package/dist/dev-mode.js +5 -54
  625. package/dist/dev-mode.js.map +1 -1
  626. package/dist/drain.d.ts +2 -3
  627. package/dist/drain.d.ts.map +1 -1
  628. package/dist/drain.js +2 -1
  629. package/dist/drain.js.map +1 -1
  630. package/dist/export/export-archives.d.ts +29 -0
  631. package/dist/export/export-archives.d.ts.map +1 -0
  632. package/dist/export/export-archives.js +88 -0
  633. package/dist/export/export-archives.js.map +1 -0
  634. package/dist/export/export-job.d.ts +21 -0
  635. package/dist/export/export-job.d.ts.map +1 -0
  636. package/dist/export/export-job.js +63 -0
  637. package/dist/export/export-job.js.map +1 -0
  638. package/dist/export/site-export.d.ts +101 -0
  639. package/dist/export/site-export.d.ts.map +1 -0
  640. package/dist/export/site-export.js +243 -0
  641. package/dist/export/site-export.js.map +1 -0
  642. package/dist/export/site-import.d.ts +75 -0
  643. package/dist/export/site-import.d.ts.map +1 -0
  644. package/dist/export/site-import.js +492 -0
  645. package/dist/export/site-import.js.map +1 -0
  646. package/dist/exports.d.ts +31 -0
  647. package/dist/exports.d.ts.map +1 -0
  648. package/dist/exports.js +10 -0
  649. package/dist/exports.js.map +1 -0
  650. package/dist/federation/actor.d.ts +1 -1
  651. package/dist/federation/actor.d.ts.map +1 -1
  652. package/dist/federation/actor.js +6 -13
  653. package/dist/federation/actor.js.map +1 -1
  654. package/dist/federation/article.d.ts +4 -14
  655. package/dist/federation/article.d.ts.map +1 -1
  656. package/dist/federation/article.js +40 -51
  657. package/dist/federation/article.js.map +1 -1
  658. package/dist/federation/backfill.d.ts +7 -5
  659. package/dist/federation/backfill.d.ts.map +1 -1
  660. package/dist/federation/backfill.js +12 -13
  661. package/dist/federation/backfill.js.map +1 -1
  662. package/dist/federation/citations.d.ts.map +1 -1
  663. package/dist/federation/citations.js.map +1 -1
  664. package/dist/federation/cited-post.d.ts +1 -1
  665. package/dist/federation/cited-post.d.ts.map +1 -1
  666. package/dist/federation/cited-post.js +3 -5
  667. package/dist/federation/cited-post.js.map +1 -1
  668. package/dist/federation/delivery-plan.d.ts +85 -0
  669. package/dist/federation/delivery-plan.d.ts.map +1 -0
  670. package/dist/federation/delivery-plan.js +137 -0
  671. package/dist/federation/delivery-plan.js.map +1 -0
  672. package/dist/federation/delivery.d.ts +12 -34
  673. package/dist/federation/delivery.d.ts.map +1 -1
  674. package/dist/federation/delivery.js +79 -212
  675. package/dist/federation/delivery.js.map +1 -1
  676. package/dist/federation/federation.d.ts +12 -12
  677. package/dist/federation/federation.d.ts.map +1 -1
  678. package/dist/federation/federation.js +12 -18
  679. package/dist/federation/federation.js.map +1 -1
  680. package/dist/federation/followers.d.ts +1 -1
  681. package/dist/federation/followers.d.ts.map +1 -1
  682. package/dist/federation/handles.d.ts +1 -1
  683. package/dist/federation/handles.d.ts.map +1 -1
  684. package/dist/federation/handles.js +1 -1
  685. package/dist/federation/handles.js.map +1 -1
  686. package/dist/federation/inbox.d.ts +1 -1
  687. package/dist/federation/inbox.d.ts.map +1 -1
  688. package/dist/federation/inbox.js +6 -5
  689. package/dist/federation/inbox.js.map +1 -1
  690. package/dist/federation/index.d.ts +10 -8
  691. package/dist/federation/index.d.ts.map +1 -1
  692. package/dist/federation/index.js +7 -5
  693. package/dist/federation/index.js.map +1 -1
  694. package/dist/federation/keys.d.ts +8 -27
  695. package/dist/federation/keys.d.ts.map +1 -1
  696. package/dist/federation/keys.js +7 -50
  697. package/dist/federation/keys.js.map +1 -1
  698. package/dist/federation/mount.d.ts +2 -2
  699. package/dist/federation/mount.d.ts.map +1 -1
  700. package/dist/federation/mount.js +9 -7
  701. package/dist/federation/mount.js.map +1 -1
  702. package/dist/federation/paths.d.ts +1 -9
  703. package/dist/federation/paths.d.ts.map +1 -1
  704. package/dist/federation/paths.js +2 -12
  705. package/dist/federation/paths.js.map +1 -1
  706. package/dist/federation/profiles.d.ts +2 -2
  707. package/dist/federation/profiles.d.ts.map +1 -1
  708. package/dist/federation/profiles.js +6 -9
  709. package/dist/federation/profiles.js.map +1 -1
  710. package/dist/federation/queue.d.ts +32 -17
  711. package/dist/federation/queue.d.ts.map +1 -1
  712. package/dist/federation/queue.js +173 -39
  713. package/dist/federation/queue.js.map +1 -1
  714. package/dist/federation/quotes.d.ts +2 -2
  715. package/dist/federation/quotes.d.ts.map +1 -1
  716. package/dist/federation/quotes.js +4 -4
  717. package/dist/federation/quotes.js.map +1 -1
  718. package/dist/federation/records.d.ts +2 -2
  719. package/dist/federation/records.d.ts.map +1 -1
  720. package/dist/federation/records.js +12 -19
  721. package/dist/federation/records.js.map +1 -1
  722. package/dist/federation/relays.d.ts +8 -5
  723. package/dist/federation/relays.d.ts.map +1 -1
  724. package/dist/federation/relays.js +52 -53
  725. package/dist/federation/relays.js.map +1 -1
  726. package/dist/federation/resend-job.d.ts +44 -0
  727. package/dist/federation/resend-job.d.ts.map +1 -0
  728. package/dist/federation/resend-job.js +59 -0
  729. package/dist/federation/resend-job.js.map +1 -0
  730. package/dist/federation/site-loaders.js +1 -1
  731. package/dist/federation/site-loaders.js.map +1 -1
  732. package/dist/federation/webfinger.d.ts +23 -0
  733. package/dist/federation/webfinger.d.ts.map +1 -0
  734. package/dist/federation/webfinger.js +70 -0
  735. package/dist/federation/webfinger.js.map +1 -0
  736. package/dist/files/atomic.d.ts +9 -0
  737. package/dist/files/atomic.d.ts.map +1 -1
  738. package/dist/files/atomic.js +5 -10
  739. package/dist/files/atomic.js.map +1 -1
  740. package/dist/files/data-files.d.ts +104 -0
  741. package/dist/files/data-files.d.ts.map +1 -0
  742. package/dist/files/data-files.js +330 -0
  743. package/dist/files/data-files.js.map +1 -0
  744. package/dist/files/export-archives.d.ts +12 -0
  745. package/dist/files/export-archives.d.ts.map +1 -0
  746. package/dist/files/export-archives.js +67 -0
  747. package/dist/files/export-archives.js.map +1 -0
  748. package/dist/files/static-files.d.ts +21 -0
  749. package/dist/files/static-files.d.ts.map +1 -0
  750. package/dist/files/static-files.js +73 -0
  751. package/dist/files/static-files.js.map +1 -0
  752. package/dist/files/tar.d.ts +29 -0
  753. package/dist/files/tar.d.ts.map +1 -0
  754. package/dist/files/tar.js +206 -0
  755. package/dist/files/tar.js.map +1 -0
  756. package/dist/files/upload-types.d.ts +81 -0
  757. package/dist/files/upload-types.d.ts.map +1 -0
  758. package/dist/files/upload-types.js +234 -0
  759. package/dist/files/upload-types.js.map +1 -0
  760. package/dist/forms/checker.d.ts +93 -0
  761. package/dist/forms/checker.d.ts.map +1 -0
  762. package/dist/forms/checker.js +2 -0
  763. package/dist/forms/checker.js.map +1 -0
  764. package/dist/forms/protection.d.ts +3 -9
  765. package/dist/forms/protection.d.ts.map +1 -1
  766. package/dist/forms/protection.js +5 -11
  767. package/dist/forms/protection.js.map +1 -1
  768. package/dist/images/icons.d.ts.map +1 -1
  769. package/dist/images/icons.js +4 -2
  770. package/dist/images/icons.js.map +1 -1
  771. package/dist/images/index.d.ts +2 -1
  772. package/dist/images/index.d.ts.map +1 -1
  773. package/dist/images/index.js +2 -1
  774. package/dist/images/index.js.map +1 -1
  775. package/dist/images/markup.d.ts +4 -21
  776. package/dist/images/markup.d.ts.map +1 -1
  777. package/dist/images/markup.js +15 -70
  778. package/dist/images/markup.js.map +1 -1
  779. package/dist/images/paths.d.ts +1 -14
  780. package/dist/images/paths.d.ts.map +1 -1
  781. package/dist/images/paths.js +9 -23
  782. package/dist/images/paths.js.map +1 -1
  783. package/dist/images/variants.d.ts +5 -3
  784. package/dist/images/variants.d.ts.map +1 -1
  785. package/dist/images/variants.js +23 -22
  786. package/dist/images/variants.js.map +1 -1
  787. package/dist/index.d.ts +4 -291
  788. package/dist/index.d.ts.map +1 -1
  789. package/dist/index.js +3 -839
  790. package/dist/index.js.map +1 -1
  791. package/dist/indexnow.d.ts +4 -2
  792. package/dist/indexnow.d.ts.map +1 -1
  793. package/dist/indexnow.js +52 -45
  794. package/dist/indexnow.js.map +1 -1
  795. package/dist/indieauth/client.d.ts +1 -1
  796. package/dist/indieauth/client.d.ts.map +1 -1
  797. package/dist/indieauth/client.js +1 -1
  798. package/dist/indieauth/client.js.map +1 -1
  799. package/dist/indieauth/grants.d.ts +1 -1
  800. package/dist/indieauth/grants.d.ts.map +1 -1
  801. package/dist/indieauth/identity.d.ts +2 -2
  802. package/dist/indieauth/identity.d.ts.map +1 -1
  803. package/dist/indieauth/identity.js +5 -7
  804. package/dist/indieauth/identity.js.map +1 -1
  805. package/dist/indieauth/redeem.d.ts +1 -1
  806. package/dist/indieauth/redeem.d.ts.map +1 -1
  807. package/dist/indieauth/redeem.js.map +1 -1
  808. package/dist/indieauth/request.d.ts +5 -1
  809. package/dist/indieauth/request.d.ts.map +1 -1
  810. package/dist/indieauth/request.js +6 -2
  811. package/dist/indieauth/request.js.map +1 -1
  812. package/dist/indieauth/tokens.d.ts +1 -3
  813. package/dist/indieauth/tokens.d.ts.map +1 -1
  814. package/dist/indieauth/tokens.js +4 -6
  815. package/dist/indieauth/tokens.js.map +1 -1
  816. package/dist/jobs/file-records.d.ts +13 -0
  817. package/dist/jobs/file-records.d.ts.map +1 -0
  818. package/dist/jobs/file-records.js +104 -0
  819. package/dist/jobs/file-records.js.map +1 -0
  820. package/dist/jobs/in-process.d.ts +10 -0
  821. package/dist/jobs/in-process.d.ts.map +1 -0
  822. package/dist/jobs/in-process.js +45 -0
  823. package/dist/jobs/in-process.js.map +1 -0
  824. package/dist/jobs/lock-file.d.ts +13 -0
  825. package/dist/jobs/lock-file.d.ts.map +1 -0
  826. package/dist/jobs/lock-file.js +107 -0
  827. package/dist/jobs/lock-file.js.map +1 -0
  828. package/dist/jobs/processes.d.ts +11 -0
  829. package/dist/jobs/processes.d.ts.map +1 -0
  830. package/dist/jobs/processes.js +50 -0
  831. package/dist/jobs/processes.js.map +1 -0
  832. package/dist/jobs/queue.d.ts +18 -0
  833. package/dist/jobs/queue.d.ts.map +1 -0
  834. package/dist/jobs/queue.js +220 -0
  835. package/dist/jobs/queue.js.map +1 -0
  836. package/dist/jobs/types.d.ts +159 -0
  837. package/dist/jobs/types.d.ts.map +1 -0
  838. package/dist/jobs/types.js +22 -0
  839. package/dist/jobs/types.js.map +1 -0
  840. package/dist/mail/index.d.ts +1 -7
  841. package/dist/mail/index.d.ts.map +1 -1
  842. package/dist/mail/index.js +0 -3
  843. package/dist/mail/index.js.map +1 -1
  844. package/dist/mail/provider.d.ts +7 -0
  845. package/dist/mail/provider.d.ts.map +1 -1
  846. package/dist/maintenance.d.ts +6 -43
  847. package/dist/maintenance.d.ts.map +1 -1
  848. package/dist/maintenance.js +4 -67
  849. package/dist/maintenance.js.map +1 -1
  850. package/dist/media/library.d.ts +99 -0
  851. package/dist/media/library.d.ts.map +1 -0
  852. package/dist/media/library.js +160 -0
  853. package/dist/media/library.js.map +1 -0
  854. package/dist/media/uploads.d.ts +106 -0
  855. package/dist/media/uploads.d.ts.map +1 -0
  856. package/dist/media/uploads.js +192 -0
  857. package/dist/media/uploads.js.map +1 -0
  858. package/dist/micropub/content.js +1 -1
  859. package/dist/micropub/content.js.map +1 -1
  860. package/dist/micropub/create.d.ts +7 -15
  861. package/dist/micropub/create.d.ts.map +1 -1
  862. package/dist/micropub/create.js +48 -184
  863. package/dist/micropub/create.js.map +1 -1
  864. package/dist/micropub/endpoint.d.ts +2 -2
  865. package/dist/micropub/endpoint.d.ts.map +1 -1
  866. package/dist/micropub/endpoint.js +36 -47
  867. package/dist/micropub/endpoint.js.map +1 -1
  868. package/dist/micropub/media.d.ts +1 -3
  869. package/dist/micropub/media.d.ts.map +1 -1
  870. package/dist/micropub/media.js +10 -12
  871. package/dist/micropub/media.js.map +1 -1
  872. package/dist/micropub/update.d.ts +6 -14
  873. package/dist/micropub/update.d.ts.map +1 -1
  874. package/dist/micropub/update.js +37 -90
  875. package/dist/micropub/update.js.map +1 -1
  876. package/dist/notifications/comments.d.ts +8 -6
  877. package/dist/notifications/comments.d.ts.map +1 -1
  878. package/dist/notifications/comments.js +80 -76
  879. package/dist/notifications/comments.js.map +1 -1
  880. package/dist/notifications/digest.d.ts +6 -8
  881. package/dist/notifications/digest.d.ts.map +1 -1
  882. package/dist/notifications/digest.js +15 -26
  883. package/dist/notifications/digest.js.map +1 -1
  884. package/dist/notifications/index.d.ts +9 -6
  885. package/dist/notifications/index.d.ts.map +1 -1
  886. package/dist/notifications/index.js +6 -5
  887. package/dist/notifications/index.js.map +1 -1
  888. package/dist/notifications/links.d.ts.map +1 -1
  889. package/dist/notifications/links.js +2 -2
  890. package/dist/notifications/links.js.map +1 -1
  891. package/dist/{mail/service.d.ts → notifications/mail-service.d.ts} +16 -20
  892. package/dist/notifications/mail-service.d.ts.map +1 -0
  893. package/dist/{mail/service.js → notifications/mail-service.js} +100 -121
  894. package/dist/notifications/mail-service.js.map +1 -0
  895. package/dist/{mail/templates.d.ts → notifications/mail-templates.d.ts} +4 -2
  896. package/dist/notifications/mail-templates.d.ts.map +1 -0
  897. package/dist/{mail/templates.js → notifications/mail-templates.js} +5 -3
  898. package/dist/notifications/mail-templates.js.map +1 -0
  899. package/dist/notifications/optouts.d.ts +0 -2
  900. package/dist/notifications/optouts.d.ts.map +1 -1
  901. package/dist/notifications/optouts.js +2 -4
  902. package/dist/notifications/optouts.js.map +1 -1
  903. package/dist/notifications/tokens.d.ts +2 -4
  904. package/dist/notifications/tokens.d.ts.map +1 -1
  905. package/dist/notifications/tokens.js +4 -30
  906. package/dist/notifications/tokens.js.map +1 -1
  907. package/dist/notify.d.ts +4 -2
  908. package/dist/notify.d.ts.map +1 -1
  909. package/dist/notify.js +35 -35
  910. package/dist/notify.js.map +1 -1
  911. package/dist/plugin.d.ts +59 -19
  912. package/dist/plugin.d.ts.map +1 -1
  913. package/dist/plugin.js +22 -4
  914. package/dist/plugin.js.map +1 -1
  915. package/dist/plugins/changes.d.ts +0 -1
  916. package/dist/plugins/changes.d.ts.map +1 -1
  917. package/dist/plugins/changes.js +2 -3
  918. package/dist/plugins/changes.js.map +1 -1
  919. package/dist/plugins/data.d.ts +19 -0
  920. package/dist/plugins/data.d.ts.map +1 -0
  921. package/dist/plugins/data.js +117 -0
  922. package/dist/plugins/data.js.map +1 -0
  923. package/dist/plugins/enabled.d.ts +1 -13
  924. package/dist/plugins/enabled.d.ts.map +1 -1
  925. package/dist/plugins/enabled.js +12 -26
  926. package/dist/plugins/enabled.js.map +1 -1
  927. package/dist/plugins/fetch.d.ts +1 -1
  928. package/dist/plugins/fetch.d.ts.map +1 -1
  929. package/dist/plugins/fetch.js +1 -1
  930. package/dist/plugins/fetch.js.map +1 -1
  931. package/dist/plugins/folder.d.ts.map +1 -1
  932. package/dist/plugins/folder.js +1 -3
  933. package/dist/plugins/folder.js.map +1 -1
  934. package/dist/plugins/install.d.ts +1 -1
  935. package/dist/plugins/install.d.ts.map +1 -1
  936. package/dist/plugins/install.js +14 -45
  937. package/dist/plugins/install.js.map +1 -1
  938. package/dist/plugins/manage.d.ts +1 -1
  939. package/dist/plugins/manage.d.ts.map +1 -1
  940. package/dist/plugins/migrate-settings.d.ts +7 -0
  941. package/dist/plugins/migrate-settings.d.ts.map +1 -0
  942. package/dist/plugins/migrate-settings.js +41 -0
  943. package/dist/plugins/migrate-settings.js.map +1 -0
  944. package/dist/plugins/registry.d.ts +10 -14
  945. package/dist/plugins/registry.d.ts.map +1 -1
  946. package/dist/plugins/registry.js +63 -45
  947. package/dist/plugins/registry.js.map +1 -1
  948. package/dist/plugins/settings.d.ts +5 -57
  949. package/dist/plugins/settings.d.ts.map +1 -1
  950. package/dist/plugins/settings.js +47 -181
  951. package/dist/plugins/settings.js.map +1 -1
  952. package/dist/plugins/site.d.ts +3 -2
  953. package/dist/plugins/site.d.ts.map +1 -1
  954. package/dist/plugins/site.js +8 -8
  955. package/dist/plugins/site.js.map +1 -1
  956. package/dist/plugins/upgrade.d.ts.map +1 -1
  957. package/dist/plugins/upgrade.js +4 -3
  958. package/dist/plugins/upgrade.js.map +1 -1
  959. package/dist/privacy/erase.d.ts +1 -1
  960. package/dist/privacy/erase.d.ts.map +1 -1
  961. package/dist/privacy/retention.d.ts +6 -2
  962. package/dist/privacy/retention.d.ts.map +1 -1
  963. package/dist/privacy/retention.js +20 -15
  964. package/dist/privacy/retention.js.map +1 -1
  965. package/dist/settings/akismet.d.ts +9 -0
  966. package/dist/settings/akismet.d.ts.map +1 -0
  967. package/dist/settings/akismet.js +46 -0
  968. package/dist/settings/akismet.js.map +1 -0
  969. package/dist/settings/declare.d.ts +15 -0
  970. package/dist/settings/declare.d.ts.map +1 -0
  971. package/dist/settings/declare.js +20 -0
  972. package/dist/settings/declare.js.map +1 -0
  973. package/dist/settings/dev-mode.d.ts +29 -0
  974. package/dist/settings/dev-mode.d.ts.map +1 -0
  975. package/dist/settings/dev-mode.js +77 -0
  976. package/dist/settings/dev-mode.js.map +1 -0
  977. package/dist/settings/kinds.d.ts +13 -0
  978. package/dist/settings/kinds.d.ts.map +1 -0
  979. package/dist/settings/kinds.js +108 -0
  980. package/dist/settings/kinds.js.map +1 -0
  981. package/dist/settings/mail.d.ts +10 -0
  982. package/dist/settings/mail.d.ts.map +1 -0
  983. package/dist/settings/mail.js +92 -0
  984. package/dist/settings/mail.js.map +1 -0
  985. package/dist/settings/maintenance.d.ts +6 -0
  986. package/dist/settings/maintenance.d.ts.map +1 -0
  987. package/dist/settings/maintenance.js +33 -0
  988. package/dist/settings/maintenance.js.map +1 -0
  989. package/dist/settings/names.d.ts +7 -0
  990. package/dist/settings/names.d.ts.map +1 -0
  991. package/dist/settings/names.js +31 -0
  992. package/dist/settings/names.js.map +1 -0
  993. package/dist/settings/presence.d.ts +2 -0
  994. package/dist/settings/presence.d.ts.map +1 -0
  995. package/dist/settings/presence.js +7 -0
  996. package/dist/settings/presence.js.map +1 -0
  997. package/dist/settings/registry.d.ts +14 -0
  998. package/dist/settings/registry.d.ts.map +1 -0
  999. package/dist/settings/registry.js +369 -0
  1000. package/dist/settings/registry.js.map +1 -0
  1001. package/dist/settings/types.d.ts +176 -0
  1002. package/dist/settings/types.d.ts.map +1 -0
  1003. package/dist/settings/types.js +2 -0
  1004. package/dist/settings/types.js.map +1 -0
  1005. package/dist/site/admin-paths.d.ts +23 -0
  1006. package/dist/site/admin-paths.d.ts.map +1 -0
  1007. package/dist/site/admin-paths.js +25 -0
  1008. package/dist/site/admin-paths.js.map +1 -0
  1009. package/dist/site/admin-theme.d.ts.map +1 -0
  1010. package/dist/site/admin-theme.js.map +1 -0
  1011. package/dist/{web → site}/authors.d.ts +1 -72
  1012. package/dist/site/authors.d.ts.map +1 -0
  1013. package/dist/site/authors.js +107 -0
  1014. package/dist/site/authors.js.map +1 -0
  1015. package/dist/site/feed-settings.d.ts +28 -0
  1016. package/dist/site/feed-settings.d.ts.map +1 -0
  1017. package/dist/site/feed-settings.js +22 -0
  1018. package/dist/site/feed-settings.js.map +1 -0
  1019. package/dist/{web/indexnow.d.ts → site/indexnow-key.d.ts} +1 -1
  1020. package/dist/site/indexnow-key.d.ts.map +1 -0
  1021. package/dist/{web/indexnow.js → site/indexnow-key.js} +1 -1
  1022. package/dist/site/indexnow-key.js.map +1 -0
  1023. package/dist/site/namespace.d.ts +88 -0
  1024. package/dist/site/namespace.d.ts.map +1 -0
  1025. package/dist/site/namespace.js +471 -0
  1026. package/dist/site/namespace.js.map +1 -0
  1027. package/dist/{web → site}/navigation.d.ts +7 -1
  1028. package/dist/site/navigation.d.ts.map +1 -0
  1029. package/dist/{web → site}/navigation.js +18 -0
  1030. package/dist/site/navigation.js.map +1 -0
  1031. package/dist/{notifications/preferences.d.ts → site/notification-preferences.d.ts} +2 -2
  1032. package/dist/site/notification-preferences.d.ts.map +1 -0
  1033. package/dist/{notifications/preferences.js → site/notification-preferences.js} +1 -1
  1034. package/dist/site/notification-preferences.js.map +1 -0
  1035. package/dist/site/passwords.d.ts.map +1 -0
  1036. package/dist/site/passwords.js.map +1 -0
  1037. package/dist/{privacy/policy.d.ts → site/retention-policy.d.ts} +1 -1
  1038. package/dist/site/retention-policy.d.ts.map +1 -0
  1039. package/dist/{privacy/policy.js → site/retention-policy.js} +1 -1
  1040. package/dist/site/retention-policy.js.map +1 -0
  1041. package/dist/site/robots.d.ts +62 -0
  1042. package/dist/site/robots.d.ts.map +1 -0
  1043. package/dist/site/robots.js +130 -0
  1044. package/dist/site/robots.js.map +1 -0
  1045. package/dist/site/setting-rows.d.ts +45 -0
  1046. package/dist/site/setting-rows.d.ts.map +1 -0
  1047. package/dist/site/setting-rows.js +361 -0
  1048. package/dist/site/setting-rows.js.map +1 -0
  1049. package/dist/site/setting-values.d.ts +63 -0
  1050. package/dist/site/setting-values.d.ts.map +1 -0
  1051. package/dist/site/setting-values.js +170 -0
  1052. package/dist/site/setting-values.js.map +1 -0
  1053. package/dist/site/settings-form.d.ts +30 -0
  1054. package/dist/site/settings-form.d.ts.map +1 -0
  1055. package/dist/site/settings-form.js +54 -0
  1056. package/dist/site/settings-form.js.map +1 -0
  1057. package/dist/site/settings.d.ts +29 -0
  1058. package/dist/site/settings.d.ts.map +1 -0
  1059. package/dist/site/settings.js +44 -0
  1060. package/dist/site/settings.js.map +1 -0
  1061. package/dist/site/site-json.d.ts +38 -0
  1062. package/dist/site/site-json.d.ts.map +1 -0
  1063. package/dist/site/site-json.js +69 -0
  1064. package/dist/site/site-json.js.map +1 -0
  1065. package/dist/{admin/accounts.d.ts → site/users.d.ts} +25 -50
  1066. package/dist/site/users.d.ts.map +1 -0
  1067. package/dist/{admin/accounts.js → site/users.js} +51 -166
  1068. package/dist/site/users.js.map +1 -0
  1069. package/dist/store/admin-store.d.ts +72 -0
  1070. package/dist/store/admin-store.d.ts.map +1 -0
  1071. package/dist/store/admin-store.js +62 -0
  1072. package/dist/store/admin-store.js.map +1 -0
  1073. package/dist/store/comments.d.ts +253 -0
  1074. package/dist/store/comments.d.ts.map +1 -0
  1075. package/dist/store/comments.js +234 -0
  1076. package/dist/store/comments.js.map +1 -0
  1077. package/dist/store/conversation.d.ts +28 -0
  1078. package/dist/store/conversation.d.ts.map +1 -0
  1079. package/dist/store/conversation.js +16 -0
  1080. package/dist/store/conversation.js.map +1 -0
  1081. package/dist/store/deliveries.d.ts +92 -0
  1082. package/dist/store/deliveries.d.ts.map +1 -0
  1083. package/dist/store/deliveries.js +88 -0
  1084. package/dist/store/deliveries.js.map +1 -0
  1085. package/dist/store/followers.d.ts +91 -0
  1086. package/dist/store/followers.d.ts.map +1 -0
  1087. package/dist/store/followers.js +79 -0
  1088. package/dist/store/followers.js.map +1 -0
  1089. package/dist/{federation/replies.d.ts → store/inbox-replies.d.ts} +2 -2
  1090. package/dist/store/inbox-replies.d.ts.map +1 -0
  1091. package/dist/{federation/replies.js → store/inbox-replies.js} +2 -4
  1092. package/dist/store/inbox-replies.js.map +1 -0
  1093. package/dist/store/inbox.d.ts +132 -0
  1094. package/dist/store/inbox.d.ts.map +1 -0
  1095. package/dist/store/inbox.js +157 -0
  1096. package/dist/store/inbox.js.map +1 -0
  1097. package/dist/store/profiles.d.ts +49 -0
  1098. package/dist/store/profiles.d.ts.map +1 -0
  1099. package/dist/store/profiles.js +71 -0
  1100. package/dist/store/profiles.js.map +1 -0
  1101. package/dist/store/queue-database.d.ts +11 -0
  1102. package/dist/store/queue-database.d.ts.map +1 -0
  1103. package/dist/store/queue-database.js +39 -0
  1104. package/dist/store/queue-database.js.map +1 -0
  1105. package/dist/store/relays.d.ts +66 -0
  1106. package/dist/store/relays.d.ts.map +1 -0
  1107. package/dist/store/relays.js +69 -0
  1108. package/dist/store/relays.js.map +1 -0
  1109. package/dist/store/rows.d.ts +33 -0
  1110. package/dist/store/rows.d.ts.map +1 -0
  1111. package/dist/store/rows.js +44 -0
  1112. package/dist/store/rows.js.map +1 -0
  1113. package/dist/store/schema.d.ts +14 -0
  1114. package/dist/store/schema.d.ts.map +1 -0
  1115. package/dist/store/schema.js +588 -0
  1116. package/dist/store/schema.js.map +1 -0
  1117. package/dist/store/sessions.d.ts +90 -0
  1118. package/dist/store/sessions.d.ts.map +1 -0
  1119. package/dist/store/sessions.js +107 -0
  1120. package/dist/store/sessions.js.map +1 -0
  1121. package/dist/store/state.d.ts +18 -0
  1122. package/dist/store/state.d.ts.map +1 -0
  1123. package/dist/store/state.js +19 -0
  1124. package/dist/store/state.js.map +1 -0
  1125. package/dist/store/tokens.d.ts +75 -0
  1126. package/dist/store/tokens.d.ts.map +1 -0
  1127. package/dist/store/tokens.js +82 -0
  1128. package/dist/store/tokens.js.map +1 -0
  1129. package/dist/store/webmentions.d.ts +66 -0
  1130. package/dist/store/webmentions.d.ts.map +1 -0
  1131. package/dist/store/webmentions.js +84 -0
  1132. package/dist/store/webmentions.js.map +1 -0
  1133. package/dist/supervisor/control.d.ts +1 -0
  1134. package/dist/supervisor/control.d.ts.map +1 -1
  1135. package/dist/supervisor/control.js +10 -0
  1136. package/dist/supervisor/control.js.map +1 -1
  1137. package/dist/supervisor/primary.d.ts +1 -1
  1138. package/dist/supervisor/primary.d.ts.map +1 -1
  1139. package/dist/supervisor/primary.js +46 -14
  1140. package/dist/supervisor/primary.js.map +1 -1
  1141. package/dist/supervisor/worker.d.ts +6 -2
  1142. package/dist/supervisor/worker.d.ts.map +1 -1
  1143. package/dist/supervisor/worker.js +4 -4
  1144. package/dist/supervisor/worker.js.map +1 -1
  1145. package/dist/testing.d.ts +8 -0
  1146. package/dist/testing.d.ts.map +1 -0
  1147. package/dist/testing.js +6 -0
  1148. package/dist/testing.js.map +1 -0
  1149. package/dist/{web → theme}/assets.d.ts +1 -32
  1150. package/dist/theme/assets.d.ts.map +1 -0
  1151. package/dist/{web → theme}/assets.js +2 -100
  1152. package/dist/theme/assets.js.map +1 -0
  1153. package/dist/theme/site-data.d.ts +187 -0
  1154. package/dist/theme/site-data.d.ts.map +1 -0
  1155. package/dist/theme/site-data.js +160 -0
  1156. package/dist/theme/site-data.js.map +1 -0
  1157. package/dist/{web → theme}/templates.d.ts +2 -0
  1158. package/dist/theme/templates.d.ts.map +1 -0
  1159. package/dist/{web → theme}/templates.js +9 -32
  1160. package/dist/theme/templates.js.map +1 -0
  1161. package/dist/{web → theme}/themes.d.ts +1 -0
  1162. package/dist/theme/themes.d.ts.map +1 -0
  1163. package/dist/{web → theme}/themes.js +6 -3
  1164. package/dist/theme/themes.js.map +1 -0
  1165. package/dist/util/client-id.d.ts.map +1 -0
  1166. package/dist/util/client-id.js.map +1 -0
  1167. package/dist/util/clock.d.ts +9 -0
  1168. package/dist/util/clock.d.ts.map +1 -0
  1169. package/dist/util/clock.js +2 -0
  1170. package/dist/util/clock.js.map +1 -0
  1171. package/dist/util/errors.d.ts +3 -0
  1172. package/dist/util/errors.d.ts.map +1 -0
  1173. package/dist/util/errors.js +5 -0
  1174. package/dist/util/errors.js.map +1 -0
  1175. package/dist/util/files.d.ts +5 -0
  1176. package/dist/util/files.d.ts.map +1 -0
  1177. package/dist/util/files.js +38 -0
  1178. package/dist/util/files.js.map +1 -0
  1179. package/dist/util/forms.d.ts +5 -0
  1180. package/dist/util/forms.d.ts.map +1 -0
  1181. package/dist/util/forms.js +17 -0
  1182. package/dist/util/forms.js.map +1 -0
  1183. package/dist/util/guards.d.ts +4 -0
  1184. package/dist/util/guards.d.ts.map +1 -0
  1185. package/dist/util/guards.js +12 -0
  1186. package/dist/util/guards.js.map +1 -0
  1187. package/dist/{webmention/html.d.ts → util/html-tree.d.ts} +2 -2
  1188. package/dist/util/html-tree.d.ts.map +1 -0
  1189. package/dist/{webmention/html.js → util/html-tree.js} +3 -64
  1190. package/dist/util/html-tree.js.map +1 -0
  1191. package/dist/util/html.d.ts +4 -0
  1192. package/dist/util/html.d.ts.map +1 -0
  1193. package/dist/util/html.js +34 -0
  1194. package/dist/util/html.js.map +1 -0
  1195. package/dist/util/public-address.d.ts.map +1 -0
  1196. package/dist/util/public-address.js.map +1 -0
  1197. package/dist/util/queue.d.ts +7 -0
  1198. package/dist/util/queue.d.ts.map +1 -0
  1199. package/dist/util/queue.js +23 -0
  1200. package/dist/util/queue.js.map +1 -0
  1201. package/dist/util/retry.d.ts +11 -0
  1202. package/dist/util/retry.d.ts.map +1 -0
  1203. package/dist/util/retry.js +14 -0
  1204. package/dist/util/retry.js.map +1 -0
  1205. package/dist/util/url.d.ts +11 -0
  1206. package/dist/util/url.d.ts.map +1 -0
  1207. package/dist/util/url.js +20 -0
  1208. package/dist/util/url.js.map +1 -0
  1209. package/dist/web/absolute-urls.js +1 -1
  1210. package/dist/web/absolute-urls.js.map +1 -1
  1211. package/dist/web/archive.js +2 -2
  1212. package/dist/web/archive.js.map +1 -1
  1213. package/dist/web/asset-routes.d.ts +52 -0
  1214. package/dist/web/asset-routes.d.ts.map +1 -0
  1215. package/dist/web/asset-routes.js +115 -0
  1216. package/dist/web/asset-routes.js.map +1 -0
  1217. package/dist/{avatars/routes.d.ts → web/avatar-routes.d.ts} +2 -2
  1218. package/dist/web/avatar-routes.d.ts.map +1 -0
  1219. package/dist/{avatars/routes.js → web/avatar-routes.js} +3 -3
  1220. package/dist/web/avatar-routes.js.map +1 -0
  1221. package/dist/web/comment-routes.d.ts +18 -0
  1222. package/dist/web/comment-routes.d.ts.map +1 -0
  1223. package/dist/web/comment-routes.js +177 -0
  1224. package/dist/web/comment-routes.js.map +1 -0
  1225. package/dist/web/compression.d.ts.map +1 -1
  1226. package/dist/web/compression.js +1 -2
  1227. package/dist/web/compression.js.map +1 -1
  1228. package/dist/{contact/routes.d.ts → web/contact-routes.d.ts} +2 -2
  1229. package/dist/web/contact-routes.d.ts.map +1 -0
  1230. package/dist/{contact/routes.js → web/contact-routes.js} +15 -18
  1231. package/dist/web/contact-routes.js.map +1 -0
  1232. package/dist/web/context.d.ts +6 -187
  1233. package/dist/web/context.d.ts.map +1 -1
  1234. package/dist/web/context.js +13 -174
  1235. package/dist/web/context.js.map +1 -1
  1236. package/dist/web/conversation.d.ts +6 -357
  1237. package/dist/web/conversation.d.ts.map +1 -1
  1238. package/dist/web/conversation.js +177 -151
  1239. package/dist/web/conversation.js.map +1 -1
  1240. package/dist/web/document-page.d.ts +13 -0
  1241. package/dist/web/document-page.d.ts.map +1 -0
  1242. package/dist/web/document-page.js +137 -0
  1243. package/dist/web/document-page.js.map +1 -0
  1244. package/dist/web/document-site.d.ts +14 -0
  1245. package/dist/web/document-site.d.ts.map +1 -0
  1246. package/dist/web/document-site.js +29 -0
  1247. package/dist/web/document-site.js.map +1 -0
  1248. package/dist/web/embed.d.ts +13 -0
  1249. package/dist/web/embed.d.ts.map +1 -0
  1250. package/dist/web/embed.js +66 -0
  1251. package/dist/web/embed.js.map +1 -0
  1252. package/dist/{env.d.ts → web/env.d.ts} +36 -26
  1253. package/dist/web/env.d.ts.map +1 -0
  1254. package/dist/web/env.js.map +1 -0
  1255. package/dist/web/federation-routes.d.ts +33 -0
  1256. package/dist/web/federation-routes.d.ts.map +1 -0
  1257. package/dist/web/federation-routes.js +282 -0
  1258. package/dist/web/federation-routes.js.map +1 -0
  1259. package/dist/web/feed-atom.d.ts.map +1 -1
  1260. package/dist/web/feed-atom.js +4 -3
  1261. package/dist/web/feed-atom.js.map +1 -1
  1262. package/dist/web/feed-item.d.ts +4 -39
  1263. package/dist/web/feed-item.d.ts.map +1 -1
  1264. package/dist/web/feed-item.js +9 -73
  1265. package/dist/web/feed-item.js.map +1 -1
  1266. package/dist/web/feed-json.js +2 -2
  1267. package/dist/web/feed-json.js.map +1 -1
  1268. package/dist/web/feed-routes.d.ts +35 -0
  1269. package/dist/web/feed-routes.d.ts.map +1 -0
  1270. package/dist/web/feed-routes.js +126 -0
  1271. package/dist/web/feed-routes.js.map +1 -0
  1272. package/dist/web/feed-rss.d.ts.map +1 -1
  1273. package/dist/web/feed-rss.js +9 -6
  1274. package/dist/web/feed-rss.js.map +1 -1
  1275. package/dist/web/feed-source.d.ts +11 -41
  1276. package/dist/web/feed-source.d.ts.map +1 -1
  1277. package/dist/web/feed-source.js +11 -48
  1278. package/dist/web/feed-source.js.map +1 -1
  1279. package/dist/web/feeds.d.ts +4 -2
  1280. package/dist/web/feeds.d.ts.map +1 -1
  1281. package/dist/web/feeds.js +8 -5
  1282. package/dist/web/feeds.js.map +1 -1
  1283. package/dist/web/health.d.ts +1 -1
  1284. package/dist/web/health.d.ts.map +1 -1
  1285. package/dist/web/health.js +1 -1
  1286. package/dist/web/health.js.map +1 -1
  1287. package/dist/web/index.d.ts +53 -29
  1288. package/dist/web/index.d.ts.map +1 -1
  1289. package/dist/web/index.js +37 -18
  1290. package/dist/web/index.js.map +1 -1
  1291. package/dist/{indieauth/activity-log.d.ts → web/indieauth-activity-log.d.ts} +3 -5
  1292. package/dist/web/indieauth-activity-log.d.ts.map +1 -0
  1293. package/dist/{indieauth/activity-log.js → web/indieauth-activity-log.js} +7 -10
  1294. package/dist/web/indieauth-activity-log.js.map +1 -0
  1295. package/dist/{indieauth/bearer.d.ts → web/indieauth-bearer.d.ts} +5 -5
  1296. package/dist/web/indieauth-bearer.d.ts.map +1 -0
  1297. package/dist/{indieauth/bearer.js → web/indieauth-bearer.js} +5 -5
  1298. package/dist/web/indieauth-bearer.js.map +1 -0
  1299. package/dist/{indieauth/discovery.d.ts → web/indieauth-discovery.d.ts} +2 -11
  1300. package/dist/web/indieauth-discovery.d.ts.map +1 -0
  1301. package/dist/{indieauth/discovery.js → web/indieauth-discovery.js} +7 -17
  1302. package/dist/web/indieauth-discovery.js.map +1 -0
  1303. package/dist/{indieauth/token.d.ts → web/indieauth-token.d.ts} +2 -2
  1304. package/dist/web/indieauth-token.d.ts.map +1 -0
  1305. package/dist/{indieauth/token.js → web/indieauth-token.js} +9 -9
  1306. package/dist/web/indieauth-token.js.map +1 -0
  1307. package/dist/web/listing-pages.d.ts +19 -0
  1308. package/dist/web/listing-pages.d.ts.map +1 -0
  1309. package/dist/web/listing-pages.js +147 -0
  1310. package/dist/web/listing-pages.js.map +1 -0
  1311. package/dist/web/listing-subject.d.ts +58 -0
  1312. package/dist/web/listing-subject.d.ts.map +1 -0
  1313. package/dist/web/listing-subject.js +89 -0
  1314. package/dist/web/listing-subject.js.map +1 -0
  1315. package/dist/web/llms.d.ts +16 -15
  1316. package/dist/web/llms.d.ts.map +1 -1
  1317. package/dist/web/llms.js +23 -35
  1318. package/dist/web/llms.js.map +1 -1
  1319. package/dist/web/maintenance.d.ts +1 -1
  1320. package/dist/web/maintenance.d.ts.map +1 -1
  1321. package/dist/web/maintenance.js +10 -16
  1322. package/dist/web/maintenance.js.map +1 -1
  1323. package/dist/web/manifest.d.ts +1 -1
  1324. package/dist/web/manifest.d.ts.map +1 -1
  1325. package/dist/web/manifest.js +2 -1
  1326. package/dist/web/manifest.js.map +1 -1
  1327. package/dist/web/markdown-page.d.ts +76 -0
  1328. package/dist/web/markdown-page.d.ts.map +1 -0
  1329. package/dist/web/markdown-page.js +79 -0
  1330. package/dist/web/markdown-page.js.map +1 -0
  1331. package/dist/web/markdown-representation.d.ts +15 -0
  1332. package/dist/web/markdown-representation.d.ts.map +1 -0
  1333. package/dist/web/markdown-representation.js +130 -0
  1334. package/dist/web/markdown-representation.js.map +1 -0
  1335. package/dist/web/negotiate.d.ts +5 -12
  1336. package/dist/web/negotiate.d.ts.map +1 -1
  1337. package/dist/web/negotiate.js +11 -18
  1338. package/dist/web/negotiate.js.map +1 -1
  1339. package/dist/{notifications/routes.d.ts → web/notification-routes.d.ts} +2 -2
  1340. package/dist/web/notification-routes.d.ts.map +1 -0
  1341. package/dist/{notifications/routes.js → web/notification-routes.js} +24 -29
  1342. package/dist/web/notification-routes.js.map +1 -0
  1343. package/dist/web/oembed.d.ts +2 -2
  1344. package/dist/web/oembed.d.ts.map +1 -1
  1345. package/dist/web/oembed.js +5 -4
  1346. package/dist/web/oembed.js.map +1 -1
  1347. package/dist/web/opensearch.d.ts.map +1 -1
  1348. package/dist/web/opensearch.js +2 -1
  1349. package/dist/web/opensearch.js.map +1 -1
  1350. package/dist/web/page-sources.d.ts +14 -0
  1351. package/dist/web/page-sources.d.ts.map +1 -0
  1352. package/dist/web/page-sources.js +43 -0
  1353. package/dist/web/page-sources.js.map +1 -0
  1354. package/dist/web/pagination.d.ts +1 -0
  1355. package/dist/web/pagination.d.ts.map +1 -1
  1356. package/dist/web/pagination.js +4 -1
  1357. package/dist/web/pagination.js.map +1 -1
  1358. package/dist/web/paths.d.ts +52 -0
  1359. package/dist/web/paths.d.ts.map +1 -0
  1360. package/dist/web/paths.js +208 -0
  1361. package/dist/web/paths.js.map +1 -0
  1362. package/dist/web/pingback-routes.d.ts +5 -0
  1363. package/dist/web/pingback-routes.d.ts.map +1 -0
  1364. package/dist/web/pingback-routes.js +100 -0
  1365. package/dist/web/pingback-routes.js.map +1 -0
  1366. package/dist/{plugins/federation.d.ts → web/plugin-federation.d.ts} +3 -3
  1367. package/dist/web/plugin-federation.d.ts.map +1 -0
  1368. package/dist/{plugins/federation.js → web/plugin-federation.js} +55 -45
  1369. package/dist/web/plugin-federation.js.map +1 -0
  1370. package/dist/{plugins/mount.d.ts → web/plugin-routes.d.ts} +3 -3
  1371. package/dist/web/plugin-routes.d.ts.map +1 -0
  1372. package/dist/{plugins/mount.js → web/plugin-routes.js} +2 -2
  1373. package/dist/web/plugin-routes.js.map +1 -0
  1374. package/dist/web/redirects.d.ts +1 -84
  1375. package/dist/web/redirects.d.ts.map +1 -1
  1376. package/dist/web/redirects.js +0 -232
  1377. package/dist/web/redirects.js.map +1 -1
  1378. package/dist/web/render.d.ts +55 -12
  1379. package/dist/web/render.d.ts.map +1 -1
  1380. package/dist/web/render.js +123 -65
  1381. package/dist/web/render.js.map +1 -1
  1382. package/dist/web/request.d.ts +44 -0
  1383. package/dist/web/request.d.ts.map +1 -0
  1384. package/dist/web/request.js +82 -0
  1385. package/dist/web/request.js.map +1 -0
  1386. package/dist/web/robots.d.ts +1 -46
  1387. package/dist/web/robots.d.ts.map +1 -1
  1388. package/dist/web/robots.js +5 -131
  1389. package/dist/web/robots.js.map +1 -1
  1390. package/dist/web/routes.d.ts +5 -39
  1391. package/dist/web/routes.d.ts.map +1 -1
  1392. package/dist/web/routes.js +102 -1374
  1393. package/dist/web/routes.js.map +1 -1
  1394. package/dist/web/search.d.ts.map +1 -1
  1395. package/dist/web/search.js +2 -9
  1396. package/dist/web/search.js.map +1 -1
  1397. package/dist/{admin → web}/session.d.ts +1 -5
  1398. package/dist/web/session.d.ts.map +1 -0
  1399. package/dist/{admin → web}/session.js +0 -4
  1400. package/dist/web/session.js.map +1 -0
  1401. package/dist/web/share-image.d.ts.map +1 -1
  1402. package/dist/web/share-image.js +3 -2
  1403. package/dist/web/share-image.js.map +1 -1
  1404. package/dist/web/signed-in.d.ts +27 -0
  1405. package/dist/web/signed-in.d.ts.map +1 -0
  1406. package/dist/web/signed-in.js +45 -0
  1407. package/dist/web/signed-in.js.map +1 -0
  1408. package/dist/web/site-index.d.ts +13 -0
  1409. package/dist/web/site-index.d.ts.map +1 -0
  1410. package/dist/web/site-index.js +142 -0
  1411. package/dist/web/site-index.js.map +1 -0
  1412. package/dist/web/site-view.d.ts +43 -0
  1413. package/dist/web/site-view.d.ts.map +1 -0
  1414. package/dist/web/site-view.js +65 -0
  1415. package/dist/web/site-view.js.map +1 -0
  1416. package/dist/web/sitemap.d.ts.map +1 -1
  1417. package/dist/web/sitemap.js +5 -7
  1418. package/dist/web/sitemap.js.map +1 -1
  1419. package/dist/{admin → web}/throttle.d.ts +3 -4
  1420. package/dist/web/throttle.d.ts.map +1 -0
  1421. package/dist/{admin → web}/throttle.js +1 -2
  1422. package/dist/web/throttle.js.map +1 -0
  1423. package/dist/web/webmention-routes.d.ts +11 -0
  1424. package/dist/web/webmention-routes.d.ts.map +1 -0
  1425. package/dist/web/webmention-routes.js +51 -0
  1426. package/dist/web/webmention-routes.js.map +1 -0
  1427. package/dist/web/well-known.d.ts +2 -2
  1428. package/dist/web/well-known.d.ts.map +1 -1
  1429. package/dist/web/well-known.js +10 -20
  1430. package/dist/web/well-known.js.map +1 -1
  1431. package/dist/webmention/cited-picture.d.ts +1 -2
  1432. package/dist/webmention/cited-picture.d.ts.map +1 -1
  1433. package/dist/webmention/cited-picture.js +5 -7
  1434. package/dist/webmention/cited-picture.js.map +1 -1
  1435. package/dist/webmention/discovery.d.ts +2 -13
  1436. package/dist/webmention/discovery.d.ts.map +1 -1
  1437. package/dist/webmention/discovery.js +18 -73
  1438. package/dist/webmention/discovery.js.map +1 -1
  1439. package/dist/webmention/endpoint.d.ts +27 -0
  1440. package/dist/webmention/endpoint.d.ts.map +1 -0
  1441. package/dist/webmention/endpoint.js +26 -0
  1442. package/dist/webmention/endpoint.js.map +1 -0
  1443. package/dist/webmention/fetch-public.d.ts +18 -1
  1444. package/dist/webmention/fetch-public.d.ts.map +1 -1
  1445. package/dist/webmention/fetch-public.js +57 -23
  1446. package/dist/webmention/fetch-public.js.map +1 -1
  1447. package/dist/webmention/index.d.ts +11 -9
  1448. package/dist/webmention/index.d.ts.map +1 -1
  1449. package/dist/webmention/index.js +7 -6
  1450. package/dist/webmention/index.js.map +1 -1
  1451. package/dist/webmention/links.d.ts +0 -55
  1452. package/dist/webmention/links.d.ts.map +1 -1
  1453. package/dist/webmention/links.js +2 -185
  1454. package/dist/webmention/links.js.map +1 -1
  1455. package/dist/webmention/microformats.d.ts +1 -1
  1456. package/dist/webmention/microformats.d.ts.map +1 -1
  1457. package/dist/webmention/microformats.js +1 -1
  1458. package/dist/webmention/microformats.js.map +1 -1
  1459. package/dist/webmention/pingback.d.ts +13 -12
  1460. package/dist/webmention/pingback.d.ts.map +1 -1
  1461. package/dist/webmention/pingback.js +6 -113
  1462. package/dist/webmention/pingback.js.map +1 -1
  1463. package/dist/webmention/receive.d.ts +9 -4
  1464. package/dist/webmention/receive.d.ts.map +1 -1
  1465. package/dist/webmention/receive.js +35 -41
  1466. package/dist/webmention/receive.js.map +1 -1
  1467. package/dist/webmention/reply-context/fediverse.d.ts +29 -0
  1468. package/dist/webmention/reply-context/fediverse.d.ts.map +1 -0
  1469. package/dist/webmention/reply-context/fediverse.js +59 -0
  1470. package/dist/webmention/reply-context/fediverse.js.map +1 -0
  1471. package/dist/webmention/reply-context/json-ld.d.ts +5 -0
  1472. package/dist/webmention/reply-context/json-ld.d.ts.map +1 -0
  1473. package/dist/webmention/reply-context/json-ld.js +78 -0
  1474. package/dist/webmention/reply-context/json-ld.js.map +1 -0
  1475. package/dist/webmention/reply-context/oembed.d.ts +21 -0
  1476. package/dist/webmention/reply-context/oembed.d.ts.map +1 -0
  1477. package/dist/webmention/reply-context/oembed.js +137 -0
  1478. package/dist/webmention/reply-context/oembed.js.map +1 -0
  1479. package/dist/webmention/reply-context/page.d.ts +30 -0
  1480. package/dist/webmention/reply-context/page.d.ts.map +1 -0
  1481. package/dist/webmention/reply-context/page.js +134 -0
  1482. package/dist/webmention/reply-context/page.js.map +1 -0
  1483. package/dist/webmention/reply-context/source.d.ts +29 -0
  1484. package/dist/webmention/reply-context/source.d.ts.map +1 -0
  1485. package/dist/webmention/reply-context/source.js +46 -0
  1486. package/dist/webmention/reply-context/source.js.map +1 -0
  1487. package/dist/webmention/reply-context.d.ts +5 -34
  1488. package/dist/webmention/reply-context.d.ts.map +1 -1
  1489. package/dist/webmention/reply-context.js +9 -432
  1490. package/dist/webmention/reply-context.js.map +1 -1
  1491. package/dist/webmention/reply-contexts.d.ts +17 -6
  1492. package/dist/webmention/reply-contexts.d.ts.map +1 -1
  1493. package/dist/webmention/reply-contexts.js +19 -20
  1494. package/dist/webmention/reply-contexts.js.map +1 -1
  1495. package/dist/webmention/routes.d.ts +1 -1
  1496. package/dist/webmention/routes.d.ts.map +1 -1
  1497. package/dist/webmention/routes.js +5 -8
  1498. package/dist/webmention/routes.js.map +1 -1
  1499. package/dist/webmention/service.d.ts +9 -7
  1500. package/dist/webmention/service.d.ts.map +1 -1
  1501. package/dist/webmention/service.js +111 -110
  1502. package/dist/webmention/service.js.map +1 -1
  1503. package/dist/webmention/syndication.d.ts +3 -26
  1504. package/dist/webmention/syndication.d.ts.map +1 -1
  1505. package/dist/webmention/syndication.js +6 -20
  1506. package/dist/webmention/syndication.js.map +1 -1
  1507. package/package.json +17 -11
  1508. package/themes/default/README.md +36 -2339
  1509. package/themes/default/layouts/base.njk +5 -4
  1510. package/themes/default/layouts/front-page.njk +4 -3
  1511. package/themes/default/layouts/page.njk +2 -0
  1512. package/themes/default/partials/comment-form.njk +1 -1
  1513. package/themes/default/partials/contact-form.njk +1 -2
  1514. package/themes/default/partials/conversation.njk +1 -2
  1515. package/themes/default/partials/markdown-footer.md.njk +24 -0
  1516. package/themes/default/partials/markdown-header.md.njk +31 -0
  1517. package/themes/default/partials/post-list.njk +11 -11
  1518. package/themes/default/src/style.css +18 -6
  1519. package/themes/default/static/style.css +19 -0
  1520. package/dist/admin/accounts.d.ts.map +0 -1
  1521. package/dist/admin/accounts.js.map +0 -1
  1522. package/dist/admin/admin-theme.d.ts.map +0 -1
  1523. package/dist/admin/admin-theme.js.map +0 -1
  1524. package/dist/admin/enclosure-field.d.ts.map +0 -1
  1525. package/dist/admin/enclosure-field.js.map +0 -1
  1526. package/dist/admin/event-field.d.ts.map +0 -1
  1527. package/dist/admin/event-field.js.map +0 -1
  1528. package/dist/admin/location-field.d.ts +0 -27
  1529. package/dist/admin/location-field.d.ts.map +0 -1
  1530. package/dist/admin/location-field.js.map +0 -1
  1531. package/dist/admin/passwords.d.ts.map +0 -1
  1532. package/dist/admin/passwords.js.map +0 -1
  1533. package/dist/admin/photo-field.d.ts +0 -38
  1534. package/dist/admin/photo-field.d.ts.map +0 -1
  1535. package/dist/admin/photo-field.js.map +0 -1
  1536. package/dist/admin/read-field.d.ts +0 -22
  1537. package/dist/admin/read-field.d.ts.map +0 -1
  1538. package/dist/admin/read-field.js +0 -61
  1539. package/dist/admin/read-field.js.map +0 -1
  1540. package/dist/admin/session.d.ts.map +0 -1
  1541. package/dist/admin/session.js.map +0 -1
  1542. package/dist/admin/store.d.ts +0 -1025
  1543. package/dist/admin/store.d.ts.map +0 -1
  1544. package/dist/admin/store.js +0 -1628
  1545. package/dist/admin/store.js.map +0 -1
  1546. package/dist/admin/throttle.d.ts.map +0 -1
  1547. package/dist/admin/throttle.js.map +0 -1
  1548. package/dist/avatars/routes.d.ts.map +0 -1
  1549. package/dist/avatars/routes.js.map +0 -1
  1550. package/dist/contact/routes.d.ts.map +0 -1
  1551. package/dist/contact/routes.js.map +0 -1
  1552. package/dist/env.d.ts.map +0 -1
  1553. package/dist/env.js.map +0 -1
  1554. package/dist/federation/replies.d.ts.map +0 -1
  1555. package/dist/federation/replies.js.map +0 -1
  1556. package/dist/images/alt-text.d.ts.map +0 -1
  1557. package/dist/images/alt-text.js.map +0 -1
  1558. package/dist/indieauth/activity-log.d.ts.map +0 -1
  1559. package/dist/indieauth/activity-log.js.map +0 -1
  1560. package/dist/indieauth/app-activity.d.ts.map +0 -1
  1561. package/dist/indieauth/app-activity.js.map +0 -1
  1562. package/dist/indieauth/bearer.d.ts.map +0 -1
  1563. package/dist/indieauth/bearer.js.map +0 -1
  1564. package/dist/indieauth/client-id.d.ts.map +0 -1
  1565. package/dist/indieauth/client-id.js.map +0 -1
  1566. package/dist/indieauth/connected-apps.d.ts.map +0 -1
  1567. package/dist/indieauth/connected-apps.js.map +0 -1
  1568. package/dist/indieauth/consent.d.ts.map +0 -1
  1569. package/dist/indieauth/consent.js.map +0 -1
  1570. package/dist/indieauth/discovery.d.ts.map +0 -1
  1571. package/dist/indieauth/discovery.js.map +0 -1
  1572. package/dist/indieauth/token.d.ts.map +0 -1
  1573. package/dist/indieauth/token.js.map +0 -1
  1574. package/dist/mail/service.d.ts.map +0 -1
  1575. package/dist/mail/service.js.map +0 -1
  1576. package/dist/mail/templates.d.ts.map +0 -1
  1577. package/dist/mail/templates.js.map +0 -1
  1578. package/dist/notifications/preferences.d.ts.map +0 -1
  1579. package/dist/notifications/preferences.js.map +0 -1
  1580. package/dist/notifications/routes.d.ts.map +0 -1
  1581. package/dist/notifications/routes.js.map +0 -1
  1582. package/dist/plugins/federation.d.ts.map +0 -1
  1583. package/dist/plugins/federation.js.map +0 -1
  1584. package/dist/plugins/mount.d.ts.map +0 -1
  1585. package/dist/plugins/mount.js.map +0 -1
  1586. package/dist/privacy/policy.d.ts.map +0 -1
  1587. package/dist/privacy/policy.js.map +0 -1
  1588. package/dist/web/admin-bar.d.ts.map +0 -1
  1589. package/dist/web/admin-bar.js.map +0 -1
  1590. package/dist/web/assets.d.ts.map +0 -1
  1591. package/dist/web/assets.js.map +0 -1
  1592. package/dist/web/authors.d.ts.map +0 -1
  1593. package/dist/web/authors.js +0 -211
  1594. package/dist/web/authors.js.map +0 -1
  1595. package/dist/web/documents.d.ts +0 -81
  1596. package/dist/web/documents.d.ts.map +0 -1
  1597. package/dist/web/documents.js.map +0 -1
  1598. package/dist/web/errors.d.ts.map +0 -1
  1599. package/dist/web/errors.js.map +0 -1
  1600. package/dist/web/guids.d.ts.map +0 -1
  1601. package/dist/web/guids.js.map +0 -1
  1602. package/dist/web/indexnow.d.ts.map +0 -1
  1603. package/dist/web/indexnow.js.map +0 -1
  1604. package/dist/web/license.d.ts.map +0 -1
  1605. package/dist/web/license.js.map +0 -1
  1606. package/dist/web/locale.d.ts.map +0 -1
  1607. package/dist/web/locale.js.map +0 -1
  1608. package/dist/web/navigation.d.ts.map +0 -1
  1609. package/dist/web/navigation.js.map +0 -1
  1610. package/dist/web/recent.d.ts +0 -43
  1611. package/dist/web/recent.d.ts.map +0 -1
  1612. package/dist/web/recent.js +0 -37
  1613. package/dist/web/recent.js.map +0 -1
  1614. package/dist/web/sanitize.d.ts +0 -29
  1615. package/dist/web/sanitize.d.ts.map +0 -1
  1616. package/dist/web/sanitize.js.map +0 -1
  1617. package/dist/web/taxonomy.d.ts.map +0 -1
  1618. package/dist/web/taxonomy.js.map +0 -1
  1619. package/dist/web/templates.d.ts.map +0 -1
  1620. package/dist/web/templates.js.map +0 -1
  1621. package/dist/web/themes.d.ts.map +0 -1
  1622. package/dist/web/themes.js.map +0 -1
  1623. package/dist/webmention/html.d.ts.map +0 -1
  1624. package/dist/webmention/html.js.map +0 -1
  1625. package/dist/webmention/public-address.d.ts.map +0 -1
  1626. package/dist/webmention/public-address.js.map +0 -1
  1627. /package/dist/{web → content}/license.d.ts +0 -0
  1628. /package/dist/{web → content}/license.js +0 -0
  1629. /package/dist/{admin → site}/admin-theme.d.ts +0 -0
  1630. /package/dist/{admin → site}/admin-theme.js +0 -0
  1631. /package/dist/{admin → site}/passwords.d.ts +0 -0
  1632. /package/dist/{admin → site}/passwords.js +0 -0
  1633. /package/dist/{indieauth → util}/client-id.d.ts +0 -0
  1634. /package/dist/{indieauth → util}/client-id.js +0 -0
  1635. /package/dist/{webmention → util}/public-address.d.ts +0 -0
  1636. /package/dist/{webmention → util}/public-address.js +0 -0
  1637. /package/dist/{env.js → web/env.js} +0 -0
@@ -1,6 +1,5 @@
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';
2
+ import { messageOf } from '../util/errors.js';
4
3
  import { COMMENT_FIELDS } from './submission.js';
5
4
  /**
6
5
  * Akismet, as the one {@link CommentChecker} this package ships.
@@ -11,18 +10,16 @@ import { COMMENT_FIELDS } from './submission.js';
11
10
  *
12
11
  * Two things make it optional at runtime rather than at build time:
13
12
  *
14
- * - **The key is a credential**, so it lives in `data/akismet.json` at mode
15
- * `0600` beside the password hashes and the actor's private keys, and never
16
- * in `content/_data/site.json`, which is public, in git and published with
17
- * the site.
18
- * - **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
19
18
  * screen starts filtering the next comment and a key removed stops filtering
20
19
  * at once. Without one, nothing is sent anywhere and the verdict is
21
20
  * `unknown` — the site's own rules decide, exactly as they did before
22
21
  * anybody had heard of Akismet.
23
22
  */
24
- /** Where the key lives, under `dataDir`. */
25
- export const AKISMET_KEY_FILE = 'akismet.json';
26
23
  /** The API this speaks. */
27
24
  export const AKISMET_ENDPOINT = 'https://rest.akismet.com/1.1';
28
25
  /**
@@ -40,59 +37,23 @@ export const AKISMET_USER_AGENT = 'Geekity CMS/1.0 | Akismet/1.1';
40
37
  */
41
38
  export const AKISMET_TIMEOUT_MS = 10_000;
42
39
  /**
43
- * The stored key, or `undefined` when the site has none.
44
- *
45
- * Read tolerantly and synchronously, like every other file this CMS treats as
46
- * truth: a file that will not parse, or one with no key in it, is a site with
47
- * no Akismet rather than a site that will not boot.
48
- */
49
- export function readAkismetKey(dataDir) {
50
- const raw = readFileIfPresentSync(akismetKeyPath(dataDir));
51
- if (raw === undefined)
52
- return undefined;
53
- let parsed;
54
- try {
55
- parsed = JSON.parse(raw);
56
- }
57
- catch {
58
- return undefined;
59
- }
60
- if (typeof parsed !== 'object' || parsed === null)
61
- return undefined;
62
- const file = parsed;
63
- const key = typeof file['key'] === 'string' ? file['key'].trim() : '';
64
- if (key === '')
65
- return undefined;
66
- const status = file['status'];
67
- return {
68
- key,
69
- status: status === 'valid' || status === 'invalid' ? status : 'unchecked',
70
- checkedAt: typeof file['checkedAt'] === 'string' ? file['checkedAt'] : '',
71
- };
72
- }
73
- /** Write the key, private to the account the site runs as. */
74
- export async function writeAkismetKey(dataDir, record) {
75
- await writeFileAtomically(akismetKeyPath(dataDir), `${JSON.stringify(record, null, 2)}\n`, {
76
- mode: 0o600,
77
- });
78
- }
79
- /** Forget the key, which is how a site turns Akismet off. */
80
- export async function removeAkismetKey(dataDir) {
81
- await rm(akismetKeyPath(dataDir), { force: true });
82
- }
83
- /** Where one site's key file is. */
84
- export function akismetKeyPath(dataDir) {
85
- return path.join(dataDir, AKISMET_KEY_FILE);
86
- }
87
- /**
88
- * Ask Akismet whether a key is one of theirs.
89
- *
90
40
  * Three answers rather than two, because "we could not ask" is not "no": a key
91
41
  * typed while the machine is offline should not be reported as a bad key, and
92
42
  * the settings screen says which of the two happened.
93
43
  */
94
44
  export async function verifyAkismetKey(options) {
95
- 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 });
96
57
  let answer;
97
58
  try {
98
59
  answer = await post(`${AKISMET_ENDPOINT}/verify-key`, body, options.fetch, options.timeoutMs);
@@ -123,11 +84,12 @@ export function createAkismetChecker(options) {
123
84
  };
124
85
  /** Send one call, or nothing at all when the site has no key. */
125
86
  async function send(method, fields) {
126
- const stored = readAkismetKey(options.dataDir);
127
- if (stored === undefined)
87
+ const key = await options.settings.get(AKISMET.key);
88
+ if (key === '')
128
89
  return undefined;
90
+ const language = await options.language();
129
91
  try {
130
- 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);
131
93
  if (!answer.ok) {
132
94
  warn(`Akismet answered ${method} with ${String(answer.status)}.${help(answer)}`);
133
95
  return undefined;
@@ -141,7 +103,7 @@ export function createAkismetChecker(options) {
141
103
  }
142
104
  return {
143
105
  async check(submission) {
144
- 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));
145
107
  if (answer === undefined)
146
108
  return 'unknown';
147
109
  const said = answer.body.trim();
@@ -160,15 +122,15 @@ export function createAkismetChecker(options) {
160
122
  return 'unknown';
161
123
  },
162
124
  async reportSpam(report) {
163
- await send('submit-spam', (key) => reportFields(key, report, options));
125
+ await send('submit-spam', (key, language) => reportFields(key, language, report, options));
164
126
  },
165
127
  async reportHam(report) {
166
- await send('submit-ham', (key) => reportFields(key, report, options));
128
+ await send('submit-ham', (key, language) => reportFields(key, language, report, options));
167
129
  },
168
130
  };
169
131
  }
170
132
  /** The fields one `comment-check` carries. */
171
- function checkFields(key, submission, options) {
133
+ function checkFields(key, language, submission, options) {
172
134
  const { comment } = submission;
173
135
  // A webmention is a page linking here rather than a form somebody filled in,
174
136
  // so it has no honeypot to name; a contact message is a form like a
@@ -178,7 +140,7 @@ function checkFields(key, submission, options) {
178
140
  api_key: key,
179
141
  blog: submission.baseUrl,
180
142
  blog_charset: 'UTF-8',
181
- blog_lang: blogLang(options.language()),
143
+ blog_lang: blogLang(language),
182
144
  user_ip: submission.address,
183
145
  user_agent: submission.userAgent,
184
146
  referrer: submission.referrer,
@@ -209,13 +171,13 @@ function checkFields(key, submission, options) {
209
171
  * The content, the author and the permalink are what is left, and they are
210
172
  * what a correction is mostly about.
211
173
  */
212
- function reportFields(key, report, options) {
174
+ function reportFields(key, language, report, options) {
213
175
  const { comment } = report;
214
176
  return fields({
215
177
  api_key: key,
216
178
  blog: report.baseUrl,
217
179
  blog_charset: 'UTF-8',
218
- blog_lang: blogLang(options.language()),
180
+ blog_lang: blogLang(language),
219
181
  permalink: report.url,
220
182
  comment_type: comment.source === 'webmention' ? 'webmention' : 'comment',
221
183
  comment_author: comment.author.name,
@@ -248,9 +210,6 @@ function blogLang(language) {
248
210
  function help(answer) {
249
211
  return answer.debugHelp === undefined ? '' : ` ${answer.debugHelp}`;
250
212
  }
251
- function messageOf(error) {
252
- return error instanceof Error ? error.message : String(error);
253
- }
254
213
  /** POST a urlencoded body to Akismet and read the answer. */
255
214
  async function post(url, body, client, timeoutMs) {
256
215
  const call = client ?? globalThis.fetch;
@@ -1 +1 @@
1
- {"version":3,"file":"akismet.js","sourceRoot":"","sources":["../../src/comments/akismet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"akismet.js","sourceRoot":"","sources":["../../src/comments/akismet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,340 @@
1
+ import type { Document } from '../content/document.ts';
2
+ import type { RsvpValue } from '../content/rsvp.ts';
3
+ import type { SiteSettings } from '../site/settings.ts';
4
+ import type { AdminStore, PostComment } from '../store/admin-store.ts';
5
+ /**
6
+ * Where an interaction came from.
7
+ *
8
+ * `activitypub` is a reply, a like or a boost the site's inbox was sent.
9
+ * `comment` is the form under the post (TASK-50). `webmention` is another
10
+ * site's post pointing at this one (TASK-51). `post` is a reply post a user of
11
+ * this site wrote, whose `in-reply-to` names the post or something said under
12
+ * it (TASK-300). All four are the same shape and thread together, which is the
13
+ * whole point of naming the source rather than keeping four lists.
14
+ */
15
+ export type InteractionSource = 'activitypub' | 'comment' | 'webmention' | 'post';
16
+ /**
17
+ * What an interaction is.
18
+ *
19
+ * `reply` is something somebody wrote; `like` and `boost` are the two ways the
20
+ * fediverse can point at a post without writing anything. `repost` is a
21
+ * webmention's word for a boost and is grouped with them, because to a reader
22
+ * they are the same act under two vocabularies. `mention` is the one thing
23
+ * none of the others is: somebody's page linking to this one without answering
24
+ * it (TASK-51).
25
+ */
26
+ export type InteractionKind = 'reply' | 'like' | 'boost' | 'repost' | 'mention';
27
+ /**
28
+ * Where an interaction stands with the moderator.
29
+ *
30
+ * Everything a remote server sends is `published`: it was published there
31
+ * before it arrived here, and this site did not decide it. A native comment
32
+ * carries the status its file gives it, and only an `approved` one is ever put
33
+ * in a conversation — `pending` and `spam` are named here because that is what
34
+ * the file can say, not because a template will ever be handed one.
35
+ */
36
+ export type InteractionStatus = 'published' | 'pending' | 'approved' | 'spam';
37
+ /** Who wrote something, as much as the site knows. */
38
+ export interface InteractionAuthor {
39
+ /** The best name available: their display name, else their handle, else their id. */
40
+ readonly name: string;
41
+ /** `@user@host`, when the source knows or can imply one. */
42
+ readonly handle: string | null;
43
+ /** Their profile page, for a reader following the link. */
44
+ readonly url: string | null;
45
+ /**
46
+ * Their avatar, when the site knows one: always a same-origin path, never
47
+ * the remote URL, so a reader's browser asks this site for it (TASK-134).
48
+ */
49
+ readonly avatar: string | null;
50
+ /** Their id, which is what identifies them however they are named. */
51
+ readonly actorId: string | null;
52
+ /**
53
+ * Where to follow what they publish, when the site knows (TASK-324): a
54
+ * webmention author's h-card or site, or a site user's author feed. A
55
+ * visitor's own website is only what they typed, and a fediverse actor
56
+ * publishes no feed the site knows of, so both are `null`.
57
+ */
58
+ readonly feed: string | null;
59
+ /**
60
+ * The site user they are, by username, else `null`: whoever a reply post
61
+ * is by, or whoever a stored comment names (TASK-337). A theme vouches for
62
+ * the link of a site user and of nobody else.
63
+ */
64
+ readonly username: string | null;
65
+ }
66
+ /** One thing somebody did to a post: a reply, a like or a boost. */
67
+ export interface Interaction {
68
+ /** What it is called: the note's id, and what a reply to it names. */
69
+ readonly id: string;
70
+ /**
71
+ * Its key (decision-51): a stored comment's id, else the key of its guid.
72
+ * The one thing in its anchor, `#comment-{key}`, and its replies feed,
73
+ * `/replies/{key}/`.
74
+ */
75
+ readonly key: string;
76
+ /**
77
+ * What the comments feeds call it, and what a reply to it names in
78
+ * `source:inReplyTo`: a stored form comment's page, a stored comment's
79
+ * origin or else its url, and anything else's id.
80
+ */
81
+ readonly guid: string;
82
+ /**
83
+ * Whether it was imported from another system (TASK-336): shown in the
84
+ * thread like any other, and carried by no feed and no reply count.
85
+ */
86
+ readonly migrated: boolean;
87
+ /** Where it came from. */
88
+ readonly source: InteractionSource;
89
+ /** Which of the three it is. */
90
+ readonly kind: InteractionKind;
91
+ /** Who did it. */
92
+ readonly author: InteractionAuthor;
93
+ /** Where it can be read on its own server, or `null` for one with no page. */
94
+ readonly url: string | null;
95
+ /** What it says, sanitised and ready to print. Empty for a like or a boost. */
96
+ readonly content: string;
97
+ /** When it was published, or when it arrived if it did not say. */
98
+ readonly published: Date;
99
+ /** What it answers: the post, or another interaction. `null` for a reaction. */
100
+ readonly inReplyTo: string | null;
101
+ /** Whether a reader may see it. */
102
+ readonly status: InteractionStatus;
103
+ /** The replies to this one, oldest first. */
104
+ readonly replies: ThreadReply[];
105
+ /**
106
+ * What a reply that is an RSVP says (TASK-198): its `rsvp` value and the
107
+ * words for it. A webmention carries one, and so does a fediverse answer
108
+ * to an event (TASK-200).
109
+ */
110
+ readonly rsvp?: {
111
+ readonly value: RsvpValue;
112
+ readonly label: string;
113
+ };
114
+ }
115
+ /**
116
+ * A comment a reader may not see, standing in the thread for the replies to it
117
+ * that a reader may (TASK-325): it is waiting for a moderator, filed as spam or
118
+ * deleted. It names nobody and says nothing, and there is one only while a
119
+ * visible reply sits under it.
120
+ */
121
+ export interface WithheldReply {
122
+ /** The hidden comment's id. */
123
+ readonly id: string;
124
+ /** Its key, so its anchor on the post is still there. */
125
+ readonly key: string;
126
+ readonly withheld: true;
127
+ /** The replies under it, oldest first, at least one of them visible. */
128
+ readonly replies: ThreadReply[];
129
+ }
130
+ /** One entry of a thread: a reply, or the placeholder for a hidden one. */
131
+ export type ThreadReply = Interaction | WithheldReply;
132
+ /** How many of each a conversation holds. */
133
+ export interface InteractionCounts {
134
+ /** Replies, counted through the whole thread rather than the top of it. */
135
+ readonly replies: number;
136
+ /** Likes. */
137
+ readonly likes: number;
138
+ /** Boosts, reposts included. */
139
+ readonly boosts: number;
140
+ /** Mentions: pages that linked to this one without answering it. */
141
+ readonly mentions: number;
142
+ /** RSVPs to an event, one per person, in every group. */
143
+ readonly rsvps: number;
144
+ /** All of them added up: zero is what "no conversation" means. */
145
+ readonly total: number;
146
+ }
147
+ /** Everything under one post. */
148
+ export interface Conversation {
149
+ /** The replies to the post itself, oldest first, each carrying its own. */
150
+ readonly replies: ThreadReply[];
151
+ /** The likes, oldest first. */
152
+ readonly likes: Interaction[];
153
+ /** The boosts and the reposts, oldest first and in one list. */
154
+ readonly boosts: Interaction[];
155
+ /** The pages that linked here without answering, oldest first. */
156
+ readonly mentions: Interaction[];
157
+ /**
158
+ * The answers to an event (TASK-200), grouped as going, maybe, interested
159
+ * and not going, each group oldest first and only when it has somebody in
160
+ * it. Empty on a post that is no event.
161
+ */
162
+ readonly rsvps: RsvpGroup[];
163
+ /** How many of each. */
164
+ readonly counts: InteractionCounts;
165
+ }
166
+ /** Everybody who gave an event one answer. */
167
+ export interface RsvpGroup {
168
+ readonly value: RsvpValue;
169
+ readonly label: string;
170
+ /** Each person's latest answer, oldest first, each an RSVP interaction. */
171
+ readonly people: Interaction[];
172
+ }
173
+ /**
174
+ * Something said in a conversation, with the reply it sits under (TASK-324):
175
+ * what the comments feeds name as what it answers.
176
+ */
177
+ export interface Placed extends Interaction {
178
+ /**
179
+ * The visible reply it answers, or `null` for the post. A hidden comment in
180
+ * between is passed over, the way the thread already passes over a
181
+ * withdrawn note, so a reader walking the feeds reaches every visible reply.
182
+ */
183
+ readonly parent: Interaction | null;
184
+ }
185
+ /** One interaction with the post it is about, which a site-wide list needs. */
186
+ export interface SiteInteraction extends Placed {
187
+ /** The post it answers. */
188
+ readonly post: Document;
189
+ /**
190
+ * Who wrote the reply it answers, when it answers one a reader can see
191
+ * (TASK-318), and `null` for an answer to the post itself.
192
+ */
193
+ readonly replyingTo: string | null;
194
+ }
195
+ /**
196
+ * The site settings a conversation is read with: who the site's own posts are
197
+ * by when they name nobody, and whether comments are on.
198
+ */
199
+ export type ConversationSite = Pick<SiteSettings, 'author' | 'title' | 'comments' | 'comments_close_after_days'>;
200
+ /**
201
+ * The three questions anything showing a conversation asks.
202
+ *
203
+ * Every one of them is answered from both indexes at once, because a reader
204
+ * does not care which door an answer came in by. The moderation screen and the
205
+ * notices are not conversation display and keep their own queries: they are
206
+ * about what a moderator has to decide, which is the one thing a reader never
207
+ * sees.
208
+ */
209
+ export interface ConversationReader {
210
+ /** Everything said about one post, threaded. */
211
+ readonly thread: (document: Document, site: ConversationSite) => Conversation;
212
+ /**
213
+ * How many visible replies answer each of these documents directly, by
214
+ * permalink: what a reader following `source:comments` finds in its
215
+ * `/replies/` feed (TASK-324). Read off each thread, since that is the only
216
+ * reading that knows which replies a reader sees and where they sit.
217
+ */
218
+ readonly counts: (documents: readonly Document[], site: ConversationSite) => Map<string, number>;
219
+ /**
220
+ * The site's latest answers, newest first, each with the post it answers.
221
+ *
222
+ * One about a post that has since been unpublished or trashed is left out,
223
+ * because the post it is about is not there to read: the feed would be
224
+ * showing a conversation about nothing. That filtering happens after the
225
+ * indexes have paged, so the pages are read until enough survive.
226
+ */
227
+ readonly latest: (limit: number, site: ConversationSite) => SiteInteraction[];
228
+ /**
229
+ * One native comment as its own page reads it (TASK-318), or `undefined`
230
+ * for an id that names no approved comment written on this site. The post
231
+ * comes back in whatever state it is in, so the page can answer as the post
232
+ * itself would.
233
+ */
234
+ readonly comment: (id: string, site: ConversationSite) => CommentThread | undefined;
235
+ /**
236
+ * The reply on a post that a URL names, or `undefined` (TASK-319):
237
+ * a comment by its own page or by the post's `#comment-` anchor, a
238
+ * webmention by the page it was sent from, a fediverse reply by its url or
239
+ * its id. Every stored comment counts whatever its status, because what a
240
+ * reply answers is a fact about it, and whether a reader may see the one it
241
+ * answers is decided when the thread is read.
242
+ */
243
+ readonly replyNamed: (document: Document, url: string, site: ConversationSite) => Interaction | undefined;
244
+ /**
245
+ * What a URL names on this site, while a reader may see it: a reply (a
246
+ * comment by its page or its anchor, a webmention by the page it was sent
247
+ * from, a fediverse reply by its id or url, a reply post by its permalink)
248
+ * with the post it is on, or a served post or page itself (TASK-300,
249
+ * TASK-326). What a reply post answering it cites, instead of fetching a page.
250
+ */
251
+ readonly heldAt: (url: string, site: ConversationSite) => HeldAt | undefined;
252
+ /**
253
+ * What a key names and its direct replies (TASK-324, decision-51), or
254
+ * `undefined`: a served post or page, or a reply a reader can see.
255
+ */
256
+ readonly repliesTo: (key: string, site: ConversationSite) => RepliesOf | undefined;
257
+ /**
258
+ * The document whose conversation a URL is in (TASK-320): the post a
259
+ * comment's page or anchor is on, the post a webmention was sent to, the
260
+ * post a fediverse reply answers however deep, or the document at the URL.
261
+ */
262
+ readonly documentOf: (url: string) => Document | undefined;
263
+ /**
264
+ * Every page in the conversation a document is in that answers something
265
+ * off this site, with what a reader sees under it (TASK-320): what a
266
+ * salmention is sent from. A reply post answers its `in-reply-to`; a
267
+ * comment's own page answers the webmention reply it is under. One
268
+ * answering something here has nobody to tell: this site already knows.
269
+ */
270
+ readonly upstreams: (document: Document, site: ConversationSite) => Upstream[];
271
+ }
272
+ /** One page of this site's answering a page elsewhere (TASK-320). */
273
+ export interface Upstream {
274
+ /** The document the page is, or that the comment is on. */
275
+ readonly post: Document;
276
+ /** The page, absolute: a reply post's permalink or a comment's own page. */
277
+ readonly source: string;
278
+ /** What it answers, off this site. */
279
+ readonly target: string;
280
+ /** The replies a reader sees under it, as its page prints them. */
281
+ readonly replies: readonly ThreadReply[];
282
+ }
283
+ /** What one `/replies/` feed is about, and what is in it (TASK-324). */
284
+ export interface RepliesOf {
285
+ /** The document whose conversation it is. */
286
+ readonly post: Document;
287
+ /** The reply whose replies these are, or `null` for the document's own. */
288
+ readonly reply: Interaction | null;
289
+ /** The visible replies directly under it, each carrying its own. */
290
+ readonly replies: Placed[];
291
+ }
292
+ /** What {@link ConversationReader.heldAt} found: a reply and the post it is on, or a post. */
293
+ export type HeldAt = {
294
+ readonly kind: 'reply';
295
+ readonly post: Document;
296
+ readonly reply: Interaction;
297
+ } | {
298
+ readonly kind: 'document';
299
+ readonly post: Document;
300
+ readonly author: InteractionAuthor;
301
+ };
302
+ /** A native comment, what it answers and what answers it (TASK-318). */
303
+ export interface CommentThread {
304
+ /** The post it is on. */
305
+ readonly post: Document;
306
+ /** The comment, carrying its replies at every depth as the thread does. */
307
+ readonly comment: Interaction;
308
+ /**
309
+ * What it answers, from the top-level comment down to its parent. `null`
310
+ * is an ancestor a reader may not see: one waiting for a moderator, filed
311
+ * as spam, deleted or withdrawn.
312
+ */
313
+ readonly ancestors: readonly (Interaction | null)[];
314
+ }
315
+ /**
316
+ * The URLs a reply post can answer a native comment by: its own page, and its
317
+ * anchor on the post at this absolute permalink.
318
+ */
319
+ export declare function commentNames(id: string, permalink: string, baseUrl: string): string[];
320
+ /**
321
+ * The stored comment holding a fediverse note or activity id as its origin:
322
+ * one imported from the site this one replaced, keyed by that id as it would
323
+ * have been had it arrived here (TASK-336). A delivery or a fetch of the same
324
+ * id is that comment again, and the stored one wins, since it is the one the
325
+ * moderator decided on and the thread anchors.
326
+ */
327
+ export declare function heldComment(admin: AdminStore, id: string): PostComment | undefined;
328
+ /**
329
+ * The `id` a thread entry is anchored at on the page, by its key.
330
+ *
331
+ * Prefixed rather than bare so a comment can never collide with a heading
332
+ * anchor the post's own Markdown produced.
333
+ */
334
+ export declare function commentAnchor(key: string): string;
335
+ /** The key of the comment whose page a path is, or `undefined` (TASK-319). */
336
+ export declare function commentKeyAt(pathname: string): string | undefined;
337
+ /** The entry of a thread with this key that a reader can see, at any depth. */
338
+ export declare function visibleReply(replies: readonly ThreadReply[], key: string): Interaction | undefined;
339
+ export declare function isWithheld(reply: ThreadReply): reply is WithheldReply;
340
+ //# sourceMappingURL=conversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/comments/conversation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { COMMENT_PAGE_PREFIX, commentPageHref, isKey, repliesKey } from '../content/guids.js';
2
+ import { absoluteUrl } from '../util/url.js';
3
+ /**
4
+ * The URLs a reply post can answer a native comment by: its own page, and its
5
+ * anchor on the post at this absolute permalink.
6
+ */
7
+ export function commentNames(id, permalink, baseUrl) {
8
+ return [absoluteUrl(commentPageHref(id), baseUrl), `${permalink}#${commentAnchor(id)}`];
9
+ }
10
+ /**
11
+ * The stored comment holding a fediverse note or activity id as its origin:
12
+ * one imported from the site this one replaced, keyed by that id as it would
13
+ * have been had it arrived here (TASK-336). A delivery or a fetch of the same
14
+ * id is that comment again, and the stored one wins, since it is the one the
15
+ * moderator decided on and the thread anchors.
16
+ */
17
+ export function heldComment(admin, id) {
18
+ const comment = admin.getComment(repliesKey(id));
19
+ return comment?.origin === id ? comment : undefined;
20
+ }
21
+ /**
22
+ * The `id` a thread entry is anchored at on the page, by its key.
23
+ *
24
+ * Prefixed rather than bare so a comment can never collide with a heading
25
+ * anchor the post's own Markdown produced.
26
+ */
27
+ export function commentAnchor(key) {
28
+ return `comment-${key}`;
29
+ }
30
+ /** The key of the comment whose page a path is, or `undefined` (TASK-319). */
31
+ export function commentKeyAt(pathname) {
32
+ if (!pathname.startsWith(COMMENT_PAGE_PREFIX) || !pathname.endsWith('/'))
33
+ return undefined;
34
+ const key = pathname.slice(COMMENT_PAGE_PREFIX.length, -1);
35
+ return isKey(key) ? key : undefined;
36
+ }
37
+ /** The entry of a thread with this key that a reader can see, at any depth. */
38
+ export function visibleReply(replies, key) {
39
+ for (const reply of replies) {
40
+ if (!isWithheld(reply) && reply.key === key)
41
+ return reply;
42
+ const found = visibleReply(reply.replies, key);
43
+ if (found !== undefined)
44
+ return found;
45
+ }
46
+ return undefined;
47
+ }
48
+ export function isWithheld(reply) {
49
+ return 'withheld' in reply;
50
+ }
51
+ //# sourceMappingURL=conversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/comments/conversation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAI9F,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAwU7C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,EAAU,EAAE,SAAiB,EAAE,OAAe;IACzE,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,SAAS,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,KAAiB,EAAE,EAAU;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,OAAO,OAAO,EAAE,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,WAAW,GAAG,EAAE,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3F,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,YAAY,CAC1B,OAA+B,EAC/B,GAAW;IAEX,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QAC1D,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAkB;IAC3C,OAAO,UAAU,IAAI,KAAK,CAAC;AAC7B,CAAC"}
@@ -110,14 +110,14 @@ export declare const COMMENT_REPLY_PARAM = "reply_to";
110
110
  */
111
111
  export declare const COMMENT_NOTICES: Readonly<Record<string, string>>;
112
112
  /** A fresh, empty form for a post that is taking comments. */
113
- export declare function commentForm(document: Document, now?: Date, notifiable?: boolean): CommentFormContext;
113
+ export declare function commentForm(document: Document, now: Date, notifiable?: boolean): CommentFormContext;
114
114
  /**
115
115
  * The same form with what somebody typed still in it.
116
116
  *
117
117
  * What a refused submission is answered with: losing a paragraph because an
118
118
  * email address had a typo in it is the fastest way to lose a commenter.
119
119
  */
120
- export declare function refilledCommentForm(document: Document, values: CommentFormContext['values'], problems: CommentProblems, now?: Date, error?: string, notifiable?: boolean): CommentFormContext;
120
+ export declare function refilledCommentForm(document: Document, values: CommentFormContext['values'], problems: CommentProblems, now: Date, error?: string, notifiable?: boolean): CommentFormContext;
121
121
  /** What a form holds before anybody has typed in it. */
122
122
  export declare function blankValues(): CommentFormContext['values'];
123
123
  /** What a submitted form typed, for putting back in a refused one. */