@geekity/cms 0.30.0 → 0.31.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 (1391) hide show
  1. package/README.md +26 -4266
  2. package/admin/pages/settings/privacy.njk +1 -1
  3. package/dist/access-log.d.ts +2 -10
  4. package/dist/access-log.d.ts.map +1 -1
  5. package/dist/access-log.js +1 -1
  6. package/dist/access-log.js.map +1 -1
  7. package/dist/{web → admin}/admin-bar.d.ts +3 -2
  8. package/dist/admin/admin-bar.d.ts.map +1 -0
  9. package/dist/{web → admin}/admin-bar.js +20 -17
  10. package/dist/admin/admin-bar.js.map +1 -0
  11. package/dist/{indieauth → admin}/app-activity.d.ts +2 -2
  12. package/dist/admin/app-activity.d.ts.map +1 -0
  13. package/dist/{indieauth → admin}/app-activity.js +5 -5
  14. package/dist/admin/app-activity.js.map +1 -0
  15. package/dist/admin/appearance.d.ts +3 -3
  16. package/dist/admin/appearance.d.ts.map +1 -1
  17. package/dist/admin/appearance.js +12 -6
  18. package/dist/admin/appearance.js.map +1 -1
  19. package/dist/admin/assets.d.ts +1 -8
  20. package/dist/admin/assets.d.ts.map +1 -1
  21. package/dist/admin/assets.js +2 -9
  22. package/dist/admin/assets.js.map +1 -1
  23. package/dist/admin/comments.d.ts +2 -2
  24. package/dist/admin/comments.d.ts.map +1 -1
  25. package/dist/admin/comments.js +16 -17
  26. package/dist/admin/comments.js.map +1 -1
  27. package/dist/{indieauth → admin}/connected-apps.d.ts +2 -2
  28. package/dist/admin/connected-apps.d.ts.map +1 -0
  29. package/dist/{indieauth → admin}/connected-apps.js +18 -19
  30. package/dist/admin/connected-apps.js.map +1 -0
  31. package/dist/admin/credentials.js +1 -1
  32. package/dist/admin/credentials.js.map +1 -1
  33. package/dist/admin/dev-mode.d.ts +1 -1
  34. package/dist/admin/dev-mode.d.ts.map +1 -1
  35. package/dist/admin/documents.d.ts +16 -301
  36. package/dist/admin/documents.d.ts.map +1 -1
  37. package/dist/admin/documents.js +74 -1032
  38. package/dist/admin/documents.js.map +1 -1
  39. package/dist/admin/editor-actions.d.ts +3 -2
  40. package/dist/admin/editor-actions.d.ts.map +1 -1
  41. package/dist/admin/editor-actions.js +8 -8
  42. package/dist/admin/editor-actions.js.map +1 -1
  43. package/dist/admin/editor-fields.d.ts +45 -0
  44. package/dist/admin/editor-fields.d.ts.map +1 -0
  45. package/dist/admin/editor-fields.js +71 -0
  46. package/dist/admin/editor-fields.js.map +1 -0
  47. package/dist/admin/editor-layout.d.ts +2 -10
  48. package/dist/admin/editor-layout.d.ts.map +1 -1
  49. package/dist/admin/editor-layout.js +1 -1
  50. package/dist/admin/editor-layout.js.map +1 -1
  51. package/dist/admin/federation.d.ts +5 -5
  52. package/dist/admin/federation.d.ts.map +1 -1
  53. package/dist/admin/federation.js +16 -18
  54. package/dist/admin/federation.js.map +1 -1
  55. package/dist/admin/flash.d.ts +2 -2
  56. package/dist/admin/flash.d.ts.map +1 -1
  57. package/dist/admin/headers.d.ts +1 -1
  58. package/dist/admin/headers.d.ts.map +1 -1
  59. package/dist/admin/headers.js +1 -1
  60. package/dist/admin/headers.js.map +1 -1
  61. package/dist/admin/index.d.ts +38 -20
  62. package/dist/admin/index.d.ts.map +1 -1
  63. package/dist/admin/index.js +27 -13
  64. package/dist/admin/index.js.map +1 -1
  65. package/dist/{indieauth/consent.d.ts → admin/indieauth-consent.d.ts} +4 -4
  66. package/dist/admin/indieauth-consent.d.ts.map +1 -0
  67. package/dist/{indieauth/consent.js → admin/indieauth-consent.js} +17 -18
  68. package/dist/admin/indieauth-consent.js.map +1 -0
  69. package/dist/admin/legacy-migrations.d.ts +131 -0
  70. package/dist/admin/legacy-migrations.d.ts.map +1 -0
  71. package/dist/admin/legacy-migrations.js +235 -0
  72. package/dist/admin/legacy-migrations.js.map +1 -0
  73. package/dist/admin/media.d.ts +4 -108
  74. package/dist/admin/media.d.ts.map +1 -1
  75. package/dist/admin/media.js +19 -187
  76. package/dist/admin/media.js.map +1 -1
  77. package/dist/admin/menu.d.ts.map +1 -1
  78. package/dist/admin/menu.js +7 -7
  79. package/dist/admin/menu.js.map +1 -1
  80. package/dist/admin/messages.d.ts +1 -1
  81. package/dist/admin/messages.d.ts.map +1 -1
  82. package/dist/admin/messages.js +10 -12
  83. package/dist/admin/messages.js.map +1 -1
  84. package/dist/admin/navigation.d.ts +3 -3
  85. package/dist/admin/navigation.d.ts.map +1 -1
  86. package/dist/admin/navigation.js +9 -12
  87. package/dist/admin/navigation.js.map +1 -1
  88. package/dist/admin/personal-data.d.ts +1 -1
  89. package/dist/admin/personal-data.d.ts.map +1 -1
  90. package/dist/admin/personal-data.js +3 -6
  91. package/dist/admin/personal-data.js.map +1 -1
  92. package/dist/admin/plugins.d.ts +1 -1
  93. package/dist/admin/plugins.d.ts.map +1 -1
  94. package/dist/admin/plugins.js +11 -15
  95. package/dist/admin/plugins.js.map +1 -1
  96. package/dist/admin/preview.d.ts +2 -1
  97. package/dist/admin/preview.d.ts.map +1 -1
  98. package/dist/admin/preview.js +28 -32
  99. package/dist/admin/preview.js.map +1 -1
  100. package/dist/admin/recovery.d.ts +3 -3
  101. package/dist/admin/recovery.d.ts.map +1 -1
  102. package/dist/admin/recovery.js +10 -12
  103. package/dist/admin/recovery.js.map +1 -1
  104. package/dist/admin/routes.d.ts +1 -3
  105. package/dist/admin/routes.d.ts.map +1 -1
  106. package/dist/admin/routes.js +28 -26
  107. package/dist/admin/routes.js.map +1 -1
  108. package/dist/admin/settings-discussion.d.ts.map +1 -1
  109. package/dist/admin/settings-discussion.js +7 -4
  110. package/dist/admin/settings-discussion.js.map +1 -1
  111. package/dist/admin/settings-email.d.ts +1 -1
  112. package/dist/admin/settings-email.d.ts.map +1 -1
  113. package/dist/admin/settings-email.js +13 -10
  114. package/dist/admin/settings-email.js.map +1 -1
  115. package/dist/admin/settings-general.d.ts.map +1 -1
  116. package/dist/admin/settings-general.js +10 -7
  117. package/dist/admin/settings-general.js.map +1 -1
  118. package/dist/admin/settings-page.d.ts +3 -4
  119. package/dist/admin/settings-page.d.ts.map +1 -1
  120. package/dist/admin/settings-page.js +5 -6
  121. package/dist/admin/settings-page.js.map +1 -1
  122. package/dist/admin/settings-pages.d.ts +1 -1
  123. package/dist/admin/settings-pages.d.ts.map +1 -1
  124. package/dist/admin/settings-permalinks.js +1 -1
  125. package/dist/admin/settings-permalinks.js.map +1 -1
  126. package/dist/admin/settings-reading.d.ts +2 -2
  127. package/dist/admin/settings-reading.d.ts.map +1 -1
  128. package/dist/admin/settings-reading.js +4 -3
  129. package/dist/admin/settings-reading.js.map +1 -1
  130. package/dist/admin/settings.d.ts +0 -579
  131. package/dist/admin/settings.d.ts.map +1 -1
  132. package/dist/admin/settings.js +1 -1155
  133. package/dist/admin/settings.js.map +1 -1
  134. package/dist/admin/syndication-targets.d.ts +1 -1
  135. package/dist/admin/syndication-targets.d.ts.map +1 -1
  136. package/dist/admin/syndication-targets.js +11 -15
  137. package/dist/admin/syndication-targets.js.map +1 -1
  138. package/dist/admin/taxonomy.d.ts +2 -2
  139. package/dist/admin/taxonomy.d.ts.map +1 -1
  140. package/dist/admin/taxonomy.js +8 -11
  141. package/dist/admin/taxonomy.js.map +1 -1
  142. package/dist/admin/templates.js +1 -1
  143. package/dist/admin/templates.js.map +1 -1
  144. package/dist/admin/tools.d.ts +4 -4
  145. package/dist/admin/tools.d.ts.map +1 -1
  146. package/dist/admin/tools.js +3 -6
  147. package/dist/admin/tools.js.map +1 -1
  148. package/dist/admin/uploads.d.ts +1 -106
  149. package/dist/admin/uploads.d.ts.map +1 -1
  150. package/dist/admin/uploads.js +2 -191
  151. package/dist/admin/uploads.js.map +1 -1
  152. package/dist/admin/users.d.ts +20 -15
  153. package/dist/admin/users.d.ts.map +1 -1
  154. package/dist/admin/users.js +83 -80
  155. package/dist/admin/users.js.map +1 -1
  156. package/dist/avatars/avatars.d.ts +2 -2
  157. package/dist/avatars/avatars.d.ts.map +1 -1
  158. package/dist/avatars/avatars.js +6 -9
  159. package/dist/avatars/avatars.js.map +1 -1
  160. package/dist/avatars/index.d.ts +0 -1
  161. package/dist/avatars/index.d.ts.map +1 -1
  162. package/dist/avatars/index.js +0 -1
  163. package/dist/avatars/index.js.map +1 -1
  164. package/dist/cache.d.ts +4 -2
  165. package/dist/cache.d.ts.map +1 -1
  166. package/dist/cache.js +11 -5
  167. package/dist/cache.js.map +1 -1
  168. package/dist/cli.d.ts +2 -33
  169. package/dist/cli.d.ts.map +1 -1
  170. package/dist/cli.js +238 -267
  171. package/dist/cli.js.map +1 -1
  172. package/dist/cms/app.d.ts +11 -0
  173. package/dist/cms/app.d.ts.map +1 -0
  174. package/dist/cms/app.js +115 -0
  175. package/dist/cms/app.js.map +1 -0
  176. package/dist/cms/boot.d.ts +14 -0
  177. package/dist/cms/boot.d.ts.map +1 -0
  178. package/dist/cms/boot.js +107 -0
  179. package/dist/cms/boot.js.map +1 -0
  180. package/dist/cms/create.d.ts +248 -0
  181. package/dist/cms/create.d.ts.map +1 -0
  182. package/dist/cms/create.js +167 -0
  183. package/dist/cms/create.js.map +1 -0
  184. package/dist/cms/lifecycle.d.ts +11 -0
  185. package/dist/cms/lifecycle.d.ts.map +1 -0
  186. package/dist/cms/lifecycle.js +15 -0
  187. package/dist/cms/lifecycle.js.map +1 -0
  188. package/dist/{web/errors.d.ts → cms/server-error.d.ts} +2 -8
  189. package/dist/cms/server-error.d.ts.map +1 -0
  190. package/dist/{web/errors.js → cms/server-error.js} +4 -14
  191. package/dist/cms/server-error.js.map +1 -0
  192. package/dist/cms/services.d.ts +55 -0
  193. package/dist/cms/services.d.ts.map +1 -0
  194. package/dist/cms/services.js +353 -0
  195. package/dist/cms/services.js.map +1 -0
  196. package/dist/cms/site-records.d.ts +4 -0
  197. package/dist/cms/site-records.d.ts.map +1 -0
  198. package/dist/cms/site-records.js +15 -0
  199. package/dist/cms/site-records.js.map +1 -0
  200. package/dist/comments/akismet.d.ts +1 -1
  201. package/dist/comments/akismet.d.ts.map +1 -1
  202. package/dist/comments/akismet.js +1 -3
  203. package/dist/comments/akismet.js.map +1 -1
  204. package/dist/comments/conversation.d.ts +334 -0
  205. package/dist/comments/conversation.d.ts.map +1 -0
  206. package/dist/comments/conversation.js +51 -0
  207. package/dist/comments/conversation.js.map +1 -0
  208. package/dist/comments/form.d.ts +2 -2
  209. package/dist/comments/form.d.ts.map +1 -1
  210. package/dist/comments/form.js +2 -2
  211. package/dist/comments/form.js.map +1 -1
  212. package/dist/comments/index.d.ts +12 -6
  213. package/dist/comments/index.d.ts.map +1 -1
  214. package/dist/comments/index.js +7 -4
  215. package/dist/comments/index.js.map +1 -1
  216. package/dist/comments/intake.d.ts +147 -0
  217. package/dist/comments/intake.d.ts.map +1 -0
  218. package/dist/comments/intake.js +161 -0
  219. package/dist/comments/intake.js.map +1 -0
  220. package/dist/comments/markdown.d.ts.map +1 -1
  221. package/dist/comments/markdown.js +2 -9
  222. package/dist/comments/markdown.js.map +1 -1
  223. package/dist/comments/migrations.d.ts +45 -0
  224. package/dist/comments/migrations.d.ts.map +1 -0
  225. package/dist/comments/migrations.js +194 -0
  226. package/dist/comments/migrations.js.map +1 -0
  227. package/dist/comments/moderate.d.ts +2 -2
  228. package/dist/comments/moderate.d.ts.map +1 -1
  229. package/dist/comments/moderate.js +3 -13
  230. package/dist/comments/moderate.js.map +1 -1
  231. package/dist/comments/page-form.d.ts +52 -0
  232. package/dist/comments/page-form.d.ts.map +1 -0
  233. package/dist/comments/page-form.js +62 -0
  234. package/dist/comments/page-form.js.map +1 -0
  235. package/dist/comments/policy.d.ts +1 -9
  236. package/dist/comments/policy.d.ts.map +1 -1
  237. package/dist/comments/policy.js +3 -18
  238. package/dist/comments/policy.js.map +1 -1
  239. package/dist/comments/records.d.ts +17 -193
  240. package/dist/comments/records.d.ts.map +1 -1
  241. package/dist/comments/records.js +22 -391
  242. package/dist/comments/records.js.map +1 -1
  243. package/dist/comments/reply-notices.d.ts +5 -5
  244. package/dist/comments/reply-notices.d.ts.map +1 -1
  245. package/dist/comments/reply-notices.js +6 -6
  246. package/dist/comments/reply-notices.js.map +1 -1
  247. package/dist/comments/reply-post.d.ts +2 -2
  248. package/dist/comments/reply-post.d.ts.map +1 -1
  249. package/dist/comments/reply-post.js +7 -5
  250. package/dist/comments/reply-post.js.map +1 -1
  251. package/dist/comments/routes.d.ts +3 -3
  252. package/dist/comments/routes.d.ts.map +1 -1
  253. package/dist/comments/routes.js +19 -31
  254. package/dist/comments/routes.js.map +1 -1
  255. package/dist/comments/submission.d.ts +5 -100
  256. package/dist/comments/submission.d.ts.map +1 -1
  257. package/dist/comments/submission.js +5 -20
  258. package/dist/comments/submission.js.map +1 -1
  259. package/dist/comments/viewer.d.ts +1 -25
  260. package/dist/comments/viewer.d.ts.map +1 -1
  261. package/dist/comments/viewer.js +1 -44
  262. package/dist/comments/viewer.js.map +1 -1
  263. package/dist/config-loader.d.ts +35 -0
  264. package/dist/config-loader.d.ts.map +1 -0
  265. package/dist/config-loader.js +116 -0
  266. package/dist/config-loader.js.map +1 -0
  267. package/dist/config.d.ts +72 -50
  268. package/dist/config.d.ts.map +1 -1
  269. package/dist/config.js +132 -180
  270. package/dist/config.js.map +1 -1
  271. package/dist/contact/delivery.d.ts +1 -1
  272. package/dist/contact/delivery.d.ts.map +1 -1
  273. package/dist/contact/delivery.js +5 -13
  274. package/dist/contact/delivery.js.map +1 -1
  275. package/dist/contact/form.d.ts +2 -4
  276. package/dist/contact/form.d.ts.map +1 -1
  277. package/dist/contact/form.js +3 -4
  278. package/dist/contact/form.js.map +1 -1
  279. package/dist/contact/index.d.ts +2 -2
  280. package/dist/contact/index.d.ts.map +1 -1
  281. package/dist/contact/index.js +2 -2
  282. package/dist/contact/index.js.map +1 -1
  283. package/dist/contact/records.d.ts.map +1 -1
  284. package/dist/contact/records.js +8 -11
  285. package/dist/contact/records.js.map +1 -1
  286. package/dist/contact/submission.d.ts +2 -2
  287. package/dist/contact/submission.d.ts.map +1 -1
  288. package/dist/contact/submission.js +7 -16
  289. package/dist/contact/submission.js.map +1 -1
  290. package/dist/{images → content}/alt-text.d.ts +1 -1
  291. package/dist/content/alt-text.d.ts.map +1 -0
  292. package/dist/{images → content}/alt-text.js +3 -5
  293. package/dist/content/alt-text.js.map +1 -0
  294. package/dist/content/authors.d.ts +79 -0
  295. package/dist/content/authors.d.ts.map +1 -0
  296. package/dist/content/authors.js +106 -0
  297. package/dist/content/authors.js.map +1 -0
  298. package/dist/content/citation.d.ts +3 -0
  299. package/dist/content/citation.d.ts.map +1 -1
  300. package/dist/content/citation.js +3 -0
  301. package/dist/content/citation.js.map +1 -1
  302. package/dist/content/comments.d.ts +3 -0
  303. package/dist/content/comments.d.ts.map +1 -0
  304. package/dist/content/comments.js +3 -0
  305. package/dist/content/comments.js.map +1 -0
  306. package/dist/content/contact.d.ts +3 -0
  307. package/dist/content/contact.d.ts.map +1 -0
  308. package/dist/content/contact.js +3 -0
  309. package/dist/content/contact.js.map +1 -0
  310. package/dist/content/document-form.d.ts +195 -0
  311. package/dist/content/document-form.d.ts.map +1 -0
  312. package/dist/content/document-form.js +201 -0
  313. package/dist/content/document-form.js.map +1 -0
  314. package/dist/content/document-kind.d.ts +55 -0
  315. package/dist/content/document-kind.d.ts.map +1 -0
  316. package/dist/content/document-kind.js +30 -0
  317. package/dist/content/document-kind.js.map +1 -0
  318. package/dist/{admin/enclosure-field.d.ts → content/enclosure-form.d.ts} +14 -34
  319. package/dist/content/enclosure-form.d.ts.map +1 -0
  320. package/dist/{admin/enclosure-field.js → content/enclosure-form.js} +39 -76
  321. package/dist/content/enclosure-form.js.map +1 -0
  322. package/dist/content/enclosure.d.ts.map +1 -1
  323. package/dist/content/enclosure.js +3 -4
  324. package/dist/content/enclosure.js.map +1 -1
  325. package/dist/{admin/event-field.d.ts → content/event-form.d.ts} +6 -5
  326. package/dist/content/event-form.d.ts.map +1 -0
  327. package/dist/{admin/event-field.js → content/event-form.js} +45 -12
  328. package/dist/content/event-form.js.map +1 -0
  329. package/dist/content/excerpt.d.ts +25 -0
  330. package/dist/content/excerpt.d.ts.map +1 -0
  331. package/dist/content/excerpt.js +43 -0
  332. package/dist/content/excerpt.js.map +1 -0
  333. package/dist/content/form-error.d.ts +10 -0
  334. package/dist/content/form-error.d.ts.map +1 -0
  335. package/dist/content/form-error.js +2 -0
  336. package/dist/content/form-error.js.map +1 -0
  337. package/dist/{web → content}/guids.d.ts +12 -5
  338. package/dist/content/guids.d.ts.map +1 -0
  339. package/dist/{web → content}/guids.js +28 -5
  340. package/dist/content/guids.js.map +1 -0
  341. package/dist/content/image-tags.d.ts +25 -0
  342. package/dist/content/image-tags.d.ts.map +1 -0
  343. package/dist/content/image-tags.js +55 -0
  344. package/dist/content/image-tags.js.map +1 -0
  345. package/dist/content/index.d.ts +9 -4
  346. package/dist/content/index.d.ts.map +1 -1
  347. package/dist/content/index.js +5 -2
  348. package/dist/content/index.js.map +1 -1
  349. package/dist/content/language.d.ts +19 -0
  350. package/dist/content/language.d.ts.map +1 -0
  351. package/dist/content/language.js +19 -0
  352. package/dist/content/language.js.map +1 -0
  353. package/dist/content/license.d.ts.map +1 -0
  354. package/dist/content/license.js.map +1 -0
  355. package/dist/{web → content}/locale.d.ts +0 -6
  356. package/dist/content/locale.d.ts.map +1 -0
  357. package/dist/{web → content}/locale.js +1 -6
  358. package/dist/content/locale.js.map +1 -0
  359. package/dist/content/location-form.d.ts +17 -0
  360. package/dist/content/location-form.d.ts.map +1 -0
  361. package/dist/{admin/location-field.js → content/location-form.js} +2 -23
  362. package/dist/content/location-form.js.map +1 -0
  363. package/dist/content/location.d.ts.map +1 -1
  364. package/dist/content/location.js +1 -3
  365. package/dist/content/location.js.map +1 -1
  366. package/dist/content/markdown-links.d.ts +11 -0
  367. package/dist/content/markdown-links.d.ts.map +1 -0
  368. package/dist/content/markdown-links.js +223 -0
  369. package/dist/content/markdown-links.js.map +1 -0
  370. package/dist/content/markdown.d.ts +2 -1
  371. package/dist/content/markdown.d.ts.map +1 -1
  372. package/dist/content/markdown.js +1 -1
  373. package/dist/content/markdown.js.map +1 -1
  374. package/dist/content/migrated.js +1 -1
  375. package/dist/content/migrated.js.map +1 -1
  376. package/dist/content/parser.d.ts.map +1 -1
  377. package/dist/content/parser.js +1 -12
  378. package/dist/content/parser.js.map +1 -1
  379. package/dist/content/permalinks.d.ts +34 -0
  380. package/dist/content/permalinks.d.ts.map +1 -0
  381. package/dist/{web/documents.js → content/permalinks.js} +6 -56
  382. package/dist/content/permalinks.js.map +1 -0
  383. package/dist/content/photo-form.d.ts +28 -0
  384. package/dist/content/photo-form.d.ts.map +1 -0
  385. package/dist/{admin/photo-field.js → content/photo-form.js} +36 -36
  386. package/dist/content/photo-form.js.map +1 -0
  387. package/dist/content/photo.d.ts +1 -1
  388. package/dist/content/photo.d.ts.map +1 -1
  389. package/dist/content/photo.js +1 -1
  390. package/dist/content/photo.js.map +1 -1
  391. package/dist/content/post-fields.d.ts +40 -0
  392. package/dist/content/post-fields.d.ts.map +1 -0
  393. package/dist/content/post-fields.js +256 -0
  394. package/dist/content/post-fields.js.map +1 -0
  395. package/dist/{admin/read-field.d.ts → content/read-form.d.ts} +6 -4
  396. package/dist/content/read-form.d.ts.map +1 -0
  397. package/dist/content/read-form.js +99 -0
  398. package/dist/content/read-form.js.map +1 -0
  399. package/dist/content/read.d.ts.map +1 -1
  400. package/dist/content/read.js +7 -11
  401. package/dist/content/read.js.map +1 -1
  402. package/dist/content/redirects.d.ts +84 -0
  403. package/dist/content/redirects.d.ts.map +1 -0
  404. package/dist/content/redirects.js +234 -0
  405. package/dist/content/redirects.js.map +1 -0
  406. package/dist/content/sanitize.d.ts +13 -0
  407. package/dist/content/sanitize.d.ts.map +1 -0
  408. package/dist/{web → content}/sanitize.js +4 -71
  409. package/dist/content/sanitize.js.map +1 -0
  410. package/dist/content/save.d.ts +5 -8
  411. package/dist/content/save.d.ts.map +1 -1
  412. package/dist/content/save.js +5 -26
  413. package/dist/content/save.js.map +1 -1
  414. package/dist/content/schedule.d.ts +2 -2
  415. package/dist/content/schedule.d.ts.map +1 -1
  416. package/dist/content/schedule.js +1 -3
  417. package/dist/content/schedule.js.map +1 -1
  418. package/dist/content/served.d.ts +58 -0
  419. package/dist/content/served.d.ts.map +1 -0
  420. package/dist/content/served.js +65 -0
  421. package/dist/content/served.js.map +1 -0
  422. package/dist/content/site-links.d.ts +72 -0
  423. package/dist/content/site-links.d.ts.map +1 -0
  424. package/dist/content/site-links.js +191 -0
  425. package/dist/content/site-links.js.map +1 -0
  426. package/dist/content/sqlite/archive.d.ts +4 -0
  427. package/dist/content/sqlite/archive.d.ts.map +1 -0
  428. package/dist/content/sqlite/archive.js +96 -0
  429. package/dist/content/sqlite/archive.js.map +1 -0
  430. package/dist/content/sqlite/backlinks.d.ts +4 -0
  431. package/dist/content/sqlite/backlinks.d.ts.map +1 -0
  432. package/dist/content/sqlite/backlinks.js +46 -0
  433. package/dist/content/sqlite/backlinks.js.map +1 -0
  434. package/dist/content/sqlite/catalog.d.ts +4 -0
  435. package/dist/content/sqlite/catalog.d.ts.map +1 -0
  436. package/dist/content/sqlite/catalog.js +62 -0
  437. package/dist/content/sqlite/catalog.js.map +1 -0
  438. package/dist/content/sqlite/clauses.d.ts +57 -0
  439. package/dist/content/sqlite/clauses.d.ts.map +1 -0
  440. package/dist/content/sqlite/clauses.js +76 -0
  441. package/dist/content/sqlite/clauses.js.map +1 -0
  442. package/dist/content/sqlite/database.d.ts +26 -0
  443. package/dist/content/sqlite/database.d.ts.map +1 -0
  444. package/dist/content/sqlite/database.js +27 -0
  445. package/dist/content/sqlite/database.js.map +1 -0
  446. package/dist/content/sqlite/documents.d.ts +12 -0
  447. package/dist/content/sqlite/documents.d.ts.map +1 -0
  448. package/dist/content/sqlite/documents.js +40 -0
  449. package/dist/content/sqlite/documents.js.map +1 -0
  450. package/dist/content/sqlite/lookups.d.ts +6 -0
  451. package/dist/content/sqlite/lookups.d.ts.map +1 -0
  452. package/dist/content/sqlite/lookups.js +25 -0
  453. package/dist/content/sqlite/lookups.js.map +1 -0
  454. package/dist/content/sqlite/open.d.ts +8 -0
  455. package/dist/content/sqlite/open.d.ts.map +1 -0
  456. package/dist/content/sqlite/open.js +63 -0
  457. package/dist/content/sqlite/open.js.map +1 -0
  458. package/dist/content/sqlite/replies.d.ts +4 -0
  459. package/dist/content/sqlite/replies.d.ts.map +1 -0
  460. package/dist/content/sqlite/replies.js +21 -0
  461. package/dist/content/sqlite/replies.js.map +1 -0
  462. package/dist/content/sqlite/rows.d.ts +22 -0
  463. package/dist/content/sqlite/rows.d.ts.map +1 -0
  464. package/dist/content/sqlite/rows.js +93 -0
  465. package/dist/content/sqlite/rows.js.map +1 -0
  466. package/dist/content/sqlite/schedule.d.ts +4 -0
  467. package/dist/content/sqlite/schedule.d.ts.map +1 -0
  468. package/dist/content/sqlite/schedule.js +16 -0
  469. package/dist/content/sqlite/schedule.js.map +1 -0
  470. package/dist/content/sqlite/schema.d.ts +10 -0
  471. package/dist/content/sqlite/schema.d.ts.map +1 -0
  472. package/dist/content/sqlite/schema.js +209 -0
  473. package/dist/content/sqlite/schema.js.map +1 -0
  474. package/dist/content/sqlite/search.d.ts +4 -0
  475. package/dist/content/sqlite/search.d.ts.map +1 -0
  476. package/dist/content/sqlite/search.js +54 -0
  477. package/dist/content/sqlite/search.js.map +1 -0
  478. package/dist/content/sqlite/spellings.d.ts +6 -0
  479. package/dist/content/sqlite/spellings.d.ts.map +1 -0
  480. package/dist/content/sqlite/spellings.js +80 -0
  481. package/dist/content/sqlite/spellings.js.map +1 -0
  482. package/dist/content/sqlite/taxonomy.d.ts +4 -0
  483. package/dist/content/sqlite/taxonomy.d.ts.map +1 -0
  484. package/dist/content/sqlite/taxonomy.js +75 -0
  485. package/dist/content/sqlite/taxonomy.js.map +1 -0
  486. package/dist/content/sqlite/writes.d.ts +9 -0
  487. package/dist/content/sqlite/writes.d.ts.map +1 -0
  488. package/dist/content/sqlite/writes.js +164 -0
  489. package/dist/content/sqlite/writes.js.map +1 -0
  490. package/dist/content/store.d.ts +142 -137
  491. package/dist/content/store.d.ts.map +1 -1
  492. package/dist/content/store.js +0 -1050
  493. package/dist/content/store.js.map +1 -1
  494. package/dist/content/sync.d.ts +12 -4
  495. package/dist/content/sync.d.ts.map +1 -1
  496. package/dist/content/sync.js +24 -41
  497. package/dist/content/sync.js.map +1 -1
  498. package/dist/content/syndicate-to.d.ts +25 -0
  499. package/dist/content/syndicate-to.d.ts.map +1 -0
  500. package/dist/content/syndicate-to.js +8 -0
  501. package/dist/content/syndicate-to.js.map +1 -0
  502. package/dist/{web → content}/taxonomy.d.ts +1 -1
  503. package/dist/content/taxonomy.d.ts.map +1 -0
  504. package/dist/{web → content}/taxonomy.js +2 -2
  505. package/dist/content/taxonomy.js.map +1 -0
  506. package/dist/content/time.d.ts +2 -2
  507. package/dist/content/time.d.ts.map +1 -1
  508. package/dist/content/time.js +3 -3
  509. package/dist/content/time.js.map +1 -1
  510. package/dist/content/trash.d.ts +35 -0
  511. package/dist/content/trash.d.ts.map +1 -0
  512. package/dist/content/trash.js +83 -0
  513. package/dist/content/trash.js.map +1 -0
  514. package/dist/content/uploads.d.ts +24 -0
  515. package/dist/content/uploads.d.ts.map +1 -0
  516. package/dist/content/uploads.js +27 -0
  517. package/dist/content/uploads.js.map +1 -0
  518. package/dist/content/video.d.ts.map +1 -1
  519. package/dist/content/video.js +3 -5
  520. package/dist/content/video.js.map +1 -1
  521. package/dist/content/write.d.ts +84 -0
  522. package/dist/content/write.d.ts.map +1 -0
  523. package/dist/content/write.js +566 -0
  524. package/dist/content/write.js.map +1 -0
  525. package/dist/content/writer.d.ts.map +1 -1
  526. package/dist/content/writer.js +1 -2
  527. package/dist/content/writer.js.map +1 -1
  528. package/dist/dev-mode.d.ts +5 -3
  529. package/dist/dev-mode.d.ts.map +1 -1
  530. package/dist/dev-mode.js +3 -3
  531. package/dist/dev-mode.js.map +1 -1
  532. package/dist/drain.d.ts +2 -3
  533. package/dist/drain.d.ts.map +1 -1
  534. package/dist/drain.js +2 -1
  535. package/dist/drain.js.map +1 -1
  536. package/dist/exports.d.ts +26 -0
  537. package/dist/exports.d.ts.map +1 -0
  538. package/dist/exports.js +8 -0
  539. package/dist/exports.js.map +1 -0
  540. package/dist/federation/actor.d.ts +1 -1
  541. package/dist/federation/actor.d.ts.map +1 -1
  542. package/dist/federation/actor.js +6 -13
  543. package/dist/federation/actor.js.map +1 -1
  544. package/dist/federation/article.d.ts +4 -14
  545. package/dist/federation/article.d.ts.map +1 -1
  546. package/dist/federation/article.js +19 -32
  547. package/dist/federation/article.js.map +1 -1
  548. package/dist/federation/backfill.d.ts +4 -4
  549. package/dist/federation/backfill.d.ts.map +1 -1
  550. package/dist/federation/backfill.js +7 -10
  551. package/dist/federation/backfill.js.map +1 -1
  552. package/dist/federation/citations.d.ts.map +1 -1
  553. package/dist/federation/citations.js.map +1 -1
  554. package/dist/federation/cited-post.d.ts.map +1 -1
  555. package/dist/federation/cited-post.js +2 -4
  556. package/dist/federation/cited-post.js.map +1 -1
  557. package/dist/federation/delivery-plan.d.ts +85 -0
  558. package/dist/federation/delivery-plan.d.ts.map +1 -0
  559. package/dist/federation/delivery-plan.js +137 -0
  560. package/dist/federation/delivery-plan.js.map +1 -0
  561. package/dist/federation/delivery.d.ts +7 -32
  562. package/dist/federation/delivery.d.ts.map +1 -1
  563. package/dist/federation/delivery.js +64 -201
  564. package/dist/federation/delivery.js.map +1 -1
  565. package/dist/federation/federation.d.ts +5 -5
  566. package/dist/federation/federation.d.ts.map +1 -1
  567. package/dist/federation/federation.js +7 -6
  568. package/dist/federation/federation.js.map +1 -1
  569. package/dist/federation/followers.d.ts +1 -1
  570. package/dist/federation/followers.d.ts.map +1 -1
  571. package/dist/federation/inbox.d.ts +1 -1
  572. package/dist/federation/inbox.d.ts.map +1 -1
  573. package/dist/federation/inbox.js +5 -4
  574. package/dist/federation/inbox.js.map +1 -1
  575. package/dist/federation/index.d.ts +10 -8
  576. package/dist/federation/index.d.ts.map +1 -1
  577. package/dist/federation/index.js +7 -5
  578. package/dist/federation/index.js.map +1 -1
  579. package/dist/federation/keys.d.ts +8 -27
  580. package/dist/federation/keys.d.ts.map +1 -1
  581. package/dist/federation/keys.js +4 -47
  582. package/dist/federation/keys.js.map +1 -1
  583. package/dist/federation/mount.d.ts +2 -2
  584. package/dist/federation/mount.d.ts.map +1 -1
  585. package/dist/federation/mount.js +9 -7
  586. package/dist/federation/mount.js.map +1 -1
  587. package/dist/federation/paths.d.ts +1 -9
  588. package/dist/federation/paths.d.ts.map +1 -1
  589. package/dist/federation/paths.js +2 -12
  590. package/dist/federation/paths.js.map +1 -1
  591. package/dist/federation/profiles.d.ts +1 -1
  592. package/dist/federation/profiles.d.ts.map +1 -1
  593. package/dist/federation/profiles.js +5 -8
  594. package/dist/federation/profiles.js.map +1 -1
  595. package/dist/federation/quotes.d.ts +2 -2
  596. package/dist/federation/quotes.d.ts.map +1 -1
  597. package/dist/federation/quotes.js +4 -4
  598. package/dist/federation/quotes.js.map +1 -1
  599. package/dist/federation/records.d.ts +2 -2
  600. package/dist/federation/records.d.ts.map +1 -1
  601. package/dist/federation/records.js +12 -19
  602. package/dist/federation/records.js.map +1 -1
  603. package/dist/federation/relays.d.ts +2 -3
  604. package/dist/federation/relays.d.ts.map +1 -1
  605. package/dist/federation/relays.js +22 -30
  606. package/dist/federation/relays.js.map +1 -1
  607. package/dist/federation/site-loaders.js +1 -1
  608. package/dist/federation/site-loaders.js.map +1 -1
  609. package/dist/federation/webfinger.d.ts +23 -0
  610. package/dist/federation/webfinger.d.ts.map +1 -0
  611. package/dist/federation/webfinger.js +70 -0
  612. package/dist/federation/webfinger.js.map +1 -0
  613. package/dist/files/atomic.d.ts.map +1 -1
  614. package/dist/files/atomic.js +4 -9
  615. package/dist/files/atomic.js.map +1 -1
  616. package/dist/files/static-files.d.ts +21 -0
  617. package/dist/files/static-files.d.ts.map +1 -0
  618. package/dist/files/static-files.js +88 -0
  619. package/dist/files/static-files.js.map +1 -0
  620. package/dist/forms/checker.d.ts +93 -0
  621. package/dist/forms/checker.d.ts.map +1 -0
  622. package/dist/forms/checker.js +2 -0
  623. package/dist/forms/checker.js.map +1 -0
  624. package/dist/forms/protection.d.ts +3 -1
  625. package/dist/forms/protection.d.ts.map +1 -1
  626. package/dist/forms/protection.js +3 -1
  627. package/dist/forms/protection.js.map +1 -1
  628. package/dist/images/icons.js +2 -2
  629. package/dist/images/icons.js.map +1 -1
  630. package/dist/images/index.d.ts +2 -1
  631. package/dist/images/index.d.ts.map +1 -1
  632. package/dist/images/index.js +2 -1
  633. package/dist/images/index.js.map +1 -1
  634. package/dist/images/markup.d.ts +0 -20
  635. package/dist/images/markup.d.ts.map +1 -1
  636. package/dist/images/markup.js +5 -64
  637. package/dist/images/markup.js.map +1 -1
  638. package/dist/images/paths.d.ts +0 -10
  639. package/dist/images/paths.d.ts.map +1 -1
  640. package/dist/images/paths.js +3 -11
  641. package/dist/images/paths.js.map +1 -1
  642. package/dist/images/variants.d.ts +2 -2
  643. package/dist/images/variants.d.ts.map +1 -1
  644. package/dist/images/variants.js +4 -3
  645. package/dist/images/variants.js.map +1 -1
  646. package/dist/index.d.ts +3 -291
  647. package/dist/index.d.ts.map +1 -1
  648. package/dist/index.js +2 -839
  649. package/dist/index.js.map +1 -1
  650. package/dist/indexnow.d.ts.map +1 -1
  651. package/dist/indexnow.js +21 -26
  652. package/dist/indexnow.js.map +1 -1
  653. package/dist/indieauth/client.d.ts +1 -1
  654. package/dist/indieauth/client.d.ts.map +1 -1
  655. package/dist/indieauth/client.js +1 -1
  656. package/dist/indieauth/client.js.map +1 -1
  657. package/dist/indieauth/grants.d.ts +1 -1
  658. package/dist/indieauth/grants.d.ts.map +1 -1
  659. package/dist/indieauth/identity.d.ts +2 -2
  660. package/dist/indieauth/identity.d.ts.map +1 -1
  661. package/dist/indieauth/identity.js +5 -7
  662. package/dist/indieauth/identity.js.map +1 -1
  663. package/dist/indieauth/redeem.d.ts +1 -1
  664. package/dist/indieauth/redeem.d.ts.map +1 -1
  665. package/dist/indieauth/redeem.js.map +1 -1
  666. package/dist/indieauth/request.d.ts +5 -1
  667. package/dist/indieauth/request.d.ts.map +1 -1
  668. package/dist/indieauth/request.js +6 -2
  669. package/dist/indieauth/request.js.map +1 -1
  670. package/dist/indieauth/tokens.d.ts +1 -1
  671. package/dist/indieauth/tokens.d.ts.map +1 -1
  672. package/dist/indieauth/tokens.js +2 -2
  673. package/dist/indieauth/tokens.js.map +1 -1
  674. package/dist/mail/index.d.ts +1 -5
  675. package/dist/mail/index.d.ts.map +1 -1
  676. package/dist/mail/index.js +0 -2
  677. package/dist/mail/index.js.map +1 -1
  678. package/dist/mail/provider.d.ts +7 -0
  679. package/dist/mail/provider.d.ts.map +1 -1
  680. package/dist/maintenance.d.ts +1 -1
  681. package/dist/maintenance.d.ts.map +1 -1
  682. package/dist/media/library.d.ts +99 -0
  683. package/dist/media/library.d.ts.map +1 -0
  684. package/dist/media/library.js +157 -0
  685. package/dist/media/library.js.map +1 -0
  686. package/dist/media/uploads.d.ts +106 -0
  687. package/dist/media/uploads.d.ts.map +1 -0
  688. package/dist/media/uploads.js +192 -0
  689. package/dist/media/uploads.js.map +1 -0
  690. package/dist/micropub/content.js +1 -1
  691. package/dist/micropub/content.js.map +1 -1
  692. package/dist/micropub/create.d.ts +7 -15
  693. package/dist/micropub/create.d.ts.map +1 -1
  694. package/dist/micropub/create.js +48 -184
  695. package/dist/micropub/create.js.map +1 -1
  696. package/dist/micropub/endpoint.d.ts +2 -2
  697. package/dist/micropub/endpoint.d.ts.map +1 -1
  698. package/dist/micropub/endpoint.js +29 -40
  699. package/dist/micropub/endpoint.js.map +1 -1
  700. package/dist/micropub/media.d.ts +1 -1
  701. package/dist/micropub/media.d.ts.map +1 -1
  702. package/dist/micropub/media.js +6 -6
  703. package/dist/micropub/media.js.map +1 -1
  704. package/dist/micropub/update.d.ts +6 -14
  705. package/dist/micropub/update.d.ts.map +1 -1
  706. package/dist/micropub/update.js +37 -90
  707. package/dist/micropub/update.js.map +1 -1
  708. package/dist/notifications/comments.d.ts +4 -4
  709. package/dist/notifications/comments.d.ts.map +1 -1
  710. package/dist/notifications/comments.js +6 -14
  711. package/dist/notifications/comments.js.map +1 -1
  712. package/dist/notifications/digest.d.ts +4 -4
  713. package/dist/notifications/digest.d.ts.map +1 -1
  714. package/dist/notifications/digest.js +6 -16
  715. package/dist/notifications/digest.js.map +1 -1
  716. package/dist/notifications/index.d.ts +6 -3
  717. package/dist/notifications/index.d.ts.map +1 -1
  718. package/dist/notifications/index.js +3 -2
  719. package/dist/notifications/index.js.map +1 -1
  720. package/dist/notifications/links.d.ts.map +1 -1
  721. package/dist/notifications/links.js +2 -2
  722. package/dist/notifications/links.js.map +1 -1
  723. package/dist/{mail/service.d.ts → notifications/mail-service.d.ts} +7 -13
  724. package/dist/notifications/mail-service.d.ts.map +1 -0
  725. package/dist/{mail/service.js → notifications/mail-service.js} +33 -54
  726. package/dist/notifications/mail-service.js.map +1 -0
  727. package/dist/{mail/templates.d.ts → notifications/mail-templates.d.ts} +4 -2
  728. package/dist/notifications/mail-templates.d.ts.map +1 -0
  729. package/dist/{mail/templates.js → notifications/mail-templates.js} +5 -3
  730. package/dist/notifications/mail-templates.js.map +1 -0
  731. package/dist/notifications/tokens.d.ts +2 -2
  732. package/dist/notifications/tokens.d.ts.map +1 -1
  733. package/dist/notifications/tokens.js +2 -2
  734. package/dist/notifications/tokens.js.map +1 -1
  735. package/dist/notify.d.ts.map +1 -1
  736. package/dist/notify.js +12 -24
  737. package/dist/notify.js.map +1 -1
  738. package/dist/plugin.d.ts +23 -3
  739. package/dist/plugin.d.ts.map +1 -1
  740. package/dist/plugin.js +21 -3
  741. package/dist/plugin.js.map +1 -1
  742. package/dist/plugins/enabled.d.ts.map +1 -1
  743. package/dist/plugins/enabled.js +2 -4
  744. package/dist/plugins/enabled.js.map +1 -1
  745. package/dist/plugins/fetch.d.ts +1 -1
  746. package/dist/plugins/fetch.d.ts.map +1 -1
  747. package/dist/plugins/fetch.js +1 -1
  748. package/dist/plugins/fetch.js.map +1 -1
  749. package/dist/plugins/folder.d.ts.map +1 -1
  750. package/dist/plugins/folder.js +1 -3
  751. package/dist/plugins/folder.js.map +1 -1
  752. package/dist/plugins/install.d.ts.map +1 -1
  753. package/dist/plugins/install.js +7 -3
  754. package/dist/plugins/install.js.map +1 -1
  755. package/dist/plugins/manage.d.ts +1 -1
  756. package/dist/plugins/manage.d.ts.map +1 -1
  757. package/dist/plugins/registry.d.ts.map +1 -1
  758. package/dist/plugins/registry.js +7 -9
  759. package/dist/plugins/registry.js.map +1 -1
  760. package/dist/plugins/settings.d.ts.map +1 -1
  761. package/dist/plugins/settings.js +2 -3
  762. package/dist/plugins/settings.js.map +1 -1
  763. package/dist/plugins/site.d.ts +1 -1
  764. package/dist/plugins/site.d.ts.map +1 -1
  765. package/dist/plugins/site.js +4 -4
  766. package/dist/plugins/site.js.map +1 -1
  767. package/dist/plugins/upgrade.d.ts.map +1 -1
  768. package/dist/plugins/upgrade.js +4 -3
  769. package/dist/plugins/upgrade.js.map +1 -1
  770. package/dist/privacy/erase.d.ts +1 -1
  771. package/dist/privacy/erase.d.ts.map +1 -1
  772. package/dist/privacy/retention.d.ts +2 -2
  773. package/dist/privacy/retention.d.ts.map +1 -1
  774. package/dist/privacy/retention.js +9 -11
  775. package/dist/privacy/retention.js.map +1 -1
  776. package/dist/site/admin-paths.d.ts +23 -0
  777. package/dist/site/admin-paths.d.ts.map +1 -0
  778. package/dist/site/admin-paths.js +25 -0
  779. package/dist/site/admin-paths.js.map +1 -0
  780. package/dist/site/admin-theme.d.ts.map +1 -0
  781. package/dist/site/admin-theme.js.map +1 -0
  782. package/dist/{web → site}/authors.d.ts +1 -72
  783. package/dist/site/authors.d.ts.map +1 -0
  784. package/dist/site/authors.js +107 -0
  785. package/dist/site/authors.js.map +1 -0
  786. package/dist/site/feed-settings.d.ts +28 -0
  787. package/dist/site/feed-settings.d.ts.map +1 -0
  788. package/dist/site/feed-settings.js +22 -0
  789. package/dist/site/feed-settings.js.map +1 -0
  790. package/dist/{web/indexnow.d.ts → site/indexnow-key.d.ts} +1 -1
  791. package/dist/site/indexnow-key.d.ts.map +1 -0
  792. package/dist/{web/indexnow.js → site/indexnow-key.js} +1 -1
  793. package/dist/site/indexnow-key.js.map +1 -0
  794. package/dist/{web → site}/navigation.d.ts +7 -1
  795. package/dist/site/navigation.d.ts.map +1 -0
  796. package/dist/{web → site}/navigation.js +18 -0
  797. package/dist/site/navigation.js.map +1 -0
  798. package/dist/{notifications/preferences.d.ts → site/notification-preferences.d.ts} +2 -2
  799. package/dist/site/notification-preferences.d.ts.map +1 -0
  800. package/dist/{notifications/preferences.js → site/notification-preferences.js} +1 -1
  801. package/dist/site/notification-preferences.js.map +1 -0
  802. package/dist/site/passwords.d.ts.map +1 -0
  803. package/dist/site/passwords.js.map +1 -0
  804. package/dist/{privacy/policy.d.ts → site/retention-policy.d.ts} +1 -1
  805. package/dist/site/retention-policy.d.ts.map +1 -0
  806. package/dist/{privacy/policy.js → site/retention-policy.js} +1 -1
  807. package/dist/site/retention-policy.js.map +1 -0
  808. package/dist/site/robots.d.ts +62 -0
  809. package/dist/site/robots.d.ts.map +1 -0
  810. package/dist/site/robots.js +130 -0
  811. package/dist/site/robots.js.map +1 -0
  812. package/dist/site/setting-rows.d.ts +46 -0
  813. package/dist/site/setting-rows.d.ts.map +1 -0
  814. package/dist/site/setting-rows.js +480 -0
  815. package/dist/site/setting-rows.js.map +1 -0
  816. package/dist/site/setting-values.d.ts +63 -0
  817. package/dist/site/setting-values.d.ts.map +1 -0
  818. package/dist/site/setting-values.js +170 -0
  819. package/dist/site/setting-values.js.map +1 -0
  820. package/dist/site/settings-form.d.ts +30 -0
  821. package/dist/site/settings-form.d.ts.map +1 -0
  822. package/dist/site/settings-form.js +58 -0
  823. package/dist/site/settings-form.js.map +1 -0
  824. package/dist/site/settings.d.ts +345 -0
  825. package/dist/site/settings.d.ts.map +1 -0
  826. package/dist/site/settings.js +107 -0
  827. package/dist/site/settings.js.map +1 -0
  828. package/dist/site/site-json.d.ts +69 -0
  829. package/dist/site/site-json.d.ts.map +1 -0
  830. package/dist/site/site-json.js +113 -0
  831. package/dist/site/site-json.js.map +1 -0
  832. package/dist/{admin/accounts.d.ts → site/users.d.ts} +25 -41
  833. package/dist/site/users.d.ts.map +1 -0
  834. package/dist/{admin/accounts.js → site/users.js} +49 -155
  835. package/dist/site/users.js.map +1 -0
  836. package/dist/store/admin-store.d.ts +72 -0
  837. package/dist/store/admin-store.d.ts.map +1 -0
  838. package/dist/store/admin-store.js +62 -0
  839. package/dist/store/admin-store.js.map +1 -0
  840. package/dist/store/comments.d.ts +253 -0
  841. package/dist/store/comments.d.ts.map +1 -0
  842. package/dist/store/comments.js +234 -0
  843. package/dist/store/comments.js.map +1 -0
  844. package/dist/store/conversation.d.ts +28 -0
  845. package/dist/store/conversation.d.ts.map +1 -0
  846. package/dist/store/conversation.js +16 -0
  847. package/dist/store/conversation.js.map +1 -0
  848. package/dist/store/deliveries.d.ts +92 -0
  849. package/dist/store/deliveries.d.ts.map +1 -0
  850. package/dist/store/deliveries.js +88 -0
  851. package/dist/store/deliveries.js.map +1 -0
  852. package/dist/store/followers.d.ts +91 -0
  853. package/dist/store/followers.d.ts.map +1 -0
  854. package/dist/store/followers.js +79 -0
  855. package/dist/store/followers.js.map +1 -0
  856. package/dist/{federation/replies.d.ts → store/inbox-replies.d.ts} +2 -2
  857. package/dist/store/inbox-replies.d.ts.map +1 -0
  858. package/dist/{federation/replies.js → store/inbox-replies.js} +2 -4
  859. package/dist/store/inbox-replies.js.map +1 -0
  860. package/dist/store/inbox.d.ts +132 -0
  861. package/dist/store/inbox.d.ts.map +1 -0
  862. package/dist/store/inbox.js +157 -0
  863. package/dist/store/inbox.js.map +1 -0
  864. package/dist/store/profiles.d.ts +49 -0
  865. package/dist/store/profiles.d.ts.map +1 -0
  866. package/dist/store/profiles.js +71 -0
  867. package/dist/store/profiles.js.map +1 -0
  868. package/dist/store/relays.d.ts +66 -0
  869. package/dist/store/relays.d.ts.map +1 -0
  870. package/dist/store/relays.js +69 -0
  871. package/dist/store/relays.js.map +1 -0
  872. package/dist/store/rows.d.ts +33 -0
  873. package/dist/store/rows.d.ts.map +1 -0
  874. package/dist/store/rows.js +44 -0
  875. package/dist/store/rows.js.map +1 -0
  876. package/dist/store/schema.d.ts +14 -0
  877. package/dist/store/schema.d.ts.map +1 -0
  878. package/dist/store/schema.js +588 -0
  879. package/dist/store/schema.js.map +1 -0
  880. package/dist/store/sessions.d.ts +90 -0
  881. package/dist/store/sessions.d.ts.map +1 -0
  882. package/dist/store/sessions.js +107 -0
  883. package/dist/store/sessions.js.map +1 -0
  884. package/dist/store/state.d.ts +18 -0
  885. package/dist/store/state.d.ts.map +1 -0
  886. package/dist/store/state.js +19 -0
  887. package/dist/store/state.js.map +1 -0
  888. package/dist/store/tokens.d.ts +75 -0
  889. package/dist/store/tokens.d.ts.map +1 -0
  890. package/dist/store/tokens.js +82 -0
  891. package/dist/store/tokens.js.map +1 -0
  892. package/dist/store/webmentions.d.ts +66 -0
  893. package/dist/store/webmentions.d.ts.map +1 -0
  894. package/dist/store/webmentions.js +84 -0
  895. package/dist/store/webmentions.js.map +1 -0
  896. package/dist/supervisor/primary.d.ts +1 -1
  897. package/dist/supervisor/primary.d.ts.map +1 -1
  898. package/dist/supervisor/primary.js +31 -11
  899. package/dist/supervisor/primary.js.map +1 -1
  900. package/dist/supervisor/worker.d.ts +6 -2
  901. package/dist/supervisor/worker.d.ts.map +1 -1
  902. package/dist/supervisor/worker.js +4 -4
  903. package/dist/supervisor/worker.js.map +1 -1
  904. package/dist/testing.d.ts +8 -0
  905. package/dist/testing.d.ts.map +1 -0
  906. package/dist/testing.js +6 -0
  907. package/dist/testing.js.map +1 -0
  908. package/dist/{web → theme}/assets.d.ts +1 -32
  909. package/dist/theme/assets.d.ts.map +1 -0
  910. package/dist/{web → theme}/assets.js +2 -100
  911. package/dist/theme/assets.js.map +1 -0
  912. package/dist/theme/site-data.d.ts +187 -0
  913. package/dist/theme/site-data.d.ts.map +1 -0
  914. package/dist/theme/site-data.js +160 -0
  915. package/dist/theme/site-data.js.map +1 -0
  916. package/dist/{web → theme}/templates.d.ts +2 -0
  917. package/dist/theme/templates.d.ts.map +1 -0
  918. package/dist/{web → theme}/templates.js +9 -32
  919. package/dist/theme/templates.js.map +1 -0
  920. package/dist/{web → theme}/themes.d.ts +1 -0
  921. package/dist/theme/themes.d.ts.map +1 -0
  922. package/dist/{web → theme}/themes.js +6 -3
  923. package/dist/theme/themes.js.map +1 -0
  924. package/dist/util/client-id.d.ts.map +1 -0
  925. package/dist/util/client-id.js.map +1 -0
  926. package/dist/util/clock.d.ts +9 -0
  927. package/dist/util/clock.d.ts.map +1 -0
  928. package/dist/util/clock.js +2 -0
  929. package/dist/util/clock.js.map +1 -0
  930. package/dist/util/errors.d.ts +3 -0
  931. package/dist/util/errors.d.ts.map +1 -0
  932. package/dist/util/errors.js +5 -0
  933. package/dist/util/errors.js.map +1 -0
  934. package/dist/util/files.d.ts +5 -0
  935. package/dist/util/files.d.ts.map +1 -0
  936. package/dist/util/files.js +38 -0
  937. package/dist/util/files.js.map +1 -0
  938. package/dist/util/forms.d.ts +5 -0
  939. package/dist/util/forms.d.ts.map +1 -0
  940. package/dist/util/forms.js +17 -0
  941. package/dist/util/forms.js.map +1 -0
  942. package/dist/util/guards.d.ts +4 -0
  943. package/dist/util/guards.d.ts.map +1 -0
  944. package/dist/util/guards.js +12 -0
  945. package/dist/util/guards.js.map +1 -0
  946. package/dist/{webmention/html.d.ts → util/html-tree.d.ts} +2 -2
  947. package/dist/util/html-tree.d.ts.map +1 -0
  948. package/dist/{webmention/html.js → util/html-tree.js} +3 -64
  949. package/dist/util/html-tree.js.map +1 -0
  950. package/dist/util/html.d.ts +4 -0
  951. package/dist/util/html.d.ts.map +1 -0
  952. package/dist/util/html.js +34 -0
  953. package/dist/util/html.js.map +1 -0
  954. package/dist/util/public-address.d.ts.map +1 -0
  955. package/dist/util/public-address.js.map +1 -0
  956. package/dist/util/queue.d.ts +7 -0
  957. package/dist/util/queue.d.ts.map +1 -0
  958. package/dist/util/queue.js +23 -0
  959. package/dist/util/queue.js.map +1 -0
  960. package/dist/util/retry.d.ts +11 -0
  961. package/dist/util/retry.d.ts.map +1 -0
  962. package/dist/util/retry.js +14 -0
  963. package/dist/util/retry.js.map +1 -0
  964. package/dist/util/url.d.ts +11 -0
  965. package/dist/util/url.d.ts.map +1 -0
  966. package/dist/util/url.js +20 -0
  967. package/dist/util/url.js.map +1 -0
  968. package/dist/web/absolute-urls.js +1 -1
  969. package/dist/web/absolute-urls.js.map +1 -1
  970. package/dist/web/archive.js +2 -2
  971. package/dist/web/archive.js.map +1 -1
  972. package/dist/web/asset-routes.d.ts +48 -0
  973. package/dist/web/asset-routes.d.ts.map +1 -0
  974. package/dist/web/asset-routes.js +107 -0
  975. package/dist/web/asset-routes.js.map +1 -0
  976. package/dist/{avatars/routes.d.ts → web/avatar-routes.d.ts} +2 -2
  977. package/dist/web/avatar-routes.d.ts.map +1 -0
  978. package/dist/{avatars/routes.js → web/avatar-routes.js} +3 -3
  979. package/dist/web/avatar-routes.js.map +1 -0
  980. package/dist/web/comment-routes.d.ts +18 -0
  981. package/dist/web/comment-routes.d.ts.map +1 -0
  982. package/dist/web/comment-routes.js +177 -0
  983. package/dist/web/comment-routes.js.map +1 -0
  984. package/dist/web/compression.d.ts.map +1 -1
  985. package/dist/web/compression.js +1 -2
  986. package/dist/web/compression.js.map +1 -1
  987. package/dist/{contact/routes.d.ts → web/contact-routes.d.ts} +2 -2
  988. package/dist/web/contact-routes.d.ts.map +1 -0
  989. package/dist/{contact/routes.js → web/contact-routes.js} +14 -17
  990. package/dist/web/contact-routes.js.map +1 -0
  991. package/dist/web/context.d.ts +1 -187
  992. package/dist/web/context.d.ts.map +1 -1
  993. package/dist/web/context.js +5 -171
  994. package/dist/web/context.js.map +1 -1
  995. package/dist/web/conversation.d.ts +5 -356
  996. package/dist/web/conversation.d.ts.map +1 -1
  997. package/dist/web/conversation.js +165 -136
  998. package/dist/web/conversation.js.map +1 -1
  999. package/dist/web/document-page.d.ts +13 -0
  1000. package/dist/web/document-page.d.ts.map +1 -0
  1001. package/dist/web/document-page.js +136 -0
  1002. package/dist/web/document-page.js.map +1 -0
  1003. package/dist/web/document-site.d.ts +14 -0
  1004. package/dist/web/document-site.d.ts.map +1 -0
  1005. package/dist/web/document-site.js +28 -0
  1006. package/dist/web/document-site.js.map +1 -0
  1007. package/dist/web/embed.d.ts +13 -0
  1008. package/dist/web/embed.d.ts.map +1 -0
  1009. package/dist/web/embed.js +66 -0
  1010. package/dist/web/embed.js.map +1 -0
  1011. package/dist/{env.d.ts → web/env.d.ts} +27 -26
  1012. package/dist/web/env.d.ts.map +1 -0
  1013. package/dist/web/env.js.map +1 -0
  1014. package/dist/web/federation-routes.d.ts +33 -0
  1015. package/dist/web/federation-routes.d.ts.map +1 -0
  1016. package/dist/web/federation-routes.js +280 -0
  1017. package/dist/web/federation-routes.js.map +1 -0
  1018. package/dist/web/feed-atom.d.ts.map +1 -1
  1019. package/dist/web/feed-atom.js +4 -3
  1020. package/dist/web/feed-atom.js.map +1 -1
  1021. package/dist/web/feed-item.d.ts +4 -39
  1022. package/dist/web/feed-item.d.ts.map +1 -1
  1023. package/dist/web/feed-item.js +8 -72
  1024. package/dist/web/feed-item.js.map +1 -1
  1025. package/dist/web/feed-json.js +2 -2
  1026. package/dist/web/feed-json.js.map +1 -1
  1027. package/dist/web/feed-routes.d.ts +36 -0
  1028. package/dist/web/feed-routes.d.ts.map +1 -0
  1029. package/dist/web/feed-routes.js +124 -0
  1030. package/dist/web/feed-routes.js.map +1 -0
  1031. package/dist/web/feed-rss.d.ts.map +1 -1
  1032. package/dist/web/feed-rss.js +9 -6
  1033. package/dist/web/feed-rss.js.map +1 -1
  1034. package/dist/web/feed-source.d.ts +11 -41
  1035. package/dist/web/feed-source.d.ts.map +1 -1
  1036. package/dist/web/feed-source.js +11 -48
  1037. package/dist/web/feed-source.js.map +1 -1
  1038. package/dist/web/feeds.d.ts +4 -2
  1039. package/dist/web/feeds.d.ts.map +1 -1
  1040. package/dist/web/feeds.js +8 -5
  1041. package/dist/web/feeds.js.map +1 -1
  1042. package/dist/web/health.d.ts +1 -1
  1043. package/dist/web/health.d.ts.map +1 -1
  1044. package/dist/web/index.d.ts +53 -29
  1045. package/dist/web/index.d.ts.map +1 -1
  1046. package/dist/web/index.js +37 -18
  1047. package/dist/web/index.js.map +1 -1
  1048. package/dist/{indieauth/activity-log.d.ts → web/indieauth-activity-log.d.ts} +3 -3
  1049. package/dist/web/indieauth-activity-log.d.ts.map +1 -0
  1050. package/dist/{indieauth/activity-log.js → web/indieauth-activity-log.js} +5 -6
  1051. package/dist/web/indieauth-activity-log.js.map +1 -0
  1052. package/dist/{indieauth/bearer.d.ts → web/indieauth-bearer.d.ts} +5 -5
  1053. package/dist/web/indieauth-bearer.d.ts.map +1 -0
  1054. package/dist/{indieauth/bearer.js → web/indieauth-bearer.js} +4 -4
  1055. package/dist/web/indieauth-bearer.js.map +1 -0
  1056. package/dist/{indieauth/discovery.d.ts → web/indieauth-discovery.d.ts} +2 -7
  1057. package/dist/web/indieauth-discovery.d.ts.map +1 -0
  1058. package/dist/{indieauth/discovery.js → web/indieauth-discovery.js} +6 -9
  1059. package/dist/web/indieauth-discovery.js.map +1 -0
  1060. package/dist/{indieauth/token.d.ts → web/indieauth-token.d.ts} +2 -2
  1061. package/dist/web/indieauth-token.d.ts.map +1 -0
  1062. package/dist/{indieauth/token.js → web/indieauth-token.js} +7 -7
  1063. package/dist/web/indieauth-token.js.map +1 -0
  1064. package/dist/web/listing-pages.d.ts +19 -0
  1065. package/dist/web/listing-pages.d.ts.map +1 -0
  1066. package/dist/web/listing-pages.js +148 -0
  1067. package/dist/web/listing-pages.js.map +1 -0
  1068. package/dist/web/listing-subject.d.ts +58 -0
  1069. package/dist/web/listing-subject.d.ts.map +1 -0
  1070. package/dist/web/listing-subject.js +89 -0
  1071. package/dist/web/listing-subject.js.map +1 -0
  1072. package/dist/web/llms.d.ts +16 -15
  1073. package/dist/web/llms.d.ts.map +1 -1
  1074. package/dist/web/llms.js +23 -35
  1075. package/dist/web/llms.js.map +1 -1
  1076. package/dist/web/maintenance.d.ts +1 -1
  1077. package/dist/web/maintenance.d.ts.map +1 -1
  1078. package/dist/web/maintenance.js +7 -13
  1079. package/dist/web/maintenance.js.map +1 -1
  1080. package/dist/web/manifest.d.ts +1 -1
  1081. package/dist/web/manifest.d.ts.map +1 -1
  1082. package/dist/web/manifest.js +2 -1
  1083. package/dist/web/manifest.js.map +1 -1
  1084. package/dist/web/markdown-page.d.ts +76 -0
  1085. package/dist/web/markdown-page.d.ts.map +1 -0
  1086. package/dist/web/markdown-page.js +79 -0
  1087. package/dist/web/markdown-page.js.map +1 -0
  1088. package/dist/web/markdown-representation.d.ts +15 -0
  1089. package/dist/web/markdown-representation.d.ts.map +1 -0
  1090. package/dist/web/markdown-representation.js +130 -0
  1091. package/dist/web/markdown-representation.js.map +1 -0
  1092. package/dist/web/negotiate.d.ts +5 -12
  1093. package/dist/web/negotiate.d.ts.map +1 -1
  1094. package/dist/web/negotiate.js +11 -18
  1095. package/dist/web/negotiate.js.map +1 -1
  1096. package/dist/{notifications/routes.d.ts → web/notification-routes.d.ts} +2 -2
  1097. package/dist/web/notification-routes.d.ts.map +1 -0
  1098. package/dist/{notifications/routes.js → web/notification-routes.js} +24 -29
  1099. package/dist/web/notification-routes.js.map +1 -0
  1100. package/dist/web/oembed.d.ts +2 -2
  1101. package/dist/web/oembed.d.ts.map +1 -1
  1102. package/dist/web/oembed.js +5 -4
  1103. package/dist/web/oembed.js.map +1 -1
  1104. package/dist/web/opensearch.d.ts.map +1 -1
  1105. package/dist/web/opensearch.js +2 -1
  1106. package/dist/web/opensearch.js.map +1 -1
  1107. package/dist/web/page-sources.d.ts +15 -0
  1108. package/dist/web/page-sources.d.ts.map +1 -0
  1109. package/dist/web/page-sources.js +44 -0
  1110. package/dist/web/page-sources.js.map +1 -0
  1111. package/dist/web/pagination.d.ts +1 -0
  1112. package/dist/web/pagination.d.ts.map +1 -1
  1113. package/dist/web/pagination.js +4 -1
  1114. package/dist/web/pagination.js.map +1 -1
  1115. package/dist/web/paths.d.ts +52 -0
  1116. package/dist/web/paths.d.ts.map +1 -0
  1117. package/dist/web/paths.js +208 -0
  1118. package/dist/web/paths.js.map +1 -0
  1119. package/dist/web/pingback-routes.d.ts +5 -0
  1120. package/dist/web/pingback-routes.d.ts.map +1 -0
  1121. package/dist/web/pingback-routes.js +100 -0
  1122. package/dist/web/pingback-routes.js.map +1 -0
  1123. package/dist/{plugins/federation.d.ts → web/plugin-federation.d.ts} +3 -3
  1124. package/dist/web/plugin-federation.d.ts.map +1 -0
  1125. package/dist/{plugins/federation.js → web/plugin-federation.js} +5 -5
  1126. package/dist/web/plugin-federation.js.map +1 -0
  1127. package/dist/{plugins/mount.d.ts → web/plugin-routes.d.ts} +3 -3
  1128. package/dist/web/plugin-routes.d.ts.map +1 -0
  1129. package/dist/{plugins/mount.js → web/plugin-routes.js} +2 -2
  1130. package/dist/web/plugin-routes.js.map +1 -0
  1131. package/dist/web/redirects.d.ts +1 -84
  1132. package/dist/web/redirects.d.ts.map +1 -1
  1133. package/dist/web/redirects.js +0 -232
  1134. package/dist/web/redirects.js.map +1 -1
  1135. package/dist/web/render.d.ts +43 -7
  1136. package/dist/web/render.d.ts.map +1 -1
  1137. package/dist/web/render.js +96 -48
  1138. package/dist/web/render.js.map +1 -1
  1139. package/dist/web/request.d.ts +44 -0
  1140. package/dist/web/request.d.ts.map +1 -0
  1141. package/dist/web/request.js +82 -0
  1142. package/dist/web/request.js.map +1 -0
  1143. package/dist/web/robots.d.ts +1 -46
  1144. package/dist/web/robots.d.ts.map +1 -1
  1145. package/dist/web/robots.js +5 -131
  1146. package/dist/web/robots.js.map +1 -1
  1147. package/dist/web/routes.d.ts +5 -39
  1148. package/dist/web/routes.d.ts.map +1 -1
  1149. package/dist/web/routes.js +98 -1369
  1150. package/dist/web/routes.js.map +1 -1
  1151. package/dist/web/search.d.ts.map +1 -1
  1152. package/dist/web/search.js +2 -9
  1153. package/dist/web/search.js.map +1 -1
  1154. package/dist/{admin → web}/session.d.ts +1 -5
  1155. package/dist/web/session.d.ts.map +1 -0
  1156. package/dist/{admin → web}/session.js +0 -4
  1157. package/dist/web/session.js.map +1 -0
  1158. package/dist/web/share-image.d.ts.map +1 -1
  1159. package/dist/web/share-image.js +3 -2
  1160. package/dist/web/share-image.js.map +1 -1
  1161. package/dist/web/signed-in.d.ts +27 -0
  1162. package/dist/web/signed-in.d.ts.map +1 -0
  1163. package/dist/web/signed-in.js +45 -0
  1164. package/dist/web/signed-in.js.map +1 -0
  1165. package/dist/web/site-index.d.ts +13 -0
  1166. package/dist/web/site-index.d.ts.map +1 -0
  1167. package/dist/web/site-index.js +143 -0
  1168. package/dist/web/site-index.js.map +1 -0
  1169. package/dist/web/site-view.d.ts +45 -0
  1170. package/dist/web/site-view.d.ts.map +1 -0
  1171. package/dist/web/site-view.js +67 -0
  1172. package/dist/web/site-view.js.map +1 -0
  1173. package/dist/web/sitemap.d.ts.map +1 -1
  1174. package/dist/web/sitemap.js +5 -7
  1175. package/dist/web/sitemap.js.map +1 -1
  1176. package/dist/{admin → web}/throttle.d.ts +3 -4
  1177. package/dist/web/throttle.d.ts.map +1 -0
  1178. package/dist/{admin → web}/throttle.js +1 -2
  1179. package/dist/web/throttle.js.map +1 -0
  1180. package/dist/web/webmention-routes.d.ts +11 -0
  1181. package/dist/web/webmention-routes.d.ts.map +1 -0
  1182. package/dist/web/webmention-routes.js +51 -0
  1183. package/dist/web/webmention-routes.js.map +1 -0
  1184. package/dist/web/well-known.d.ts +2 -2
  1185. package/dist/web/well-known.d.ts.map +1 -1
  1186. package/dist/web/well-known.js +5 -14
  1187. package/dist/web/well-known.js.map +1 -1
  1188. package/dist/webmention/cited-picture.d.ts +1 -2
  1189. package/dist/webmention/cited-picture.d.ts.map +1 -1
  1190. package/dist/webmention/cited-picture.js +4 -6
  1191. package/dist/webmention/cited-picture.js.map +1 -1
  1192. package/dist/webmention/discovery.d.ts +2 -13
  1193. package/dist/webmention/discovery.d.ts.map +1 -1
  1194. package/dist/webmention/discovery.js +18 -73
  1195. package/dist/webmention/discovery.js.map +1 -1
  1196. package/dist/webmention/endpoint.d.ts +27 -0
  1197. package/dist/webmention/endpoint.d.ts.map +1 -0
  1198. package/dist/webmention/endpoint.js +26 -0
  1199. package/dist/webmention/endpoint.js.map +1 -0
  1200. package/dist/webmention/fetch-public.d.ts +18 -1
  1201. package/dist/webmention/fetch-public.d.ts.map +1 -1
  1202. package/dist/webmention/fetch-public.js +57 -23
  1203. package/dist/webmention/fetch-public.js.map +1 -1
  1204. package/dist/webmention/index.d.ts +11 -9
  1205. package/dist/webmention/index.d.ts.map +1 -1
  1206. package/dist/webmention/index.js +7 -6
  1207. package/dist/webmention/index.js.map +1 -1
  1208. package/dist/webmention/links.d.ts +0 -55
  1209. package/dist/webmention/links.d.ts.map +1 -1
  1210. package/dist/webmention/links.js +2 -185
  1211. package/dist/webmention/links.js.map +1 -1
  1212. package/dist/webmention/microformats.d.ts +1 -1
  1213. package/dist/webmention/microformats.d.ts.map +1 -1
  1214. package/dist/webmention/microformats.js +1 -1
  1215. package/dist/webmention/microformats.js.map +1 -1
  1216. package/dist/webmention/pingback.d.ts +12 -4
  1217. package/dist/webmention/pingback.d.ts.map +1 -1
  1218. package/dist/webmention/pingback.js +4 -102
  1219. package/dist/webmention/pingback.js.map +1 -1
  1220. package/dist/webmention/receive.d.ts +7 -4
  1221. package/dist/webmention/receive.d.ts.map +1 -1
  1222. package/dist/webmention/receive.js +30 -38
  1223. package/dist/webmention/receive.js.map +1 -1
  1224. package/dist/webmention/reply-context/fediverse.d.ts +29 -0
  1225. package/dist/webmention/reply-context/fediverse.d.ts.map +1 -0
  1226. package/dist/webmention/reply-context/fediverse.js +59 -0
  1227. package/dist/webmention/reply-context/fediverse.js.map +1 -0
  1228. package/dist/webmention/reply-context/json-ld.d.ts +5 -0
  1229. package/dist/webmention/reply-context/json-ld.d.ts.map +1 -0
  1230. package/dist/webmention/reply-context/json-ld.js +78 -0
  1231. package/dist/webmention/reply-context/json-ld.js.map +1 -0
  1232. package/dist/webmention/reply-context/oembed.d.ts +21 -0
  1233. package/dist/webmention/reply-context/oembed.d.ts.map +1 -0
  1234. package/dist/webmention/reply-context/oembed.js +137 -0
  1235. package/dist/webmention/reply-context/oembed.js.map +1 -0
  1236. package/dist/webmention/reply-context/page.d.ts +30 -0
  1237. package/dist/webmention/reply-context/page.d.ts.map +1 -0
  1238. package/dist/webmention/reply-context/page.js +134 -0
  1239. package/dist/webmention/reply-context/page.js.map +1 -0
  1240. package/dist/webmention/reply-context/source.d.ts +29 -0
  1241. package/dist/webmention/reply-context/source.d.ts.map +1 -0
  1242. package/dist/webmention/reply-context/source.js +46 -0
  1243. package/dist/webmention/reply-context/source.js.map +1 -0
  1244. package/dist/webmention/reply-context.d.ts +5 -34
  1245. package/dist/webmention/reply-context.d.ts.map +1 -1
  1246. package/dist/webmention/reply-context.js +9 -432
  1247. package/dist/webmention/reply-context.js.map +1 -1
  1248. package/dist/webmention/reply-contexts.d.ts +3 -3
  1249. package/dist/webmention/reply-contexts.d.ts.map +1 -1
  1250. package/dist/webmention/reply-contexts.js +7 -10
  1251. package/dist/webmention/reply-contexts.js.map +1 -1
  1252. package/dist/webmention/routes.d.ts +1 -1
  1253. package/dist/webmention/routes.d.ts.map +1 -1
  1254. package/dist/webmention/routes.js +5 -8
  1255. package/dist/webmention/routes.js.map +1 -1
  1256. package/dist/webmention/service.d.ts +7 -7
  1257. package/dist/webmention/service.d.ts.map +1 -1
  1258. package/dist/webmention/service.js +49 -61
  1259. package/dist/webmention/service.js.map +1 -1
  1260. package/dist/webmention/syndication.d.ts +3 -26
  1261. package/dist/webmention/syndication.d.ts.map +1 -1
  1262. package/dist/webmention/syndication.js +6 -20
  1263. package/dist/webmention/syndication.js.map +1 -1
  1264. package/package.json +5 -1
  1265. package/themes/default/README.md +36 -2339
  1266. package/themes/default/layouts/base.njk +5 -4
  1267. package/themes/default/layouts/front-page.njk +4 -3
  1268. package/themes/default/layouts/page.njk +2 -0
  1269. package/themes/default/partials/comment-form.njk +1 -1
  1270. package/themes/default/partials/contact-form.njk +1 -2
  1271. package/themes/default/partials/conversation.njk +1 -2
  1272. package/themes/default/partials/markdown-footer.md.njk +24 -0
  1273. package/themes/default/partials/markdown-header.md.njk +31 -0
  1274. package/themes/default/src/style.css +6 -6
  1275. package/dist/admin/accounts.d.ts.map +0 -1
  1276. package/dist/admin/accounts.js.map +0 -1
  1277. package/dist/admin/admin-theme.d.ts.map +0 -1
  1278. package/dist/admin/admin-theme.js.map +0 -1
  1279. package/dist/admin/enclosure-field.d.ts.map +0 -1
  1280. package/dist/admin/enclosure-field.js.map +0 -1
  1281. package/dist/admin/event-field.d.ts.map +0 -1
  1282. package/dist/admin/event-field.js.map +0 -1
  1283. package/dist/admin/location-field.d.ts +0 -27
  1284. package/dist/admin/location-field.d.ts.map +0 -1
  1285. package/dist/admin/location-field.js.map +0 -1
  1286. package/dist/admin/passwords.d.ts.map +0 -1
  1287. package/dist/admin/passwords.js.map +0 -1
  1288. package/dist/admin/photo-field.d.ts +0 -38
  1289. package/dist/admin/photo-field.d.ts.map +0 -1
  1290. package/dist/admin/photo-field.js.map +0 -1
  1291. package/dist/admin/read-field.d.ts.map +0 -1
  1292. package/dist/admin/read-field.js +0 -61
  1293. package/dist/admin/read-field.js.map +0 -1
  1294. package/dist/admin/session.d.ts.map +0 -1
  1295. package/dist/admin/session.js.map +0 -1
  1296. package/dist/admin/store.d.ts +0 -1025
  1297. package/dist/admin/store.d.ts.map +0 -1
  1298. package/dist/admin/store.js +0 -1628
  1299. package/dist/admin/store.js.map +0 -1
  1300. package/dist/admin/throttle.d.ts.map +0 -1
  1301. package/dist/admin/throttle.js.map +0 -1
  1302. package/dist/avatars/routes.d.ts.map +0 -1
  1303. package/dist/avatars/routes.js.map +0 -1
  1304. package/dist/contact/routes.d.ts.map +0 -1
  1305. package/dist/contact/routes.js.map +0 -1
  1306. package/dist/env.d.ts.map +0 -1
  1307. package/dist/env.js.map +0 -1
  1308. package/dist/federation/replies.d.ts.map +0 -1
  1309. package/dist/federation/replies.js.map +0 -1
  1310. package/dist/images/alt-text.d.ts.map +0 -1
  1311. package/dist/images/alt-text.js.map +0 -1
  1312. package/dist/indieauth/activity-log.d.ts.map +0 -1
  1313. package/dist/indieauth/activity-log.js.map +0 -1
  1314. package/dist/indieauth/app-activity.d.ts.map +0 -1
  1315. package/dist/indieauth/app-activity.js.map +0 -1
  1316. package/dist/indieauth/bearer.d.ts.map +0 -1
  1317. package/dist/indieauth/bearer.js.map +0 -1
  1318. package/dist/indieauth/client-id.d.ts.map +0 -1
  1319. package/dist/indieauth/client-id.js.map +0 -1
  1320. package/dist/indieauth/connected-apps.d.ts.map +0 -1
  1321. package/dist/indieauth/connected-apps.js.map +0 -1
  1322. package/dist/indieauth/consent.d.ts.map +0 -1
  1323. package/dist/indieauth/consent.js.map +0 -1
  1324. package/dist/indieauth/discovery.d.ts.map +0 -1
  1325. package/dist/indieauth/discovery.js.map +0 -1
  1326. package/dist/indieauth/token.d.ts.map +0 -1
  1327. package/dist/indieauth/token.js.map +0 -1
  1328. package/dist/mail/service.d.ts.map +0 -1
  1329. package/dist/mail/service.js.map +0 -1
  1330. package/dist/mail/templates.d.ts.map +0 -1
  1331. package/dist/mail/templates.js.map +0 -1
  1332. package/dist/notifications/preferences.d.ts.map +0 -1
  1333. package/dist/notifications/preferences.js.map +0 -1
  1334. package/dist/notifications/routes.d.ts.map +0 -1
  1335. package/dist/notifications/routes.js.map +0 -1
  1336. package/dist/plugins/federation.d.ts.map +0 -1
  1337. package/dist/plugins/federation.js.map +0 -1
  1338. package/dist/plugins/mount.d.ts.map +0 -1
  1339. package/dist/plugins/mount.js.map +0 -1
  1340. package/dist/privacy/policy.d.ts.map +0 -1
  1341. package/dist/privacy/policy.js.map +0 -1
  1342. package/dist/web/admin-bar.d.ts.map +0 -1
  1343. package/dist/web/admin-bar.js.map +0 -1
  1344. package/dist/web/assets.d.ts.map +0 -1
  1345. package/dist/web/assets.js.map +0 -1
  1346. package/dist/web/authors.d.ts.map +0 -1
  1347. package/dist/web/authors.js +0 -211
  1348. package/dist/web/authors.js.map +0 -1
  1349. package/dist/web/documents.d.ts +0 -81
  1350. package/dist/web/documents.d.ts.map +0 -1
  1351. package/dist/web/documents.js.map +0 -1
  1352. package/dist/web/errors.d.ts.map +0 -1
  1353. package/dist/web/errors.js.map +0 -1
  1354. package/dist/web/guids.d.ts.map +0 -1
  1355. package/dist/web/guids.js.map +0 -1
  1356. package/dist/web/indexnow.d.ts.map +0 -1
  1357. package/dist/web/indexnow.js.map +0 -1
  1358. package/dist/web/license.d.ts.map +0 -1
  1359. package/dist/web/license.js.map +0 -1
  1360. package/dist/web/locale.d.ts.map +0 -1
  1361. package/dist/web/locale.js.map +0 -1
  1362. package/dist/web/navigation.d.ts.map +0 -1
  1363. package/dist/web/navigation.js.map +0 -1
  1364. package/dist/web/recent.d.ts +0 -43
  1365. package/dist/web/recent.d.ts.map +0 -1
  1366. package/dist/web/recent.js +0 -37
  1367. package/dist/web/recent.js.map +0 -1
  1368. package/dist/web/sanitize.d.ts +0 -29
  1369. package/dist/web/sanitize.d.ts.map +0 -1
  1370. package/dist/web/sanitize.js.map +0 -1
  1371. package/dist/web/taxonomy.d.ts.map +0 -1
  1372. package/dist/web/taxonomy.js.map +0 -1
  1373. package/dist/web/templates.d.ts.map +0 -1
  1374. package/dist/web/templates.js.map +0 -1
  1375. package/dist/web/themes.d.ts.map +0 -1
  1376. package/dist/web/themes.js.map +0 -1
  1377. package/dist/webmention/html.d.ts.map +0 -1
  1378. package/dist/webmention/html.js.map +0 -1
  1379. package/dist/webmention/public-address.d.ts.map +0 -1
  1380. package/dist/webmention/public-address.js.map +0 -1
  1381. /package/dist/{web → content}/license.d.ts +0 -0
  1382. /package/dist/{web → content}/license.js +0 -0
  1383. /package/dist/{admin → site}/admin-theme.d.ts +0 -0
  1384. /package/dist/{admin → site}/admin-theme.js +0 -0
  1385. /package/dist/{admin → site}/passwords.d.ts +0 -0
  1386. /package/dist/{admin → site}/passwords.js +0 -0
  1387. /package/dist/{indieauth → util}/client-id.d.ts +0 -0
  1388. /package/dist/{indieauth → util}/client-id.js +0 -0
  1389. /package/dist/{webmention → util}/public-address.d.ts +0 -0
  1390. /package/dist/{webmention → util}/public-address.js +0 -0
  1391. /package/dist/{env.js → web/env.js} +0 -0
