@geekity/cms 0.3.0 → 0.4.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 (637) hide show
  1. package/README.md +2091 -214
  2. package/admin/components/fields.njk +165 -0
  3. package/admin/layouts/base.njk +1 -1
  4. package/admin/layouts/settings-page.njk +26 -0
  5. package/admin/layouts/shell.njk +17 -3
  6. package/admin/pages/account/forgot.njk +47 -0
  7. package/admin/pages/account/login.njk +26 -0
  8. package/admin/pages/account/reset.njk +38 -0
  9. package/admin/pages/account/setup.njk +28 -0
  10. package/admin/pages/appearance/themes.njk +69 -0
  11. package/admin/pages/comments/all.njk +133 -0
  12. package/admin/{layouts/dashboard.njk → pages/dashboard/home.njk} +8 -15
  13. package/admin/{layouts/document-conflict.njk → pages/documents/conflict.njk} +1 -0
  14. package/admin/pages/documents/editor.njk +196 -0
  15. package/admin/{layouts/document-list.njk → pages/documents/list.njk} +19 -2
  16. package/admin/pages/documents/taxonomy.njk +95 -0
  17. package/admin/pages/federation/followers.njk +238 -0
  18. package/admin/pages/media/library.njk +160 -0
  19. package/admin/pages/messages/all.njk +110 -0
  20. package/admin/{layouts → pages}/placeholder.njk +5 -1
  21. package/admin/pages/settings/discussion.njk +99 -0
  22. package/admin/pages/settings/email.njk +203 -0
  23. package/admin/pages/settings/federation.njk +75 -0
  24. package/admin/pages/settings/general.njk +29 -0
  25. package/admin/pages/settings/permalinks.njk +50 -0
  26. package/admin/pages/settings/reading.njk +72 -0
  27. package/admin/pages/users/edit.njk +239 -0
  28. package/admin/pages/users/list.njk +48 -0
  29. package/admin/pages/users/new.njk +41 -0
  30. package/admin/static/admin.css +498 -3
  31. package/admin/static/copy.js +52 -0
  32. package/admin/static/editor.js +16 -16
  33. package/admin/static/slug.js +61 -0
  34. package/dist/admin/accounts.d.ts +413 -0
  35. package/dist/admin/accounts.d.ts.map +1 -0
  36. package/dist/admin/accounts.js +680 -0
  37. package/dist/admin/accounts.js.map +1 -0
  38. package/dist/admin/appearance.d.ts +80 -0
  39. package/dist/admin/appearance.d.ts.map +1 -0
  40. package/dist/admin/appearance.js +136 -0
  41. package/dist/admin/appearance.js.map +1 -0
  42. package/dist/admin/comments.d.ts +90 -0
  43. package/dist/admin/comments.d.ts.map +1 -0
  44. package/dist/admin/comments.js +244 -0
  45. package/dist/admin/comments.js.map +1 -0
  46. package/dist/admin/credentials.d.ts +26 -2
  47. package/dist/admin/credentials.d.ts.map +1 -1
  48. package/dist/admin/credentials.js +35 -2
  49. package/dist/admin/credentials.js.map +1 -1
  50. package/dist/admin/documents.d.ts +127 -10
  51. package/dist/admin/documents.d.ts.map +1 -1
  52. package/dist/admin/documents.js +360 -41
  53. package/dist/admin/documents.js.map +1 -1
  54. package/dist/admin/federation.d.ts +151 -50
  55. package/dist/admin/federation.d.ts.map +1 -1
  56. package/dist/admin/federation.js +225 -93
  57. package/dist/admin/federation.js.map +1 -1
  58. package/dist/admin/formatting.d.ts +20 -0
  59. package/dist/admin/formatting.d.ts.map +1 -0
  60. package/dist/admin/formatting.js +72 -0
  61. package/dist/admin/formatting.js.map +1 -0
  62. package/dist/admin/headers.d.ts +65 -0
  63. package/dist/admin/headers.d.ts.map +1 -0
  64. package/dist/admin/headers.js +104 -0
  65. package/dist/admin/headers.js.map +1 -0
  66. package/dist/admin/index.d.ts +38 -12
  67. package/dist/admin/index.d.ts.map +1 -1
  68. package/dist/admin/index.js +25 -7
  69. package/dist/admin/index.js.map +1 -1
  70. package/dist/admin/media.d.ts +168 -0
  71. package/dist/admin/media.d.ts.map +1 -0
  72. package/dist/admin/media.js +295 -0
  73. package/dist/admin/media.js.map +1 -0
  74. package/dist/admin/menu.d.ts +79 -0
  75. package/dist/admin/menu.d.ts.map +1 -0
  76. package/dist/admin/menu.js +126 -0
  77. package/dist/admin/menu.js.map +1 -0
  78. package/dist/admin/messages.d.ts +80 -0
  79. package/dist/admin/messages.d.ts.map +1 -0
  80. package/dist/admin/messages.js +152 -0
  81. package/dist/admin/messages.js.map +1 -0
  82. package/dist/admin/preview.d.ts.map +1 -1
  83. package/dist/admin/preview.js +31 -7
  84. package/dist/admin/preview.js.map +1 -1
  85. package/dist/admin/recovery.d.ts +92 -0
  86. package/dist/admin/recovery.d.ts.map +1 -0
  87. package/dist/admin/recovery.js +229 -0
  88. package/dist/admin/recovery.js.map +1 -0
  89. package/dist/admin/routes.d.ts +0 -20
  90. package/dist/admin/routes.d.ts.map +1 -1
  91. package/dist/admin/routes.js +155 -105
  92. package/dist/admin/routes.js.map +1 -1
  93. package/dist/admin/settings-discussion.d.ts +37 -0
  94. package/dist/admin/settings-discussion.d.ts.map +1 -0
  95. package/dist/admin/settings-discussion.js +117 -0
  96. package/dist/admin/settings-discussion.js.map +1 -0
  97. package/dist/admin/settings-email.d.ts +54 -0
  98. package/dist/admin/settings-email.d.ts.map +1 -0
  99. package/dist/admin/settings-email.js +189 -0
  100. package/dist/admin/settings-email.js.map +1 -0
  101. package/dist/admin/settings-federation.d.ts +39 -0
  102. package/dist/admin/settings-federation.d.ts.map +1 -0
  103. package/dist/admin/settings-federation.js +103 -0
  104. package/dist/admin/settings-federation.js.map +1 -0
  105. package/dist/admin/settings-general.d.ts +12 -0
  106. package/dist/admin/settings-general.d.ts.map +1 -0
  107. package/dist/admin/settings-general.js +48 -0
  108. package/dist/admin/settings-general.js.map +1 -0
  109. package/dist/admin/settings-page.d.ts +102 -0
  110. package/dist/admin/settings-page.d.ts.map +1 -0
  111. package/dist/admin/settings-page.js +126 -0
  112. package/dist/admin/settings-page.js.map +1 -0
  113. package/dist/admin/settings-pages.d.ts +19 -0
  114. package/dist/admin/settings-pages.d.ts.map +1 -0
  115. package/dist/admin/settings-pages.js +33 -0
  116. package/dist/admin/settings-pages.js.map +1 -0
  117. package/dist/admin/settings-permalinks.d.ts +16 -0
  118. package/dist/admin/settings-permalinks.d.ts.map +1 -0
  119. package/dist/admin/settings-permalinks.js +32 -0
  120. package/dist/admin/settings-permalinks.js.map +1 -0
  121. package/dist/admin/settings-reading.d.ts +33 -0
  122. package/dist/admin/settings-reading.d.ts.map +1 -0
  123. package/dist/admin/settings-reading.js +48 -0
  124. package/dist/admin/settings-reading.js.map +1 -0
  125. package/dist/admin/settings.d.ts +325 -96
  126. package/dist/admin/settings.d.ts.map +1 -1
  127. package/dist/admin/settings.js +650 -308
  128. package/dist/admin/settings.js.map +1 -1
  129. package/dist/admin/store.d.ts +606 -152
  130. package/dist/admin/store.d.ts.map +1 -1
  131. package/dist/admin/store.js +863 -268
  132. package/dist/admin/store.js.map +1 -1
  133. package/dist/admin/taxonomy.d.ts +114 -0
  134. package/dist/admin/taxonomy.d.ts.map +1 -0
  135. package/dist/admin/taxonomy.js +289 -0
  136. package/dist/admin/taxonomy.js.map +1 -0
  137. package/dist/admin/templates.d.ts +44 -14
  138. package/dist/admin/templates.d.ts.map +1 -1
  139. package/dist/admin/templates.js +44 -14
  140. package/dist/admin/templates.js.map +1 -1
  141. package/dist/admin/throttle.d.ts +84 -0
  142. package/dist/admin/throttle.d.ts.map +1 -0
  143. package/dist/admin/throttle.js +143 -0
  144. package/dist/admin/throttle.js.map +1 -0
  145. package/dist/admin/uploads.d.ts +28 -2
  146. package/dist/admin/uploads.d.ts.map +1 -1
  147. package/dist/admin/uploads.js +43 -4
  148. package/dist/admin/uploads.js.map +1 -1
  149. package/dist/admin/users.d.ts +100 -13
  150. package/dist/admin/users.d.ts.map +1 -1
  151. package/dist/admin/users.js +412 -39
  152. package/dist/admin/users.js.map +1 -1
  153. package/dist/cache.d.ts +141 -0
  154. package/dist/cache.d.ts.map +1 -0
  155. package/dist/cache.js +207 -0
  156. package/dist/cache.js.map +1 -0
  157. package/dist/cli.d.ts +14 -2
  158. package/dist/cli.d.ts.map +1 -1
  159. package/dist/cli.js +424 -21
  160. package/dist/cli.js.map +1 -1
  161. package/dist/comments/akismet.d.ts +130 -0
  162. package/dist/comments/akismet.d.ts.map +1 -0
  163. package/dist/comments/akismet.js +274 -0
  164. package/dist/comments/akismet.js.map +1 -0
  165. package/dist/comments/conversation.d.ts +29 -0
  166. package/dist/comments/conversation.d.ts.map +1 -0
  167. package/dist/comments/conversation.js +60 -0
  168. package/dist/comments/conversation.js.map +1 -0
  169. package/dist/comments/form.d.ts +75 -0
  170. package/dist/comments/form.d.ts.map +1 -0
  171. package/dist/comments/form.js +64 -0
  172. package/dist/comments/form.js.map +1 -0
  173. package/dist/comments/index.d.ts +15 -0
  174. package/dist/comments/index.d.ts.map +1 -0
  175. package/dist/comments/index.js +9 -0
  176. package/dist/comments/index.js.map +1 -0
  177. package/dist/comments/markdown.d.ts +8 -0
  178. package/dist/comments/markdown.d.ts.map +1 -0
  179. package/dist/comments/markdown.js +85 -0
  180. package/dist/comments/markdown.js.map +1 -0
  181. package/dist/comments/moderate.d.ts +71 -0
  182. package/dist/comments/moderate.d.ts.map +1 -0
  183. package/dist/comments/moderate.js +88 -0
  184. package/dist/comments/moderate.js.map +1 -0
  185. package/dist/comments/policy.d.ts +57 -0
  186. package/dist/comments/policy.d.ts.map +1 -0
  187. package/dist/comments/policy.js +80 -0
  188. package/dist/comments/policy.js.map +1 -0
  189. package/dist/comments/records.d.ts +266 -0
  190. package/dist/comments/records.d.ts.map +1 -0
  191. package/dist/comments/records.js +487 -0
  192. package/dist/comments/records.js.map +1 -0
  193. package/dist/comments/routes.d.ts +58 -0
  194. package/dist/comments/routes.d.ts.map +1 -0
  195. package/dist/comments/routes.js +177 -0
  196. package/dist/comments/routes.js.map +1 -0
  197. package/dist/comments/submission.d.ts +263 -0
  198. package/dist/comments/submission.d.ts.map +1 -0
  199. package/dist/comments/submission.js +241 -0
  200. package/dist/comments/submission.js.map +1 -0
  201. package/dist/config.d.ts +190 -5
  202. package/dist/config.d.ts.map +1 -1
  203. package/dist/config.js +118 -6
  204. package/dist/config.js.map +1 -1
  205. package/dist/contact/delivery.d.ts +60 -0
  206. package/dist/contact/delivery.d.ts.map +1 -0
  207. package/dist/contact/delivery.js +87 -0
  208. package/dist/contact/delivery.js.map +1 -0
  209. package/dist/contact/form.d.ts +130 -0
  210. package/dist/contact/form.d.ts.map +1 -0
  211. package/dist/contact/form.js +163 -0
  212. package/dist/contact/form.js.map +1 -0
  213. package/dist/contact/index.d.ts +17 -0
  214. package/dist/contact/index.d.ts.map +1 -0
  215. package/dist/contact/index.js +13 -0
  216. package/dist/contact/index.js.map +1 -0
  217. package/dist/contact/records.d.ts +124 -0
  218. package/dist/contact/records.d.ts.map +1 -0
  219. package/dist/contact/records.js +218 -0
  220. package/dist/contact/records.js.map +1 -0
  221. package/dist/contact/routes.d.ts +17 -0
  222. package/dist/contact/routes.d.ts.map +1 -0
  223. package/dist/contact/routes.js +127 -0
  224. package/dist/contact/routes.js.map +1 -0
  225. package/dist/contact/submission.d.ts +103 -0
  226. package/dist/contact/submission.d.ts.map +1 -0
  227. package/dist/contact/submission.js +166 -0
  228. package/dist/contact/submission.js.map +1 -0
  229. package/dist/content/document.d.ts +7 -2
  230. package/dist/content/document.d.ts.map +1 -1
  231. package/dist/content/document.js +1 -0
  232. package/dist/content/document.js.map +1 -1
  233. package/dist/content/index.d.ts +7 -2
  234. package/dist/content/index.d.ts.map +1 -1
  235. package/dist/content/index.js +4 -1
  236. package/dist/content/index.js.map +1 -1
  237. package/dist/content/markdown.d.ts.map +1 -1
  238. package/dist/content/markdown.js +24 -2
  239. package/dist/content/markdown.js.map +1 -1
  240. package/dist/content/parser.d.ts.map +1 -1
  241. package/dist/content/parser.js +11 -4
  242. package/dist/content/parser.js.map +1 -1
  243. package/dist/content/save.d.ts +5 -0
  244. package/dist/content/save.d.ts.map +1 -1
  245. package/dist/content/save.js +44 -1
  246. package/dist/content/save.js.map +1 -1
  247. package/dist/content/schedule.d.ts +125 -0
  248. package/dist/content/schedule.d.ts.map +1 -0
  249. package/dist/content/schedule.js +207 -0
  250. package/dist/content/schedule.js.map +1 -0
  251. package/dist/content/search.d.ts +64 -0
  252. package/dist/content/search.d.ts.map +1 -0
  253. package/dist/content/search.js +136 -0
  254. package/dist/content/search.js.map +1 -0
  255. package/dist/content/store.d.ts +202 -7
  256. package/dist/content/store.d.ts.map +1 -1
  257. package/dist/content/store.js +374 -67
  258. package/dist/content/store.js.map +1 -1
  259. package/dist/content/sync.d.ts +7 -1
  260. package/dist/content/sync.d.ts.map +1 -1
  261. package/dist/content/sync.js +18 -10
  262. package/dist/content/sync.js.map +1 -1
  263. package/dist/content/time.d.ts +56 -0
  264. package/dist/content/time.d.ts.map +1 -0
  265. package/dist/content/time.js +141 -0
  266. package/dist/content/time.js.map +1 -0
  267. package/dist/content/writer.d.ts.map +1 -1
  268. package/dist/content/writer.js +3 -0
  269. package/dist/content/writer.js.map +1 -1
  270. package/dist/env.d.ts +58 -4
  271. package/dist/env.d.ts.map +1 -1
  272. package/dist/federation/actor.d.ts +95 -41
  273. package/dist/federation/actor.d.ts.map +1 -1
  274. package/dist/federation/actor.js +180 -53
  275. package/dist/federation/actor.js.map +1 -1
  276. package/dist/federation/article.d.ts +44 -17
  277. package/dist/federation/article.d.ts.map +1 -1
  278. package/dist/federation/article.js +98 -46
  279. package/dist/federation/article.js.map +1 -1
  280. package/dist/federation/delivery.d.ts +63 -15
  281. package/dist/federation/delivery.d.ts.map +1 -1
  282. package/dist/federation/delivery.js +154 -80
  283. package/dist/federation/delivery.js.map +1 -1
  284. package/dist/federation/federation.d.ts +22 -17
  285. package/dist/federation/federation.d.ts.map +1 -1
  286. package/dist/federation/federation.js +98 -77
  287. package/dist/federation/federation.js.map +1 -1
  288. package/dist/federation/followers.d.ts +3 -2
  289. package/dist/federation/followers.d.ts.map +1 -1
  290. package/dist/federation/followers.js +6 -5
  291. package/dist/federation/followers.js.map +1 -1
  292. package/dist/federation/import-wordpress.d.ts +128 -0
  293. package/dist/federation/import-wordpress.d.ts.map +1 -0
  294. package/dist/federation/import-wordpress.js +426 -0
  295. package/dist/federation/import-wordpress.js.map +1 -0
  296. package/dist/federation/inbox.d.ts +36 -13
  297. package/dist/federation/inbox.d.ts.map +1 -1
  298. package/dist/federation/inbox.js +120 -49
  299. package/dist/federation/inbox.js.map +1 -1
  300. package/dist/federation/index.d.ts +22 -10
  301. package/dist/federation/index.d.ts.map +1 -1
  302. package/dist/federation/index.js +13 -8
  303. package/dist/federation/index.js.map +1 -1
  304. package/dist/federation/keys.d.ts +98 -20
  305. package/dist/federation/keys.d.ts.map +1 -1
  306. package/dist/federation/keys.js +269 -39
  307. package/dist/federation/keys.js.map +1 -1
  308. package/dist/federation/mount.d.ts +42 -10
  309. package/dist/federation/mount.d.ts.map +1 -1
  310. package/dist/federation/mount.js +266 -26
  311. package/dist/federation/mount.js.map +1 -1
  312. package/dist/federation/paths.d.ts +23 -35
  313. package/dist/federation/paths.d.ts.map +1 -1
  314. package/dist/federation/paths.js +26 -39
  315. package/dist/federation/paths.js.map +1 -1
  316. package/dist/federation/records.d.ts +223 -0
  317. package/dist/federation/records.d.ts.map +1 -0
  318. package/dist/federation/records.js +506 -0
  319. package/dist/federation/records.js.map +1 -0
  320. package/dist/federation/relays.d.ts +114 -0
  321. package/dist/federation/relays.d.ts.map +1 -0
  322. package/dist/federation/relays.js +290 -0
  323. package/dist/federation/relays.js.map +1 -0
  324. package/dist/federation/replies.d.ts +80 -0
  325. package/dist/federation/replies.d.ts.map +1 -0
  326. package/dist/federation/replies.js +166 -0
  327. package/dist/federation/replies.js.map +1 -0
  328. package/dist/federation/wordpress.d.ts +131 -0
  329. package/dist/federation/wordpress.d.ts.map +1 -0
  330. package/dist/federation/wordpress.js +341 -0
  331. package/dist/federation/wordpress.js.map +1 -0
  332. package/dist/files/atomic.d.ts +103 -0
  333. package/dist/files/atomic.d.ts.map +1 -0
  334. package/dist/files/atomic.js +150 -0
  335. package/dist/files/atomic.js.map +1 -0
  336. package/dist/files/index.d.ts +3 -0
  337. package/dist/files/index.d.ts.map +1 -0
  338. package/dist/files/index.js +2 -0
  339. package/dist/files/index.js.map +1 -0
  340. package/dist/forms/protection.d.ts +85 -0
  341. package/dist/forms/protection.d.ts.map +1 -0
  342. package/dist/forms/protection.js +116 -0
  343. package/dist/forms/protection.js.map +1 -0
  344. package/dist/images/icons.d.ts +59 -0
  345. package/dist/images/icons.d.ts.map +1 -0
  346. package/dist/images/icons.js +131 -0
  347. package/dist/images/icons.js.map +1 -0
  348. package/dist/images/index.d.ts +7 -0
  349. package/dist/images/index.d.ts.map +1 -0
  350. package/dist/images/index.js +4 -0
  351. package/dist/images/index.js.map +1 -0
  352. package/dist/images/markup.d.ts +47 -0
  353. package/dist/images/markup.d.ts.map +1 -0
  354. package/dist/images/markup.js +175 -0
  355. package/dist/images/markup.js.map +1 -0
  356. package/dist/images/paths.d.ts +34 -0
  357. package/dist/images/paths.d.ts.map +1 -0
  358. package/dist/images/paths.js +41 -0
  359. package/dist/images/paths.js.map +1 -0
  360. package/dist/images/variants.d.ts +104 -0
  361. package/dist/images/variants.d.ts.map +1 -0
  362. package/dist/images/variants.js +320 -0
  363. package/dist/images/variants.js.map +1 -0
  364. package/dist/index.d.ts +123 -19
  365. package/dist/index.d.ts.map +1 -1
  366. package/dist/index.js +327 -25
  367. package/dist/index.js.map +1 -1
  368. package/dist/init.d.ts +18 -0
  369. package/dist/init.d.ts.map +1 -1
  370. package/dist/init.js +34 -3
  371. package/dist/init.js.map +1 -1
  372. package/dist/mail/brevo.d.ts +35 -0
  373. package/dist/mail/brevo.d.ts.map +1 -0
  374. package/dist/mail/brevo.js +85 -0
  375. package/dist/mail/brevo.js.map +1 -0
  376. package/dist/mail/credentials.d.ts +62 -0
  377. package/dist/mail/credentials.d.ts.map +1 -0
  378. package/dist/mail/credentials.js +86 -0
  379. package/dist/mail/credentials.js.map +1 -0
  380. package/dist/mail/index.d.ts +15 -0
  381. package/dist/mail/index.d.ts.map +1 -0
  382. package/dist/mail/index.js +8 -0
  383. package/dist/mail/index.js.map +1 -0
  384. package/dist/mail/memory.d.ts +35 -0
  385. package/dist/mail/memory.d.ts.map +1 -0
  386. package/dist/mail/memory.js +29 -0
  387. package/dist/mail/memory.js.map +1 -0
  388. package/dist/mail/provider.d.ts +80 -0
  389. package/dist/mail/provider.d.ts.map +1 -0
  390. package/dist/mail/provider.js +23 -0
  391. package/dist/mail/provider.js.map +1 -0
  392. package/dist/mail/service.d.ts +156 -0
  393. package/dist/mail/service.d.ts.map +1 -0
  394. package/dist/mail/service.js +265 -0
  395. package/dist/mail/service.js.map +1 -0
  396. package/dist/mail/smtp.d.ts +39 -0
  397. package/dist/mail/smtp.d.ts.map +1 -0
  398. package/dist/mail/smtp.js +58 -0
  399. package/dist/mail/smtp.js.map +1 -0
  400. package/dist/mail/templates.d.ts +91 -0
  401. package/dist/mail/templates.d.ts.map +1 -0
  402. package/dist/mail/templates.js +69 -0
  403. package/dist/mail/templates.js.map +1 -0
  404. package/dist/notifications/comments.d.ts +66 -0
  405. package/dist/notifications/comments.d.ts.map +1 -0
  406. package/dist/notifications/comments.js +151 -0
  407. package/dist/notifications/comments.js.map +1 -0
  408. package/dist/notifications/digest.d.ts +135 -0
  409. package/dist/notifications/digest.d.ts.map +1 -0
  410. package/dist/notifications/digest.js +287 -0
  411. package/dist/notifications/digest.js.map +1 -0
  412. package/dist/notifications/index.d.ts +13 -0
  413. package/dist/notifications/index.d.ts.map +1 -0
  414. package/dist/notifications/index.js +8 -0
  415. package/dist/notifications/index.js.map +1 -0
  416. package/dist/notifications/links.d.ts +60 -0
  417. package/dist/notifications/links.d.ts.map +1 -0
  418. package/dist/notifications/links.js +63 -0
  419. package/dist/notifications/links.js.map +1 -0
  420. package/dist/notifications/optouts.d.ts +48 -0
  421. package/dist/notifications/optouts.d.ts.map +1 -0
  422. package/dist/notifications/optouts.js +93 -0
  423. package/dist/notifications/optouts.js.map +1 -0
  424. package/dist/notifications/preferences.d.ts +158 -0
  425. package/dist/notifications/preferences.d.ts.map +1 -0
  426. package/dist/notifications/preferences.js +195 -0
  427. package/dist/notifications/preferences.js.map +1 -0
  428. package/dist/notifications/routes.d.ts +28 -0
  429. package/dist/notifications/routes.d.ts.map +1 -0
  430. package/dist/notifications/routes.js +184 -0
  431. package/dist/notifications/routes.js.map +1 -0
  432. package/dist/notifications/tokens.d.ts +60 -0
  433. package/dist/notifications/tokens.d.ts.map +1 -0
  434. package/dist/notifications/tokens.js +125 -0
  435. package/dist/notifications/tokens.js.map +1 -0
  436. package/dist/notify.d.ts +84 -0
  437. package/dist/notify.d.ts.map +1 -0
  438. package/dist/notify.js +149 -0
  439. package/dist/notify.js.map +1 -0
  440. package/dist/web/archive.d.ts +49 -0
  441. package/dist/web/archive.d.ts.map +1 -0
  442. package/dist/web/archive.js +59 -0
  443. package/dist/web/archive.js.map +1 -0
  444. package/dist/web/assets.d.ts +6 -5
  445. package/dist/web/assets.d.ts.map +1 -1
  446. package/dist/web/assets.js +5 -7
  447. package/dist/web/assets.js.map +1 -1
  448. package/dist/web/authors.d.ts +143 -0
  449. package/dist/web/authors.d.ts.map +1 -0
  450. package/dist/web/authors.js +178 -0
  451. package/dist/web/authors.js.map +1 -0
  452. package/dist/web/comments.d.ts +60 -0
  453. package/dist/web/comments.d.ts.map +1 -0
  454. package/dist/web/comments.js +207 -0
  455. package/dist/web/comments.js.map +1 -0
  456. package/dist/web/context.d.ts +162 -28
  457. package/dist/web/context.d.ts.map +1 -1
  458. package/dist/web/context.js +123 -26
  459. package/dist/web/context.js.map +1 -1
  460. package/dist/web/conversation.d.ts +209 -0
  461. package/dist/web/conversation.d.ts.map +1 -0
  462. package/dist/web/conversation.js +557 -0
  463. package/dist/web/conversation.js.map +1 -0
  464. package/dist/web/documents.d.ts +36 -6
  465. package/dist/web/documents.d.ts.map +1 -1
  466. package/dist/web/documents.js +52 -10
  467. package/dist/web/documents.js.map +1 -1
  468. package/dist/web/feed-atom.d.ts +22 -0
  469. package/dist/web/feed-atom.d.ts.map +1 -0
  470. package/dist/web/feed-atom.js +83 -0
  471. package/dist/web/feed-atom.js.map +1 -0
  472. package/dist/web/feed-item.d.ts +145 -0
  473. package/dist/web/feed-item.d.ts.map +1 -0
  474. package/dist/web/feed-item.js +120 -0
  475. package/dist/web/feed-item.js.map +1 -0
  476. package/dist/web/feed-json.d.ts +79 -0
  477. package/dist/web/feed-json.d.ts.map +1 -0
  478. package/dist/web/feed-json.js +53 -0
  479. package/dist/web/feed-json.js.map +1 -0
  480. package/dist/web/feed-rss.d.ts +26 -0
  481. package/dist/web/feed-rss.d.ts.map +1 -0
  482. package/dist/web/feed-rss.js +203 -0
  483. package/dist/web/feed-rss.js.map +1 -0
  484. package/dist/web/feed-source.d.ts +244 -0
  485. package/dist/web/feed-source.d.ts.map +1 -0
  486. package/dist/web/feed-source.js +201 -0
  487. package/dist/web/feed-source.js.map +1 -0
  488. package/dist/web/feed-xml.d.ts +63 -0
  489. package/dist/web/feed-xml.d.ts.map +1 -0
  490. package/dist/web/feed-xml.js +116 -0
  491. package/dist/web/feed-xml.js.map +1 -0
  492. package/dist/web/feeds.d.ts +31 -96
  493. package/dist/web/feeds.d.ts.map +1 -1
  494. package/dist/web/feeds.js +94 -198
  495. package/dist/web/feeds.js.map +1 -1
  496. package/dist/web/health.d.ts +31 -0
  497. package/dist/web/health.d.ts.map +1 -0
  498. package/dist/web/health.js +44 -0
  499. package/dist/web/health.js.map +1 -0
  500. package/dist/web/index.d.ts +30 -10
  501. package/dist/web/index.d.ts.map +1 -1
  502. package/dist/web/index.js +18 -7
  503. package/dist/web/index.js.map +1 -1
  504. package/dist/web/navigation.d.ts +73 -0
  505. package/dist/web/navigation.d.ts.map +1 -0
  506. package/dist/web/navigation.js +110 -0
  507. package/dist/web/navigation.js.map +1 -0
  508. package/dist/web/negotiate.d.ts +9 -0
  509. package/dist/web/negotiate.d.ts.map +1 -1
  510. package/dist/web/negotiate.js +6 -1
  511. package/dist/web/negotiate.js.map +1 -1
  512. package/dist/web/recent.d.ts +43 -0
  513. package/dist/web/recent.d.ts.map +1 -0
  514. package/dist/web/recent.js +37 -0
  515. package/dist/web/recent.js.map +1 -0
  516. package/dist/web/render.d.ts +197 -9
  517. package/dist/web/render.d.ts.map +1 -1
  518. package/dist/web/render.js +334 -17
  519. package/dist/web/render.js.map +1 -1
  520. package/dist/web/routes.d.ts +25 -8
  521. package/dist/web/routes.d.ts.map +1 -1
  522. package/dist/web/routes.js +845 -93
  523. package/dist/web/routes.js.map +1 -1
  524. package/dist/web/sanitize.d.ts +19 -0
  525. package/dist/web/sanitize.d.ts.map +1 -0
  526. package/dist/web/sanitize.js +272 -0
  527. package/dist/web/sanitize.js.map +1 -0
  528. package/dist/web/search.d.ts +79 -0
  529. package/dist/web/search.d.ts.map +1 -0
  530. package/dist/web/search.js +94 -0
  531. package/dist/web/search.js.map +1 -0
  532. package/dist/web/sitemap.d.ts +120 -0
  533. package/dist/web/sitemap.d.ts.map +1 -0
  534. package/dist/web/sitemap.js +199 -0
  535. package/dist/web/sitemap.js.map +1 -0
  536. package/dist/web/taxonomy.d.ts +152 -0
  537. package/dist/web/taxonomy.d.ts.map +1 -0
  538. package/dist/web/taxonomy.js +237 -0
  539. package/dist/web/taxonomy.js.map +1 -0
  540. package/dist/web/templates.d.ts +54 -16
  541. package/dist/web/templates.d.ts.map +1 -1
  542. package/dist/web/templates.js +109 -28
  543. package/dist/web/templates.js.map +1 -1
  544. package/dist/web/themes.d.ts +205 -0
  545. package/dist/web/themes.d.ts.map +1 -0
  546. package/dist/web/themes.js +277 -0
  547. package/dist/web/themes.js.map +1 -0
  548. package/dist/webmention/discovery.d.ts +51 -0
  549. package/dist/webmention/discovery.d.ts.map +1 -0
  550. package/dist/webmention/discovery.js +176 -0
  551. package/dist/webmention/discovery.js.map +1 -0
  552. package/dist/webmention/html.d.ts +71 -0
  553. package/dist/webmention/html.d.ts.map +1 -0
  554. package/dist/webmention/html.js +285 -0
  555. package/dist/webmention/html.js.map +1 -0
  556. package/dist/webmention/index.d.ts +12 -0
  557. package/dist/webmention/index.d.ts.map +1 -0
  558. package/dist/webmention/index.js +8 -0
  559. package/dist/webmention/index.js.map +1 -0
  560. package/dist/webmention/links.d.ts +18 -0
  561. package/dist/webmention/links.d.ts.map +1 -0
  562. package/dist/webmention/links.js +64 -0
  563. package/dist/webmention/links.js.map +1 -0
  564. package/dist/webmention/microformats.d.ts +93 -0
  565. package/dist/webmention/microformats.d.ts.map +1 -0
  566. package/dist/webmention/microformats.js +376 -0
  567. package/dist/webmention/microformats.js.map +1 -0
  568. package/dist/webmention/receive.d.ts +141 -0
  569. package/dist/webmention/receive.d.ts.map +1 -0
  570. package/dist/webmention/receive.js +264 -0
  571. package/dist/webmention/receive.js.map +1 -0
  572. package/dist/webmention/routes.d.ts +37 -0
  573. package/dist/webmention/routes.d.ts.map +1 -0
  574. package/dist/webmention/routes.js +75 -0
  575. package/dist/webmention/routes.js.map +1 -0
  576. package/dist/webmention/service.d.ts +94 -0
  577. package/dist/webmention/service.d.ts.map +1 -0
  578. package/dist/webmention/service.js +207 -0
  579. package/dist/webmention/service.js.map +1 -0
  580. package/package.json +11 -6
  581. package/templates/site/content/_data/site.json +1 -0
  582. package/templates/site/content/posts/2026-01-01-hello-world.md +5 -3
  583. package/templates/site/geekity.config.ts +11 -1
  584. package/templates/site/tsconfig.json +1 -1
  585. package/themes/default/README.md +1096 -50
  586. package/themes/default/layouts/404.njk +2 -3
  587. package/themes/default/layouts/author.njk +37 -0
  588. package/themes/default/layouts/base.njk +172 -31
  589. package/themes/default/layouts/category.njk +27 -0
  590. package/themes/default/layouts/front-page.njk +57 -0
  591. package/themes/default/layouts/home.njk +17 -1
  592. package/themes/default/layouts/page.njk +57 -5
  593. package/themes/default/layouts/post.njk +78 -19
  594. package/themes/default/layouts/search.njk +57 -0
  595. package/themes/default/layouts/tag.njk +3 -6
  596. package/themes/default/mail/comment-digest.html.njk +37 -0
  597. package/themes/default/mail/comment-digest.subject.njk +3 -0
  598. package/themes/default/mail/comment-digest.txt.njk +40 -0
  599. package/themes/default/mail/comment-pending.html.njk +27 -0
  600. package/themes/default/mail/comment-pending.subject.njk +2 -0
  601. package/themes/default/mail/comment-pending.txt.njk +24 -0
  602. package/themes/default/mail/comment-reply.html.njk +21 -0
  603. package/themes/default/mail/comment-reply.subject.njk +2 -0
  604. package/themes/default/mail/comment-reply.txt.njk +22 -0
  605. package/themes/default/mail/contact-message.html.njk +24 -0
  606. package/themes/default/mail/contact-message.subject.njk +5 -0
  607. package/themes/default/mail/contact-message.txt.njk +20 -0
  608. package/themes/default/mail/password-changed.html.njk +18 -0
  609. package/themes/default/mail/password-changed.subject.njk +2 -0
  610. package/themes/default/mail/password-changed.txt.njk +17 -0
  611. package/themes/default/mail/password-reset.html.njk +22 -0
  612. package/themes/default/mail/password-reset.subject.njk +2 -0
  613. package/themes/default/mail/password-reset.txt.njk +18 -0
  614. package/themes/default/mail/test.html.njk +14 -0
  615. package/themes/default/mail/test.subject.njk +2 -0
  616. package/themes/default/mail/test.txt.njk +12 -0
  617. package/themes/default/partials/archive.njk +27 -0
  618. package/themes/default/partials/bio.njk +77 -0
  619. package/themes/default/partials/comment-form.njk +109 -0
  620. package/themes/default/partials/contact-form.njk +88 -0
  621. package/themes/default/partials/conversation.njk +139 -0
  622. package/themes/default/partials/feeds.njk +26 -0
  623. package/themes/default/partials/jsonld.njk +120 -0
  624. package/themes/default/partials/pagination.njk +12 -6
  625. package/themes/default/partials/post-list.njk +51 -18
  626. package/themes/default/partials/search-form.njk +17 -0
  627. package/themes/default/partials/tags.njk +26 -5
  628. package/themes/default/static/highlight.js +4 -0
  629. package/themes/default/static/style.css +1119 -194
  630. package/themes/default/theme.json +5 -0
  631. package/admin/layouts/document-editor.njk +0 -167
  632. package/admin/layouts/federation.njk +0 -145
  633. package/admin/layouts/login.njk +0 -23
  634. package/admin/layouts/settings.njk +0 -116
  635. package/admin/layouts/setup.njk +0 -27
  636. package/admin/layouts/users.njk +0 -91
  637. /package/admin/{layouts/_flash.njk → components/flash.njk} +0 -0
