@geekity/cms 0.31.0 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/components/badge.njk +4 -0
- package/admin/components/fields.njk +41 -24
- package/admin/components/job-status.njk +45 -0
- package/admin/components/setting-fields.njk +38 -0
- package/admin/layouts/settings-page.njk +16 -0
- package/admin/pages/comments/all.njk +1 -2
- package/admin/pages/documents/editor.njk +17 -15
- package/admin/pages/documents/syndication.njk +4 -4
- package/admin/pages/federation/followers.njk +56 -6
- package/admin/pages/federation/settings.njk +1 -1
- package/admin/pages/media/library.njk +52 -3
- package/admin/pages/navigation/menus.njk +2 -2
- package/admin/pages/plugins/screen.njk +5 -46
- package/admin/pages/settings/discussion.njk +76 -47
- package/admin/pages/settings/email.njk +75 -47
- package/admin/pages/settings/general.njk +15 -15
- package/admin/pages/settings/permalinks.njk +8 -8
- package/admin/pages/settings/privacy.njk +6 -6
- package/admin/pages/settings/reading.njk +36 -36
- package/admin/pages/tools/dev-mode.njk +29 -3
- package/admin/pages/tools/export.njk +89 -0
- package/admin/pages/tools/maintenance.njk +51 -0
- package/admin/pages/users/apps.njk +2 -2
- package/admin/pages/users/edit.njk +3 -3
- package/admin/pages/users/new.njk +2 -2
- package/admin/static/admin.css +80 -0
- package/dist/admin/app-activity.d.ts.map +1 -1
- package/dist/admin/app-activity.js +2 -3
- package/dist/admin/app-activity.js.map +1 -1
- package/dist/admin/appearance.d.ts +1 -5
- package/dist/admin/appearance.d.ts.map +1 -1
- package/dist/admin/appearance.js +9 -16
- package/dist/admin/appearance.js.map +1 -1
- package/dist/admin/comments.d.ts.map +1 -1
- package/dist/admin/comments.js +2 -3
- package/dist/admin/comments.js.map +1 -1
- package/dist/admin/confirm-password.d.ts +4 -0
- package/dist/admin/confirm-password.d.ts.map +1 -0
- package/dist/admin/confirm-password.js +11 -0
- package/dist/admin/confirm-password.js.map +1 -0
- package/dist/admin/connected-apps.d.ts.map +1 -1
- package/dist/admin/connected-apps.js +17 -22
- package/dist/admin/connected-apps.js.map +1 -1
- package/dist/admin/dev-mode.d.ts.map +1 -1
- package/dist/admin/dev-mode.js +35 -10
- package/dist/admin/dev-mode.js.map +1 -1
- package/dist/admin/documents.d.ts.map +1 -1
- package/dist/admin/documents.js +22 -10
- package/dist/admin/documents.js.map +1 -1
- package/dist/admin/editor-actions.d.ts.map +1 -1
- package/dist/admin/editor-actions.js +1 -2
- package/dist/admin/editor-actions.js.map +1 -1
- package/dist/admin/editor-layout.js +1 -1
- package/dist/admin/editor-layout.js.map +1 -1
- package/dist/admin/export.d.ts +10 -0
- package/dist/admin/export.d.ts.map +1 -0
- package/dist/admin/export.js +72 -0
- package/dist/admin/export.js.map +1 -0
- package/dist/admin/federation.d.ts +1 -12
- package/dist/admin/federation.d.ts.map +1 -1
- package/dist/admin/federation.js +34 -87
- package/dist/admin/federation.js.map +1 -1
- package/dist/admin/index.d.ts +2 -5
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +2 -4
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/indieauth-consent.d.ts.map +1 -1
- package/dist/admin/indieauth-consent.js +5 -7
- package/dist/admin/indieauth-consent.js.map +1 -1
- package/dist/admin/job-status.d.ts +25 -0
- package/dist/admin/job-status.d.ts.map +1 -0
- package/dist/admin/job-status.js +53 -0
- package/dist/admin/job-status.js.map +1 -0
- package/dist/admin/legacy-migrations.d.ts.map +1 -1
- package/dist/admin/legacy-migrations.js +7 -6
- package/dist/admin/legacy-migrations.js.map +1 -1
- package/dist/admin/maintenance.d.ts +9 -0
- package/dist/admin/maintenance.d.ts.map +1 -0
- package/dist/admin/maintenance.js +42 -0
- package/dist/admin/maintenance.js.map +1 -0
- package/dist/admin/media.d.ts +4 -1
- package/dist/admin/media.d.ts.map +1 -1
- package/dist/admin/media.js +16 -1
- package/dist/admin/media.js.map +1 -1
- package/dist/admin/menu.d.ts.map +1 -1
- package/dist/admin/menu.js +4 -0
- package/dist/admin/menu.js.map +1 -1
- package/dist/admin/messages.d.ts.map +1 -1
- package/dist/admin/messages.js +2 -3
- package/dist/admin/messages.js.map +1 -1
- package/dist/admin/navigation.d.ts.map +1 -1
- package/dist/admin/navigation.js +27 -23
- package/dist/admin/navigation.js.map +1 -1
- package/dist/admin/plugins.d.ts.map +1 -1
- package/dist/admin/plugins.js +19 -66
- package/dist/admin/plugins.js.map +1 -1
- package/dist/admin/preview.d.ts.map +1 -1
- package/dist/admin/preview.js +5 -6
- package/dist/admin/preview.js.map +1 -1
- package/dist/admin/recovery.js +2 -2
- package/dist/admin/recovery.js.map +1 -1
- package/dist/admin/routes.d.ts.map +1 -1
- package/dist/admin/routes.js +6 -3
- package/dist/admin/routes.js.map +1 -1
- package/dist/admin/setting-overrides.d.ts +4 -0
- package/dist/admin/setting-overrides.d.ts.map +1 -0
- package/dist/admin/setting-overrides.js +24 -0
- package/dist/admin/setting-overrides.js.map +1 -0
- package/dist/admin/settings-discussion.d.ts +6 -4
- package/dist/admin/settings-discussion.d.ts.map +1 -1
- package/dist/admin/settings-discussion.js +75 -45
- package/dist/admin/settings-discussion.js.map +1 -1
- package/dist/admin/settings-email.d.ts +11 -8
- package/dist/admin/settings-email.d.ts.map +1 -1
- package/dist/admin/settings-email.js +88 -77
- package/dist/admin/settings-email.js.map +1 -1
- package/dist/admin/settings-federation.d.ts +0 -7
- package/dist/admin/settings-federation.d.ts.map +1 -1
- package/dist/admin/settings-federation.js +0 -36
- package/dist/admin/settings-federation.js.map +1 -1
- package/dist/admin/settings-fields.d.ts +32 -0
- package/dist/admin/settings-fields.d.ts.map +1 -0
- package/dist/admin/settings-fields.js +368 -0
- package/dist/admin/settings-fields.js.map +1 -0
- package/dist/admin/settings-general.d.ts.map +1 -1
- package/dist/admin/settings-general.js +10 -19
- package/dist/admin/settings-general.js.map +1 -1
- package/dist/admin/settings-page.d.ts +3 -29
- package/dist/admin/settings-page.d.ts.map +1 -1
- package/dist/admin/settings-page.js +38 -53
- package/dist/admin/settings-page.js.map +1 -1
- package/dist/admin/settings-permalinks.js +2 -2
- package/dist/admin/settings-permalinks.js.map +1 -1
- package/dist/admin/settings-privacy.js +1 -1
- package/dist/admin/settings-privacy.js.map +1 -1
- package/dist/admin/settings-reading.js +13 -13
- package/dist/admin/settings-reading.js.map +1 -1
- package/dist/admin/settings-renderer.d.ts +32 -0
- package/dist/admin/settings-renderer.d.ts.map +1 -0
- package/dist/admin/settings-renderer.js +79 -0
- package/dist/admin/settings-renderer.js.map +1 -0
- package/dist/admin/site-setting-edit.d.ts +4 -0
- package/dist/admin/site-setting-edit.d.ts.map +1 -0
- package/dist/admin/site-setting-edit.js +20 -0
- package/dist/admin/site-setting-edit.js.map +1 -0
- package/dist/admin/taxonomy.d.ts.map +1 -1
- package/dist/admin/taxonomy.js +10 -19
- package/dist/admin/taxonomy.js.map +1 -1
- package/dist/admin/templates.d.ts +2 -0
- package/dist/admin/templates.d.ts.map +1 -1
- package/dist/admin/templates.js +2 -0
- package/dist/admin/templates.js.map +1 -1
- package/dist/admin/users.js +1 -1
- package/dist/admin/users.js.map +1 -1
- package/dist/avatars/avatars.d.ts +0 -2
- package/dist/avatars/avatars.d.ts.map +1 -1
- package/dist/avatars/avatars.js +9 -10
- package/dist/avatars/avatars.js.map +1 -1
- package/dist/avatars/index.d.ts +1 -1
- package/dist/avatars/index.d.ts.map +1 -1
- package/dist/avatars/index.js +1 -1
- package/dist/avatars/index.js.map +1 -1
- package/dist/cache.d.ts +0 -2
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +2 -4
- package/dist/cache.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +500 -86
- package/dist/cli.js.map +1 -1
- package/dist/cms/app.d.ts +1 -1
- package/dist/cms/app.d.ts.map +1 -1
- package/dist/cms/app.js +13 -2
- package/dist/cms/app.js.map +1 -1
- package/dist/cms/boot.d.ts +12 -0
- package/dist/cms/boot.d.ts.map +1 -1
- package/dist/cms/boot.js +37 -16
- package/dist/cms/boot.js.map +1 -1
- package/dist/cms/create.d.ts +24 -0
- package/dist/cms/create.d.ts.map +1 -1
- package/dist/cms/create.js +14 -0
- package/dist/cms/create.js.map +1 -1
- package/dist/cms/services.d.ts +3 -1
- package/dist/cms/services.d.ts.map +1 -1
- package/dist/cms/services.js +83 -26
- package/dist/cms/services.js.map +1 -1
- package/dist/cms/site-records.d.ts.map +1 -1
- package/dist/cms/site-records.js +0 -2
- package/dist/cms/site-records.js.map +1 -1
- package/dist/comments/akismet.d.ts +13 -46
- package/dist/comments/akismet.d.ts.map +1 -1
- package/dist/comments/akismet.js +29 -68
- package/dist/comments/akismet.js.map +1 -1
- package/dist/comments/conversation.d.ts +14 -8
- package/dist/comments/conversation.d.ts.map +1 -1
- package/dist/comments/conversation.js.map +1 -1
- package/dist/comments/index.d.ts +4 -4
- package/dist/comments/index.d.ts.map +1 -1
- package/dist/comments/index.js +3 -3
- package/dist/comments/index.js.map +1 -1
- package/dist/comments/policy.d.ts +23 -26
- package/dist/comments/policy.d.ts.map +1 -1
- package/dist/comments/policy.js +13 -20
- package/dist/comments/policy.js.map +1 -1
- package/dist/comments/records.d.ts +0 -2
- package/dist/comments/records.d.ts.map +1 -1
- package/dist/comments/records.js +2 -3
- package/dist/comments/records.js.map +1 -1
- package/dist/comments/reply-notices.d.ts +5 -6
- package/dist/comments/reply-notices.d.ts.map +1 -1
- package/dist/comments/reply-notices.js +27 -15
- package/dist/comments/reply-notices.js.map +1 -1
- package/dist/comments/reply-post.d.ts.map +1 -1
- package/dist/comments/reply-post.js +2 -3
- package/dist/comments/reply-post.js.map +1 -1
- package/dist/comments/submission.d.ts +0 -2
- package/dist/comments/submission.d.ts.map +1 -1
- package/dist/comments/submission.js +1 -3
- package/dist/comments/submission.js.map +1 -1
- package/dist/config-loader.d.ts.map +1 -1
- package/dist/config-loader.js +2 -1
- package/dist/config-loader.js.map +1 -1
- package/dist/config.d.ts +27 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -1
- package/dist/config.js.map +1 -1
- package/dist/contact/delivery.d.ts +2 -4
- package/dist/contact/delivery.d.ts.map +1 -1
- package/dist/contact/delivery.js +1 -2
- package/dist/contact/delivery.js.map +1 -1
- package/dist/contact/index.d.ts +1 -1
- package/dist/contact/index.d.ts.map +1 -1
- package/dist/contact/index.js +1 -1
- package/dist/contact/index.js.map +1 -1
- package/dist/contact/records.d.ts +0 -2
- package/dist/contact/records.d.ts.map +1 -1
- package/dist/contact/records.js +3 -5
- package/dist/contact/records.js.map +1 -1
- package/dist/content/citation.d.ts +1 -0
- package/dist/content/citation.d.ts.map +1 -1
- package/dist/content/citation.js.map +1 -1
- package/dist/content/document-form.d.ts +3 -1
- package/dist/content/document-form.d.ts.map +1 -1
- package/dist/content/document-form.js.map +1 -1
- package/dist/content/enclosure-form.d.ts.map +1 -1
- package/dist/content/enclosure-form.js +5 -6
- package/dist/content/enclosure-form.js.map +1 -1
- package/dist/content/excerpt.d.ts +1 -0
- package/dist/content/excerpt.d.ts.map +1 -1
- package/dist/content/excerpt.js +3 -0
- package/dist/content/excerpt.js.map +1 -1
- package/dist/content/index.d.ts +3 -3
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/index.js +2 -2
- package/dist/content/index.js.map +1 -1
- package/dist/content/kept-properties.d.ts +0 -1
- package/dist/content/kept-properties.d.ts.map +1 -1
- package/dist/content/kept-properties.js +2 -2
- package/dist/content/kept-properties.js.map +1 -1
- package/dist/content/locations.d.ts +0 -1
- package/dist/content/locations.d.ts.map +1 -1
- package/dist/content/locations.js +2 -2
- package/dist/content/locations.js.map +1 -1
- package/dist/content/media.d.ts +7 -0
- package/dist/content/media.d.ts.map +1 -1
- package/dist/content/media.js +12 -1
- package/dist/content/media.js.map +1 -1
- package/dist/content/metadata/strip-job.d.ts +16 -0
- package/dist/content/metadata/strip-job.d.ts.map +1 -0
- package/dist/content/metadata/strip-job.js +24 -0
- package/dist/content/metadata/strip-job.js.map +1 -0
- package/dist/content/metadata/sweep.d.ts +13 -1
- package/dist/content/metadata/sweep.d.ts.map +1 -1
- package/dist/content/metadata/sweep.js +47 -25
- package/dist/content/metadata/sweep.js.map +1 -1
- package/dist/content/permalink-file.d.ts +2 -1
- package/dist/content/permalink-file.d.ts.map +1 -1
- package/dist/content/permalink-file.js +3 -3
- package/dist/content/permalink-file.js.map +1 -1
- package/dist/content/photo-form.d.ts +1 -0
- package/dist/content/photo-form.d.ts.map +1 -1
- package/dist/content/photo-form.js +8 -5
- package/dist/content/photo-form.js.map +1 -1
- package/dist/content/photo.d.ts +1 -0
- package/dist/content/photo.d.ts.map +1 -1
- package/dist/content/photo.js +1 -1
- package/dist/content/photo.js.map +1 -1
- package/dist/content/post-fields.d.ts.map +1 -1
- package/dist/content/post-fields.js +5 -9
- package/dist/content/post-fields.js.map +1 -1
- package/dist/content/read-form.d.ts +10 -3
- package/dist/content/read-form.d.ts.map +1 -1
- package/dist/content/read-form.js +67 -9
- package/dist/content/read-form.js.map +1 -1
- package/dist/content/read.d.ts +9 -2
- package/dist/content/read.d.ts.map +1 -1
- package/dist/content/read.js +22 -3
- package/dist/content/read.js.map +1 -1
- package/dist/content/store.d.ts +0 -1
- package/dist/content/store.d.ts.map +1 -1
- package/dist/content/store.js +0 -1
- package/dist/content/store.js.map +1 -1
- package/dist/content/uploads.d.ts +1 -1
- package/dist/content/uploads.d.ts.map +1 -1
- package/dist/content/uploads.js +6 -1
- package/dist/content/uploads.js.map +1 -1
- package/dist/content/write.d.ts +1 -1
- package/dist/content/write.d.ts.map +1 -1
- package/dist/content/write.js +7 -3
- package/dist/content/write.js.map +1 -1
- package/dist/dev-mode.d.ts +4 -26
- package/dist/dev-mode.d.ts.map +1 -1
- package/dist/dev-mode.js +4 -53
- package/dist/dev-mode.js.map +1 -1
- package/dist/export/export-archives.d.ts +29 -0
- package/dist/export/export-archives.d.ts.map +1 -0
- package/dist/export/export-archives.js +88 -0
- package/dist/export/export-archives.js.map +1 -0
- package/dist/export/export-job.d.ts +21 -0
- package/dist/export/export-job.d.ts.map +1 -0
- package/dist/export/export-job.js +63 -0
- package/dist/export/export-job.js.map +1 -0
- package/dist/export/site-export.d.ts +101 -0
- package/dist/export/site-export.d.ts.map +1 -0
- package/dist/export/site-export.js +243 -0
- package/dist/export/site-export.js.map +1 -0
- package/dist/export/site-import.d.ts +75 -0
- package/dist/export/site-import.d.ts.map +1 -0
- package/dist/export/site-import.js +492 -0
- package/dist/export/site-import.js.map +1 -0
- package/dist/exports.d.ts +9 -4
- package/dist/exports.d.ts.map +1 -1
- package/dist/exports.js +3 -1
- package/dist/exports.js.map +1 -1
- package/dist/federation/article.d.ts.map +1 -1
- package/dist/federation/article.js +22 -20
- package/dist/federation/article.js.map +1 -1
- package/dist/federation/backfill.d.ts +3 -1
- package/dist/federation/backfill.d.ts.map +1 -1
- package/dist/federation/backfill.js +5 -3
- package/dist/federation/backfill.js.map +1 -1
- package/dist/federation/cited-post.d.ts +1 -1
- package/dist/federation/cited-post.d.ts.map +1 -1
- package/dist/federation/cited-post.js +1 -1
- package/dist/federation/cited-post.js.map +1 -1
- package/dist/federation/delivery.d.ts +5 -2
- package/dist/federation/delivery.d.ts.map +1 -1
- package/dist/federation/delivery.js +16 -12
- package/dist/federation/delivery.js.map +1 -1
- package/dist/federation/federation.d.ts +7 -7
- package/dist/federation/federation.d.ts.map +1 -1
- package/dist/federation/federation.js +5 -12
- package/dist/federation/federation.js.map +1 -1
- package/dist/federation/handles.d.ts +1 -1
- package/dist/federation/handles.d.ts.map +1 -1
- package/dist/federation/handles.js +1 -1
- package/dist/federation/handles.js.map +1 -1
- package/dist/federation/inbox.js +1 -1
- package/dist/federation/inbox.js.map +1 -1
- package/dist/federation/keys.js +3 -3
- package/dist/federation/keys.js.map +1 -1
- package/dist/federation/profiles.d.ts +1 -1
- package/dist/federation/profiles.d.ts.map +1 -1
- package/dist/federation/profiles.js +1 -1
- package/dist/federation/profiles.js.map +1 -1
- package/dist/federation/queue.d.ts +32 -17
- package/dist/federation/queue.d.ts.map +1 -1
- package/dist/federation/queue.js +173 -39
- package/dist/federation/queue.js.map +1 -1
- package/dist/federation/relays.d.ts +6 -2
- package/dist/federation/relays.d.ts.map +1 -1
- package/dist/federation/relays.js +43 -36
- package/dist/federation/relays.js.map +1 -1
- package/dist/federation/resend-job.d.ts +44 -0
- package/dist/federation/resend-job.d.ts.map +1 -0
- package/dist/federation/resend-job.js +59 -0
- package/dist/federation/resend-job.js.map +1 -0
- package/dist/files/atomic.d.ts +9 -0
- package/dist/files/atomic.d.ts.map +1 -1
- package/dist/files/atomic.js +1 -1
- package/dist/files/atomic.js.map +1 -1
- package/dist/files/data-files.d.ts +104 -0
- package/dist/files/data-files.d.ts.map +1 -0
- package/dist/files/data-files.js +330 -0
- package/dist/files/data-files.js.map +1 -0
- package/dist/files/export-archives.d.ts +12 -0
- package/dist/files/export-archives.d.ts.map +1 -0
- package/dist/files/export-archives.js +67 -0
- package/dist/files/export-archives.js.map +1 -0
- package/dist/files/static-files.d.ts.map +1 -1
- package/dist/files/static-files.js +7 -22
- package/dist/files/static-files.js.map +1 -1
- package/dist/files/tar.d.ts +29 -0
- package/dist/files/tar.d.ts.map +1 -0
- package/dist/files/tar.js +206 -0
- package/dist/files/tar.js.map +1 -0
- package/dist/files/upload-types.d.ts +81 -0
- package/dist/files/upload-types.d.ts.map +1 -0
- package/dist/files/upload-types.js +234 -0
- package/dist/files/upload-types.js.map +1 -0
- package/dist/forms/protection.d.ts +0 -8
- package/dist/forms/protection.d.ts.map +1 -1
- package/dist/forms/protection.js +2 -10
- package/dist/forms/protection.js.map +1 -1
- package/dist/images/icons.d.ts.map +1 -1
- package/dist/images/icons.js +2 -0
- package/dist/images/icons.js.map +1 -1
- package/dist/images/index.d.ts +1 -1
- package/dist/images/index.d.ts.map +1 -1
- package/dist/images/index.js +1 -1
- package/dist/images/index.js.map +1 -1
- package/dist/images/markup.d.ts +4 -1
- package/dist/images/markup.d.ts.map +1 -1
- package/dist/images/markup.js +10 -6
- package/dist/images/markup.js.map +1 -1
- package/dist/images/paths.d.ts +1 -4
- package/dist/images/paths.d.ts.map +1 -1
- package/dist/images/paths.js +6 -12
- package/dist/images/paths.js.map +1 -1
- package/dist/images/variants.d.ts +4 -2
- package/dist/images/variants.d.ts.map +1 -1
- package/dist/images/variants.js +21 -21
- package/dist/images/variants.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/indexnow.d.ts +4 -2
- package/dist/indexnow.d.ts.map +1 -1
- package/dist/indexnow.js +32 -20
- package/dist/indexnow.js.map +1 -1
- package/dist/indieauth/tokens.d.ts +0 -2
- package/dist/indieauth/tokens.d.ts.map +1 -1
- package/dist/indieauth/tokens.js +2 -4
- package/dist/indieauth/tokens.js.map +1 -1
- package/dist/jobs/file-records.d.ts +13 -0
- package/dist/jobs/file-records.d.ts.map +1 -0
- package/dist/jobs/file-records.js +104 -0
- package/dist/jobs/file-records.js.map +1 -0
- package/dist/jobs/in-process.d.ts +10 -0
- package/dist/jobs/in-process.d.ts.map +1 -0
- package/dist/jobs/in-process.js +45 -0
- package/dist/jobs/in-process.js.map +1 -0
- package/dist/jobs/lock-file.d.ts +13 -0
- package/dist/jobs/lock-file.d.ts.map +1 -0
- package/dist/jobs/lock-file.js +107 -0
- package/dist/jobs/lock-file.js.map +1 -0
- package/dist/jobs/processes.d.ts +11 -0
- package/dist/jobs/processes.d.ts.map +1 -0
- package/dist/jobs/processes.js +50 -0
- package/dist/jobs/processes.js.map +1 -0
- package/dist/jobs/queue.d.ts +18 -0
- package/dist/jobs/queue.d.ts.map +1 -0
- package/dist/jobs/queue.js +220 -0
- package/dist/jobs/queue.js.map +1 -0
- package/dist/jobs/types.d.ts +159 -0
- package/dist/jobs/types.d.ts.map +1 -0
- package/dist/jobs/types.js +22 -0
- package/dist/jobs/types.js.map +1 -0
- package/dist/mail/index.d.ts +0 -2
- package/dist/mail/index.d.ts.map +1 -1
- package/dist/mail/index.js +0 -1
- package/dist/mail/index.js.map +1 -1
- package/dist/maintenance.d.ts +5 -42
- package/dist/maintenance.d.ts.map +1 -1
- package/dist/maintenance.js +4 -67
- package/dist/maintenance.js.map +1 -1
- package/dist/media/library.d.ts +1 -1
- package/dist/media/library.d.ts.map +1 -1
- package/dist/media/library.js +4 -1
- package/dist/media/library.js.map +1 -1
- package/dist/media/uploads.d.ts +1 -1
- package/dist/media/uploads.d.ts.map +1 -1
- package/dist/media/uploads.js +1 -1
- package/dist/media/uploads.js.map +1 -1
- package/dist/micropub/endpoint.js +10 -10
- package/dist/micropub/endpoint.js.map +1 -1
- package/dist/micropub/media.d.ts +0 -2
- package/dist/micropub/media.d.ts.map +1 -1
- package/dist/micropub/media.js +5 -7
- package/dist/micropub/media.js.map +1 -1
- package/dist/notifications/comments.d.ts +4 -2
- package/dist/notifications/comments.d.ts.map +1 -1
- package/dist/notifications/comments.js +77 -65
- package/dist/notifications/comments.js.map +1 -1
- package/dist/notifications/digest.d.ts +2 -4
- package/dist/notifications/digest.d.ts.map +1 -1
- package/dist/notifications/digest.js +9 -10
- package/dist/notifications/digest.js.map +1 -1
- package/dist/notifications/index.d.ts +3 -3
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +3 -3
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/mail-service.d.ts +10 -8
- package/dist/notifications/mail-service.d.ts.map +1 -1
- package/dist/notifications/mail-service.js +70 -70
- package/dist/notifications/mail-service.js.map +1 -1
- package/dist/notifications/optouts.d.ts +0 -2
- package/dist/notifications/optouts.d.ts.map +1 -1
- package/dist/notifications/optouts.js +2 -4
- package/dist/notifications/optouts.js.map +1 -1
- package/dist/notifications/tokens.d.ts +0 -2
- package/dist/notifications/tokens.d.ts.map +1 -1
- package/dist/notifications/tokens.js +2 -28
- package/dist/notifications/tokens.js.map +1 -1
- package/dist/notify.d.ts +4 -2
- package/dist/notify.d.ts.map +1 -1
- package/dist/notify.js +27 -15
- package/dist/notify.js.map +1 -1
- package/dist/plugin.d.ts +36 -16
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/plugins/changes.d.ts +0 -1
- package/dist/plugins/changes.d.ts.map +1 -1
- package/dist/plugins/changes.js +2 -3
- package/dist/plugins/changes.js.map +1 -1
- package/dist/plugins/data.d.ts +19 -0
- package/dist/plugins/data.d.ts.map +1 -0
- package/dist/plugins/data.js +117 -0
- package/dist/plugins/data.js.map +1 -0
- package/dist/plugins/enabled.d.ts +1 -13
- package/dist/plugins/enabled.d.ts.map +1 -1
- package/dist/plugins/enabled.js +11 -23
- package/dist/plugins/enabled.js.map +1 -1
- package/dist/plugins/install.d.ts +1 -1
- package/dist/plugins/install.d.ts.map +1 -1
- package/dist/plugins/install.js +7 -42
- package/dist/plugins/install.js.map +1 -1
- package/dist/plugins/migrate-settings.d.ts +7 -0
- package/dist/plugins/migrate-settings.d.ts.map +1 -0
- package/dist/plugins/migrate-settings.js +41 -0
- package/dist/plugins/migrate-settings.js.map +1 -0
- package/dist/plugins/registry.d.ts +10 -14
- package/dist/plugins/registry.d.ts.map +1 -1
- package/dist/plugins/registry.js +56 -36
- package/dist/plugins/registry.js.map +1 -1
- package/dist/plugins/settings.d.ts +5 -57
- package/dist/plugins/settings.d.ts.map +1 -1
- package/dist/plugins/settings.js +47 -180
- package/dist/plugins/settings.js.map +1 -1
- package/dist/plugins/site.d.ts +2 -1
- package/dist/plugins/site.d.ts.map +1 -1
- package/dist/plugins/site.js +5 -5
- package/dist/plugins/site.js.map +1 -1
- package/dist/privacy/retention.d.ts +4 -0
- package/dist/privacy/retention.d.ts.map +1 -1
- package/dist/privacy/retention.js +12 -5
- package/dist/privacy/retention.js.map +1 -1
- package/dist/settings/akismet.d.ts +9 -0
- package/dist/settings/akismet.d.ts.map +1 -0
- package/dist/settings/akismet.js +46 -0
- package/dist/settings/akismet.js.map +1 -0
- package/dist/settings/declare.d.ts +15 -0
- package/dist/settings/declare.d.ts.map +1 -0
- package/dist/settings/declare.js +20 -0
- package/dist/settings/declare.js.map +1 -0
- package/dist/settings/dev-mode.d.ts +29 -0
- package/dist/settings/dev-mode.d.ts.map +1 -0
- package/dist/settings/dev-mode.js +77 -0
- package/dist/settings/dev-mode.js.map +1 -0
- package/dist/settings/kinds.d.ts +13 -0
- package/dist/settings/kinds.d.ts.map +1 -0
- package/dist/settings/kinds.js +108 -0
- package/dist/settings/kinds.js.map +1 -0
- package/dist/settings/mail.d.ts +10 -0
- package/dist/settings/mail.d.ts.map +1 -0
- package/dist/settings/mail.js +92 -0
- package/dist/settings/mail.js.map +1 -0
- package/dist/settings/maintenance.d.ts +6 -0
- package/dist/settings/maintenance.d.ts.map +1 -0
- package/dist/settings/maintenance.js +33 -0
- package/dist/settings/maintenance.js.map +1 -0
- package/dist/settings/names.d.ts +7 -0
- package/dist/settings/names.d.ts.map +1 -0
- package/dist/settings/names.js +31 -0
- package/dist/settings/names.js.map +1 -0
- package/dist/settings/presence.d.ts +2 -0
- package/dist/settings/presence.d.ts.map +1 -0
- package/dist/settings/presence.js +7 -0
- package/dist/settings/presence.js.map +1 -0
- package/dist/settings/registry.d.ts +14 -0
- package/dist/settings/registry.d.ts.map +1 -0
- package/dist/settings/registry.js +369 -0
- package/dist/settings/registry.js.map +1 -0
- package/dist/settings/types.d.ts +176 -0
- package/dist/settings/types.d.ts.map +1 -0
- package/dist/settings/types.js +2 -0
- package/dist/settings/types.js.map +1 -0
- package/dist/site/namespace.d.ts +88 -0
- package/dist/site/namespace.d.ts.map +1 -0
- package/dist/site/namespace.js +471 -0
- package/dist/site/namespace.js.map +1 -0
- package/dist/site/setting-rows.d.ts +9 -10
- package/dist/site/setting-rows.d.ts.map +1 -1
- package/dist/site/setting-rows.js +109 -228
- package/dist/site/setting-rows.js.map +1 -1
- package/dist/site/settings-form.d.ts.map +1 -1
- package/dist/site/settings-form.js +6 -10
- package/dist/site/settings-form.js.map +1 -1
- package/dist/site/settings.d.ts +6 -322
- package/dist/site/settings.d.ts.map +1 -1
- package/dist/site/settings.js +13 -76
- package/dist/site/settings.js.map +1 -1
- package/dist/site/site-json.d.ts +0 -31
- package/dist/site/site-json.d.ts.map +1 -1
- package/dist/site/site-json.js +5 -49
- package/dist/site/site-json.js.map +1 -1
- package/dist/site/users.d.ts +0 -9
- package/dist/site/users.d.ts.map +1 -1
- package/dist/site/users.js +2 -11
- package/dist/site/users.js.map +1 -1
- package/dist/store/queue-database.d.ts +11 -0
- package/dist/store/queue-database.d.ts.map +1 -0
- package/dist/store/queue-database.js +39 -0
- package/dist/store/queue-database.js.map +1 -0
- package/dist/supervisor/control.d.ts +1 -0
- package/dist/supervisor/control.d.ts.map +1 -1
- package/dist/supervisor/control.js +10 -0
- package/dist/supervisor/control.js.map +1 -1
- package/dist/supervisor/primary.d.ts.map +1 -1
- package/dist/supervisor/primary.js +15 -3
- package/dist/supervisor/primary.js.map +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +1 -1
- package/dist/testing.js.map +1 -1
- package/dist/theme/site-data.d.ts +1 -1
- package/dist/theme/site-data.d.ts.map +1 -1
- package/dist/theme/site-data.js.map +1 -1
- package/dist/web/asset-routes.d.ts +6 -2
- package/dist/web/asset-routes.d.ts.map +1 -1
- package/dist/web/asset-routes.js +12 -4
- package/dist/web/asset-routes.js.map +1 -1
- package/dist/web/comment-routes.d.ts.map +1 -1
- package/dist/web/comment-routes.js +4 -4
- package/dist/web/comment-routes.js.map +1 -1
- package/dist/web/contact-routes.js +1 -1
- package/dist/web/contact-routes.js.map +1 -1
- package/dist/web/context.d.ts +5 -0
- package/dist/web/context.d.ts.map +1 -1
- package/dist/web/context.js +9 -4
- package/dist/web/context.js.map +1 -1
- package/dist/web/conversation.d.ts +1 -1
- package/dist/web/conversation.d.ts.map +1 -1
- package/dist/web/conversation.js +13 -16
- package/dist/web/conversation.js.map +1 -1
- package/dist/web/document-page.d.ts.map +1 -1
- package/dist/web/document-page.js +5 -4
- package/dist/web/document-page.js.map +1 -1
- package/dist/web/document-site.d.ts +1 -1
- package/dist/web/document-site.d.ts.map +1 -1
- package/dist/web/document-site.js +2 -1
- package/dist/web/document-site.js.map +1 -1
- package/dist/web/embed.js +1 -1
- package/dist/web/embed.js.map +1 -1
- package/dist/web/env.d.ts +9 -0
- package/dist/web/env.d.ts.map +1 -1
- package/dist/web/federation-routes.d.ts.map +1 -1
- package/dist/web/federation-routes.js +3 -1
- package/dist/web/federation-routes.js.map +1 -1
- package/dist/web/feed-item.js +1 -1
- package/dist/web/feed-item.js.map +1 -1
- package/dist/web/feed-routes.d.ts +3 -4
- package/dist/web/feed-routes.d.ts.map +1 -1
- package/dist/web/feed-routes.js +17 -15
- package/dist/web/feed-routes.js.map +1 -1
- package/dist/web/health.js +1 -1
- package/dist/web/health.js.map +1 -1
- package/dist/web/index.d.ts +1 -1
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js.map +1 -1
- package/dist/web/indieauth-activity-log.d.ts +0 -2
- package/dist/web/indieauth-activity-log.d.ts.map +1 -1
- package/dist/web/indieauth-activity-log.js +2 -4
- package/dist/web/indieauth-activity-log.js.map +1 -1
- package/dist/web/indieauth-bearer.js +2 -2
- package/dist/web/indieauth-bearer.js.map +1 -1
- package/dist/web/indieauth-discovery.d.ts +0 -4
- package/dist/web/indieauth-discovery.d.ts.map +1 -1
- package/dist/web/indieauth-discovery.js +3 -10
- package/dist/web/indieauth-discovery.js.map +1 -1
- package/dist/web/indieauth-token.d.ts.map +1 -1
- package/dist/web/indieauth-token.js +3 -3
- package/dist/web/indieauth-token.js.map +1 -1
- package/dist/web/listing-pages.d.ts.map +1 -1
- package/dist/web/listing-pages.js +1 -2
- package/dist/web/listing-pages.js.map +1 -1
- package/dist/web/maintenance.js +3 -3
- package/dist/web/maintenance.js.map +1 -1
- package/dist/web/page-sources.d.ts +1 -2
- package/dist/web/page-sources.d.ts.map +1 -1
- package/dist/web/page-sources.js +6 -7
- package/dist/web/page-sources.js.map +1 -1
- package/dist/web/paths.js +1 -1
- package/dist/web/paths.js.map +1 -1
- package/dist/web/pingback-routes.d.ts.map +1 -1
- package/dist/web/pingback-routes.js +3 -3
- package/dist/web/pingback-routes.js.map +1 -1
- package/dist/web/plugin-federation.js +50 -40
- package/dist/web/plugin-federation.js.map +1 -1
- package/dist/web/render.d.ts +12 -5
- package/dist/web/render.d.ts.map +1 -1
- package/dist/web/render.js +31 -21
- package/dist/web/render.js.map +1 -1
- package/dist/web/request.js +1 -1
- package/dist/web/request.js.map +1 -1
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +8 -9
- package/dist/web/routes.js.map +1 -1
- package/dist/web/site-index.d.ts.map +1 -1
- package/dist/web/site-index.js +1 -2
- package/dist/web/site-index.js.map +1 -1
- package/dist/web/site-view.d.ts +0 -2
- package/dist/web/site-view.d.ts.map +1 -1
- package/dist/web/site-view.js +0 -2
- package/dist/web/site-view.js.map +1 -1
- package/dist/web/webmention-routes.d.ts.map +1 -1
- package/dist/web/webmention-routes.js +2 -2
- package/dist/web/webmention-routes.js.map +1 -1
- package/dist/web/well-known.d.ts.map +1 -1
- package/dist/web/well-known.js +6 -7
- package/dist/web/well-known.js.map +1 -1
- package/dist/webmention/cited-picture.js +1 -1
- package/dist/webmention/cited-picture.js.map +1 -1
- package/dist/webmention/pingback.d.ts +1 -8
- package/dist/webmention/pingback.d.ts.map +1 -1
- package/dist/webmention/pingback.js +2 -11
- package/dist/webmention/pingback.js.map +1 -1
- package/dist/webmention/receive.d.ts +3 -1
- package/dist/webmention/receive.d.ts.map +1 -1
- package/dist/webmention/receive.js +5 -3
- package/dist/webmention/receive.js.map +1 -1
- package/dist/webmention/reply-contexts.d.ts +14 -3
- package/dist/webmention/reply-contexts.d.ts.map +1 -1
- package/dist/webmention/reply-contexts.js +12 -10
- package/dist/webmention/reply-contexts.js.map +1 -1
- package/dist/webmention/service.d.ts +3 -1
- package/dist/webmention/service.d.ts.map +1 -1
- package/dist/webmention/service.js +66 -53
- package/dist/webmention/service.js.map +1 -1
- package/package.json +13 -11
- package/themes/default/partials/post-list.njk +11 -11
- package/themes/default/src/style.css +12 -0
- package/themes/default/static/style.css +19 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/cms/services.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAK9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,OAAO,KAAK,EAAwB,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAExF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/cms/services.ts"],"names":[],"mappings":"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"}
|
package/dist/cms/services.js
CHANGED
|
@@ -6,10 +6,19 @@ import { createReplyNotices } from '../comments/reply-notices.js';
|
|
|
6
6
|
import { createContentSync, createScheduler } from '../content/index.js';
|
|
7
7
|
import { createReplyBackfill, signedRepliesLoader } from '../federation/backfill.js';
|
|
8
8
|
import { citedPostReader } from '../federation/cited-post.js';
|
|
9
|
+
import { mintMissingIndexNowKey, SITE } from '../site/namespace.js';
|
|
10
|
+
import { messageOf } from '../util/errors.js';
|
|
9
11
|
import { handleLearner } from '../federation/handles.js';
|
|
10
12
|
import { createActorProfileService, createDeliveryService, createRelayService, createSiteFederation, signedProfileLoader, } from '../federation/index.js';
|
|
11
|
-
import {
|
|
13
|
+
import { createFederationQueue } from '../federation/queue.js';
|
|
12
14
|
import { settleImageVariants } from '../images/variants.js';
|
|
15
|
+
import { stripMetadataJob } from '../content/metadata/strip-job.js';
|
|
16
|
+
import { siteExportJob } from '../export/export-job.js';
|
|
17
|
+
import { resendJob } from '../federation/resend-job.js';
|
|
18
|
+
import { JOBS, dataPath } from '../files/data-files.js';
|
|
19
|
+
import { createFileRecords } from '../jobs/file-records.js';
|
|
20
|
+
import { createInProcessTransport } from '../jobs/in-process.js';
|
|
21
|
+
import { createJobQueue } from '../jobs/queue.js';
|
|
13
22
|
import { createIndexNowNotifier } from '../indexnow.js';
|
|
14
23
|
import { activityLogSettled } from '../web/indieauth-activity-log.js';
|
|
15
24
|
import { createIndieAuthState } from '../indieauth/grants.js';
|
|
@@ -30,8 +39,8 @@ import { siteRecords } from './site-records.js';
|
|
|
30
39
|
export const SCHEDULE_WATERMARK_KEY = 'schedule.watermark';
|
|
31
40
|
/** Where the instant the scheduler first ran on this site lives in {@link AdminStore.getState}. */
|
|
32
41
|
export const SCHEDULE_FIRST_RUN_KEY = 'schedule.firstRun';
|
|
33
|
-
export function createServices({ resolved, plugins, store, admin, commentRecords, }) {
|
|
34
|
-
const site = { admin, store, config: resolved };
|
|
42
|
+
export function createServices({ resolved, plugins, store, admin, commentRecords, settings, }) {
|
|
43
|
+
const site = { admin, store, config: resolved, settings };
|
|
35
44
|
// Which theme this site renders through (decision-15). One source for the
|
|
36
45
|
// whole CMS: the pages, the `/theme/` assets and the site's email all read
|
|
37
46
|
// it, so they cannot disagree about which theme is in use and a choice that
|
|
@@ -67,7 +76,7 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
|
|
|
67
76
|
// read per send, so a key pasted into the settings screen sends the next
|
|
68
77
|
// message and one removed stops the message after it, neither needing a
|
|
69
78
|
// restart. With nothing configured, sending is a line in the log.
|
|
70
|
-
const mail = createMailService({ config: resolved, themes, ...resolved.mail });
|
|
79
|
+
const mail = createMailService({ config: resolved, settings, themes, ...resolved.mail });
|
|
71
80
|
// The one reader of the two indexes a conversation is made of. The page, the
|
|
72
81
|
// per-post comments feed, `/comments/feed/` and the `source:comments` count
|
|
73
82
|
// on a post feed are all drawn from it, so a reader cannot be shown one
|
|
@@ -84,31 +93,35 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
|
|
|
84
93
|
config: resolved,
|
|
85
94
|
lookup: resolved.hostLookup,
|
|
86
95
|
fediverse: citedPostReader(() => federationContext()),
|
|
87
|
-
held:
|
|
88
|
-
|
|
89
|
-
|
|
96
|
+
held: {
|
|
97
|
+
settings,
|
|
98
|
+
at: (target, site) => {
|
|
99
|
+
const found = conversation.heldAt(target, site);
|
|
100
|
+
return found === undefined ? undefined : heldReplyContext(target, found);
|
|
101
|
+
},
|
|
90
102
|
},
|
|
91
103
|
onStored: (target, previous) => {
|
|
92
104
|
delivery.citedPageStored(target, previous);
|
|
93
|
-
const original = replyContexts.
|
|
105
|
+
const original = replyContexts.stored(target)?.original;
|
|
94
106
|
if (original !== undefined && original !== previous?.original) {
|
|
95
107
|
webmentions.originalFound(target, original);
|
|
96
108
|
}
|
|
97
109
|
},
|
|
98
110
|
});
|
|
99
|
-
const
|
|
111
|
+
const citedWith = (site) => (url) => replyContexts.read(url, site);
|
|
112
|
+
const cited = async () => citedWith(await settings.values(SITE));
|
|
100
113
|
// The faces in a conversation, fetched here and served from here so a
|
|
101
114
|
// reader's address never reaches the servers they live on (TASK-134).
|
|
102
115
|
const avatars = createAvatarService({ admin, config: resolved });
|
|
103
116
|
// What keeps a site from holding its readers' personal data for longer than
|
|
104
117
|
// its settings say (TASK-135).
|
|
105
|
-
const retention = createRetentionService({ admin, config: resolved });
|
|
118
|
+
const retention = createRetentionService({ admin, config: resolved, settings });
|
|
106
119
|
const renderer = createRenderer({
|
|
107
120
|
config: resolved,
|
|
108
121
|
themes,
|
|
109
122
|
// The stored context of a reply's target: a file read, never a fetch, so
|
|
110
123
|
// a page is drawn without waiting on anybody's server (TASK-123).
|
|
111
|
-
replyContext:
|
|
124
|
+
replyContext: (target, site) => replyContexts.read(target, site),
|
|
112
125
|
// What has been said about a post, from the very reader the comments
|
|
113
126
|
// feeds are published from, so the page and the feed cannot disagree.
|
|
114
127
|
conversation: conversation.thread,
|
|
@@ -117,16 +130,16 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
|
|
|
117
130
|
store,
|
|
118
131
|
redirects,
|
|
119
132
|
siteData,
|
|
120
|
-
mailConfigured: () => mail.configured(),
|
|
121
133
|
}),
|
|
122
134
|
});
|
|
123
135
|
const federationKv = resolved.federation.kv ?? new MemoryKvStore();
|
|
124
|
-
const federationQueue = resolved.federation.queue
|
|
136
|
+
const federationQueue = createFederationQueue(resolved.federation.queue, site);
|
|
125
137
|
const federation = createSiteFederation({
|
|
126
138
|
baseUrl: resolved.baseUrl,
|
|
127
139
|
...resolved.federation,
|
|
128
|
-
|
|
140
|
+
queue: federationQueue ?? null,
|
|
129
141
|
kv: federationKv,
|
|
142
|
+
federationOptions: { manuallyStartQueue: true },
|
|
130
143
|
});
|
|
131
144
|
// The names and faces of the actors who are not followers (TASK-184),
|
|
132
145
|
// fetched in the background when one is heard from and on a sweep.
|
|
@@ -135,8 +148,12 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
|
|
|
135
148
|
config: resolved,
|
|
136
149
|
load: signedProfileLoader(() => federationContext()),
|
|
137
150
|
});
|
|
138
|
-
const federated = { ...site, actorProfiles, cited };
|
|
139
|
-
const
|
|
151
|
+
const federated = { ...site, actorProfiles, cited: citedWith };
|
|
152
|
+
const federationData = async () => {
|
|
153
|
+
const settled = await settings.values(SITE);
|
|
154
|
+
return { ...federated, site: settled, cited: citedWith(settled) };
|
|
155
|
+
};
|
|
156
|
+
const federationContext = async () => federation.createContext(new URL(resolved.baseUrl), await federationData());
|
|
140
157
|
const learnHandles = handleLearner(federationContext);
|
|
141
158
|
const replyBackfill = createReplyBackfill({
|
|
142
159
|
...site,
|
|
@@ -170,15 +187,18 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
|
|
|
170
187
|
const webmentions = createWebmentionService({
|
|
171
188
|
...site,
|
|
172
189
|
notifications,
|
|
173
|
-
originalOf: (url) => replyContexts.
|
|
190
|
+
originalOf: (url) => replyContexts.stored(url)?.original,
|
|
174
191
|
conversation,
|
|
175
192
|
});
|
|
176
193
|
// The notify server listens to the index for the same reason: a post edited
|
|
177
194
|
// on disk changed the same feeds as one saved through the editor.
|
|
178
|
-
const notifier = createFeedNotifier({ config: resolved });
|
|
195
|
+
const notifier = createFeedNotifier({ config: resolved, settings });
|
|
179
196
|
// IndexNow listens for the same reason, and wants the pages as well as the
|
|
180
197
|
// posts: a search engine indexes both (TASK-151).
|
|
181
|
-
const indexNow = createIndexNowNotifier({ config: resolved });
|
|
198
|
+
const indexNow = createIndexNowNotifier({ config: resolved, settings });
|
|
199
|
+
mintMissingIndexNowKey(settings, 'boot').catch((thrown) => {
|
|
200
|
+
console.error(`No IndexNow key was minted: ${messageOf(thrown)}`);
|
|
201
|
+
});
|
|
182
202
|
// A post whose date is in the future is held back (TASK-44), and nothing
|
|
183
203
|
// watches a clock: this is what notices that one has come due and reports it
|
|
184
204
|
// as the publish it is, so delivery, the notifier and a site's `onPublish`
|
|
@@ -203,7 +223,23 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
|
|
|
203
223
|
// database has never heard of is followed here, which is what makes a
|
|
204
224
|
// rebuilt database catch up rather than silently stop federating to it.
|
|
205
225
|
const relays = createRelayService({ ...federated, federation });
|
|
206
|
-
relays.sync()
|
|
226
|
+
relays.sync().catch((thrown) => {
|
|
227
|
+
console.warn(`The relays could not be read: ${messageOf(thrown)}`);
|
|
228
|
+
});
|
|
229
|
+
settings.watch(SITE.relays, async () => {
|
|
230
|
+
await relays.sync();
|
|
231
|
+
});
|
|
232
|
+
const jobs = createJobQueue({
|
|
233
|
+
transport: resolved.jobs.transport ?? createInProcessTransport(),
|
|
234
|
+
records: resolved.jobs.records ?? createFileRecords(dataPath(resolved.dataDir, JOBS)),
|
|
235
|
+
jobs: [
|
|
236
|
+
stripMetadataJob(resolved.contentDir),
|
|
237
|
+
resendJob({ store, delivery, webmentions }),
|
|
238
|
+
siteExportJob({ config: resolved, settings, plugins }, resolved.now),
|
|
239
|
+
...(resolved.jobs.definitions ?? []),
|
|
240
|
+
],
|
|
241
|
+
now: resolved.now,
|
|
242
|
+
});
|
|
207
243
|
const changeSubscribers = [
|
|
208
244
|
// A watched change waits for its burst to settle, as a scan does: a git
|
|
209
245
|
// pull that moves a post and adds another at its old URL must not hand the
|
|
@@ -242,7 +278,7 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
|
|
|
242
278
|
// (a salmention, TASK-320).
|
|
243
279
|
const conversationWriteSubscribers = [
|
|
244
280
|
(written) => {
|
|
245
|
-
replyNotices.
|
|
281
|
+
replyNotices.queueNoticesFor(written);
|
|
246
282
|
},
|
|
247
283
|
(written) => {
|
|
248
284
|
webmentions.heard(written);
|
|
@@ -268,9 +304,31 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
|
|
|
268
304
|
},
|
|
269
305
|
settled: () => scheduler.settled(),
|
|
270
306
|
},
|
|
307
|
+
// After the scan, so a job reads an index that is up to date. Settled
|
|
308
|
+
// before delivery, so what a job queued there is waited for after it.
|
|
309
|
+
{
|
|
310
|
+
start: () => jobs.start(),
|
|
311
|
+
stop: () => {
|
|
312
|
+
jobs.stop();
|
|
313
|
+
},
|
|
314
|
+
settled: () => jobs.close(),
|
|
315
|
+
},
|
|
271
316
|
{ settled: () => delivery.settled() },
|
|
272
317
|
{ settled: () => relays.settled() },
|
|
273
318
|
{
|
|
319
|
+
start: async () => {
|
|
320
|
+
if (federationQueue === undefined)
|
|
321
|
+
return;
|
|
322
|
+
if (federationQueue.kind === 'pausing')
|
|
323
|
+
federationQueue.resume();
|
|
324
|
+
federation.startQueue(await federationData()).catch((error) => {
|
|
325
|
+
console.error(`The federation queue stopped: ${messageOf(error)}`);
|
|
326
|
+
});
|
|
327
|
+
},
|
|
328
|
+
stop: () => {
|
|
329
|
+
if (federationQueue?.kind === 'pausing')
|
|
330
|
+
federationQueue.pause();
|
|
331
|
+
},
|
|
274
332
|
settled: async () => {
|
|
275
333
|
await federationQueue?.settled();
|
|
276
334
|
},
|
|
@@ -304,6 +362,8 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
|
|
|
304
362
|
start: () => plugins.reconcile(readEnabledPlugins(resolved.contentDir)),
|
|
305
363
|
stop: (ending) => stopPlugins(plugins, ending),
|
|
306
364
|
},
|
|
365
|
+
{ settled: () => replyNotices.settled() },
|
|
366
|
+
{ settled: () => notifications.settled() },
|
|
307
367
|
{ settled: () => mail.settled() },
|
|
308
368
|
// A page render derives an upload's variants in the background; the
|
|
309
369
|
// encode finishes before the directories it writes into can be removed.
|
|
@@ -333,12 +393,9 @@ export function createServices({ resolved, plugins, store, admin, commentRecords
|
|
|
333
393
|
scheduler,
|
|
334
394
|
learnHandles,
|
|
335
395
|
siteRecords: siteRecords(resolved),
|
|
336
|
-
maintenance: createMaintenanceSwitch({
|
|
337
|
-
dataDir: resolved.dataDir,
|
|
338
|
-
forced: resolved.maintenance,
|
|
339
|
-
now: resolved.now,
|
|
340
|
-
}),
|
|
396
|
+
maintenance: createMaintenanceSwitch({ settings, now: resolved.now }),
|
|
341
397
|
indieauth: createIndieAuthState(resolved.now),
|
|
398
|
+
jobs,
|
|
342
399
|
lifecycle,
|
|
343
400
|
};
|
|
344
401
|
}
|
package/dist/cms/services.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/cms/services.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/cms/services.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-records.d.ts","sourceRoot":"","sources":["../../src/cms/site-records.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"site-records.d.ts","sourceRoot":"","sources":["../../src/cms/site-records.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,wBAAgB,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,SAAS,CAAC,GAAG,WAAW,CAO/F"}
|
package/dist/cms/site-records.js
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
2
|
import { commentsFile } from '../comments/records.js';
|
|
3
|
-
import { readSiteSettings } from '../site/site-json.js';
|
|
4
3
|
import { listUsers } from '../site/users.js';
|
|
5
4
|
import { syndicationTargetsReader } from '../webmention/syndication.js';
|
|
6
5
|
export function siteRecords(config) {
|
|
7
6
|
const syndicationTargets = syndicationTargetsReader(config.contentDir);
|
|
8
7
|
return {
|
|
9
8
|
users: () => listUsers(config.dataDir),
|
|
10
|
-
timezone: () => readSiteSettings(config.contentDir).timezone,
|
|
11
9
|
syndicationTargets: () => syndicationTargets(),
|
|
12
10
|
hasComments: (slug) => existsSync(commentsFile(config.contentDir, slug)),
|
|
13
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-records.js","sourceRoot":"","sources":["../../src/cms/site-records.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"site-records.js","sourceRoot":"","sources":["../../src/cms/site-records.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,MAAM,UAAU,WAAW,CAAC,MAAsD;IAChF,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvE,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;QACtC,kBAAkB,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE;QAC9C,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;KACzE,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { AkismetKeyStatus } from '../settings/akismet.ts';
|
|
2
|
+
import type { ChangedBy, SettingsRegistry } from '../settings/types.ts';
|
|
1
3
|
import type { CommentChecker } from '../forms/checker.ts';
|
|
2
4
|
/**
|
|
3
5
|
* Akismet, as the one {@link CommentChecker} this package ships.
|
|
@@ -8,18 +10,16 @@ import type { CommentChecker } from '../forms/checker.ts';
|
|
|
8
10
|
*
|
|
9
11
|
* Two things make it optional at runtime rather than at build time:
|
|
10
12
|
*
|
|
11
|
-
* - **The key is a credential**, so it
|
|
12
|
-
* `
|
|
13
|
-
* in `content/_data/site.json`, which is
|
|
14
|
-
* the site.
|
|
15
|
-
* - **The key
|
|
13
|
+
* - **The key is a credential**, so it is the secret `akismet.key` setting,
|
|
14
|
+
* kept in `data/akismet.json` at mode `0600` or set by
|
|
15
|
+
* `GEEKITY_AKISMET__KEY`, and never in `content/_data/site.json`, which is
|
|
16
|
+
* public, in git and published with the site.
|
|
17
|
+
* - **The key is read on every call**, so a key pasted into the settings
|
|
16
18
|
* screen starts filtering the next comment and a key removed stops filtering
|
|
17
19
|
* at once. Without one, nothing is sent anywhere and the verdict is
|
|
18
20
|
* `unknown` — the site's own rules decide, exactly as they did before
|
|
19
21
|
* anybody had heard of Akismet.
|
|
20
22
|
*/
|
|
21
|
-
/** Where the key lives, under `dataDir`. */
|
|
22
|
-
export declare const AKISMET_KEY_FILE = "akismet.json";
|
|
23
23
|
/** The API this speaks. */
|
|
24
24
|
export declare const AKISMET_ENDPOINT = "https://rest.akismet.com/1.1";
|
|
25
25
|
/**
|
|
@@ -36,60 +36,27 @@ export declare const AKISMET_USER_AGENT = "Geekity CMS/1.0 | Akismet/1.1";
|
|
|
36
36
|
* logged failure and no opinion, and the comment goes to the queue.
|
|
37
37
|
*/
|
|
38
38
|
export declare const AKISMET_TIMEOUT_MS = 10000;
|
|
39
|
-
/** What the last {@link verifyAkismetKey} of a key came to. */
|
|
40
|
-
export type AkismetKeyStatus =
|
|
41
|
-
/** Akismet said `valid`. */
|
|
42
|
-
'valid'
|
|
43
|
-
/** Akismet said `invalid`: the key is not one of theirs, or not any more. */
|
|
44
|
-
| 'invalid'
|
|
45
|
-
/** Akismet could not be reached, so nothing is known either way. */
|
|
46
|
-
| 'unchecked';
|
|
47
|
-
/** The key as `data/akismet.json` holds it. */
|
|
48
|
-
export interface AkismetKeyRecord {
|
|
49
|
-
/** The key itself. */
|
|
50
|
-
key: string;
|
|
51
|
-
/** What Akismet said about it when it was last checked. */
|
|
52
|
-
status: AkismetKeyStatus;
|
|
53
|
-
/** When that was, as an instant. */
|
|
54
|
-
checkedAt: string;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* The stored key, or `undefined` when the site has none.
|
|
58
|
-
*
|
|
59
|
-
* Read tolerantly and synchronously, like every other file this CMS treats as
|
|
60
|
-
* truth: a file that will not parse, or one with no key in it, is a site with
|
|
61
|
-
* no Akismet rather than a site that will not boot.
|
|
62
|
-
*/
|
|
63
|
-
export declare function readAkismetKey(dataDir: string): AkismetKeyRecord | undefined;
|
|
64
|
-
/** Write the key, private to the account the site runs as. */
|
|
65
|
-
export declare function writeAkismetKey(dataDir: string, record: AkismetKeyRecord): Promise<void>;
|
|
66
|
-
/** Forget the key, which is how a site turns Akismet off. */
|
|
67
|
-
export declare function removeAkismetKey(dataDir: string): Promise<void>;
|
|
68
|
-
/** Where one site's key file is. */
|
|
69
|
-
export declare function akismetKeyPath(dataDir: string): string;
|
|
70
39
|
/** What {@link verifyAkismetKey} needs. */
|
|
71
40
|
export interface VerifyAkismetKeyOptions {
|
|
72
|
-
|
|
73
|
-
key: string;
|
|
41
|
+
settings: SettingsRegistry;
|
|
74
42
|
/** The site's public origin, which Akismet calls the blog. */
|
|
75
43
|
blog: string;
|
|
44
|
+
at: Date;
|
|
45
|
+
by: ChangedBy;
|
|
76
46
|
/** The HTTP client. Defaults to the global `fetch`; a test hands in its own. */
|
|
77
47
|
fetch?: typeof fetch | undefined;
|
|
78
48
|
/** How long to wait. */
|
|
79
49
|
timeoutMs?: number | undefined;
|
|
80
50
|
}
|
|
81
51
|
/**
|
|
82
|
-
* Ask Akismet whether a key is one of theirs.
|
|
83
|
-
*
|
|
84
52
|
* Three answers rather than two, because "we could not ask" is not "no": a key
|
|
85
53
|
* typed while the machine is offline should not be reported as a bad key, and
|
|
86
54
|
* the settings screen says which of the two happened.
|
|
87
55
|
*/
|
|
88
|
-
export declare function verifyAkismetKey(options: VerifyAkismetKeyOptions): Promise<AkismetKeyStatus>;
|
|
56
|
+
export declare function verifyAkismetKey(options: VerifyAkismetKeyOptions): Promise<AkismetKeyStatus | undefined>;
|
|
89
57
|
/** What {@link createAkismetChecker} needs around it. */
|
|
90
58
|
export interface AkismetCheckerOptions {
|
|
91
|
-
|
|
92
|
-
dataDir: string;
|
|
59
|
+
settings: SettingsRegistry;
|
|
93
60
|
/**
|
|
94
61
|
* The site's language, as `blog_lang` wants it.
|
|
95
62
|
*
|
|
@@ -97,7 +64,7 @@ export interface AkismetCheckerOptions {
|
|
|
97
64
|
* rewrites: reading it when a comment arrives is what makes a change to it
|
|
98
65
|
* take effect at once, the way every other setting does (decision-9).
|
|
99
66
|
*/
|
|
100
|
-
language: () => string
|
|
67
|
+
language: () => Promise<string>;
|
|
101
68
|
/** The HTTP client. Defaults to the global `fetch`; a test hands in its own. */
|
|
102
69
|
fetch?: typeof fetch | undefined;
|
|
103
70
|
/** Where a failure is reported. Defaults to the console. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"akismet.d.ts","sourceRoot":"","sources":["../../src/comments/akismet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"akismet.d.ts","sourceRoot":"","sources":["../../src/comments/akismet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxE,OAAO,KAAK,EAAE,cAAc,EAAoC,MAAM,qBAAqB,CAAC;AAE5F;;;;;;;;;;;;;;;;;;GAkBG;AAEH,2BAA2B;AAC3B,eAAO,MAAM,gBAAgB,iCAAiC,CAAC;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAElE;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,2CAA2C;AAC3C,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,IAAI,CAAC;IACT,EAAE,EAAE,SAAS,CAAC;IACd,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;IACjC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAcvC;AAmBD,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;IACjC,4DAA4D;IAC5D,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,SAAS,CAAC;IACrD,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,cAAc,CAkEnF"}
|
package/dist/comments/akismet.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { readFileIfPresentSync, writeFileAtomically } from '../files/atomic.js';
|
|
1
|
+
import { AKISMET } from '../settings/akismet.js';
|
|
4
2
|
import { messageOf } from '../util/errors.js';
|
|
5
3
|
import { COMMENT_FIELDS } from './submission.js';
|
|
6
4
|
/**
|
|
@@ -12,18 +10,16 @@ import { COMMENT_FIELDS } from './submission.js';
|
|
|
12
10
|
*
|
|
13
11
|
* Two things make it optional at runtime rather than at build time:
|
|
14
12
|
*
|
|
15
|
-
* - **The key is a credential**, so it
|
|
16
|
-
* `
|
|
17
|
-
* in `content/_data/site.json`, which is
|
|
18
|
-
* the site.
|
|
19
|
-
* - **The key
|
|
13
|
+
* - **The key is a credential**, so it is the secret `akismet.key` setting,
|
|
14
|
+
* kept in `data/akismet.json` at mode `0600` or set by
|
|
15
|
+
* `GEEKITY_AKISMET__KEY`, and never in `content/_data/site.json`, which is
|
|
16
|
+
* public, in git and published with the site.
|
|
17
|
+
* - **The key is read on every call**, so a key pasted into the settings
|
|
20
18
|
* screen starts filtering the next comment and a key removed stops filtering
|
|
21
19
|
* at once. Without one, nothing is sent anywhere and the verdict is
|
|
22
20
|
* `unknown` — the site's own rules decide, exactly as they did before
|
|
23
21
|
* anybody had heard of Akismet.
|
|
24
22
|
*/
|
|
25
|
-
/** Where the key lives, under `dataDir`. */
|
|
26
|
-
export const AKISMET_KEY_FILE = 'akismet.json';
|
|
27
23
|
/** The API this speaks. */
|
|
28
24
|
export const AKISMET_ENDPOINT = 'https://rest.akismet.com/1.1';
|
|
29
25
|
/**
|
|
@@ -41,59 +37,23 @@ export const AKISMET_USER_AGENT = 'Geekity CMS/1.0 | Akismet/1.1';
|
|
|
41
37
|
*/
|
|
42
38
|
export const AKISMET_TIMEOUT_MS = 10_000;
|
|
43
39
|
/**
|
|
44
|
-
* The stored key, or `undefined` when the site has none.
|
|
45
|
-
*
|
|
46
|
-
* Read tolerantly and synchronously, like every other file this CMS treats as
|
|
47
|
-
* truth: a file that will not parse, or one with no key in it, is a site with
|
|
48
|
-
* no Akismet rather than a site that will not boot.
|
|
49
|
-
*/
|
|
50
|
-
export function readAkismetKey(dataDir) {
|
|
51
|
-
const raw = readFileIfPresentSync(akismetKeyPath(dataDir));
|
|
52
|
-
if (raw === undefined)
|
|
53
|
-
return undefined;
|
|
54
|
-
let parsed;
|
|
55
|
-
try {
|
|
56
|
-
parsed = JSON.parse(raw);
|
|
57
|
-
}
|
|
58
|
-
catch {
|
|
59
|
-
return undefined;
|
|
60
|
-
}
|
|
61
|
-
if (typeof parsed !== 'object' || parsed === null)
|
|
62
|
-
return undefined;
|
|
63
|
-
const file = parsed;
|
|
64
|
-
const key = typeof file['key'] === 'string' ? file['key'].trim() : '';
|
|
65
|
-
if (key === '')
|
|
66
|
-
return undefined;
|
|
67
|
-
const status = file['status'];
|
|
68
|
-
return {
|
|
69
|
-
key,
|
|
70
|
-
status: status === 'valid' || status === 'invalid' ? status : 'unchecked',
|
|
71
|
-
checkedAt: typeof file['checkedAt'] === 'string' ? file['checkedAt'] : '',
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
/** Write the key, private to the account the site runs as. */
|
|
75
|
-
export async function writeAkismetKey(dataDir, record) {
|
|
76
|
-
await writeFileAtomically(akismetKeyPath(dataDir), `${JSON.stringify(record, null, 2)}\n`, {
|
|
77
|
-
mode: 0o600,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
/** Forget the key, which is how a site turns Akismet off. */
|
|
81
|
-
export async function removeAkismetKey(dataDir) {
|
|
82
|
-
await rm(akismetKeyPath(dataDir), { force: true });
|
|
83
|
-
}
|
|
84
|
-
/** Where one site's key file is. */
|
|
85
|
-
export function akismetKeyPath(dataDir) {
|
|
86
|
-
return path.join(dataDir, AKISMET_KEY_FILE);
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Ask Akismet whether a key is one of theirs.
|
|
90
|
-
*
|
|
91
40
|
* Three answers rather than two, because "we could not ask" is not "no": a key
|
|
92
41
|
* typed while the machine is offline should not be reported as a bad key, and
|
|
93
42
|
* the settings screen says which of the two happened.
|
|
94
43
|
*/
|
|
95
44
|
export async function verifyAkismetKey(options) {
|
|
96
|
-
const
|
|
45
|
+
const key = await options.settings.get(AKISMET.key);
|
|
46
|
+
if (key === '')
|
|
47
|
+
return undefined;
|
|
48
|
+
const status = await askAboutKey(key, options);
|
|
49
|
+
await options.settings.set('akismet', new Map([
|
|
50
|
+
['status', status],
|
|
51
|
+
['checked_at', options.at.toISOString()],
|
|
52
|
+
]), options.by);
|
|
53
|
+
return status;
|
|
54
|
+
}
|
|
55
|
+
async function askAboutKey(key, options) {
|
|
56
|
+
const body = new URLSearchParams({ api_key: key, blog: options.blog });
|
|
97
57
|
let answer;
|
|
98
58
|
try {
|
|
99
59
|
answer = await post(`${AKISMET_ENDPOINT}/verify-key`, body, options.fetch, options.timeoutMs);
|
|
@@ -124,11 +84,12 @@ export function createAkismetChecker(options) {
|
|
|
124
84
|
};
|
|
125
85
|
/** Send one call, or nothing at all when the site has no key. */
|
|
126
86
|
async function send(method, fields) {
|
|
127
|
-
const
|
|
128
|
-
if (
|
|
87
|
+
const key = await options.settings.get(AKISMET.key);
|
|
88
|
+
if (key === '')
|
|
129
89
|
return undefined;
|
|
90
|
+
const language = await options.language();
|
|
130
91
|
try {
|
|
131
|
-
const answer = await post(`${AKISMET_ENDPOINT}/${method}`, fields(
|
|
92
|
+
const answer = await post(`${AKISMET_ENDPOINT}/${method}`, fields(key, language), options.fetch, options.timeoutMs);
|
|
132
93
|
if (!answer.ok) {
|
|
133
94
|
warn(`Akismet answered ${method} with ${String(answer.status)}.${help(answer)}`);
|
|
134
95
|
return undefined;
|
|
@@ -142,7 +103,7 @@ export function createAkismetChecker(options) {
|
|
|
142
103
|
}
|
|
143
104
|
return {
|
|
144
105
|
async check(submission) {
|
|
145
|
-
const answer = await send('comment-check', (key) => checkFields(key, submission, options));
|
|
106
|
+
const answer = await send('comment-check', (key, language) => checkFields(key, language, submission, options));
|
|
146
107
|
if (answer === undefined)
|
|
147
108
|
return 'unknown';
|
|
148
109
|
const said = answer.body.trim();
|
|
@@ -161,15 +122,15 @@ export function createAkismetChecker(options) {
|
|
|
161
122
|
return 'unknown';
|
|
162
123
|
},
|
|
163
124
|
async reportSpam(report) {
|
|
164
|
-
await send('submit-spam', (key) => reportFields(key, report, options));
|
|
125
|
+
await send('submit-spam', (key, language) => reportFields(key, language, report, options));
|
|
165
126
|
},
|
|
166
127
|
async reportHam(report) {
|
|
167
|
-
await send('submit-ham', (key) => reportFields(key, report, options));
|
|
128
|
+
await send('submit-ham', (key, language) => reportFields(key, language, report, options));
|
|
168
129
|
},
|
|
169
130
|
};
|
|
170
131
|
}
|
|
171
132
|
/** The fields one `comment-check` carries. */
|
|
172
|
-
function checkFields(key, submission, options) {
|
|
133
|
+
function checkFields(key, language, submission, options) {
|
|
173
134
|
const { comment } = submission;
|
|
174
135
|
// A webmention is a page linking here rather than a form somebody filled in,
|
|
175
136
|
// so it has no honeypot to name; a contact message is a form like a
|
|
@@ -179,7 +140,7 @@ function checkFields(key, submission, options) {
|
|
|
179
140
|
api_key: key,
|
|
180
141
|
blog: submission.baseUrl,
|
|
181
142
|
blog_charset: 'UTF-8',
|
|
182
|
-
blog_lang: blogLang(
|
|
143
|
+
blog_lang: blogLang(language),
|
|
183
144
|
user_ip: submission.address,
|
|
184
145
|
user_agent: submission.userAgent,
|
|
185
146
|
referrer: submission.referrer,
|
|
@@ -210,13 +171,13 @@ function checkFields(key, submission, options) {
|
|
|
210
171
|
* The content, the author and the permalink are what is left, and they are
|
|
211
172
|
* what a correction is mostly about.
|
|
212
173
|
*/
|
|
213
|
-
function reportFields(key, report, options) {
|
|
174
|
+
function reportFields(key, language, report, options) {
|
|
214
175
|
const { comment } = report;
|
|
215
176
|
return fields({
|
|
216
177
|
api_key: key,
|
|
217
178
|
blog: report.baseUrl,
|
|
218
179
|
blog_charset: 'UTF-8',
|
|
219
|
-
blog_lang: blogLang(
|
|
180
|
+
blog_lang: blogLang(language),
|
|
220
181
|
permalink: report.url,
|
|
221
182
|
comment_type: comment.source === 'webmention' ? 'webmention' : 'comment',
|
|
222
183
|
comment_author: comment.author.name,
|