package/dist/cli.js CHANGED
@@ -1,28 +1,20 @@
1
1
  #!/usr/bin/env node
2
- var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
3
- if (typeof path === "string" && /^\.\.?\//.test(path)) {
4
- return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
5
- return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
6
- });
7
- }
8
- return path;
9
- };
10
2
  import cluster from 'node:cluster';
11
3
  import { existsSync, realpathSync } from 'node:fs';
12
- import { createRequire } from 'node:module';
13
4
  import path from 'node:path';
14
5
  import { createInterface } from 'node:readline';
15
6
  import { DatabaseSync } from 'node:sqlite';
16
7
  import { Writable } from 'node:stream';
17
8
  import { pathToFileURL } from 'node:url';
18
- import { createUser, DuplicateUsernameError, migrateUsersToFile } from './admin/accounts.js';
19
9
  import { credentialProblem, emailProblem } from './admin/credentials.js';
20
- import { openAdminStore } from './admin/store.js';
10
+ import { migrateUsersToFile } from './admin/legacy-migrations.js';
11
+ import { adminStoreOwning, openAdminDatabase } from './store/admin-store.js';
21
12
  import { databaseFile, discardDatabase } from './cache.js';
22
- import { resolveConfig } from './config.js';
23
- import { migrateCommentEmails, migrateCommentKeys } from './comments/records.js';
13
+ import { CONFIG_FILENAMES, loadResolvedConfig } from './config-loader.js';
14
+ import { migrateCommentEmails, migrateCommentKeys } from './comments/migrations.js';
24
15
  import { stripStoredUploads } from './content/metadata/sweep.js';