@@ -0,0 +1,320 @@
1
+ import { statSync, readFileSync } from 'node:fs';
2
+ import { mkdir, rm } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import sharp from 'sharp';
5
+ import { writeFileAtomically } from '../files/atomic.js';
6
+ import { findAsset } from '../web/assets.js';
7
+ import { deriveSiteIcon, iconSize } from './icons.js';
8
+ import { derivedDir, sourceFile, IMAGE_DIRECTORY, VARIANT_ASSET_PREFIX } from './paths.js';
9
+ /**
10
+ * Image variants: the derived copies of an upload, and the record of them.
11
+ *
12
+ * The original under `content/uploads/` is the only source of truth
13
+ * (decision-10). Everything this module writes lives under
14
+ * `<dataDir>/images/<the upload's path>/`, is rebuildable from that original,
15
+ * and may be deleted at any moment — which is also decision-9's rule for
16
+ * `data/`. Nothing here is ever read by the feeds or by a remote instance;
17
+ * only the site's own HTML knows these files exist.
18
+ *
19
+ * Where the files live is `paths.ts`, and the site's icons are `icons.ts`:
20
+ * both kinds of derived file share the directory and the URL prefix.
21
+ */
22
+ export { IMAGE_DIRECTORY, VARIANT_ASSET_PREFIX } from './paths.js';
23
+ /** The sidecar that records what was derived, beside the files it describes. */
24
+ export const IMAGE_RECORD_NAME = 'image.json';
25
+ /** The extension each format is written with. */
26
+ const FORMAT_EXTENSIONS = new Map([
27
+ ['avif', '.avif'],
28
+ ['jpeg', '.jpg'],
29
+ ['png', '.png'],
30
+ ['webp', '.webp'],
31
+ ]);
32
+ /** The media type each format is announced as, for a `<source type>`. */
33
+ const FORMAT_MEDIA_TYPES = new Map([
34
+ ['avif', 'image/avif'],
35
+ ['jpeg', 'image/jpeg'],
36
+ ['png', 'image/png'],
37
+ ['webp', 'image/webp'],
38
+ ]);
39
+ /**
40
+ * The formats an upload's own extension means, and so the ones a source may
41
+ * be. GIF is deliberately absent: an animated one cannot survive being resized
42
+ * into a still, and a still one gains nothing that WebP would not lose in
43
+ * translation, so a GIF is stored and served exactly as it arrived.
44
+ */
45
+ const SOURCE_FORMATS = new Map([
46
+ ['.avif', 'avif'],
47
+ ['.jpeg', 'jpeg'],
48
+ ['.jpg', 'jpeg'],
49
+ ['.png', 'png'],
50
+ ['.webp', 'webp'],
51
+ ]);
52
+ /** The media type a `<source>` for this format announces, or `undefined`. */
53
+ export function imageMediaType(format) {
54
+ return FORMAT_MEDIA_TYPES.get(format);
55
+ }
56
+ /** The public URL of one derived file. */
57
+ export function variantUrl(source, variant) {
58
+ return `${VARIANT_ASSET_PREFIX}${source}/${variant.file}`;
59
+ }
60
+ /**
61
+ * Records already read, by the derived directory they were read from.
62
+ *
63
+ * A page render asks for one of these per image, so the sidecar is parsed once
64
+ * per process rather than once per request. The entry survives the sidecar
65
+ * being deleted on purpose: the derived directory is disposable and a request
66
+ * for a missing variant rebuilds it, so a page whose images have been swept
67
+ * away still renders the markup that asks for them back.
68
+ */
69
+ const records = new Map();
70
+ /** Generations already running, so two requests for one image encode it once. */
71
+ const generating = new Map();
72
+ /**
73
+ * Derive every variant of one upload and record what was derived.
74
+ *
75
+ * Returns `undefined` — having written nothing — when optimization is off,
76
+ * when the file is not a raster image the CMS varianties (a GIF, a PDF, a
77
+ * text file), when it is animated, or when it is not there at all. None of
78
+ * those is an error: an upload that has no variants is the ordinary case for
79
+ * most of what a site holds, and the caller's job is to fall back to the
80
+ * original, which is exactly what it would have served anyway.
81
+ *
82
+ * Two callers asking for the same image at once share one encode.
83
+ */
84
+ export function generateImageVariants(config, source) {
85
+ const directory = derivedDir(config, source);
86
+ const running = generating.get(directory);
87
+ if (running !== undefined)
88
+ return running;
89
+ const started = derive(config, source, directory).finally(() => generating.delete(directory));
90
+ generating.set(directory, started);
91
+ return started;
92
+ }
93
+ async function derive(config, source, directory) {
94
+ if (!config.imageOptimization)
95
+ return undefined;
96
+ const sourceFormat = SOURCE_FORMATS.get(path.extname(source).toLowerCase());
97
+ if (sourceFormat === undefined)
98
+ return undefined;
99
+ const file = sourceFile(config, source);
100
+ if (file === undefined)
101
+ return undefined;
102
+ let modified;
103
+ try {
104
+ modified = Math.trunc(statSync(file).mtimeMs);
105
+ }
106
+ catch {
107
+ return undefined;
108
+ }
109
+ const metadata = await sharp(file).metadata();
110
+ const stored = { width: metadata.width, height: metadata.height };
111
+ if (stored.width === undefined || stored.height === undefined)
112
+ return undefined;
113
+ // An animated WebP or AVIF is the GIF case wearing another extension: sharp
114
+ // would flatten it to its first frame, which is not what anybody uploaded.
115
+ if ((metadata.pages ?? 1) > 1)
116
+ return undefined;
117
+ // `metadata()` reports the pixels as stored; orientations 5 to 8 turn the
118
+ // picture on its side, so the size a reader sees is the transposed one. It
119
+ // is that size the widths are chosen against and that size the `<img>`
120
+ // advertises, because it is the one the browser will lay out.
121
+ const upright = (metadata.orientation ?? 1) >= 5;
122
+ const width = upright ? stored.height : stored.width;
123
+ const height = upright ? stored.width : stored.height;
124
+ const variants = [];
125
+ await mkdir(directory, { recursive: true });
126
+ for (const format of outputFormats(config, sourceFormat)) {
127
+ for (const target of outputWidths(config, width)) {
128
+ variants.push(await encode({ file, directory, format, width: target }));
129
+ }
130
+ }
131
+ const record = {
132
+ source,
133
+ width,
134
+ height,
135
+ format: sourceFormat,
136
+ sourceModified: modified,
137
+ variants,
138
+ };
139
+ await writeFileAtomically(path.join(directory, IMAGE_RECORD_NAME), `${JSON.stringify(record)}\n`);
140
+ records.set(directory, record);
141
+ return record;
142
+ }
143
+ /**
144
+ * The formats to write: the site's, then the original's own.
145
+ *
146
+ * The original's is last and never optional, because it is the `<img>` inside
147
+ * the `<picture>` — the thing a browser that understood none of the `<source>`
148
+ * elements falls back to.
149
+ */
150
+ function outputFormats(config, sourceFormat) {
151
+ const formats = config.imageFormats.filter((format) => format !== sourceFormat);
152
+ return [...formats, sourceFormat];
153
+ }
154
+ /**
155
+ * The widths to write: the configured ones narrower than the original, and the
156
+ * original's own width.
157
+ *
158
+ * Nothing is ever upscaled — a browser given a blown-up copy pays for pixels
159
+ * that carry no detail — and the full size is always there, so a wide display
160
+ * has something to pick that is not the unoptimised original.
161
+ */
162
+ function outputWidths(config, width) {
163
+ const widths = new Set(config.imageWidths.filter((candidate) => candidate < width));
164
+ widths.add(width);
165
+ return [...widths].sort((a, b) => a - b);
166
+ }
167
+ /** Write one variant and answer what it turned out to be. */
168
+ async function encode(input) {
169
+ const extension = FORMAT_EXTENSIONS.get(input.format) ?? '.bin';
170
+ const name = `${String(input.width)}${extension}`;
171
+ // `autoOrient` applies the EXIF rotation, and sharp drops metadata unless
172
+ // asked to keep it, so the variant comes out the right way up and carrying
173
+ // no camera, no timestamp and no location.
174
+ const pipeline = sharp(input.file, { autoOrient: true }).resize({
175
+ width: input.width,
176
+ withoutEnlargement: true,
177
+ });
178
+ const encoded = await formatted(pipeline, input.format).toBuffer({ resolveWithObject: true });
179
+ await writeFileAtomically(path.join(input.directory, name), encoded.data);
180
+ return {
181
+ width: encoded.info.width,
182
+ height: encoded.info.height,
183
+ format: input.format,
184
+ file: name,
185
+ };
186
+ }
187
+ /** The encoder for one format, at settings that trade a little fidelity for a lot of bytes. */
188
+ function formatted(pipeline, format) {
189
+ switch (format) {
190
+ case 'avif':
191
+ return pipeline.avif({ quality: 55 });
192
+ case 'jpeg':
193
+ return pipeline.jpeg({ quality: 80, mozjpeg: true });
194
+ case 'png':
195
+ return pipeline.png({ compressionLevel: 9 });
196
+ default:
197
+ return pipeline.webp({ quality: 80 });
198
+ }
199
+ }
200
+ /**
201
+ * What is known about one upload's variants, or `undefined` when nothing is.
202
+ *
203
+ * Synchronous and cached, because it is called once per image while a page
204
+ * renders. `undefined` means the caller should serve the plain original: the
205
+ * upload is not an image, or nothing has been derived from it yet.
206
+ */
207
+ export function describeImage(config, source) {
208
+ const directory = derivedDir(config, source);
209
+ const remembered = records.get(directory);
210
+ if (remembered !== undefined)
211
+ return current(config, remembered) ? remembered : undefined;
212
+ const record = readRecord(path.join(directory, IMAGE_RECORD_NAME), source);
213
+ if (record === undefined)
214
+ return undefined;
215
+ records.set(directory, record);
216
+ return current(config, record) ? record : undefined;
217
+ }
218
+ /**
219
+ * Whether a record still describes the file it was derived from.
220
+ *
221
+ * The original having gone, or having been replaced under the same name,
222
+ * makes the record rubbish; anything else — including the whole derived
223
+ * directory having been swept away — leaves it true, which is what lets a page
224
+ * keep rendering the markup that asks for the variants back.
225
+ */
226
+ function current(config, record) {
227
+ const file = sourceFile(config, record.source);
228
+ if (file === undefined)
229
+ return false;
230
+ try {
231
+ return Math.trunc(statSync(file).mtimeMs) === record.sourceModified;
232
+ }
233
+ catch {
234
+ return false;
235
+ }
236
+ }
237
+ /** Parse one sidecar, refusing anything that is not the shape it should be. */
238
+ function readRecord(file, source) {
239
+ let parsed;
240
+ try {
241
+ parsed = JSON.parse(readFileSync(file, 'utf8'));
242
+ }
243
+ catch {
244
+ return undefined;
245
+ }
246
+ if (typeof parsed !== 'object' || parsed === null)
247
+ return undefined;
248
+ const candidate = parsed;
249
+ if (typeof candidate.width !== 'number' ||
250
+ typeof candidate.height !== 'number' ||
251
+ typeof candidate.format !== 'string' ||
252
+ typeof candidate.sourceModified !== 'number' ||
253
+ !Array.isArray(candidate.variants)) {
254
+ return undefined;
255
+ }
256
+ return {
257
+ source,
258
+ width: candidate.width,
259
+ height: candidate.height,
260
+ format: candidate.format,
261
+ sourceModified: candidate.sourceModified,
262
+ variants: candidate.variants.filter((variant) => typeof variant.width === 'number' &&
263
+ typeof variant.height === 'number' &&
264
+ typeof variant.format === 'string' &&
265
+ typeof variant.file === 'string'),
266
+ };
267
+ }
268
+ /**
269
+ * Take one upload's derived files away.
270
+ *
271
+ * Forgiving by design: an upload with nothing derived from it is the ordinary
272
+ * case, and this runs after the original has already gone, so refusing to
273
+ * finish would leave the site worse than it found it.
274
+ */
275
+ export async function removeImageVariants(config, source) {
276
+ if (sourceFile(config, source) === undefined)
277
+ return;
278
+ const directory = derivedDir(config, source);
279
+ records.delete(directory);
280
+ await rm(directory, { recursive: true, force: true });
281
+ }
282
+ /**
283
+ * Find one derived file by its request path, generating it if it is not there.
284
+ *
285
+ * `relative` is what follows {@link VARIANT_ASSET_PREFIX}, so
286
+ * `2026/09/photo.jpg/640.webp`. A request for a file that was swept away
287
+ * rebuilds the whole set for that source and then serves it, which is what
288
+ * makes the derived directory disposable in the way decision-9 requires. A
289
+ * request for a width or a format the site does not offer is a 404 and encodes
290
+ * nothing, so nobody can make the server work by asking for sizes.
291
+ */
292
+ export async function findImageVariant(config, relative) {
293
+ const root = path.join(config.dataDir, IMAGE_DIRECTORY);
294
+ const found = findAsset(relative, [root]);
295
+ if (found !== undefined)
296
+ return found;
297
+ if (!config.imageOptimization)
298
+ return undefined;
299
+ const cut = relative.lastIndexOf('/');
300
+ if (cut <= 0)
301
+ return undefined;
302
+ const source = relative.slice(0, cut);
303
+ const name = relative.slice(cut + 1);
304
+ // The site's icons live beside the widths and are derived one at a time,
305
+ // because they are asked for one at a time and belong in no `srcset`.
306
+ const icon = iconSize(name);
307
+ if (icon !== undefined) {
308
+ return (await deriveSiteIcon(config, source, icon)) ? findAsset(relative, [root]) : undefined;
309
+ }
310
+ const known = describeImage(config, source);
311
+ if (known !== undefined && !known.variants.some((variant) => variant.file === name)) {
312
+ return undefined;
313
+ }
314
+ const record = await generateImageVariants(config, source);
315
+ if (record === undefined || !record.variants.some((variant) => variant.file === name)) {
316
+ return undefined;
317
+ }
318
+ return findAsset(relative, [root]);
319
+ }
320
+ //# sourceMappingURL=variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variants.js","sourceRoot":"","sources":["../../src/images/variants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAG3F;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGnE,gFAAgF;AAChF,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;AA4C9C,iDAAiD;AACjD,MAAM,iBAAiB,GAAgC,IAAI,GAAG,CAAC;IAC7D,CAAC,MAAM,EAAE,OAAO,CAAC;IACjB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,KAAK,EAAE,MAAM,CAAC;IACf,CAAC,MAAM,EAAE,OAAO,CAAC;CAClB,CAAC,CAAC;AAEH,yEAAyE;AACzE,MAAM,kBAAkB,GAAgC,IAAI,GAAG,CAAC;IAC9D,CAAC,MAAM,EAAE,YAAY,CAAC;IACtB,CAAC,MAAM,EAAE,YAAY,CAAC;IACtB,CAAC,KAAK,EAAE,WAAW,CAAC;IACpB,CAAC,MAAM,EAAE,YAAY,CAAC;CACvB,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,cAAc,GAAgC,IAAI,GAAG,CAAC;IAC1D,CAAC,OAAO,EAAE,MAAM,CAAC;IACjB,CAAC,OAAO,EAAE,MAAM,CAAC;IACjB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,KAAK,CAAC;IACf,CAAC,OAAO,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,OAAqB;IAC9D,OAAO,GAAG,oBAAoB,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;AAE/C,iFAAiF;AACjF,MAAM,UAAU,GAAG,IAAI,GAAG,EAA4C,CAAC;AAEvE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAmB,EACnB,MAAc;IAEd,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAE1C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9F,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,MAAM,CACnB,MAAmB,EACnB,MAAc,EACd,SAAiB;IAEjB,IAAI,CAAC,MAAM,CAAC,iBAAiB;QAAE,OAAO,SAAS,CAAC;IAEhD,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5E,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAEzC,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAClE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChF,4EAA4E;IAC5E,2EAA2E;IAC3E,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAEhD,0EAA0E;IAC1E,2EAA2E;IAC3E,uEAAuE;IACvE,8DAA8D;IAC9D,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAEtD,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC;QACzD,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAgB;QAC1B,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM,EAAE,YAAY;QACpB,cAAc,EAAE,QAAQ;QACxB,QAAQ;KACT,CAAC;IACF,MAAM,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,MAAmB,EAAE,YAAoB;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,OAAO,EAAE,YAAY,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,MAAmB,EAAE,KAAa;IACtD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC;IACpF,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClB,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,6DAA6D;AAC7D,KAAK,UAAU,MAAM,CAAC,KAKrB;IACC,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;IAChE,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,SAAS,EAAE,CAAC;IAElD,0EAA0E;IAC1E,2EAA2E;IAC3E,2CAA2C;IAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAC9D,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,kBAAkB,EAAE,IAAI;KACzB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9F,MAAM,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK;QACzB,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;QAC3B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,IAAI;KACX,CAAC;AACJ,CAAC;AAED,+FAA+F;AAC/F,SAAS,SAAS,CAAC,QAAe,EAAE,MAAc;IAChD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACxC,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,KAAK,KAAK;YACR,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/C;YACE,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,MAAmB,EAAE,MAAc;IAC/D,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1F,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3E,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE3C,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,OAAO,CAAC,MAAmB,EAAE,MAAmB;IACvD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,cAAc,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,SAAS,UAAU,CAAC,IAAY,EAAE,MAAc;IAC9C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACpE,MAAM,SAAS,GAAG,MAA8B,CAAC;IACjD,IACE,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ;QACnC,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ;QACpC,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ;QACpC,OAAO,SAAS,CAAC,cAAc,KAAK,QAAQ;QAC5C,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAClC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,MAAM;QACN,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,cAAc,EAAE,SAAS,CAAC,cAAc;QACxC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CACjC,CAAC,OAAO,EAA2B,EAAE,CACnC,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;YACjC,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ;YAClC,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ;YAClC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CACnC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAmB,EAAE,MAAc;IAC3E,IAAI,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,SAAS;QAAE,OAAO;IAErD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAmB,EACnB,QAAgB;IAEhB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAExD,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEtC,IAAI,CAAC,MAAM,CAAC,iBAAiB;QAAE,OAAO,SAAS,CAAC;IAEhD,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAErC,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChG,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACpF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3D,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACtF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,22 +1,50 @@
1
1
  import { Hono } from 'hono';
