emdash 0.21.0 → 0.22.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/dist/{adapters-BxSmgtbF.d.mts → adapters-hUy8vOB-.d.mts} +1 -1
- package/dist/{adapters-BxSmgtbF.d.mts.map → adapters-hUy8vOB-.d.mts.map} +1 -1
- package/dist/after-B1IIdH3Y.mjs +29 -0
- package/dist/after-B1IIdH3Y.mjs.map +1 -0
- package/dist/{allowed-origins-BqC8cul8.mjs → allowed-origins-DjlhyfNN.mjs} +2 -2
- package/dist/{allowed-origins-BqC8cul8.mjs.map → allowed-origins-DjlhyfNN.mjs.map} +1 -1
- package/dist/api/route-utils.d.mts +3 -3
- package/dist/api/route-utils.mjs +20 -19
- package/dist/api/route-utils.mjs.map +1 -1
- package/dist/api/schemas/index.d.mts +2 -2
- package/dist/api/schemas/index.mjs +4 -4
- package/dist/{api-DxjIV2o8.mjs → api-BDuM4bEy.mjs} +31 -25
- package/dist/api-BDuM4bEy.mjs.map +1 -0
- package/dist/{api-tokens-BFFkB0jB.mjs → api-tokens-ViYKeIp9.mjs} +13 -3
- package/dist/api-tokens-ViYKeIp9.mjs.map +1 -0
- package/dist/{apply-CLjxheyb.mjs → apply-wDqQoxX4.mjs} +18 -18
- package/dist/{apply-CLjxheyb.mjs.map → apply-wDqQoxX4.mjs.map} +1 -1
- package/dist/astro/image-endpoint.d.mts +8 -0
- package/dist/astro/image-endpoint.d.mts.map +1 -0
- package/dist/astro/image-endpoint.mjs +55 -0
- package/dist/astro/image-endpoint.mjs.map +1 -0
- package/dist/astro/index.d.mts +36 -11
- package/dist/astro/index.d.mts.map +1 -1
- package/dist/astro/index.mjs +114 -24
- package/dist/astro/index.mjs.map +1 -1
- package/dist/astro/middleware/auth.d.mts +9 -9
- package/dist/astro/middleware/auth.d.mts.map +1 -1
- package/dist/astro/middleware/auth.mjs +12 -10
- package/dist/astro/middleware/auth.mjs.map +1 -1
- package/dist/astro/middleware/redirect.mjs +6 -6
- package/dist/astro/middleware/request-context.mjs +5 -5
- package/dist/astro/middleware/setup.mjs +1 -1
- package/dist/astro/middleware.d.mts +1 -1
- package/dist/astro/middleware.d.mts.map +1 -1
- package/dist/astro/middleware.mjs +153 -79
- package/dist/astro/middleware.mjs.map +1 -1
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +7 -7
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +7 -7
- package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +5 -5
- package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -6
- package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +6 -6
- package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +10 -10
- package/dist/astro/routes/api/admin/byline-fields/index.mjs +10 -10
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +10 -10
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +17 -16
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +17 -16
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/admin/bylines/index.mjs +17 -16
- package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +15 -13
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -6
- package/dist/astro/routes/api/admin/comments/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/bulk.mjs +12 -10
- package/dist/astro/routes/api/admin/comments/bulk.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/counts.mjs +8 -6
- package/dist/astro/routes/api/admin/comments/counts.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/index.mjs +12 -10
- package/dist/astro/routes/api/admin/comments/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
- package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
- package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +5 -5
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs +5 -5
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +40 -39
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +40 -39
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +39 -38
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +39 -38
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +39 -38
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/index.mjs +39 -38
- package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +4 -4
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +39 -38
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +39 -38
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +39 -38
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +39 -38
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +40 -39
- package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +39 -38
- package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs +40 -39
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/updates.mjs +39 -38
- package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +39 -38
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +4 -4
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +39 -38
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs +4 -4
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs +3 -3
- package/dist/astro/routes/api/admin/users/_id_/index.mjs +8 -8
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +5 -5
- package/dist/astro/routes/api/admin/users/index.mjs +7 -7
- package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
- package/dist/astro/routes/api/auth/invite/accept.mjs +3 -3
- package/dist/astro/routes/api/auth/invite/complete.mjs +12 -12
- package/dist/astro/routes/api/auth/invite/index.mjs +9 -9
- package/dist/astro/routes/api/auth/invite/register-options.mjs +11 -11
- package/dist/astro/routes/api/auth/logout.mjs +4 -4
- package/dist/astro/routes/api/auth/magic-link/send.mjs +11 -11
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +4 -4
- package/dist/astro/routes/api/auth/me.mjs +8 -8
- package/dist/astro/routes/api/auth/mode.mjs +1 -1
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +4 -4
- package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
- package/dist/astro/routes/api/auth/passkey/_id_.mjs +7 -7
- package/dist/astro/routes/api/auth/passkey/index.mjs +3 -3
- package/dist/astro/routes/api/auth/passkey/options.mjs +13 -13
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +11 -11
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +12 -12
- package/dist/astro/routes/api/auth/passkey/verify.mjs +12 -12
- package/dist/astro/routes/api/auth/signup/complete.mjs +12 -12
- package/dist/astro/routes/api/auth/signup/request.mjs +11 -11
- package/dist/astro/routes/api/auth/signup/verify.mjs +3 -3
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +16 -15
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs.map +1 -1
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.d.mts +9 -0
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.d.mts.map +1 -0
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +179 -0
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +13 -13
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +8 -8
- package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +8 -8
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +17 -15
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +8 -8
- package/dist/astro/routes/api/content/_collection_/authors.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/index.mjs +8 -8
- package/dist/astro/routes/api/content/_collection_/trash.mjs +8 -8
- package/dist/astro/routes/api/dashboard.mjs +10 -8
- package/dist/astro/routes/api/dashboard.mjs.map +1 -1
- package/dist/astro/routes/api/dev/emails.mjs +4 -4
- package/dist/astro/routes/api/import/probe.d.mts +3 -3
- package/dist/astro/routes/api/import/probe.mjs +12 -12
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +5 -5
- package/dist/astro/routes/api/import/wordpress/execute.d.mts +9 -9
- package/dist/astro/routes/api/import/wordpress/execute.mjs +16 -15
- package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/media.mjs +10 -10
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +11 -11
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +10 -10
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +12 -12
- package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +18 -17
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
- package/dist/astro/routes/api/manifest.mjs +5 -5
- package/dist/astro/routes/api/mcp.mjs +213 -46
- package/dist/astro/routes/api/mcp.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_/confirm.mjs +8 -8
- package/dist/astro/routes/api/media/_id_.mjs +8 -8
- package/dist/astro/routes/api/media/file/_...key_.mjs +3 -3
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +4 -4
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +4 -4
- package/dist/astro/routes/api/media/providers/index.mjs +4 -4
- package/dist/astro/routes/api/media/upload-url.mjs +10 -10
- package/dist/astro/routes/api/media.mjs +13 -13
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +11 -9
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/items.mjs +11 -9
- package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +11 -9
- package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/translations.mjs +11 -9
- package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_.mjs +11 -9
- package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/menus/index.mjs +11 -9
- package/dist/astro/routes/api/menus/index.mjs.map +1 -1
- package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
- package/dist/astro/routes/api/oauth/device/authorize.mjs +7 -7
- package/dist/astro/routes/api/oauth/device/code.mjs +10 -10
- package/dist/astro/routes/api/oauth/device/token.mjs +9 -9
- package/dist/astro/routes/api/oauth/register.mjs +4 -4
- package/dist/astro/routes/api/oauth/token/refresh.mjs +7 -7
- package/dist/astro/routes/api/oauth/token/revoke.mjs +7 -7
- package/dist/astro/routes/api/oauth/token.mjs +7 -7
- package/dist/astro/routes/api/openapi.json.mjs +5 -5
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +5 -5
- package/dist/astro/routes/api/redirects/404s/index.mjs +11 -11
- package/dist/astro/routes/api/redirects/404s/summary.mjs +11 -11
- package/dist/astro/routes/api/redirects/_id_.mjs +12 -12
- package/dist/astro/routes/api/redirects/index.mjs +12 -12
- package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +4 -4
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +4 -4
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +39 -38
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +39 -38
- package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +39 -38
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +39 -38
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/index.mjs +39 -38
- package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/index.mjs +7 -7
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +39 -38
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/schema/orphans/index.mjs +39 -38
- package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
- package/dist/astro/routes/api/search/enable.mjs +11 -11
- package/dist/astro/routes/api/search/index.mjs +10 -10
- package/dist/astro/routes/api/search/rebuild.mjs +11 -11
- package/dist/astro/routes/api/search/stats.mjs +7 -7
- package/dist/astro/routes/api/search/suggest.mjs +10 -10
- package/dist/astro/routes/api/sections/_slug_.mjs +10 -10
- package/dist/astro/routes/api/sections/index.mjs +10 -10
- package/dist/astro/routes/api/settings/email.mjs +6 -6
- package/dist/astro/routes/api/settings.mjs +16 -15
- package/dist/astro/routes/api/settings.mjs.map +1 -1
- package/dist/astro/routes/api/setup/admin-verify.mjs +13 -13
- package/dist/astro/routes/api/setup/admin.mjs +12 -12
- package/dist/astro/routes/api/setup/dev-bypass.d.mts.map +1 -1
- package/dist/astro/routes/api/setup/dev-bypass.mjs +29 -27
- package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
- package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
- package/dist/astro/routes/api/setup/index.mjs +29 -28
- package/dist/astro/routes/api/setup/index.mjs.map +1 -1
- package/dist/astro/routes/api/setup/status.mjs +5 -5
- package/dist/astro/routes/api/snapshot.d.mts.map +1 -1
- package/dist/astro/routes/api/snapshot.mjs +10 -9
- package/dist/astro/routes/api/snapshot.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +16 -14
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +16 -14
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +16 -14
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/index.mjs +16 -14
- package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
- package/dist/astro/routes/api/themes/preview.mjs +8 -8
- package/dist/astro/routes/api/typegen.mjs +6 -6
- package/dist/astro/routes/api/well-known/auth.mjs +2 -2
- package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
- package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +8 -8
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +11 -11
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +11 -11
- package/dist/astro/routes/api/widget-areas/_name_.mjs +7 -7
- package/dist/astro/routes/api/widget-areas/index.mjs +11 -11
- package/dist/astro/routes/api/widget-components.mjs +4 -4
- package/dist/astro/routes/robots.txt.mjs +10 -9
- package/dist/astro/routes/robots.txt.mjs.map +1 -1
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +13 -12
- package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
- package/dist/astro/routes/sitemap.xml.mjs +11 -10
- package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
- package/dist/astro/types.d.mts +16 -12
- package/dist/astro/types.d.mts.map +1 -1
- package/dist/auth/providers/github.d.mts +1 -1
- package/dist/auth/providers/google.d.mts +1 -1
- package/dist/{authorize-D5gfBVU5.mjs → authorize-C0EYoUeV.mjs} +2 -2
- package/dist/{authorize-D5gfBVU5.mjs.map → authorize-C0EYoUeV.mjs.map} +1 -1
- package/dist/{base64-CqR-7kqF.mjs → base64-CmWvODNW.mjs} +1 -1
- package/dist/{base64-CqR-7kqF.mjs.map → base64-CmWvODNW.mjs.map} +1 -1
- package/dist/{byline-V_Qp1Ziw.mjs → byline-CC0WS4Gu.mjs} +17 -8
- package/dist/byline-CC0WS4Gu.mjs.map +1 -0
- package/dist/{byline-fields-B0NO1yUB.mjs → byline-fields-53i9Et0x.mjs} +3 -3
- package/dist/{byline-fields-B0NO1yUB.mjs.map → byline-fields-53i9Et0x.mjs.map} +1 -1
- package/dist/{byline-fields-nBVqK_Ff.mjs → byline-fields-DNp0HNKc.mjs} +2 -2
- package/dist/{byline-fields-nBVqK_Ff.mjs.map → byline-fields-DNp0HNKc.mjs.map} +1 -1
- package/dist/{byline-fields-CQJRIQkn.d.mts → byline-fields-jy07PZJM.d.mts} +36 -31
- package/dist/byline-fields-jy07PZJM.d.mts.map +1 -0
- package/dist/{byline-registry-DedidtqC.mjs → byline-registry-BOjqDOim.mjs} +3 -3
- package/dist/{byline-registry-DedidtqC.mjs.map → byline-registry-BOjqDOim.mjs.map} +1 -1
- package/dist/{bylines-DfGDnred.mjs → bylines-CCO1CYnH.mjs} +8 -8
- package/dist/{bylines-DfGDnred.mjs.map → bylines-CCO1CYnH.mjs.map} +1 -1
- package/dist/{bylines-B2NWnIwS.mjs → bylines-DGekMGGm.mjs} +10 -4
- package/dist/{bylines-B2NWnIwS.mjs.map → bylines-DGekMGGm.mjs.map} +1 -1
- package/dist/{cache-DTTHWD8n.mjs → cache-pXTpun6s.mjs} +3 -3
- package/dist/{cache-DTTHWD8n.mjs.map → cache-pXTpun6s.mjs.map} +1 -1
- package/dist/{challenge-store-woE0bbCf.mjs → challenge-store-C6E_kWTs.mjs} +1 -1
- package/dist/{challenge-store-woE0bbCf.mjs.map → challenge-store-C6E_kWTs.mjs.map} +1 -1
- package/dist/{chunks-BerYVuve.mjs → chunks-SyjZaYwV.mjs} +2 -2
- package/dist/{chunks-BerYVuve.mjs.map → chunks-SyjZaYwV.mjs.map} +1 -1
- package/dist/cli/index.mjs +27 -26
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/cf-access.d.mts +1 -1
- package/dist/client/index.d.mts +1 -1
- package/dist/client/index.mjs +2 -1
- package/dist/client/index.mjs.map +1 -1
- package/dist/{comment-sqQxNpN3.mjs → comment-80UyJJUR.mjs} +11 -3
- package/dist/comment-80UyJJUR.mjs.map +1 -0
- package/dist/comment-reaction-B6AdcpXw.mjs +85 -0
- package/dist/comment-reaction-B6AdcpXw.mjs.map +1 -0
- package/dist/{comments-D2hNuxNa.mjs → comments-CtPkT2tp.mjs} +3 -3
- package/dist/{comments-D2hNuxNa.mjs.map → comments-CtPkT2tp.mjs.map} +1 -1
- package/dist/{components-DYKp2gmo.mjs → components-D6ZnrzbB.mjs} +1 -1
- package/dist/{components-DYKp2gmo.mjs.map → components-D6ZnrzbB.mjs.map} +1 -1
- package/dist/{content-BIlVx-RX.mjs → content-2PTDNnoh.mjs} +22 -7
- package/dist/content-2PTDNnoh.mjs.map +1 -0
- package/dist/{context-Cm4pt1Ws.mjs → context-f1__jpzF.mjs} +11 -11
- package/dist/{context-Cm4pt1Ws.mjs.map → context-f1__jpzF.mjs.map} +1 -1
- package/dist/{cron-DdEVrQ2Y.mjs → cron-CQPxBjYs.mjs} +1 -1
- package/dist/{cron-DdEVrQ2Y.mjs.map → cron-CQPxBjYs.mjs.map} +1 -1
- package/dist/{dashboard-C-UYpps0.mjs → dashboard-BOESNcwE.mjs} +4 -4
- package/dist/{dashboard-C-UYpps0.mjs.map → dashboard-BOESNcwE.mjs.map} +1 -1
- package/dist/database/instrumentation.d.mts +19 -0
- package/dist/database/instrumentation.d.mts.map +1 -1
- package/dist/database/instrumentation.mjs +8 -1
- package/dist/database/instrumentation.mjs.map +1 -1
- package/dist/db/index.d.mts +3 -3
- package/dist/db/index.mjs +1 -1
- package/dist/db/libsql.d.mts +1 -1
- package/dist/db/postgres.d.mts +1 -1
- package/dist/db/sqlite.d.mts +1 -1
- package/dist/{db-errors-BluWkwGI.mjs → db-errors-CrC5w3Jz.mjs} +1 -1
- package/dist/{db-errors-BluWkwGI.mjs.map → db-errors-CrC5w3Jz.mjs.map} +1 -1
- package/dist/{default-NHGuJzQ3.mjs → default-CpBEPn6a.mjs} +1 -1
- package/dist/{default-NHGuJzQ3.mjs.map → default-CpBEPn6a.mjs.map} +1 -1
- package/dist/{device-flow-BQApWgnW.mjs → device-flow-Bn-qiDrw.mjs} +5 -5
- package/dist/{device-flow-BQApWgnW.mjs.map → device-flow-Bn-qiDrw.mjs.map} +1 -1
- package/dist/{email-console-BbU3RbWv.mjs → email-console-B9VS6eN4.mjs} +1 -1
- package/dist/{email-console-BbU3RbWv.mjs.map → email-console-B9VS6eN4.mjs.map} +1 -1
- package/dist/{error-CNn_w7jf.mjs → error-BQ1pxs0L.mjs} +2 -2
- package/dist/{error-CNn_w7jf.mjs.map → error-BQ1pxs0L.mjs.map} +1 -1
- package/dist/{escape-DPgcxcpL.mjs → escape-BtbJWyaW.mjs} +1 -1
- package/dist/{escape-DPgcxcpL.mjs.map → escape-BtbJWyaW.mjs.map} +1 -1
- package/dist/{fts-manager-Cx5z8jdA.mjs → fts-manager-DtiWqwNJ.mjs} +2 -2
- package/dist/{fts-manager-Cx5z8jdA.mjs.map → fts-manager-DtiWqwNJ.mjs.map} +1 -1
- package/dist/{hash-DlvIFn0b.mjs → hash-BowcuPwv.mjs} +1 -1
- package/dist/{hash-DlvIFn0b.mjs.map → hash-BowcuPwv.mjs.map} +1 -1
- package/dist/{import-KyxT1Mbs.mjs → import-DqSGOlmR.mjs} +4 -4
- package/dist/{import-KyxT1Mbs.mjs.map → import-DqSGOlmR.mjs.map} +1 -1
- package/dist/{index-D2VAiumu.d.mts → index-C2dLNT6S.d.mts} +172 -17
- package/dist/index-C2dLNT6S.d.mts.map +1 -0
- package/dist/{index-uT2yR66F.d.mts → index-ZDEwR7qW.d.mts} +3 -3
- package/dist/{index-uT2yR66F.d.mts.map → index-ZDEwR7qW.d.mts.map} +1 -1
- package/dist/index.d.mts +18 -17
- package/dist/index.mjs +63 -61
- package/dist/{init-lock-DlBHjf9-.mjs → init-lock-6b309ZrF.mjs} +2 -29
- package/dist/init-lock-6b309ZrF.mjs.map +1 -0
- package/dist/{load-Dq91b_DK.mjs → load-Dtoo7KcJ.mjs} +2 -2
- package/dist/{load-Dq91b_DK.mjs.map → load-Dtoo7KcJ.mjs.map} +1 -1
- package/dist/{loader-BqWjcH3h.mjs → loader-C8Z48Uof.mjs} +4 -4
- package/dist/{loader-BqWjcH3h.mjs.map → loader-C8Z48Uof.mjs.map} +1 -1
- package/dist/{manifest-schema-DFPeqMAn.mjs → manifest-schema-DDSbwkAL.mjs} +1 -1
- package/dist/{manifest-schema-DFPeqMAn.mjs.map → manifest-schema-DDSbwkAL.mjs.map} +1 -1
- package/dist/media/image-endpoint.d.mts +74 -0
- package/dist/media/image-endpoint.d.mts.map +1 -0
- package/dist/media/image-endpoint.mjs +162 -0
- package/dist/media/image-endpoint.mjs.map +1 -0
- package/dist/media/index.d.mts +1 -1
- package/dist/media/index.mjs +2 -2
- package/dist/media/local-runtime.d.mts +11 -11
- package/dist/media/local-runtime.mjs +9 -8
- package/dist/media/local-runtime.mjs.map +1 -1
- package/dist/{media-JOf3pNkw.mjs → media-Bw0sA6rb.mjs} +2 -2
- package/dist/{media-JOf3pNkw.mjs.map → media-Bw0sA6rb.mjs.map} +1 -1
- package/dist/{media-allowlist-_A0SuDn4.mjs → media-allowlist-DunzrKFM.mjs} +2 -2
- package/dist/{media-allowlist-_A0SuDn4.mjs.map → media-allowlist-DunzrKFM.mjs.map} +1 -1
- package/dist/{media-url-CqLd69IO.mjs → media-url-S22B6aPr.mjs} +1 -1
- package/dist/{media-url-CqLd69IO.mjs.map → media-url-S22B6aPr.mjs.map} +1 -1
- package/dist/{menus-DX4_E01q.mjs → menus-CYs0WZoL.mjs} +20 -6
- package/dist/menus-CYs0WZoL.mjs.map +1 -0
- package/dist/{menus-Ryk9L7fT.mjs → menus-DOs1MQJg.mjs} +120 -20
- package/dist/menus-DOs1MQJg.mjs.map +1 -0
- package/dist/{mime-YbtlEtvS.mjs → mime-DYpsOAny.mjs} +1 -1
- package/dist/{mime-YbtlEtvS.mjs.map → mime-DYpsOAny.mjs.map} +1 -1
- package/dist/{mode-CGXzIbD8.mjs → mode-CFh8Dw8G.mjs} +1 -1
- package/dist/{mode-CGXzIbD8.mjs.map → mode-CFh8Dw8G.mjs.map} +1 -1
- package/dist/{normalize-DKsg36ty.mjs → normalize-Uam4_Vkr.mjs} +1 -1
- package/dist/{normalize-DKsg36ty.mjs.map → normalize-Uam4_Vkr.mjs.map} +1 -1
- package/dist/{oauth-authorization-C2kVyjXI.mjs → oauth-authorization-BN-t83Uy.mjs} +5 -5
- package/dist/{oauth-authorization-C2kVyjXI.mjs.map → oauth-authorization-BN-t83Uy.mjs.map} +1 -1
- package/dist/{oauth-clients-BC873NCV.mjs → oauth-clients-R6I_V0qz.mjs} +1 -1
- package/dist/{oauth-clients-BC873NCV.mjs.map → oauth-clients-R6I_V0qz.mjs.map} +1 -1
- package/dist/{oauth-state-store-Cd--TUaq.mjs → oauth-state-store-Csoc6kkR.mjs} +1 -1
- package/dist/{oauth-state-store-Cd--TUaq.mjs.map → oauth-state-store-Csoc6kkR.mjs.map} +1 -1
- package/dist/{oauth-user-lookup-e4wOvDud.mjs → oauth-user-lookup-d7VYjTpx.mjs} +1 -1
- package/dist/{oauth-user-lookup-e4wOvDud.mjs.map → oauth-user-lookup-d7VYjTpx.mjs.map} +1 -1
- package/dist/object-cache/memory.d.mts +15 -0
- package/dist/object-cache/memory.d.mts.map +1 -0
- package/dist/object-cache/memory.mjs +56 -0
- package/dist/object-cache/memory.mjs.map +1 -0
- package/dist/object-cache-SEb2IM4Z.mjs +373 -0
- package/dist/object-cache-SEb2IM4Z.mjs.map +1 -0
- package/dist/{options-9kLgkE8m.d.mts → options-DFFpvNJU.d.mts} +3 -3
- package/dist/{options-9kLgkE8m.d.mts.map → options-DFFpvNJU.d.mts.map} +1 -1
- package/dist/{options-BPCVnesz.mjs → options-DTTML-Tx.mjs} +1 -1
- package/dist/{options-BPCVnesz.mjs.map → options-DTTML-Tx.mjs.map} +1 -1
- package/dist/page/index.d.mts +2 -2
- package/dist/{parse-DzSrk1t8.mjs → parse-qrHlnzTy.mjs} +2 -2
- package/dist/{parse-DzSrk1t8.mjs.map → parse-qrHlnzTy.mjs.map} +1 -1
- package/dist/{passkey-config-BpjbE_Uv.mjs → passkey-config-BJTbcnI5.mjs} +1 -1
- package/dist/{passkey-config-BpjbE_Uv.mjs.map → passkey-config-BJTbcnI5.mjs.map} +1 -1
- package/dist/{patterns-p-RBdTbM.mjs → patterns-BKmjvM7K.mjs} +1 -1
- package/dist/{patterns-p-RBdTbM.mjs.map → patterns-BKmjvM7K.mjs.map} +1 -1
- package/dist/{placeholder-2xumZh4g.mjs → placeholder-CIDCpyEY.mjs} +1 -1
- package/dist/{placeholder-2xumZh4g.mjs.map → placeholder-CIDCpyEY.mjs.map} +1 -1
- package/dist/{placeholder-BevVKfay.d.mts → placeholder-CirPauNG.d.mts} +1 -1
- package/dist/{placeholder-BevVKfay.d.mts.map → placeholder-CirPauNG.d.mts.map} +1 -1
- package/dist/plugin-types.d.mts +1 -1
- package/dist/plugin-utils.d.mts +9 -9
- package/dist/plugins/adapt-sandbox-entry.d.mts +9 -9
- package/dist/plugins/adapt-sandbox-entry.mjs +4 -2
- package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
- package/dist/{transport-1cIrOb1Y.mjs → portable-text-BIFhrU6T.mjs} +2 -135
- package/dist/portable-text-BIFhrU6T.mjs.map +1 -0
- package/dist/{preview-Dqv2hwXr.mjs → preview-IDye9SPQ.mjs} +2 -2
- package/dist/{preview-Dqv2hwXr.mjs.map → preview-IDye9SPQ.mjs.map} +1 -1
- package/dist/{public-url-D_zARuvZ.mjs → public-url-8lFyQ8ZF.mjs} +1 -1
- package/dist/{public-url-D_zARuvZ.mjs.map → public-url-8lFyQ8ZF.mjs.map} +1 -1
- package/dist/{query-Crm038Mc.mjs → query-B1RVFUNM.mjs} +159 -31
- package/dist/query-B1RVFUNM.mjs.map +1 -0
- package/dist/{rate-limit-hRTBqmw1.mjs → rate-limit-DfNAqIWW.mjs} +2 -2
- package/dist/{rate-limit-hRTBqmw1.mjs.map → rate-limit-DfNAqIWW.mjs.map} +1 -1
- package/dist/{redirect-C-OOkyku.mjs → redirect-B4wuX2A5.mjs} +1 -1
- package/dist/{redirect-C-OOkyku.mjs.map → redirect-B4wuX2A5.mjs.map} +1 -1
- package/dist/{redirect-CRWIt8Zj.mjs → redirect-Bifv_yHv.mjs} +3 -3
- package/dist/{redirect-CRWIt8Zj.mjs.map → redirect-Bifv_yHv.mjs.map} +1 -1
- package/dist/{redirects-CP3TnTLO.mjs → redirects-CT_vb3NV.mjs} +6 -6
- package/dist/{redirects-CP3TnTLO.mjs.map → redirects-CT_vb3NV.mjs.map} +1 -1
- package/dist/{redirects-6Zg2SoYo.mjs → redirects-DUvXgzCX.mjs} +8 -3
- package/dist/redirects-DUvXgzCX.mjs.map +1 -0
- package/dist/{registry-diMzD1Wf.mjs → registry-CjK96fHD.mjs} +6 -6
- package/dist/{registry-diMzD1Wf.mjs.map → registry-CjK96fHD.mjs.map} +1 -1
- package/dist/{request-cache-UwmBAiUK.mjs → request-cache-KCNHp_RJ.mjs} +1 -1
- package/dist/{request-cache-UwmBAiUK.mjs.map → request-cache-KCNHp_RJ.mjs.map} +1 -1
- package/dist/{request-meta-DPechd0W.mjs → request-meta-ei3ATilC.mjs} +2 -2
- package/dist/{request-meta-DPechd0W.mjs.map → request-meta-ei3ATilC.mjs.map} +1 -1
- package/dist/{resolve-B3NUUtVY.mjs → resolve-CpbBglV0.mjs} +1 -1
- package/dist/{resolve-B3NUUtVY.mjs.map → resolve-CpbBglV0.mjs.map} +1 -1
- package/dist/{runner--4wMWwKM.mjs → runner-DYYnW530.mjs} +201 -170
- package/dist/runner-DYYnW530.mjs.map +1 -0
- package/dist/{runner-C8vcbvCe.d.mts → runner-jdXtFEd3.d.mts} +2 -2
- package/dist/{runner-C8vcbvCe.d.mts.map → runner-jdXtFEd3.d.mts.map} +1 -1
- package/dist/runtime.d.mts +10 -10
- package/dist/runtime.mjs +3 -3
- package/dist/{schema-BDOkd3OU.mjs → schema-5z2Jfnbm.mjs} +13 -8
- package/dist/schema-5z2Jfnbm.mjs.map +1 -0
- package/dist/{search-Bs_J_EW-.mjs → search-D9FkoM-k.mjs} +4 -4
- package/dist/{search-Bs_J_EW-.mjs.map → search-D9FkoM-k.mjs.map} +1 -1
- package/dist/{secrets-C8xmE6mR.mjs → secrets-BUE5UQys.mjs} +5 -5
- package/dist/{secrets-C8xmE6mR.mjs.map → secrets-BUE5UQys.mjs.map} +1 -1
- package/dist/{sections-P0zuBlyz.mjs → sections-DWYZo6HK.mjs} +3 -3
- package/dist/{sections-P0zuBlyz.mjs.map → sections-DWYZo6HK.mjs.map} +1 -1
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +22 -21
- package/dist/seo/index.d.mts +1 -1
- package/dist/seo/index.mjs +1 -1
- package/dist/{seo-DpNgGQjF.mjs → seo-Cu47j3mJ.mjs} +5 -2
- package/dist/seo-Cu47j3mJ.mjs.map +1 -0
- package/dist/{seo-CLhm-Fmb.mjs → seo-DRnqnstF.mjs} +1 -1
- package/dist/{seo-CLhm-Fmb.mjs.map → seo-DRnqnstF.mjs.map} +1 -1
- package/dist/{service-CDQQnT8W.mjs → service-DTmtqCnw.mjs} +3 -3
- package/dist/{service-CDQQnT8W.mjs.map → service-DTmtqCnw.mjs.map} +1 -1
- package/dist/session-user-DmtPMNa1.mjs +51 -0
- package/dist/session-user-DmtPMNa1.mjs.map +1 -0
- package/dist/{settings-sO0Fif4p.mjs → settings-DUrVDN0c.mjs} +3 -3
- package/dist/{settings-sO0Fif4p.mjs.map → settings-DUrVDN0c.mjs.map} +1 -1
- package/dist/{settings-BjBsmVAo.mjs → settings-yaxu9mU-.mjs} +18 -10
- package/dist/settings-yaxu9mU-.mjs.map +1 -0
- package/dist/{setup-complete-CMMr-oZU.mjs → setup-complete-BWFHzgvZ.mjs} +2 -2
- package/dist/{setup-complete-CMMr-oZU.mjs.map → setup-complete-BWFHzgvZ.mjs.map} +1 -1
- package/dist/{setup-nonce-169xl4fV.mjs → setup-nonce-DFWG-J5c.mjs} +1 -1
- package/dist/{setup-nonce-169xl4fV.mjs.map → setup-nonce-DFWG-J5c.mjs.map} +1 -1
- package/dist/{single-flight-cache-C0UV1Npg.mjs → single-flight-cache-B5p5cNOL.mjs} +2 -2
- package/dist/{single-flight-cache-C0UV1Npg.mjs.map → single-flight-cache-B5p5cNOL.mjs.map} +1 -1
- package/dist/{site-url-vtsuOvSD.mjs → site-url-BOTPgmeM.mjs} +2 -2
- package/dist/{site-url-vtsuOvSD.mjs.map → site-url-BOTPgmeM.mjs.map} +1 -1
- package/dist/{slugify-Cjh1ssOZ.mjs → slugify-Cce3dTdg.mjs} +1 -1
- package/dist/{slugify-Cjh1ssOZ.mjs.map → slugify-Cce3dTdg.mjs.map} +1 -1
- package/dist/{ssrf-XO05Voq6.mjs → ssrf-B0VeRLrp.mjs} +1 -1
- package/dist/{ssrf-XO05Voq6.mjs.map → ssrf-B0VeRLrp.mjs.map} +1 -1
- package/dist/{status-2gZklYuj.mjs → status-CB2basWJ.mjs} +1 -1
- package/dist/{status-2gZklYuj.mjs.map → status-CB2basWJ.mjs.map} +1 -1
- package/dist/storage/local.d.mts +1 -1
- package/dist/storage/local.mjs +1 -1
- package/dist/storage/s3.d.mts +1 -1
- package/dist/storage/s3.mjs +1 -1
- package/dist/{taxonomies-BBxYA38v.mjs → taxonomies-Be9B1jEj.mjs} +156 -122
- package/dist/taxonomies-Be9B1jEj.mjs.map +1 -0
- package/dist/{taxonomies-DuESHWKI.mjs → taxonomies-CJmkEpdS.mjs} +7 -7
- package/dist/{taxonomies-DuESHWKI.mjs.map → taxonomies-CJmkEpdS.mjs.map} +1 -1
- package/dist/{taxonomy-CdllE4oq.mjs → taxonomy-B2HQuVf5.mjs} +19 -6
- package/dist/taxonomy-B2HQuVf5.mjs.map +1 -0
- package/dist/{tokens-DMkVjxrx.mjs → tokens-BvrJvIB6.mjs} +2 -2
- package/dist/{tokens-DMkVjxrx.mjs.map → tokens-BvrJvIB6.mjs.map} +1 -1
- package/dist/{transaction-x2tJQ-A1.mjs → transaction-qfqpPVpu.mjs} +1 -1
- package/dist/{transaction-x2tJQ-A1.mjs.map → transaction-qfqpPVpu.mjs.map} +1 -1
- package/dist/transport-B4rXnSTf.mjs +135 -0
- package/dist/transport-B4rXnSTf.mjs.map +1 -0
- package/dist/{transport-jdvsZEIt.d.mts → transport-k7YjfmEn.d.mts} +1 -1
- package/dist/{transport-jdvsZEIt.d.mts.map → transport-k7YjfmEn.d.mts.map} +1 -1
- package/dist/{trusted-proxy-CHp41Fjj.mjs → trusted-proxy-DY1_UqHr.mjs} +1 -1
- package/dist/{trusted-proxy-CHp41Fjj.mjs.map → trusted-proxy-DY1_UqHr.mjs.map} +1 -1
- package/dist/{types-DO7whVYU.d.mts → types-CIKX2HO5.d.mts} +2 -2
- package/dist/{types-DO7whVYU.d.mts.map → types-CIKX2HO5.d.mts.map} +1 -1
- package/dist/{types-u_XxjbS8.d.mts → types-CKNXt63n.d.mts} +1 -1
- package/dist/{types-u_XxjbS8.d.mts.map → types-CKNXt63n.d.mts.map} +1 -1
- package/dist/{types-BTnnBYVX.d.mts → types-CWGYDYqF.d.mts} +2 -2
- package/dist/{types-BTnnBYVX.d.mts.map → types-CWGYDYqF.d.mts.map} +1 -1
- package/dist/{types-CkEuk-Zr.d.mts → types-CgvhU-hF.d.mts} +1 -1
- package/dist/{types-CkEuk-Zr.d.mts.map → types-CgvhU-hF.d.mts.map} +1 -1
- package/dist/{types-BFgYtuKd.d.mts → types-CmivgZbp.d.mts} +1 -1
- package/dist/{types-BFgYtuKd.d.mts.map → types-CmivgZbp.d.mts.map} +1 -1
- package/dist/{types-Del0VMij.d.mts → types-Czg1S3gB.d.mts} +9 -1
- package/dist/{types-Del0VMij.d.mts.map → types-Czg1S3gB.d.mts.map} +1 -1
- package/dist/types-DCNNfeCv.d.mts +124 -0
- package/dist/types-DCNNfeCv.d.mts.map +1 -0
- package/dist/{types-Bzfk2yC8.d.mts → types-DPCpkzvS.d.mts} +1 -1
- package/dist/{types-Bzfk2yC8.d.mts.map → types-DPCpkzvS.d.mts.map} +1 -1
- package/dist/{types-DdkL6fyv.d.mts → types-DXLVzV2w.d.mts} +1 -1
- package/dist/{types-DdkL6fyv.d.mts.map → types-DXLVzV2w.d.mts.map} +1 -1
- package/dist/{types-BXSUSAjt.mjs → types-DXOIbece.mjs} +3 -3
- package/dist/{types-BXSUSAjt.mjs.map → types-DXOIbece.mjs.map} +1 -1
- package/dist/{types-DejCHqWT.mjs → types-DYF2_Vf4.mjs} +1 -1
- package/dist/{types-DejCHqWT.mjs.map → types-DYF2_Vf4.mjs.map} +1 -1
- package/dist/{types-BIduXPJk.mjs → types-tM44hEcf.mjs} +1 -1
- package/dist/{types-BIduXPJk.mjs.map → types-tM44hEcf.mjs.map} +1 -1
- package/dist/{user-C0um7wrg.mjs → user-Db-Rti_z.mjs} +3 -3
- package/dist/{user-C0um7wrg.mjs.map → user-Db-Rti_z.mjs.map} +1 -1
- package/dist/{utils-C4M981Br.mjs → utils-LbHcSRTj.mjs} +2 -2
- package/dist/{utils-C4M981Br.mjs.map → utils-LbHcSRTj.mjs.map} +1 -1
- package/dist/{validate-DGhQPXzI.mjs → validate-Bwl64sxv.mjs} +3 -3
- package/dist/{validate-DGhQPXzI.mjs.map → validate-Bwl64sxv.mjs.map} +1 -1
- package/dist/{validate-cJOiOvT2.d.mts → validate-CE2M0nvx.d.mts} +5 -5
- package/dist/{validate-cJOiOvT2.d.mts.map → validate-CE2M0nvx.d.mts.map} +1 -1
- package/dist/{validation-DVHjPM1M.mjs → validation-C_yOvFaO.mjs} +6 -6
- package/dist/{validation-DVHjPM1M.mjs.map → validation-C_yOvFaO.mjs.map} +1 -1
- package/dist/version-RnYXYjzD.mjs +7 -0
- package/dist/{version-BOjj_cfz.mjs.map → version-RnYXYjzD.mjs.map} +1 -1
- package/dist/{widgets-Ci6hLwfO.mjs → widgets-8GONuRHo.mjs} +4 -4
- package/dist/{widgets-Ci6hLwfO.mjs.map → widgets-8GONuRHo.mjs.map} +1 -1
- package/dist/{zod-generator-CarzgPAu.mjs → zod-generator-D481JjzD.mjs} +3 -3
- package/dist/{zod-generator-CarzgPAu.mjs.map → zod-generator-D481JjzD.mjs.map} +1 -1
- package/package.json +18 -6
- package/src/api/handlers/api-tokens.ts +19 -0
- package/src/api/handlers/comment-reactions.ts +165 -0
- package/src/api/handlers/schema.ts +8 -0
- package/src/api/schemas/comments.ts +10 -0
- package/src/astro/image-endpoint.ts +84 -0
- package/src/astro/index.ts +6 -0
- package/src/astro/integration/index.ts +83 -22
- package/src/astro/integration/routes.ts +5 -0
- package/src/astro/integration/runtime.ts +65 -1
- package/src/astro/integration/virtual-modules.ts +32 -0
- package/src/astro/integration/vite-config.ts +16 -0
- package/src/astro/middleware/auth.ts +4 -3
- package/src/astro/middleware/stream-end-metrics.ts +11 -1
- package/src/astro/middleware.ts +41 -3
- package/src/astro/object-cache/adapters.ts +50 -0
- package/src/astro/prefetch.ts +77 -0
- package/src/astro/routes/api/comments/[collection]/[contentId]/reactions.ts +97 -0
- package/src/astro/routes/api/setup/dev-bypass.ts +5 -1
- package/src/astro/routes/api/snapshot.ts +3 -1
- package/src/astro/session-user.ts +57 -0
- package/src/astro/types.ts +1 -0
- package/src/comments/query.ts +78 -7
- package/src/comments/ranking.ts +58 -0
- package/src/components/Comments.astro +136 -1
- package/src/database/instrumentation.ts +21 -1
- package/src/database/migrations/044_comment_reactions.ts +56 -0
- package/src/database/migrations/runner.ts +2 -0
- package/src/database/repositories/byline.ts +13 -0
- package/src/database/repositories/comment-reaction.ts +132 -0
- package/src/database/repositories/comment.ts +10 -0
- package/src/database/repositories/content.ts +25 -3
- package/src/database/repositories/menu.ts +13 -1
- package/src/database/repositories/seo.ts +3 -0
- package/src/database/repositories/taxonomy.ts +13 -1
- package/src/database/types.ts +9 -0
- package/src/emdash-runtime.ts +18 -4
- package/src/index.ts +22 -0
- package/src/mcp/server.ts +307 -20
- package/src/media/image-endpoint.ts +167 -0
- package/src/menus/index.ts +11 -4
- package/src/object-cache/codec.ts +73 -0
- package/src/object-cache/index.ts +495 -0
- package/src/object-cache/memory.ts +91 -0
- package/src/object-cache/types.ts +124 -0
- package/src/plugins/adapt-sandbox-entry.ts +11 -1
- package/src/query.ts +196 -17
- package/src/schema/query.ts +11 -4
- package/src/settings/index.ts +18 -5
- package/src/taxonomies/index.ts +237 -165
- package/src/virtual-modules.d.ts +11 -0
- package/dist/api-DxjIV2o8.mjs.map +0 -1
- package/dist/api-tokens-BFFkB0jB.mjs.map +0 -1
- package/dist/byline-V_Qp1Ziw.mjs.map +0 -1
- package/dist/byline-fields-CQJRIQkn.d.mts.map +0 -1
- package/dist/comment-sqQxNpN3.mjs.map +0 -1
- package/dist/content-BIlVx-RX.mjs.map +0 -1
- package/dist/index-D2VAiumu.d.mts.map +0 -1
- package/dist/init-lock-DlBHjf9-.mjs.map +0 -1
- package/dist/menus-DX4_E01q.mjs.map +0 -1
- package/dist/menus-Ryk9L7fT.mjs.map +0 -1
- package/dist/query-Crm038Mc.mjs.map +0 -1
- package/dist/redirects-6Zg2SoYo.mjs.map +0 -1
- package/dist/runner--4wMWwKM.mjs.map +0 -1
- package/dist/schema-BDOkd3OU.mjs.map +0 -1
- package/dist/seo-DpNgGQjF.mjs.map +0 -1
- package/dist/settings-BjBsmVAo.mjs.map +0 -1
- package/dist/taxonomies-BBxYA38v.mjs.map +0 -1
- package/dist/taxonomy-CdllE4oq.mjs.map +0 -1
- package/dist/transport-1cIrOb1Y.mjs.map +0 -1
- package/dist/version-BOjj_cfz.mjs +0 -7
- /package/dist/{api-tokens-C7ywRx7l.mjs → api-tokens-BVH-H8Z9.mjs} +0 -0
- /package/dist/{ssrf-CRZGzjdL.mjs → ssrf-Cz1e2QPn.mjs} +0 -0
- /package/dist/{types-BoRm8-pp.mjs → types-Bfr2Pj6z.mjs} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import "../../../base64-
|
|
2
|
-
import "../../../types-
|
|
3
|
-
import { r as handleError } from "../../../error-
|
|
4
|
-
import { n as VERSION, t as COMMIT } from "../../../version-
|
|
5
|
-
import { t as getAuthMode } from "../../../mode-
|
|
1
|
+
import "../../../base64-CmWvODNW.mjs";
|
|
2
|
+
import "../../../types-DXOIbece.mjs";
|
|
3
|
+
import { r as handleError } from "../../../error-BQ1pxs0L.mjs";
|
|
4
|
+
import { n as VERSION, t as COMMIT } from "../../../version-RnYXYjzD.mjs";
|
|
5
|
+
import { t as getAuthMode } from "../../../mode-CFh8Dw8G.mjs";
|
|
6
6
|
|
|
7
7
|
//#region src/astro/routes/api/manifest.ts
|
|
8
8
|
const prerender = false;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import "../../../base64-
|
|
2
|
-
import "../../../types-
|
|
3
|
-
import { t as apiError } from "../../../error-
|
|
4
|
-
import {
|
|
5
|
-
import "../../../byline-fields-
|
|
6
|
-
import "../../../status-
|
|
1
|
+
import "../../../base64-CmWvODNW.mjs";
|
|
2
|
+
import "../../../types-DXOIbece.mjs";
|
|
3
|
+
import { t as apiError } from "../../../error-BQ1pxs0L.mjs";
|
|
4
|
+
import { Dn as contentBylineInputSchema, Tn as bylineUpdateBody, un as contentSeoInput, yn as bylineCreateBody } from "../../../redirects-DUvXgzCX.mjs";
|
|
5
|
+
import "../../../byline-fields-53i9Et0x.mjs";
|
|
6
|
+
import "../../../status-CB2basWJ.mjs";
|
|
7
7
|
import "../../../api/schemas/index.mjs";
|
|
8
|
-
import { i as hasScope } from "../../../api-tokens-
|
|
8
|
+
import { i as hasScope } from "../../../api-tokens-BVH-H8Z9.mjs";
|
|
9
|
+
import { n as convertDataForWrite, t as convertDataForRead } from "../../../portable-text-BIFhrU6T.mjs";
|
|
9
10
|
import { z } from "zod";
|
|
10
11
|
import { Role, canActOnOwn, hasPermission } from "@emdash-cms/auth";
|
|
11
12
|
import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
|
|
@@ -154,6 +155,40 @@ function getExtra(extra) {
|
|
|
154
155
|
function getEmDash(extra) {
|
|
155
156
|
return getExtra(extra).emdash;
|
|
156
157
|
}
|
|
158
|
+
async function getCollectionFields(ec, collection) {
|
|
159
|
+
try {
|
|
160
|
+
const { SchemaRegistry } = await import("../../../schema-5z2Jfnbm.mjs").then((n) => n.t);
|
|
161
|
+
const col = await new SchemaRegistry(ec.db).getCollectionWithFields(collection);
|
|
162
|
+
return col ? col.fields : null;
|
|
163
|
+
} catch {
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Convert markdown strings to Portable Text for `portableText` fields on write.
|
|
169
|
+
* Non-string values pass through, so callers may still send Portable Text. If
|
|
170
|
+
* the schema can't be loaded, data is returned unchanged for the handler to
|
|
171
|
+
* validate.
|
|
172
|
+
*/
|
|
173
|
+
async function convertWriteData(ec, collection, data) {
|
|
174
|
+
const fields = await getCollectionFields(ec, collection);
|
|
175
|
+
if (!fields) return data;
|
|
176
|
+
return convertDataForWrite(data, fields);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Convert `portableText` field values on each item's `data` to markdown,
|
|
180
|
+
* mutating in place. Inverse of {@link convertWriteData}, gated on the read
|
|
181
|
+
* tools' `markdown` argument.
|
|
182
|
+
*/
|
|
183
|
+
async function applyReadMarkdown(ec, collection, items) {
|
|
184
|
+
const fields = await getCollectionFields(ec, collection);
|
|
185
|
+
if (!fields) return;
|
|
186
|
+
for (const item of items) if (item.data && typeof item.data === "object") item.data = convertDataForRead(item.data, fields, false);
|
|
187
|
+
}
|
|
188
|
+
async function invalidateBylines() {
|
|
189
|
+
const { invalidateBylineCache } = await import("../../../bylines-CCO1CYnH.mjs").then((n) => n.t);
|
|
190
|
+
invalidateBylineCache();
|
|
191
|
+
}
|
|
157
192
|
/**
|
|
158
193
|
* Enforce a scope requirement on the current request.
|
|
159
194
|
*
|
|
@@ -260,21 +295,27 @@ function createMcpServer() {
|
|
|
260
295
|
cursor: z.string().min(1).max(2048).optional().describe("Pagination cursor from a previous response"),
|
|
261
296
|
orderBy: z.string().optional().describe("Field to sort by (e.g. 'created_at', 'updated_at')"),
|
|
262
297
|
order: z.enum(["asc", "desc"]).optional().describe("Sort direction (default 'desc')"),
|
|
263
|
-
locale: z.string().optional().describe("Filter by locale (e.g. 'en', 'fr'). Only relevant when i18n is enabled.")
|
|
298
|
+
locale: z.string().optional().describe("Filter by locale (e.g. 'en', 'fr'). Only relevant when i18n is enabled."),
|
|
299
|
+
markdown: z.boolean().optional().describe("Return rich text (portableText) fields as Markdown strings instead of Portable Text arrays (default false).")
|
|
264
300
|
}),
|
|
265
301
|
annotations: { readOnlyHint: true }
|
|
266
302
|
}, async (args, extra) => {
|
|
267
303
|
requireScope(extra, "content:read");
|
|
268
304
|
const ec = getEmDash(extra);
|
|
269
305
|
const status = canReadDrafts(extra) ? args.status : "published";
|
|
270
|
-
|
|
306
|
+
const result = await ec.handleContentList(args.collection, {
|
|
271
307
|
status,
|
|
272
308
|
limit: args.limit,
|
|
273
309
|
cursor: args.cursor,
|
|
274
310
|
orderBy: args.orderBy,
|
|
275
311
|
order: args.order,
|
|
276
312
|
locale: args.locale
|
|
277
|
-
})
|
|
313
|
+
});
|
|
314
|
+
if (result.success && args.markdown) {
|
|
315
|
+
const payload = result.data;
|
|
316
|
+
if (payload && typeof payload === "object" && "items" in payload && Array.isArray(payload.items)) await applyReadMarkdown(ec, args.collection, payload.items);
|
|
317
|
+
}
|
|
318
|
+
return unwrap(result);
|
|
278
319
|
});
|
|
279
320
|
server.registerTool("content_get", {
|
|
280
321
|
title: "Get Content",
|
|
@@ -282,12 +323,14 @@ function createMcpServer() {
|
|
|
282
323
|
inputSchema: z.object({
|
|
283
324
|
collection: z.string().describe("Collection slug (e.g. 'posts', 'pages')"),
|
|
284
325
|
id: z.string().describe("Content item ID (ULID) or slug"),
|
|
285
|
-
locale: z.string().optional().describe("Locale to scope slug lookup (e.g. 'fr'). Only affects slug resolution; IDs are globally unique.")
|
|
326
|
+
locale: z.string().optional().describe("Locale to scope slug lookup (e.g. 'fr'). Only affects slug resolution; IDs are globally unique."),
|
|
327
|
+
markdown: z.boolean().optional().describe("Return rich text (portableText) fields as Markdown strings instead of Portable Text arrays (default false).")
|
|
286
328
|
}),
|
|
287
329
|
annotations: { readOnlyHint: true }
|
|
288
330
|
}, async (args, extra) => {
|
|
289
331
|
requireScope(extra, "content:read");
|
|
290
|
-
const
|
|
332
|
+
const ec = getEmDash(extra);
|
|
333
|
+
const result = await ec.handleContentGet(args.collection, args.id, args.locale);
|
|
291
334
|
if (result.success && !canReadDrafts(extra)) {
|
|
292
335
|
const data = result.data && typeof result.data === "object" ? result.data : void 0;
|
|
293
336
|
const item = data?.item && typeof data.item === "object" ? data.item : void 0;
|
|
@@ -299,18 +342,20 @@ function createMcpServer() {
|
|
|
299
342
|
}
|
|
300
343
|
});
|
|
301
344
|
}
|
|
345
|
+
if (result.success && args.markdown && result.data?.item) await applyReadMarkdown(ec, args.collection, [result.data.item]);
|
|
302
346
|
return unwrap(result);
|
|
303
347
|
});
|
|
304
348
|
server.registerTool("content_create", {
|
|
305
349
|
title: "Create Content",
|
|
306
|
-
description: "Create a new content item in a collection. The 'data' object should contain field values matching the collection's schema (use schema_get_collection to check).
|
|
350
|
+
description: "Create a new content item in a collection. The 'data' object should contain field values matching the collection's schema (use schema_get_collection to check). For rich text (portableText) fields, pass a Markdown string — converted to Portable Text automatically; prefer this. Pass a Portable Text JSON array only for complex content Markdown can't express (custom blocks, embeds). A slug is auto-generated if not provided. Items are created as 'draft' by default — use content_publish to make them live.",
|
|
307
351
|
inputSchema: z.object({
|
|
308
352
|
collection: z.string().describe("Collection slug (e.g. 'posts', 'pages')"),
|
|
309
353
|
data: z.record(z.string(), z.unknown()).describe("Field values as key-value pairs matching the collection schema"),
|
|
310
354
|
slug: z.string().optional().describe("URL slug (auto-generated from title if omitted)"),
|
|
311
355
|
status: z.enum(["draft", "published"]).optional().describe("Initial status (default 'draft'). Requires publish permission."),
|
|
312
356
|
locale: z.string().optional().describe("Locale for this content (e.g. 'fr'). Defaults to default locale."),
|
|
313
|
-
translationOf: z.string().optional().describe("ID of the content item this is a translation of. Links items in the same translation group.")
|
|
357
|
+
translationOf: z.string().optional().describe("ID of the content item this is a translation of. Links items in the same translation group."),
|
|
358
|
+
bylines: z.array(contentBylineInputSchema).optional().describe("Bylines to credit. Each entry references an existing byline by id (see byline_list / byline_create) with an optional roleLabel. The first entry becomes the primary byline.")
|
|
314
359
|
}),
|
|
315
360
|
annotations: { destructiveHint: false }
|
|
316
361
|
}, async (args, extra) => {
|
|
@@ -322,17 +367,19 @@ function createMcpServer() {
|
|
|
322
367
|
if (!source.success) return unwrap(source);
|
|
323
368
|
requireOwnership(extra, extractContentAuthorId(source.data), "content:edit_own", "content:edit_any");
|
|
324
369
|
}
|
|
370
|
+
const data = await convertWriteData(emdash, args.collection, args.data);
|
|
325
371
|
if (args.status === "published") {
|
|
326
372
|
if (!hasPermission({
|
|
327
373
|
id: userId,
|
|
328
374
|
role: getExtra(extra).userRole
|
|
329
375
|
}, "content:publish_own")) throw new EmDashAuthError("Insufficient permissions: publishing requires content:publish_own", "INSUFFICIENT_PERMISSIONS");
|
|
330
376
|
const result = await emdash.handleContentCreate(args.collection, {
|
|
331
|
-
data
|
|
377
|
+
data,
|
|
332
378
|
slug: args.slug,
|
|
333
379
|
authorId: userId,
|
|
334
380
|
locale: args.locale,
|
|
335
|
-
translationOf: args.translationOf
|
|
381
|
+
translationOf: args.translationOf,
|
|
382
|
+
bylines: args.bylines
|
|
336
383
|
});
|
|
337
384
|
if (!result.success) return unwrap(result);
|
|
338
385
|
const itemId = extractContentId(result.data);
|
|
@@ -340,16 +387,17 @@ function createMcpServer() {
|
|
|
340
387
|
return unwrap(result);
|
|
341
388
|
}
|
|
342
389
|
return unwrap(await emdash.handleContentCreate(args.collection, {
|
|
343
|
-
data
|
|
390
|
+
data,
|
|
344
391
|
slug: args.slug,
|
|
345
392
|
authorId: userId,
|
|
346
393
|
locale: args.locale,
|
|
347
|
-
translationOf: args.translationOf
|
|
394
|
+
translationOf: args.translationOf,
|
|
395
|
+
bylines: args.bylines
|
|
348
396
|
}));
|
|
349
397
|
});
|
|
350
398
|
server.registerTool("content_update", {
|
|
351
399
|
title: "Update Content",
|
|
352
|
-
description: "Update an existing content item. Only include fields you want to change in the 'data' object — unspecified fields are left unchanged. Pass the _rev token from content_get to enable optimistic concurrency checking (the update fails if the item was modified since you read it). `seo` and `bylines` are persisted alongside the field updates in a single transaction. `publishedAt` requires the content:publish_any permission and is useful for migrations or correcting historical dates.",
|
|
400
|
+
description: "Update an existing content item. Only include fields you want to change in the 'data' object — unspecified fields are left unchanged. Rich text (portableText) fields accept a Markdown string (recommended, converted automatically); use a Portable Text JSON array only for complex content Markdown can't express (custom blocks, embeds). Pass the _rev token from content_get to enable optimistic concurrency checking (the update fails if the item was modified since you read it). `seo` and `bylines` are persisted alongside the field updates in a single transaction. `publishedAt` requires the content:publish_any permission and is useful for migrations or correcting historical dates.",
|
|
353
401
|
inputSchema: z.object({
|
|
354
402
|
collection: z.string().describe("Collection slug"),
|
|
355
403
|
id: z.string().describe("Content item ID or slug"),
|
|
@@ -373,6 +421,7 @@ function createMcpServer() {
|
|
|
373
421
|
if (!existing.success) return unwrap(existing);
|
|
374
422
|
const ownerId = extractContentAuthorId(existing.data);
|
|
375
423
|
requireOwnership(extra, ownerId, "content:edit_own", "content:edit_any");
|
|
424
|
+
const data = args.data ? await convertWriteData(emdash, args.collection, args.data) : args.data;
|
|
376
425
|
if (args.publishedAt !== void 0) {
|
|
377
426
|
if (!hasPermission({
|
|
378
427
|
id: userId,
|
|
@@ -384,7 +433,7 @@ function createMcpServer() {
|
|
|
384
433
|
requireOwnership(extra, ownerId, "content:publish_own", "content:publish_any");
|
|
385
434
|
if (args.data || args.slug || args.seo !== void 0 || args.bylines !== void 0 || args.publishedAt !== void 0) {
|
|
386
435
|
const updateResult = await emdash.handleContentUpdate(args.collection, resolvedId, {
|
|
387
|
-
data
|
|
436
|
+
data,
|
|
388
437
|
slug: args.slug,
|
|
389
438
|
authorId: userId,
|
|
390
439
|
locale: args.locale,
|
|
@@ -401,7 +450,7 @@ function createMcpServer() {
|
|
|
401
450
|
requireOwnership(extra, ownerId, "content:publish_own", "content:publish_any");
|
|
402
451
|
if (args.data || args.slug || args.seo !== void 0 || args.bylines !== void 0 || args.publishedAt !== void 0) {
|
|
403
452
|
const updateResult = await emdash.handleContentUpdate(args.collection, resolvedId, {
|
|
404
|
-
data
|
|
453
|
+
data,
|
|
405
454
|
slug: args.slug,
|
|
406
455
|
authorId: userId,
|
|
407
456
|
locale: args.locale,
|
|
@@ -415,7 +464,7 @@ function createMcpServer() {
|
|
|
415
464
|
return unwrap(await emdash.handleContentUnpublish(args.collection, resolvedId));
|
|
416
465
|
}
|
|
417
466
|
return unwrap(await emdash.handleContentUpdate(args.collection, resolvedId, {
|
|
418
|
-
data
|
|
467
|
+
data,
|
|
419
468
|
slug: args.slug,
|
|
420
469
|
authorId: userId,
|
|
421
470
|
locale: args.locale,
|
|
@@ -636,6 +685,124 @@ function createMcpServer() {
|
|
|
636
685
|
}
|
|
637
686
|
return unwrap(result);
|
|
638
687
|
});
|
|
688
|
+
server.registerTool("byline_list", {
|
|
689
|
+
title: "List Bylines",
|
|
690
|
+
description: "List bylines (author/contributor credits) with optional filtering and pagination. Bylines are standalone records referenced by content items; use the returned id with content_create/content_update or byline_get. Use the nextCursor value from the response to fetch the next page.",
|
|
691
|
+
inputSchema: z.object({
|
|
692
|
+
search: z.string().optional().describe("Filter by display name or slug substring"),
|
|
693
|
+
isGuest: z.boolean().optional().describe("Filter by guest (true) or linked-user (false)"),
|
|
694
|
+
userId: z.string().optional().describe("Filter to the byline linked to a CMS user ID"),
|
|
695
|
+
locale: z.string().optional().describe("Filter by locale (omit for all)"),
|
|
696
|
+
limit: z.number().int().min(1).max(100).optional().describe("Max items (default 50)"),
|
|
697
|
+
cursor: z.string().min(1).max(2048).optional().describe("Pagination cursor")
|
|
698
|
+
}),
|
|
699
|
+
annotations: { readOnlyHint: true }
|
|
700
|
+
}, async (args, extra) => {
|
|
701
|
+
requireScope(extra, "content:read");
|
|
702
|
+
const ec = getEmDash(extra);
|
|
703
|
+
try {
|
|
704
|
+
const { BylineRepository } = await import("../../../byline-CC0WS4Gu.mjs").then((n) => n.n);
|
|
705
|
+
return jsonResult(await new BylineRepository(ec.db).findMany({
|
|
706
|
+
search: args.search,
|
|
707
|
+
isGuest: args.isGuest,
|
|
708
|
+
userId: args.userId,
|
|
709
|
+
locale: args.locale,
|
|
710
|
+
limit: args.limit,
|
|
711
|
+
cursor: args.cursor
|
|
712
|
+
}));
|
|
713
|
+
} catch (error) {
|
|
714
|
+
return respondHandlerError(error, "BYLINE_LIST_ERROR");
|
|
715
|
+
}
|
|
716
|
+
});
|
|
717
|
+
server.registerTool("byline_get", {
|
|
718
|
+
title: "Get Byline",
|
|
719
|
+
description: "Get a single byline by its ID, including bio, avatar, website, linked user, and any custom fields.",
|
|
720
|
+
inputSchema: z.object({ id: z.string().describe("Byline ID") }),
|
|
721
|
+
annotations: { readOnlyHint: true }
|
|
722
|
+
}, async (args, extra) => {
|
|
723
|
+
requireScope(extra, "content:read");
|
|
724
|
+
const ec = getEmDash(extra);
|
|
725
|
+
try {
|
|
726
|
+
const { BylineRepository } = await import("../../../byline-CC0WS4Gu.mjs").then((n) => n.n);
|
|
727
|
+
const byline = await new BylineRepository(ec.db).findById(args.id);
|
|
728
|
+
if (!byline) return respondError("NOT_FOUND", `Byline '${args.id}' not found`);
|
|
729
|
+
return jsonResult(byline);
|
|
730
|
+
} catch (error) {
|
|
731
|
+
return respondHandlerError(error, "BYLINE_GET_ERROR");
|
|
732
|
+
}
|
|
733
|
+
});
|
|
734
|
+
server.registerTool("byline_create", {
|
|
735
|
+
title: "Create Byline",
|
|
736
|
+
description: "Create a new byline (author/contributor credit). The slug must be unique and contain only lowercase letters, digits, and hyphens. Link the byline to a CMS user via userId, or leave it as a standalone guest credit. The returned id can then be passed to content_create/content_update bylines.",
|
|
737
|
+
inputSchema: z.object({ ...bylineCreateBody.shape }),
|
|
738
|
+
annotations: { destructiveHint: false }
|
|
739
|
+
}, async (args, extra) => {
|
|
740
|
+
requireScope(extra, "content:write");
|
|
741
|
+
requireRole(extra, Role.EDITOR);
|
|
742
|
+
const ec = getEmDash(extra);
|
|
743
|
+
try {
|
|
744
|
+
const { handleBylineCreate } = await import("../../../bylines-DGekMGGm.mjs").then((n) => n.t);
|
|
745
|
+
const result = await handleBylineCreate(ec.db, args);
|
|
746
|
+
if (result.success) await invalidateBylines();
|
|
747
|
+
return unwrap(result);
|
|
748
|
+
} catch (error) {
|
|
749
|
+
return respondHandlerError(error, "BYLINE_CREATE_ERROR");
|
|
750
|
+
}
|
|
751
|
+
});
|
|
752
|
+
server.registerTool("byline_update", {
|
|
753
|
+
title: "Update Byline",
|
|
754
|
+
description: "Update an existing byline. Any field can be omitted to leave it unchanged. Renaming the slug must not collide with another byline.",
|
|
755
|
+
inputSchema: z.object({
|
|
756
|
+
id: z.string().describe("Byline ID to update"),
|
|
757
|
+
...bylineUpdateBody.shape
|
|
758
|
+
})
|
|
759
|
+
}, async (args, extra) => {
|
|
760
|
+
requireScope(extra, "content:write");
|
|
761
|
+
requireRole(extra, Role.EDITOR);
|
|
762
|
+
const ec = getEmDash(extra);
|
|
763
|
+
try {
|
|
764
|
+
const { handleBylineUpdate } = await import("../../../bylines-DGekMGGm.mjs").then((n) => n.t);
|
|
765
|
+
const { id, ...input } = args;
|
|
766
|
+
const result = await handleBylineUpdate(ec.db, id, input);
|
|
767
|
+
if (result.success) await invalidateBylines();
|
|
768
|
+
return unwrap(result);
|
|
769
|
+
} catch (error) {
|
|
770
|
+
return respondHandlerError(error, "BYLINE_UPDATE_ERROR");
|
|
771
|
+
}
|
|
772
|
+
});
|
|
773
|
+
server.registerTool("byline_delete", {
|
|
774
|
+
title: "Delete Byline",
|
|
775
|
+
description: "Permanently delete a byline. Any content crediting this byline loses the association, and it is cleared as a primary byline where set.",
|
|
776
|
+
inputSchema: z.object({ id: z.string().describe("Byline ID to delete") }),
|
|
777
|
+
annotations: { destructiveHint: true }
|
|
778
|
+
}, async (args, extra) => {
|
|
779
|
+
requireScope(extra, "content:write");
|
|
780
|
+
requireRole(extra, Role.EDITOR);
|
|
781
|
+
const ec = getEmDash(extra);
|
|
782
|
+
try {
|
|
783
|
+
const { BylineRepository } = await import("../../../byline-CC0WS4Gu.mjs").then((n) => n.n);
|
|
784
|
+
if (!await new BylineRepository(ec.db).delete(args.id)) return respondError("NOT_FOUND", `Byline '${args.id}' not found`);
|
|
785
|
+
await invalidateBylines();
|
|
786
|
+
return jsonResult({ deleted: args.id });
|
|
787
|
+
} catch (error) {
|
|
788
|
+
return respondHandlerError(error, "BYLINE_DELETE_ERROR");
|
|
789
|
+
}
|
|
790
|
+
});
|
|
791
|
+
server.registerTool("byline_translations", {
|
|
792
|
+
title: "List Byline Translations",
|
|
793
|
+
description: "Return every locale variant of a byline, identified via its shared translation_group.",
|
|
794
|
+
inputSchema: z.object({ id: z.string().describe("Byline id (or translation_group)") }),
|
|
795
|
+
annotations: { readOnlyHint: true }
|
|
796
|
+
}, async (args, extra) => {
|
|
797
|
+
requireScope(extra, "content:read");
|
|
798
|
+
const ec = getEmDash(extra);
|
|
799
|
+
try {
|
|
800
|
+
const { handleBylineTranslations } = await import("../../../bylines-DGekMGGm.mjs").then((n) => n.t);
|
|
801
|
+
return unwrap(await handleBylineTranslations(ec.db, args.id));
|
|
802
|
+
} catch (error) {
|
|
803
|
+
return respondHandlerError(error, "BYLINE_TRANSLATIONS_ERROR");
|
|
804
|
+
}
|
|
805
|
+
});
|
|
639
806
|
server.registerTool("schema_list_collections", {
|
|
640
807
|
title: "List Collections",
|
|
641
808
|
description: "List all content collections defined in the CMS. Each collection represents a content type (e.g. posts, pages, products) with its own schema and database table. Returns slug, label, supported features, and timestamps.",
|
|
@@ -646,7 +813,7 @@ function createMcpServer() {
|
|
|
646
813
|
requireRole(extra, Role.EDITOR);
|
|
647
814
|
const ec = getEmDash(extra);
|
|
648
815
|
try {
|
|
649
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
816
|
+
const { SchemaRegistry } = await import("../../../schema-5z2Jfnbm.mjs").then((n) => n.t);
|
|
650
817
|
return jsonResult({ items: await new SchemaRegistry(ec.db).listCollections() });
|
|
651
818
|
} catch (error) {
|
|
652
819
|
return respondHandlerError(error, "SCHEMA_LIST_ERROR");
|
|
@@ -662,7 +829,7 @@ function createMcpServer() {
|
|
|
662
829
|
requireRole(extra, Role.EDITOR);
|
|
663
830
|
const ec = getEmDash(extra);
|
|
664
831
|
try {
|
|
665
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
832
|
+
const { SchemaRegistry } = await import("../../../schema-5z2Jfnbm.mjs").then((n) => n.t);
|
|
666
833
|
const collection = await new SchemaRegistry(ec.db).getCollectionWithFields(args.slug);
|
|
667
834
|
if (!collection) return respondError("NOT_FOUND", `Collection '${args.slug}' not found`);
|
|
668
835
|
return jsonResult(collection);
|
|
@@ -692,7 +859,7 @@ function createMcpServer() {
|
|
|
692
859
|
requireRole(extra, Role.ADMIN);
|
|
693
860
|
const ec = getEmDash(extra);
|
|
694
861
|
try {
|
|
695
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
862
|
+
const { SchemaRegistry } = await import("../../../schema-5z2Jfnbm.mjs").then((n) => n.t);
|
|
696
863
|
const collection = await new SchemaRegistry(ec.db).createCollection({
|
|
697
864
|
slug: args.slug,
|
|
698
865
|
label: args.label,
|
|
@@ -720,7 +887,7 @@ function createMcpServer() {
|
|
|
720
887
|
requireRole(extra, Role.ADMIN);
|
|
721
888
|
const ec = getEmDash(extra);
|
|
722
889
|
try {
|
|
723
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
890
|
+
const { SchemaRegistry } = await import("../../../schema-5z2Jfnbm.mjs").then((n) => n.t);
|
|
724
891
|
await new SchemaRegistry(ec.db).deleteCollection(args.slug, { force: args.force });
|
|
725
892
|
ec.invalidateUrlPatternCache();
|
|
726
893
|
return jsonResult({ deleted: args.slug });
|
|
@@ -774,7 +941,7 @@ function createMcpServer() {
|
|
|
774
941
|
requireRole(extra, Role.ADMIN);
|
|
775
942
|
const ec = getEmDash(extra);
|
|
776
943
|
try {
|
|
777
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
944
|
+
const { SchemaRegistry } = await import("../../../schema-5z2Jfnbm.mjs").then((n) => n.t);
|
|
778
945
|
return jsonResult(await new SchemaRegistry(ec.db).createField(args.collection, {
|
|
779
946
|
slug: args.slug,
|
|
780
947
|
label: args.label,
|
|
@@ -804,7 +971,7 @@ function createMcpServer() {
|
|
|
804
971
|
requireRole(extra, Role.ADMIN);
|
|
805
972
|
const ec = getEmDash(extra);
|
|
806
973
|
try {
|
|
807
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
974
|
+
const { SchemaRegistry } = await import("../../../schema-5z2Jfnbm.mjs").then((n) => n.t);
|
|
808
975
|
await new SchemaRegistry(ec.db).deleteField(args.collection, args.fieldSlug);
|
|
809
976
|
return jsonResult({
|
|
810
977
|
deleted: args.fieldSlug,
|
|
@@ -925,7 +1092,7 @@ function createMcpServer() {
|
|
|
925
1092
|
requireScope(extra, "content:read");
|
|
926
1093
|
const ec = getEmDash(extra);
|
|
927
1094
|
try {
|
|
928
|
-
const { searchWithDb } = await import("../../../search-
|
|
1095
|
+
const { searchWithDb } = await import("../../../search-D9FkoM-k.mjs").then((n) => n.t);
|
|
929
1096
|
return jsonResult(await searchWithDb(ec.db, args.query, {
|
|
930
1097
|
collections: args.collections,
|
|
931
1098
|
locale: args.locale,
|
|
@@ -944,7 +1111,7 @@ function createMcpServer() {
|
|
|
944
1111
|
requireScope(extra, "content:read");
|
|
945
1112
|
const ec = getEmDash(extra);
|
|
946
1113
|
try {
|
|
947
|
-
const { handleTaxonomyList } = await import("../../../taxonomies-
|
|
1114
|
+
const { handleTaxonomyList } = await import("../../../taxonomies-CJmkEpdS.mjs").then((n) => n.l);
|
|
948
1115
|
return unwrap(await handleTaxonomyList(ec.db, { locale: args.locale }));
|
|
949
1116
|
} catch (error) {
|
|
950
1117
|
return respondHandlerError(error, "TAXONOMY_LIST_ERROR");
|
|
@@ -964,12 +1131,12 @@ function createMcpServer() {
|
|
|
964
1131
|
requireScope(extra, "content:read");
|
|
965
1132
|
const ec = getEmDash(extra);
|
|
966
1133
|
try {
|
|
967
|
-
const { handleTaxonomyList } = await import("../../../taxonomies-
|
|
1134
|
+
const { handleTaxonomyList } = await import("../../../taxonomies-CJmkEpdS.mjs").then((n) => n.l);
|
|
968
1135
|
const listResult = await handleTaxonomyList(ec.db, { locale: args.locale });
|
|
969
1136
|
if (!listResult.success) return unwrap(listResult);
|
|
970
1137
|
if (!listResult.data.taxonomies.find((t) => t.name === args.taxonomy)) return respondError("NOT_FOUND", `Taxonomy '${args.taxonomy}' not found`);
|
|
971
|
-
const { TaxonomyRepository } = await import("../../../taxonomy-
|
|
972
|
-
const { decodeCursor, encodeCursor, InvalidCursorError } = await import("../../../types-
|
|
1138
|
+
const { TaxonomyRepository } = await import("../../../taxonomy-B2HQuVf5.mjs").then((n) => n.n);
|
|
1139
|
+
const { decodeCursor, encodeCursor, InvalidCursorError } = await import("../../../types-DXOIbece.mjs").then((n) => n.o);
|
|
973
1140
|
const repo = new TaxonomyRepository(ec.db);
|
|
974
1141
|
const limit = Math.min(args.limit ?? 50, 100);
|
|
975
1142
|
const terms = await repo.findByName(args.taxonomy, { locale: args.locale });
|
|
@@ -1023,7 +1190,7 @@ function createMcpServer() {
|
|
|
1023
1190
|
requireRole(extra, Role.EDITOR);
|
|
1024
1191
|
const ec = getEmDash(extra);
|
|
1025
1192
|
try {
|
|
1026
|
-
const { handleTermCreate } = await import("../../../taxonomies-
|
|
1193
|
+
const { handleTermCreate } = await import("../../../taxonomies-CJmkEpdS.mjs").then((n) => n.l);
|
|
1027
1194
|
return unwrap(await handleTermCreate(ec.db, args.taxonomy, {
|
|
1028
1195
|
slug: args.slug,
|
|
1029
1196
|
label: args.label,
|
|
@@ -1052,7 +1219,7 @@ function createMcpServer() {
|
|
|
1052
1219
|
requireRole(extra, Role.EDITOR);
|
|
1053
1220
|
const ec = getEmDash(extra);
|
|
1054
1221
|
try {
|
|
1055
|
-
const { handleTermUpdate } = await import("../../../taxonomies-
|
|
1222
|
+
const { handleTermUpdate } = await import("../../../taxonomies-CJmkEpdS.mjs").then((n) => n.l);
|
|
1056
1223
|
return unwrap(await handleTermUpdate(ec.db, args.taxonomy, args.termSlug, {
|
|
1057
1224
|
slug: args.slug,
|
|
1058
1225
|
label: args.label,
|
|
@@ -1076,7 +1243,7 @@ function createMcpServer() {
|
|
|
1076
1243
|
requireRole(extra, Role.EDITOR);
|
|
1077
1244
|
const ec = getEmDash(extra);
|
|
1078
1245
|
try {
|
|
1079
|
-
const { handleTermDelete } = await import("../../../taxonomies-
|
|
1246
|
+
const { handleTermDelete } = await import("../../../taxonomies-CJmkEpdS.mjs").then((n) => n.l);
|
|
1080
1247
|
return unwrap(await handleTermDelete(ec.db, args.taxonomy, args.termSlug));
|
|
1081
1248
|
} catch (error) {
|
|
1082
1249
|
return respondHandlerError(error, "TAXONOMY_TERM_DELETE_ERROR");
|
|
@@ -1091,7 +1258,7 @@ function createMcpServer() {
|
|
|
1091
1258
|
requireScope(extra, "content:read");
|
|
1092
1259
|
const ec = getEmDash(extra);
|
|
1093
1260
|
try {
|
|
1094
|
-
const { handleTermTranslations } = await import("../../../taxonomies-
|
|
1261
|
+
const { handleTermTranslations } = await import("../../../taxonomies-CJmkEpdS.mjs").then((n) => n.l);
|
|
1095
1262
|
return unwrap(await handleTermTranslations(ec.db, args.id));
|
|
1096
1263
|
} catch (error) {
|
|
1097
1264
|
return respondHandlerError(error, "TERM_TRANSLATIONS_ERROR");
|
|
@@ -1106,7 +1273,7 @@ function createMcpServer() {
|
|
|
1106
1273
|
requireScope(extra, "content:read");
|
|
1107
1274
|
const ec = getEmDash(extra);
|
|
1108
1275
|
try {
|
|
1109
|
-
const { handleMenuList } = await import("../../../menus-
|
|
1276
|
+
const { handleMenuList } = await import("../../../menus-CYs0WZoL.mjs").then((n) => n.d);
|
|
1110
1277
|
return unwrap(await handleMenuList(ec.db, { locale: args.locale }));
|
|
1111
1278
|
} catch (error) {
|
|
1112
1279
|
return respondHandlerError(error, "MENU_LIST_ERROR");
|
|
@@ -1124,7 +1291,7 @@ function createMcpServer() {
|
|
|
1124
1291
|
requireScope(extra, "content:read");
|
|
1125
1292
|
const ec = getEmDash(extra);
|
|
1126
1293
|
try {
|
|
1127
|
-
const { handleMenuGet } = await import("../../../menus-
|
|
1294
|
+
const { handleMenuGet } = await import("../../../menus-CYs0WZoL.mjs").then((n) => n.d);
|
|
1128
1295
|
return unwrap(await handleMenuGet(ec.db, args.name, { locale: args.locale }));
|
|
1129
1296
|
} catch (error) {
|
|
1130
1297
|
return respondHandlerError(error, "MENU_GET_ERROR");
|
|
@@ -1139,7 +1306,7 @@ function createMcpServer() {
|
|
|
1139
1306
|
requireScope(extra, "content:read");
|
|
1140
1307
|
const ec = getEmDash(extra);
|
|
1141
1308
|
try {
|
|
1142
|
-
const { handleMenuTranslations } = await import("../../../menus-
|
|
1309
|
+
const { handleMenuTranslations } = await import("../../../menus-CYs0WZoL.mjs").then((n) => n.d);
|
|
1143
1310
|
return unwrap(await handleMenuTranslations(ec.db, args.id));
|
|
1144
1311
|
} catch (error) {
|
|
1145
1312
|
return respondHandlerError(error, "MENU_TRANSLATIONS_ERROR");
|
|
@@ -1159,7 +1326,7 @@ function createMcpServer() {
|
|
|
1159
1326
|
requireRole(extra, Role.EDITOR);
|
|
1160
1327
|
const ec = getEmDash(extra);
|
|
1161
1328
|
try {
|
|
1162
|
-
const { handleMenuCreate } = await import("../../../menus-
|
|
1329
|
+
const { handleMenuCreate } = await import("../../../menus-CYs0WZoL.mjs").then((n) => n.d);
|
|
1163
1330
|
return unwrap(await handleMenuCreate(ec.db, {
|
|
1164
1331
|
name: args.name,
|
|
1165
1332
|
label: args.label,
|
|
@@ -1183,7 +1350,7 @@ function createMcpServer() {
|
|
|
1183
1350
|
requireRole(extra, Role.EDITOR);
|
|
1184
1351
|
const ec = getEmDash(extra);
|
|
1185
1352
|
try {
|
|
1186
|
-
const { handleMenuUpdate } = await import("../../../menus-
|
|
1353
|
+
const { handleMenuUpdate } = await import("../../../menus-CYs0WZoL.mjs").then((n) => n.d);
|
|
1187
1354
|
return unwrap(await handleMenuUpdate(ec.db, args.name, {
|
|
1188
1355
|
label: args.label,
|
|
1189
1356
|
locale: args.locale
|
|
@@ -1205,7 +1372,7 @@ function createMcpServer() {
|
|
|
1205
1372
|
requireRole(extra, Role.EDITOR);
|
|
1206
1373
|
const ec = getEmDash(extra);
|
|
1207
1374
|
try {
|
|
1208
|
-
const { handleMenuDelete } = await import("../../../menus-
|
|
1375
|
+
const { handleMenuDelete } = await import("../../../menus-CYs0WZoL.mjs").then((n) => n.d);
|
|
1209
1376
|
return unwrap(await handleMenuDelete(ec.db, args.name, { locale: args.locale }));
|
|
1210
1377
|
} catch (error) {
|
|
1211
1378
|
return respondHandlerError(error, "MENU_DELETE_ERROR");
|
|
@@ -1240,7 +1407,7 @@ function createMcpServer() {
|
|
|
1240
1407
|
requireRole(extra, Role.EDITOR);
|
|
1241
1408
|
const ec = getEmDash(extra);
|
|
1242
1409
|
try {
|
|
1243
|
-
const { handleMenuSetItems } = await import("../../../menus-
|
|
1410
|
+
const { handleMenuSetItems } = await import("../../../menus-CYs0WZoL.mjs").then((n) => n.d);
|
|
1244
1411
|
return unwrap(await handleMenuSetItems(ec.db, args.name, args.items, { locale: args.locale }));
|
|
1245
1412
|
} catch (error) {
|
|
1246
1413
|
return respondHandlerError(error, "MENU_SET_ITEMS_ERROR");
|
|
@@ -1287,7 +1454,7 @@ function createMcpServer() {
|
|
|
1287
1454
|
requireRole(extra, Role.EDITOR);
|
|
1288
1455
|
const ec = getEmDash(extra);
|
|
1289
1456
|
try {
|
|
1290
|
-
const { handleSettingsGet } = await import("../../../settings-
|
|
1457
|
+
const { handleSettingsGet } = await import("../../../settings-DUrVDN0c.mjs").then((n) => n.r);
|
|
1291
1458
|
return unwrap(await handleSettingsGet(ec.db, ec.storage));
|
|
1292
1459
|
} catch (error) {
|
|
1293
1460
|
return respondHandlerError(error, "SETTINGS_READ_ERROR");
|
|
@@ -1313,7 +1480,7 @@ function createMcpServer() {
|
|
|
1313
1480
|
requireRole(extra, Role.ADMIN);
|
|
1314
1481
|
const ec = getEmDash(extra);
|
|
1315
1482
|
try {
|
|
1316
|
-
const { handleSettingsUpdate } = await import("../../../settings-
|
|
1483
|
+
const { handleSettingsUpdate } = await import("../../../settings-DUrVDN0c.mjs").then((n) => n.r);
|
|
1317
1484
|
return unwrap(await handleSettingsUpdate(ec.db, ec.storage, args));
|
|
1318
1485
|
} catch (error) {
|
|
1319
1486
|
return respondHandlerError(error, "SETTINGS_UPDATE_ERROR");
|