25
- import { UPLOAD_DIRECTORY } from './web/assets.js';
16
+ import { createUser, DuplicateUsernameError } from './site/users.js';
17
+ import { UPLOAD_DIRECTORY } from './content/uploads.js';
26
18
  import { createCms } from './index.js';
27
19
  import { initSite, ownManifest, seedStarterContent } from './init.js';
28
20
  import { importPluginFolders, scanPluginFolders } from './plugins/folder.js';
@@ -34,19 +26,151 @@ import { superviseCluster } from './supervisor/primary.js';
34
26
  import { processChannel, superviseWorker } from './supervisor/worker.js';
35
27
  import { enterMaintenance, leaveMaintenance, maintenanceFile, readMaintenance, } from './maintenance.js';
36
28
  import { devModeOn, enterDevMode, leaveDevMode } from './dev-mode.js';
37
- /** The commands a site can name on the command line, as opposed to the flags. */
38
- const COMMANDS = [
39
- 'serve',
40
- 'init',
41
- 'sync',
42
- 'rebuild',
43
- 'resend',
44
- 'user',
45
- 'maintenance',
46
- 'dev-mode',
47
- 'strip-metadata',
48
- 'plugin',
49
- ];
29
+ import { messageOf } from './util/errors.js';
30
+ const COMMANDS = {
31
+ serve: {
32
+ synopsis: ['[serve] [--config <file>]'],
33
+ help: [['serve', ['Start the CMS (the default when no command is given).']]],
34
+ run: serveCommand,
35
+ },
36
+ init: {
37
+ synopsis: ['init <directory>'],
38
+ help: [['init', ['Create a new site in <directory>.']]],
39
+ run: initCommand,
40
+ },
41
+ sync: {
42
+ synopsis: ['sync [--config <file>]'],
43
+ help: [['sync', ['Rebuild the content index once and exit.']]],
44
+ run: syncCommand,
45
+ },
46
+ rebuild: {
47
+ synopsis: ['rebuild [--config <file>]'],
48
+ help: [
49
+ [
50
+ 'rebuild',
51
+ [
52
+ 'Delete data/geekity.db and build it again from the files.',
53
+ 'Everything in it is derived, so this is always safe with the',
54
+ 'site stopped; sessions and delivery outcomes start empty.',
55
+ ],
56
+ ],
57
+ ],
58
+ run: rebuildCommand,
59
+ },
60
+ resend: {
61
+ synopsis: ['resend (--all | <slug>...) [--config <file>]'],
62
+ help: [
63
+ [
64
+ 'resend',
65
+ [
66
+ 'Send announced posts to every follower and relay again, as',
67
+ 'they read now: an Update for a post still published, a',
68
+ 'Delete for one withdrawn. --all resends every post the site',
69
+ 'has announced; this is how posts federated before a new',
70
+ 'federation feature (such as quote posts) pick it up.',
71
+ ],
72
+ ],
73
+ ],
74
+ run: resendCommand,
75
+ },
76
+ maintenance: {
77
+ synopsis: ['maintenance (on [--until <time>] | off | status) [--config <file>]'],
78
+ help: [
79
+ [
80
+ 'maintenance',
81
+ [
82
+ 'Take the public site down on purpose, or bring it back.',
83
+ 'While on, pages, feeds, sitemaps and inbox deliveries answer',
84
+ '503 with Retry-After; the admin, /healthz and signed-in',
85
+ 'users are let through. A running site notices within a',
86
+ 'second, with no restart.',
87
+ ],
88
+ ],
89
+ ],
90
+ run: maintenanceCommand,
91
+ },
92
+ 'dev-mode': {
93
+ synopsis: ['dev-mode (on | off | status) [--config <file>]'],
94
+ help: [
95
+ [
96
+ 'dev-mode',
97
+ [
98
+ 'Hold everything the site would send to the outside world',
99
+ '(ActivityPub deliveries and relay follows, webmentions,',
100
+ 'rssCloud and WebSub pings, IndexNow, email) while it is',
101
+ 'built or migrated, and record each one in',
102
+ 'data/dev-mode.jsonl. off takes the site live: nothing held',
103
+ 'is sent then, and the record says when it went live.',
104
+ ],
105
+ ],
106
+ ],
107
+ run: devModeCommand,
108
+ },
109
+ 'strip-metadata': {
110
+ synopsis: ['strip-metadata [--config <file>]'],
111
+ help: [
112
+ [
113
+ 'strip-metadata',
114
+ [
115
+ 'Remove location and camera metadata (EXIF, XMP, IPTC, a',
116
+ "video's location) from files already in content/uploads.",
117
+ 'New uploads are stripped as they arrive; this is for the',
118
+ 'ones from before. Safe to run again: a clean file is left',
119
+ 'as it is.',
120
+ ],
121
+ ],
122
+ ],
123
+ run: stripMetadataCommand,
124
+ },
125
+ user: {
126
+ synopsis: ['user add <username> [--password <pw>] [--email <address>] [--config <file>]'],
127
+ help: [
128
+ [
129
+ 'user add',
130
+ ['Create an admin user, so a site can get its first login', 'without the setup screen.'],
131
+ ],
132
+ ],
133
+ run: userCommand,
134
+ },
135
+ plugin: {
136
+ synopsis: [
137
+ 'plugin (add <package>[@version] | remove <package>) [--config <file>]',
138
+ 'plugin upgrade [<package>...] [--check] [--config <file>]',
139
+ ],
140
+ help: [
141
+ [
142
+ 'plugin add',
143
+ [
144
+ "Install a plugin package's bundle from the npm registry",
145
+ '(npm_config_registry, or registry.npmjs.org) into the',
146
+ 'plugins folder, GEEKITY_PLUGINS_DIR. It installs only the',
147
+ 'package named, and names any plugin it requires that is',
148
+ 'missing. Reload on the Plugins screen loads it.',
149
+ ],
150
+ ],
151
+ [
152
+ 'plugin remove',
153
+ [
154
+ "Delete a plugin's folder from the plugins folder. Reload on",
155
+ 'the Plugins screen unloads it. It refuses a plugin the site',
156
+ 'has enabled: disable it first.',
157
+ ],
158
+ ],
159
+ [
160
+ 'plugin upgrade',
161
+ [
162
+ 'Bring each plugin in the plugins folder, or only the ones',
163
+ 'named, up to its newest version that this core and the',
164
+ 'other installed plugins can run, installed as plugin add',
165
+ 'installs one. Plugins that must move together do. It says,',
166
+ 'for each plugin, what it upgraded, or why it held a newer',
167
+ 'version back. --check reports and installs nothing.',
168
+ ],
169
+ ],
170
+ ],
171
+ run: pluginFolderCommand,
172
+ },
173
+ };
50
174
  /**
51
175
  * The options one command reads out of {@link ParsedArgs.flags}, each of which
52
176
  * carries a value.
@@ -54,68 +178,7 @@ const COMMANDS = [
54
178
  const VALUE_FLAGS = ['until'];
55
179
  /** The options that are simply on or off. */