2
2
  import type { AdminStore } from './admin/index.ts';
3
3
  import type { DocumentChangeHook, GeekityConfig, ResolvedConfig } from './config.ts';
4
- import type { ContentEvents, ContentStore, SyncResult } from './content/index.ts';
4
+ import type { ContentEvents, ContentStore, Scheduler, SyncResult } from './content/index.ts';
5
5
  import type { GeekityEnv } from './env.ts';
6
- import type { DeliveryService, SiteFederation } from './federation/index.ts';
7
- export { ACTOR_HANDLE_PATTERN, ACTOR_KEY_ALGORITHMS, ACTOR_TYPES, DELIVERY_STATUSES, ADMIN_ASSET_MAX_AGE, ADMIN_ASSET_PREFIX, ADMIN_PREFIX, ADMIN_SECTIONS, ADMIN_STATIC_DIR, ADMIN_TEMPLATES, actorSummary, addUserProblems, adminAssetResponse, ARGON2_PARAMETERS, AVATAR_FIELDS, AVATAR_PATH, AVATAR_REMOVE, blankForm, CHANGE_PASSWORD_PATH, changePasswordProblems, clearSessionCookie, createAdminTemplateEnvironment, credentialProblem, CSRF_FIELD, csrfTokenMatches, DASHBOARD_RECENT_POSTS, DEFAULT_SITE_SETTINGS, DELETE_USER_PATH, deleteUserRefusal, deliveryRows, DOCUMENT_FILTERS, documentFilter, DOCUMENTS_PER_PAGE, editorPath, effectiveBaseUrl, EXCLUDE_KEY, DuplicateUsernameError, FEDERATION_FIELDS, FEDERATION_PATH, FEDERATION_RECENT, findAdminAsset, findBySlug, followerRow, formFor, formFromSettings, flash, GENERATED_PASSWORD_ALPHABET, GENERATED_PASSWORD_LENGTH, generatePassword, guard, hashPassword, INBOX_INTERACTIONS, inboxRows, LOGIN_PATH, LOGOUT_PATH, listingUrl, listOptionsFor, localPosts, MAXIMUM_USERNAME_LENGTH, MINIMUM_PASSWORD_LENGTH, mountAdmin, mountDocumentScreens, mountFederationScreen, mountPreview, mountSettings, mountUploads, mountUsers, newEditorPath, openAdminStore, PAGE_KIND, PACKAGED_ADMIN_DIR, passwordProblem, postEditorPath, POST_KIND, PREVIEW_PATH, profileChanged, QUICK_DRAFT_PATH, readSiteSettings, REDELIVER_PATH, redeliveryMessage, refusedUpload, refuseOversizedUpload, returnPath, seedSiteSettings, SESSION_COOKIE, SESSION_ID_BYTES, sessionIdFrom, setSessionCookie, SETTINGS_FIELDS, SETTINGS_PATH, settingsFromForm, settingsProblems, settingsSiteData, SETUP_PATH, siteDataPath, siteJsonFor, splitTags, storeUpload, takeFlash, tooLargeMessage, UPLOAD_ENVELOPE_BYTES, UPLOAD_FIELD, UPLOADS_PATH, USER_FIELDS, USERNAME_PATTERN, usernameProblem, USERS_PATH, usesSecureCookies, verifyPasswordHash, writeSiteJson, writeSiteSettings, } from './admin/index.ts';
8
- export type { ActorKey, ActorKeyAlgorithm, ActorSummary, AddUserProblems, AdminRender, AdminSection, AdminStore, ChangePasswordProblems, CreateAdminTemplateEnvironmentOptions, CreateSessionInput, CreateUserInput, Delivery, DeliveryRow, DeliveryRowsContext, DeliveryStatus, DocumentFilter, DocumentKind, DocumentRow, EditorForm, FlashKind, FlashMessage, Follower, FollowerRow, InboxActivity, InboxRow, InboxRowsContext, ListPageOptions, LocalPost, MountDocumentScreensOptions, MountFederationScreenOptions, MountSettingsOptions, MountUsersOptions, NewActorKey, NewDelivery, NewFollower, NewInboxActivity, NewOutboundActivity, OpenAdminStoreOptions, OutboundActivity, Session, SettingsField, SettingsForm, SettingsProblems, SiteSettings, StoredUpload, StoredUser, StoreUploadOptions, UploadConfig, UploadRefusal, UploadResult, User, } from './admin/index.ts';
9
- export { DEFAULT_UPLOAD_MAX_BYTES, DEFAULT_UPLOAD_TYPES, defineConfig, resolveConfig, } from './config.ts';
10
- export type { DocumentChangeHook, FederationOverrides, GeekityConfig, ResolvedConfig, ResolveConfigContext, } from './config.ts';
6
+ import type { MailService } from './mail/index.ts';
7
+ import type { CommentDigest, CommentNotifier } from './notifications/index.ts';
8
+ import type { DeliveryService, RelayService, SiteFederation } from './federation/index.ts';
9
+ import type { FeedNotifier, NotifyReport } from './notify.ts';
10
+ import type { WebmentionService } from './webmention/index.ts';
11
+ export { createFeedNotifier, NOTIFY_TIMEOUT_MS } from './notify.ts';
12
+ export type { CreateFeedNotifierOptions, FeedNotifier, NotifyLogger, NotifyPing, NotifyReport, } from './notify.ts';
13
+ export { LANGUAGE_TAG_PATTERN, COMMENT_ACTIONS, COMMENT_ADMIN_FIELDS, COMMENT_KINDS, COMMENT_SOURCES, COMMENT_STATUSES, COMMENT_TABS, COMMENTS_MODERATE_PATH, COMMENTS_PATH, COMMENTS_PER_PAGE, COMMENTS_REPLY_PATH, COMMENTS_SECTION, commentListUrl, mountCommentsScreen, pendingComments, MESSAGE_FIELDS, MESSAGE_TABS, MESSAGES_DELETE_PATH, MESSAGES_PATH, MESSAGES_PER_PAGE, MESSAGES_READ_PATH, MESSAGES_SECTION, messageListUrl, mountMessagesScreen, unreadMessages, DELIVERY_STATUSES, RELAY_STATES, ADMIN_ASSET_MAX_AGE, ADMIN_ASSET_PREFIX, ADMIN_PREFIX, ADMIN_SECTIONS, ADMIN_STATIC_DIR, ADMIN_TEMPLATES, actorSummary, addUserProblems, adminAssetResponse, adminContentSecurityPolicy, adminSecurityHeaders, akismetPanel, AKISMET_FIELDS, AKISMET_PATH, AKISMET_REMOVE, EMAIL_PATTERN, MAIL_FIELDS, MAIL_PATH, MAIL_REMOVE, MAIL_TEST_FIELDS, MAIL_TEST_PATH, MAIL_TEST_TEMPLATE, mailPanel, ARGON2_PARAMETERS, baselineSecurityHeaders, blankForm, CHANGE_PASSWORD_PATH, changePasswordProblems, clearSessionCookie, createAdminTemplateEnvironment, createLoginThrottle, createNonce, credentialProblem, clientAddress, countUsers, createUser, CSRF_FIELD, csrfTokenMatches, DASHBOARD_RECENT_POSTS, describeWait, DEFAULT_SITE_SETTINGS, DELETE_USER_PATH, deleteUser, deleteUserRefusal, deliveryRows, DOCUMENT_FILTERS, documentFilter, DOCUMENTS_PER_PAGE, editorPath, effectiveBaseUrl, EXCLUDE_KEY, DuplicateUsernameError, emailProblem, FEDERATION_FIELDS, FEDERATION_PATH, FEDERATION_RECENT, findAdminAsset, findBySlug, findUser, findUserById, findUserByIdentifier, followerRow, FORGOT_PATH, formatInTimezone, formFor, applyTermChange, CATEGORY_KIND, deletePath, formFromSettings, flash, GENERATED_PASSWORD_ALPHABET, GENERATED_PASSWORD_LENGTH, generatePassword, guard, hashPassword, HSTS_MAX_AGE, HSTS_VALUE, INBOX_INTERACTIONS, inboxRows, LOCKOUT_GROWTH_LIMIT, LOGIN_PATH, LOGOUT_PATH, listingUrl, listOptionsFor, listUsers, localPosts, loginKeys, MAXIMUM_USERNAME_LENGTH, migrateSettingsToFile, migrateUsersToFile, MINIMUM_PASSWORD_LENGTH, mountAdmin, mountDocumentScreens, mountFederationScreen, mountPreview, mountRecovery, mountSettings, mountTaxonomyScreens, mountUploads, mountUsers, newEditorPath, newPasswordProblem, NONCE_BYTES, openAdminStore, PAGE_KIND, PACKAGED_ADMIN_DIR, PASSWORD_CHANGED_TEMPLATE, passwordProblem, postEditorPath, POST_KIND, primaryUser, PREVIEW_PATH, readSiteSettings, RECOVERY_ANSWER, RECOVERY_FIELDS, RELAY_RETRY_PATH, RELAY_STATE_LABELS, relayList, relayRow, renamePath, renameProblem, RESEND_PATH, resendMessage, RESET_PATH, RESET_TEMPLATE, RESET_TOKEN_LIFETIME_SECONDS, resetLink, rewriteTerm, MEDIA_DELETE_PATH, MEDIA_FIELDS, MEDIA_PATH, MEDIA_PER_PAGE, MEDIA_SECTION, MEDIA_UPLOAD_PATH, mediaPageUrl, mentionsUpload, mountMediaScreen, deleteUpload, describeUpload, listUploads, referencesTo, resolveUpload, uploadMarkdown, normalizeRelayInbox, refusedUpload, refuseOversizedUpload, returnPath, SESSION_COOKIE, SESSION_ID_BYTES, sessionIdFrom, setSessionCookie, SETTINGS_FIELDS, SETTINGS_PATH, settingsFromForm, settingsFromSiteJson, settingsProblems, SETUP_PATH, siteDataPath, siteJsonFor, splitTags, storeUpload, TAG_KIND, takeFlash, TAXONOMY_FIELDS, TAXONOMY_KINDS, tooLargeMessage, updateSiteSettings, UPLOAD_ENVELOPE_BYTES, UPLOAD_FIELD, UPLOADS_PATH, setUserEmail, setUserPassword, setUserProfile, setUserWordPressActor, ConflictingActorIdError, UnknownUserError, USER_EMAIL_PATH, USER_FIELDS, USERNAME_PATTERN, usernameProblem, USERS_FILE, USERS_FILE_MODE, usersFile, USERS_PATH, usesSecureCookies, verifyPasswordHash, verifyUserPassword, writeSiteJson, } from './admin/index.ts';
14
+ export type { ActorSummary, AddUserProblems, AdminRender, AdminSection, CommentAction, CommentAuthor, CommentContent, CommentKind, CommentRecord, CommentRow, CommentSource, CommentStatus, CreatePasswordResetInput, ListCommentsOptions, MountCommentsScreenOptions, MessageRow, MountMessagesScreenOptions, PostComment, ChangePasswordProblems, CreateAdminTemplateEnvironmentOptions, CreateSessionInput, CreateUserInput, Delivery, DeliveryRow, DeliveryRowsContext, DeliveryStatus, DocumentFilter, DocumentKind, DocumentRow, EditorForm, FlashKind, FlashMessage, Follower, FollowerRow, InboxActivity, InboxRow, InboxRowsContext, IssuedPasswordReset, LegacyActorKey, LegacySetting, LegacyUser, ListPageOptions, LocalPost, LoginThrottle, LoginThrottleOptions, MediaFile, MediaReference, DeleteUploadOptions, RemoveDerived, MountDocumentScreensOptions, MountFederationScreenOptions, MountMediaScreenOptions, RelayRow, MountRecoveryOptions, MountSettingsOptions, MountTaxonomyScreensOptions, MountUsersOptions, NewDelivery, NewFollower, NewInboxActivity, NewRelay, OpenAdminStoreOptions, PasswordReset, Relay, RelayState, Session, SettingsField, SettingsForm, SettingsProblems, SiteSettings, ProfileLink, StoredUpload, StoredUser, TaxonomyKind, TermRewriteReport, TermRow, StoreUploadOptions, UploadConfig, UploadMarkdownOptions, UploadRefusal, UploadResult, User, UserProfile, } from './admin/index.ts';
15
+ export { databaseFile, databaseFiles, DATABASE_SUFFIXES, discardDatabase, OutdatedDatabaseError, UnusableDatabaseError, } from './cache.ts';
16
+ export { DEFAULT_IMAGE_FORMATS, DEFAULT_IMAGE_WIDTHS, DEFAULT_UPLOAD_MAX_BYTES, DEFAULT_UPLOAD_TYPES, defineConfig, KNOWN_IMAGE_FORMATS, resolveConfig, } from './config.ts';
17
+ export type { DocumentChangeHook, FederationOverrides, GeekityConfig, MailOverrides, ResolvedConfig, ResolveConfigContext, } from './config.ts';
18
+ export { addComment, AKISMET_ENDPOINT, AKISMET_KEY_FILE, AKISMET_TIMEOUT_MS, AKISMET_USER_AGENT, akismetKeyPath, blankValues, COMMENT_FIELDS, COMMENT_NOTICE_PARAM, COMMENT_NOTICES, COMMENT_POST_PATH, COMMENT_RATE_LIMIT, COMMENT_RATE_WINDOW_SECONDS, COMMENT_REPLY_PARAM, COMMENT_SALT_FILE, COMMENTS_DATA_DIRECTORY, COMMENTS_FRONT_MATTER_KEY, commentForm, commentFormFor, commentKeys, commentNoticeFor, commentPolicyOf, commentProblems, commentsDirectory, commentsFile, commentsOpen, createAkismetChecker, DEFAULT_COMMENTS_CLOSE_AFTER_DAYS, deleteComment, hashClientAddress, heldWebmention, intakeComment, isModerationAction, MAXIMUM_BODY_LENGTH, MAXIMUM_FORM_AGE_SECONDS, MAXIMUM_NAME_LENGTH, MAXIMUM_URL_LENGTH, MINIMUM_SUBMIT_SECONDS, moderateComment, MODERATION_ACTIONS, mountComments, normalizeWebsite, readAkismetKey, readComments, rebuildCommentIndexes, refilledCommentForm, removeAkismetKey, renderCommentMarkdown, submitComment, updateComment, valuesOf, verifyAkismetKey, writeAkismetKey, } from './comments/index.ts';
19
+ export type { AkismetCheckerOptions, AkismetKeyRecord, AkismetKeyStatus, CommentChecker, CommentForm, CommentFormContext, CommentIndexReport, CommentIntakeOutcome, CommentNotices, CommentOrigin, CommentOutcome, CommentPolicy, CommentProblems, CommentRecords, CommentRefusal, CommentReport, CommentSubmission, CommentThrottle, CommentVerdict, IntakeCommentOptions, ModerateCommentOptions, ModerationAction, ModerationOutcome, NewComment, ProposedComment, SubmissionType, SubmitCommentOptions, VerifyAkismetKeyOptions, } from './comments/index.ts';
20
+ export { addContactMessage, blankContactValues, CONTACT_ANCHOR, CONTACT_DATA_DIRECTORY, CONTACT_FIELDS, CONTACT_FRONT_MATTER_KEY, CONTACT_MESSAGE_TEMPLATE, CONTACT_NOTICE_PARAM, CONTACT_NOTICES, CONTACT_POST_PATH, CONTACT_RATE_LIMIT, CONTACT_RATE_WINDOW_SECONDS, contactDirectory, contactForm, contactFormFor, contactKeys, contactMessageFile, contactMessageId, contactNoticeFor, contactOpen, contactProblems, contactRecipient, contactValuesOf, countContactMessagesByStatus, countUnreadContactMessages, deleteContactMessage, listContactMessages, MAXIMUM_CONTACT_EMAIL_LENGTH, MAXIMUM_CONTACT_MESSAGE_LENGTH, MAXIMUM_CONTACT_NAME_LENGTH, MAXIMUM_CONTACT_SUBJECT_LENGTH, mountContact, readContactMessage, refilledContactForm, sendContactMessage, setContactMessageRead, submitContactMessage, } from './contact/index.ts';
21
+ export type { ContactForm, ContactFormContext, ContactMessage, ContactOutcome, ContactProblems, ContactRecipientOptions, ContactRefusal, ContactStatus, ContactThrottle, NewContactMessage, SendContactMessageOptions, SubmitContactMessageOptions, } from './contact/index.ts';
22
+ export { ADDRESS_SALT_FILE, FORM_LOADED_FIELD, FORM_TRAP_FIELD, formAgeSeconds, formTimingRefusal, trapped, } from './forms/protection.ts';
23
+ export type { FormTimingRefusal } from './forms/protection.ts';
24
+ export { readFileIfPresentSync, updateFileAtomically, withFileLock, writeFileAtomically, writeFileAtomicallySync, } from './files/index.ts';
25
+ export type { FileContents, ProduceFileContents, WriteFileAtomicallyOptions, } from './files/index.ts';
11
26
  export { DirectoryNotEmptyError, initSite, SITE_TEMPLATE_DIR, siteManifest } from './init.ts';
