@geekity/cms 0.31.0 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/components/badge.njk +4 -0
- package/admin/components/fields.njk +41 -24
- package/admin/components/job-status.njk +45 -0
- package/admin/components/setting-fields.njk +38 -0
- package/admin/layouts/settings-page.njk +16 -0
- package/admin/pages/comments/all.njk +1 -2
- package/admin/pages/documents/editor.njk +17 -15
- package/admin/pages/documents/syndication.njk +4 -4
- package/admin/pages/federation/followers.njk +56 -6
- package/admin/pages/federation/settings.njk +1 -1
- package/admin/pages/media/library.njk +52 -3
- package/admin/pages/navigation/menus.njk +2 -2
- package/admin/pages/plugins/screen.njk +5 -46
- package/admin/pages/settings/discussion.njk +76 -47
- package/admin/pages/settings/email.njk +75 -47
- package/admin/pages/settings/general.njk +15 -15
- package/admin/pages/settings/permalinks.njk +8 -8
- package/admin/pages/settings/privacy.njk +6 -6
- package/admin/pages/settings/reading.njk +36 -36
- package/admin/pages/tools/dev-mode.njk +29 -3
- package/admin/pages/tools/export.njk +89 -0
- package/admin/pages/tools/maintenance.njk +51 -0
- package/admin/pages/users/apps.njk +2 -2
- package/admin/pages/users/edit.njk +3 -3
- package/admin/pages/users/new.njk +2 -2
- package/admin/static/admin.css +80 -0
- package/dist/admin/app-activity.d.ts.map +1 -1
- package/dist/admin/app-activity.js +2 -3
- package/dist/admin/app-activity.js.map +1 -1
- package/dist/admin/appearance.d.ts +1 -5
- package/dist/admin/appearance.d.ts.map +1 -1
- package/dist/admin/appearance.js +9 -16
- package/dist/admin/appearance.js.map +1 -1
- package/dist/admin/comments.d.ts.map +1 -1
- package/dist/admin/comments.js +2 -3
- package/dist/admin/comments.js.map +1 -1
- package/dist/admin/confirm-password.d.ts +4 -0
- package/dist/admin/confirm-password.d.ts.map +1 -0
- package/dist/admin/confirm-password.js +11 -0
- package/dist/admin/confirm-password.js.map +1 -0
- package/dist/admin/connected-apps.d.ts.map +1 -1
- package/dist/admin/connected-apps.js +17 -22
- package/dist/admin/connected-apps.js.map +1 -1
- package/dist/admin/dev-mode.d.ts.map +1 -1
- package/dist/admin/dev-mode.js +35 -10
- package/dist/admin/dev-mode.js.map +1 -1
- package/dist/admin/documents.d.ts.map +1 -1
- package/dist/admin/documents.js +22 -10
- package/dist/admin/documents.js.map +1 -1
- package/dist/admin/editor-actions.d.ts.map +1 -1
- package/dist/admin/editor-actions.js +1 -2
- package/dist/admin/editor-actions.js.map +1 -1
- package/dist/admin/editor-layout.js +1 -1
- package/dist/admin/editor-layout.js.map +1 -1
- package/dist/admin/export.d.ts +10 -0
- package/dist/admin/export.d.ts.map +1 -0
- package/dist/admin/export.js +72 -0
- package/dist/admin/export.js.map +1 -0
- package/dist/admin/federation.d.ts +1 -12
- package/dist/admin/federation.d.ts.map +1 -1
- package/dist/admin/federation.js +34 -87
- package/dist/admin/federation.js.map +1 -1
- package/dist/admin/index.d.ts +2 -5
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +2 -4
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/indieauth-consent.d.ts.map +1 -1
- package/dist/admin/indieauth-consent.js +5 -7
- package/dist/admin/indieauth-consent.js.map +1 -1
- package/dist/admin/job-status.d.ts +25 -0
- package/dist/admin/job-status.d.ts.map +1 -0
- package/dist/admin/job-status.js +53 -0
- package/dist/admin/job-status.js.map +1 -0
- package/dist/admin/legacy-migrations.d.ts.map +1 -1
- package/dist/admin/legacy-migrations.js +7 -6
- package/dist/admin/legacy-migrations.js.map +1 -1
- package/dist/admin/maintenance.d.ts +9 -0
- package/dist/admin/maintenance.d.ts.map +1 -0
- package/dist/admin/maintenance.js +42 -0
- package/dist/admin/maintenance.js.map +1 -0
- package/dist/admin/media.d.ts +4 -1
- package/dist/admin/media.d.ts.map +1 -1
- package/dist/admin/media.js +16 -1
- package/dist/admin/media.js.map +1 -1
- package/dist/admin/menu.d.ts.map +1 -1
- package/dist/admin/menu.js +4 -0
- package/dist/admin/menu.js.map +1 -1
- package/dist/admin/messages.d.ts.map +1 -1
- package/dist/admin/messages.js +2 -3
- package/dist/admin/messages.js.map +1 -1
- package/dist/admin/navigation.d.ts.map +1 -1
- package/dist/admin/navigation.js +27 -23
- package/dist/admin/navigation.js.map +1 -1
- package/dist/admin/plugins.d.ts.map +1 -1
- package/dist/admin/plugins.js +19 -66
- package/dist/admin/plugins.js.map +1 -1
- package/dist/admin/preview.d.ts.map +1 -1
- package/dist/admin/preview.js +5 -6
- package/dist/admin/preview.js.map +1 -1
- package/dist/admin/recovery.js +2 -2
- package/dist/admin/recovery.js.map +1 -1
- package/dist/admin/routes.d.ts.map +1 -1
- package/dist/admin/routes.js +6 -3
- package/dist/admin/routes.js.map +1 -1
- package/dist/admin/setting-overrides.d.ts +4 -0
- package/dist/admin/setting-overrides.d.ts.map +1 -0
- package/dist/admin/setting-overrides.js +24 -0
- package/dist/admin/setting-overrides.js.map +1 -0
- package/dist/admin/settings-discussion.d.ts +6 -4
- package/dist/admin/settings-discussion.d.ts.map +1 -1
- package/dist/admin/settings-discussion.js +75 -45
- package/dist/admin/settings-discussion.js.map +1 -1
- package/dist/admin/settings-email.d.ts +11 -8
- package/dist/admin/settings-email.d.ts.map +1 -1
- package/dist/admin/settings-email.js +88 -77
- package/dist/admin/settings-email.js.map +1 -1
- package/dist/admin/settings-federation.d.ts +0 -7
- package/dist/admin/settings-federation.d.ts.map +1 -1
- package/dist/admin/settings-federation.js +0 -36
- package/dist/admin/settings-federation.js.map +1 -1
- package/dist/admin/settings-fields.d.ts +32 -0
- package/dist/admin/settings-fields.d.ts.map +1 -0
- package/dist/admin/settings-fields.js +368 -0
- package/dist/admin/settings-fields.js.map +1 -0
- package/dist/admin/settings-general.d.ts.map +1 -1
- package/dist/admin/settings-general.js +10 -19
- package/dist/admin/settings-general.js.map +1 -1
- package/dist/admin/settings-page.d.ts +3 -29
- package/dist/admin/settings-page.d.ts.map +1 -1
- package/dist/admin/settings-page.js +38 -53
- package/dist/admin/settings-page.js.map +1 -1
- package/dist/admin/settings-permalinks.js +2 -2
- package/dist/admin/settings-permalinks.js.map +1 -1
- package/dist/admin/settings-privacy.js +1 -1
- package/dist/admin/settings-privacy.js.map +1 -1
- package/dist/admin/settings-reading.js +13 -13
- package/dist/admin/settings-reading.js.map +1 -1
- package/dist/admin/settings-renderer.d.ts +32 -0
- package/dist/admin/settings-renderer.d.ts.map +1 -0
- package/dist/admin/settings-renderer.js +79 -0
- package/dist/admin/settings-renderer.js.map +1 -0
- package/dist/admin/site-setting-edit.d.ts +4 -0
- package/dist/admin/site-setting-edit.d.ts.map +1 -0
- package/dist/admin/site-setting-edit.js +20 -0
- package/dist/admin/site-setting-edit.js.map +1 -0
- package/dist/admin/taxonomy.d.ts.map +1 -1
- package/dist/admin/taxonomy.js +10 -19
- package/dist/admin/taxonomy.js.map +1 -1
- package/dist/admin/templates.d.ts +2 -0
- package/dist/admin/templates.d.ts.map +1 -1
- package/dist/admin/templates.js +2 -0
- package/dist/admin/templates.js.map +1 -1
- package/dist/admin/users.js +1 -1
- package/dist/admin/users.js.map +1 -1
- package/dist/avatars/avatars.d.ts +0 -2
- package/dist/avatars/avatars.d.ts.map +1 -1
- package/dist/avatars/avatars.js +9 -10
- package/dist/avatars/avatars.js.map +1 -1
- package/dist/avatars/index.d.ts +1 -1
- package/dist/avatars/index.d.ts.map +1 -1
- package/dist/avatars/index.js +1 -1
- package/dist/avatars/index.js.map +1 -1
- package/dist/cache.d.ts +0 -2
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +2 -4
- package/dist/cache.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +500 -86
- package/dist/cli.js.map +1 -1
- package/dist/cms/app.d.ts +1 -1
- package/dist/cms/app.d.ts.map +1 -1
- package/dist/cms/app.js +13 -2
- package/dist/cms/app.js.map +1 -1
- package/dist/cms/boot.d.ts +12 -0
- package/dist/cms/boot.d.ts.map +1 -1
- package/dist/cms/boot.js +37 -16
- package/dist/cms/boot.js.map +1 -1
- package/dist/cms/create.d.ts +24 -0
- package/dist/cms/create.d.ts.map +1 -1
- package/dist/cms/create.js +14 -0
- package/dist/cms/create.js.map +1 -1
- package/dist/cms/services.d.ts +3 -1
- package/dist/cms/services.d.ts.map +1 -1
- package/dist/cms/services.js +83 -26
- package/dist/cms/services.js.map +1 -1
- package/dist/cms/site-records.d.ts.map +1 -1
- package/dist/cms/site-records.js +0 -2
- package/dist/cms/site-records.js.map +1 -1
- package/dist/comments/akismet.d.ts +13 -46
- package/dist/comments/akismet.d.ts.map +1 -1
- package/dist/comments/akismet.js +29 -68
- package/dist/comments/akismet.js.map +1 -1
- package/dist/comments/conversation.d.ts +14 -8
- package/dist/comments/conversation.d.ts.map +1 -1
- package/dist/comments/conversation.js.map +1 -1
- package/dist/comments/index.d.ts +4 -4
- package/dist/comments/index.d.ts.map +1 -1
- package/dist/comments/index.js +3 -3
- package/dist/comments/index.js.map +1 -1
- package/dist/comments/policy.d.ts +23 -26
- package/dist/comments/policy.d.ts.map +1 -1
- package/dist/comments/policy.js +13 -20
- package/dist/comments/policy.js.map +1 -1
- package/dist/comments/records.d.ts +0 -2
- package/dist/comments/records.d.ts.map +1 -1
- package/dist/comments/records.js +2 -3
- package/dist/comments/records.js.map +1 -1
- package/dist/comments/reply-notices.d.ts +5 -6
- package/dist/comments/reply-notices.d.ts.map +1 -1
- package/dist/comments/reply-notices.js +27 -15
- package/dist/comments/reply-notices.js.map +1 -1
- package/dist/comments/reply-post.d.ts.map +1 -1
- package/dist/comments/reply-post.js +2 -3
- package/dist/comments/reply-post.js.map +1 -1
- package/dist/comments/submission.d.ts +0 -2
- package/dist/comments/submission.d.ts.map +1 -1
- package/dist/comments/submission.js +1 -3
- package/dist/comments/submission.js.map +1 -1
- package/dist/config-loader.d.ts.map +1 -1
- package/dist/config-loader.js +2 -1
- package/dist/config-loader.js.map +1 -1
- package/dist/config.d.ts +27 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -1
- package/dist/config.js.map +1 -1
- package/dist/contact/delivery.d.ts +2 -4
- package/dist/contact/delivery.d.ts.map +1 -1
- package/dist/contact/delivery.js +1 -2
- package/dist/contact/delivery.js.map +1 -1
- package/dist/contact/index.d.ts +1 -1
- package/dist/contact/index.d.ts.map +1 -1
- package/dist/contact/index.js +1 -1
- package/dist/contact/index.js.map +1 -1
- package/dist/contact/records.d.ts +0 -2
- package/dist/contact/records.d.ts.map +1 -1
- package/dist/contact/records.js +3 -5
- package/dist/contact/records.js.map +1 -1
- package/dist/content/citation.d.ts +1 -0
- package/dist/content/citation.d.ts.map +1 -1
- package/dist/content/citation.js.map +1 -1
- package/dist/content/document-form.d.ts +3 -1
- package/dist/content/document-form.d.ts.map +1 -1
- package/dist/content/document-form.js.map +1 -1
- package/dist/content/enclosure-form.d.ts.map +1 -1
- package/dist/content/enclosure-form.js +5 -6
- package/dist/content/enclosure-form.js.map +1 -1
- package/dist/content/excerpt.d.ts +1 -0
- package/dist/content/excerpt.d.ts.map +1 -1
- package/dist/content/excerpt.js +3 -0
- package/dist/content/excerpt.js.map +1 -1
- package/dist/content/index.d.ts +3 -3
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/index.js +2 -2
- package/dist/content/index.js.map +1 -1
- package/dist/content/kept-properties.d.ts +0 -1
- package/dist/content/kept-properties.d.ts.map +1 -1
- package/dist/content/kept-properties.js +2 -2
- package/dist/content/kept-properties.js.map +1 -1
- package/dist/content/locations.d.ts +0 -1
- package/dist/content/locations.d.ts.map +1 -1
- package/dist/content/locations.js +2 -2
- package/dist/content/locations.js.map +1 -1
- package/dist/content/media.d.ts +7 -0
- package/dist/content/media.d.ts.map +1 -1
- package/dist/content/media.js +12 -1
- package/dist/content/media.js.map +1 -1
- package/dist/content/metadata/strip-job.d.ts +16 -0
- package/dist/content/metadata/strip-job.d.ts.map +1 -0
- package/dist/content/metadata/strip-job.js +24 -0
- package/dist/content/metadata/strip-job.js.map +1 -0
- package/dist/content/metadata/sweep.d.ts +13 -1
- package/dist/content/metadata/sweep.d.ts.map +1 -1
- package/dist/content/metadata/sweep.js +47 -25
- package/dist/content/metadata/sweep.js.map +1 -1
- package/dist/content/permalink-file.d.ts +2 -1
- package/dist/content/permalink-file.d.ts.map +1 -1
- package/dist/content/permalink-file.js +3 -3
- package/dist/content/permalink-file.js.map +1 -1
- package/dist/content/photo-form.d.ts +1 -0
- package/dist/content/photo-form.d.ts.map +1 -1
- package/dist/content/photo-form.js +8 -5
- package/dist/content/photo-form.js.map +1 -1
- package/dist/content/photo.d.ts +1 -0
- package/dist/content/photo.d.ts.map +1 -1
- package/dist/content/photo.js +1 -1
- package/dist/content/photo.js.map +1 -1
- package/dist/content/post-fields.d.ts.map +1 -1
- package/dist/content/post-fields.js +5 -9
- package/dist/content/post-fields.js.map +1 -1
- package/dist/content/read-form.d.ts +10 -3
- package/dist/content/read-form.d.ts.map +1 -1
- package/dist/content/read-form.js +67 -9
- package/dist/content/read-form.js.map +1 -1
- package/dist/content/read.d.ts +9 -2
- package/dist/content/read.d.ts.map +1 -1
- package/dist/content/read.js +22 -3
- package/dist/content/read.js.map +1 -1
- package/dist/content/store.d.ts +0 -1
- package/dist/content/store.d.ts.map +1 -1
- package/dist/content/store.js +0 -1
- package/dist/content/store.js.map +1 -1
- package/dist/content/uploads.d.ts +1 -1
- package/dist/content/uploads.d.ts.map +1 -1
- package/dist/content/uploads.js +6 -1
- package/dist/content/uploads.js.map +1 -1
- package/dist/content/write.d.ts +1 -1
- package/dist/content/write.d.ts.map +1 -1
- package/dist/content/write.js +7 -3
- package/dist/content/write.js.map +1 -1
- package/dist/dev-mode.d.ts +4 -26
- package/dist/dev-mode.d.ts.map +1 -1
- package/dist/dev-mode.js +4 -53
- package/dist/dev-mode.js.map +1 -1
- package/dist/export/export-archives.d.ts +29 -0
- package/dist/export/export-archives.d.ts.map +1 -0
- package/dist/export/export-archives.js +88 -0
- package/dist/export/export-archives.js.map +1 -0
- package/dist/export/export-job.d.ts +21 -0
- package/dist/export/export-job.d.ts.map +1 -0
- package/dist/export/export-job.js +63 -0
- package/dist/export/export-job.js.map +1 -0
- package/dist/export/site-export.d.ts +101 -0
- package/dist/export/site-export.d.ts.map +1 -0
- package/dist/export/site-export.js +243 -0
- package/dist/export/site-export.js.map +1 -0
- package/dist/export/site-import.d.ts +75 -0
- package/dist/export/site-import.d.ts.map +1 -0
- package/dist/export/site-import.js +492 -0
- package/dist/export/site-import.js.map +1 -0
- package/dist/exports.d.ts +9 -4
- package/dist/exports.d.ts.map +1 -1
- package/dist/exports.js +3 -1
- package/dist/exports.js.map +1 -1
- package/dist/federation/article.d.ts.map +1 -1
- package/dist/federation/article.js +22 -20
- package/dist/federation/article.js.map +1 -1
- package/dist/federation/backfill.d.ts +3 -1
- package/dist/federation/backfill.d.ts.map +1 -1
- package/dist/federation/backfill.js +5 -3
- package/dist/federation/backfill.js.map +1 -1
- package/dist/federation/cited-post.d.ts +1 -1
- package/dist/federation/cited-post.d.ts.map +1 -1
- package/dist/federation/cited-post.js +1 -1
- package/dist/federation/cited-post.js.map +1 -1
- package/dist/federation/delivery.d.ts +5 -2
- package/dist/federation/delivery.d.ts.map +1 -1
- package/dist/federation/delivery.js +16 -12
- package/dist/federation/delivery.js.map +1 -1
- package/dist/federation/federation.d.ts +7 -7
- package/dist/federation/federation.d.ts.map +1 -1
- package/dist/federation/federation.js +5 -12
- package/dist/federation/federation.js.map +1 -1
- package/dist/federation/handles.d.ts +1 -1
- package/dist/federation/handles.d.ts.map +1 -1
- package/dist/federation/handles.js +1 -1
- package/dist/federation/handles.js.map +1 -1
- package/dist/federation/inbox.js +1 -1
- package/dist/federation/inbox.js.map +1 -1
- package/dist/federation/keys.js +3 -3
- package/dist/federation/keys.js.map +1 -1
- package/dist/federation/profiles.d.ts +1 -1
- package/dist/federation/profiles.d.ts.map +1 -1
- package/dist/federation/profiles.js +1 -1
- package/dist/federation/profiles.js.map +1 -1
- package/dist/federation/queue.d.ts +32 -17
- package/dist/federation/queue.d.ts.map +1 -1
- package/dist/federation/queue.js +173 -39
- package/dist/federation/queue.js.map +1 -1
- package/dist/federation/relays.d.ts +6 -2
- package/dist/federation/relays.d.ts.map +1 -1
- package/dist/federation/relays.js +43 -36
- package/dist/federation/relays.js.map +1 -1
- package/dist/federation/resend-job.d.ts +44 -0
- package/dist/federation/resend-job.d.ts.map +1 -0
- package/dist/federation/resend-job.js +59 -0
- package/dist/federation/resend-job.js.map +1 -0
- package/dist/files/atomic.d.ts +9 -0
- package/dist/files/atomic.d.ts.map +1 -1
- package/dist/files/atomic.js +1 -1
- package/dist/files/atomic.js.map +1 -1
- package/dist/files/data-files.d.ts +104 -0
- package/dist/files/data-files.d.ts.map +1 -0
- package/dist/files/data-files.js +330 -0
- package/dist/files/data-files.js.map +1 -0
- package/dist/files/export-archives.d.ts +12 -0
- package/dist/files/export-archives.d.ts.map +1 -0
- package/dist/files/export-archives.js +67 -0
- package/dist/files/export-archives.js.map +1 -0
- package/dist/files/static-files.d.ts.map +1 -1
- package/dist/files/static-files.js +7 -22
- package/dist/files/static-files.js.map +1 -1
- package/dist/files/tar.d.ts +29 -0
- package/dist/files/tar.d.ts.map +1 -0
- package/dist/files/tar.js +206 -0
- package/dist/files/tar.js.map +1 -0
- package/dist/files/upload-types.d.ts +81 -0
- package/dist/files/upload-types.d.ts.map +1 -0
- package/dist/files/upload-types.js +234 -0
- package/dist/files/upload-types.js.map +1 -0
- package/dist/forms/protection.d.ts +0 -8
- package/dist/forms/protection.d.ts.map +1 -1
- package/dist/forms/protection.js +2 -10
- package/dist/forms/protection.js.map +1 -1
- package/dist/images/icons.d.ts.map +1 -1
- package/dist/images/icons.js +2 -0
- package/dist/images/icons.js.map +1 -1
- package/dist/images/index.d.ts +1 -1
- package/dist/images/index.d.ts.map +1 -1
- package/dist/images/index.js +1 -1
- package/dist/images/index.js.map +1 -1
- package/dist/images/markup.d.ts +4 -1
- package/dist/images/markup.d.ts.map +1 -1
- package/dist/images/markup.js +10 -6
- package/dist/images/markup.js.map +1 -1
- package/dist/images/paths.d.ts +1 -4
- package/dist/images/paths.d.ts.map +1 -1
- package/dist/images/paths.js +6 -12
- package/dist/images/paths.js.map +1 -1
- package/dist/images/variants.d.ts +4 -2
- package/dist/images/variants.d.ts.map +1 -1
- package/dist/images/variants.js +21 -21
- package/dist/images/variants.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/indexnow.d.ts +4 -2
- package/dist/indexnow.d.ts.map +1 -1
- package/dist/indexnow.js +32 -20
- package/dist/indexnow.js.map +1 -1
- package/dist/indieauth/tokens.d.ts +0 -2
- package/dist/indieauth/tokens.d.ts.map +1 -1
- package/dist/indieauth/tokens.js +2 -4
- package/dist/indieauth/tokens.js.map +1 -1
- package/dist/jobs/file-records.d.ts +13 -0
- package/dist/jobs/file-records.d.ts.map +1 -0
- package/dist/jobs/file-records.js +104 -0
- package/dist/jobs/file-records.js.map +1 -0
- package/dist/jobs/in-process.d.ts +10 -0
- package/dist/jobs/in-process.d.ts.map +1 -0
- package/dist/jobs/in-process.js +45 -0
- package/dist/jobs/in-process.js.map +1 -0
- package/dist/jobs/lock-file.d.ts +13 -0
- package/dist/jobs/lock-file.d.ts.map +1 -0
- package/dist/jobs/lock-file.js +107 -0
- package/dist/jobs/lock-file.js.map +1 -0
- package/dist/jobs/processes.d.ts +11 -0
- package/dist/jobs/processes.d.ts.map +1 -0
- package/dist/jobs/processes.js +50 -0
- package/dist/jobs/processes.js.map +1 -0
- package/dist/jobs/queue.d.ts +18 -0
- package/dist/jobs/queue.d.ts.map +1 -0
- package/dist/jobs/queue.js +220 -0
- package/dist/jobs/queue.js.map +1 -0
- package/dist/jobs/types.d.ts +159 -0
- package/dist/jobs/types.d.ts.map +1 -0
- package/dist/jobs/types.js +22 -0
- package/dist/jobs/types.js.map +1 -0
- package/dist/mail/index.d.ts +0 -2
- package/dist/mail/index.d.ts.map +1 -1
- package/dist/mail/index.js +0 -1
- package/dist/mail/index.js.map +1 -1
- package/dist/maintenance.d.ts +5 -42
- package/dist/maintenance.d.ts.map +1 -1
- package/dist/maintenance.js +4 -67
- package/dist/maintenance.js.map +1 -1
- package/dist/media/library.d.ts +1 -1
- package/dist/media/library.d.ts.map +1 -1
- package/dist/media/library.js +4 -1
- package/dist/media/library.js.map +1 -1
- package/dist/media/uploads.d.ts +1 -1
- package/dist/media/uploads.d.ts.map +1 -1
- package/dist/media/uploads.js +1 -1
- package/dist/media/uploads.js.map +1 -1
- package/dist/micropub/endpoint.js +10 -10
- package/dist/micropub/endpoint.js.map +1 -1
- package/dist/micropub/media.d.ts +0 -2
- package/dist/micropub/media.d.ts.map +1 -1
- package/dist/micropub/media.js +5 -7
- package/dist/micropub/media.js.map +1 -1
- package/dist/notifications/comments.d.ts +4 -2
- package/dist/notifications/comments.d.ts.map +1 -1
- package/dist/notifications/comments.js +77 -65
- package/dist/notifications/comments.js.map +1 -1
- package/dist/notifications/digest.d.ts +2 -4
- package/dist/notifications/digest.d.ts.map +1 -1
- package/dist/notifications/digest.js +9 -10
- package/dist/notifications/digest.js.map +1 -1
- package/dist/notifications/index.d.ts +3 -3
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +3 -3
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/mail-service.d.ts +10 -8
- package/dist/notifications/mail-service.d.ts.map +1 -1
- package/dist/notifications/mail-service.js +70 -70
- package/dist/notifications/mail-service.js.map +1 -1
- package/dist/notifications/optouts.d.ts +0 -2
- package/dist/notifications/optouts.d.ts.map +1 -1
- package/dist/notifications/optouts.js +2 -4
- package/dist/notifications/optouts.js.map +1 -1
- package/dist/notifications/tokens.d.ts +0 -2
- package/dist/notifications/tokens.d.ts.map +1 -1
- package/dist/notifications/tokens.js +2 -28
- package/dist/notifications/tokens.js.map +1 -1
- package/dist/notify.d.ts +4 -2
- package/dist/notify.d.ts.map +1 -1
- package/dist/notify.js +27 -15
- package/dist/notify.js.map +1 -1
- package/dist/plugin.d.ts +36 -16
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/plugins/changes.d.ts +0 -1
- package/dist/plugins/changes.d.ts.map +1 -1
- package/dist/plugins/changes.js +2 -3
- package/dist/plugins/changes.js.map +1 -1
- package/dist/plugins/data.d.ts +19 -0
- package/dist/plugins/data.d.ts.map +1 -0
- package/dist/plugins/data.js +117 -0
- package/dist/plugins/data.js.map +1 -0
- package/dist/plugins/enabled.d.ts +1 -13
- package/dist/plugins/enabled.d.ts.map +1 -1
- package/dist/plugins/enabled.js +11 -23
- package/dist/plugins/enabled.js.map +1 -1
- package/dist/plugins/install.d.ts +1 -1
- package/dist/plugins/install.d.ts.map +1 -1
- package/dist/plugins/install.js +7 -42
- package/dist/plugins/install.js.map +1 -1
- package/dist/plugins/migrate-settings.d.ts +7 -0
- package/dist/plugins/migrate-settings.d.ts.map +1 -0
- package/dist/plugins/migrate-settings.js +41 -0
- package/dist/plugins/migrate-settings.js.map +1 -0
- package/dist/plugins/registry.d.ts +10 -14
- package/dist/plugins/registry.d.ts.map +1 -1
- package/dist/plugins/registry.js +56 -36
- package/dist/plugins/registry.js.map +1 -1
- package/dist/plugins/settings.d.ts +5 -57
- package/dist/plugins/settings.d.ts.map +1 -1
- package/dist/plugins/settings.js +47 -180
- package/dist/plugins/settings.js.map +1 -1
- package/dist/plugins/site.d.ts +2 -1
- package/dist/plugins/site.d.ts.map +1 -1
- package/dist/plugins/site.js +5 -5
- package/dist/plugins/site.js.map +1 -1
- package/dist/privacy/retention.d.ts +4 -0
- package/dist/privacy/retention.d.ts.map +1 -1
- package/dist/privacy/retention.js +12 -5
- package/dist/privacy/retention.js.map +1 -1
- package/dist/settings/akismet.d.ts +9 -0
- package/dist/settings/akismet.d.ts.map +1 -0
- package/dist/settings/akismet.js +46 -0
- package/dist/settings/akismet.js.map +1 -0
- package/dist/settings/declare.d.ts +15 -0
- package/dist/settings/declare.d.ts.map +1 -0
- package/dist/settings/declare.js +20 -0
- package/dist/settings/declare.js.map +1 -0
- package/dist/settings/dev-mode.d.ts +29 -0
- package/dist/settings/dev-mode.d.ts.map +1 -0
- package/dist/settings/dev-mode.js +77 -0
- package/dist/settings/dev-mode.js.map +1 -0
- package/dist/settings/kinds.d.ts +13 -0
- package/dist/settings/kinds.d.ts.map +1 -0
- package/dist/settings/kinds.js +108 -0
- package/dist/settings/kinds.js.map +1 -0
- package/dist/settings/mail.d.ts +10 -0
- package/dist/settings/mail.d.ts.map +1 -0
- package/dist/settings/mail.js +92 -0
- package/dist/settings/mail.js.map +1 -0
- package/dist/settings/maintenance.d.ts +6 -0
- package/dist/settings/maintenance.d.ts.map +1 -0
- package/dist/settings/maintenance.js +33 -0
- package/dist/settings/maintenance.js.map +1 -0
- package/dist/settings/names.d.ts +7 -0
- package/dist/settings/names.d.ts.map +1 -0
- package/dist/settings/names.js +31 -0
- package/dist/settings/names.js.map +1 -0
- package/dist/settings/presence.d.ts +2 -0
- package/dist/settings/presence.d.ts.map +1 -0
- package/dist/settings/presence.js +7 -0
- package/dist/settings/presence.js.map +1 -0
- package/dist/settings/registry.d.ts +14 -0
- package/dist/settings/registry.d.ts.map +1 -0
- package/dist/settings/registry.js +369 -0
- package/dist/settings/registry.js.map +1 -0
- package/dist/settings/types.d.ts +176 -0
- package/dist/settings/types.d.ts.map +1 -0
- package/dist/settings/types.js +2 -0
- package/dist/settings/types.js.map +1 -0
- package/dist/site/namespace.d.ts +88 -0
- package/dist/site/namespace.d.ts.map +1 -0
- package/dist/site/namespace.js +471 -0
- package/dist/site/namespace.js.map +1 -0
- package/dist/site/setting-rows.d.ts +9 -10
- package/dist/site/setting-rows.d.ts.map +1 -1
- package/dist/site/setting-rows.js +109 -228
- package/dist/site/setting-rows.js.map +1 -1
- package/dist/site/settings-form.d.ts.map +1 -1
- package/dist/site/settings-form.js +6 -10
- package/dist/site/settings-form.js.map +1 -1
- package/dist/site/settings.d.ts +6 -322
- package/dist/site/settings.d.ts.map +1 -1
- package/dist/site/settings.js +13 -76
- package/dist/site/settings.js.map +1 -1
- package/dist/site/site-json.d.ts +0 -31
- package/dist/site/site-json.d.ts.map +1 -1
- package/dist/site/site-json.js +5 -49
- package/dist/site/site-json.js.map +1 -1
- package/dist/site/users.d.ts +0 -9
- package/dist/site/users.d.ts.map +1 -1
- package/dist/site/users.js +2 -11
- package/dist/site/users.js.map +1 -1
- package/dist/store/queue-database.d.ts +11 -0
- package/dist/store/queue-database.d.ts.map +1 -0
- package/dist/store/queue-database.js +39 -0
- package/dist/store/queue-database.js.map +1 -0
- package/dist/supervisor/control.d.ts +1 -0
- package/dist/supervisor/control.d.ts.map +1 -1
- package/dist/supervisor/control.js +10 -0
- package/dist/supervisor/control.js.map +1 -1
- package/dist/supervisor/primary.d.ts.map +1 -1
- package/dist/supervisor/primary.js +15 -3
- package/dist/supervisor/primary.js.map +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +1 -1
- package/dist/testing.js.map +1 -1
- package/dist/theme/site-data.d.ts +1 -1
- package/dist/theme/site-data.d.ts.map +1 -1
- package/dist/theme/site-data.js.map +1 -1
- package/dist/web/asset-routes.d.ts +6 -2
- package/dist/web/asset-routes.d.ts.map +1 -1
- package/dist/web/asset-routes.js +12 -4
- package/dist/web/asset-routes.js.map +1 -1
- package/dist/web/comment-routes.d.ts.map +1 -1
- package/dist/web/comment-routes.js +4 -4
- package/dist/web/comment-routes.js.map +1 -1
- package/dist/web/contact-routes.js +1 -1
- package/dist/web/contact-routes.js.map +1 -1
- package/dist/web/context.d.ts +5 -0
- package/dist/web/context.d.ts.map +1 -1
- package/dist/web/context.js +9 -4
- package/dist/web/context.js.map +1 -1
- package/dist/web/conversation.d.ts +1 -1
- package/dist/web/conversation.d.ts.map +1 -1
- package/dist/web/conversation.js +13 -16
- package/dist/web/conversation.js.map +1 -1
- package/dist/web/document-page.d.ts.map +1 -1
- package/dist/web/document-page.js +5 -4
- package/dist/web/document-page.js.map +1 -1
- package/dist/web/document-site.d.ts +1 -1
- package/dist/web/document-site.d.ts.map +1 -1
- package/dist/web/document-site.js +2 -1
- package/dist/web/document-site.js.map +1 -1
- package/dist/web/embed.js +1 -1
- package/dist/web/embed.js.map +1 -1
- package/dist/web/env.d.ts +9 -0
- package/dist/web/env.d.ts.map +1 -1
- package/dist/web/federation-routes.d.ts.map +1 -1
- package/dist/web/federation-routes.js +3 -1
- package/dist/web/federation-routes.js.map +1 -1
- package/dist/web/feed-item.js +1 -1
- package/dist/web/feed-item.js.map +1 -1
- package/dist/web/feed-routes.d.ts +3 -4
- package/dist/web/feed-routes.d.ts.map +1 -1
- package/dist/web/feed-routes.js +17 -15
- package/dist/web/feed-routes.js.map +1 -1
- package/dist/web/health.js +1 -1
- package/dist/web/health.js.map +1 -1
- package/dist/web/index.d.ts +1 -1
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js.map +1 -1
- package/dist/web/indieauth-activity-log.d.ts +0 -2
- package/dist/web/indieauth-activity-log.d.ts.map +1 -1
- package/dist/web/indieauth-activity-log.js +2 -4
- package/dist/web/indieauth-activity-log.js.map +1 -1
- package/dist/web/indieauth-bearer.js +2 -2
- package/dist/web/indieauth-bearer.js.map +1 -1
- package/dist/web/indieauth-discovery.d.ts +0 -4
- package/dist/web/indieauth-discovery.d.ts.map +1 -1
- package/dist/web/indieauth-discovery.js +3 -10
- package/dist/web/indieauth-discovery.js.map +1 -1
- package/dist/web/indieauth-token.d.ts.map +1 -1
- package/dist/web/indieauth-token.js +3 -3
- package/dist/web/indieauth-token.js.map +1 -1
- package/dist/web/listing-pages.d.ts.map +1 -1
- package/dist/web/listing-pages.js +1 -2
- package/dist/web/listing-pages.js.map +1 -1
- package/dist/web/maintenance.js +3 -3
- package/dist/web/maintenance.js.map +1 -1
- package/dist/web/page-sources.d.ts +1 -2
- package/dist/web/page-sources.d.ts.map +1 -1
- package/dist/web/page-sources.js +6 -7
- package/dist/web/page-sources.js.map +1 -1
- package/dist/web/paths.js +1 -1
- package/dist/web/paths.js.map +1 -1
- package/dist/web/pingback-routes.d.ts.map +1 -1
- package/dist/web/pingback-routes.js +3 -3
- package/dist/web/pingback-routes.js.map +1 -1
- package/dist/web/plugin-federation.js +50 -40
- package/dist/web/plugin-federation.js.map +1 -1
- package/dist/web/render.d.ts +12 -5
- package/dist/web/render.d.ts.map +1 -1
- package/dist/web/render.js +31 -21
- package/dist/web/render.js.map +1 -1
- package/dist/web/request.js +1 -1
- package/dist/web/request.js.map +1 -1
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +8 -9
- package/dist/web/routes.js.map +1 -1
- package/dist/web/site-index.d.ts.map +1 -1
- package/dist/web/site-index.js +1 -2
- package/dist/web/site-index.js.map +1 -1
- package/dist/web/site-view.d.ts +0 -2
- package/dist/web/site-view.d.ts.map +1 -1
- package/dist/web/site-view.js +0 -2
- package/dist/web/site-view.js.map +1 -1
- package/dist/web/webmention-routes.d.ts.map +1 -1
- package/dist/web/webmention-routes.js +2 -2
- package/dist/web/webmention-routes.js.map +1 -1
- package/dist/web/well-known.d.ts.map +1 -1
- package/dist/web/well-known.js +6 -7
- package/dist/web/well-known.js.map +1 -1
- package/dist/webmention/cited-picture.js +1 -1
- package/dist/webmention/cited-picture.js.map +1 -1
- package/dist/webmention/pingback.d.ts +1 -8
- package/dist/webmention/pingback.d.ts.map +1 -1
- package/dist/webmention/pingback.js +2 -11
- package/dist/webmention/pingback.js.map +1 -1
- package/dist/webmention/receive.d.ts +3 -1
- package/dist/webmention/receive.d.ts.map +1 -1
- package/dist/webmention/receive.js +5 -3
- package/dist/webmention/receive.js.map +1 -1
- package/dist/webmention/reply-contexts.d.ts +14 -3
- package/dist/webmention/reply-contexts.d.ts.map +1 -1
- package/dist/webmention/reply-contexts.js +12 -10
- package/dist/webmention/reply-contexts.js.map +1 -1
- package/dist/webmention/service.d.ts +3 -1
- package/dist/webmention/service.d.ts.map +1 -1
- package/dist/webmention/service.js +66 -53
- package/dist/webmention/service.js.map +1 -1
- package/package.json +13 -11
- package/themes/default/partials/post-list.njk +11 -11
- package/themes/default/src/style.css +12 -0
- package/themes/default/static/style.css +19 -0
package/dist/files/atomic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomic.js","sourceRoot":"","sources":["../../src/files/atomic.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"atomic.js","sourceRoot":"","sources":["../../src/files/atomic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a file under `data/` is to the site, and so what a site export does
|
|
3
|
+
* with it. Decide with an exhaustive `switch` on `kind`, so a new
|
|
4
|
+
* member breaks every place that has to decide about it.
|
|
5
|
+
*/
|
|
6
|
+
export type DataClass =
|
|
7
|
+
/** The site cannot be rebuilt without it. Always exported. */
|
|
8
|
+
{
|
|
9
|
+
readonly kind: 'kept';
|
|
10
|
+
}
|
|
11
|
+
/** Typed in again from another service: an API key, a login. Exported only when asked. */
|
|
12
|
+
| {
|
|
13
|
+
readonly kind: 'credential';
|
|
14
|
+
}
|
|
15
|
+
/** The site makes it again, fetches it again, or falls back to a default. Never exported. */
|
|
16
|
+
| {
|
|
17
|
+
readonly kind: 'rebuildable';
|
|
18
|
+
}
|
|
19
|
+
/** Work not done yet, tied to this host. Never exported; drained before a move. */
|
|
20
|
+
| {
|
|
21
|
+
readonly kind: 'pending';
|
|
22
|
+
}
|
|
23
|
+
/** Left by a write or a lock in flight. Never exported. */
|
|
24
|
+
| {
|
|
25
|
+
readonly kind: 'scratch';
|
|
26
|
+
};
|
|
27
|
+
export interface DataFileDeclaration {
|
|
28
|
+
/** Under `dataDir`, `/`-separated. `*` is any run of characters in one segment and `**` any depth: `keys/*.jwk`, `images/**`. */
|
|
29
|
+
readonly pattern: string;
|
|
30
|
+
readonly dataClass: DataClass;
|
|
31
|
+
/** One sentence for the docs and `geekity export --list`: what is lost if it is lost. */
|
|
32
|
+
readonly lost: string;
|
|
33
|
+
}
|
|
34
|
+
export declare function dataFileMatches(declaration: DataFileDeclaration, relative: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* The declaration that covers a `/`-separated path, or `undefined` when none
|
|
37
|
+
* does. A scratch declaration wins over any other, wherever it is in the list,
|
|
38
|
+
* so a temporary file inside a kept folder is scratch. Among the rest, the
|
|
39
|
+
* first that covers it wins.
|
|
40
|
+
*/
|
|
41
|
+
export declare function dataFileFor(declarations: readonly DataFileDeclaration[], relative: string): DataFileDeclaration | undefined;
|
|
42
|
+
export declare function writtenPrivately(declaration: DataFileDeclaration): boolean;
|
|
43
|
+
export declare function declareDataFile(declaration: DataFileDeclaration): DataFileDeclaration;
|
|
44
|
+
export declare function dataPath(dataDir: string, file: DataFileDeclaration, ...parts: string[]): string;
|
|
45
|
+
/** The folder that holds what `folder` declares: `keys/` for `keys/*.jwk`, `images/` for `images/**`. */
|
|
46
|
+
export declare function dataFolder(dataDir: string, folder: DataFileDeclaration, ...parts: string[]): string;
|
|
47
|
+
export declare const TEMPORARY_FILES: DataFileDeclaration;
|
|
48
|
+
export declare const LOCK_FILES: DataFileDeclaration;
|
|
49
|
+
export declare const LOCK_TAKEOVER_FILES: DataFileDeclaration;
|
|
50
|
+
export declare const IMPORT_MARKER: DataFileDeclaration;
|
|
51
|
+
export declare const IMPORT_STAGING: DataFileDeclaration;
|
|
52
|
+
export declare const IMPORT_ASIDE: DataFileDeclaration;
|
|
53
|
+
export declare const EXPORTS: DataFileDeclaration;
|
|
54
|
+
export declare const ACTOR_KEYS: DataFileDeclaration;
|
|
55
|
+
export declare const USERS: DataFileDeclaration;
|
|
56
|
+
export declare const NOTIFICATION_SECRET: DataFileDeclaration;
|
|
57
|
+
export declare const COMMENT_SALT: DataFileDeclaration;
|
|
58
|
+
export declare const COMMENT_EMAILS: DataFileDeclaration;
|
|
59
|
+
export declare const CONTACT_MESSAGES: DataFileDeclaration;
|
|
60
|
+
export declare const COMMENT_OPTOUTS: DataFileDeclaration;
|
|
61
|
+
export declare const INDIEAUTH_TOKENS: DataFileDeclaration;
|
|
62
|
+
export declare const LOCATIONS: DataFileDeclaration;
|
|
63
|
+
export declare const KEPT_PROPERTIES: DataFileDeclaration;
|
|
64
|
+
export declare const PLUGIN_CHANGES: DataFileDeclaration;
|
|
65
|
+
export declare const JOBS: DataFileDeclaration;
|
|
66
|
+
export declare const DEV_MODE_RECORD: DataFileDeclaration;
|
|
67
|
+
export declare const INDIEAUTH_ACTIVITY: DataFileDeclaration;
|
|
68
|
+
export declare const NOTIFICATION_DIGESTS: DataFileDeclaration;
|
|
69
|
+
export declare const MICROPUB_MEDIA: DataFileDeclaration;
|
|
70
|
+
export declare const DATABASE: DataFileDeclaration;
|
|
71
|
+
export declare const DATABASE_LOG: DataFileDeclaration;
|
|
72
|
+
export declare const IMAGES: DataFileDeclaration;
|
|
73
|
+
export declare const AVATARS: DataFileDeclaration;
|
|
74
|
+
export declare const QUEUE: DataFileDeclaration;
|
|
75
|
+
export declare const QUEUE_LOG: DataFileDeclaration;
|
|
76
|
+
export declare const CORE_DATA_FILES: readonly DataFileDeclaration[];
|
|
77
|
+
export declare const WATCH_PROBE: DataFileDeclaration;
|
|
78
|
+
export declare const CONTENT_SCRATCH_FILES: readonly DataFileDeclaration[];
|
|
79
|
+
export interface ClassifiedFile {
|
|
80
|
+
/** Under the folder walked, `/`-separated. */
|
|
81
|
+
readonly relative: string;
|
|
82
|
+
readonly absolute: string;
|
|
83
|
+
/** The declaration {@link dataFileFor} gives it, or `undefined` when none covers it. */
|
|
84
|
+
readonly declaration: DataFileDeclaration | undefined;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* The folder `fsck` keeps at the root of an ext filesystem, owned by root. A
|
|
88
|
+
* `content/` or `data/` that is a mount point holds one. It is the
|
|
89
|
+
* filesystem's, not the site's: nothing walks it, exports it or moves it.
|
|
90
|
+
*/
|
|
91
|
+
export declare const LOST_AND_FOUND = "lost+found";
|
|
92
|
+
export declare const OTHER_ENTRY_KINDS: readonly ['a symbolic link', 'a socket', 'a FIFO', 'a device'];
|
|
93
|
+
export type OtherEntryKind = (typeof OTHER_ENTRY_KINDS)[number];
|
|
94
|
+
export interface ClassifiedOther extends ClassifiedFile {
|
|
95
|
+
readonly kind: OtherEntryKind;
|
|
96
|
+
}
|
|
97
|
+
export interface ClassifiedEntries {
|
|
98
|
+
readonly files: ClassifiedFile[];
|
|
99
|
+
readonly others: ClassifiedOther[];
|
|
100
|
+
}
|
|
101
|
+
export declare function classifyEntries(dir: string, declarations: readonly DataFileDeclaration[]): ClassifiedEntries;
|
|
102
|
+
/** Every regular file under `dir`, sorted by its relative path, with the declaration that covers it. */
|
|
103
|
+
export declare function classifyFiles(dir: string, declarations: readonly DataFileDeclaration[]): ClassifiedFile[];
|
|
104
|
+
//# sourceMappingURL=data-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-files.d.ts","sourceRoot":"","sources":["../../src/files/data-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
import { readdirSync } from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { isNotFound } from '../util/files.js';
|
|
4
|
+
const ANY_DEPTH = '**';
|
|
5
|
+
function segmentsOf(pattern) {
|
|
6
|
+
return pattern.split('/');
|
|
7
|
+
}
|
|
8
|
+
function isWildcard(segment) {
|
|
9
|
+
return segment.includes('*');
|
|
10
|
+
}
|
|
11
|
+
function segmentMatches(glob, segment) {
|
|
12
|
+
if (segment === '' || segment === '.' || segment === '..')
|
|
13
|
+
return false;
|
|
14
|
+
const source = glob
|
|
15
|
+
.split('*')
|
|
16
|
+
.map((part) => part.replace(/[.+?^${}()|[\]\\]/g, '\\$&'))
|
|
17
|
+
.join('[^/]*');
|
|
18
|
+
return new RegExp(`^${source}$`).test(segment);
|
|
19
|
+
}
|
|
20
|
+
function segmentsMatch(globs, segments) {
|
|
21
|
+
const [glob, ...restGlobs] = globs;
|
|
22
|
+
if (glob === undefined)
|
|
23
|
+
return segments.length === 0;
|
|
24
|
+
if (glob === ANY_DEPTH) {
|
|
25
|
+
return (segments.some((_, index) => segmentsMatch(restGlobs, segments.slice(index))) ||
|
|
26
|
+
segmentsMatch(restGlobs, []));
|
|
27
|
+
}
|
|
28
|
+
const [segment, ...restSegments] = segments;
|
|
29
|
+
return (segment !== undefined && segmentMatches(glob, segment) && segmentsMatch(restGlobs, restSegments));
|
|
30
|
+
}
|
|
31
|
+
export function dataFileMatches(declaration, relative) {
|
|
32
|
+
return segmentsMatch(segmentsOf(declaration.pattern), segmentsOf(relative));
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The declaration that covers a `/`-separated path, or `undefined` when none
|
|
36
|
+
* does. A scratch declaration wins over any other, wherever it is in the list,
|
|
37
|
+
* so a temporary file inside a kept folder is scratch. Among the rest, the
|
|
38
|
+
* first that covers it wins.
|
|
39
|
+
*/
|
|
40
|
+
export function dataFileFor(declarations, relative) {
|
|
41
|
+
const covering = declarations.filter((declaration) => dataFileMatches(declaration, relative));
|
|
42
|
+
return covering.find((declaration) => declaration.dataClass.kind === 'scratch') ?? covering[0];
|
|
43
|
+
}
|
|
44
|
+
export function writtenPrivately(declaration) {
|
|
45
|
+
return declaration.dataClass.kind === 'credential';
|
|
46
|
+
}
|
|
47
|
+
export function declareDataFile(declaration) {
|
|
48
|
+
const segments = segmentsOf(declaration.pattern);
|
|
49
|
+
if (segments.some((segment) => segment === '' || segment === '.' || segment === '..')) {
|
|
50
|
+
throw new Error(`${declaration.pattern} is not a relative pattern of named segments.`);
|
|
51
|
+
}
|
|
52
|
+
return Object.freeze({ ...declaration });
|
|
53
|
+
}
|
|
54
|
+
export function dataPath(dataDir, file, ...parts) {
|
|
55
|
+
const refuse = () => {
|
|
56
|
+
throw new Error(`${parts.join('/')} is not a path ${file.pattern} declares under data/.`);
|
|
57
|
+
};
|
|
58
|
+
const built = [];
|
|
59
|
+
let next = 0;
|
|
60
|
+
for (const glob of segmentsOf(file.pattern)) {
|
|
61
|
+
if (!isWildcard(glob)) {
|
|
62
|
+
built.push(glob);
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
const taken = glob === ANY_DEPTH ? parts.slice(next) : parts.slice(next, next + 1);
|
|
66
|
+
if (taken.length === 0)
|
|
67
|
+
refuse();
|
|
68
|
+
if (!taken.every((part) => segmentMatches(glob === ANY_DEPTH ? '*' : glob, part)))
|
|
69
|
+
refuse();
|
|
70
|
+
built.push(...taken);
|
|
71
|
+
next += taken.length;
|
|
72
|
+
}
|
|
73
|
+
if (next !== parts.length)
|
|
74
|
+
refuse();
|
|
75
|
+
return path.join(dataDir, ...built);
|
|
76
|
+
}
|
|
77
|
+
/** The folder that holds what `folder` declares: `keys/` for `keys/*.jwk`, `images/` for `images/**`. */
|
|
78
|
+
export function dataFolder(dataDir, folder, ...parts) {
|
|
79
|
+
const segments = segmentsOf(folder.pattern);
|
|
80
|
+
if (segments.length < 2)
|
|
81
|
+
throw new Error(`${folder.pattern} declares a file, not a folder.`);
|
|
82
|
+
return dataPath(dataDir, { ...folder, pattern: segments.slice(0, -1).join('/') }, ...parts);
|
|
83
|
+
}
|
|
84
|
+
const KEPT = { kind: 'kept' };
|
|
85
|
+
const REBUILDABLE = { kind: 'rebuildable' };
|
|
86
|
+
const PENDING = { kind: 'pending' };
|
|
87
|
+
const SCRATCH = { kind: 'scratch' };
|
|
88
|
+
export const TEMPORARY_FILES = declareDataFile({
|
|
89
|
+
pattern: '**/*.*-*.tmp',
|
|
90
|
+
dataClass: SCRATCH,
|
|
91
|
+
lost: 'Nothing. An atomic write that crashed can leave one behind.',
|
|
92
|
+
});
|
|
93
|
+
export const LOCK_FILES = declareDataFile({
|
|
94
|
+
pattern: '**/*.lock',
|
|
95
|
+
dataClass: SCRATCH,
|
|
96
|
+
lost: 'Nothing. A stale lock is taken over.',
|
|
97
|
+
});
|
|
98
|
+
export const LOCK_TAKEOVER_FILES = declareDataFile({
|
|
99
|
+
pattern: '**/*.lock.takeover',
|
|
100
|
+
dataClass: SCRATCH,
|
|
101
|
+
lost: 'Nothing. A waiter holds it while it removes a stale lock.',
|
|
102
|
+
});
|
|
103
|
+
export const IMPORT_MARKER = declareDataFile({
|
|
104
|
+
pattern: '.geekity-import',
|
|
105
|
+
dataClass: SCRATCH,
|
|
106
|
+
lost: 'Nothing. geekity import leaves it until an import is finished, so a second run knows the folder is its own.',
|
|
107
|
+
});
|
|
108
|
+
export const IMPORT_STAGING = declareDataFile({
|
|
109
|
+
pattern: '.geekity-importing/**',
|
|
110
|
+
dataClass: SCRATCH,
|
|
111
|
+
lost: 'Nothing. geekity import unpacks an archive here and moves it into place; a stopped import leaves it for the next run to remove.',
|
|
112
|
+
});
|
|
113
|
+
export const IMPORT_ASIDE = declareDataFile({
|
|
114
|
+
pattern: '.geekity-before-import-*/**',
|
|
115
|
+
dataClass: SCRATCH,
|
|
116
|
+
lost: 'What the folder held before geekity import --replace. Delete it once the imported site is checked.',
|
|
117
|
+
});
|
|
118
|
+
export const EXPORTS = declareDataFile({
|
|
119
|
+
pattern: 'exports/**',
|
|
120
|
+
dataClass: SCRATCH,
|
|
121
|
+
lost: 'Nothing. A site export written for the admin to download, made again on request.',
|
|
122
|
+
});
|
|
123
|
+
export const ACTOR_KEYS = declareDataFile({
|
|
124
|
+
pattern: 'keys/*.jwk',
|
|
125
|
+
dataClass: KEPT,
|
|
126
|
+
lost: "The actors' signing keys: remote servers reject signatures until they fetch the actor again, and proofs on objects already sent stop verifying.",
|
|
127
|
+
});
|
|
128
|
+
export const USERS = declareDataFile({
|
|
129
|
+
pattern: 'users.json',
|
|
130
|
+
dataClass: KEPT,
|
|
131
|
+
lost: 'Every account: usernames, which are the actor ids, emails, password hashes and profiles.',
|
|
132
|
+
});
|
|
133
|
+
export const NOTIFICATION_SECRET = declareDataFile({
|
|
134
|
+
pattern: 'notification-secret',
|
|
135
|
+
dataClass: KEPT,
|
|
136
|
+
lost: 'Every moderation and unsubscribe link in mail already sent stops working.',
|
|
137
|
+
});
|
|
138
|
+
export const COMMENT_SALT = declareDataFile({
|
|
139
|
+
pattern: 'comment-salt',
|
|
140
|
+
dataClass: KEPT,
|
|
141
|
+
lost: 'Address hashes written before the loss can no longer be compared with new ones.',
|
|
142
|
+
});
|
|
143
|
+
export const COMMENT_EMAILS = declareDataFile({
|
|
144
|
+
pattern: 'comments/*.json',
|
|
145
|
+
dataClass: KEPT,
|
|
146
|
+
lost: "Commenters' emails, and their reply subscriptions.",
|
|
147
|
+
});
|
|
148
|
+
export const CONTACT_MESSAGES = declareDataFile({
|
|
149
|
+
pattern: 'contact/*.json',
|
|
150
|
+
dataClass: KEPT,
|
|
151
|
+
lost: 'Contact messages.',
|
|
152
|
+
});
|
|
153
|
+
export const COMMENT_OPTOUTS = declareDataFile({
|
|
154
|
+
pattern: 'comment-optouts.json',
|
|
155
|
+
dataClass: KEPT,
|
|
156
|
+
lost: 'The list of people who unsubscribed, so the site would write to them again.',
|
|
157
|
+
});
|
|
158
|
+
export const INDIEAUTH_TOKENS = declareDataFile({
|
|
159
|
+
pattern: 'indieauth-tokens.json',
|
|
160
|
+
dataClass: KEPT,
|
|
161
|
+
lost: 'Every connected IndieAuth or Micropub app has to sign in again.',
|
|
162
|
+
});
|
|
163
|
+
export const LOCATIONS = declareDataFile({
|
|
164
|
+
pattern: 'locations.json',
|
|
165
|
+
dataClass: KEPT,
|
|
166
|
+
lost: 'Where each post was written.',
|
|
167
|
+
});
|
|
168
|
+
export const KEPT_PROPERTIES = declareDataFile({
|
|
169
|
+
pattern: 'kept-properties.json',
|
|
170
|
+
dataClass: KEPT,
|
|
171
|
+
lost: 'Micropub properties the site does not understand, such as an RSVP.',
|
|
172
|
+
});
|
|
173
|
+
export const PLUGIN_CHANGES = declareDataFile({
|
|
174
|
+
pattern: 'plugin-changes.json',
|
|
175
|
+
dataClass: KEPT,
|
|
176
|
+
lost: 'Who added, updated and removed which plugin. Nothing else holds it.',
|
|
177
|
+
});
|
|
178
|
+
export const JOBS = declareDataFile({
|
|
179
|
+
pattern: 'jobs.json',
|
|
180
|
+
dataClass: KEPT,
|
|
181
|
+
lost: 'Queued jobs and the last five results for each job name.',
|
|
182
|
+
});
|
|
183
|
+
export const DEV_MODE_RECORD = declareDataFile({
|
|
184
|
+
pattern: 'dev-mode.jsonl',
|
|
185
|
+
dataClass: KEPT,
|
|
186
|
+
lost: 'The record that proves a migration was silent.',
|
|
187
|
+
});
|
|
188
|
+
export const INDIEAUTH_ACTIVITY = declareDataFile({
|
|
189
|
+
pattern: 'indieauth-activity.json',
|
|
190
|
+
dataClass: REBUILDABLE,
|
|
191
|
+
lost: 'The last IndieAuth and Micropub requests, which exist for debugging.',
|
|
192
|
+
});
|
|
193
|
+
export const NOTIFICATION_DIGESTS = declareDataFile({
|
|
194
|
+
pattern: 'notification-digests.json',
|
|
195
|
+
dataClass: REBUILDABLE,
|
|
196
|
+
lost: 'When each user last had a digest, so one digest may come a window early.',
|
|
197
|
+
});
|
|
198
|
+
export const MICROPUB_MEDIA = declareDataFile({
|
|
199
|
+
pattern: 'micropub-media.json',
|
|
200
|
+
dataClass: REBUILDABLE,
|
|
201
|
+
lost: "Each user's last upload for Micropub's q=last, empty until the next upload.",
|
|
202
|
+
});
|
|
203
|
+
export const DATABASE = declareDataFile({
|
|
204
|
+
pattern: 'geekity.db',
|
|
205
|
+
dataClass: REBUILDABLE,
|
|
206
|
+
lost: 'The index, rebuilt from files, and sessions, delivery outcomes and other caches, which start empty.',
|
|
207
|
+
});
|
|
208
|
+
export const DATABASE_LOG = declareDataFile({
|
|
209
|
+
pattern: 'geekity.db-*',
|
|
210
|
+
dataClass: REBUILDABLE,
|
|
211
|
+
lost: "The database's write-ahead log, which goes with the database.",
|
|
212
|
+
});
|
|
213
|
+
export const IMAGES = declareDataFile({
|
|
214
|
+
pattern: 'images/**',
|
|
215
|
+
dataClass: REBUILDABLE,
|
|
216
|
+
lost: 'Image variants and icons, derived again from content/uploads/ when a page asks for them.',
|
|
217
|
+
});
|
|
218
|
+
export const AVATARS = declareDataFile({
|
|
219
|
+
pattern: 'avatars/*',
|
|
220
|
+
dataClass: REBUILDABLE,
|
|
221
|
+
lost: 'Cached avatars, fetched again by the avatar sweep.',
|
|
222
|
+
});
|
|
223
|
+
export const QUEUE = declareDataFile({
|
|
224
|
+
pattern: 'queue.sqlite',
|
|
225
|
+
dataClass: PENDING,
|
|
226
|
+
lost: "Queued deliveries, inbox work and Fedify's scheduled retries.",
|
|
227
|
+
});
|
|
228
|
+
export const QUEUE_LOG = declareDataFile({
|
|
229
|
+
pattern: 'queue.sqlite-*',
|
|
230
|
+
dataClass: PENDING,
|
|
231
|
+
lost: "The queue's write-ahead log, which goes with the queue.",
|
|
232
|
+
});
|
|
233
|
+
export const CORE_DATA_FILES = [
|
|
234
|
+
TEMPORARY_FILES,
|
|
235
|
+
LOCK_FILES,
|
|
236
|
+
LOCK_TAKEOVER_FILES,
|
|
237
|
+
IMPORT_MARKER,
|
|
238
|
+
IMPORT_STAGING,
|
|
239
|
+
IMPORT_ASIDE,
|
|
240
|
+
EXPORTS,
|
|
241
|
+
ACTOR_KEYS,
|
|
242
|
+
USERS,
|
|
243
|
+
NOTIFICATION_SECRET,
|
|
244
|
+
COMMENT_SALT,
|
|
245
|
+
COMMENT_EMAILS,
|
|
246
|
+
CONTACT_MESSAGES,
|
|
247
|
+
COMMENT_OPTOUTS,
|
|
248
|
+
INDIEAUTH_TOKENS,
|
|
249
|
+
LOCATIONS,
|
|
250
|
+
KEPT_PROPERTIES,
|
|
251
|
+
PLUGIN_CHANGES,
|
|
252
|
+
JOBS,
|
|
253
|
+
DEV_MODE_RECORD,
|
|
254
|
+
INDIEAUTH_ACTIVITY,
|
|
255
|
+
NOTIFICATION_DIGESTS,
|
|
256
|
+
MICROPUB_MEDIA,
|
|
257
|
+
DATABASE,
|
|
258
|
+
DATABASE_LOG,
|
|
259
|
+
IMAGES,
|
|
260
|
+
AVATARS,
|
|
261
|
+
QUEUE,
|
|
262
|
+
QUEUE_LOG,
|
|
263
|
+
];
|
|
264
|
+
export const WATCH_PROBE = declareDataFile({
|
|
265
|
+
pattern: '.geekity-watch-*/**',
|
|
266
|
+
dataClass: SCRATCH,
|
|
267
|
+
lost: 'Nothing. The content watcher makes it and removes it to check that it works.',
|
|
268
|
+
});
|
|
269
|
+
export const CONTENT_SCRATCH_FILES = [
|
|
270
|
+
TEMPORARY_FILES,
|
|
271
|
+
IMPORT_MARKER,
|
|
272
|
+
IMPORT_STAGING,
|
|
273
|
+
IMPORT_ASIDE,
|
|
274
|
+
WATCH_PROBE,
|
|
275
|
+
];
|
|
276
|
+
/**
|
|
277
|
+
* The folder `fsck` keeps at the root of an ext filesystem, owned by root. A
|
|
278
|
+
* `content/` or `data/` that is a mount point holds one. It is the
|
|
279
|
+
* filesystem's, not the site's: nothing walks it, exports it or moves it.
|
|
280
|
+
*/
|
|
281
|
+
export const LOST_AND_FOUND = 'lost+found';
|
|
282
|
+
export const OTHER_ENTRY_KINDS = ['a symbolic link', 'a socket', 'a FIFO', 'a device'];
|
|
283
|
+
function kindOf(entry) {
|
|
284
|
+
if (entry.isSymbolicLink())
|
|
285
|
+
return 'a symbolic link';
|
|
286
|
+
if (entry.isSocket())
|
|
287
|
+
return 'a socket';
|
|
288
|
+
if (entry.isFIFO())
|
|
289
|
+
return 'a FIFO';
|
|
290
|
+
return 'a device';
|
|
291
|
+
}
|
|
292
|
+
function byRelative(a, b) {
|
|
293
|
+
return a.relative < b.relative ? -1 : a.relative > b.relative ? 1 : 0;
|
|
294
|
+
}
|
|
295
|
+
export function classifyEntries(dir, declarations) {
|
|
296
|
+
const files = [];
|
|
297
|
+
const others = [];
|
|
298
|
+
const walk = (folder) => {
|
|
299
|
+
let entries;
|
|
300
|
+
try {
|
|
301
|
+
entries = readdirSync(folder, { withFileTypes: true });
|
|
302
|
+
}
|
|
303
|
+
catch (error) {
|
|
304
|
+
if (isNotFound(error))
|
|
305
|
+
return;
|
|
306
|
+
throw error;
|
|
307
|
+
}
|
|
308
|
+
for (const entry of entries) {
|
|
309
|
+
const absolute = path.join(folder, entry.name);
|
|
310
|
+
if (entry.isDirectory()) {
|
|
311
|
+
if (folder !== dir || entry.name !== LOST_AND_FOUND)
|
|
312
|
+
walk(absolute);
|
|
313
|
+
continue;
|
|
314
|
+
}
|
|
315
|
+
const relative = path.relative(dir, absolute).split(path.sep).join('/');
|
|
316
|
+
const classified = { relative, absolute, declaration: dataFileFor(declarations, relative) };
|
|
317
|
+
if (entry.isFile())
|
|
318
|
+
files.push(classified);
|
|
319
|
+
else
|
|
320
|
+
others.push({ ...classified, kind: kindOf(entry) });
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
walk(dir);
|
|
324
|
+
return { files: files.sort(byRelative), others: others.sort(byRelative) };
|
|
325
|
+
}
|
|
326
|
+
/** Every regular file under `dir`, sorted by its relative path, with the declaration that covers it. */
|
|
327
|
+
export function classifyFiles(dir, declarations) {
|
|
328
|
+
return classifyEntries(dir, declarations).files;
|
|
329
|
+
}
|
|
330
|
+
//# sourceMappingURL=data-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-files.js","sourceRoot":"","sources":["../../src/files/data-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface ExportArchive {
|
|
2
|
+
readonly name: string;
|
|
3
|
+
readonly path: string;
|
|
4
|
+
readonly writtenAt: Date;
|
|
5
|
+
readonly expiresAt: Date;
|
|
6
|
+
}
|
|
7
|
+
export declare function expireExports(dataDir: string, now: Date): Promise<number>;
|
|
8
|
+
export declare function currentExport(dataDir: string, now: Date): Promise<(ExportArchive & {
|
|
9
|
+
readonly size: number;
|
|
10
|
+
}) | undefined>;
|
|
11
|
+
export declare function keepOnlyExport(dataDir: string, keep: string): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=export-archives.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-archives.d.ts","sourceRoot":"","sources":["../../src/files/export-archives.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B;AAkCD,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAS/E;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,IAAI,GACR,OAAO,CAAC,CAAC,aAAa,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,CAAC,CAUlE;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjF"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { readdir, rm, stat } from 'node:fs/promises';
|
|
2
|
+
import { isNotFound } from '../util/files.js';
|
|
3
|
+
import { EXPORTS, dataFolder, dataPath } from './data-files.js';
|
|
4
|
+
const EXPORT_LIFETIME_MS = 24 * 60 * 60 * 1000;
|
|
5
|
+
const ARCHIVE = /^geekity-.+-(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})Z\.tar\.gz$/;
|
|
6
|
+
function archiveOf(dataDir, name) {
|
|
7
|
+
const match = ARCHIVE.exec(name);
|
|
8
|
+
if (match === null)
|
|
9
|
+
return undefined;
|
|
10
|
+
const [, year, month, day, hour, minute, second] = match;
|
|
11
|
+
const writtenAt = new Date(`${year}-${month}-${day}T${hour}:${minute}:${second}Z`);
|
|
12
|
+
return {
|
|
13
|
+
name,
|
|
14
|
+
path: dataPath(dataDir, EXPORTS, name),
|
|
15
|
+
writtenAt,
|
|
16
|
+
expiresAt: new Date(writtenAt.getTime() + EXPORT_LIFETIME_MS),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
async function namesIn(dataDir) {
|
|
20
|
+
try {
|
|
21
|
+
return await readdir(dataFolder(dataDir, EXPORTS));
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
if (isNotFound(error))
|
|
25
|
+
return [];
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
async function archives(dataDir) {
|
|
30
|
+
return (await namesIn(dataDir))
|
|
31
|
+
.flatMap((name) => archiveOf(dataDir, name) ?? [])
|
|
32
|
+
.sort((a, b) => b.writtenAt.getTime() - a.writtenAt.getTime());
|
|
33
|
+
}
|
|
34
|
+
function expired(archive, now) {
|
|
35
|
+
return archive.expiresAt.getTime() <= now.getTime();
|
|
36
|
+
}
|
|
37
|
+
export async function expireExports(dataDir, now) {
|
|
38
|
+
let deleted = 0;
|
|
39
|
+
for (const archive of await archives(dataDir)) {
|
|
40
|
+
if (expired(archive, now)) {
|
|
41
|
+
await rm(archive.path, { force: true });
|
|
42
|
+
deleted += 1;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return deleted;
|
|
46
|
+
}
|
|
47
|
+
export async function currentExport(dataDir, now) {
|
|
48
|
+
await expireExports(dataDir, now);
|
|
49
|
+
const [newest] = await archives(dataDir);
|
|
50
|
+
if (newest === undefined)
|
|
51
|
+
return undefined;
|
|
52
|
+
try {
|
|
53
|
+
return { ...newest, size: (await stat(newest.path)).size };
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
if (isNotFound(error))
|
|
57
|
+
return undefined;
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export async function keepOnlyExport(dataDir, keep) {
|
|
62
|
+
for (const name of await namesIn(dataDir)) {
|
|
63
|
+
if (name !== keep)
|
|
64
|
+
await rm(dataPath(dataDir, EXPORTS, name), { recursive: true, force: true });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=export-archives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-archives.js","sourceRoot":"","sources":["../../src/files/export-archives.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-files.d.ts","sourceRoot":"","sources":["../../src/files/static-files.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"static-files.d.ts","sourceRoot":"","sources":["../../src/files/static-files.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKrC,iEAAiE;AACjE,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,KAAK,EAAE,KAAK,CAAC;IACb,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,GAAG,SAAS,CA6BpF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { statSync } from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
+
import { servedType, UPLOAD_MEDIA_TYPES } from './upload-types.js';
|
|
3
4
|
/**
|
|
4
5
|
* Find one file under a list of roots, first root that has it winning.
|
|
5
6
|
*
|
|
@@ -48,41 +49,25 @@ function normalizeAssetPath(relative) {
|
|
|
48
49
|
// A leading slash would make `path.resolve` ignore the theme directory.
|
|
49
50
|
return relative.replace(/^\/+/, '');
|
|
50
51
|
}
|
|
51
|
-
|
|
52
|
-
const CONTENT_TYPES = new Map([
|
|
52
|
+
const THEME_CONTENT_TYPES = new Map([
|
|
53
53
|
['.css', 'text/css; charset=utf-8'],
|
|
54
54
|
['.js', 'text/javascript; charset=utf-8'],
|
|
55
55
|
['.mjs', 'text/javascript; charset=utf-8'],
|
|
56
56
|
['.json', 'application/json; charset=utf-8'],
|
|
57
57
|
['.map', 'application/json; charset=utf-8'],
|
|
58
58
|
['.svg', 'image/svg+xml'],
|
|
59
|
-
['.png', 'image/png'],
|
|
60
|
-
['.jpg', 'image/jpeg'],
|
|
61
|
-
['.jpeg', 'image/jpeg'],
|
|
62
|
-
['.gif', 'image/gif'],
|
|
63
|
-
['.webp', 'image/webp'],
|
|
64
|
-
['.avif', 'image/avif'],
|
|
65
59
|
['.ico', 'image/x-icon'],
|
|
66
60
|
['.woff', 'font/woff'],
|
|
67
61
|
['.woff2', 'font/woff2'],
|
|
68
62
|
['.ttf', 'font/ttf'],
|
|
69
63
|
['.otf', 'font/otf'],
|
|
70
|
-
['.txt', 'text/plain; charset=utf-8'],
|
|
71
|
-
// A `<track>` is ignored unless its file is served as `text/vtt`.
|
|
72
|
-
['.vtt', 'text/vtt; charset=utf-8'],
|
|
73
|
-
['.srt', 'application/x-subrip; charset=utf-8'],
|
|
74
|
-
['.mp3', 'audio/mpeg'],
|
|
75
|
-
['.m4a', 'audio/mp4'],
|
|
76
|
-
['.aac', 'audio/aac'],
|
|
77
|
-
['.ogg', 'audio/ogg'],
|
|
78
|
-
['.oga', 'audio/ogg'],
|
|
79
|
-
['.opus', 'audio/ogg'],
|
|
80
|
-
['.mp4', 'video/mp4'],
|
|
81
|
-
['.m4v', 'video/mp4'],
|
|
82
|
-
['.webm', 'video/webm'],
|
|
83
64
|
['.webmanifest', 'application/manifest+json'],
|
|
84
65
|
]);
|
|
85
66
|
function contentTypeFor(file) {
|
|
86
|
-
|
|
67
|
+
const extension = path.extname(file).toLowerCase();
|
|
68
|
+
const upload = UPLOAD_MEDIA_TYPES.get(extension);
|
|
69
|
+
if (upload !== undefined)
|
|
70
|
+
return servedType(upload);
|
|
71
|
+
return THEME_CONTENT_TYPES.get(extension) ?? 'application/octet-stream';
|
|
87
72
|
}
|
|
88
73
|
//# sourceMappingURL=static-files.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-files.js","sourceRoot":"","sources":["../../src/files/static-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"static-files.js","sourceRoot":"","sources":["../../src/files/static-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAcnE;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,KAAe;IACzD,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE/C,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAE5C,wEAAwE;QACxE,0CAA0C;QAC1C,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QAEjE,IAAI,KAAY,CAAC;QACjB,IAAI,CAAC;YACH,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,SAAS;QAE9B,OAAO;YACL,IAAI;YACJ,KAAK;YACL,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC;YACjC,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG;SAC/E,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9C,wEAAwE;IACxE,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,mBAAmB,GAAgC,IAAI,GAAG,CAAC;IAC/D,CAAC,MAAM,EAAE,yBAAyB,CAAC;IACnC,CAAC,KAAK,EAAE,gCAAgC,CAAC;IACzC,CAAC,MAAM,EAAE,gCAAgC,CAAC;IAC1C,CAAC,OAAO,EAAE,iCAAiC,CAAC;IAC5C,CAAC,MAAM,EAAE,iCAAiC,CAAC;IAC3C,CAAC,MAAM,EAAE,eAAe,CAAC;IACzB,CAAC,MAAM,EAAE,cAAc,CAAC;IACxB,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,QAAQ,EAAE,YAAY,CAAC;IACxB,CAAC,MAAM,EAAE,UAAU,CAAC;IACpB,CAAC,MAAM,EAAE,UAAU,CAAC;IACpB,CAAC,cAAc,EAAE,2BAA2B,CAAC;CAC9C,CAAC,CAAC;AAEH,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;IACpD,OAAO,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,0BAA0B,CAAC;AAC1E,CAAC"}
|