56
180
  const SWITCH_FLAGS = ['all', 'check'];
57
- const CONFIG_FILENAMES = ['geekity.config.ts', 'geekity.config.js', 'geekity.config.mjs'];
58
- const USAGE = `geekity — the Geekity CMS command line
59
-
60
- Usage:
61
- geekity [serve] [--config <file>]
62
- geekity init <directory>
63
- geekity sync [--config <file>]
64
- geekity rebuild [--config <file>]
65
- geekity resend (--all | <slug>...) [--config <file>]
66
- geekity maintenance (on [--until <time>] | off | status) [--config <file>]
67
- geekity dev-mode (on | off | status) [--config <file>]
68
- geekity strip-metadata [--config <file>]
69
- geekity user add <username> [--password <pw>] [--email <address>] [--config <file>]
70
- geekity plugin (add <package>[@version] | remove <package>) [--config <file>]
71
- geekity plugin upgrade [<package>...] [--check] [--config <file>]
72
-
73
- Commands:
74
- serve Start the CMS (the default when no command is given).
75
- init Create a new site in <directory>.
76
- sync Rebuild the content index once and exit.
77
- rebuild Delete data/geekity.db and build it again from the files.
78
- Everything in it is derived, so this is always safe with the
79
- site stopped; sessions and delivery outcomes start empty.
80
- resend Send announced posts to every follower and relay again, as
81
- they read now: an Update for a post still published, a
82
- Delete for one withdrawn. --all resends every post the site
83
- has announced; this is how posts federated before a new
84
- federation feature (such as quote posts) pick it up.
85
- maintenance Take the public site down on purpose, or bring it back.
86
- While on, pages, feeds, sitemaps and inbox deliveries answer
87
- 503 with Retry-After; the admin, /healthz and signed-in
88
- users are let through. A running site notices within a
89
- second, with no restart.
90
- dev-mode Hold everything the site would send to the outside world
91
- (ActivityPub deliveries and relay follows, webmentions,
92
- rssCloud and WebSub pings, IndexNow, email) while it is
93
- built or migrated, and record each one in
94
- data/dev-mode.jsonl. off takes the site live: nothing held
95
- is sent then, and the record says when it went live.
96
- strip-metadata Remove location and camera metadata (EXIF, XMP, IPTC, a
97
- video's location) from files already in content/uploads.
98
- New uploads are stripped as they arrive; this is for the
99
- ones from before. Safe to run again: a clean file is left
100
- as it is.
101
- user add Create an admin user, so a site can get its first login
102
- without the setup screen.
103
- plugin add Install a plugin package's bundle from the npm registry
104
- (npm_config_registry, or registry.npmjs.org) into the
105
- plugins folder, GEEKITY_PLUGINS_DIR. It installs only the
106
- package named, and names any plugin it requires that is
107
- missing. Reload on the Plugins screen loads it.
108
- plugin remove Delete a plugin's folder from the plugins folder. Reload on
109
- the Plugins screen unloads it. It refuses a plugin the site
110
- has enabled: disable it first.
111
- plugin upgrade Bring each plugin in the plugins folder, or only the ones
112
- named, up to its newest version that this core and the
113
- other installed plugins can run, installed as plugin add
114
- installs one. Plugins that must move together do. It says,
115
- for each plugin, what it upgraded, or why it held a newer
116
- version back. --check reports and installs nothing.
117
-
118
- Options:
181
+ const OPTIONS_HELP = `Options:
119
182
  --config <file> Config file to load. Defaults to the first of