12
27
  export type { InitSiteOptions, InitSiteResult } from './init.ts';
13
- export { contentFilePath, createContentSync, DATABASE_FILE, dateSortKey, DEFAULT_DEBOUNCE_MS, defaultPermalink, documentContent, documentFrontMatter, freeSlug, DuplicatePermalinkError, hashDocument, isTrashedPath, KNOWN_FRONT_MATTER_KEYS, KNOWN_UPLOAD_TYPES, matchesSignature, normalizeBody, normalizeUploadType, openContentStore, parseDocument, renderMarkdown, saveDocument, serializeDocument, slugify, TRASH_DIRECTORY, typeForPath, UPLOAD_MEDIA_TYPES, } from './content/index.ts';
14
- export type { ActivityPubMetadata, ChangeOrigin, ContentCounts, ContentFilePathInput, ContentEventListener, ContentEventMap, ContentEvents, ContentStore, ContentSync, CreateContentSyncOptions, DefaultPermalinkInput, Document, DocumentChange, DocumentChangeType, DocumentContent, DocumentType, FreeSlugOptions, ListAllOptions, ListByTagOptions, ListOptions, OpenContentStoreOptions, ParseDocumentOptions, SaveDocumentOptions, SyncLogger, SyncResult, TagCount, UploadMediaType, UploadSignature, } from './content/index.ts';
28
+ export { describeImage, findImageVariant, generateImageVariants, imageMediaType, IMAGE_DIRECTORY, IMAGE_RECORD_NAME, IMAGE_SIZES, removeImageVariants, responsiveImages, siteIcons, siteImageMarkup, variantUrl, VARIANT_ASSET_PREFIX, } from './images/index.ts';
29
+ export type { DescribeImage, ImageConfig, ImageRecord, ImageVariant, SiteIcon, } from './images/index.ts';
30
+ export { calendarDayIn, contentFilePath, createContentSync, createScheduler, DATABASE_FILE, dateSortKey, DEFAULT_DEBOUNCE_MS, DEFAULT_TIMEZONE, defaultPermalink, documentContent, documentFrontMatter, freeSlug, DuplicatePermalinkError, hashDocument, htmlToText, isScheduled, isTrashedPath, KNOWN_FRONT_MATTER_KEYS, KNOWN_UPLOAD_TYPES, matchesSignature, MAXIMUM_DELAY_MS, MAXIMUM_QUERY_TERMS, normalizeBody, normalizeUploadType, openContentStore, parseDocument, renderMarkdown, saveDocument, SCHEDULE_ORIGIN, scheduledFor, searchExpression, searchText, serializeDocument, slugify, SNIPPET_CLOSE, SNIPPET_OPEN, systemClock, systemTimers, toUtcInstant, TRASH_DIRECTORY, typeForPath, UPLOAD_MEDIA_TYPES, wallClockIn, zoneLabel, } from './content/index.ts';
31
+ export type { ActivityPubMetadata, CategoryCount, ChangeOrigin, Clock, ContentCounts, ContentFilePathInput, ContentEventListener, ContentEventMap, ContentEvents, ContentStore, ContentSync, CreateContentSyncOptions, CreateSchedulerOptions, DefaultPermalinkInput, Document, DocumentChange, DocumentChangeType, DocumentContent, DocumentType, FreeSlugOptions, ListAllOptions, ListByTagOptions, ListOptions, OpenContentStoreOptions, ParseDocumentOptions, SaveDocumentOptions, ScheduleLogger, Scheduler, ScheduleTimers, ScheduleWatermark, SearchHit, SearchText, SyncLogger, SyncResult, TagCount, UploadMediaType, UploadSignature, } from './content/index.ts';
15
32
  export type { GeekityEnv } from './env.ts';
