@geekity/cms 0.30.0 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -4266
- 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/access-log.d.ts +2 -10
- package/dist/access-log.d.ts.map +1 -1
- package/dist/access-log.js +1 -1
- package/dist/access-log.js.map +1 -1
- package/dist/{web → admin}/admin-bar.d.ts +3 -2
- package/dist/admin/admin-bar.d.ts.map +1 -0
- package/dist/{web → admin}/admin-bar.js +20 -17
- package/dist/admin/admin-bar.js.map +1 -0
- package/dist/{indieauth → admin}/app-activity.d.ts +2 -2
- package/dist/admin/app-activity.d.ts.map +1 -0
- package/dist/{indieauth → admin}/app-activity.js +6 -7
- package/dist/admin/app-activity.js.map +1 -0
- package/dist/admin/appearance.d.ts +4 -8
- package/dist/admin/appearance.d.ts.map +1 -1
- package/dist/admin/appearance.js +19 -20
- package/dist/admin/appearance.js.map +1 -1
- package/dist/admin/assets.d.ts +1 -8
- package/dist/admin/assets.d.ts.map +1 -1
- package/dist/admin/assets.js +2 -9
- package/dist/admin/assets.js.map +1 -1
- package/dist/admin/comments.d.ts +2 -2
- package/dist/admin/comments.d.ts.map +1 -1
- package/dist/admin/comments.js +17 -19
- 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/{indieauth → admin}/connected-apps.d.ts +2 -2
- package/dist/admin/connected-apps.d.ts.map +1 -0
- package/dist/{indieauth → admin}/connected-apps.js +33 -39
- package/dist/admin/connected-apps.js.map +1 -0
- package/dist/admin/credentials.js +1 -1
- package/dist/admin/credentials.js.map +1 -1
- package/dist/admin/dev-mode.d.ts +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 +16 -301
- package/dist/admin/documents.d.ts.map +1 -1
- package/dist/admin/documents.js +94 -1040
- package/dist/admin/documents.js.map +1 -1
- package/dist/admin/editor-actions.d.ts +3 -2
- package/dist/admin/editor-actions.d.ts.map +1 -1
- package/dist/admin/editor-actions.js +8 -9
- package/dist/admin/editor-actions.js.map +1 -1
- package/dist/admin/editor-fields.d.ts +45 -0
- package/dist/admin/editor-fields.d.ts.map +1 -0
- package/dist/admin/editor-fields.js +71 -0
- package/dist/admin/editor-fields.js.map +1 -0
- package/dist/admin/editor-layout.d.ts +2 -10
- package/dist/admin/editor-layout.d.ts.map +1 -1
- package/dist/admin/editor-layout.js +2 -2
- 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 +6 -17
- package/dist/admin/federation.d.ts.map +1 -1
- package/dist/admin/federation.js +49 -104
- package/dist/admin/federation.js.map +1 -1
- package/dist/admin/flash.d.ts +2 -2
- package/dist/admin/flash.d.ts.map +1 -1
- package/dist/admin/headers.d.ts +1 -1
- package/dist/admin/headers.d.ts.map +1 -1
- package/dist/admin/headers.js +1 -1
- package/dist/admin/headers.js.map +1 -1
- package/dist/admin/index.d.ts +36 -21
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +26 -14
- package/dist/admin/index.js.map +1 -1
- package/dist/{indieauth/consent.d.ts → admin/indieauth-consent.d.ts} +4 -4
- package/dist/admin/indieauth-consent.d.ts.map +1 -0
- package/dist/{indieauth/consent.js → admin/indieauth-consent.js} +20 -23
- package/dist/admin/indieauth-consent.js.map +1 -0
- 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 +131 -0
- package/dist/admin/legacy-migrations.d.ts.map +1 -0
- package/dist/admin/legacy-migrations.js +236 -0
- package/dist/admin/legacy-migrations.js.map +1 -0
- 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 +8 -109
- package/dist/admin/media.d.ts.map +1 -1
- package/dist/admin/media.js +35 -188
- package/dist/admin/media.js.map +1 -1
- package/dist/admin/menu.d.ts.map +1 -1
- package/dist/admin/menu.js +11 -7
- package/dist/admin/menu.js.map +1 -1
- package/dist/admin/messages.d.ts +1 -1
- package/dist/admin/messages.d.ts.map +1 -1
- package/dist/admin/messages.js +11 -14
- package/dist/admin/messages.js.map +1 -1
- package/dist/admin/navigation.d.ts +3 -3
- package/dist/admin/navigation.d.ts.map +1 -1
- package/dist/admin/navigation.js +34 -33
- package/dist/admin/navigation.js.map +1 -1
- package/dist/admin/personal-data.d.ts +1 -1
- package/dist/admin/personal-data.d.ts.map +1 -1
- package/dist/admin/personal-data.js +3 -6
- package/dist/admin/personal-data.js.map +1 -1
- package/dist/admin/plugins.d.ts +1 -1
- package/dist/admin/plugins.d.ts.map +1 -1
- package/dist/admin/plugins.js +28 -79
- package/dist/admin/plugins.js.map +1 -1
- package/dist/admin/preview.d.ts +2 -1
- package/dist/admin/preview.d.ts.map +1 -1
- package/dist/admin/preview.js +31 -36
- package/dist/admin/preview.js.map +1 -1
- package/dist/admin/recovery.d.ts +3 -3
- package/dist/admin/recovery.d.ts.map +1 -1
- package/dist/admin/recovery.js +12 -14
- package/dist/admin/recovery.js.map +1 -1
- package/dist/admin/routes.d.ts +1 -3
- package/dist/admin/routes.d.ts.map +1 -1
- package/dist/admin/routes.js +34 -29
- 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 +79 -46
- package/dist/admin/settings-discussion.js.map +1 -1
- package/dist/admin/settings-email.d.ts +12 -9
- package/dist/admin/settings-email.d.ts.map +1 -1
- package/dist/admin/settings-email.js +94 -80
- 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 +17 -23
- package/dist/admin/settings-general.js.map +1 -1
- package/dist/admin/settings-page.d.ts +5 -32
- package/dist/admin/settings-page.d.ts.map +1 -1
- package/dist/admin/settings-page.js +39 -55
- package/dist/admin/settings-page.js.map +1 -1
- package/dist/admin/settings-pages.d.ts +1 -1
- package/dist/admin/settings-pages.d.ts.map +1 -1
- package/dist/admin/settings-permalinks.js +3 -3
- 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.d.ts +2 -2
- package/dist/admin/settings-reading.d.ts.map +1 -1
- package/dist/admin/settings-reading.js +17 -16
- 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/settings.d.ts +0 -579
- package/dist/admin/settings.d.ts.map +1 -1
- package/dist/admin/settings.js +1 -1155
- package/dist/admin/settings.js.map +1 -1
- 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/syndication-targets.d.ts +1 -1
- package/dist/admin/syndication-targets.d.ts.map +1 -1
- package/dist/admin/syndication-targets.js +11 -15
- package/dist/admin/syndication-targets.js.map +1 -1
- package/dist/admin/taxonomy.d.ts +2 -2
- package/dist/admin/taxonomy.d.ts.map +1 -1
- package/dist/admin/taxonomy.js +17 -29
- 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 +3 -1
- package/dist/admin/templates.js.map +1 -1
- package/dist/admin/tools.d.ts +4 -4
- package/dist/admin/tools.d.ts.map +1 -1
- package/dist/admin/tools.js +3 -6
- package/dist/admin/tools.js.map +1 -1
- package/dist/admin/uploads.d.ts +1 -106
- package/dist/admin/uploads.d.ts.map +1 -1
- package/dist/admin/uploads.js +2 -191
- package/dist/admin/uploads.js.map +1 -1
- package/dist/admin/users.d.ts +20 -15
- package/dist/admin/users.d.ts.map +1 -1
- package/dist/admin/users.js +84 -81
- package/dist/admin/users.js.map +1 -1
- package/dist/avatars/avatars.d.ts +2 -4
- package/dist/avatars/avatars.d.ts.map +1 -1
- package/dist/avatars/avatars.js +15 -19
- package/dist/avatars/avatars.js.map +1 -1
- package/dist/avatars/index.d.ts +1 -2
- package/dist/avatars/index.d.ts.map +1 -1
- package/dist/avatars/index.js +1 -2
- package/dist/avatars/index.js.map +1 -1
- package/dist/cache.d.ts +4 -4
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +13 -9
- package/dist/cache.js.map +1 -1
- package/dist/cli.d.ts +2 -33
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +729 -344
- package/dist/cli.js.map +1 -1
- package/dist/cms/app.d.ts +11 -0
- package/dist/cms/app.d.ts.map +1 -0
- package/dist/cms/app.js +126 -0
- package/dist/cms/app.js.map +1 -0
- package/dist/cms/boot.d.ts +26 -0
- package/dist/cms/boot.d.ts.map +1 -0
- package/dist/cms/boot.js +128 -0
- package/dist/cms/boot.js.map +1 -0
- package/dist/cms/create.d.ts +272 -0
- package/dist/cms/create.d.ts.map +1 -0
- package/dist/cms/create.js +181 -0
- package/dist/cms/create.js.map +1 -0
- package/dist/cms/lifecycle.d.ts +11 -0
- package/dist/cms/lifecycle.d.ts.map +1 -0
- package/dist/cms/lifecycle.js +15 -0
- package/dist/cms/lifecycle.js.map +1 -0
- package/dist/{web/errors.d.ts → cms/server-error.d.ts} +2 -8
- package/dist/cms/server-error.d.ts.map +1 -0
- package/dist/{web/errors.js → cms/server-error.js} +4 -14
- package/dist/cms/server-error.js.map +1 -0
- package/dist/cms/services.d.ts +57 -0
- package/dist/cms/services.d.ts.map +1 -0
- package/dist/cms/services.js +410 -0
- package/dist/cms/services.js.map +1 -0
- package/dist/cms/site-records.d.ts +4 -0
- package/dist/cms/site-records.d.ts.map +1 -0
- package/dist/cms/site-records.js +13 -0
- package/dist/cms/site-records.js.map +1 -0
- package/dist/comments/akismet.d.ts +14 -47
- package/dist/comments/akismet.d.ts.map +1 -1
- package/dist/comments/akismet.js +30 -71
- package/dist/comments/akismet.js.map +1 -1
- package/dist/comments/conversation.d.ts +340 -0
- package/dist/comments/conversation.d.ts.map +1 -0
- package/dist/comments/conversation.js +51 -0
- package/dist/comments/conversation.js.map +1 -0
- package/dist/comments/form.d.ts +2 -2
- package/dist/comments/form.d.ts.map +1 -1
- package/dist/comments/form.js +2 -2
- package/dist/comments/form.js.map +1 -1
- package/dist/comments/index.d.ts +15 -9
- package/dist/comments/index.d.ts.map +1 -1
- package/dist/comments/index.js +9 -6
- package/dist/comments/index.js.map +1 -1
- package/dist/comments/intake.d.ts +147 -0
- package/dist/comments/intake.d.ts.map +1 -0
- package/dist/comments/intake.js +161 -0
- package/dist/comments/intake.js.map +1 -0
- package/dist/comments/markdown.d.ts.map +1 -1
- package/dist/comments/markdown.js +2 -9
- package/dist/comments/markdown.js.map +1 -1
- package/dist/comments/migrations.d.ts +45 -0
- package/dist/comments/migrations.d.ts.map +1 -0
- package/dist/comments/migrations.js +194 -0
- package/dist/comments/migrations.js.map +1 -0
- package/dist/comments/moderate.d.ts +2 -2
- package/dist/comments/moderate.d.ts.map +1 -1
- package/dist/comments/moderate.js +3 -13
- package/dist/comments/moderate.js.map +1 -1
- package/dist/comments/page-form.d.ts +52 -0
- package/dist/comments/page-form.d.ts.map +1 -0
- package/dist/comments/page-form.js +62 -0
- package/dist/comments/page-form.js.map +1 -0
- package/dist/comments/policy.d.ts +24 -35
- package/dist/comments/policy.d.ts.map +1 -1
- package/dist/comments/policy.js +16 -38
- package/dist/comments/policy.js.map +1 -1
- package/dist/comments/records.d.ts +17 -195
- package/dist/comments/records.d.ts.map +1 -1
- package/dist/comments/records.js +24 -394
- package/dist/comments/records.js.map +1 -1
- package/dist/comments/reply-notices.d.ts +10 -11
- package/dist/comments/reply-notices.d.ts.map +1 -1
- package/dist/comments/reply-notices.js +32 -20
- package/dist/comments/reply-notices.js.map +1 -1
- package/dist/comments/reply-post.d.ts +2 -2
- package/dist/comments/reply-post.d.ts.map +1 -1
- package/dist/comments/reply-post.js +8 -7
- package/dist/comments/reply-post.js.map +1 -1
- package/dist/comments/routes.d.ts +3 -3
- package/dist/comments/routes.d.ts.map +1 -1
- package/dist/comments/routes.js +19 -31
- package/dist/comments/routes.js.map +1 -1
- package/dist/comments/submission.d.ts +5 -102
- package/dist/comments/submission.d.ts.map +1 -1
- package/dist/comments/submission.js +5 -22
- package/dist/comments/submission.js.map +1 -1
- package/dist/comments/viewer.d.ts +1 -25
- package/dist/comments/viewer.d.ts.map +1 -1
- package/dist/comments/viewer.js +1 -44
- package/dist/comments/viewer.js.map +1 -1
- package/dist/config-loader.d.ts +35 -0
- package/dist/config-loader.d.ts.map +1 -0
- package/dist/config-loader.js +117 -0
- package/dist/config-loader.js.map +1 -0
- package/dist/config.d.ts +99 -51
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +137 -181
- package/dist/config.js.map +1 -1
- package/dist/contact/delivery.d.ts +3 -5
- package/dist/contact/delivery.d.ts.map +1 -1
- package/dist/contact/delivery.js +5 -14
- package/dist/contact/delivery.js.map +1 -1
- package/dist/contact/form.d.ts +2 -4
- package/dist/contact/form.d.ts.map +1 -1
- package/dist/contact/form.js +3 -4
- package/dist/contact/form.js.map +1 -1
- package/dist/contact/index.d.ts +3 -3
- package/dist/contact/index.d.ts.map +1 -1
- package/dist/contact/index.js +3 -3
- 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 +11 -16
- package/dist/contact/records.js.map +1 -1
- package/dist/contact/submission.d.ts +2 -2
- package/dist/contact/submission.d.ts.map +1 -1
- package/dist/contact/submission.js +7 -16
- package/dist/contact/submission.js.map +1 -1
- package/dist/{images → content}/alt-text.d.ts +1 -1
- package/dist/content/alt-text.d.ts.map +1 -0
- package/dist/{images → content}/alt-text.js +3 -5
- package/dist/content/alt-text.js.map +1 -0
- package/dist/content/authors.d.ts +79 -0
- package/dist/content/authors.d.ts.map +1 -0
- package/dist/content/authors.js +106 -0
- package/dist/content/authors.js.map +1 -0
- package/dist/content/citation.d.ts +4 -0
- package/dist/content/citation.d.ts.map +1 -1
- package/dist/content/citation.js +3 -0
- package/dist/content/citation.js.map +1 -1
- package/dist/content/comments.d.ts +3 -0
- package/dist/content/comments.d.ts.map +1 -0
- package/dist/content/comments.js +3 -0
- package/dist/content/comments.js.map +1 -0
- package/dist/content/contact.d.ts +3 -0
- package/dist/content/contact.d.ts.map +1 -0
- package/dist/content/contact.js +3 -0
- package/dist/content/contact.js.map +1 -0
- package/dist/content/document-form.d.ts +197 -0
- package/dist/content/document-form.d.ts.map +1 -0
- package/dist/content/document-form.js +201 -0
- package/dist/content/document-form.js.map +1 -0
- package/dist/content/document-kind.d.ts +55 -0
- package/dist/content/document-kind.d.ts.map +1 -0
- package/dist/content/document-kind.js +30 -0
- package/dist/content/document-kind.js.map +1 -0
- package/dist/{admin/enclosure-field.d.ts → content/enclosure-form.d.ts} +14 -34
- package/dist/content/enclosure-form.d.ts.map +1 -0
- package/dist/{admin/enclosure-field.js → content/enclosure-form.js} +43 -81
- package/dist/content/enclosure-form.js.map +1 -0
- package/dist/content/enclosure.d.ts.map +1 -1
- package/dist/content/enclosure.js +3 -4
- package/dist/content/enclosure.js.map +1 -1
- package/dist/{admin/event-field.d.ts → content/event-form.d.ts} +6 -5
- package/dist/content/event-form.d.ts.map +1 -0
- package/dist/{admin/event-field.js → content/event-form.js} +45 -12
- package/dist/content/event-form.js.map +1 -0
- package/dist/content/excerpt.d.ts +26 -0
- package/dist/content/excerpt.d.ts.map +1 -0
- package/dist/content/excerpt.js +46 -0
- package/dist/content/excerpt.js.map +1 -0
- package/dist/content/form-error.d.ts +10 -0
- package/dist/content/form-error.d.ts.map +1 -0
- package/dist/content/form-error.js +2 -0
- package/dist/content/form-error.js.map +1 -0
- package/dist/{web → content}/guids.d.ts +12 -5
- package/dist/content/guids.d.ts.map +1 -0
- package/dist/{web → content}/guids.js +28 -5
- package/dist/content/guids.js.map +1 -0
- package/dist/content/image-tags.d.ts +25 -0
- package/dist/content/image-tags.d.ts.map +1 -0
- package/dist/content/image-tags.js +55 -0
- package/dist/content/image-tags.js.map +1 -0
- package/dist/content/index.d.ts +11 -6
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/index.js +6 -3
- 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/language.d.ts +19 -0
- package/dist/content/language.d.ts.map +1 -0
- package/dist/content/language.js +19 -0
- package/dist/content/language.js.map +1 -0
- package/dist/content/license.d.ts.map +1 -0
- package/dist/content/license.js.map +1 -0
- package/dist/{web → content}/locale.d.ts +0 -6
- package/dist/content/locale.d.ts.map +1 -0
- package/dist/{web → content}/locale.js +1 -6
- package/dist/content/locale.js.map +1 -0
- package/dist/content/location-form.d.ts +17 -0
- package/dist/content/location-form.d.ts.map +1 -0
- package/dist/{admin/location-field.js → content/location-form.js} +2 -23
- package/dist/content/location-form.js.map +1 -0
- package/dist/content/location.d.ts.map +1 -1
- package/dist/content/location.js +1 -3
- package/dist/content/location.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/markdown-links.d.ts +11 -0
- package/dist/content/markdown-links.d.ts.map +1 -0
- package/dist/content/markdown-links.js +223 -0
- package/dist/content/markdown-links.js.map +1 -0
- package/dist/content/markdown.d.ts +2 -1
- package/dist/content/markdown.d.ts.map +1 -1
- package/dist/content/markdown.js +1 -1
- package/dist/content/markdown.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/migrated.js +1 -1
- package/dist/content/migrated.js.map +1 -1
- package/dist/content/parser.d.ts.map +1 -1
- package/dist/content/parser.js +1 -12
- package/dist/content/parser.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/permalinks.d.ts +34 -0
- package/dist/content/permalinks.d.ts.map +1 -0
- package/dist/{web/documents.js → content/permalinks.js} +6 -56
- package/dist/content/permalinks.js.map +1 -0
- package/dist/content/photo-form.d.ts +29 -0
- package/dist/content/photo-form.d.ts.map +1 -0
- package/dist/{admin/photo-field.js → content/photo-form.js} +43 -40
- package/dist/content/photo-form.js.map +1 -0
- package/dist/content/photo.d.ts +2 -1
- package/dist/content/photo.d.ts.map +1 -1
- package/dist/content/photo.js +2 -2
- package/dist/content/photo.js.map +1 -1
- package/dist/content/post-fields.d.ts +40 -0
- package/dist/content/post-fields.d.ts.map +1 -0
- package/dist/content/post-fields.js +252 -0
- package/dist/content/post-fields.js.map +1 -0
- package/dist/content/read-form.d.ts +31 -0
- package/dist/content/read-form.d.ts.map +1 -0
- package/dist/content/read-form.js +157 -0
- package/dist/content/read-form.js.map +1 -0
- package/dist/content/read.d.ts +9 -2
- package/dist/content/read.d.ts.map +1 -1
- package/dist/content/read.js +28 -13
- package/dist/content/read.js.map +1 -1
- package/dist/content/redirects.d.ts +84 -0
- package/dist/content/redirects.d.ts.map +1 -0
- package/dist/content/redirects.js +234 -0
- package/dist/content/redirects.js.map +1 -0
- package/dist/content/sanitize.d.ts +13 -0
- package/dist/content/sanitize.d.ts.map +1 -0
- package/dist/{web → content}/sanitize.js +4 -71
- package/dist/content/sanitize.js.map +1 -0
- package/dist/content/save.d.ts +5 -8
- package/dist/content/save.d.ts.map +1 -1
- package/dist/content/save.js +5 -26
- package/dist/content/save.js.map +1 -1
- package/dist/content/schedule.d.ts +2 -2
- package/dist/content/schedule.d.ts.map +1 -1
- package/dist/content/schedule.js +1 -3
- package/dist/content/schedule.js.map +1 -1
- package/dist/content/served.d.ts +58 -0
- package/dist/content/served.d.ts.map +1 -0
- package/dist/content/served.js +65 -0
- package/dist/content/served.js.map +1 -0
- package/dist/content/site-links.d.ts +72 -0
- package/dist/content/site-links.d.ts.map +1 -0
- package/dist/content/site-links.js +191 -0
- package/dist/content/site-links.js.map +1 -0
- package/dist/content/sqlite/archive.d.ts +4 -0
- package/dist/content/sqlite/archive.d.ts.map +1 -0
- package/dist/content/sqlite/archive.js +96 -0
- package/dist/content/sqlite/archive.js.map +1 -0
- package/dist/content/sqlite/backlinks.d.ts +4 -0
- package/dist/content/sqlite/backlinks.d.ts.map +1 -0
- package/dist/content/sqlite/backlinks.js +46 -0
- package/dist/content/sqlite/backlinks.js.map +1 -0
- package/dist/content/sqlite/catalog.d.ts +4 -0
- package/dist/content/sqlite/catalog.d.ts.map +1 -0
- package/dist/content/sqlite/catalog.js +62 -0
- package/dist/content/sqlite/catalog.js.map +1 -0
- package/dist/content/sqlite/clauses.d.ts +57 -0
- package/dist/content/sqlite/clauses.d.ts.map +1 -0
- package/dist/content/sqlite/clauses.js +76 -0
- package/dist/content/sqlite/clauses.js.map +1 -0
- package/dist/content/sqlite/database.d.ts +26 -0
- package/dist/content/sqlite/database.d.ts.map +1 -0
- package/dist/content/sqlite/database.js +27 -0
- package/dist/content/sqlite/database.js.map +1 -0
- package/dist/content/sqlite/documents.d.ts +12 -0
- package/dist/content/sqlite/documents.d.ts.map +1 -0
- package/dist/content/sqlite/documents.js +40 -0
- package/dist/content/sqlite/documents.js.map +1 -0
- package/dist/content/sqlite/lookups.d.ts +6 -0
- package/dist/content/sqlite/lookups.d.ts.map +1 -0
- package/dist/content/sqlite/lookups.js +25 -0
- package/dist/content/sqlite/lookups.js.map +1 -0
- package/dist/content/sqlite/open.d.ts +8 -0
- package/dist/content/sqlite/open.d.ts.map +1 -0
- package/dist/content/sqlite/open.js +63 -0
- package/dist/content/sqlite/open.js.map +1 -0
- package/dist/content/sqlite/replies.d.ts +4 -0
- package/dist/content/sqlite/replies.d.ts.map +1 -0
- package/dist/content/sqlite/replies.js +21 -0
- package/dist/content/sqlite/replies.js.map +1 -0
- package/dist/content/sqlite/rows.d.ts +22 -0
- package/dist/content/sqlite/rows.d.ts.map +1 -0
- package/dist/content/sqlite/rows.js +93 -0
- package/dist/content/sqlite/rows.js.map +1 -0
- package/dist/content/sqlite/schedule.d.ts +4 -0
- package/dist/content/sqlite/schedule.d.ts.map +1 -0
- package/dist/content/sqlite/schedule.js +16 -0
- package/dist/content/sqlite/schedule.js.map +1 -0
- package/dist/content/sqlite/schema.d.ts +10 -0
- package/dist/content/sqlite/schema.d.ts.map +1 -0
- package/dist/content/sqlite/schema.js +209 -0
- package/dist/content/sqlite/schema.js.map +1 -0
- package/dist/content/sqlite/search.d.ts +4 -0
- package/dist/content/sqlite/search.d.ts.map +1 -0
- package/dist/content/sqlite/search.js +54 -0
- package/dist/content/sqlite/search.js.map +1 -0
- package/dist/content/sqlite/spellings.d.ts +6 -0
- package/dist/content/sqlite/spellings.d.ts.map +1 -0
- package/dist/content/sqlite/spellings.js +80 -0
- package/dist/content/sqlite/spellings.js.map +1 -0
- package/dist/content/sqlite/taxonomy.d.ts +4 -0
- package/dist/content/sqlite/taxonomy.d.ts.map +1 -0
- package/dist/content/sqlite/taxonomy.js +75 -0
- package/dist/content/sqlite/taxonomy.js.map +1 -0
- package/dist/content/sqlite/writes.d.ts +9 -0
- package/dist/content/sqlite/writes.d.ts.map +1 -0
- package/dist/content/sqlite/writes.js +164 -0
- package/dist/content/sqlite/writes.js.map +1 -0
- package/dist/content/store.d.ts +142 -138
- package/dist/content/store.d.ts.map +1 -1
- package/dist/content/store.js +0 -1051
- package/dist/content/store.js.map +1 -1
- package/dist/content/sync.d.ts +12 -4
- package/dist/content/sync.d.ts.map +1 -1
- package/dist/content/sync.js +24 -41
- package/dist/content/sync.js.map +1 -1
- package/dist/content/syndicate-to.d.ts +25 -0
- package/dist/content/syndicate-to.d.ts.map +1 -0
- package/dist/content/syndicate-to.js +8 -0
- package/dist/content/syndicate-to.js.map +1 -0
- package/dist/{web → content}/taxonomy.d.ts +1 -1
- package/dist/content/taxonomy.d.ts.map +1 -0
- package/dist/{web → content}/taxonomy.js +2 -2
- package/dist/content/taxonomy.js.map +1 -0
- package/dist/content/time.d.ts +2 -2
- package/dist/content/time.d.ts.map +1 -1
- package/dist/content/time.js +3 -3
- package/dist/content/time.js.map +1 -1
- package/dist/content/trash.d.ts +35 -0
- package/dist/content/trash.d.ts.map +1 -0
- package/dist/content/trash.js +83 -0
- package/dist/content/trash.js.map +1 -0
- package/dist/content/uploads.d.ts +24 -0
- package/dist/content/uploads.d.ts.map +1 -0
- package/dist/content/uploads.js +32 -0
- package/dist/content/uploads.js.map +1 -0
- package/dist/content/video.d.ts.map +1 -1
- package/dist/content/video.js +3 -5
- package/dist/content/video.js.map +1 -1
- package/dist/content/write.d.ts +84 -0
- package/dist/content/write.d.ts.map +1 -0
- package/dist/content/write.js +570 -0
- package/dist/content/write.js.map +1 -0
- package/dist/content/writer.d.ts.map +1 -1
- package/dist/content/writer.js +1 -2
- package/dist/content/writer.js.map +1 -1
- package/dist/dev-mode.d.ts +6 -26
- package/dist/dev-mode.d.ts.map +1 -1
- package/dist/dev-mode.js +5 -54
- package/dist/dev-mode.js.map +1 -1
- package/dist/drain.d.ts +2 -3
- package/dist/drain.d.ts.map +1 -1
- package/dist/drain.js +2 -1
- package/dist/drain.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 +31 -0
- package/dist/exports.d.ts.map +1 -0
- package/dist/exports.js +10 -0
- package/dist/exports.js.map +1 -0
- package/dist/federation/actor.d.ts +1 -1
- package/dist/federation/actor.d.ts.map +1 -1
- package/dist/federation/actor.js +6 -13
- package/dist/federation/actor.js.map +1 -1
- package/dist/federation/article.d.ts +4 -14
- package/dist/federation/article.d.ts.map +1 -1
- package/dist/federation/article.js +40 -51
- package/dist/federation/article.js.map +1 -1
- package/dist/federation/backfill.d.ts +7 -5
- package/dist/federation/backfill.d.ts.map +1 -1
- package/dist/federation/backfill.js +12 -13
- package/dist/federation/backfill.js.map +1 -1
- package/dist/federation/citations.d.ts.map +1 -1
- package/dist/federation/citations.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 +3 -5
- package/dist/federation/cited-post.js.map +1 -1
- package/dist/federation/delivery-plan.d.ts +85 -0
- package/dist/federation/delivery-plan.d.ts.map +1 -0
- package/dist/federation/delivery-plan.js +137 -0
- package/dist/federation/delivery-plan.js.map +1 -0
- package/dist/federation/delivery.d.ts +12 -34
- package/dist/federation/delivery.d.ts.map +1 -1
- package/dist/federation/delivery.js +79 -212
- package/dist/federation/delivery.js.map +1 -1
- package/dist/federation/federation.d.ts +12 -12
- package/dist/federation/federation.d.ts.map +1 -1
- package/dist/federation/federation.js +12 -18
- package/dist/federation/federation.js.map +1 -1
- package/dist/federation/followers.d.ts +1 -1
- package/dist/federation/followers.d.ts.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.d.ts +1 -1
- package/dist/federation/inbox.d.ts.map +1 -1
- package/dist/federation/inbox.js +6 -5
- package/dist/federation/inbox.js.map +1 -1
- package/dist/federation/index.d.ts +10 -8
- package/dist/federation/index.d.ts.map +1 -1
- package/dist/federation/index.js +7 -5
- package/dist/federation/index.js.map +1 -1
- package/dist/federation/keys.d.ts +8 -27
- package/dist/federation/keys.d.ts.map +1 -1
- package/dist/federation/keys.js +7 -50
- package/dist/federation/keys.js.map +1 -1
- package/dist/federation/mount.d.ts +2 -2
- package/dist/federation/mount.d.ts.map +1 -1
- package/dist/federation/mount.js +9 -7
- package/dist/federation/mount.js.map +1 -1
- package/dist/federation/paths.d.ts +1 -9
- package/dist/federation/paths.d.ts.map +1 -1
- package/dist/federation/paths.js +2 -12
- package/dist/federation/paths.js.map +1 -1
- package/dist/federation/profiles.d.ts +2 -2
- package/dist/federation/profiles.d.ts.map +1 -1
- package/dist/federation/profiles.js +6 -9
- 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/quotes.d.ts +2 -2
- package/dist/federation/quotes.d.ts.map +1 -1
- package/dist/federation/quotes.js +4 -4
- package/dist/federation/quotes.js.map +1 -1
- package/dist/federation/records.d.ts +2 -2
- package/dist/federation/records.d.ts.map +1 -1
- package/dist/federation/records.js +12 -19
- package/dist/federation/records.js.map +1 -1
- package/dist/federation/relays.d.ts +8 -5
- package/dist/federation/relays.d.ts.map +1 -1
- package/dist/federation/relays.js +52 -53
- 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/federation/site-loaders.js +1 -1
- package/dist/federation/site-loaders.js.map +1 -1
- package/dist/federation/webfinger.d.ts +23 -0
- package/dist/federation/webfinger.d.ts.map +1 -0
- package/dist/federation/webfinger.js +70 -0
- package/dist/federation/webfinger.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 +5 -10
- 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 +21 -0
- package/dist/files/static-files.d.ts.map +1 -0
- package/dist/files/static-files.js +73 -0
- package/dist/files/static-files.js.map +1 -0
- 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/checker.d.ts +93 -0
- package/dist/forms/checker.d.ts.map +1 -0
- package/dist/forms/checker.js +2 -0
- package/dist/forms/checker.js.map +1 -0
- package/dist/forms/protection.d.ts +3 -9
- package/dist/forms/protection.d.ts.map +1 -1
- package/dist/forms/protection.js +5 -11
- package/dist/forms/protection.js.map +1 -1
- package/dist/images/icons.d.ts.map +1 -1
- package/dist/images/icons.js +4 -2
- package/dist/images/icons.js.map +1 -1
- package/dist/images/index.d.ts +2 -1
- package/dist/images/index.d.ts.map +1 -1
- package/dist/images/index.js +2 -1
- package/dist/images/index.js.map +1 -1
- package/dist/images/markup.d.ts +4 -21
- package/dist/images/markup.d.ts.map +1 -1
- package/dist/images/markup.js +15 -70
- package/dist/images/markup.js.map +1 -1
- package/dist/images/paths.d.ts +1 -14
- package/dist/images/paths.d.ts.map +1 -1
- package/dist/images/paths.js +9 -23
- package/dist/images/paths.js.map +1 -1
- package/dist/images/variants.d.ts +5 -3
- package/dist/images/variants.d.ts.map +1 -1
- package/dist/images/variants.js +23 -22
- package/dist/images/variants.js.map +1 -1
- package/dist/index.d.ts +4 -291
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -839
- 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 +52 -45
- package/dist/indexnow.js.map +1 -1
- package/dist/indieauth/client.d.ts +1 -1
- package/dist/indieauth/client.d.ts.map +1 -1
- package/dist/indieauth/client.js +1 -1
- package/dist/indieauth/client.js.map +1 -1
- package/dist/indieauth/grants.d.ts +1 -1
- package/dist/indieauth/grants.d.ts.map +1 -1
- package/dist/indieauth/identity.d.ts +2 -2
- package/dist/indieauth/identity.d.ts.map +1 -1
- package/dist/indieauth/identity.js +5 -7
- package/dist/indieauth/identity.js.map +1 -1
- package/dist/indieauth/redeem.d.ts +1 -1
- package/dist/indieauth/redeem.d.ts.map +1 -1
- package/dist/indieauth/redeem.js.map +1 -1
- package/dist/indieauth/request.d.ts +5 -1
- package/dist/indieauth/request.d.ts.map +1 -1
- package/dist/indieauth/request.js +6 -2
- package/dist/indieauth/request.js.map +1 -1
- package/dist/indieauth/tokens.d.ts +1 -3
- package/dist/indieauth/tokens.d.ts.map +1 -1
- package/dist/indieauth/tokens.js +4 -6
- 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 +1 -7
- package/dist/mail/index.d.ts.map +1 -1
- package/dist/mail/index.js +0 -3
- package/dist/mail/index.js.map +1 -1
- package/dist/mail/provider.d.ts +7 -0
- package/dist/mail/provider.d.ts.map +1 -1
- package/dist/maintenance.d.ts +6 -43
- 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 +99 -0
- package/dist/media/library.d.ts.map +1 -0
- package/dist/media/library.js +160 -0
- package/dist/media/library.js.map +1 -0
- package/dist/media/uploads.d.ts +106 -0
- package/dist/media/uploads.d.ts.map +1 -0
- package/dist/media/uploads.js +192 -0
- package/dist/media/uploads.js.map +1 -0
- package/dist/micropub/content.js +1 -1
- package/dist/micropub/content.js.map +1 -1
- package/dist/micropub/create.d.ts +7 -15
- package/dist/micropub/create.d.ts.map +1 -1
- package/dist/micropub/create.js +48 -184
- package/dist/micropub/create.js.map +1 -1
- package/dist/micropub/endpoint.d.ts +2 -2
- package/dist/micropub/endpoint.d.ts.map +1 -1
- package/dist/micropub/endpoint.js +36 -47
- package/dist/micropub/endpoint.js.map +1 -1
- package/dist/micropub/media.d.ts +1 -3
- package/dist/micropub/media.d.ts.map +1 -1
- package/dist/micropub/media.js +10 -12
- package/dist/micropub/media.js.map +1 -1
- package/dist/micropub/update.d.ts +6 -14
- package/dist/micropub/update.d.ts.map +1 -1
- package/dist/micropub/update.js +37 -90
- package/dist/micropub/update.js.map +1 -1
- package/dist/notifications/comments.d.ts +8 -6
- package/dist/notifications/comments.d.ts.map +1 -1
- package/dist/notifications/comments.js +80 -76
- package/dist/notifications/comments.js.map +1 -1
- package/dist/notifications/digest.d.ts +6 -8
- package/dist/notifications/digest.d.ts.map +1 -1
- package/dist/notifications/digest.js +15 -26
- package/dist/notifications/digest.js.map +1 -1
- package/dist/notifications/index.d.ts +9 -6
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +6 -5
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/links.d.ts.map +1 -1
- package/dist/notifications/links.js +2 -2
- package/dist/notifications/links.js.map +1 -1
- package/dist/{mail/service.d.ts → notifications/mail-service.d.ts} +16 -20
- package/dist/notifications/mail-service.d.ts.map +1 -0
- package/dist/{mail/service.js → notifications/mail-service.js} +100 -121
- package/dist/notifications/mail-service.js.map +1 -0
- package/dist/{mail/templates.d.ts → notifications/mail-templates.d.ts} +4 -2
- package/dist/notifications/mail-templates.d.ts.map +1 -0
- package/dist/{mail/templates.js → notifications/mail-templates.js} +5 -3
- package/dist/notifications/mail-templates.js.map +1 -0
- 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 +2 -4
- package/dist/notifications/tokens.d.ts.map +1 -1
- package/dist/notifications/tokens.js +4 -30
- 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 +35 -35
- package/dist/notify.js.map +1 -1
- package/dist/plugin.d.ts +59 -19
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +22 -4
- 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 +12 -26
- package/dist/plugins/enabled.js.map +1 -1
- package/dist/plugins/fetch.d.ts +1 -1
- package/dist/plugins/fetch.d.ts.map +1 -1
- package/dist/plugins/fetch.js +1 -1
- package/dist/plugins/fetch.js.map +1 -1
- package/dist/plugins/folder.d.ts.map +1 -1
- package/dist/plugins/folder.js +1 -3
- package/dist/plugins/folder.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 +14 -45
- package/dist/plugins/install.js.map +1 -1
- package/dist/plugins/manage.d.ts +1 -1
- package/dist/plugins/manage.d.ts.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 +63 -45
- 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 -181
- package/dist/plugins/settings.js.map +1 -1
- package/dist/plugins/site.d.ts +3 -2
- package/dist/plugins/site.d.ts.map +1 -1
- package/dist/plugins/site.js +8 -8
- package/dist/plugins/site.js.map +1 -1
- package/dist/plugins/upgrade.d.ts.map +1 -1
- package/dist/plugins/upgrade.js +4 -3
- package/dist/plugins/upgrade.js.map +1 -1
- package/dist/privacy/erase.d.ts +1 -1
- package/dist/privacy/erase.d.ts.map +1 -1
- package/dist/privacy/retention.d.ts +6 -2
- package/dist/privacy/retention.d.ts.map +1 -1
- package/dist/privacy/retention.js +20 -15
- 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/admin-paths.d.ts +23 -0
- package/dist/site/admin-paths.d.ts.map +1 -0
- package/dist/site/admin-paths.js +25 -0
- package/dist/site/admin-paths.js.map +1 -0
- package/dist/site/admin-theme.d.ts.map +1 -0
- package/dist/site/admin-theme.js.map +1 -0
- package/dist/{web → site}/authors.d.ts +1 -72
- package/dist/site/authors.d.ts.map +1 -0
- package/dist/site/authors.js +107 -0
- package/dist/site/authors.js.map +1 -0
- package/dist/site/feed-settings.d.ts +28 -0
- package/dist/site/feed-settings.d.ts.map +1 -0
- package/dist/site/feed-settings.js +22 -0
- package/dist/site/feed-settings.js.map +1 -0
- package/dist/{web/indexnow.d.ts → site/indexnow-key.d.ts} +1 -1
- package/dist/site/indexnow-key.d.ts.map +1 -0
- package/dist/{web/indexnow.js → site/indexnow-key.js} +1 -1
- package/dist/site/indexnow-key.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/{web → site}/navigation.d.ts +7 -1
- package/dist/site/navigation.d.ts.map +1 -0
- package/dist/{web → site}/navigation.js +18 -0
- package/dist/site/navigation.js.map +1 -0
- package/dist/{notifications/preferences.d.ts → site/notification-preferences.d.ts} +2 -2
- package/dist/site/notification-preferences.d.ts.map +1 -0
- package/dist/{notifications/preferences.js → site/notification-preferences.js} +1 -1
- package/dist/site/notification-preferences.js.map +1 -0
- package/dist/site/passwords.d.ts.map +1 -0
- package/dist/site/passwords.js.map +1 -0
- package/dist/{privacy/policy.d.ts → site/retention-policy.d.ts} +1 -1
- package/dist/site/retention-policy.d.ts.map +1 -0
- package/dist/{privacy/policy.js → site/retention-policy.js} +1 -1
- package/dist/site/retention-policy.js.map +1 -0
- package/dist/site/robots.d.ts +62 -0
- package/dist/site/robots.d.ts.map +1 -0
- package/dist/site/robots.js +130 -0
- package/dist/site/robots.js.map +1 -0
- package/dist/site/setting-rows.d.ts +45 -0
- package/dist/site/setting-rows.d.ts.map +1 -0
- package/dist/site/setting-rows.js +361 -0
- package/dist/site/setting-rows.js.map +1 -0
- package/dist/site/setting-values.d.ts +63 -0
- package/dist/site/setting-values.d.ts.map +1 -0
- package/dist/site/setting-values.js +170 -0
- package/dist/site/setting-values.js.map +1 -0
- package/dist/site/settings-form.d.ts +30 -0
- package/dist/site/settings-form.d.ts.map +1 -0
- package/dist/site/settings-form.js +54 -0
- package/dist/site/settings-form.js.map +1 -0
- package/dist/site/settings.d.ts +29 -0
- package/dist/site/settings.d.ts.map +1 -0
- package/dist/site/settings.js +44 -0
- package/dist/site/settings.js.map +1 -0
- package/dist/site/site-json.d.ts +38 -0
- package/dist/site/site-json.d.ts.map +1 -0
- package/dist/site/site-json.js +69 -0
- package/dist/site/site-json.js.map +1 -0
- package/dist/{admin/accounts.d.ts → site/users.d.ts} +25 -50
- package/dist/site/users.d.ts.map +1 -0
- package/dist/{admin/accounts.js → site/users.js} +51 -166
- package/dist/site/users.js.map +1 -0
- package/dist/store/admin-store.d.ts +72 -0
- package/dist/store/admin-store.d.ts.map +1 -0
- package/dist/store/admin-store.js +62 -0
- package/dist/store/admin-store.js.map +1 -0
- package/dist/store/comments.d.ts +253 -0
- package/dist/store/comments.d.ts.map +1 -0
- package/dist/store/comments.js +234 -0
- package/dist/store/comments.js.map +1 -0
- package/dist/store/conversation.d.ts +28 -0
- package/dist/store/conversation.d.ts.map +1 -0
- package/dist/store/conversation.js +16 -0
- package/dist/store/conversation.js.map +1 -0
- package/dist/store/deliveries.d.ts +92 -0
- package/dist/store/deliveries.d.ts.map +1 -0
- package/dist/store/deliveries.js +88 -0
- package/dist/store/deliveries.js.map +1 -0
- package/dist/store/followers.d.ts +91 -0
- package/dist/store/followers.d.ts.map +1 -0
- package/dist/store/followers.js +79 -0
- package/dist/store/followers.js.map +1 -0
- package/dist/{federation/replies.d.ts → store/inbox-replies.d.ts} +2 -2
- package/dist/store/inbox-replies.d.ts.map +1 -0
- package/dist/{federation/replies.js → store/inbox-replies.js} +2 -4
- package/dist/store/inbox-replies.js.map +1 -0
- package/dist/store/inbox.d.ts +132 -0
- package/dist/store/inbox.d.ts.map +1 -0
- package/dist/store/inbox.js +157 -0
- package/dist/store/inbox.js.map +1 -0
- package/dist/store/profiles.d.ts +49 -0
- package/dist/store/profiles.d.ts.map +1 -0
- package/dist/store/profiles.js +71 -0
- package/dist/store/profiles.js.map +1 -0
- 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/store/relays.d.ts +66 -0
- package/dist/store/relays.d.ts.map +1 -0
- package/dist/store/relays.js +69 -0
- package/dist/store/relays.js.map +1 -0
- package/dist/store/rows.d.ts +33 -0
- package/dist/store/rows.d.ts.map +1 -0
- package/dist/store/rows.js +44 -0
- package/dist/store/rows.js.map +1 -0
- package/dist/store/schema.d.ts +14 -0
- package/dist/store/schema.d.ts.map +1 -0
- package/dist/store/schema.js +588 -0
- package/dist/store/schema.js.map +1 -0
- package/dist/store/sessions.d.ts +90 -0
- package/dist/store/sessions.d.ts.map +1 -0
- package/dist/store/sessions.js +107 -0
- package/dist/store/sessions.js.map +1 -0
- package/dist/store/state.d.ts +18 -0
- package/dist/store/state.d.ts.map +1 -0
- package/dist/store/state.js +19 -0
- package/dist/store/state.js.map +1 -0
- package/dist/store/tokens.d.ts +75 -0
- package/dist/store/tokens.d.ts.map +1 -0
- package/dist/store/tokens.js +82 -0
- package/dist/store/tokens.js.map +1 -0
- package/dist/store/webmentions.d.ts +66 -0
- package/dist/store/webmentions.d.ts.map +1 -0
- package/dist/store/webmentions.js +84 -0
- package/dist/store/webmentions.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 +1 -1
- package/dist/supervisor/primary.d.ts.map +1 -1
- package/dist/supervisor/primary.js +46 -14
- package/dist/supervisor/primary.js.map +1 -1
- package/dist/supervisor/worker.d.ts +6 -2
- package/dist/supervisor/worker.d.ts.map +1 -1
- package/dist/supervisor/worker.js +4 -4
- package/dist/supervisor/worker.js.map +1 -1
- package/dist/testing.d.ts +8 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +6 -0
- package/dist/testing.js.map +1 -0
- package/dist/{web → theme}/assets.d.ts +1 -32
- package/dist/theme/assets.d.ts.map +1 -0
- package/dist/{web → theme}/assets.js +2 -100
- package/dist/theme/assets.js.map +1 -0
- package/dist/theme/site-data.d.ts +187 -0
- package/dist/theme/site-data.d.ts.map +1 -0
- package/dist/theme/site-data.js +160 -0
- package/dist/theme/site-data.js.map +1 -0
- package/dist/{web → theme}/templates.d.ts +2 -0
- package/dist/theme/templates.d.ts.map +1 -0
- package/dist/{web → theme}/templates.js +9 -32
- package/dist/theme/templates.js.map +1 -0
- package/dist/{web → theme}/themes.d.ts +1 -0
- package/dist/theme/themes.d.ts.map +1 -0
- package/dist/{web → theme}/themes.js +6 -3
- package/dist/theme/themes.js.map +1 -0
- package/dist/util/client-id.d.ts.map +1 -0
- package/dist/util/client-id.js.map +1 -0
- package/dist/util/clock.d.ts +9 -0
- package/dist/util/clock.d.ts.map +1 -0
- package/dist/util/clock.js +2 -0
- package/dist/util/clock.js.map +1 -0
- package/dist/util/errors.d.ts +3 -0
- package/dist/util/errors.d.ts.map +1 -0
- package/dist/util/errors.js +5 -0
- package/dist/util/errors.js.map +1 -0
- package/dist/util/files.d.ts +5 -0
- package/dist/util/files.d.ts.map +1 -0
- package/dist/util/files.js +38 -0
- package/dist/util/files.js.map +1 -0
- package/dist/util/forms.d.ts +5 -0
- package/dist/util/forms.d.ts.map +1 -0
- package/dist/util/forms.js +17 -0
- package/dist/util/forms.js.map +1 -0
- package/dist/util/guards.d.ts +4 -0
- package/dist/util/guards.d.ts.map +1 -0
- package/dist/util/guards.js +12 -0
- package/dist/util/guards.js.map +1 -0
- package/dist/{webmention/html.d.ts → util/html-tree.d.ts} +2 -2
- package/dist/util/html-tree.d.ts.map +1 -0
- package/dist/{webmention/html.js → util/html-tree.js} +3 -64
- package/dist/util/html-tree.js.map +1 -0
- package/dist/util/html.d.ts +4 -0
- package/dist/util/html.d.ts.map +1 -0
- package/dist/util/html.js +34 -0
- package/dist/util/html.js.map +1 -0
- package/dist/util/public-address.d.ts.map +1 -0
- package/dist/util/public-address.js.map +1 -0
- package/dist/util/queue.d.ts +7 -0
- package/dist/util/queue.d.ts.map +1 -0
- package/dist/util/queue.js +23 -0
- package/dist/util/queue.js.map +1 -0
- package/dist/util/retry.d.ts +11 -0
- package/dist/util/retry.d.ts.map +1 -0
- package/dist/util/retry.js +14 -0
- package/dist/util/retry.js.map +1 -0
- package/dist/util/url.d.ts +11 -0
- package/dist/util/url.d.ts.map +1 -0
- package/dist/util/url.js +20 -0
- package/dist/util/url.js.map +1 -0
- package/dist/web/absolute-urls.js +1 -1
- package/dist/web/absolute-urls.js.map +1 -1
- package/dist/web/archive.js +2 -2
- package/dist/web/archive.js.map +1 -1
- package/dist/web/asset-routes.d.ts +52 -0
- package/dist/web/asset-routes.d.ts.map +1 -0
- package/dist/web/asset-routes.js +115 -0
- package/dist/web/asset-routes.js.map +1 -0
- package/dist/{avatars/routes.d.ts → web/avatar-routes.d.ts} +2 -2
- package/dist/web/avatar-routes.d.ts.map +1 -0
- package/dist/{avatars/routes.js → web/avatar-routes.js} +3 -3
- package/dist/web/avatar-routes.js.map +1 -0
- package/dist/web/comment-routes.d.ts +18 -0
- package/dist/web/comment-routes.d.ts.map +1 -0
- package/dist/web/comment-routes.js +177 -0
- package/dist/web/comment-routes.js.map +1 -0
- package/dist/web/compression.d.ts.map +1 -1
- package/dist/web/compression.js +1 -2
- package/dist/web/compression.js.map +1 -1
- package/dist/{contact/routes.d.ts → web/contact-routes.d.ts} +2 -2
- package/dist/web/contact-routes.d.ts.map +1 -0
- package/dist/{contact/routes.js → web/contact-routes.js} +15 -18
- package/dist/web/contact-routes.js.map +1 -0
- package/dist/web/context.d.ts +6 -187
- package/dist/web/context.d.ts.map +1 -1
- package/dist/web/context.js +13 -174
- package/dist/web/context.js.map +1 -1
- package/dist/web/conversation.d.ts +6 -357
- package/dist/web/conversation.d.ts.map +1 -1
- package/dist/web/conversation.js +177 -151
- package/dist/web/conversation.js.map +1 -1
- package/dist/web/document-page.d.ts +13 -0
- package/dist/web/document-page.d.ts.map +1 -0
- package/dist/web/document-page.js +137 -0
- package/dist/web/document-page.js.map +1 -0
- package/dist/web/document-site.d.ts +14 -0
- package/dist/web/document-site.d.ts.map +1 -0
- package/dist/web/document-site.js +29 -0
- package/dist/web/document-site.js.map +1 -0
- package/dist/web/embed.d.ts +13 -0
- package/dist/web/embed.d.ts.map +1 -0
- package/dist/web/embed.js +66 -0
- package/dist/web/embed.js.map +1 -0
- package/dist/{env.d.ts → web/env.d.ts} +36 -26
- package/dist/web/env.d.ts.map +1 -0
- package/dist/web/env.js.map +1 -0
- package/dist/web/federation-routes.d.ts +33 -0
- package/dist/web/federation-routes.d.ts.map +1 -0
- package/dist/web/federation-routes.js +282 -0
- package/dist/web/federation-routes.js.map +1 -0
- package/dist/web/feed-atom.d.ts.map +1 -1
- package/dist/web/feed-atom.js +4 -3
- package/dist/web/feed-atom.js.map +1 -1
- package/dist/web/feed-item.d.ts +4 -39
- package/dist/web/feed-item.d.ts.map +1 -1
- package/dist/web/feed-item.js +9 -73
- package/dist/web/feed-item.js.map +1 -1
- package/dist/web/feed-json.js +2 -2
- package/dist/web/feed-json.js.map +1 -1
- package/dist/web/feed-routes.d.ts +35 -0
- package/dist/web/feed-routes.d.ts.map +1 -0
- package/dist/web/feed-routes.js +126 -0
- package/dist/web/feed-routes.js.map +1 -0
- package/dist/web/feed-rss.d.ts.map +1 -1
- package/dist/web/feed-rss.js +9 -6
- package/dist/web/feed-rss.js.map +1 -1
- package/dist/web/feed-source.d.ts +11 -41
- package/dist/web/feed-source.d.ts.map +1 -1
- package/dist/web/feed-source.js +11 -48
- package/dist/web/feed-source.js.map +1 -1
- package/dist/web/feeds.d.ts +4 -2
- package/dist/web/feeds.d.ts.map +1 -1
- package/dist/web/feeds.js +8 -5
- package/dist/web/feeds.js.map +1 -1
- package/dist/web/health.d.ts +1 -1
- package/dist/web/health.d.ts.map +1 -1
- package/dist/web/health.js +1 -1
- package/dist/web/health.js.map +1 -1
- package/dist/web/index.d.ts +53 -29
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js +37 -18
- package/dist/web/index.js.map +1 -1
- package/dist/{indieauth/activity-log.d.ts → web/indieauth-activity-log.d.ts} +3 -5
- package/dist/web/indieauth-activity-log.d.ts.map +1 -0
- package/dist/{indieauth/activity-log.js → web/indieauth-activity-log.js} +7 -10
- package/dist/web/indieauth-activity-log.js.map +1 -0
- package/dist/{indieauth/bearer.d.ts → web/indieauth-bearer.d.ts} +5 -5
- package/dist/web/indieauth-bearer.d.ts.map +1 -0
- package/dist/{indieauth/bearer.js → web/indieauth-bearer.js} +5 -5
- package/dist/web/indieauth-bearer.js.map +1 -0
- package/dist/{indieauth/discovery.d.ts → web/indieauth-discovery.d.ts} +2 -11
- package/dist/web/indieauth-discovery.d.ts.map +1 -0
- package/dist/{indieauth/discovery.js → web/indieauth-discovery.js} +7 -17
- package/dist/web/indieauth-discovery.js.map +1 -0
- package/dist/{indieauth/token.d.ts → web/indieauth-token.d.ts} +2 -2
- package/dist/web/indieauth-token.d.ts.map +1 -0
- package/dist/{indieauth/token.js → web/indieauth-token.js} +9 -9
- package/dist/web/indieauth-token.js.map +1 -0
- package/dist/web/listing-pages.d.ts +19 -0
- package/dist/web/listing-pages.d.ts.map +1 -0
- package/dist/web/listing-pages.js +147 -0
- package/dist/web/listing-pages.js.map +1 -0
- package/dist/web/listing-subject.d.ts +58 -0
- package/dist/web/listing-subject.d.ts.map +1 -0
- package/dist/web/listing-subject.js +89 -0
- package/dist/web/listing-subject.js.map +1 -0
- package/dist/web/llms.d.ts +16 -15
- package/dist/web/llms.d.ts.map +1 -1
- package/dist/web/llms.js +23 -35
- package/dist/web/llms.js.map +1 -1
- package/dist/web/maintenance.d.ts +1 -1
- package/dist/web/maintenance.d.ts.map +1 -1
- package/dist/web/maintenance.js +10 -16
- package/dist/web/maintenance.js.map +1 -1
- package/dist/web/manifest.d.ts +1 -1
- package/dist/web/manifest.d.ts.map +1 -1
- package/dist/web/manifest.js +2 -1
- package/dist/web/manifest.js.map +1 -1
- package/dist/web/markdown-page.d.ts +76 -0
- package/dist/web/markdown-page.d.ts.map +1 -0
- package/dist/web/markdown-page.js +79 -0
- package/dist/web/markdown-page.js.map +1 -0
- package/dist/web/markdown-representation.d.ts +15 -0
- package/dist/web/markdown-representation.d.ts.map +1 -0
- package/dist/web/markdown-representation.js +130 -0
- package/dist/web/markdown-representation.js.map +1 -0
- package/dist/web/negotiate.d.ts +5 -12
- package/dist/web/negotiate.d.ts.map +1 -1
- package/dist/web/negotiate.js +11 -18
- package/dist/web/negotiate.js.map +1 -1
- package/dist/{notifications/routes.d.ts → web/notification-routes.d.ts} +2 -2
- package/dist/web/notification-routes.d.ts.map +1 -0
- package/dist/{notifications/routes.js → web/notification-routes.js} +24 -29
- package/dist/web/notification-routes.js.map +1 -0
- package/dist/web/oembed.d.ts +2 -2
- package/dist/web/oembed.d.ts.map +1 -1
- package/dist/web/oembed.js +5 -4
- package/dist/web/oembed.js.map +1 -1
- package/dist/web/opensearch.d.ts.map +1 -1
- package/dist/web/opensearch.js +2 -1
- package/dist/web/opensearch.js.map +1 -1
- package/dist/web/page-sources.d.ts +14 -0
- package/dist/web/page-sources.d.ts.map +1 -0
- package/dist/web/page-sources.js +43 -0
- package/dist/web/page-sources.js.map +1 -0
- package/dist/web/pagination.d.ts +1 -0
- package/dist/web/pagination.d.ts.map +1 -1
- package/dist/web/pagination.js +4 -1
- package/dist/web/pagination.js.map +1 -1
- package/dist/web/paths.d.ts +52 -0
- package/dist/web/paths.d.ts.map +1 -0
- package/dist/web/paths.js +208 -0
- package/dist/web/paths.js.map +1 -0
- package/dist/web/pingback-routes.d.ts +5 -0
- package/dist/web/pingback-routes.d.ts.map +1 -0
- package/dist/web/pingback-routes.js +100 -0
- package/dist/web/pingback-routes.js.map +1 -0
- package/dist/{plugins/federation.d.ts → web/plugin-federation.d.ts} +3 -3
- package/dist/web/plugin-federation.d.ts.map +1 -0
- package/dist/{plugins/federation.js → web/plugin-federation.js} +55 -45
- package/dist/web/plugin-federation.js.map +1 -0
- package/dist/{plugins/mount.d.ts → web/plugin-routes.d.ts} +3 -3
- package/dist/web/plugin-routes.d.ts.map +1 -0
- package/dist/{plugins/mount.js → web/plugin-routes.js} +2 -2
- package/dist/web/plugin-routes.js.map +1 -0
- package/dist/web/redirects.d.ts +1 -84
- package/dist/web/redirects.d.ts.map +1 -1
- package/dist/web/redirects.js +0 -232
- package/dist/web/redirects.js.map +1 -1
- package/dist/web/render.d.ts +55 -12
- package/dist/web/render.d.ts.map +1 -1
- package/dist/web/render.js +123 -65
- package/dist/web/render.js.map +1 -1
- package/dist/web/request.d.ts +44 -0
- package/dist/web/request.d.ts.map +1 -0
- package/dist/web/request.js +82 -0
- package/dist/web/request.js.map +1 -0
- package/dist/web/robots.d.ts +1 -46
- package/dist/web/robots.d.ts.map +1 -1
- package/dist/web/robots.js +5 -131
- package/dist/web/robots.js.map +1 -1
- package/dist/web/routes.d.ts +5 -39
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +102 -1374
- package/dist/web/routes.js.map +1 -1
- package/dist/web/search.d.ts.map +1 -1
- package/dist/web/search.js +2 -9
- package/dist/web/search.js.map +1 -1
- package/dist/{admin → web}/session.d.ts +1 -5
- package/dist/web/session.d.ts.map +1 -0
- package/dist/{admin → web}/session.js +0 -4
- package/dist/web/session.js.map +1 -0
- package/dist/web/share-image.d.ts.map +1 -1
- package/dist/web/share-image.js +3 -2
- package/dist/web/share-image.js.map +1 -1
- package/dist/web/signed-in.d.ts +27 -0
- package/dist/web/signed-in.d.ts.map +1 -0
- package/dist/web/signed-in.js +45 -0
- package/dist/web/signed-in.js.map +1 -0
- package/dist/web/site-index.d.ts +13 -0
- package/dist/web/site-index.d.ts.map +1 -0
- package/dist/web/site-index.js +142 -0
- package/dist/web/site-index.js.map +1 -0
- package/dist/web/site-view.d.ts +43 -0
- package/dist/web/site-view.d.ts.map +1 -0
- package/dist/web/site-view.js +65 -0
- package/dist/web/site-view.js.map +1 -0
- package/dist/web/sitemap.d.ts.map +1 -1
- package/dist/web/sitemap.js +5 -7
- package/dist/web/sitemap.js.map +1 -1
- package/dist/{admin → web}/throttle.d.ts +3 -4
- package/dist/web/throttle.d.ts.map +1 -0
- package/dist/{admin → web}/throttle.js +1 -2
- package/dist/web/throttle.js.map +1 -0
- package/dist/web/webmention-routes.d.ts +11 -0
- package/dist/web/webmention-routes.d.ts.map +1 -0
- package/dist/web/webmention-routes.js +51 -0
- package/dist/web/webmention-routes.js.map +1 -0
- package/dist/web/well-known.d.ts +2 -2
- package/dist/web/well-known.d.ts.map +1 -1
- package/dist/web/well-known.js +10 -20
- package/dist/web/well-known.js.map +1 -1
- package/dist/webmention/cited-picture.d.ts +1 -2
- package/dist/webmention/cited-picture.d.ts.map +1 -1
- package/dist/webmention/cited-picture.js +5 -7
- package/dist/webmention/cited-picture.js.map +1 -1
- package/dist/webmention/discovery.d.ts +2 -13
- package/dist/webmention/discovery.d.ts.map +1 -1
- package/dist/webmention/discovery.js +18 -73
- package/dist/webmention/discovery.js.map +1 -1
- package/dist/webmention/endpoint.d.ts +27 -0
- package/dist/webmention/endpoint.d.ts.map +1 -0
- package/dist/webmention/endpoint.js +26 -0
- package/dist/webmention/endpoint.js.map +1 -0
- package/dist/webmention/fetch-public.d.ts +18 -1
- package/dist/webmention/fetch-public.d.ts.map +1 -1
- package/dist/webmention/fetch-public.js +57 -23
- package/dist/webmention/fetch-public.js.map +1 -1
- package/dist/webmention/index.d.ts +11 -9
- package/dist/webmention/index.d.ts.map +1 -1
- package/dist/webmention/index.js +7 -6
- package/dist/webmention/index.js.map +1 -1
- package/dist/webmention/links.d.ts +0 -55
- package/dist/webmention/links.d.ts.map +1 -1
- package/dist/webmention/links.js +2 -185
- package/dist/webmention/links.js.map +1 -1
- package/dist/webmention/microformats.d.ts +1 -1
- package/dist/webmention/microformats.d.ts.map +1 -1
- package/dist/webmention/microformats.js +1 -1
- package/dist/webmention/microformats.js.map +1 -1
- package/dist/webmention/pingback.d.ts +13 -12
- package/dist/webmention/pingback.d.ts.map +1 -1
- package/dist/webmention/pingback.js +6 -113
- package/dist/webmention/pingback.js.map +1 -1
- package/dist/webmention/receive.d.ts +9 -4
- package/dist/webmention/receive.d.ts.map +1 -1
- package/dist/webmention/receive.js +35 -41
- package/dist/webmention/receive.js.map +1 -1
- package/dist/webmention/reply-context/fediverse.d.ts +29 -0
- package/dist/webmention/reply-context/fediverse.d.ts.map +1 -0
- package/dist/webmention/reply-context/fediverse.js +59 -0
- package/dist/webmention/reply-context/fediverse.js.map +1 -0
- package/dist/webmention/reply-context/json-ld.d.ts +5 -0
- package/dist/webmention/reply-context/json-ld.d.ts.map +1 -0
- package/dist/webmention/reply-context/json-ld.js +78 -0
- package/dist/webmention/reply-context/json-ld.js.map +1 -0
- package/dist/webmention/reply-context/oembed.d.ts +21 -0
- package/dist/webmention/reply-context/oembed.d.ts.map +1 -0
- package/dist/webmention/reply-context/oembed.js +137 -0
- package/dist/webmention/reply-context/oembed.js.map +1 -0
- package/dist/webmention/reply-context/page.d.ts +30 -0
- package/dist/webmention/reply-context/page.d.ts.map +1 -0
- package/dist/webmention/reply-context/page.js +134 -0
- package/dist/webmention/reply-context/page.js.map +1 -0
- package/dist/webmention/reply-context/source.d.ts +29 -0
- package/dist/webmention/reply-context/source.d.ts.map +1 -0
- package/dist/webmention/reply-context/source.js +46 -0
- package/dist/webmention/reply-context/source.js.map +1 -0
- package/dist/webmention/reply-context.d.ts +5 -34
- package/dist/webmention/reply-context.d.ts.map +1 -1
- package/dist/webmention/reply-context.js +9 -432
- package/dist/webmention/reply-context.js.map +1 -1
- package/dist/webmention/reply-contexts.d.ts +17 -6
- package/dist/webmention/reply-contexts.d.ts.map +1 -1
- package/dist/webmention/reply-contexts.js +19 -20
- package/dist/webmention/reply-contexts.js.map +1 -1
- package/dist/webmention/routes.d.ts +1 -1
- package/dist/webmention/routes.d.ts.map +1 -1
- package/dist/webmention/routes.js +5 -8
- package/dist/webmention/routes.js.map +1 -1
- package/dist/webmention/service.d.ts +9 -7
- package/dist/webmention/service.d.ts.map +1 -1
- package/dist/webmention/service.js +111 -110
- package/dist/webmention/service.js.map +1 -1
- package/dist/webmention/syndication.d.ts +3 -26
- package/dist/webmention/syndication.d.ts.map +1 -1
- package/dist/webmention/syndication.js +6 -20
- package/dist/webmention/syndication.js.map +1 -1
- package/package.json +17 -11
- package/themes/default/README.md +36 -2339
- package/themes/default/layouts/base.njk +5 -4
- package/themes/default/layouts/front-page.njk +4 -3
- package/themes/default/layouts/page.njk +2 -0
- package/themes/default/partials/comment-form.njk +1 -1
- package/themes/default/partials/contact-form.njk +1 -2
- package/themes/default/partials/conversation.njk +1 -2
- package/themes/default/partials/markdown-footer.md.njk +24 -0
- package/themes/default/partials/markdown-header.md.njk +31 -0
- package/themes/default/partials/post-list.njk +11 -11
- package/themes/default/src/style.css +18 -6
- package/themes/default/static/style.css +19 -0
- package/dist/admin/accounts.d.ts.map +0 -1
- package/dist/admin/accounts.js.map +0 -1
- package/dist/admin/admin-theme.d.ts.map +0 -1
- package/dist/admin/admin-theme.js.map +0 -1
- package/dist/admin/enclosure-field.d.ts.map +0 -1
- package/dist/admin/enclosure-field.js.map +0 -1
- package/dist/admin/event-field.d.ts.map +0 -1
- package/dist/admin/event-field.js.map +0 -1
- package/dist/admin/location-field.d.ts +0 -27
- package/dist/admin/location-field.d.ts.map +0 -1
- package/dist/admin/location-field.js.map +0 -1
- package/dist/admin/passwords.d.ts.map +0 -1
- package/dist/admin/passwords.js.map +0 -1
- package/dist/admin/photo-field.d.ts +0 -38
- package/dist/admin/photo-field.d.ts.map +0 -1
- package/dist/admin/photo-field.js.map +0 -1
- package/dist/admin/read-field.d.ts +0 -22
- package/dist/admin/read-field.d.ts.map +0 -1
- package/dist/admin/read-field.js +0 -61
- package/dist/admin/read-field.js.map +0 -1
- package/dist/admin/session.d.ts.map +0 -1
- package/dist/admin/session.js.map +0 -1
- package/dist/admin/store.d.ts +0 -1025
- package/dist/admin/store.d.ts.map +0 -1
- package/dist/admin/store.js +0 -1628
- package/dist/admin/store.js.map +0 -1
- package/dist/admin/throttle.d.ts.map +0 -1
- package/dist/admin/throttle.js.map +0 -1
- package/dist/avatars/routes.d.ts.map +0 -1
- package/dist/avatars/routes.js.map +0 -1
- package/dist/contact/routes.d.ts.map +0 -1
- package/dist/contact/routes.js.map +0 -1
- package/dist/env.d.ts.map +0 -1
- package/dist/env.js.map +0 -1
- package/dist/federation/replies.d.ts.map +0 -1
- package/dist/federation/replies.js.map +0 -1
- package/dist/images/alt-text.d.ts.map +0 -1
- package/dist/images/alt-text.js.map +0 -1
- package/dist/indieauth/activity-log.d.ts.map +0 -1
- package/dist/indieauth/activity-log.js.map +0 -1
- package/dist/indieauth/app-activity.d.ts.map +0 -1
- package/dist/indieauth/app-activity.js.map +0 -1
- package/dist/indieauth/bearer.d.ts.map +0 -1
- package/dist/indieauth/bearer.js.map +0 -1
- package/dist/indieauth/client-id.d.ts.map +0 -1
- package/dist/indieauth/client-id.js.map +0 -1
- package/dist/indieauth/connected-apps.d.ts.map +0 -1
- package/dist/indieauth/connected-apps.js.map +0 -1
- package/dist/indieauth/consent.d.ts.map +0 -1
- package/dist/indieauth/consent.js.map +0 -1
- package/dist/indieauth/discovery.d.ts.map +0 -1
- package/dist/indieauth/discovery.js.map +0 -1
- package/dist/indieauth/token.d.ts.map +0 -1
- package/dist/indieauth/token.js.map +0 -1
- package/dist/mail/service.d.ts.map +0 -1
- package/dist/mail/service.js.map +0 -1
- package/dist/mail/templates.d.ts.map +0 -1
- package/dist/mail/templates.js.map +0 -1
- package/dist/notifications/preferences.d.ts.map +0 -1
- package/dist/notifications/preferences.js.map +0 -1
- package/dist/notifications/routes.d.ts.map +0 -1
- package/dist/notifications/routes.js.map +0 -1
- package/dist/plugins/federation.d.ts.map +0 -1
- package/dist/plugins/federation.js.map +0 -1
- package/dist/plugins/mount.d.ts.map +0 -1
- package/dist/plugins/mount.js.map +0 -1
- package/dist/privacy/policy.d.ts.map +0 -1
- package/dist/privacy/policy.js.map +0 -1
- package/dist/web/admin-bar.d.ts.map +0 -1
- package/dist/web/admin-bar.js.map +0 -1
- package/dist/web/assets.d.ts.map +0 -1
- package/dist/web/assets.js.map +0 -1
- package/dist/web/authors.d.ts.map +0 -1
- package/dist/web/authors.js +0 -211
- package/dist/web/authors.js.map +0 -1
- package/dist/web/documents.d.ts +0 -81
- package/dist/web/documents.d.ts.map +0 -1
- package/dist/web/documents.js.map +0 -1
- package/dist/web/errors.d.ts.map +0 -1
- package/dist/web/errors.js.map +0 -1
- package/dist/web/guids.d.ts.map +0 -1
- package/dist/web/guids.js.map +0 -1
- package/dist/web/indexnow.d.ts.map +0 -1
- package/dist/web/indexnow.js.map +0 -1
- package/dist/web/license.d.ts.map +0 -1
- package/dist/web/license.js.map +0 -1
- package/dist/web/locale.d.ts.map +0 -1
- package/dist/web/locale.js.map +0 -1
- package/dist/web/navigation.d.ts.map +0 -1
- package/dist/web/navigation.js.map +0 -1
- package/dist/web/recent.d.ts +0 -43
- package/dist/web/recent.d.ts.map +0 -1
- package/dist/web/recent.js +0 -37
- package/dist/web/recent.js.map +0 -1
- package/dist/web/sanitize.d.ts +0 -29
- package/dist/web/sanitize.d.ts.map +0 -1
- package/dist/web/sanitize.js.map +0 -1
- package/dist/web/taxonomy.d.ts.map +0 -1
- package/dist/web/taxonomy.js.map +0 -1
- package/dist/web/templates.d.ts.map +0 -1
- package/dist/web/templates.js.map +0 -1
- package/dist/web/themes.d.ts.map +0 -1
- package/dist/web/themes.js.map +0 -1
- package/dist/webmention/html.d.ts.map +0 -1
- package/dist/webmention/html.js.map +0 -1
- package/dist/webmention/public-address.d.ts.map +0 -1
- package/dist/webmention/public-address.js.map +0 -1
- /package/dist/{web → content}/license.d.ts +0 -0
- /package/dist/{web → content}/license.js +0 -0
- /package/dist/{admin → site}/admin-theme.d.ts +0 -0
- /package/dist/{admin → site}/admin-theme.js +0 -0
- /package/dist/{admin → site}/passwords.d.ts +0 -0
- /package/dist/{admin → site}/passwords.js +0 -0
- /package/dist/{indieauth → util}/client-id.d.ts +0 -0
- /package/dist/{indieauth → util}/client-id.js +0 -0
- /package/dist/{webmention → util}/public-address.d.ts +0 -0
- /package/dist/{webmention → util}/public-address.js +0 -0
- /package/dist/{env.js → web/env.js} +0 -0
package/dist/comments/akismet.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import { readFileIfPresentSync, writeFileAtomically } from '../files/atomic.js';
|
|
1
|
+
import { AKISMET } from '../settings/akismet.js';
|
|
2
|
+
import { messageOf } from '../util/errors.js';
|
|
4
3
|
import { COMMENT_FIELDS } from './submission.js';
|
|
5
4
|
/**
|
|
6
5
|
* Akismet, as the one {@link CommentChecker} this package ships.
|
|
@@ -11,18 +10,16 @@ import { COMMENT_FIELDS } from './submission.js';
|
|
|
11
10
|
*
|
|
12
11
|
* Two things make it optional at runtime rather than at build time:
|
|
13
12
|
*
|
|
14
|
-
* - **The key is a credential**, so it
|
|
15
|
-
* `
|
|
16
|
-
* in `content/_data/site.json`, which is
|
|
17
|
-
* the site.
|
|
18
|
-
* - **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
|
|
19
18
|
* screen starts filtering the next comment and a key removed stops filtering
|
|
20
19
|
* at once. Without one, nothing is sent anywhere and the verdict is
|
|
21
20
|
* `unknown` — the site's own rules decide, exactly as they did before
|
|
22
21
|
* anybody had heard of Akismet.
|
|
23
22
|
*/
|
|
24
|
-
/** Where the key lives, under `dataDir`. */
|
|
25
|
-
export const AKISMET_KEY_FILE = 'akismet.json';
|
|
26
23
|
/** The API this speaks. */
|
|
27
24
|
export const AKISMET_ENDPOINT = 'https://rest.akismet.com/1.1';
|
|
28
25
|
/**
|
|
@@ -40,59 +37,23 @@ export const AKISMET_USER_AGENT = 'Geekity CMS/1.0 | Akismet/1.1';
|
|
|
40
37
|
*/
|
|
41
38
|
export const AKISMET_TIMEOUT_MS = 10_000;
|
|
42
39
|
/**
|
|
43
|
-
* The stored key, or `undefined` when the site has none.
|
|
44
|
-
*
|
|
45
|
-
* Read tolerantly and synchronously, like every other file this CMS treats as
|
|
46
|
-
* truth: a file that will not parse, or one with no key in it, is a site with
|
|
47
|
-
* no Akismet rather than a site that will not boot.
|
|
48
|
-
*/
|
|
49
|
-
export function readAkismetKey(dataDir) {
|
|
50
|
-
const raw = readFileIfPresentSync(akismetKeyPath(dataDir));
|
|
51
|
-
if (raw === undefined)
|
|
52
|
-
return undefined;
|
|
53
|
-
let parsed;
|
|
54
|
-
try {
|
|
55
|
-
parsed = JSON.parse(raw);
|
|
56
|
-
}
|
|
57
|
-
catch {
|
|
58
|
-
return undefined;
|
|
59
|
-
}
|
|
60
|
-
if (typeof parsed !== 'object' || parsed === null)
|
|
61
|
-
return undefined;
|
|
62
|
-
const file = parsed;
|
|
63
|
-
const key = typeof file['key'] === 'string' ? file['key'].trim() : '';
|
|
64
|
-
if (key === '')
|
|
65
|
-
return undefined;
|
|
66
|
-
const status = file['status'];
|
|
67
|
-
return {
|
|
68
|
-
key,
|
|
69
|
-
status: status === 'valid' || status === 'invalid' ? status : 'unchecked',
|
|
70
|
-
checkedAt: typeof file['checkedAt'] === 'string' ? file['checkedAt'] : '',
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
/** Write the key, private to the account the site runs as. */
|
|
74
|
-
export async function writeAkismetKey(dataDir, record) {
|
|
75
|
-
await writeFileAtomically(akismetKeyPath(dataDir), `${JSON.stringify(record, null, 2)}\n`, {
|
|
76
|
-
mode: 0o600,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
/** Forget the key, which is how a site turns Akismet off. */
|
|
80
|
-
export async function removeAkismetKey(dataDir) {
|
|
81
|
-
await rm(akismetKeyPath(dataDir), { force: true });
|
|
82
|
-
}
|
|
83
|
-
/** Where one site's key file is. */
|
|
84
|
-
export function akismetKeyPath(dataDir) {
|
|
85
|
-
return path.join(dataDir, AKISMET_KEY_FILE);
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Ask Akismet whether a key is one of theirs.
|
|
89
|
-
*
|
|
90
40
|
* Three answers rather than two, because "we could not ask" is not "no": a key
|
|
91
41
|
* typed while the machine is offline should not be reported as a bad key, and
|
|
92
42
|
* the settings screen says which of the two happened.
|
|
93
43
|
*/
|
|
94
44
|
export async function verifyAkismetKey(options) {
|
|
95
|
-
const
|
|
45
|
+
const key = await options.settings.get(AKISMET.key);
|
|
46
|
+
if (key === '')
|
|
47
|
+
return undefined;
|
|
48
|
+
const status = await askAboutKey(key, options);
|
|
49
|
+
await options.settings.set('akismet', new Map([
|
|
50
|
+
['status', status],
|
|
51
|
+
['checked_at', options.at.toISOString()],
|
|
52
|
+
]), options.by);
|
|
53
|
+
return status;
|
|
54
|
+
}
|
|
55
|
+
async function askAboutKey(key, options) {
|
|
56
|
+
const body = new URLSearchParams({ api_key: key, blog: options.blog });
|
|
96
57
|
let answer;
|
|
97
58
|
try {
|
|
98
59
|
answer = await post(`${AKISMET_ENDPOINT}/verify-key`, body, options.fetch, options.timeoutMs);
|
|
@@ -123,11 +84,12 @@ export function createAkismetChecker(options) {
|
|
|
123
84
|
};
|
|
124
85
|
/** Send one call, or nothing at all when the site has no key. */
|
|
125
86
|
async function send(method, fields) {
|
|
126
|
-
const
|
|
127
|
-
if (
|
|
87
|
+
const key = await options.settings.get(AKISMET.key);
|
|
88
|
+
if (key === '')
|
|
128
89
|
return undefined;
|
|
90
|
+
const language = await options.language();
|
|
129
91
|
try {
|
|
130
|
-
const answer = await post(`${AKISMET_ENDPOINT}/${method}`, fields(
|
|
92
|
+
const answer = await post(`${AKISMET_ENDPOINT}/${method}`, fields(key, language), options.fetch, options.timeoutMs);
|
|
131
93
|
if (!answer.ok) {
|
|
132
94
|
warn(`Akismet answered ${method} with ${String(answer.status)}.${help(answer)}`);
|
|
133
95
|
return undefined;
|
|
@@ -141,7 +103,7 @@ export function createAkismetChecker(options) {
|
|
|
141
103
|
}
|
|
142
104
|
return {
|
|
143
105
|
async check(submission) {
|
|
144
|
-
const answer = await send('comment-check', (key) => checkFields(key, submission, options));
|
|
106
|
+
const answer = await send('comment-check', (key, language) => checkFields(key, language, submission, options));
|
|
145
107
|
if (answer === undefined)
|
|
146
108
|
return 'unknown';
|
|
147
109
|
const said = answer.body.trim();
|
|
@@ -160,15 +122,15 @@ export function createAkismetChecker(options) {
|
|
|
160
122
|
return 'unknown';
|
|
161
123
|
},
|
|
162
124
|
async reportSpam(report) {
|
|
163
|
-
await send('submit-spam', (key) => reportFields(key, report, options));
|
|
125
|
+
await send('submit-spam', (key, language) => reportFields(key, language, report, options));
|
|
164
126
|
},
|
|
165
127
|
async reportHam(report) {
|
|
166
|
-
await send('submit-ham', (key) => reportFields(key, report, options));
|
|
128
|
+
await send('submit-ham', (key, language) => reportFields(key, language, report, options));
|
|
167
129
|
},
|
|
168
130
|
};
|
|
169
131
|
}
|
|
170
132
|
/** The fields one `comment-check` carries. */
|
|
171
|
-
function checkFields(key, submission, options) {
|
|
133
|
+
function checkFields(key, language, submission, options) {
|
|
172
134
|
const { comment } = submission;
|
|
173
135
|
// A webmention is a page linking here rather than a form somebody filled in,
|
|
174
136
|
// so it has no honeypot to name; a contact message is a form like a
|
|
@@ -178,7 +140,7 @@ function checkFields(key, submission, options) {
|
|
|
178
140
|
api_key: key,
|
|
179
141
|
blog: submission.baseUrl,
|
|
180
142
|
blog_charset: 'UTF-8',
|
|
181
|
-
blog_lang: blogLang(
|
|
143
|
+
blog_lang: blogLang(language),
|
|
182
144
|
user_ip: submission.address,
|
|
183
145
|
user_agent: submission.userAgent,
|
|
184
146
|
referrer: submission.referrer,
|
|
@@ -209,13 +171,13 @@ function checkFields(key, submission, options) {
|
|
|
209
171
|
* The content, the author and the permalink are what is left, and they are
|
|
210
172
|
* what a correction is mostly about.
|
|
211
173
|
*/
|
|
212
|
-
function reportFields(key, report, options) {
|
|
174
|
+
function reportFields(key, language, report, options) {
|
|
213
175
|
const { comment } = report;
|
|
214
176
|
return fields({
|
|
215
177
|
api_key: key,
|
|
216
178
|
blog: report.baseUrl,
|
|
217
179
|
blog_charset: 'UTF-8',
|
|
218
|
-
blog_lang: blogLang(
|
|
180
|
+
blog_lang: blogLang(language),
|
|
219
181
|
permalink: report.url,
|
|
220
182
|
comment_type: comment.source === 'webmention' ? 'webmention' : 'comment',
|
|
221
183
|
comment_author: comment.author.name,
|
|
@@ -248,9 +210,6 @@ function blogLang(language) {
|
|
|
248
210
|
function help(answer) {
|
|
249
211
|
return answer.debugHelp === undefined ? '' : ` ${answer.debugHelp}`;
|
|
250
212
|
}
|
|
251
|
-
function messageOf(error) {
|
|
252
|
-
return error instanceof Error ? error.message : String(error);
|
|
253
|
-
}
|
|
254
213
|
/** POST a urlencoded body to Akismet and read the answer. */
|
|
255
214
|
async function post(url, body, client, timeoutMs) {
|
|
256
215
|
const call = client ?? globalThis.fetch;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"akismet.js","sourceRoot":"","sources":["../../src/comments/akismet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"akismet.js","sourceRoot":"","sources":["../../src/comments/akismet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
import type { Document } from '../content/document.ts';
|
|
2
|
+
import type { RsvpValue } from '../content/rsvp.ts';
|
|
3
|
+
import type { SiteSettings } from '../site/settings.ts';
|
|
4
|
+
import type { AdminStore, PostComment } from '../store/admin-store.ts';
|
|
5
|
+
/**
|
|
6
|
+
* Where an interaction came from.
|
|
7
|
+
*
|
|
8
|
+
* `activitypub` is a reply, a like or a boost the site's inbox was sent.
|
|
9
|
+
* `comment` is the form under the post (TASK-50). `webmention` is another
|
|
10
|
+
* site's post pointing at this one (TASK-51). `post` is a reply post a user of
|
|
11
|
+
* this site wrote, whose `in-reply-to` names the post or something said under
|
|
12
|
+
* it (TASK-300). All four are the same shape and thread together, which is the
|
|
13
|
+
* whole point of naming the source rather than keeping four lists.
|
|
14
|
+
*/
|
|
15
|
+
export type InteractionSource = 'activitypub' | 'comment' | 'webmention' | 'post';
|
|
16
|
+
/**
|
|
17
|
+
* What an interaction is.
|
|
18
|
+
*
|
|
19
|
+
* `reply` is something somebody wrote; `like` and `boost` are the two ways the
|
|
20
|
+
* fediverse can point at a post without writing anything. `repost` is a
|
|
21
|
+
* webmention's word for a boost and is grouped with them, because to a reader
|
|
22
|
+
* they are the same act under two vocabularies. `mention` is the one thing
|
|
23
|
+
* none of the others is: somebody's page linking to this one without answering
|
|
24
|
+
* it (TASK-51).
|
|
25
|
+
*/
|
|
26
|
+
export type InteractionKind = 'reply' | 'like' | 'boost' | 'repost' | 'mention';
|
|
27
|
+
/**
|
|
28
|
+
* Where an interaction stands with the moderator.
|
|
29
|
+
*
|
|
30
|
+
* Everything a remote server sends is `published`: it was published there
|
|
31
|
+
* before it arrived here, and this site did not decide it. A native comment
|
|
32
|
+
* carries the status its file gives it, and only an `approved` one is ever put
|
|
33
|
+
* in a conversation — `pending` and `spam` are named here because that is what
|
|
34
|
+
* the file can say, not because a template will ever be handed one.
|
|
35
|
+
*/
|
|
36
|
+
export type InteractionStatus = 'published' | 'pending' | 'approved' | 'spam';
|
|
37
|
+
/** Who wrote something, as much as the site knows. */
|
|
38
|
+
export interface InteractionAuthor {
|
|
39
|
+
/** The best name available: their display name, else their handle, else their id. */
|
|
40
|
+
readonly name: string;
|
|
41
|
+
/** `@user@host`, when the source knows or can imply one. */
|
|
42
|
+
readonly handle: string | null;
|
|
43
|
+
/** Their profile page, for a reader following the link. */
|
|
44
|
+
readonly url: string | null;
|
|
45
|
+
/**
|
|
46
|
+
* Their avatar, when the site knows one: always a same-origin path, never
|
|
47
|
+
* the remote URL, so a reader's browser asks this site for it (TASK-134).
|
|
48
|
+
*/
|
|
49
|
+
readonly avatar: string | null;
|
|
50
|
+
/** Their id, which is what identifies them however they are named. */
|
|
51
|
+
readonly actorId: string | null;
|
|
52
|
+
/**
|
|
53
|
+
* Where to follow what they publish, when the site knows (TASK-324): a
|
|
54
|
+
* webmention author's h-card or site, or a site user's author feed. A
|
|
55
|
+
* visitor's own website is only what they typed, and a fediverse actor
|
|
56
|
+
* publishes no feed the site knows of, so both are `null`.
|
|
57
|
+
*/
|
|
58
|
+
readonly feed: string | null;
|
|
59
|
+
/**
|
|
60
|
+
* The site user they are, by username, else `null`: whoever a reply post
|
|
61
|
+
* is by, or whoever a stored comment names (TASK-337). A theme vouches for
|
|
62
|
+
* the link of a site user and of nobody else.
|
|
63
|
+
*/
|
|
64
|
+
readonly username: string | null;
|
|
65
|
+
}
|
|
66
|
+
/** One thing somebody did to a post: a reply, a like or a boost. */
|
|
67
|
+
export interface Interaction {
|
|
68
|
+
/** What it is called: the note's id, and what a reply to it names. */
|
|
69
|
+
readonly id: string;
|
|
70
|
+
/**
|
|
71
|
+
* Its key (decision-51): a stored comment's id, else the key of its guid.
|
|
72
|
+
* The one thing in its anchor, `#comment-{key}`, and its replies feed,
|
|
73
|
+
* `/replies/{key}/`.
|
|
74
|
+
*/
|
|
75
|
+
readonly key: string;
|
|
76
|
+
/**
|
|
77
|
+
* What the comments feeds call it, and what a reply to it names in
|
|
78
|
+
* `source:inReplyTo`: a stored form comment's page, a stored comment's
|
|
79
|
+
* origin or else its url, and anything else's id.
|
|
80
|
+
*/
|
|
81
|
+
readonly guid: string;
|
|
82
|
+
/**
|
|
83
|
+
* Whether it was imported from another system (TASK-336): shown in the
|
|
84
|
+
* thread like any other, and carried by no feed and no reply count.
|
|
85
|
+
*/
|
|
86
|
+
readonly migrated: boolean;
|
|
87
|
+
/** Where it came from. */
|
|
88
|
+
readonly source: InteractionSource;
|
|
89
|
+
/** Which of the three it is. */
|
|
90
|
+
readonly kind: InteractionKind;
|
|
91
|
+
/** Who did it. */
|
|
92
|
+
readonly author: InteractionAuthor;
|
|
93
|
+
/** Where it can be read on its own server, or `null` for one with no page. */
|
|
94
|
+
readonly url: string | null;
|
|
95
|
+
/** What it says, sanitised and ready to print. Empty for a like or a boost. */
|
|
96
|
+
readonly content: string;
|
|
97
|
+
/** When it was published, or when it arrived if it did not say. */
|
|
98
|
+
readonly published: Date;
|
|
99
|
+
/** What it answers: the post, or another interaction. `null` for a reaction. */
|
|
100
|
+
readonly inReplyTo: string | null;
|
|
101
|
+
/** Whether a reader may see it. */
|
|
102
|
+
readonly status: InteractionStatus;
|
|
103
|
+
/** The replies to this one, oldest first. */
|
|
104
|
+
readonly replies: ThreadReply[];
|
|
105
|
+
/**
|
|
106
|
+
* What a reply that is an RSVP says (TASK-198): its `rsvp` value and the
|
|
107
|
+
* words for it. A webmention carries one, and so does a fediverse answer
|
|
108
|
+
* to an event (TASK-200).
|
|
109
|
+
*/
|
|
110
|
+
readonly rsvp?: {
|
|
111
|
+
readonly value: RsvpValue;
|
|
112
|
+
readonly label: string;
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* A comment a reader may not see, standing in the thread for the replies to it
|
|
117
|
+
* that a reader may (TASK-325): it is waiting for a moderator, filed as spam or
|
|
118
|
+
* deleted. It names nobody and says nothing, and there is one only while a
|
|
119
|
+
* visible reply sits under it.
|
|
120
|
+
*/
|
|
121
|
+
export interface WithheldReply {
|
|
122
|
+
/** The hidden comment's id. */
|
|
123
|
+
readonly id: string;
|
|
124
|
+
/** Its key, so its anchor on the post is still there. */
|
|
125
|
+
readonly key: string;
|
|
126
|
+
readonly withheld: true;
|
|
127
|
+
/** The replies under it, oldest first, at least one of them visible. */
|
|
128
|
+
readonly replies: ThreadReply[];
|
|
129
|
+
}
|
|
130
|
+
/** One entry of a thread: a reply, or the placeholder for a hidden one. */
|
|
131
|
+
export type ThreadReply = Interaction | WithheldReply;
|
|
132
|
+
/** How many of each a conversation holds. */
|
|
133
|
+
export interface InteractionCounts {
|
|
134
|
+
/** Replies, counted through the whole thread rather than the top of it. */
|
|
135
|
+
readonly replies: number;
|
|
136
|
+
/** Likes. */
|
|
137
|
+
readonly likes: number;
|
|
138
|
+
/** Boosts, reposts included. */
|
|
139
|
+
readonly boosts: number;
|
|
140
|
+
/** Mentions: pages that linked to this one without answering it. */
|
|
141
|
+
readonly mentions: number;
|
|
142
|
+
/** RSVPs to an event, one per person, in every group. */
|
|
143
|
+
readonly rsvps: number;
|
|
144
|
+
/** All of them added up: zero is what "no conversation" means. */
|
|
145
|
+
readonly total: number;
|
|
146
|
+
}
|
|
147
|
+
/** Everything under one post. */
|
|
148
|
+
export interface Conversation {
|
|
149
|
+
/** The replies to the post itself, oldest first, each carrying its own. */
|
|
150
|
+
readonly replies: ThreadReply[];
|
|
151
|
+
/** The likes, oldest first. */
|
|
152
|
+
readonly likes: Interaction[];
|
|
153
|
+
/** The boosts and the reposts, oldest first and in one list. */
|
|
154
|
+
readonly boosts: Interaction[];
|
|
155
|
+
/** The pages that linked here without answering, oldest first. */
|
|
156
|
+
readonly mentions: Interaction[];
|
|
157
|
+
/**
|
|
158
|
+
* The answers to an event (TASK-200), grouped as going, maybe, interested
|
|
159
|
+
* and not going, each group oldest first and only when it has somebody in
|
|
160
|
+
* it. Empty on a post that is no event.
|
|
161
|
+
*/
|
|
162
|
+
readonly rsvps: RsvpGroup[];
|
|
163
|
+
/** How many of each. */
|
|
164
|
+
readonly counts: InteractionCounts;
|
|
165
|
+
}
|
|
166
|
+
/** Everybody who gave an event one answer. */
|
|
167
|
+
export interface RsvpGroup {
|
|
168
|
+
readonly value: RsvpValue;
|
|
169
|
+
readonly label: string;
|
|
170
|
+
/** Each person's latest answer, oldest first, each an RSVP interaction. */
|
|
171
|
+
readonly people: Interaction[];
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Something said in a conversation, with the reply it sits under (TASK-324):
|
|
175
|
+
* what the comments feeds name as what it answers.
|
|
176
|
+
*/
|
|
177
|
+
export interface Placed extends Interaction {
|
|
178
|
+
/**
|
|
179
|
+
* The visible reply it answers, or `null` for the post. A hidden comment in
|
|
180
|
+
* between is passed over, the way the thread already passes over a
|
|
181
|
+
* withdrawn note, so a reader walking the feeds reaches every visible reply.
|
|
182
|
+
*/
|
|
183
|
+
readonly parent: Interaction | null;
|
|
184
|
+
}
|
|
185
|
+
/** One interaction with the post it is about, which a site-wide list needs. */
|
|
186
|
+
export interface SiteInteraction extends Placed {
|
|
187
|
+
/** The post it answers. */
|
|
188
|
+
readonly post: Document;
|
|
189
|
+
/**
|
|
190
|
+
* Who wrote the reply it answers, when it answers one a reader can see
|
|
191
|
+
* (TASK-318), and `null` for an answer to the post itself.
|
|
192
|
+
*/
|
|
193
|
+
readonly replyingTo: string | null;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* The site settings a conversation is read with: who the site's own posts are
|
|
197
|
+
* by when they name nobody, and whether comments are on.
|
|
198
|
+
*/
|
|
199
|
+
export type ConversationSite = Pick<SiteSettings, 'author' | 'title' | 'comments' | 'comments_close_after_days'>;
|
|
200
|
+
/**
|
|
201
|
+
* The three questions anything showing a conversation asks.
|
|
202
|
+
*
|
|
203
|
+
* Every one of them is answered from both indexes at once, because a reader
|
|
204
|
+
* does not care which door an answer came in by. The moderation screen and the
|
|
205
|
+
* notices are not conversation display and keep their own queries: they are
|
|
206
|
+
* about what a moderator has to decide, which is the one thing a reader never
|
|
207
|
+
* sees.
|
|
208
|
+
*/
|
|
209
|
+
export interface ConversationReader {
|
|
210
|
+
/** Everything said about one post, threaded. */
|
|
211
|
+
readonly thread: (document: Document, site: ConversationSite) => Conversation;
|
|
212
|
+
/**
|
|
213
|
+
* How many visible replies answer each of these documents directly, by
|
|
214
|
+
* permalink: what a reader following `source:comments` finds in its
|
|
215
|
+
* `/replies/` feed (TASK-324). Read off each thread, since that is the only
|
|
216
|
+
* reading that knows which replies a reader sees and where they sit.
|
|
217
|
+
*/
|
|
218
|
+
readonly counts: (documents: readonly Document[], site: ConversationSite) => Map<string, number>;
|
|
219
|
+
/**
|
|
220
|
+
* The site's latest answers, newest first, each with the post it answers.
|
|
221
|
+
*
|
|
222
|
+
* One about a post that has since been unpublished or trashed is left out,
|
|
223
|
+
* because the post it is about is not there to read: the feed would be
|
|
224
|
+
* showing a conversation about nothing. That filtering happens after the
|
|
225
|
+
* indexes have paged, so the pages are read until enough survive.
|
|
226
|
+
*/
|
|
227
|
+
readonly latest: (limit: number, site: ConversationSite) => SiteInteraction[];
|
|
228
|
+
/**
|
|
229
|
+
* One native comment as its own page reads it (TASK-318), or `undefined`
|
|
230
|
+
* for an id that names no approved comment written on this site. The post
|
|
231
|
+
* comes back in whatever state it is in, so the page can answer as the post
|
|
232
|
+
* itself would.
|
|
233
|
+
*/
|
|
234
|
+
readonly comment: (id: string, site: ConversationSite) => CommentThread | undefined;
|
|
235
|
+
/**
|
|
236
|
+
* The reply on a post that a URL names, or `undefined` (TASK-319):
|
|
237
|
+
* a comment by its own page or by the post's `#comment-` anchor, a
|
|
238
|
+
* webmention by the page it was sent from, a fediverse reply by its url or
|
|
239
|
+
* its id. Every stored comment counts whatever its status, because what a
|
|
240
|
+
* reply answers is a fact about it, and whether a reader may see the one it
|
|
241
|
+
* answers is decided when the thread is read.
|
|
242
|
+
*/
|
|
243
|
+
readonly replyNamed: (document: Document, url: string, site: ConversationSite) => Interaction | undefined;
|
|
244
|
+
/**
|
|
245
|
+
* What a URL names on this site, while a reader may see it: a reply (a
|
|
246
|
+
* comment by its page or its anchor, a webmention by the page it was sent
|
|
247
|
+
* from, a fediverse reply by its id or url, a reply post by its permalink)
|
|
248
|
+
* with the post it is on, or a served post or page itself (TASK-300,
|
|
249
|
+
* TASK-326). What a reply post answering it cites, instead of fetching a page.
|
|
250
|
+
*/
|
|
251
|
+
readonly heldAt: (url: string, site: ConversationSite) => HeldAt | undefined;
|
|
252
|
+
/**
|
|
253
|
+
* What a key names and its direct replies (TASK-324, decision-51), or
|
|
254
|
+
* `undefined`: a served post or page, or a reply a reader can see.
|
|
255
|
+
*/
|
|
256
|
+
readonly repliesTo: (key: string, site: ConversationSite) => RepliesOf | undefined;
|
|
257
|
+
/**
|
|
258
|
+
* The document whose conversation a URL is in (TASK-320): the post a
|
|
259
|
+
* comment's page or anchor is on, the post a webmention was sent to, the
|
|
260
|
+
* post a fediverse reply answers however deep, or the document at the URL.
|
|
261
|
+
*/
|
|
262
|
+
readonly documentOf: (url: string) => Document | undefined;
|
|
263
|
+
/**
|
|
264
|
+
* Every page in the conversation a document is in that answers something
|
|
265
|
+
* off this site, with what a reader sees under it (TASK-320): what a
|
|
266
|
+
* salmention is sent from. A reply post answers its `in-reply-to`; a
|
|
267
|
+
* comment's own page answers the webmention reply it is under. One
|
|
268
|
+
* answering something here has nobody to tell: this site already knows.
|
|
269
|
+
*/
|
|
270
|
+
readonly upstreams: (document: Document, site: ConversationSite) => Upstream[];
|
|
271
|
+
}
|
|
272
|
+
/** One page of this site's answering a page elsewhere (TASK-320). */
|
|
273
|
+
export interface Upstream {
|
|
274
|
+
/** The document the page is, or that the comment is on. */
|
|
275
|
+
readonly post: Document;
|
|
276
|
+
/** The page, absolute: a reply post's permalink or a comment's own page. */
|
|
277
|
+
readonly source: string;
|
|
278
|
+
/** What it answers, off this site. */
|
|
279
|
+
readonly target: string;
|
|
280
|
+
/** The replies a reader sees under it, as its page prints them. */
|
|
281
|
+
readonly replies: readonly ThreadReply[];
|
|
282
|
+
}
|
|
283
|
+
/** What one `/replies/` feed is about, and what is in it (TASK-324). */
|
|
284
|
+
export interface RepliesOf {
|
|
285
|
+
/** The document whose conversation it is. */
|
|
286
|
+
readonly post: Document;
|
|
287
|
+
/** The reply whose replies these are, or `null` for the document's own. */
|
|
288
|
+
readonly reply: Interaction | null;
|
|
289
|
+
/** The visible replies directly under it, each carrying its own. */
|
|
290
|
+
readonly replies: Placed[];
|
|
291
|
+
}
|
|
292
|
+
/** What {@link ConversationReader.heldAt} found: a reply and the post it is on, or a post. */
|
|
293
|
+
export type HeldAt = {
|
|
294
|
+
readonly kind: 'reply';
|
|
295
|
+
readonly post: Document;
|
|
296
|
+
readonly reply: Interaction;
|
|
297
|
+
} | {
|
|
298
|
+
readonly kind: 'document';
|
|
299
|
+
readonly post: Document;
|
|
300
|
+
readonly author: InteractionAuthor;
|
|
301
|
+
};
|
|
302
|
+
/** A native comment, what it answers and what answers it (TASK-318). */
|
|
303
|
+
export interface CommentThread {
|
|
304
|
+
/** The post it is on. */
|
|
305
|
+
readonly post: Document;
|
|
306
|
+
/** The comment, carrying its replies at every depth as the thread does. */
|
|
307
|
+
readonly comment: Interaction;
|
|
308
|
+
/**
|
|
309
|
+
* What it answers, from the top-level comment down to its parent. `null`
|
|
310
|
+
* is an ancestor a reader may not see: one waiting for a moderator, filed
|
|
311
|
+
* as spam, deleted or withdrawn.
|
|
312
|
+
*/
|
|
313
|
+
readonly ancestors: readonly (Interaction | null)[];
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* The URLs a reply post can answer a native comment by: its own page, and its
|
|
317
|
+
* anchor on the post at this absolute permalink.
|
|
318
|
+
*/
|
|
319
|
+
export declare function commentNames(id: string, permalink: string, baseUrl: string): string[];
|
|
320
|
+
/**
|
|
321
|
+
* The stored comment holding a fediverse note or activity id as its origin:
|
|
322
|
+
* one imported from the site this one replaced, keyed by that id as it would
|
|
323
|
+
* have been had it arrived here (TASK-336). A delivery or a fetch of the same
|
|
324
|
+
* id is that comment again, and the stored one wins, since it is the one the
|
|
325
|
+
* moderator decided on and the thread anchors.
|
|
326
|
+
*/
|
|
327
|
+
export declare function heldComment(admin: AdminStore, id: string): PostComment | undefined;
|
|
328
|
+
/**
|
|
329
|
+
* The `id` a thread entry is anchored at on the page, by its key.
|
|
330
|
+
*
|
|
331
|
+
* Prefixed rather than bare so a comment can never collide with a heading
|
|
332
|
+
* anchor the post's own Markdown produced.
|
|
333
|
+
*/
|
|
334
|
+
export declare function commentAnchor(key: string): string;
|
|
335
|
+
/** The key of the comment whose page a path is, or `undefined` (TASK-319). */
|
|
336
|
+
export declare function commentKeyAt(pathname: string): string | undefined;
|
|
337
|
+
/** The entry of a thread with this key that a reader can see, at any depth. */
|
|
338
|
+
export declare function visibleReply(replies: readonly ThreadReply[], key: string): Interaction | undefined;
|
|
339
|
+
export declare function isWithheld(reply: ThreadReply): reply is WithheldReply;
|
|
340
|
+
//# sourceMappingURL=conversation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/comments/conversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { COMMENT_PAGE_PREFIX, commentPageHref, isKey, repliesKey } from '../content/guids.js';
|
|
2
|
+
import { absoluteUrl } from '../util/url.js';
|
|
3
|
+
/**
|
|
4
|
+
* The URLs a reply post can answer a native comment by: its own page, and its
|
|
5
|
+
* anchor on the post at this absolute permalink.
|
|
6
|
+
*/
|
|
7
|
+
export function commentNames(id, permalink, baseUrl) {
|
|
8
|
+
return [absoluteUrl(commentPageHref(id), baseUrl), `${permalink}#${commentAnchor(id)}`];
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The stored comment holding a fediverse note or activity id as its origin:
|
|
12
|
+
* one imported from the site this one replaced, keyed by that id as it would
|
|
13
|
+
* have been had it arrived here (TASK-336). A delivery or a fetch of the same
|
|
14
|
+
* id is that comment again, and the stored one wins, since it is the one the
|
|
15
|
+
* moderator decided on and the thread anchors.
|
|
16
|
+
*/
|
|
17
|
+
export function heldComment(admin, id) {
|
|
18
|
+
const comment = admin.getComment(repliesKey(id));
|
|
19
|
+
return comment?.origin === id ? comment : undefined;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The `id` a thread entry is anchored at on the page, by its key.
|
|
23
|
+
*
|
|
24
|
+
* Prefixed rather than bare so a comment can never collide with a heading
|
|
25
|
+
* anchor the post's own Markdown produced.
|
|
26
|
+
*/
|
|
27
|
+
export function commentAnchor(key) {
|
|
28
|
+
return `comment-${key}`;
|
|
29
|
+
}
|
|
30
|
+
/** The key of the comment whose page a path is, or `undefined` (TASK-319). */
|
|
31
|
+
export function commentKeyAt(pathname) {
|
|
32
|
+
if (!pathname.startsWith(COMMENT_PAGE_PREFIX) || !pathname.endsWith('/'))
|
|
33
|
+
return undefined;
|
|
34
|
+
const key = pathname.slice(COMMENT_PAGE_PREFIX.length, -1);
|
|
35
|
+
return isKey(key) ? key : undefined;
|
|
36
|
+
}
|
|
37
|
+
/** The entry of a thread with this key that a reader can see, at any depth. */
|
|
38
|
+
export function visibleReply(replies, key) {
|
|
39
|
+
for (const reply of replies) {
|
|
40
|
+
if (!isWithheld(reply) && reply.key === key)
|
|
41
|
+
return reply;
|
|
42
|
+
const found = visibleReply(reply.replies, key);
|
|
43
|
+
if (found !== undefined)
|
|
44
|
+
return found;
|
|
45
|
+
}
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
export function isWithheld(reply) {
|
|
49
|
+
return 'withheld' in reply;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=conversation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/comments/conversation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAI9F,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAwU7C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,EAAU,EAAE,SAAiB,EAAE,OAAe;IACzE,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,SAAS,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,KAAiB,EAAE,EAAU;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,OAAO,OAAO,EAAE,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,WAAW,GAAG,EAAE,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3F,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,YAAY,CAC1B,OAA+B,EAC/B,GAAW;IAEX,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QAC1D,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAkB;IAC3C,OAAO,UAAU,IAAI,KAAK,CAAC;AAC7B,CAAC"}
|
package/dist/comments/form.d.ts
CHANGED
|
@@ -110,14 +110,14 @@ export declare const COMMENT_REPLY_PARAM = "reply_to";
|
|
|
110
110
|
*/
|
|
111
111
|
export declare const COMMENT_NOTICES: Readonly<Record<string, string>>;
|
|
112
112
|
/** A fresh, empty form for a post that is taking comments. */
|
|
113
|
-
export declare function commentForm(document: Document, now
|
|
113
|
+
export declare function commentForm(document: Document, now: Date, notifiable?: boolean): CommentFormContext;
|
|
114
114
|
/**
|
|
115
115
|
* The same form with what somebody typed still in it.
|
|
116
116
|
*
|
|
117
117
|
* What a refused submission is answered with: losing a paragraph because an
|
|
118
118
|
* email address had a typo in it is the fastest way to lose a commenter.
|
|
119
119
|
*/
|
|
120
|
-
export declare function refilledCommentForm(document: Document, values: CommentFormContext['values'], problems: CommentProblems, now
|
|
120
|
+
export declare function refilledCommentForm(document: Document, values: CommentFormContext['values'], problems: CommentProblems, now: Date, error?: string, notifiable?: boolean): CommentFormContext;
|
|
121
121
|
/** What a form holds before anybody has typed in it. */
|
|
122
122
|
export declare function blankValues(): CommentFormContext['values'];
|
|
123
123
|
/** What a submitted form typed, for putting back in a refused one. */
|