120
183
  ${CONFIG_FILENAMES.join(', ')} found in the working directory.
121
184
  --password <pw> The new user's password. Left off, it is asked for without
@@ -247,105 +310,7 @@ export function parseArgs(argv) {
247
310
  return { command: command ?? 'serve', configPath, password, email, flags, args };
248
311
  }
249
312
  function isCommand(value) {
250
- return COMMANDS.includes(value);
251
- }
252
- /** Extensions that need TypeScript support in the loader. */
253
- const TYPESCRIPT_EXTENSIONS = new Set(['.ts', '.mts', '.cts']);
254
- /**
255
- * Load a config module, returning `{}` when the site has no config file.
256
- *
257
- * A TypeScript config is imported directly first. That is all it takes on Node
258
- * 24, which strips types without a flag, and inside this repository, where
259
- * the CLI already runs under tsx. A Node started with stripping disabled — and
260
- * any file carrying TypeScript syntax that stripping cannot erase — falls back to
261
- * registering tsx from the *site's* own dependencies, which is where a site
262
- * scaffolded by `geekity init` has it. A site with neither writes
263
- * `geekity.config.js` instead; it is in the candidate list for exactly that.
264
- */
265
- export async function loadConfig(cwd, configPath) {
266
- const candidates = configPath === undefined
267
- ? CONFIG_FILENAMES.map((name) => path.resolve(cwd, name))
268
- : [path.resolve(cwd, configPath)];
269
- for (const candidate of candidates) {
270
- const href = pathToFileURL(candidate).href;
271
- let module;
272
- try {
273
- module = (await import(__rewriteRelativeImportExtension(href)));
274
- }
275
- catch (error) {
276
- if (isModuleNotFound(error, candidate))
277
- continue;
278
- if (!needsTypeScriptLoader(error, candidate))
279
- throw error;
280
- await registerTypeScriptLoader(cwd, candidate);
281
- module = (await import(__rewriteRelativeImportExtension(href)));
282
- }
283
- return module.default ?? {};
284
- }
285
- if (configPath !== undefined) {
286
- throw new Error(`Config file not found: ${path.resolve(cwd, configPath)}`);
287
- }
288
- return {};
289
- }
290
- /**
291
- * The site's own tsx, as the directory the package was installed into, or
292
- * `undefined` when the site does not have one.
293
- *
294
- * Node's resolver is deliberately not asked: this has to be the tsx the *site*
295
- * installed, and a resolver anchored anywhere else — or patched by a tsx that
296
- * is already loaded, which is what happens inside this repository — would
297
- * happily answer with somebody else's copy.
298
- */
299
- export function findSiteTsx(cwd) {
300
- let directory = path.resolve(cwd);
301
- for (;;) {
302
- const candidate = path.join(directory, 'node_modules', 'tsx');
303
- if (existsSync(path.join(candidate, 'package.json')))
304
- return candidate;
305
- const parent = path.dirname(directory);
306
- if (parent === directory)
307
- return undefined;
308
- directory = parent;
309
- }
310
- }
311
- /**
312
- * Teach this process to import TypeScript, using the tsx installed alongside
313
- * the site.
314
- *
315
- * tsx is the site's rather than this package's because the CMS does not depend
316
- * on it at runtime: a site that runs `server.ts` already has it, and a site
317
- * that does not want it writes its config in JavaScript instead.
318
- */
319
- export async function registerTypeScriptLoader(cwd, configFile) {
320
- const tsx = findSiteTsx(cwd);
321
- if (tsx === undefined) {
322
- throw new Error(`Could not load ${configFile}: this Node cannot import TypeScript on its own and tsx is ` +
323
- 'not installed in this site. Either add it (pnpm add -D tsx), or write the config as ' +
324
- 'geekity.config.js instead.');
325
- }
326
- const fromTsx = createRequire(path.join(tsx, 'package.json'));
327
- const api = (await import(__rewriteRelativeImportExtension(pathToFileURL(fromTsx.resolve('tsx/esm/api')).href)));
328
- api.register();
329
- }
330
- /**
331
- * Whether an import failed because the loader could not handle TypeScript.
332
- *
333
- * `ERR_UNKNOWN_FILE_EXTENSION` is Node before type stripping was on by
334
- * default; `ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX` is a file using `enum` or
335
- * `namespace`, which stripping refuses because erasing it is not enough.
336
- */
337
- function needsTypeScriptLoader(error, candidate) {
338
- if (!TYPESCRIPT_EXTENSIONS.has(path.extname(candidate).toLowerCase()))
339
- return false;
340
- const code = error?.code;
341
- return code === 'ERR_UNKNOWN_FILE_EXTENSION' || code === 'ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX';
342
- }
343
- function isModuleNotFound(error, candidate) {
344
- return (typeof error === 'object' &&
345
- error !== null &&
346
- 'code' in error &&
347
- error.code === 'ERR_MODULE_NOT_FOUND' &&
348
- String(error.message ?? '').includes(candidate));
313
+ return Object.hasOwn(COMMANDS, value);
349
314
  }