16
- export { ACTOR_CLASSES, ACTOR_PATH, actorClassFor, articleObjectId, avatarUrl, createActivityId, createDeliveryService, createSiteFederation, deleteActivityId, federatedObject, federatedPost, FEDERATION_PREFIX, federationOrigin, followerFrom, followerRecipient, FOLLOWERS_PAGE_SIZE, FOLLOWERS_PATH, followersPage, FOLLOWING_PATH, groupByInbox, handleDelete, handleFollow, handleLoggedActivity, handleUndo, INBOX_PATH, isFederatedDocument, lastFollowersCursor, loadActorKeyPairs, logActivity, mountFederation, NODEINFO_PATH, OUTBOX_PAGE_SIZE, OUTBOX_PATH, POST_OBJECT_PATH, postArticle, postCreateActivity, postDeleteActivity, postObjectId, postObjectPath, postUpdateActivity, SHARED_INBOX_PATH, SITE_ACTOR_IDENTIFIER, siteActor, SOFTWARE_NAME, SOURCE_MEDIA_TYPE, toInstant, updateActivityId, } from './federation/index.ts';
17
- export type { CreateDeliveryServiceOptions, CreateSiteFederationOptions, DeliveryLogger, DeliveryReport, DeliveryService, FederationContextData, SiteActorOptions, SiteFederation, SiteInboxContext, } from './federation/index.ts';
18
- export { absoluteUrl, ACTIVITY_STREAMS_MEDIA_TYPES, activityStreamsId, alternateLinks, assetNotModified, assetResponse, atomFeed, contentEtag, createRenderer, createSiteDataSource, createTemplateEnvironment, DEFAULT_FEED_SIZE, DEFAULT_POSTS_PER_PAGE, DOCUMENT_REPRESENTATIONS, documentContext, documentJson, escapeXml, FEED_CONTENT_TYPES, FEED_FILES, FEED_GENERATOR, FEED_GENERATOR_URI, feedHref, feedResponse, feedSize, findAsset, findThemeAsset, findUpload, formatDate, homeHref, isNotModified, isPublicDocument, JSON_FEED_VERSION, JSON_SCHEMA_VERSION, jsonFeed, lastModifiedOf, latestModified, LISTING_REPRESENTATIONS, matchesEtag, MEDIA_TYPES, mountPublicSite, notAcceptableResponse, offsetForPage, PACKAGED_THEME_DIR, PAGE_SEGMENT, paginate, parseAccept, postsPerPage, prefersActivityStreams, publicDocumentAt, REPRESENTATION_EXTENSIONS, representationEtag, representationHref, representationResponse, selectRepresentation, SITE_DATA_FILE, splitRepresentationExtension, TAG_SEGMENT, tagHref, TEMPLATES, themeAssetNotModified, themeAssetResponse, THEME_ASSET_MAX_AGE, THEME_ASSET_PREFIX, THEME_STATIC_DIR, themeSearchPath, UPLOAD_ASSET_MAX_AGE, UPLOAD_ASSET_PREFIX, UPLOAD_DIRECTORY, } from './web/index.ts';
19
- export type { AcceptRange, AssetResponseOptions, ConditionalHeaders, CreateRendererOptions, CreateSiteDataSourceOptions, CreateTemplateEnvironmentOptions, DateFormat, DocumentContext, DocumentJson, DocumentJsonOptions, FeedFormat, FeedResponseOptions, FeedSource, JsonFeed, JsonFeedAuthor, JsonFeedItem, Listing, PageContext, PaginateOptions, Pagination, Renderer, Representation, RepresentationExtension, RepresentationResponseOptions, SiteData, SiteDataSource, SiteSettingsSource, StaticAsset, ThemeAsset, } from './web/index.ts';
33
+ export { addCommentOptOut, COMMENT_DIGEST_TEMPLATE, COMMENT_OPTOUTS_FILE, COMMENT_PENDING_TEMPLATE, COMMENT_REPLY_TEMPLATE, commentOptOutsFile, COMMENTS_NOTIFICATION, createCommentDigest, createCommentNotifier, DEFAULT_DELIVERY_MODE, DELIVERY_MODE_LABELS, DELIVERY_WINDOW_MS, deliveryMode, DIGEST_MAX_ITEMS, DIGEST_TICK_MS, DIGEST_TIMES_FILE, digestTimesFile, hasOptedOut, isBatchedMode, MODERATE_PATH, MODERATION_TOKEN_LIFETIME_SECONDS, moderationLink, mountNotificationLinks, NOTIFICATION_DELIVERY_MODES, NOTIFICATION_EVENTS, NOTIFICATION_FIELDS, NOTIFICATION_SECRET_FILE, notificationEvent, notificationMode, notificationRecipients, notificationSwitches, notificationTokenExpiry, notificationWanted, readCommentOptOuts, readDigestTimes, readNotificationToken, recordDigestTimes, signNotificationToken, systemNotificationTimers, UNSUBSCRIBE_ACTION, UNSUBSCRIBE_PATH, UNSUBSCRIBE_TOKEN_LIFETIME_SECONDS, unsubscribeLink, withNotification, withNotificationMode, } from './notifications/index.ts';
34
+ export type { CommentDigest, CommentNotifier, CreateCommentDigestOptions, CreateCommentNotifierOptions, DigestLogger, LinkContext, NewNotificationToken, NotificationClaim, NotificationDeliveryMode, NotificationEvent, NotificationSwitch, NotificationTimers, } from './notifications/index.ts';
35
+ export { BREVO_ENDPOINT, BREVO_TIMEOUT_MS, createBrevoProvider, createMailService, createMailTemplates, createMemoryMailProvider, createSmtpProvider, DEFAULT_MAIL_ATTEMPTS, defaultMailBackoffMs, MAIL_CREDENTIALS_FILE, MAIL_PROVIDERS, mailCredentialsPath, mailTemplateFiles, readMailCredentials, removeMailCredentials, SMTP_TIMEOUT_MS, writeMailCredentials, } from './mail/index.ts';
36
+ export type { BrevoCredential, BrevoProviderOptions, CreateMailServiceOptions, CreateMailTemplatesOptions, MailAddress, MailCredentials, MailDelivery, MailLogger, MailProvider, MailProviderName, MailRecipient, MailResult, MailService, MailTemplateFiles, MailTemplates, MemoryMailProvider, OutgoingMail, RawMail, RenderedMail, SmtpCredential, SmtpProviderOptions, TemplateMail, } from './mail/index.ts';
37
+ export { acceptedRelays, acceptRelay, addFollower, appendInboxActivity, ACTOR_KEY_ALGORITHMS, ACTOR_PATH, assertActorKeysUsable, actorKeyFile, actorKeysDir, articleObjectId, actorAliases, actorId, avatarUrl, keyIdFor, mainKeyId, multikeyId, senderKeyPairs, userActor, userByUsername, createActivityId, createDeliveryService, createRelayService, createSiteFederation, deleteActivityId, deliveryTargets, documentAuthor, federatedPost, federatedUsernames, FEDERATION_DATA_DIRECTORY, federationOrigin, acctOf, handleHref, userDirectory, webFingerSubject, WEBFINGER_PATH, followerFrom, followerRecipient, FOLLOWERS_FILE, FOLLOWERS_PAGE_SIZE, FOLLOWERS_PATH, actorHandle, followersFile, followersPage, FOLLOWING_PATH, groupByInbox, handleAccept, handleDelete, handleFollow, handleLoggedActivity, handleReject, handleUndo, INBOX_PATH, isFederatedDocument, lastFollowersCursor, inboxDirectory, inboxFile, inboxMonth, INBOX_DIRECTORY, inboxRowFrom, loadActorKeyPairs, logActivity, migrateActorKeysToFiles, migrateFederationToFiles, mountFederation, NODEINFO_PATH, OUTBOX_PAGE_SIZE, OUTBOX_PATH, postArticle, postCreateActivity, postDeleteActivity, postUpdateActivity, readFollowers, readInboxLog, rebuildFederationIndexes, rejectRelay, relayAnswering, relayRecipient, REPLY_ACTIVITY_TYPE, replyFrom, replyTargetOf, SHARED_INBOX_PATH, SOFTWARE_NAME, SOURCE_MEDIA_TYPE, toInstant, updateActivityId, } from './federation/index.ts';
38
+ export type { ActorKeyAlgorithm, CreateDeliveryServiceOptions, FederationIndexReport, FederationRecords, UserActorOptions, InboxLine, CreateRelayServiceOptions, CreateSiteFederationOptions, DeliveryLogger, DeliveryReport, DeliveryService, DeliveryTarget, FederationContextData, RelayLogger, RelayService, RelaySyncReport, SiteFederation, Reply, SiteInboxContext, } from './federation/index.ts';
39
+ export { absoluteUrl, ACTIVITY_STREAMS_MEDIA_TYPES, activityStreamsId, alternateLinks, archiveMonths, ARCHIVE_FRONT_MATTER_KEY, archiveOpen, assetNotModified, assetResponse, atomEntry, atomFeed, AUTHOR_BASE, authorContext, authorFeedHref, authorHref, authorNames, categoryHref, commentAnchor, commentsFeedHref, commentsFeedPath, commentsFeedResponse, commentsRssFeed, COMMENTS_ROOT, COMMENTS_TITLE_PREFIX, contentEtag, createConversation, createRenderer, createSiteDataSource, createTemplateEnvironment, DEFAULT_FEED_SIZE, DEFAULT_TAXONOMY_BASES, DEFAULT_POSTS_PER_PAGE, DOCUMENT_REPRESENTATIONS, documentContext, cdata, contentTypeOf, DC_NAMESPACE, DEFAULT_FEED_LANGUAGE, DEFAULT_NOTIFY_SERVER, documentJson, escapeXml, excerptFromHtml, EXCERPT_WORDS, FEED_ALIASES, FEED_CONTENT_TYPES, FEED_FORMATS, FEED_GENERATOR, FEED_GENERATOR_URI, FEED_ITEM_REVISION, FEED_SEGMENT, FEED_SEGMENTS, feedComments, feedExcerpt, feedHref, feedItem, feedItems, feedLanguage, feedLinkHeader, feedPathUnder, feedResponse, feedSize, findAsset, findThemeAsset, findThemeFile, findUpload, forgetTerm, formatDate, frontPageSlugs, homeHref, INBOX_BASE, isNotModified, isPublicDocument, JSON_FEED_VERSION, JSON_SCHEMA_VERSION, jsonFeed, jsonFeedItem, lastModifiedOf, latestModified, listingPageHref, LISTING_REPRESENTATIONS, matchesEtag, MAXIMUM_QUERY_LENGTH, MEDIA_TYPES, mountPublicSite, navigationItems, navigationItemsOf, navigationMenu, navigationOrder, navigationPages, NAVIGATION_KEY, NAVIGATION_ORDER_KEY, notAcceptableResponse, NOTIFY_CLOUD_PORT, NOTIFY_CLOUD_PROTOCOL, NOTIFY_PATHS, notifyEndpoints, notifyServerOf, offsetForPage, PACKAGED_THEME_DIR, PAGE_SEGMENT, paginate, parseAccept, parseAuthorPath, postObjectId, postsPerPage, prefersActivityStreams, profileContext, publicDocumentAt, recentPosts, RECENT_POSTS, recordTermRename, redirectedTerm, REPRESENTATION_EXTENSIONS, representationEtag, representationHref, representationResponse, RESERVED_TOP_LEVEL_PATHS, rfc822, spokenIn, robotsResponse, robotsTxt, ROBOTS_CONTENT_TYPE, ROBOTS_PATH, rssFeed, rssItem, readTheme, sanitizeCommentHtml, searchHref, searchJson, searchPageIndex, searchQuery, SEARCH_PAGE_PARAM, SEARCH_PATH, SEARCH_QUERY_PARAM, selectRepresentation, SITE_DATA_FILE, SITE_THEME_KIND, sitemapChildPath, sitemapDate, sitemapIndexXml, sitemapResponse, sitemapXml, SITEMAP_CHILD_ROUTE, SITEMAP_CONTENT_TYPE, SITEMAP_MAX_URLS, SITEMAP_NAMESPACE, SITEMAP_PATH, snippetHtml, SOURCE_NAMESPACE, siteAuthorContext, siteTimezone, splitFeedPath, splitRepresentationExtension, startOfMonth, tagHref, TAXONOMIES, userForAuthor, TAXONOMY_BASE_PATTERN, TAXONOMY_LABELS, taxonomyBaseProblems, taxonomyBases, taxonomyBasesOrDefault, taxonomyForSegment, taxonomyRedirectsOf, OPTIONAL_TEMPLATES, TEMPLATES, termHref, termRedirects, themeAssetNotModified, themeAssetResponse, THEME_ASSET_MAX_AGE, THEME_ASSET_PREFIX, THEME_STATIC_DIR, THEME_MANIFEST_FILE, themeSearchPath, UPLOAD_ASSET_MAX_AGE, UPLOAD_ASSET_PREFIX, UPLOAD_DIRECTORY, WFW_NAMESPACE, } from './web/index.ts';
40
+ export type { AcceptRange, AssetResponseOptions, AuthorContext, AuthorRequest, ConditionalHeaders, CreateRendererOptions, CommentFeedSource, Conversation, ConversationContext, ConversationReader, CreateTemplateEnvironmentOptions, DateFormat, DocumentContext, DocumentJson, DocumentJsonOptions, FeedComment, FeedFormat, FeedIdentity, FeedItem, FeedItemComments, FeedItemContext, FeedPath, FeedResponseOptions, FeedSource, FrontPageSlugs, JsonFeed, JsonFeedAuthor, JsonFeedHub, Interaction, InteractionAuthor, InteractionCounts, InteractionKind, InteractionSource, InteractionStatus, JsonFeedItem, SiteInteraction, NotifyServer, Listing, MenuItem, NavigationItem, NavigationMenuOptions, NeighbourContext, PageContext, PaginateOptions, Pagination, RecentPostsSource, Renderer, Representation, RepresentationExtension, RepresentationResponseOptions, SearchJson, SearchJsonOptions, SearchPage, SearchResultJson, SiteData, SiteDataSource, SitemapResponseOptions, SitemapUrl, StaticAsset, Taxonomy, TaxonomyBaseProblems, TaxonomyBases, TaxonomyRedirect, TaxonomyTerm, Theme, ThemeAsset, ThemeKind, ThemeRead, } from './web/index.ts';
41
+ export { classesOf, createWebmentionService, discoverEndpoint, DISCOVERY_MAX_BYTES, DISCOVERY_TIMEOUT_MS, elementsIn, endpointInHeader, endpointInHtml, externalLinks, innerHtmlOf, isElement, itemsIn, linksTo, parseHtml, rawTextOf, readCapped, SEND_TIMEOUT_MS, sourceEntry, textOf, WEBMENTION_USER_AGENT, } from './webmention/index.ts';
42
+ export type { CreateWebmentionServiceOptions, HtmlElement, HtmlNode, HtmlText, MicroformatItem, MicroformatValue, SourceEntry, WebmentionKind, WebmentionLogger, WebmentionReport, } from './webmention/index.ts';
43
+ /**
44
+ * Where the scheduler's watermark lives in {@link AdminStore.getState}: the
45
+ * instant up to which scheduled documents have been announced.
46
+ */
47
+ export declare const SCHEDULE_WATERMARK_KEY = "schedule.watermark";
20
48
  /** A running (or runnable) CMS instance. */
