@geekity/cms 0.3.0 → 0.5.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 +2217 -214
- package/admin/components/fields.njk +165 -0
- package/admin/layouts/base.njk +1 -1
- package/admin/layouts/settings-page.njk +26 -0
- package/admin/layouts/shell.njk +17 -3
- package/admin/pages/account/forgot.njk +47 -0
- package/admin/pages/account/login.njk +26 -0
- package/admin/pages/account/reset.njk +38 -0
- package/admin/pages/account/setup.njk +28 -0
- package/admin/pages/appearance/themes.njk +69 -0
- package/admin/pages/comments/all.njk +133 -0
- package/admin/{layouts/dashboard.njk → pages/dashboard/home.njk} +8 -15
- package/admin/{layouts/document-conflict.njk → pages/documents/conflict.njk} +1 -0
- package/admin/{layouts/document-editor.njk → pages/documents/editor.njk} +75 -59
- package/admin/{layouts/document-list.njk → pages/documents/list.njk} +19 -2
- package/admin/pages/documents/taxonomy.njk +95 -0
- package/admin/pages/federation/followers.njk +238 -0
- package/admin/pages/federation/settings.njk +77 -0
- package/admin/pages/media/library.njk +160 -0
- package/admin/pages/messages/all.njk +110 -0
- package/admin/pages/navigation/menus.njk +129 -0
- package/admin/{layouts → pages}/placeholder.njk +5 -1
- package/admin/pages/settings/discussion.njk +99 -0
- package/admin/pages/settings/email.njk +203 -0
- package/admin/pages/settings/general.njk +29 -0
- package/admin/pages/settings/permalinks.njk +50 -0
- package/admin/pages/settings/reading.njk +64 -0
- package/admin/pages/tools/content-index.njk +89 -0
- package/admin/pages/users/edit.njk +239 -0
- package/admin/pages/users/list.njk +51 -0
- package/admin/pages/users/new.njk +41 -0
- package/admin/static/admin.css +558 -3
- package/admin/static/copy.js +52 -0
- package/admin/static/editor.js +16 -16
- package/admin/static/slug.js +61 -0
- package/dist/access-log.d.ts +44 -0
- package/dist/access-log.d.ts.map +1 -0
- package/dist/access-log.js +71 -0
- package/dist/access-log.js.map +1 -0
- package/dist/admin/accounts.d.ts +413 -0
- package/dist/admin/accounts.d.ts.map +1 -0
- package/dist/admin/accounts.js +680 -0
- package/dist/admin/accounts.js.map +1 -0
- package/dist/admin/appearance.d.ts +80 -0
- package/dist/admin/appearance.d.ts.map +1 -0
- package/dist/admin/appearance.js +136 -0
- package/dist/admin/appearance.js.map +1 -0
- package/dist/admin/comments.d.ts +90 -0
- package/dist/admin/comments.d.ts.map +1 -0
- package/dist/admin/comments.js +244 -0
- package/dist/admin/comments.js.map +1 -0
- package/dist/admin/credentials.d.ts +26 -2
- package/dist/admin/credentials.d.ts.map +1 -1
- package/dist/admin/credentials.js +35 -2
- package/dist/admin/credentials.js.map +1 -1
- package/dist/admin/documents.d.ts +117 -10
- package/dist/admin/documents.d.ts.map +1 -1
- package/dist/admin/documents.js +328 -41
- package/dist/admin/documents.js.map +1 -1
- package/dist/admin/federation.d.ts +161 -50
- package/dist/admin/federation.d.ts.map +1 -1
- package/dist/admin/federation.js +235 -93
- package/dist/admin/federation.js.map +1 -1
- package/dist/admin/formatting.d.ts +20 -0
- package/dist/admin/formatting.d.ts.map +1 -0
- package/dist/admin/formatting.js +72 -0
- package/dist/admin/formatting.js.map +1 -0
- package/dist/admin/headers.d.ts +65 -0
- package/dist/admin/headers.d.ts.map +1 -0
- package/dist/admin/headers.js +104 -0
- package/dist/admin/headers.js.map +1 -0
- package/dist/admin/index.d.ts +38 -12
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +25 -7
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/media.d.ts +168 -0
- package/dist/admin/media.d.ts.map +1 -0
- package/dist/admin/media.js +295 -0
- package/dist/admin/media.js.map +1 -0
- package/dist/admin/menu.d.ts +79 -0
- package/dist/admin/menu.d.ts.map +1 -0
- package/dist/admin/menu.js +143 -0
- package/dist/admin/menu.js.map +1 -0
- package/dist/admin/messages.d.ts +80 -0
- package/dist/admin/messages.d.ts.map +1 -0
- package/dist/admin/messages.js +152 -0
- package/dist/admin/messages.js.map +1 -0
- package/dist/admin/navigation.d.ts +155 -0
- package/dist/admin/navigation.d.ts.map +1 -0
- package/dist/admin/navigation.js +292 -0
- package/dist/admin/navigation.js.map +1 -0
- package/dist/admin/preview.d.ts.map +1 -1
- package/dist/admin/preview.js +31 -7
- package/dist/admin/preview.js.map +1 -1
- package/dist/admin/recovery.d.ts +92 -0
- package/dist/admin/recovery.d.ts.map +1 -0
- package/dist/admin/recovery.js +229 -0
- package/dist/admin/recovery.js.map +1 -0
- package/dist/admin/routes.d.ts +0 -20
- package/dist/admin/routes.d.ts.map +1 -1
- package/dist/admin/routes.js +164 -105
- package/dist/admin/routes.js.map +1 -1
- package/dist/admin/session.d.ts +17 -3
- package/dist/admin/session.d.ts.map +1 -1
- package/dist/admin/session.js +19 -5
- package/dist/admin/session.js.map +1 -1
- package/dist/admin/settings-discussion.d.ts +37 -0
- package/dist/admin/settings-discussion.d.ts.map +1 -0
- package/dist/admin/settings-discussion.js +117 -0
- package/dist/admin/settings-discussion.js.map +1 -0
- package/dist/admin/settings-email.d.ts +54 -0
- package/dist/admin/settings-email.d.ts.map +1 -0
- package/dist/admin/settings-email.js +189 -0
- package/dist/admin/settings-email.js.map +1 -0
- package/dist/admin/settings-federation.d.ts +48 -0
- package/dist/admin/settings-federation.d.ts.map +1 -0
- package/dist/admin/settings-federation.js +123 -0
- package/dist/admin/settings-federation.js.map +1 -0
- package/dist/admin/settings-general.d.ts +12 -0
- package/dist/admin/settings-general.d.ts.map +1 -0
- package/dist/admin/settings-general.js +48 -0
- package/dist/admin/settings-general.js.map +1 -0
- package/dist/admin/settings-page.d.ts +119 -0
- package/dist/admin/settings-page.d.ts.map +1 -0
- package/dist/admin/settings-page.js +132 -0
- package/dist/admin/settings-page.js.map +1 -0
- package/dist/admin/settings-pages.d.ts +30 -0
- package/dist/admin/settings-pages.d.ts.map +1 -0
- package/dist/admin/settings-pages.js +43 -0
- package/dist/admin/settings-pages.js.map +1 -0
- package/dist/admin/settings-permalinks.d.ts +16 -0
- package/dist/admin/settings-permalinks.d.ts.map +1 -0
- package/dist/admin/settings-permalinks.js +32 -0
- package/dist/admin/settings-permalinks.js.map +1 -0
- package/dist/admin/settings-reading.d.ts +34 -0
- package/dist/admin/settings-reading.d.ts.map +1 -0
- package/dist/admin/settings-reading.js +49 -0
- package/dist/admin/settings-reading.js.map +1 -0
- package/dist/admin/settings.d.ts +339 -96
- package/dist/admin/settings.d.ts.map +1 -1
- package/dist/admin/settings.js +600 -308
- package/dist/admin/settings.js.map +1 -1
- package/dist/admin/store.d.ts +606 -152
- package/dist/admin/store.d.ts.map +1 -1
- package/dist/admin/store.js +863 -268
- package/dist/admin/store.js.map +1 -1
- package/dist/admin/taxonomy.d.ts +114 -0
- package/dist/admin/taxonomy.d.ts.map +1 -0
- package/dist/admin/taxonomy.js +289 -0
- package/dist/admin/taxonomy.js.map +1 -0
- package/dist/admin/templates.d.ts +46 -14
- package/dist/admin/templates.d.ts.map +1 -1
- package/dist/admin/templates.js +46 -14
- package/dist/admin/templates.js.map +1 -1
- package/dist/admin/throttle.d.ts +84 -0
- package/dist/admin/throttle.d.ts.map +1 -0
- package/dist/admin/throttle.js +143 -0
- package/dist/admin/throttle.js.map +1 -0
- package/dist/admin/tools.d.ts +111 -0
- package/dist/admin/tools.d.ts.map +1 -0
- package/dist/admin/tools.js +182 -0
- package/dist/admin/tools.js.map +1 -0
- package/dist/admin/uploads.d.ts +28 -2
- package/dist/admin/uploads.d.ts.map +1 -1
- package/dist/admin/uploads.js +43 -4
- package/dist/admin/uploads.js.map +1 -1
- package/dist/admin/users.d.ts +100 -13
- package/dist/admin/users.d.ts.map +1 -1
- package/dist/admin/users.js +412 -39
- package/dist/admin/users.js.map +1 -1
- package/dist/cache.d.ts +141 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +207 -0
- package/dist/cache.js.map +1 -0
- package/dist/cli.d.ts +14 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +429 -21
- package/dist/cli.js.map +1 -1
- package/dist/comments/akismet.d.ts +130 -0
- package/dist/comments/akismet.d.ts.map +1 -0
- package/dist/comments/akismet.js +274 -0
- package/dist/comments/akismet.js.map +1 -0
- package/dist/comments/conversation.d.ts +29 -0
- package/dist/comments/conversation.d.ts.map +1 -0
- package/dist/comments/conversation.js +60 -0
- package/dist/comments/conversation.js.map +1 -0
- package/dist/comments/form.d.ts +123 -0
- package/dist/comments/form.d.ts.map +1 -0
- package/dist/comments/form.js +79 -0
- package/dist/comments/form.js.map +1 -0
- package/dist/comments/index.d.ts +16 -0
- package/dist/comments/index.d.ts.map +1 -0
- package/dist/comments/index.js +10 -0
- package/dist/comments/index.js.map +1 -0
- package/dist/comments/markdown.d.ts +8 -0
- package/dist/comments/markdown.d.ts.map +1 -0
- package/dist/comments/markdown.js +85 -0
- package/dist/comments/markdown.js.map +1 -0
- package/dist/comments/moderate.d.ts +71 -0
- package/dist/comments/moderate.d.ts.map +1 -0
- package/dist/comments/moderate.js +88 -0
- package/dist/comments/moderate.js.map +1 -0
- package/dist/comments/policy.d.ts +57 -0
- package/dist/comments/policy.d.ts.map +1 -0
- package/dist/comments/policy.js +80 -0
- package/dist/comments/policy.js.map +1 -0
- package/dist/comments/records.d.ts +266 -0
- package/dist/comments/records.d.ts.map +1 -0
- package/dist/comments/records.js +487 -0
- package/dist/comments/records.js.map +1 -0
- package/dist/comments/routes.d.ts +60 -0
- package/dist/comments/routes.d.ts.map +1 -0
- package/dist/comments/routes.js +212 -0
- package/dist/comments/routes.js.map +1 -0
- package/dist/comments/submission.d.ts +297 -0
- package/dist/comments/submission.d.ts.map +1 -0
- package/dist/comments/submission.js +280 -0
- package/dist/comments/submission.js.map +1 -0
- package/dist/comments/viewer.d.ts +21 -0
- package/dist/comments/viewer.d.ts.map +1 -0
- package/dist/comments/viewer.js +45 -0
- package/dist/comments/viewer.js.map +1 -0
- package/dist/config.d.ts +225 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +121 -6
- package/dist/config.js.map +1 -1
- package/dist/contact/delivery.d.ts +60 -0
- package/dist/contact/delivery.d.ts.map +1 -0
- package/dist/contact/delivery.js +87 -0
- package/dist/contact/delivery.js.map +1 -0
- package/dist/contact/form.d.ts +130 -0
- package/dist/contact/form.d.ts.map +1 -0
- package/dist/contact/form.js +163 -0
- package/dist/contact/form.js.map +1 -0
- package/dist/contact/index.d.ts +17 -0
- package/dist/contact/index.d.ts.map +1 -0
- package/dist/contact/index.js +13 -0
- package/dist/contact/index.js.map +1 -0
- package/dist/contact/records.d.ts +124 -0
- package/dist/contact/records.d.ts.map +1 -0
- package/dist/contact/records.js +218 -0
- package/dist/contact/records.js.map +1 -0
- package/dist/contact/routes.d.ts +17 -0
- package/dist/contact/routes.d.ts.map +1 -0
- package/dist/contact/routes.js +127 -0
- package/dist/contact/routes.js.map +1 -0
- package/dist/contact/submission.d.ts +103 -0
- package/dist/contact/submission.d.ts.map +1 -0
- package/dist/contact/submission.js +166 -0
- package/dist/contact/submission.js.map +1 -0
- package/dist/content/document.d.ts +7 -2
- package/dist/content/document.d.ts.map +1 -1
- package/dist/content/document.js +1 -0
- package/dist/content/document.js.map +1 -1
- package/dist/content/index.d.ts +7 -2
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/index.js +4 -1
- package/dist/content/index.js.map +1 -1
- package/dist/content/markdown.d.ts.map +1 -1
- package/dist/content/markdown.js +24 -2
- package/dist/content/markdown.js.map +1 -1
- package/dist/content/parser.d.ts.map +1 -1
- package/dist/content/parser.js +11 -4
- package/dist/content/parser.js.map +1 -1
- package/dist/content/save.d.ts +5 -0
- package/dist/content/save.d.ts.map +1 -1
- package/dist/content/save.js +44 -1
- package/dist/content/save.js.map +1 -1
- package/dist/content/schedule.d.ts +125 -0
- package/dist/content/schedule.d.ts.map +1 -0
- package/dist/content/schedule.js +207 -0
- package/dist/content/schedule.js.map +1 -0
- package/dist/content/search.d.ts +64 -0
- package/dist/content/search.d.ts.map +1 -0
- package/dist/content/search.js +136 -0
- package/dist/content/search.js.map +1 -0
- package/dist/content/store.d.ts +220 -7
- package/dist/content/store.d.ts.map +1 -1
- package/dist/content/store.js +392 -67
- package/dist/content/store.js.map +1 -1
- package/dist/content/sync.d.ts +7 -1
- package/dist/content/sync.d.ts.map +1 -1
- package/dist/content/sync.js +18 -10
- package/dist/content/sync.js.map +1 -1
- package/dist/content/time.d.ts +56 -0
- package/dist/content/time.d.ts.map +1 -0
- package/dist/content/time.js +141 -0
- package/dist/content/time.js.map +1 -0
- package/dist/content/writer.d.ts.map +1 -1
- package/dist/content/writer.js +3 -0
- package/dist/content/writer.js.map +1 -1
- package/dist/env.d.ts +70 -5
- package/dist/env.d.ts.map +1 -1
- package/dist/federation/actor.d.ts +95 -41
- package/dist/federation/actor.d.ts.map +1 -1
- package/dist/federation/actor.js +180 -53
- package/dist/federation/actor.js.map +1 -1
- package/dist/federation/article.d.ts +44 -17
- package/dist/federation/article.d.ts.map +1 -1
- package/dist/federation/article.js +98 -46
- package/dist/federation/article.js.map +1 -1
- package/dist/federation/delivery.d.ts +63 -15
- package/dist/federation/delivery.d.ts.map +1 -1
- package/dist/federation/delivery.js +154 -80
- package/dist/federation/delivery.js.map +1 -1
- package/dist/federation/federation.d.ts +22 -17
- package/dist/federation/federation.d.ts.map +1 -1
- package/dist/federation/federation.js +98 -77
- package/dist/federation/federation.js.map +1 -1
- package/dist/federation/followers.d.ts +3 -2
- package/dist/federation/followers.d.ts.map +1 -1
- package/dist/federation/followers.js +6 -5
- package/dist/federation/followers.js.map +1 -1
- package/dist/federation/import-wordpress.d.ts +128 -0
- package/dist/federation/import-wordpress.d.ts.map +1 -0
- package/dist/federation/import-wordpress.js +426 -0
- package/dist/federation/import-wordpress.js.map +1 -0
- package/dist/federation/inbox.d.ts +36 -13
- package/dist/federation/inbox.d.ts.map +1 -1
- package/dist/federation/inbox.js +120 -49
- package/dist/federation/inbox.js.map +1 -1
- package/dist/federation/index.d.ts +22 -10
- package/dist/federation/index.d.ts.map +1 -1
- package/dist/federation/index.js +13 -8
- package/dist/federation/index.js.map +1 -1
- package/dist/federation/keys.d.ts +98 -20
- package/dist/federation/keys.d.ts.map +1 -1
- package/dist/federation/keys.js +269 -39
- package/dist/federation/keys.js.map +1 -1
- package/dist/federation/mount.d.ts +46 -10
- package/dist/federation/mount.d.ts.map +1 -1
- package/dist/federation/mount.js +300 -28
- package/dist/federation/mount.js.map +1 -1
- package/dist/federation/paths.d.ts +23 -35
- package/dist/federation/paths.d.ts.map +1 -1
- package/dist/federation/paths.js +26 -39
- package/dist/federation/paths.js.map +1 -1
- package/dist/federation/records.d.ts +223 -0
- package/dist/federation/records.d.ts.map +1 -0
- package/dist/federation/records.js +506 -0
- package/dist/federation/records.js.map +1 -0
- package/dist/federation/relays.d.ts +114 -0
- package/dist/federation/relays.d.ts.map +1 -0
- package/dist/federation/relays.js +290 -0
- package/dist/federation/relays.js.map +1 -0
- package/dist/federation/replies.d.ts +80 -0
- package/dist/federation/replies.d.ts.map +1 -0
- package/dist/federation/replies.js +166 -0
- package/dist/federation/replies.js.map +1 -0
- package/dist/federation/wordpress.d.ts +131 -0
- package/dist/federation/wordpress.d.ts.map +1 -0
- package/dist/federation/wordpress.js +341 -0
- package/dist/federation/wordpress.js.map +1 -0
- package/dist/files/atomic.d.ts +103 -0
- package/dist/files/atomic.d.ts.map +1 -0
- package/dist/files/atomic.js +150 -0
- package/dist/files/atomic.js.map +1 -0
- package/dist/files/index.d.ts +3 -0
- package/dist/files/index.d.ts.map +1 -0
- package/dist/files/index.js +2 -0
- package/dist/files/index.js.map +1 -0
- package/dist/forms/protection.d.ts +85 -0
- package/dist/forms/protection.d.ts.map +1 -0
- package/dist/forms/protection.js +116 -0
- package/dist/forms/protection.js.map +1 -0
- package/dist/images/icons.d.ts +59 -0
- package/dist/images/icons.d.ts.map +1 -0
- package/dist/images/icons.js +131 -0
- package/dist/images/icons.js.map +1 -0
- package/dist/images/index.d.ts +7 -0
- package/dist/images/index.d.ts.map +1 -0
- package/dist/images/index.js +4 -0
- package/dist/images/index.js.map +1 -0
- package/dist/images/markup.d.ts +47 -0
- package/dist/images/markup.d.ts.map +1 -0
- package/dist/images/markup.js +175 -0
- package/dist/images/markup.js.map +1 -0
- package/dist/images/paths.d.ts +34 -0
- package/dist/images/paths.d.ts.map +1 -0
- package/dist/images/paths.js +41 -0
- package/dist/images/paths.js.map +1 -0
- package/dist/images/variants.d.ts +104 -0
- package/dist/images/variants.d.ts.map +1 -0
- package/dist/images/variants.js +320 -0
- package/dist/images/variants.js.map +1 -0
- package/dist/index.d.ts +123 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +344 -25
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +18 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +34 -3
- package/dist/init.js.map +1 -1
- package/dist/mail/brevo.d.ts +35 -0
- package/dist/mail/brevo.d.ts.map +1 -0
- package/dist/mail/brevo.js +85 -0
- package/dist/mail/brevo.js.map +1 -0
- package/dist/mail/credentials.d.ts +62 -0
- package/dist/mail/credentials.d.ts.map +1 -0
- package/dist/mail/credentials.js +86 -0
- package/dist/mail/credentials.js.map +1 -0
- package/dist/mail/index.d.ts +15 -0
- package/dist/mail/index.d.ts.map +1 -0
- package/dist/mail/index.js +8 -0
- package/dist/mail/index.js.map +1 -0
- package/dist/mail/memory.d.ts +35 -0
- package/dist/mail/memory.d.ts.map +1 -0
- package/dist/mail/memory.js +29 -0
- package/dist/mail/memory.js.map +1 -0
- package/dist/mail/provider.d.ts +80 -0
- package/dist/mail/provider.d.ts.map +1 -0
- package/dist/mail/provider.js +23 -0
- package/dist/mail/provider.js.map +1 -0
- package/dist/mail/service.d.ts +156 -0
- package/dist/mail/service.d.ts.map +1 -0
- package/dist/mail/service.js +265 -0
- package/dist/mail/service.js.map +1 -0
- package/dist/mail/smtp.d.ts +39 -0
- package/dist/mail/smtp.d.ts.map +1 -0
- package/dist/mail/smtp.js +58 -0
- package/dist/mail/smtp.js.map +1 -0
- package/dist/mail/templates.d.ts +91 -0
- package/dist/mail/templates.d.ts.map +1 -0
- package/dist/mail/templates.js +69 -0
- package/dist/mail/templates.js.map +1 -0
- package/dist/notifications/comments.d.ts +66 -0
- package/dist/notifications/comments.d.ts.map +1 -0
- package/dist/notifications/comments.js +151 -0
- package/dist/notifications/comments.js.map +1 -0
- package/dist/notifications/digest.d.ts +135 -0
- package/dist/notifications/digest.d.ts.map +1 -0
- package/dist/notifications/digest.js +287 -0
- package/dist/notifications/digest.js.map +1 -0
- package/dist/notifications/index.d.ts +13 -0
- package/dist/notifications/index.d.ts.map +1 -0
- package/dist/notifications/index.js +8 -0
- package/dist/notifications/index.js.map +1 -0
- package/dist/notifications/links.d.ts +60 -0
- package/dist/notifications/links.d.ts.map +1 -0
- package/dist/notifications/links.js +63 -0
- package/dist/notifications/links.js.map +1 -0
- package/dist/notifications/optouts.d.ts +48 -0
- package/dist/notifications/optouts.d.ts.map +1 -0
- package/dist/notifications/optouts.js +93 -0
- package/dist/notifications/optouts.js.map +1 -0
- package/dist/notifications/preferences.d.ts +158 -0
- package/dist/notifications/preferences.d.ts.map +1 -0
- package/dist/notifications/preferences.js +195 -0
- package/dist/notifications/preferences.js.map +1 -0
- package/dist/notifications/routes.d.ts +28 -0
- package/dist/notifications/routes.d.ts.map +1 -0
- package/dist/notifications/routes.js +184 -0
- package/dist/notifications/routes.js.map +1 -0
- package/dist/notifications/tokens.d.ts +60 -0
- package/dist/notifications/tokens.d.ts.map +1 -0
- package/dist/notifications/tokens.js +125 -0
- package/dist/notifications/tokens.js.map +1 -0
- package/dist/notify.d.ts +84 -0
- package/dist/notify.d.ts.map +1 -0
- package/dist/notify.js +149 -0
- package/dist/notify.js.map +1 -0
- package/dist/web/archive.d.ts +49 -0
- package/dist/web/archive.d.ts.map +1 -0
- package/dist/web/archive.js +59 -0
- package/dist/web/archive.js.map +1 -0
- package/dist/web/assets.d.ts +6 -5
- package/dist/web/assets.d.ts.map +1 -1
- package/dist/web/assets.js +5 -7
- package/dist/web/assets.js.map +1 -1
- package/dist/web/authors.d.ts +143 -0
- package/dist/web/authors.d.ts.map +1 -0
- package/dist/web/authors.js +178 -0
- package/dist/web/authors.js.map +1 -0
- package/dist/web/comments.d.ts +60 -0
- package/dist/web/comments.d.ts.map +1 -0
- package/dist/web/comments.js +207 -0
- package/dist/web/comments.js.map +1 -0
- package/dist/web/context.d.ts +162 -28
- package/dist/web/context.d.ts.map +1 -1
- package/dist/web/context.js +123 -26
- package/dist/web/context.js.map +1 -1
- package/dist/web/conversation.d.ts +209 -0
- package/dist/web/conversation.d.ts.map +1 -0
- package/dist/web/conversation.js +557 -0
- package/dist/web/conversation.js.map +1 -0
- package/dist/web/documents.d.ts +36 -6
- package/dist/web/documents.d.ts.map +1 -1
- package/dist/web/documents.js +52 -10
- package/dist/web/documents.js.map +1 -1
- package/dist/web/feed-atom.d.ts +22 -0
- package/dist/web/feed-atom.d.ts.map +1 -0
- package/dist/web/feed-atom.js +83 -0
- package/dist/web/feed-atom.js.map +1 -0
- package/dist/web/feed-item.d.ts +145 -0
- package/dist/web/feed-item.d.ts.map +1 -0
- package/dist/web/feed-item.js +120 -0
- package/dist/web/feed-item.js.map +1 -0
- package/dist/web/feed-json.d.ts +79 -0
- package/dist/web/feed-json.d.ts.map +1 -0
- package/dist/web/feed-json.js +53 -0
- package/dist/web/feed-json.js.map +1 -0
- package/dist/web/feed-rss.d.ts +26 -0
- package/dist/web/feed-rss.d.ts.map +1 -0
- package/dist/web/feed-rss.js +203 -0
- package/dist/web/feed-rss.js.map +1 -0
- package/dist/web/feed-source.d.ts +244 -0
- package/dist/web/feed-source.d.ts.map +1 -0
- package/dist/web/feed-source.js +201 -0
- package/dist/web/feed-source.js.map +1 -0
- package/dist/web/feed-xml.d.ts +63 -0
- package/dist/web/feed-xml.d.ts.map +1 -0
- package/dist/web/feed-xml.js +116 -0
- package/dist/web/feed-xml.js.map +1 -0
- package/dist/web/feeds.d.ts +31 -96
- package/dist/web/feeds.d.ts.map +1 -1
- package/dist/web/feeds.js +94 -198
- package/dist/web/feeds.js.map +1 -1
- package/dist/web/health.d.ts +31 -0
- package/dist/web/health.d.ts.map +1 -0
- package/dist/web/health.js +44 -0
- package/dist/web/health.js.map +1 -0
- package/dist/web/index.d.ts +30 -10
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js +18 -7
- package/dist/web/index.js.map +1 -1
- package/dist/web/navigation.d.ts +195 -0
- package/dist/web/navigation.d.ts.map +1 -0
- package/dist/web/navigation.js +300 -0
- package/dist/web/navigation.js.map +1 -0
- package/dist/web/negotiate.d.ts +31 -0
- package/dist/web/negotiate.d.ts.map +1 -1
- package/dist/web/negotiate.js +31 -11
- package/dist/web/negotiate.js.map +1 -1
- package/dist/web/recent.d.ts +43 -0
- package/dist/web/recent.d.ts.map +1 -0
- package/dist/web/recent.js +37 -0
- package/dist/web/recent.js.map +1 -0
- package/dist/web/render.d.ts +203 -9
- package/dist/web/render.d.ts.map +1 -1
- package/dist/web/render.js +341 -17
- package/dist/web/render.js.map +1 -1
- package/dist/web/routes.d.ts +25 -8
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +854 -93
- package/dist/web/routes.js.map +1 -1
- package/dist/web/sanitize.d.ts +19 -0
- package/dist/web/sanitize.d.ts.map +1 -0
- package/dist/web/sanitize.js +272 -0
- package/dist/web/sanitize.js.map +1 -0
- package/dist/web/search.d.ts +79 -0
- package/dist/web/search.d.ts.map +1 -0
- package/dist/web/search.js +94 -0
- package/dist/web/search.js.map +1 -0
- package/dist/web/sitemap.d.ts +120 -0
- package/dist/web/sitemap.d.ts.map +1 -0
- package/dist/web/sitemap.js +199 -0
- package/dist/web/sitemap.js.map +1 -0
- package/dist/web/taxonomy.d.ts +152 -0
- package/dist/web/taxonomy.d.ts.map +1 -0
- package/dist/web/taxonomy.js +237 -0
- package/dist/web/taxonomy.js.map +1 -0
- package/dist/web/templates.d.ts +54 -16
- package/dist/web/templates.d.ts.map +1 -1
- package/dist/web/templates.js +109 -28
- package/dist/web/templates.js.map +1 -1
- package/dist/web/themes.d.ts +226 -0
- package/dist/web/themes.d.ts.map +1 -0
- package/dist/web/themes.js +314 -0
- package/dist/web/themes.js.map +1 -0
- package/dist/webmention/discovery.d.ts +51 -0
- package/dist/webmention/discovery.d.ts.map +1 -0
- package/dist/webmention/discovery.js +176 -0
- package/dist/webmention/discovery.js.map +1 -0
- package/dist/webmention/html.d.ts +71 -0
- package/dist/webmention/html.d.ts.map +1 -0
- package/dist/webmention/html.js +285 -0
- package/dist/webmention/html.js.map +1 -0
- package/dist/webmention/index.d.ts +12 -0
- package/dist/webmention/index.d.ts.map +1 -0
- package/dist/webmention/index.js +8 -0
- package/dist/webmention/index.js.map +1 -0
- package/dist/webmention/links.d.ts +18 -0
- package/dist/webmention/links.d.ts.map +1 -0
- package/dist/webmention/links.js +64 -0
- package/dist/webmention/links.js.map +1 -0
- package/dist/webmention/microformats.d.ts +93 -0
- package/dist/webmention/microformats.d.ts.map +1 -0
- package/dist/webmention/microformats.js +376 -0
- package/dist/webmention/microformats.js.map +1 -0
- package/dist/webmention/receive.d.ts +141 -0
- package/dist/webmention/receive.d.ts.map +1 -0
- package/dist/webmention/receive.js +264 -0
- package/dist/webmention/receive.js.map +1 -0
- package/dist/webmention/routes.d.ts +37 -0
- package/dist/webmention/routes.d.ts.map +1 -0
- package/dist/webmention/routes.js +75 -0
- package/dist/webmention/routes.js.map +1 -0
- package/dist/webmention/service.d.ts +94 -0
- package/dist/webmention/service.d.ts.map +1 -0
- package/dist/webmention/service.js +207 -0
- package/dist/webmention/service.js.map +1 -0
- package/package.json +11 -6
- package/templates/site/content/_data/site.json +8 -0
- package/templates/site/content/pages/about.md +7 -0
- package/templates/site/content/posts/2026-01-01-hello-world.md +5 -3
- package/templates/site/geekity.config.ts +11 -1
- package/templates/site/tsconfig.json +1 -1
- package/themes/default/README.md +1216 -50
- package/themes/default/layouts/404.njk +2 -3
- package/themes/default/layouts/author.njk +36 -0
- package/themes/default/layouts/base.njk +161 -31
- package/themes/default/layouts/category.njk +27 -0
- package/themes/default/layouts/front-page.njk +56 -0
- package/themes/default/layouts/home.njk +17 -1
- package/themes/default/layouts/page.njk +57 -5
- package/themes/default/layouts/post.njk +78 -19
- package/themes/default/layouts/search.njk +57 -0
- package/themes/default/layouts/tag.njk +3 -6
- package/themes/default/mail/comment-digest.html.njk +37 -0
- package/themes/default/mail/comment-digest.subject.njk +3 -0
- package/themes/default/mail/comment-digest.txt.njk +40 -0
- package/themes/default/mail/comment-pending.html.njk +27 -0
- package/themes/default/mail/comment-pending.subject.njk +2 -0
- package/themes/default/mail/comment-pending.txt.njk +24 -0
- package/themes/default/mail/comment-reply.html.njk +21 -0
- package/themes/default/mail/comment-reply.subject.njk +2 -0
- package/themes/default/mail/comment-reply.txt.njk +22 -0
- package/themes/default/mail/contact-message.html.njk +24 -0
- package/themes/default/mail/contact-message.subject.njk +5 -0
- package/themes/default/mail/contact-message.txt.njk +20 -0
- package/themes/default/mail/password-changed.html.njk +18 -0
- package/themes/default/mail/password-changed.subject.njk +2 -0
- package/themes/default/mail/password-changed.txt.njk +17 -0
- package/themes/default/mail/password-reset.html.njk +22 -0
- package/themes/default/mail/password-reset.subject.njk +2 -0
- package/themes/default/mail/password-reset.txt.njk +18 -0
- package/themes/default/mail/test.html.njk +14 -0
- package/themes/default/mail/test.subject.njk +2 -0
- package/themes/default/mail/test.txt.njk +12 -0
- package/themes/default/partials/archive.njk +27 -0
- package/themes/default/partials/bio.njk +71 -0
- package/themes/default/partials/comment-form.njk +137 -0
- package/themes/default/partials/contact-form.njk +88 -0
- package/themes/default/partials/conversation.njk +139 -0
- package/themes/default/partials/feeds.njk +26 -0
- package/themes/default/partials/jsonld.njk +120 -0
- package/themes/default/partials/menu.njk +32 -0
- package/themes/default/partials/pagination.njk +12 -6
- package/themes/default/partials/post-list.njk +51 -18
- package/themes/default/partials/search-form.njk +22 -0
- package/themes/default/partials/tags.njk +26 -5
- package/themes/default/static/highlight.js +4 -0
- package/themes/default/static/style.css +1142 -194
- package/themes/default/theme.json +9 -0
- package/admin/layouts/federation.njk +0 -145
- package/admin/layouts/login.njk +0 -23
- package/admin/layouts/settings.njk +0 -116
- package/admin/layouts/setup.njk +0 -27
- package/admin/layouts/users.njk +0 -91
- /package/admin/{layouts/_flash.njk → components/flash.njk} +0 -0
package/dist/federation/inbox.js
CHANGED
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
-
import { Accept, Follow
|
|
3
|
-
import {
|
|
2
|
+
import { Accept, Follow } from '@fedify/vocab';
|
|
3
|
+
import { listUsers } from '../admin/accounts.js';
|
|
4
|
+
import { actorId, senderKeyPairs, userByUsername } from './actor.js';
|
|
5
|
+
import { addFollower, appendInboxActivity, removeFollower } from './records.js';
|
|
6
|
+
import { acceptRelay, rejectRelay } from './relays.js';
|
|
4
7
|
/**
|
|
5
|
-
* Handle a `Follow`: store the follower and reply
|
|
8
|
+
* Handle a `Follow`: store the follower under the user it named, and reply
|
|
9
|
+
* `Accept` as that user.
|
|
6
10
|
*
|
|
7
|
-
* A `Follow` of anything but
|
|
8
|
-
* a peer that asked to follow a post has not done anything wrong, it
|
|
9
|
-
* merely addressed something that does not accept followers. The reply
|
|
10
|
-
* to the follower's own inbox rather than through the followers
|
|
11
|
-
* because at this moment the follow is not yet a fact for anybody
|
|
11
|
+
* A `Follow` of anything but one of this site's users is ignored rather than
|
|
12
|
+
* refused — a peer that asked to follow a post has not done anything wrong, it
|
|
13
|
+
* has merely addressed something that does not accept followers. The reply
|
|
14
|
+
* goes to the follower's own inbox rather than through the followers
|
|
15
|
+
* collection, because at this moment the follow is not yet a fact for anybody
|
|
16
|
+
* but us.
|
|
12
17
|
*
|
|
13
18
|
* Following twice is a no-op beyond refreshing the stored profile: the store
|
|
14
|
-
* is keyed by actor
|
|
15
|
-
* or repeated `Follow` cannot turn one follower into two.
|
|
19
|
+
* is keyed by the pair (user, actor) and keeps the original follow time, so a
|
|
20
|
+
* redelivered or repeated `Follow` cannot turn one follower into two. One
|
|
21
|
+
* actor may follow two of this site's users, and that is two rows.
|
|
16
22
|
*/
|
|
17
23
|
export async function handleFollow(context, follow) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
// `parseUri` is what decides whether the object is this actor: comparing
|
|
22
|
-
// strings would have to know how Fedify spells the actor's URL, and this
|
|
23
|
-
// asks Fedify instead.
|
|
24
|
-
const parsed = context.parseUri(follow.objectId);
|
|
25
|
-
if (parsed?.type !== 'actor' || parsed.identifier !== SITE_ACTOR_IDENTIFIER)
|
|
24
|
+
const followed = followedUser(context, follow);
|
|
25
|
+
await logActivity(context, follow, followed?.username);
|
|
26
|
+
if (follow.id === null || follow.objectId === null || followed === undefined)
|
|
26
27
|
return;
|
|
27
28
|
const actor = await follow.getActor(dereference(context));
|
|
28
29
|
if (actor === null)
|
|
@@ -30,15 +31,45 @@ export async function handleFollow(context, follow) {
|
|
|
30
31
|
const follower = await followerFrom(context, actor);
|
|
31
32
|
if (follower === undefined)
|
|
32
33
|
return;
|
|
33
|
-
context.
|
|
34
|
-
await context.sendActivity(
|
|
34
|
+
await addFollower(recordsOf(context), followed.username, follower);
|
|
35
|
+
await context.sendActivity(await senderKeyPairs(context, followed), actor, new Accept({
|
|
35
36
|
// A fresh id every time: an actor may follow, unfollow and follow again,
|
|
36
37
|
// and those are three activities rather than one repeated.
|
|
37
|
-
id: new URL(`#accept/${randomUUID()}`, context
|
|
38
|
-
|
|
38
|
+
id: new URL(`#accept/${randomUUID()}`, actorId(context, followed)),
|
|
39
|
+
// The user's own id rather than the URL the `Follow` happened to name.
|
|
40
|
+
// They are the same thing for almost everybody, but a user with a stored
|
|
41
|
+
// actor id may be followed at either of two URLs, and the `Accept` has to
|
|
42
|
+
// come from the one their actor document publishes — it is what a peer
|
|
43
|
+
// matches against the account it is waiting to hear about, and the owner
|
|
44
|
+
// of the key that signed the reply.
|
|
45
|
+
actor: actorId(context, followed),
|
|
39
46
|
object: follow,
|
|
40
47
|
}));
|
|
41
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* The user a `Follow` is a follow of, or `undefined` when it names none.
|
|
51
|
+
*
|
|
52
|
+
* `parseUri` is what decides whether the object is one of this site's actors:
|
|
53
|
+
* comparing strings would have to know how Fedify spells an actor's URL, and
|
|
54
|
+
* this asks Fedify instead. The identifier it answers with is the username
|
|
55
|
+
* (decision-14), and a username nobody has is not a follow of anybody.
|
|
56
|
+
*
|
|
57
|
+
* A stored actor id is the other way in, and the commoner one for a migrated
|
|
58
|
+
* site: it is the `id` the actor document publishes, so it is what a peer that
|
|
59
|
+
* just read the document names, and Fedify's router cannot parse it because it
|
|
60
|
+
* is not a path Fedify dispatches (doc-8). Matched on the whole URL, as it is
|
|
61
|
+
* everywhere else.
|
|
62
|
+
*/
|
|
63
|
+
function followedUser(context, follow) {
|
|
64
|
+
if (follow.objectId === null)
|
|
65
|
+
return undefined;
|
|
66
|
+
const parsed = context.parseUri(follow.objectId);
|
|
67
|
+
if (parsed?.type === 'actor') {
|
|
68
|
+
return userByUsername(context.data.config.dataDir, parsed.identifier);
|
|
69
|
+
}
|
|
70
|
+
const wanted = follow.objectId.href;
|
|
71
|
+
return listUsers(context.data.config.dataDir).find((user) => user.actorId === wanted);
|
|
72
|
+
}
|
|
42
73
|
/**
|
|
43
74
|
* Handle an `Undo`: an undone `Follow` removes the follower.
|
|
44
75
|
*
|
|
@@ -48,15 +79,20 @@ export async function handleFollow(context, follow) {
|
|
|
48
79
|
* about who the follow belonged to.
|
|
49
80
|
*/
|
|
50
81
|
export async function handleUndo(context, undo) {
|
|
51
|
-
await logActivity(context, undo);
|
|
52
82
|
const object = await undo.getObject(dereference(context));
|
|
83
|
+
const followed = object instanceof Follow ? followedUser(context, object) : undefined;
|
|
84
|
+
await logActivity(context, undo, followed?.username);
|
|
53
85
|
if (!(object instanceof Follow))
|
|
54
86
|
return;
|
|
55
87
|
const undoer = undo.actorId;
|
|
56
88
|
const follower = object.actorId;
|
|
57
89
|
if (undoer === null || follower === null || undoer.href !== follower.href)
|
|
58
90
|
return;
|
|
59
|
-
|
|
91
|
+
// An `Undo` that names which actor was followed unfollows exactly that one;
|
|
92
|
+
// one that does not — the object arrived as a bare id nothing could
|
|
93
|
+
// dereference — unfollows everybody, which is what "I do not want your
|
|
94
|
+
// posts" means when it says nothing more.
|
|
95
|
+
await forget(context, follower.href, followed?.username);
|
|
60
96
|
}
|
|
61
97
|
/**
|
|
62
98
|
* Handle a `Delete`: an actor deleting itself stops being a follower.
|
|
@@ -67,12 +103,55 @@ export async function handleUndo(context, undo) {
|
|
|
67
103
|
* object to remove.
|
|
68
104
|
*/
|
|
69
105
|
export async function handleDelete(context, activity) {
|
|
70
|
-
await logActivity(context, activity);
|
|
106
|
+
await logActivity(context, activity, context.recipient ?? undefined);
|
|
71
107
|
const actor = activity.actorId;
|
|
72
108
|
const object = activity.objectId;
|
|
73
109
|
if (actor === null || object === null || actor.href !== object.href)
|
|
74
110
|
return;
|
|
75
|
-
|
|
111
|
+
// An account that is gone is gone from everybody's followers, whichever
|
|
112
|
+
// inbox the announcement happened to reach.
|
|
113
|
+
await forget(context, object.href);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Take one actor off a user's followers, or off every user's.
|
|
117
|
+
*
|
|
118
|
+
* Which users to touch is asked of the index rather than of the file listing,
|
|
119
|
+
* because the index is the one place that already knows which of this site's
|
|
120
|
+
* people an actor follows; `removeFollower` then rewrites each file and
|
|
121
|
+
* corrects the index inside the same lock, so the two cannot disagree.
|
|
122
|
+
*/
|
|
123
|
+
async function forget(context, actorHref, username) {
|
|
124
|
+
const records = recordsOf(context);
|
|
125
|
+
if (username !== undefined) {
|
|
126
|
+
await removeFollower(records, username, actorHref);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const usernames = new Set(context.data.admin
|
|
130
|
+
.listFollowers()
|
|
131
|
+
.filter((follower) => follower.actorId === actorHref)
|
|
132
|
+
.map((follower) => follower.username));
|
|
133
|
+
for (const name of usernames)
|
|
134
|
+
await removeFollower(records, name, actorHref);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Handle an `Accept`: a relay agreeing to the subscription the site asked for.
|
|
138
|
+
*
|
|
139
|
+
* The site follows nothing but relays (doc-4 keeps its `following` collection
|
|
140
|
+
* empty), so an `Accept` addressed to it is an answer to one of the `Follow`
|
|
141
|
+
* activities TASK-40 sends — or a stray, which {@link acceptRelay} recognises
|
|
142
|
+
* as one and leaves alone.
|
|
143
|
+
*/
|
|
144
|
+
export async function handleAccept(context, accept) {
|
|
145
|
+
await logActivity(context, accept);
|
|
146
|
+
acceptRelay(context.data.admin, accept);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Handle a `Reject`: a relay refusing the subscription, with whatever it said
|
|
150
|
+
* about why, which the federation screen shows beside the relay.
|
|
151
|
+
*/
|
|
152
|
+
export async function handleReject(context, reject) {
|
|
153
|
+
await logActivity(context, reject);
|
|
154
|
+
rejectRelay(context.data.admin, reject);
|
|
76
155
|
}
|
|
77
156
|
/**
|
|
78
157
|
* Handle a `Like`, an `Announce` or a `Create`: record it and do nothing else.
|
|
@@ -86,29 +165,33 @@ export async function handleLoggedActivity(context, activity) {
|
|
|
86
165
|
await logActivity(context, activity);
|
|
87
166
|
}
|
|
88
167
|
/**
|
|
89
|
-
* Write one inbound activity to the log
|
|
168
|
+
* Write one inbound activity to the log, attributed to the user it was
|
|
169
|
+
* addressed to.
|
|
90
170
|
*
|
|
91
171
|
* Every handled activity goes through here, the follow traffic included, so
|
|
92
172
|
* the log is a complete record of what the inbox was told rather than of what
|
|
93
173
|
* the inbox ignored. An activity with no actor is dropped: Fedify has already
|
|
94
174
|
* refused anything whose signature does not match its actor, so an activity
|
|
95
175
|
* without one is malformed rather than anonymous.
|
|
176
|
+
*
|
|
177
|
+
* The recipient defaults to the inbox the delivery arrived at —
|
|
178
|
+
* `context.recipient` is the username for a personal inbox and `null` for the
|
|
179
|
+
* shared one — and a caller that has worked out the addressee for itself, as
|
|
180
|
+
* `handleFollow` has, names it instead (decision-14).
|
|
96
181
|
*/
|
|
97
|
-
export async function logActivity(context, activity) {
|
|
98
|
-
const
|
|
99
|
-
if (
|
|
182
|
+
export async function logActivity(context, activity, recipient = context.recipient ?? undefined) {
|
|
183
|
+
const sender = activity.actorId;
|
|
184
|
+
if (sender === null)
|
|
100
185
|
return;
|
|
101
186
|
const json = await activity.toJsonLd({
|
|
102
187
|
format: 'compact',
|
|
103
188
|
contextLoader: context.contextLoader,
|
|
104
189
|
});
|
|
105
|
-
context.
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
json: JSON.stringify(json),
|
|
111
|
-
});
|
|
190
|
+
await appendInboxActivity(recordsOf(context), JSON.stringify(json), { recipient });
|
|
191
|
+
}
|
|
192
|
+
/** The files this inbox writes, and the index over them. */
|
|
193
|
+
function recordsOf(context) {
|
|
194
|
+
return { admin: context.data.admin, contentDir: context.data.config.contentDir };
|
|
112
195
|
}
|
|
113
196
|
/**
|
|
114
197
|
* A remote actor as the follower row that describes it, or `undefined` when
|
|
@@ -152,18 +235,6 @@ function linkHref(value) {
|
|
|
152
235
|
return null;
|
|
153
236
|
return value instanceof URL ? value.href : (value.href?.href ?? null);
|
|
154
237
|
}
|
|
155
|
-
/**
|
|
156
|
-
* The short ActivityStreams type name — `Follow`, `Like`, `Announce` — that the
|
|
157
|
-
* log stores.
|
|
158
|
-
*
|
|
159
|
-
* Taken from the type IRI rather than from the class name, which a bundler is
|
|
160
|
-
* free to rename, or from the JSON, which spells a type outside the core
|
|
161
|
-
* vocabulary as a full IRI.
|
|
162
|
-
*/
|
|
163
|
-
function activityTypeName(activity) {
|
|
164
|
-
const typeId = getTypeId(activity);
|
|
165
|
-
return typeId.hash === '' ? typeId.href : typeId.hash.slice(1);
|
|
166
|
-
}
|
|
167
238
|
/** The loaders a vocabulary getter needs to follow a link off this context. */
|
|
168
239
|
function dereference(context) {
|
|
169
240
|
return { documentLoader: context.documentLoader, contextLoader: context.contextLoader };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/federation/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/federation/inbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,26 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export type {
|
|
3
|
-
export { articleObjectId, isFederatedDocument, postArticle, postCreateActivity, postDeleteActivity, postUpdateActivity, SOURCE_MEDIA_TYPE, toInstant, } from './article.ts';
|
|
4
|
-
export { createDeliveryService, groupByInbox } from './delivery.ts';
|
|
5
|
-
export type { CreateDeliveryServiceOptions, DeliveryLogger, DeliveryReport, DeliveryService, } from './delivery.ts';
|
|
6
|
-
export { createSiteFederation,
|
|
1
|
+
export { actorAliases, actorId, avatarUrl, keyIdFor, mainKeyId, multikeyId, senderKeyPairs, userActor, userByUsername, } from './actor.ts';
|
|
2
|
+
export type { UserActorOptions } from './actor.ts';
|
|
3
|
+
export { articleObjectId, documentAuthor, isFederatedDocument, postArticle, postCreateActivity, postDeleteActivity, postUpdateActivity, SOURCE_MEDIA_TYPE, toInstant, } from './article.ts';
|
|
4
|
+
export { createDeliveryService, deliveryTargets, groupByInbox } from './delivery.ts';
|
|
5
|
+
export type { CreateDeliveryServiceOptions, DeliveryLogger, DeliveryReport, DeliveryService, DeliveryTarget, } from './delivery.ts';
|
|
6
|
+
export { createSiteFederation, federatedPost, outboxPage, OUTBOX_PAGE_SIZE, SOFTWARE_NAME, } from './federation.ts';
|
|
7
7
|
export type { CreateSiteFederationOptions, FederationContextData, SiteFederation, } from './federation.ts';
|
|
8
|
+
export { ExistingKeyPairError, importWordPressActor, UnusableKeyPemError, } from './import-wordpress.ts';
|
|
9
|
+
export type { FollowersImportReport, ImportedKey, ImportWordPressActorOptions, ImportWordPressActorReport, UnreachableFollower, } from './import-wordpress.ts';
|
|
8
10
|
export { followerRecipient, followersPage, FOLLOWERS_PAGE_SIZE, lastFollowersCursor, } from './followers.ts';
|
|
9
|
-
export { followerFrom, handleDelete, handleFollow, handleLoggedActivity, handleUndo, logActivity, } from './inbox.ts';
|
|
11
|
+
export { followerFrom, handleAccept, handleDelete, handleFollow, handleLoggedActivity, handleReject, handleUndo, logActivity, } from './inbox.ts';
|
|
10
12
|
export type { SiteInboxContext } from './inbox.ts';
|
|
11
|
-
export { loadActorKeyPairs,
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
13
|
+
export { ACTOR_KEY_ALGORITHMS, actorKeyFile, actorKeysDir, assertActorKeysUsable, loadActorKeyPairs, migrateActorKeysToFiles, writeActorKeyFile, } from './keys.ts';
|
|
14
|
+
export type { ActorKeyAlgorithm } from './keys.ts';
|
|
15
|
+
export { addFollower, appendInboxActivity, FEDERATION_DATA_DIRECTORY, federatedUsernames, followersFile, FOLLOWERS_FILE, inboxDirectory, inboxFile, inboxMonth, INBOX_DIRECTORY, inboxRowFrom, migrateFederationToFiles, readFollowers, readInboxLog, rebuildFederationIndexes, removeFollower, userDirectory, } from './records.ts';
|
|
16
|
+
export type { FederationIndexReport, FederationRecords, InboxLine } from './records.ts';
|
|
17
|
+
export { acctOf, mountFederation, webFingerSubject, WEBFINGER_PATH } from './mount.ts';
|
|
18
|
+
export type { MountFederationOptions } from './mount.ts';
|
|
19
|
+
export { ACTOR_PATH, createActivityId, deleteActivityId, federationOrigin, FOLLOWERS_PATH, FOLLOWING_PATH, handleHref, INBOX_PATH, NODEINFO_PATH, OUTBOX_PATH, SHARED_INBOX_PATH, updateActivityId, } from './paths.ts';
|
|
20
|
+
export { acceptedRelays, acceptRelay, createRelayService, rejectRelay, relayAnswering, relayRecipient, } from './relays.ts';
|
|
21
|
+
export type { CreateRelayServiceOptions, RelayLogger, RelayService, RelaySyncReport, } from './relays.ts';
|
|
22
|
+
export { actorHandle, replyFrom, replyTargetOf, REPLY_ACTIVITY_TYPE } from './replies.ts';
|
|
23
|
+
export type { Reply } from './replies.ts';
|
|
24
|
+
export { createWordPressFederation, readWordPressRequests, recordWordPressRequest, userByWordPressActorId, WORDPRESS_ACTIVITYPUB_BASE, WORDPRESS_ACTOR_PATH, WORDPRESS_FOLLOWERS_PATH, WORDPRESS_FOLLOWING_PATH, WORDPRESS_INBOX_PATH, WORDPRESS_OUTBOX_PATH, WORDPRESS_REQUESTS_FILE, WORDPRESS_SHARED_INBOX_PATH, wordPressRequestsFile, wordPressRequestTarget, } from './wordpress.ts';
|
|
25
|
+
export type { CreateWordPressFederationOptions, WordPressRequests, WordPressRequestTarget, WordPressRoute, } from './wordpress.ts';
|
|
14
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/federation/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/federation/index.ts"],"names":[],"mappings":"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"}
|
package/dist/federation/index.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { articleObjectId, isFederatedDocument, postArticle, postCreateActivity, postDeleteActivity, postUpdateActivity, SOURCE_MEDIA_TYPE, toInstant, } from './article.js';
|
|
3
|
-
export { createDeliveryService, groupByInbox } from './delivery.js';
|
|
4
|
-
export { createSiteFederation,
|
|
1
|
+
export { actorAliases, actorId, avatarUrl, keyIdFor, mainKeyId, multikeyId, senderKeyPairs, userActor, userByUsername, } from './actor.js';
|
|
2
|
+
export { articleObjectId, documentAuthor, isFederatedDocument, postArticle, postCreateActivity, postDeleteActivity, postUpdateActivity, SOURCE_MEDIA_TYPE, toInstant, } from './article.js';
|
|
3
|
+
export { createDeliveryService, deliveryTargets, groupByInbox } from './delivery.js';
|
|
4
|
+
export { createSiteFederation, federatedPost, outboxPage, OUTBOX_PAGE_SIZE, SOFTWARE_NAME, } from './federation.js';
|
|
5
|
+
export { ExistingKeyPairError, importWordPressActor, UnusableKeyPemError, } from './import-wordpress.js';
|
|
5
6
|
export { followerRecipient, followersPage, FOLLOWERS_PAGE_SIZE, lastFollowersCursor, } from './followers.js';
|
|
6
|
-
export { followerFrom, handleDelete, handleFollow, handleLoggedActivity, handleUndo, logActivity, } from './inbox.js';
|
|
7
|
-
export { loadActorKeyPairs,
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
7
|
+
export { followerFrom, handleAccept, handleDelete, handleFollow, handleLoggedActivity, handleReject, handleUndo, logActivity, } from './inbox.js';
|
|
8
|
+
export { ACTOR_KEY_ALGORITHMS, actorKeyFile, actorKeysDir, assertActorKeysUsable, loadActorKeyPairs, migrateActorKeysToFiles, writeActorKeyFile, } from './keys.js';
|
|
9
|
+
export { addFollower, appendInboxActivity, FEDERATION_DATA_DIRECTORY, federatedUsernames, followersFile, FOLLOWERS_FILE, inboxDirectory, inboxFile, inboxMonth, INBOX_DIRECTORY, inboxRowFrom, migrateFederationToFiles, readFollowers, readInboxLog, rebuildFederationIndexes, removeFollower, userDirectory, } from './records.js';
|
|
10
|
+
export { acctOf, mountFederation, webFingerSubject, WEBFINGER_PATH } from './mount.js';
|
|
11
|
+
export { ACTOR_PATH, createActivityId, deleteActivityId, federationOrigin, FOLLOWERS_PATH, FOLLOWING_PATH, handleHref, INBOX_PATH, NODEINFO_PATH, OUTBOX_PATH, SHARED_INBOX_PATH, updateActivityId, } from './paths.js';
|
|
12
|
+
export { acceptedRelays, acceptRelay, createRelayService, rejectRelay, relayAnswering, relayRecipient, } from './relays.js';
|
|
13
|
+
export { actorHandle, replyFrom, replyTargetOf, REPLY_ACTIVITY_TYPE } from './replies.js';
|
|
14
|
+
export { createWordPressFederation, readWordPressRequests, recordWordPressRequest, userByWordPressActorId, WORDPRESS_ACTIVITYPUB_BASE, WORDPRESS_ACTOR_PATH, WORDPRESS_FOLLOWERS_PATH, WORDPRESS_FOLLOWING_PATH, WORDPRESS_INBOX_PATH, WORDPRESS_OUTBOX_PATH, WORDPRESS_REQUESTS_FILE, WORDPRESS_SHARED_INBOX_PATH, wordPressRequestsFile, wordPressRequestTarget, } from './wordpress.js';
|
|
10
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/federation/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/federation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,cAAc,EACd,SAAS,EACT,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAQrF,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,EACd,SAAS,EACT,UAAU,EACV,eAAe,EACf,YAAY,EACZ,wBAAwB,EACxB,aAAa,EACb,YAAY,EACZ,wBAAwB,EACxB,cAAc,EACd,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEvF,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC;AAOrB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE1F,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,27 +1,105 @@
|
|
|
1
1
|
import type { AdminStore } from '../admin/store.ts';
|
|
2
2
|
/**
|
|
3
|
-
* The
|
|
3
|
+
* The algorithms an actor holds a key pair for, in the order Fedify wants them:
|
|
4
|
+
* the RSA pair signs HTTP Signatures for Mastodon and friends, the Ed25519
|
|
5
|
+
* pair signs FEP-8b32 integrity proofs.
|
|
6
|
+
*/
|
|
7
|
+
export declare const ACTOR_KEY_ALGORITHMS: readonly ['RSASSA-PKCS1-v1_5', 'Ed25519'];
|
|
8
|
+
/** One of {@link ACTOR_KEY_ALGORITHMS}. */
|
|
9
|
+
export type ActorKeyAlgorithm = (typeof ACTOR_KEY_ALGORITHMS)[number];
|
|
10
|
+
/** Where an actor's key files live: `data/keys`, beside the disposable index. */
|
|
11
|
+
export declare function actorKeysDir(dataDir: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* The file one key pair lives in, e.g. `data/keys/ada.ed25519.jwk`.
|
|
14
|
+
*
|
|
15
|
+
* The identifier is the user's username (decision-14), which is also what
|
|
16
|
+
* their actor id is built from, so a site can tell at a glance whose key a
|
|
17
|
+
* file is; and the algorithm is in the name too, so the two pairs are
|
|
18
|
+
* independent files that can be backed up, restored and regenerated one at a
|
|
19
|
+
* time.
|
|
20
|
+
*
|
|
21
|
+
* `algorithm` is a bare string rather than an {@link ActorKeyAlgorithm}, for
|
|
22
|
+
* the migration's sake: a row written by a version that knows an algorithm
|
|
23
|
+
* this one does not still has to reach a file before the table is dropped.
|
|
24
|
+
*/
|
|
25
|
+
export declare function actorKeyFile(dataDir: string, identifier: string, algorithm: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* Put one private JWK on disk as a user's key file for an algorithm, replacing
|
|
28
|
+
* whatever was there, and answer with the path it was written to.
|
|
29
|
+
*
|
|
30
|
+
* The only door into `data/keys` that is not {@link loadActorKeyPairs}, and it
|
|
31
|
+
* exists for the import (TASK-71): a key pair that arrives from somewhere else
|
|
32
|
+
* is the one case where a file has to be written from bytes the CMS did not
|
|
33
|
+
* mint. Everything about the layout stays here rather than at the caller — the
|
|
34
|
+
* name, the `0700` directory and the `0600` file — so there is one answer to
|
|
35
|
+
* where a user's key lives.
|
|
36
|
+
*
|
|
37
|
+
* It does not decide whether writing is allowed: an existing key is somebody's
|
|
38
|
+
* identity, and the caller is the one that knows whether it was told to
|
|
39
|
+
* replace it.
|
|
40
|
+
*/
|
|
41
|
+
export declare function writeActorKeyFile(dataDir: string, identifier: string, algorithm: ActorKeyAlgorithm, privateJwk: string): string;
|
|
42
|
+
/**
|
|
43
|
+
* One user's key pairs, generated on the first call and read from
|
|
44
|
+
* `data/keys` on every one after that.
|
|
45
|
+
*
|
|
46
|
+
* Both of {@link ACTOR_KEY_ALGORITHMS} are returned, in that order. Each file
|
|
47
|
+
* holds the private JWK alone, because the public key is derivable from it:
|
|
48
|
+
* one file per pair is one thing to back up and one thing that cannot fall
|
|
49
|
+
* half out of step with itself.
|
|
4
50
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* and
|
|
9
|
-
*
|
|
51
|
+
* A file that will not import is thrown over rather than replaced (decision-9).
|
|
52
|
+
* The old code healed a damaged row by generating a new pair, which is exactly
|
|
53
|
+
* the wrong thing to do with an identity: every follower holds the public key
|
|
54
|
+
* and would stop verifying the site's posts. A site that really does want a
|
|
55
|
+
* new key deletes the file, which is a deliberate act rather than an accident
|
|
56
|
+
* of a half-written byte.
|
|
10
57
|
*/
|
|
11
|
-
export declare
|
|
58
|
+
export declare function loadActorKeyPairs(dataDir: string, identifier: string): Promise<CryptoKeyPair[]>;
|
|
12
59
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
60
|
+
* Turn an older site's `actor_keys` rows into files under `data/keys`, once,
|
|
61
|
+
* and drop the table.
|
|
62
|
+
*
|
|
63
|
+
* The rows this writes out are the site actor's, which no version after
|
|
64
|
+
* TASK-68 has: decision-14 replaced it with one actor per user, and a user's
|
|
65
|
+
* keys are named after their username rather than after the sentinel `actor`.
|
|
66
|
+
* The files are still written rather than dropped on the floor, because a
|
|
67
|
+
* private key is the one thing this CMS never deletes for somebody — an
|
|
68
|
+
* operator who wants the old identity back has it on disk to move.
|
|
69
|
+
*
|
|
70
|
+
* This is the migration decision-9 calls the one that must not fail. Settings
|
|
71
|
+
* a site could type again and followers a site could ask for again; an actor's
|
|
72
|
+
* private key is the site's identity, and losing it means every follower's
|
|
73
|
+
* cached public key stops verifying its posts for good. So the rows are
|
|
74
|
+
* written out before the table goes, never after, and a file that is already
|
|
75
|
+
* there always wins — a site that has booted this version once has the truth
|
|
76
|
+
* on disk, and a row left over from before it did must not overwrite it.
|
|
77
|
+
*
|
|
78
|
+
* Synchronous because `createCms` is: it runs before the server is listening
|
|
79
|
+
* and before anything has asked for a key.
|
|
80
|
+
*/
|
|
81
|
+
export declare function migrateActorKeysToFiles(options: {
|
|
82
|
+
admin: AdminStore;
|
|
83
|
+
dataDir: string;
|
|
84
|
+
}): void;
|
|
85
|
+
/**
|
|
86
|
+
* Refuse to boot on a key file that is there but is not a key.
|
|
87
|
+
*
|
|
88
|
+
* `loadActorKeyPairs` throws over such a file, but nothing useful happens to
|
|
89
|
+
* that throw: Fedify catches whatever the key pairs dispatcher raises and
|
|
90
|
+
* hands back an empty list, so the site would go on answering with an actor
|
|
91
|
+
* that publishes no `publicKey` and no `assertionMethod` — unverifiable to
|
|
92
|
+
* every follower, and silent about it. Boot is where that is caught instead,
|
|
93
|
+
* and refusing to start is the report: a site is down for a minute and the
|
|
94
|
+
* message names the file to restore, rather than up for a week signing
|
|
95
|
+
* nothing.
|
|
96
|
+
*
|
|
97
|
+
* The checks are the ones `importJwk` makes, minus the arithmetic, because
|
|
98
|
+
* they are all that can be made without an `await` inside a synchronous boot.
|
|
99
|
+
* That is enough for every way a key file really goes wrong — truncated by a
|
|
100
|
+
* crash, emptied, replaced by something that is not a key at all. A JWK that
|
|
101
|
+
* is well formed and still will not import is left to
|
|
102
|
+
* {@link loadActorKeyPairs}, which throws the same error with the same advice.
|
|
25
103
|
*/
|
|
26
|
-
export declare function
|
|
104
|
+
export declare function assertActorKeysUsable(dataDir: string, identifier: string): void;
|
|
27
105
|
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/federation/keys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/federation/keys.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAOpD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,YAAI,mBAAmB,EAAE,SAAS,CAAU,CAAC;AAE9E,2CAA2C;AAC3C,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE3F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,iBAAiB,EAC5B,UAAU,EAAE,MAAM,GACjB,MAAM,CAKR;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,EAAE,CAAC,CAM1B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAuB7F;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAkB/E"}
|