350
315
  /** Run one command. Resolves with the exit code the process should use. */
351
316
  async function main(argv) {
@@ -353,37 +318,19 @@ async function main(argv) {
353
318
  if (first !== undefined && !isCommand(first) && !argv.some(isHelpOrVersion)) {
354
319
  return await pluginCommand(argv);
355
320
  }
356
- const { command, configPath, password, email, flags, args } = parseArgs(argv);
357
- if (command === 'help') {
358
- process.stdout.write(await usage(configPath));
321
+ const parsed = parseArgs(argv);
322
+ if (parsed.command === 'help') {
323
+ process.stdout.write(await usage(parsed.configPath));
359
324
  return 0;
360
325
  }
361
- if (command === 'version') {
326
+ if (parsed.command === 'version') {
362
327
  process.stdout.write(`${ownManifest().version}\n`);
363
328
  return 0;
364
329
  }
365
- if (command === 'init')
366
- return init(args);
367
- if (command === 'user')
368
- return userCommand(args, configPath, password, email);
369
- if (command === 'sync')
370
- return syncCommand(configPath);
371
- if (command === 'rebuild')
372
- return rebuildCommand(configPath);
373
- if (command === 'resend')
374
- return resendCommand(args, configPath, flags);
375
- if (command === 'maintenance')
376
- return maintenanceCommand(args, configPath, flags);
377
- if (command === 'dev-mode')
378
- return devModeCommand(args, configPath);
379
- if (command === 'strip-metadata')
380
- return stripMetadataCommand(configPath);
381
- if (command === 'plugin')
382
- return pluginFolderCommand(args, configPath, flags);
383
- return serveCommand(configPath);
330
+ return COMMANDS[parsed.command].run(parsed);
384
331
  }
385
332
  /** `geekity init <directory>`: scaffold a new site. */
386
- async function init(args) {
333
+ async function initCommand({ args }) {
387
334
  const directory = args[0];
388
335
  if (directory === undefined) {
389
336
  throw new Error('geekity init <directory> needs the directory to create.');
@@ -407,9 +354,9 @@ async function init(args) {
407
354
  * Only the file under `data/` is touched, so this works the same with the
408
355
  * site running or stopped: a running site re-reads it within a second.
409
356
  */
410
- async function maintenanceCommand(args, configPath, flags) {
357
+ async function maintenanceCommand({ args, configPath, flags }) {
411
358
  const action = args[0];
412
- const config = resolveConfig(await loadConfig(process.cwd(), configPath));
359
+ const config = await loadResolvedConfig(configPath);
413
360
  const file = maintenanceFile(config.dataDir);
414
361
  if (action === 'on') {
415
362
  const until = untilFlag(text(flags, 'until'));
@@ -434,11 +381,11 @@ async function maintenanceCommand(args, configPath, flags) {
434
381
  }
435
382
  throw new Error('geekity maintenance needs on, off or status.');
436
383
  }
437
- async function devModeCommand(args, configPath) {
384
+ async function devModeCommand({ args, configPath }) {
438
385
  const action = args[0];
439
- const config = resolveConfig(await loadConfig(process.cwd(), configPath));
386
+ const config = await loadResolvedConfig(configPath);
440
387
  if (action === 'on') {
441
- enterDevMode(config.dataDir, 'command');
388
+ enterDevMode(config.dataDir, 'command', config.now());
442
389
  process.stdout.write('Dev mode is on: nothing the site does is sent until `geekity dev-mode off`.\n');
443
390
  return 0;
444
391
  }
@@ -447,7 +394,7 @@ async function devModeCommand(args, configPath) {
447
394
  throw new Error('GEEKITY_DEV_MODE or the devMode setting still asks for dev mode. ' +
448
395
  'Remove it, then run geekity dev-mode off again.');
449
396
  }
450
- const wasOn = leaveDevMode(config.dataDir);
397
+ const wasOn = leaveDevMode(config.dataDir, config.now());
451
398
  process.stdout.write(wasOn
452
399
  ? 'Dev mode is off: the site is live. Nothing held while it was on will be sent.\n'
453
400
  : 'Dev mode was already off: the site is live.\n');
@@ -476,8 +423,8 @@ function forcedLine(forced) {
476
423
  ? ' GEEKITY_MAINTENANCE or the maintenance setting keeps it on until the site restarts without it.'
477
424
  : '';
478
425
  }
479
- async function stripMetadataCommand(configPath) {
480
- const config = resolveConfig(await loadConfig(process.cwd(), configPath));
426
+ async function stripMetadataCommand({ configPath }) {
427
+ const config = await loadResolvedConfig(configPath);
481
428
  const results = await stripStoredUploads(path.join(config.contentDir, UPLOAD_DIRECTORY));
482
429
  let stripped = 0;
483
430
  let clean = 0;
@@ -505,9 +452,8 @@ async function stripMetadataCommand(configPath) {
505
452
  * Watching is forced off whatever the config says, because a one-shot scan
506
453
  * that then sat in a watcher would never exit.
507
454
  */
508
- async function syncCommand(configPath) {
509
- const config = await loadConfig(process.cwd(), configPath);
510
- const cms = createCms({ ...config, watch: false });
455
+ async function syncCommand({ configPath }) {
456
+ const cms = createCms(await loadResolvedConfig(configPath, (config) => ({ ...config, watch: false })));
511
457
  try {
512
458
  const result = await cms.sync();
513
459
  process.stdout.write(`Scanned ${String(result.scanned)}: ${String(result.created)} created, ` +
@@ -535,17 +481,16 @@ async function syncCommand(configPath) {
535
481
  * button on the federation screen, for every post at once. Delivery runs with
536
482
  * no queue, so each activity has been posted before the process exits.
537
483
  */
538
- async function resendCommand(args, configPath, flags) {
484
+ async function resendCommand({ args, configPath, flags }) {
539
485
  const all = flags['all'] === true;
540
486
  if (all === args.length > 0) {
541
487
  throw new Error('geekity resend needs either --all or the slugs of the posts to resend, and not both.');
542
488
  }
543
- const config = await loadConfig(process.cwd(), configPath);
544
- const cms = createCms({
489
+ const cms = createCms(await loadResolvedConfig(configPath, (config) => ({
545
490
  ...config,
546
491
  watch: false,
547
492
  federation: { ...config.federation, queue: null },
548
- });
493
+ })));
549
494
  try {
550
495
  await cms.sync();
551
496
  const slugs = all ? cms.store.listFederated().map((document) => document.slug) : args;
@@ -590,9 +535,8 @@ async function resendCommand(args, configPath, flags) {
590
535
  * Watching is forced off for the reason `sync` forces it off: a one-shot
591
536
  * command that sat in a watcher would never exit.
592
537
  */
593
- async function rebuildCommand(configPath) {
594
- const loaded = await loadConfig(process.cwd(), configPath);
595
- const config = resolveConfig(loaded);
538
+ async function rebuildCommand({ configPath }) {
539
+ const config = await loadResolvedConfig(configPath, (loaded) => ({ ...loaded, watch: false }));
596
540
  const file = databaseFile(config.dataDir);
597
541
  if (databaseInUse(config.dataDir)) {
598
542
  process.stderr.write(`${file} is in use: something else has it open, most likely the site itself. Stop the ` +
@@ -601,7 +545,7 @@ async function rebuildCommand(configPath) {
601
545
  return 1;
602
546
  }
603
547
  discardDatabase(config.dataDir);
604
- const cms = createCms({ ...loaded, watch: false });
548
+ const cms = createCms(config);
605
549
  try {
606
550
  const result = await cms.sync();
607
551
  process.stdout.write(`Rebuilt ${file} from the files.\n` +
@@ -689,10 +633,10 @@ const SQLITE_LOCKED = 6;
689
633
  * to show and the setup screen. It happens here rather than in `createCms` so
690
634
  * a site that builds its own server never has content written for it.
691
635
  */
692
- async function serveCommand(configPath) {
636
+ async function serveCommand({ configPath }) {
693
637
  if (cluster.isWorker)
694
638
  return serveWorker(configPath);
695
- const resolved = resolveConfig(await loadConfig(process.cwd(), configPath));
639
+ const resolved = await loadResolvedConfig(configPath);
696
640
  if (resolved.seedContent &&
697
641
  (await seedStarterContent({ contentDir: resolved.contentDir, baseUrl: resolved.baseUrl }))) {
698
642
  process.stdout.write(`Seeded ${resolved.contentDir} with the starter site\n`);
@@ -714,20 +658,26 @@ async function serveWorker(configPath) {
714
658
  for (const signal of ['SIGINT', 'SIGTERM'])
715
659
  process.on(signal, () => undefined);
716
660
  try {
717
- const config = await loadConfig(process.cwd(), configPath);
718
- const loaded = scanPluginFolders(resolveConfig(config).pluginsDir);
661
+ // The access log is on here and off in `createCms`: a server that answers
662
+ // the internet should be able to say what it answered, while a CMS embedded
663
+ // in somebody else's app has no business writing to their stdout uninvited.
664
+ // Named as a config value rather than forced, so `GEEKITY_ACCESS_LOG` still
665
+ // wins and a site that wrote `accessLog: false` still gets silence.
666
+ const config = await loadResolvedConfig(configPath, (site) => ({
667
+ ...site,
668
+ accessLog: site.accessLog ?? true,
669
+ }));
670
+ const loaded = scanPluginFolders(config.pluginsDir);
719
671
  const worker = superviseWorker({
720
672
  channel,
721
673
  loaded,
722
674
  exit: (code) => process.exit(code),
723
675
  log: (line) => process.stderr.write(`${line}\n`),
724
676
  });
725
- // The access log is on here and off in `createCms`: a server that answers
726
- // the internet should be able to say what it answered, while a CMS embedded
727
- // in somebody else's app has no business writing to their stdout uninvited.
728
- // Named as a config value rather than forced, so `GEEKITY_ACCESS_LOG` still
729
- // wins and a site that wrote `accessLog: false` still gets silence.
730
- const cms = createCms({ ...config, accessLog: config.accessLog ?? true }, { folderPlugins: await importPluginFolders(loaded), supervision: worker.supervision });
677
+ const cms = createCms(config, {
678
+ folderPlugins: await importPluginFolders(loaded),
679
+ supervision: worker.supervision,
680
+ });
731
681
  const { port } = await cms.serve();
732
682
  if (devModeOn(cms.config)) {
733
683
  process.stdout.write('Dev mode is on: ActivityPub, webmentions, feed pings, IndexNow and email are held ' +
@@ -737,18 +687,18 @@ async function serveWorker(configPath) {
737
687
  worker.serving(cms);
738
688
  }
739
689
  catch (error) {
740
- const message = error instanceof Error ? error.message : String(error);
690
+ const message = messageOf(error);
741
691
  channel.send({ type: 'boot-failed', error: message }, () => process.exit(1));
742
692
  }
743
693
  return 0;
744
694
  }
745
- async function pluginFolderCommand(args, configPath, flags) {
695
+ async function pluginFolderCommand({ args, configPath, flags }) {
746
696
  const [action, ...names] = args;
747
697
  const spec = names.length === 1 ? names[0] : undefined;
748
698
  if (action !== 'upgrade' && action !== 'add' && action !== 'remove') {
749
699
  throw new Error(PLUGIN_USAGE);
750
700
  }
751
- const config = resolveConfig(await loadConfig(process.cwd(), configPath));
701
+ const config = await loadResolvedConfig(configPath);
752
702
  const { pluginsDir } = config;
753
703
  if (pluginsDir === undefined) {
754
704
  throw new Error('geekity plugin needs a plugins folder: set GEEKITY_PLUGINS_DIR, or pluginsDir in the config.');
@@ -843,7 +793,7 @@ function upgradeReportText(report) {
843
793
  * holding nobody but the user added here — which, the file winning, is what
844
794
  * the next boot would keep. So the same boot migration runs first.
845
795
  */
846
- async function userCommand(args, configPath, flagPassword, flagEmail) {
796
+ async function userCommand({ args, configPath, password: flagPassword, email: flagEmail, }) {
847
797
  const subcommand = args[0];
848
798
  if (subcommand === undefined) {
849
799
  throw new Error('geekity user add <username> needs a subcommand. The only one is: add.');
@@ -862,11 +812,18 @@ async function userCommand(args, configPath, flagPassword, flagEmail) {
862
812
  process.stderr.write(`${problem}\n`);
863
813
  return 1;
864
814
  }
865
- const config = resolveConfig(await loadConfig(process.cwd(), configPath));
866
- const admin = openAdminStore({ dataDir: config.dataDir });
867
- migrateUsersToFile({ admin, dataDir: config.dataDir });
815
+ const config = await loadResolvedConfig(configPath);
816
+ const adminDb = openAdminDatabase(config.dataDir, config.now);
817
+ migrateUsersToFile(adminDb, config.dataDir);
818
+ const admin = adminStoreOwning(adminDb, databaseFile(config.dataDir), config.now);
868
819
  try {
869
- const user = await createUser({ dataDir: config.dataDir, username, password, email });
820
+ const user = await createUser({
821
+ dataDir: config.dataDir,
822
+ username,
823
+ password,
824
+ email,
825
+ now: config.now(),
826
+ });
870
827
  process.stdout.write(`Created admin user ${user.username}${user.email === undefined ? '' : ` (${user.email})`}. Sign in at ${LOGIN_URL}.\n`);
871
828
  return 0;
872
829
  }
@@ -943,15 +900,16 @@ async function pluginCommands(config) {
943
900
  */
944
901
  async function pluginCommand(argv) {
945
902
  const configPath = configFlag(argv);
946
- const config = resolveConfig(await loadConfig(process.cwd(), configPath));
903
+ const config = await loadResolvedConfig(configPath);
947
904
  const words = leadingWords(argv);
948
905
  const found = (await pluginCommands(config)).find(({ command }) => command.words.every((word, index) => words[index] === word));
949
906
  if (found === undefined) {
950
907
  throw new Error(`Unknown command "${words[0] ?? ''}". Run geekity --help to see what is available.`);
951
908
  }
952
909
  const { args, options } = parseCommandArgs(withoutConfig(argv).slice(found.command.words.length), found.command);
953
- const admin = openAdminStore({ dataDir: config.dataDir });
954
- migrateUsersToFile({ admin, dataDir: config.dataDir });
910
+ const adminDb = openAdminDatabase(config.dataDir, config.now);
911
+ migrateUsersToFile(adminDb, config.dataDir);
912
+ const admin = adminStoreOwning(adminDb, databaseFile(config.dataDir), config.now);
955
913
  const comments = { contentDir: config.contentDir, dataDir: config.dataDir };
956
914
  migrateCommentEmails(comments);
957
915
  migrateCommentKeys(comments);
@@ -1025,14 +983,14 @@ function parseCommandArgs(argv, command) {
1025
983
  async function usage(configPath) {
1026
984
  let found;
1027
985
  try {
1028
- found = await pluginCommands(resolveConfig(await loadConfig(process.cwd(), configPath)));
986
+ found = await pluginCommands(await loadResolvedConfig(configPath));
1029
987
  }
1030
988
  catch (error) {
1031
- process.stderr.write(`Plugin commands are not listed: ${error instanceof Error ? error.message : String(error)}\n`);
1032
- return USAGE;
989
+ process.stderr.write(`Plugin commands are not listed: ${messageOf(error)}\n`);
990
+ return coreUsage();
1033
991
  }
1034
992
  if (found.length === 0)
1035
- return USAGE;
993
+ return coreUsage();
1036
994
  const lines = ['', 'Plugin commands:'];
1037
995
  for (const { plugin, command } of found) {
1038
996
  const synopsis = wrap(`geekity ${[...command.words, command.usage].join(' ').trim()} [--config <file>]`, USAGE_CONTINUATION);
@@ -1040,18 +998,31 @@ async function usage(configPath) {
1040
998
  lines.push(...wrap(command.summary, HELP_INDENT), `${HELP_INDENT}From ${plugin}.`);
1041
999
  for (const option of command.options ?? []) {
1042
1000
  const flag = `--${option.name}${option.value === undefined ? '' : ` ${option.value}`}`;
1043
- const described = wrap(option.description, HELP_INDENT);
1044
- const head = ` ${flag}`;
1045
- if (head.length < HELP_INDENT.length - 1 && described[0] !== undefined) {
1046
- described[0] = `${head.padEnd(HELP_INDENT.length)}${described[0].trimStart()}`;
1047
- lines.push(...described);
1048
- }
1049
- else {
1050
- lines.push(head, ...described);
1051
- }
1001
+ lines.push(...helpEntry(` ${flag}`, wrap(option.description, HELP_INDENT)));
1052
1002
  }
1053
1003
  }
1054
- return `${USAGE}${lines.join('\n')}\n`;
1004
+ return `${coreUsage()}${lines.join('\n')}\n`;
1005
+ }
1006
+ function coreUsage() {
1007
+ const entries = Object.values(COMMANDS);
1008
+ return [
1009
+ 'geekity — the Geekity CMS command line',
1010
+ '',
1011
+ 'Usage:',
1012
+ ...entries.flatMap((entry) => entry.synopsis.map((line) => ` geekity ${line}`)),
1013
+ '',
1014
+ 'Commands:',
1015
+ ...entries.flatMap((entry) => entry.help.flatMap(([words, summary]) => helpEntry(` ${words}`, summary.map((line) => `${HELP_INDENT}${line}`)))),
1016
+ '',
1017
+ OPTIONS_HELP,
1018
+ ].join('\n');
1019
+ }
1020
+ function helpEntry(head, described) {
1021
+ if (head.length < HELP_INDENT.length - 1 && described[0] !== undefined) {
1022
+ described[0] = `${head.padEnd(HELP_INDENT.length)}${described[0].trimStart()}`;
1023
+ return described;
1024
+ }
1025
+ return [head, ...described];
1055
1026
  }
1056
1027
  /** Where the help's descriptions start, as the core commands' do. */
1057
1028
  const HELP_INDENT = ' '.repeat(19);
@@ -1159,7 +1130,7 @@ if (isEntryPoint()) {
1159
1130
  process.exitCode = code;
1160
1131
  })
1161
1132
  .catch((error) => {
1162
- process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`);
1133
+ process.stderr.write(`${messageOf(error)}\n`);
1163
1134
  process.exit(1);
1164
1135
  });
1165
1136
  }