21
49
  export interface Cms {
22
50
  /**
@@ -29,9 +57,12 @@ export interface Cms {
29
57
  /** The content index, opened against {@link ResolvedConfig.dataDir} on boot. */
30
58
  readonly store: ContentStore;
31
59
  /**
32
- * Users and sessions, in the same database file as the index. This is the
33
- * half of it that is not derived from the content directory, so it is the
34
- * half a site has to back up.
60
+ * Everything in the database that is not the content index: the sessions,
61
+ * the followers and inbox indexes, the delivery outcomes, the relay
62
+ * handshake and the scheduler's watermark. In the same file as the index.
63
+ *
64
+ * All of it is derived or disposable (decision-9); the accounts and the
65
+ * actor's keys, which are not, are files under `dataDir`.
35
66
  */
36
67
  readonly admin: AdminStore;
37
68
  /**
@@ -46,12 +77,73 @@ export interface Cms {
46
77
  /**
47
78
  * Outbound ActivityPub delivery: what sends a post to the followers when it
48
79
  * is published, edited or withdrawn, and what an admin screen calls to send
49
- * a recorded activity again.
80
+ * one of them as it now reads.
50
81
  *
51
82
  * It is already subscribed to the index; a site only reaches for it to
52
- * redeliver, or to wait for the deliveries in flight.
83
+ * resend a post, or to wait for the deliveries in flight.
53
84
  */
54
85
  readonly delivery: DeliveryService;
86
+ /**
87
+ * The site's relay subscriptions (FEP-ae0c): what follows a relay when one
88
+ * is added to the settings, what an `Accept` marks accepted, and what every
89
+ * public activity is delivered to alongside the followers.
90
+ */
91
+ readonly relays: RelayService;
92
+ /**
93
+ * The site's outgoing webmentions: what tells the pages a post links to that
94
+ * it links to them, and what an admin screen calls to tell them again.
95
+ *
96
+ * It is already subscribed to the index; a site reaches for it to send one
97
+ * post's links again, or to wait for the ones in flight.
98
+ */
99
+ readonly webmentions: WebmentionService;
100
+ /**
101
+ * The site's rssCloud and WebSub client: what tells the notify server named
102
+ * in the settings that a feed changed, so a subscriber hears at once rather
103
+ * than on its next poll.
104
+ *
105
+ * It is already subscribed to the index; a site reaches for it to ping a
106
+ * feed of its own ({@link Cms.notifyFeeds}), or to wait for the pings in
107
+ * flight.
108
+ */
109
+ readonly notifier: FeedNotifier;
110
+ /**
111
+ * The site's outgoing email (TASK-53): what the settings screen's Send test
112
+ * email button uses, and what the password resets, moderation notices and
113
+ * contact messages built on it will.
114
+ *
115
+ * A site with no mail configuration still has one. Its `send` logs that the
116
+ * message was not sent and resolves successfully, so a feature that emails
117
+ * never has to ask whether the site can.
118
+ */
119
+ readonly mail: MailService;
120
+ /**
121
+ * Who is told about comments (TASK-55): the moderators when one is waiting,
122
+ * and a commenter when a reply to them is approved.
123
+ *
124
+ * Here so a site's own code can send the same notice for a comment it
125
+ * created itself. With no mail configuration it sends nothing, like the mail
126
+ * service behind it.
127
+ */
128
+ readonly notifications: CommentNotifier;
129
+ /**
130
+ * The batched half of the same notice (TASK-60): what writes to a user who
131
+ * chose an hourly or a daily digest instead of a message per comment.
132
+ *
133
+ * It is started by {@link Cms.serve} and stopped by {@link Cms.close}; a
134
+ * site reaches for it to send what is due without waiting for the tick,
135
+ * which is also what a test does.
136
+ */
137
+ readonly digests: CommentDigest;
138
+ /**
139
+ * The publisher of scheduled posts: what holds a future-dated post back and
140
+ * releases it when its date arrives.
141
+ *
142
+ * It is already subscribed to the index and started by {@link Cms.serve}; a
143
+ * site reaches for it to ask what it is waiting for, or to release what is
144
+ * due without waiting for the timer.
145
+ */
146
+ readonly scheduler: Scheduler;
55
147
  /**
56
148
  * Index changes, as they happen: `created`, `updated`, `deleted`,
57
149
  * `published`, `unpublished` and the catch-all `change`. Every listener is
@@ -75,6 +167,16 @@ export interface Cms {
75
167
  * function that unsubscribes.
76
168
  */
77
169
  onPublish(hook: DocumentChangeHook): () => void;
170
+ /**
171
+ * Tell the notify server that these feeds changed — absolute URLs, because
172
+ * it is going to fetch them. The hook a site calls for a feed the CMS does
173
+ * not know it has.
174
+ *
175
+ * Best effort: the pings are queued behind whatever is already going out, a
176
+ * repeated URL is sent once, and a refusal is logged rather than thrown. A
177
+ * site that names no notify server gets an empty report.
178
+ */
179
+ notifyFeeds(urls: readonly string[]): Promise<NotifyReport>;
78
180
  /**
79
181
  * Walk the content directory once and bring the index into line with it.
80
182
  * What `serve()` does on boot, and what the `geekity sync` command runs.
@@ -99,8 +201,10 @@ export interface Cms {
99
201
  *
100
202
  * The returned app is a plain Hono app: the public site, the admin UI and the
101
203
  * federation endpoints are all mounted on it as later milestones land. Booting
102
- * opens the SQLite index under `dataDir` (creating the directory) and applies
103
- * any migrations, so `close()` has to be called to release it.
204
+ * opens the SQLite cache under `dataDir` (creating the directory) and applies
205
+ * any migrations, so `close()` has to be called to release it. A missing
206
+ * database is built and read back out of the files; see {@link openCache} for
207
+ * what happens to one this version cannot use.
104
208
  */
105
209
  export declare function createCms(config?: GeekityConfig): Cms;
106
210
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAY5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,KAAK,EACV,aAAa,EAEb,YAAY,EACZ,SAAS,EACT,UAAU,EACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAY/E,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE3F,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAc9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACpE,YAAY,EACV,yBAAyB,EACzB,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,cAAc,EACd,aAAa,EACb,WAAW,EACX,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,uBAAuB,EACvB,SAAS,EACT,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,8BAA8B,EAC9B,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,OAAO,EACP,eAAe,EACf,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,KAAK,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,gBAAgB,EAChB,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,SAAS,EACT,UAAU,EACV,SAAS,EACT,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,EACf,cAAc,EACd,SAAS,EACT,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,UAAU,EACV,aAAa,EACb,WAAW,EACX,aAAa,EACb,UAAU,EACV,cAAc,EACd,4BAA4B,EAC5B,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,eAAe,EACf,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,eAAe,EACf,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,aAAa,EACb,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,UAAU,EACV,0BAA0B,EAC1B,WAAW,EACX,sBAAsB,EACtB,qCAAqC,EACrC,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,UAAU,EACV,eAAe,EACf,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,2BAA2B,EAC3B,4BAA4B,EAC5B,uBAAuB,EACvB,QAAQ,EACR,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,qBAAqB,EACrB,aAAa,EACb,KAAK,EACL,UAAU,EACV,OAAO,EACP,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,IAAI,EACJ,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EACL,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,cAAc,EACd,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAMrB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,EAC3B,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,WAAW,EACX,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,iCAAiC,EACjC,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,eAAe,EACf,cAAc,EACd,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,EAC3B,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,4BAA4B,EAC5B,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,4BAA4B,EAC5B,8BAA8B,EAC9B,2BAA2B,EAC3B,8BAA8B,EAC9B,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,OAAO,GACR,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9F,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,UAAU,EACV,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,QAAQ,EACR,uBAAuB,EACvB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,KAAK,EACL,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,WAAW,EACX,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,eAAe,EACf,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI3C,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,aAAa,EACb,aAAa,EACb,iCAAiC,EACjC,cAAc,EACd,sBAAsB,EACtB,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,kCAAkC,EAClC,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,aAAa,EACb,eAAe,EACf,0BAA0B,EAC1B,4BAA4B,EAC5B,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,WAAW,EACX,eAAe,EACf,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,cAAc,EACd,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,cAAc,EACd,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,gBAAgB,EAChB,MAAM,EACN,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,UAAU,EACV,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,wBAAwB,EACxB,WAAW,EACX,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,iBAAiB,EACjB,4BAA4B,EAC5B,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,yBAAyB,EACzB,2BAA2B,EAC3B,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,YAAY,EACZ,eAAe,EACf,cAAc,EACd,KAAK,EACL,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,WAAW,EACX,4BAA4B,EAC5B,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,QAAQ,EACR,WAAW,EACX,aAAa,EACb,cAAc,EACd,UAAU,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,EACf,KAAK,EACL,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,SAAS,EACT,eAAe,EACf,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,cAAc,EACd,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,cAAc,EACd,aAAa,EACb,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,QAAQ,EACR,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,MAAM,EACN,QAAQ,EACR,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,WAAW,EACX,OAAO,EACP,OAAO,EACP,SAAS,EACT,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,4BAA4B,EAC5B,YAAY,EACZ,OAAO,EACP,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,gCAAgC,EAChC,UAAU,EACV,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,QAAQ,EACR,cAAc,EACd,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,cAAc,EACd,uBAAuB,EACvB,6BAA6B,EAC7B,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,sBAAsB,EACtB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,KAAK,EACL,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,SAAS,EACT,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,WAAW,EACX,SAAS,EACT,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,EACX,MAAM,EACN,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,8BAA8B,EAC9B,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B;;;GAGG;AACH,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAE3D,4CAA4C;AAC5C,MAAM,WAAW,GAAG;IAClB;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC;IACxC;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B;;;;;;;;OAQG;IACH,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAAC;IACvD;;;;;OAKG;IACH,SAAS,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAAC;IAChD;;;;;;;;OAQG;IACH,WAAW,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5D;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5B;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnC;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAiCD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,MAAM,GAAE,aAAkB,GAAG,GAAG,CA0YzD"}