emdash 0.35.0 → 0.37.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/activation-K0kGBWuJ.mjs +382 -0
- package/dist/activation-K0kGBWuJ.mjs.map +1 -0
- package/dist/{adapters-Bb1vG41D.d.mts → adapters-BDQwg236.d.mts} +6 -4
- package/dist/{adapters-Bb1vG41D.d.mts.map → adapters-BDQwg236.d.mts.map} +1 -1
- package/dist/{allowed-origins-DW7sYyqg.mjs → allowed-origins-BGglilcs.mjs} +2 -2
- package/dist/{allowed-origins-DW7sYyqg.mjs.map → allowed-origins-BGglilcs.mjs.map} +1 -1
- package/dist/api/route-utils.d.mts +3 -3
- package/dist/api/route-utils.mjs +23 -21
- package/dist/api/route-utils.mjs.map +1 -1
- package/dist/api/schemas/index.d.mts +2 -2
- package/dist/api/schemas/index.mjs +5 -5
- package/dist/api-Dz6rgoa3.mjs +10040 -0
- package/dist/api-Dz6rgoa3.mjs.map +1 -0
- package/dist/{api-tokens-KO24G1Fd.mjs → api-tokens-BSsQACNe.mjs} +2 -2
- package/dist/{api-tokens-KO24G1Fd.mjs.map → api-tokens-BSsQACNe.mjs.map} +1 -1
- package/dist/{apply-kUDt80-G.mjs → apply-B4SIOxR1.mjs} +34 -35
- package/dist/{apply-kUDt80-G.mjs.map → apply-B4SIOxR1.mjs.map} +1 -1
- package/dist/astro/image-endpoint.mjs +2 -2
- package/dist/astro/image-endpoint.mjs.map +1 -1
- package/dist/astro/index.d.mts +12 -12
- package/dist/astro/index.d.mts.map +1 -1
- package/dist/astro/index.mjs +128 -44
- package/dist/astro/index.mjs.map +1 -1
- package/dist/astro/middleware/auth.d.mts +10 -10
- package/dist/astro/middleware/auth.d.mts.map +1 -1
- package/dist/astro/middleware/auth.mjs +10 -7
- package/dist/astro/middleware/auth.mjs.map +1 -1
- package/dist/astro/middleware/media-usage-write-fence.mjs +2 -2
- package/dist/astro/middleware/redirect.mjs +4 -4
- package/dist/astro/middleware/request-context.mjs +3 -3
- package/dist/astro/middleware/setup.mjs +1 -1
- package/dist/astro/middleware.d.mts +11 -12
- package/dist/astro/middleware.d.mts.map +1 -1
- package/dist/astro/middleware.mjs +237 -1412
- package/dist/astro/middleware.mjs.map +1 -1
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +6 -6
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +6 -6
- package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +3 -3
- package/dist/astro/routes/api/admin/api-tokens/index.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/api-tokens/index.mjs +5 -5
- package/dist/astro/routes/api/admin/api-tokens/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +4 -4
- package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +9 -9
- package/dist/astro/routes/api/admin/byline-fields/index.mjs +9 -9
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +9 -9
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +16 -16
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +16 -16
- package/dist/astro/routes/api/admin/bylines/index.mjs +16 -16
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +13 -13
- package/dist/astro/routes/api/admin/comments/_id_.mjs +5 -5
- package/dist/astro/routes/api/admin/comments/bulk.mjs +10 -10
- package/dist/astro/routes/api/admin/comments/counts.mjs +5 -5
- package/dist/astro/routes/api/admin/comments/index.mjs +10 -10
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +4 -4
- package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +3 -3
- package/dist/astro/routes/api/admin/media-usage/activation.d.mts +9 -0
- package/dist/astro/routes/api/admin/media-usage/activation.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/media-usage/activation.mjs +46 -0
- package/dist/astro/routes/api/admin/media-usage/activation.mjs.map +1 -0
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +14 -13
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +14 -13
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/progress.d.mts +9 -0
- package/dist/astro/routes/api/admin/media-usage/progress.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/media-usage/progress.mjs +44 -0
- package/dist/astro/routes/api/admin/media-usage/progress.mjs.map +1 -0
- package/dist/astro/routes/api/admin/media-usage/repair.mjs +16 -11
- package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/work/index.mjs +14 -13
- package/dist/astro/routes/api/admin/media-usage/work/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +14 -13
- package/dist/astro/routes/api/admin/media-usage/work/retry.mjs.map +1 -1
- package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +4 -4
- package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs +4 -4
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +55 -49
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +55 -49
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +53 -47
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +4 -4
- package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +53 -47
- package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +54 -48
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +54 -48
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/index.mjs +53 -47
- package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +2 -2
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +53 -47
- 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 +54 -48
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +53 -47
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +54 -48
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/update.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +60 -50
- package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/artifact.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +179 -139
- package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/install.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs +61 -51
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/verify.d.mts +8 -0
- package/dist/astro/routes/api/admin/plugins/registry/verify.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +93 -0
- package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -0
- package/dist/astro/routes/api/admin/plugins/updates.mjs +53 -47
- package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +53 -47
- 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 +2 -2
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +53 -47
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs +2 -2
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs +1 -1
- package/dist/astro/routes/api/admin/users/_id_/index.mjs +7 -7
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +3 -3
- package/dist/astro/routes/api/admin/users/index.mjs +6 -6
- package/dist/astro/routes/api/auth/dev-bypass.mjs +3 -3
- package/dist/astro/routes/api/auth/invite/accept.mjs +1 -1
- package/dist/astro/routes/api/auth/invite/complete.mjs +11 -11
- package/dist/astro/routes/api/auth/invite/index.mjs +8 -8
- package/dist/astro/routes/api/auth/invite/register-options.mjs +10 -10
- package/dist/astro/routes/api/auth/logout.mjs +2 -2
- package/dist/astro/routes/api/auth/magic-link/send.mjs +10 -10
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +2 -2
- package/dist/astro/routes/api/auth/me.d.mts.map +1 -1
- package/dist/astro/routes/api/auth/me.mjs +19 -9
- package/dist/astro/routes/api/auth/me.mjs.map +1 -1
- package/dist/astro/routes/api/auth/mode.mjs +2 -2
- 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 +6 -6
- package/dist/astro/routes/api/auth/passkey/index.mjs +1 -1
- package/dist/astro/routes/api/auth/passkey/options.mjs +12 -12
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +10 -10
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +11 -11
- package/dist/astro/routes/api/auth/passkey/verify.mjs +11 -11
- package/dist/astro/routes/api/auth/signup/complete.mjs +11 -11
- package/dist/astro/routes/api/auth/signup/request.mjs +10 -10
- package/dist/astro/routes/api/auth/signup/verify.mjs +1 -1
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +14 -14
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +13 -13
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.d.mts.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +14 -5
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +3 -3
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +11 -11
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +13 -10
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +17 -15
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +17 -15
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +3 -3
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +8 -8
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +14 -14
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.d.mts.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +14 -5
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +8 -8
- package/dist/astro/routes/api/content/_collection_/authors.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/index.mjs +8 -8
- package/dist/astro/routes/api/content/_collection_/trash.mjs +7 -7
- package/dist/astro/routes/api/dashboard.mjs +8 -8
- package/dist/astro/routes/api/dev/emails.mjs +2 -2
- package/dist/astro/routes/api/import/probe.d.mts +3 -3
- package/dist/astro/routes/api/import/probe.mjs +17 -17
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +2 -2
- package/dist/astro/routes/api/import/wordpress/execute.d.mts +11 -11
- package/dist/astro/routes/api/import/wordpress/execute.mjs +13 -13
- package/dist/astro/routes/api/import/wordpress/media.d.mts +10 -10
- package/dist/astro/routes/api/import/wordpress/media.mjs +11 -11
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +9 -9
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +11 -11
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +12 -10
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +17 -17
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +11 -11
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +27 -27
- package/dist/astro/routes/api/manifest.mjs +4 -4
- package/dist/astro/routes/api/manifest.mjs.map +1 -1
- package/dist/astro/routes/api/mcp.mjs +188 -65
- package/dist/astro/routes/api/mcp.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_/confirm.mjs +11 -11
- package/dist/astro/routes/api/media/_id_/replace.d.mts +8 -0
- package/dist/astro/routes/api/media/_id_/replace.d.mts.map +1 -0
- package/dist/astro/routes/api/media/_id_/replace.mjs +91 -0
- package/dist/astro/routes/api/media/_id_/replace.mjs.map +1 -0
- package/dist/astro/routes/api/media/_id_/upload.mjs +6 -6
- package/dist/astro/routes/api/media/_id_/usage.mjs +18 -13
- package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_.d.mts.map +1 -1
- package/dist/astro/routes/api/media/_id_.mjs +21 -13
- package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/media/file/_...key_.d.mts.map +1 -1
- package/dist/astro/routes/api/media/file/_...key_.mjs +3 -2
- package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
- package/dist/astro/routes/api/media/folders/_id_.d.mts +10 -0
- package/dist/astro/routes/api/media/folders/_id_.d.mts.map +1 -0
- package/dist/astro/routes/api/media/folders/_id_.mjs +52 -0
- package/dist/astro/routes/api/media/folders/_id_.mjs.map +1 -0
- package/dist/astro/routes/api/media/folders/index.d.mts +9 -0
- package/dist/astro/routes/api/media/folders/index.d.mts.map +1 -0
- package/dist/astro/routes/api/media/folders/index.mjs +41 -0
- package/dist/astro/routes/api/media/folders/index.mjs.map +1 -0
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +2 -2
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +2 -2
- package/dist/astro/routes/api/media/providers/index.mjs +2 -2
- package/dist/astro/routes/api/media/upload-url.mjs +16 -14
- package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
- package/dist/astro/routes/api/media.d.mts.map +1 -1
- package/dist/astro/routes/api/media.mjs +59 -27
- package/dist/astro/routes/api/media.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/items/_id_.d.mts.map +1 -1
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +20 -13
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/items.d.mts.map +1 -1
- package/dist/astro/routes/api/menus/_name_/items.mjs +15 -11
- package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/reorder.d.mts.map +1 -1
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +15 -11
- package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/translations.d.mts.map +1 -1
- package/dist/astro/routes/api/menus/_name_/translations.mjs +16 -12
- package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_.d.mts.map +1 -1
- package/dist/astro/routes/api/menus/_name_.mjs +21 -14
- package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/menus/index.d.mts.map +1 -1
- package/dist/astro/routes/api/menus/index.mjs +15 -11
- 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 +5 -5
- package/dist/astro/routes/api/oauth/device/code.mjs +8 -8
- package/dist/astro/routes/api/oauth/device/token.mjs +7 -7
- package/dist/astro/routes/api/oauth/register.mjs +2 -2
- package/dist/astro/routes/api/oauth/token/refresh.mjs +5 -5
- package/dist/astro/routes/api/oauth/token/revoke.mjs +5 -5
- package/dist/astro/routes/api/oauth/token.mjs +5 -5
- package/dist/astro/routes/api/openapi.json.mjs +253 -40
- package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +4 -4
- package/dist/astro/routes/api/redirects/404s/index.mjs +10 -10
- package/dist/astro/routes/api/redirects/404s/summary.mjs +10 -10
- package/dist/astro/routes/api/redirects/_id_.mjs +11 -11
- package/dist/astro/routes/api/redirects/index.mjs +11 -11
- package/dist/astro/routes/api/relations/_id_/index.mjs +17 -15
- package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/relations/_id_/translations.mjs +12 -10
- package/dist/astro/routes/api/relations/_id_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/relations/index.mjs +17 -15
- package/dist/astro/routes/api/relations/index.mjs.map +1 -1
- package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +2 -2
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +3 -3
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +53 -47
- 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 +53 -47
- 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 +53 -47
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +53 -47
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/index.mjs +53 -47
- package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/reorder.mjs +53 -47
- package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/index.mjs +10 -8
- package/dist/astro/routes/api/schema/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +53 -47
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/schema/orphans/index.mjs +53 -47
- package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
- package/dist/astro/routes/api/search/enable.mjs +10 -10
- package/dist/astro/routes/api/search/index.mjs +9 -9
- package/dist/astro/routes/api/search/rebuild.mjs +10 -10
- package/dist/astro/routes/api/search/stats.mjs +5 -5
- package/dist/astro/routes/api/search/suggest.mjs +9 -9
- package/dist/astro/routes/api/sections/_slug_.mjs +9 -9
- package/dist/astro/routes/api/sections/index.mjs +9 -9
- package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +6 -6
- package/dist/astro/routes/api/settings/backups/archives/index.mjs +5 -5
- package/dist/astro/routes/api/settings/backups/export.mjs +6 -6
- package/dist/astro/routes/api/settings/backups/index.mjs +7 -7
- package/dist/astro/routes/api/settings/email.mjs +5 -5
- package/dist/astro/routes/api/settings/email.mjs.map +1 -1
- package/dist/astro/routes/api/settings.d.mts.map +1 -1
- package/dist/astro/routes/api/settings.mjs +20 -16
- package/dist/astro/routes/api/settings.mjs.map +1 -1
- package/dist/astro/routes/api/setup/admin-verify.mjs +12 -12
- package/dist/astro/routes/api/setup/admin.mjs +11 -11
- package/dist/astro/routes/api/setup/dev-bypass.d.mts.map +1 -1
- package/dist/astro/routes/api/setup/dev-bypass.mjs +35 -28
- package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
- package/dist/astro/routes/api/setup/dev-reset.mjs +2 -2
- package/dist/astro/routes/api/setup/index.mjs +32 -30
- package/dist/astro/routes/api/setup/index.mjs.map +1 -1
- package/dist/astro/routes/api/setup/status.mjs +3 -3
- package/dist/astro/routes/api/snapshot.mjs +7 -7
- package/dist/astro/routes/api/taxonomies/_name_/reorder.d.mts.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +20 -16
- package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.d.mts.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +21 -17
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.d.mts.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +25 -18
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.d.mts.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +20 -16
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +14 -14
- package/dist/astro/routes/api/taxonomies/_name_.d.mts.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_.mjs +26 -19
- package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/index.d.mts.map +1 -1
- package/dist/astro/routes/api/taxonomies/index.mjs +20 -16
- package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
- package/dist/astro/routes/api/themes/preview.mjs +5 -5
- package/dist/astro/routes/api/typegen.mjs +4 -4
- 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.d.mts.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +10 -8
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.d.mts.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +17 -13
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/widgets.d.mts.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +15 -12
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_.d.mts.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_.mjs +8 -6
- package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/index.d.mts.map +1 -1
- package/dist/astro/routes/api/widget-areas/index.mjs +15 -12
- package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
- package/dist/astro/routes/api/widget-components.mjs +2 -2
- package/dist/astro/routes/robots.txt.mjs +7 -7
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +10 -10
- package/dist/astro/routes/sitemap.xml.mjs +8 -8
- package/dist/astro/types.d.mts +37 -17
- 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-DUElxgOQ.mjs → authorize-Bkf_UHhD.mjs} +2 -2
- package/dist/{authorize-DUElxgOQ.mjs.map → authorize-Bkf_UHhD.mjs.map} +1 -1
- package/dist/{backup-DWYpJlLj.mjs → backup-rwVAl9NI.mjs} +5 -5
- package/dist/{backup-DWYpJlLj.mjs.map → backup-rwVAl9NI.mjs.map} +1 -1
- package/dist/{bundle-vn56sLos.mjs → bundle-C8S2Zl6U.mjs} +4 -4
- package/dist/{bundle-vn56sLos.mjs.map → bundle-C8S2Zl6U.mjs.map} +1 -1
- package/dist/{byline-yjvWq4ip.mjs → byline-DuhF7NWl.mjs} +27 -14
- package/dist/byline-DuhF7NWl.mjs.map +1 -0
- package/dist/{byline-fields-txaLGoME.mjs → byline-fields-BovY4KYM.mjs} +2 -2
- package/dist/{byline-fields-txaLGoME.mjs.map → byline-fields-BovY4KYM.mjs.map} +1 -1
- package/dist/{byline-registry-DDun8sxh.mjs → byline-registry-Bpu9-MVs.mjs} +2 -2
- package/dist/{byline-registry-DDun8sxh.mjs.map → byline-registry-Bpu9-MVs.mjs.map} +1 -1
- package/dist/{bylines-DjXS5p0P.mjs → bylines-CJ5nd6Lw.mjs} +7 -7
- package/dist/{bylines-DjXS5p0P.mjs.map → bylines-CJ5nd6Lw.mjs.map} +1 -1
- package/dist/{bylines-Bu7pchQ4.mjs → bylines-RwBAeOF1.mjs} +3 -3
- package/dist/{bylines-Bu7pchQ4.mjs.map → bylines-RwBAeOF1.mjs.map} +1 -1
- package/dist/{cache-C46-3Irl.mjs → cache-BF5Kvn59.mjs} +4 -4
- package/dist/{cache-C46-3Irl.mjs.map → cache-BF5Kvn59.mjs.map} +1 -1
- package/dist/capture-triggers-CNW1q3HK.mjs +362 -0
- package/dist/capture-triggers-CNW1q3HK.mjs.map +1 -0
- package/dist/{challenge-store-SIL5DsF2.mjs → challenge-store-DQN_Yrck.mjs} +5 -3
- package/dist/challenge-store-DQN_Yrck.mjs.map +1 -0
- package/dist/chrome-tags-D8fiZG94.mjs +24 -0
- package/dist/chrome-tags-D8fiZG94.mjs.map +1 -0
- package/dist/{chunks-fiZ8G9RJ.mjs → chunks-C4szrD8o.mjs} +2 -2
- package/dist/{chunks-fiZ8G9RJ.mjs.map → chunks-C4szrD8o.mjs.map} +1 -1
- package/dist/cli/index.mjs +37 -53
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/cf-access.d.mts +1 -1
- package/dist/client/index.d.mts +74 -4
- package/dist/client/index.d.mts.map +1 -1
- package/dist/client/index.mjs +54 -2
- package/dist/client/index.mjs.map +1 -1
- package/dist/{collection-deletion-DQPvMD8R.mjs → collection-deletion-Bj07NHbj.mjs} +13 -356
- package/dist/collection-deletion-Bj07NHbj.mjs.map +1 -0
- package/dist/{comment-reaction-D-2J84UE.mjs → comment-reaction-BhrvSHml.mjs} +2 -2
- package/dist/{comment-reaction-D-2J84UE.mjs.map → comment-reaction-BhrvSHml.mjs.map} +1 -1
- package/dist/{comment-Dxlep6cE.mjs → comment-vxOzWbZN.mjs} +2 -2
- package/dist/{comment-Dxlep6cE.mjs.map → comment-vxOzWbZN.mjs.map} +1 -1
- package/dist/{comments-CTfZtLmM.mjs → comments-Ct4ensnf.mjs} +2 -2
- package/dist/{comments-CTfZtLmM.mjs.map → comments-Ct4ensnf.mjs.map} +1 -1
- package/dist/{components-CQy3lh9x.mjs → components-DJbo1z0S.mjs} +1 -1
- package/dist/{components-CQy3lh9x.mjs.map → components-DJbo1z0S.mjs.map} +1 -1
- package/dist/{config-COQzTe5Q.d.mts → config-B9eZ340f.d.mts} +1 -1
- package/dist/{config-COQzTe5Q.d.mts.map → config-B9eZ340f.d.mts.map} +1 -1
- package/dist/config-it29yDLA.mjs +1163 -0
- package/dist/config-it29yDLA.mjs.map +1 -0
- package/dist/{content-ZHCc1ngN.mjs → content-DjvM0T92.mjs} +86 -45
- package/dist/content-DjvM0T92.mjs.map +1 -0
- package/dist/{content-list-query-wJ2WN8Vp.d.mts → content-list-query-Btqd4uV2.d.mts} +1 -1
- package/dist/{content-list-query-wJ2WN8Vp.d.mts.map → content-list-query-Btqd4uV2.d.mts.map} +1 -1
- package/dist/{content-refresh-B_8SJzuU.mjs → content-refresh-Bwp-8yGy.mjs} +1139 -111
- package/dist/content-refresh-Bwp-8yGy.mjs.map +1 -0
- package/dist/{media-usage-BZCydfvu.mjs → content-repair-Czdp7jz5.mjs} +5 -196
- package/dist/content-repair-Czdp7jz5.mjs.map +1 -0
- package/dist/{context-ZldbZcle.mjs → context-CX6gxOLW.mjs} +55 -20
- package/dist/context-CX6gxOLW.mjs.map +1 -0
- package/dist/{cron-Y9aLtgrA.mjs → cron-C6o7VppJ.mjs} +1 -1
- package/dist/{cron-Y9aLtgrA.mjs.map → cron-C6o7VppJ.mjs.map} +1 -1
- package/dist/{dashboard-DvHbk_cv.mjs → dashboard-C2kTeeRI.mjs} +5 -5
- package/dist/{dashboard-DvHbk_cv.mjs.map → dashboard-C2kTeeRI.mjs.map} +1 -1
- package/dist/db/index.d.mts +3 -3
- package/dist/db/index.mjs +3 -3
- package/dist/db/index.mjs.map +1 -1
- package/dist/db/libsql-migrations.d.mts +1 -1
- package/dist/db/libsql-migrations.mjs +4 -4
- package/dist/db/libsql.d.mts +1 -1
- package/dist/db/postgres-migrations.d.mts +1 -1
- package/dist/db/postgres-migrations.mjs +4 -4
- package/dist/db/postgres.d.mts +1 -1
- package/dist/db/postgres.d.mts.map +1 -1
- package/dist/db/postgres.mjs +19 -3
- package/dist/db/postgres.mjs.map +1 -1
- package/dist/db/sqlite-migrations.d.mts +1 -1
- package/dist/db/sqlite-migrations.mjs +4 -4
- package/dist/db/sqlite.d.mts +1 -1
- package/dist/db/sqlite.mjs +3 -3
- package/dist/db/sqlite.mjs.map +1 -1
- package/dist/{default-DdDl3fxv.mjs → default-Clra32mw.mjs} +1 -1
- package/dist/{default-DdDl3fxv.mjs.map → default-Clra32mw.mjs.map} +1 -1
- package/dist/{deferred-tasks-SDWxrgzJ.d.mts → deferred-tasks-CvDETTJO.d.mts} +1 -1
- package/dist/{deferred-tasks-SDWxrgzJ.d.mts.map → deferred-tasks-CvDETTJO.d.mts.map} +1 -1
- package/dist/dev-typegen-DzOPfsNj.mjs +29 -0
- package/dist/dev-typegen-DzOPfsNj.mjs.map +1 -0
- package/dist/{device-flow-C0GdD_z8.mjs → device-flow-D2oCWvLJ.mjs} +5 -5
- package/dist/{device-flow-C0GdD_z8.mjs.map → device-flow-D2oCWvLJ.mjs.map} +1 -1
- package/dist/{direct-executor-CDXeJCSs.mjs → direct-executor-Bfa5_ToE.mjs} +3 -3
- package/dist/{direct-executor-CDXeJCSs.mjs.map → direct-executor-Bfa5_ToE.mjs.map} +1 -1
- package/dist/{dist-D_6CKR8z.mjs → dist-89xCrGqi.mjs} +1 -1
- package/dist/{dist-D_6CKR8z.mjs.map → dist-89xCrGqi.mjs.map} +1 -1
- package/dist/{email-console-BHNjIwiB.mjs → email-console-Dzb6uGYa.mjs} +1 -1
- package/dist/{email-console-BHNjIwiB.mjs.map → email-console-Dzb6uGYa.mjs.map} +1 -1
- package/dist/{enrich-_ySMEvEE.mjs → enrich-BX0IDp4z.mjs} +3 -3
- package/dist/{enrich-_ySMEvEE.mjs.map → enrich-BX0IDp4z.mjs.map} +1 -1
- package/dist/{error-DupyJZE2.mjs → error-DFrQjppn.mjs} +2 -2
- package/dist/{error-DupyJZE2.mjs.map → error-DFrQjppn.mjs.map} +1 -1
- package/dist/{errors-CLUPm7aD.mjs → errors-DsVoDUjJ.mjs} +24 -2
- package/dist/errors-DsVoDUjJ.mjs.map +1 -0
- package/dist/{escape-DUY2r2Zs.mjs → escape-HmHTC1Is.mjs} +1 -1
- package/dist/{escape-DUY2r2Zs.mjs.map → escape-HmHTC1Is.mjs.map} +1 -1
- package/dist/{field-defs-cache-BzwBlJrR.mjs → field-defs-cache-BM4SIRqH.mjs} +5 -5
- package/dist/{field-defs-cache-BzwBlJrR.mjs.map → field-defs-cache-BM4SIRqH.mjs.map} +1 -1
- package/dist/focal-point-BeWFo6Xx.mjs +23 -0
- package/dist/focal-point-BeWFo6Xx.mjs.map +1 -0
- package/dist/{fts-manager-DyZEohZC.mjs → fts-manager-Do1BlW2r.mjs} +3 -3
- package/dist/{fts-manager-DyZEohZC.mjs.map → fts-manager-Do1BlW2r.mjs.map} +1 -1
- package/dist/{hash-Cg0TXJPV.mjs → hash-3JJPlHF2.mjs} +1 -1
- package/dist/{hash-Cg0TXJPV.mjs.map → hash-3JJPlHF2.mjs.map} +1 -1
- package/dist/hook-result-DCh2WUpe.d.mts +31 -0
- package/dist/hook-result-DCh2WUpe.d.mts.map +1 -0
- package/dist/{hreflang-DwT2E0Sa.d.mts → hreflang-B6hbAuuO.d.mts} +2 -2
- package/dist/{hreflang-DwT2E0Sa.d.mts.map → hreflang-B6hbAuuO.d.mts.map} +1 -1
- package/dist/{hreflang-BBe83kKa.mjs → hreflang-DQbPZliA.mjs} +7 -7
- package/dist/{hreflang-BBe83kKa.mjs.map → hreflang-DQbPZliA.mjs.map} +1 -1
- package/dist/{identity-Ys6Dlc9C.mjs → identity-DksvEazf.mjs} +3 -3
- package/dist/{identity-Ys6Dlc9C.mjs.map → identity-DksvEazf.mjs.map} +1 -1
- package/dist/{import-DPkLmeXO.mjs → import-CJpaBBBT.mjs} +6 -6
- package/dist/{import-DPkLmeXO.mjs.map → import-CJpaBBBT.mjs.map} +1 -1
- package/dist/{index-BVBZj4-7.d.mts → index-BJNMCWmu.d.mts} +267 -82
- package/dist/index-BJNMCWmu.d.mts.map +1 -0
- package/dist/{index-C9KuQyO-.d.mts → index-Du8K7bWa.d.mts} +3 -3
- package/dist/{index-C9KuQyO-.d.mts.map → index-Du8K7bWa.d.mts.map} +1 -1
- package/dist/index.d.mts +22 -21
- package/dist/index.mjs +79 -73
- package/dist/{init-lock-6b309ZrF.mjs → init-lock-DJkX6Hto.mjs} +1 -1
- package/dist/{init-lock-6b309ZrF.mjs.map → init-lock-DJkX6Hto.mjs.map} +1 -1
- package/dist/{load-YJ2xl3ra.mjs → load-CawHjTOH.mjs} +2 -2
- package/dist/{load-YJ2xl3ra.mjs.map → load-CawHjTOH.mjs.map} +1 -1
- package/dist/{loader-CdG_Ci3H.mjs → loader-Z8vl7zTq.mjs} +48 -13
- package/dist/loader-Z8vl7zTq.mjs.map +1 -0
- package/dist/{manifest-builder-B252yQUf.mjs → manifest-builder-COtzuca2.mjs} +2 -2
- package/dist/{manifest-builder-B252yQUf.mjs.map → manifest-builder-COtzuca2.mjs.map} +1 -1
- package/dist/{manifest-schema-BXbUAHod.mjs → manifest-schema-BNWwR8Vd.mjs} +5 -5
- package/dist/manifest-schema-BNWwR8Vd.mjs.map +1 -0
- package/dist/media/image-endpoint.d.mts +4 -2
- package/dist/media/image-endpoint.d.mts.map +1 -1
- package/dist/media/image-endpoint.mjs +6 -4
- package/dist/media/image-endpoint.mjs.map +1 -1
- package/dist/media/index.d.mts +1 -1
- package/dist/media/index.mjs +13 -3
- package/dist/media/index.mjs.map +1 -1
- package/dist/media/local-runtime.d.mts +14 -12
- package/dist/media/local-runtime.d.mts.map +1 -1
- package/dist/media/local-runtime.mjs +12 -6
- package/dist/media/local-runtime.mjs.map +1 -1
- package/dist/{media-CzhAn2--.mjs → media-BBm8Wg3f.mjs} +69 -12
- package/dist/media-BBm8Wg3f.mjs.map +1 -0
- package/dist/{media-BWWWb8kg.mjs → media-BHjus86Y.mjs} +133 -9
- package/dist/media-BHjus86Y.mjs.map +1 -0
- package/dist/{media-allowlist-D6x-Us02.mjs → media-allowlist-CoTBWoDp.mjs} +3 -2
- package/dist/media-allowlist-CoTBWoDp.mjs.map +1 -0
- package/dist/media-folders-BGkATs8n.mjs +210 -0
- package/dist/media-folders-BGkATs8n.mjs.map +1 -0
- package/dist/{media-upload-CHBVn6m-.mjs → media-upload-BCidR-EY.mjs} +9 -9
- package/dist/{media-upload-CHBVn6m-.mjs.map → media-upload-BCidR-EY.mjs.map} +1 -1
- package/dist/{media-url-BvoX88FA.mjs → media-url-DHoPr0hq.mjs} +1 -1
- package/dist/{media-url-BvoX88FA.mjs.map → media-url-DHoPr0hq.mjs.map} +1 -1
- package/dist/media-usage-CdY5jhSR.mjs +1833 -0
- package/dist/media-usage-CdY5jhSR.mjs.map +1 -0
- package/dist/media-usage-activation-BgeMtK5C.mjs +78 -0
- package/dist/media-usage-activation-BgeMtK5C.mjs.map +1 -0
- package/dist/{media-usage-work-CLo_6tct.mjs → media-usage-work-CnGCdHxx.mjs} +4 -4
- package/dist/{media-usage-work-CLo_6tct.mjs.map → media-usage-work-CnGCdHxx.mjs.map} +1 -1
- package/dist/{media-usage-work-DrCbqBcl.mjs → media-usage-work-D6D9sMCA.mjs} +221 -59
- package/dist/media-usage-work-D6D9sMCA.mjs.map +1 -0
- package/dist/{media-usage-write-fence-aHEgN1zB.mjs → media-usage-write-fence-hjeD4u7s.mjs} +2 -2
- package/dist/{media-usage-write-fence-aHEgN1zB.mjs.map → media-usage-write-fence-hjeD4u7s.mjs.map} +1 -1
- package/dist/{menus-DSo5QeW0.mjs → menus-6qSwTNxG.mjs} +375 -107
- package/dist/menus-6qSwTNxG.mjs.map +1 -0
- package/dist/{menus-TCNSd2vp.mjs → menus-uvPLXMZf.mjs} +4 -4
- package/dist/{menus-TCNSd2vp.mjs.map → menus-uvPLXMZf.mjs.map} +1 -1
- package/dist/migrations/index.d.mts +1 -1
- package/dist/migrations/index.mjs +3 -3
- package/dist/{mime-DfIVjNkr.mjs → mime-CUIG6x84.mjs} +1 -1
- package/dist/mime-CUIG6x84.mjs.map +1 -0
- package/dist/{mode-BDoH_WcF.mjs → mode-DN_WneRx.mjs} +1 -1
- package/dist/{mode-BDoH_WcF.mjs.map → mode-DN_WneRx.mjs.map} +1 -1
- package/dist/node-sqlite-compat-BuJXIeMz.mjs +46 -0
- package/dist/node-sqlite-compat-BuJXIeMz.mjs.map +1 -0
- package/dist/{normalize-Bc-s_r-a.mjs → normalize-C2xNjTSG.mjs} +36 -5
- package/dist/normalize-C2xNjTSG.mjs.map +1 -0
- package/dist/{oauth-authorization-iOikmrJd.mjs → oauth-authorization-Dj6Kwc21.mjs} +5 -5
- package/dist/{oauth-authorization-iOikmrJd.mjs.map → oauth-authorization-Dj6Kwc21.mjs.map} +1 -1
- package/dist/{oauth-clients-CvI0nHMJ.mjs → oauth-clients-FD7I0J8m.mjs} +1 -1
- package/dist/{oauth-clients-CvI0nHMJ.mjs.map → oauth-clients-FD7I0J8m.mjs.map} +1 -1
- package/dist/{oauth-state-store-Ba8KZlwW.mjs → oauth-state-store-DkmDOmHs.mjs} +1 -1
- package/dist/{oauth-state-store-Ba8KZlwW.mjs.map → oauth-state-store-DkmDOmHs.mjs.map} +1 -1
- package/dist/{oauth-user-lookup-C5SQwGYC.mjs → oauth-user-lookup-CvIwGpYd.mjs} +1 -1
- package/dist/{oauth-user-lookup-C5SQwGYC.mjs.map → oauth-user-lookup-CvIwGpYd.mjs.map} +1 -1
- package/dist/object-cache/memory.d.mts +1 -1
- package/dist/{object-cache-71tPfV4A.mjs → object-cache-DVKnyOfy.mjs} +19 -3
- package/dist/object-cache-DVKnyOfy.mjs.map +1 -0
- package/dist/{options-CBXIHUoT.mjs → options-BHPeIbBd.mjs} +1 -1
- package/dist/{options-CBXIHUoT.mjs.map → options-BHPeIbBd.mjs.map} +1 -1
- package/dist/{options--hhz-jZ1.d.mts → options-CYb4y7hM.d.mts} +24 -11
- package/dist/options-CYb4y7hM.d.mts.map +1 -0
- package/dist/page/index.d.mts +2 -2
- package/dist/{parse-DFbuc-Fh.mjs → parse-Ckpg-Qfp.mjs} +2 -2
- package/dist/{parse-DFbuc-Fh.mjs.map → parse-Ckpg-Qfp.mjs.map} +1 -1
- package/dist/{passkey-config-DFAmUyuE.mjs → passkey-config-O_lj3y0k.mjs} +1 -1
- package/dist/{passkey-config-DFAmUyuE.mjs.map → passkey-config-O_lj3y0k.mjs.map} +1 -1
- package/dist/{patterns-CiyXeDgr.mjs → patterns-D9iDO3j8.mjs} +1 -1
- package/dist/{patterns-CiyXeDgr.mjs.map → patterns-D9iDO3j8.mjs.map} +1 -1
- package/dist/{placeholder-Dp0K3RkD.d.mts → placeholder-4X9BrRrp.d.mts} +7 -1
- package/dist/placeholder-4X9BrRrp.d.mts.map +1 -0
- package/dist/plugin-types.d.mts +8 -3
- package/dist/plugin-types.d.mts.map +1 -1
- package/dist/plugin-utils.d.mts +10 -10
- package/dist/plugins/adapt-sandbox-entry.d.mts +10 -10
- package/dist/plugins/adapt-sandbox-entry.mjs +2 -2
- package/dist/{policy-TluUIxuu.mjs → policy-Dhtwntrt.mjs} +2 -2
- package/dist/{policy-TluUIxuu.mjs.map → policy-Dhtwntrt.mjs.map} +1 -1
- package/dist/{portable-text-imBW5cHK.mjs → portable-text-U85hOafW.mjs} +1 -1
- package/dist/{portable-text-imBW5cHK.mjs.map → portable-text-U85hOafW.mjs.map} +1 -1
- package/dist/{preview-PW-nOnq4.mjs → preview-B_vJLvf8.mjs} +2 -2
- package/dist/{preview-PW-nOnq4.mjs.map → preview-B_vJLvf8.mjs.map} +1 -1
- package/dist/{protocol-DjsJHTlK.d.mts → protocol-JdD2YhY9.d.mts} +2 -2
- package/dist/{protocol-DjsJHTlK.d.mts.map → protocol-JdD2YhY9.d.mts.map} +1 -1
- package/dist/{public-url-CWoFhQT8.mjs → public-url-CarhZJgf.mjs} +1 -1
- package/dist/{public-url-CWoFhQT8.mjs.map → public-url-CarhZJgf.mjs.map} +1 -1
- package/dist/{query-zTVAR1Sl.mjs → query-BZKZcG5b.mjs} +15 -15
- package/dist/{query-zTVAR1Sl.mjs.map → query-BZKZcG5b.mjs.map} +1 -1
- package/dist/{query-BWs7O5Il.mjs → query-BndaFxxp.mjs} +5 -5
- package/dist/{query-BWs7O5Il.mjs.map → query-BndaFxxp.mjs.map} +1 -1
- package/dist/{rate-limit-Bx4g9m3p.mjs → rate-limit-BZmATC6W.mjs} +2 -2
- package/dist/{rate-limit-Bx4g9m3p.mjs.map → rate-limit-BZmATC6W.mjs.map} +1 -1
- package/dist/{redirect-COsS6SWJ.mjs → redirect-CZkbozu9.mjs} +2 -2
- package/dist/{redirect-COsS6SWJ.mjs.map → redirect-CZkbozu9.mjs.map} +1 -1
- package/dist/{redirect-BgAOGHDq.mjs → redirect-CzqnLxK-.mjs} +1 -1
- package/dist/{redirect-BgAOGHDq.mjs.map → redirect-CzqnLxK-.mjs.map} +1 -1
- package/dist/{redirects-DTDHWH31.mjs → redirects-BLNOWQTn.mjs} +64 -29
- package/dist/redirects-BLNOWQTn.mjs.map +1 -0
- package/dist/{redirects-DyChwDkG.mjs → redirects-CqzNM0KM.mjs} +5 -5
- package/dist/{redirects-DyChwDkG.mjs.map → redirects-CqzNM0KM.mjs.map} +1 -1
- package/dist/{registry-Cqa2I749.mjs → registry-AZAsRsor.mjs} +30 -126
- package/dist/registry-AZAsRsor.mjs.map +1 -0
- package/dist/{relation-BnHB0T4J.mjs → relation-04DfKRTO.mjs} +2 -2
- package/dist/{relation-BnHB0T4J.mjs.map → relation-04DfKRTO.mjs.map} +1 -1
- package/dist/{relations-BBApI4e2.mjs → relations-C4htk5sb.mjs} +7 -7
- package/dist/relations-C4htk5sb.mjs.map +1 -0
- package/dist/{relations-D5sM5fW0.mjs → relations-CcFwDJdJ.mjs} +4 -4
- package/dist/{relations-D5sM5fW0.mjs.map → relations-CcFwDJdJ.mjs.map} +1 -1
- package/dist/{relations-BHo5A8Zf.d.mts → relations-DnRK4YIT.d.mts} +347 -54
- package/dist/relations-DnRK4YIT.d.mts.map +1 -0
- package/dist/{request-cache-BSUptuJR.mjs → request-cache-DH9zdCOD.mjs} +1 -1
- package/dist/{request-cache-BSUptuJR.mjs.map → request-cache-DH9zdCOD.mjs.map} +1 -1
- package/dist/request-context.d.mts +1 -1
- package/dist/{request-meta-DgZJh3zG.mjs → request-meta-DYxLlnmz.mjs} +2 -2
- package/dist/{request-meta-DgZJh3zG.mjs.map → request-meta-DYxLlnmz.mjs.map} +1 -1
- package/dist/{resolve-DOhVEvty.mjs → resolve-prZ3mP7l.mjs} +1 -1
- package/dist/{resolve-DOhVEvty.mjs.map → resolve-prZ3mP7l.mjs.map} +1 -1
- package/dist/{runner-C1T11CfC.mjs → runner-BLIDKpmA.mjs} +471 -290
- package/dist/runner-BLIDKpmA.mjs.map +1 -0
- package/dist/{runner-BYHZn3Jy.d.mts → runner-YKfIMnaF.d.mts} +3 -2
- package/dist/runner-YKfIMnaF.d.mts.map +1 -0
- package/dist/runtime.d.mts +11 -11
- package/dist/runtime.mjs +1 -1
- package/dist/{schema-DZ5YVVZj.mjs → schema-CGnBeLiW.mjs} +3 -3
- package/dist/{schema-DZ5YVVZj.mjs.map → schema-CGnBeLiW.mjs.map} +1 -1
- package/dist/{schema-2AOsSn2v.mjs → schema-DYr-Vd-L.mjs} +36 -6
- package/dist/{schema-2AOsSn2v.mjs.map → schema-DYr-Vd-L.mjs.map} +1 -1
- package/dist/{scopes-8ClPF2bC.mjs → scopes-BhWvBavj.mjs} +3 -3
- package/dist/{scopes-8ClPF2bC.mjs.map → scopes-BhWvBavj.mjs.map} +1 -1
- package/dist/{search-u1QYdOCG.mjs → search-C-qDk4kx.mjs} +4 -4
- package/dist/{search-u1QYdOCG.mjs.map → search-C-qDk4kx.mjs.map} +1 -1
- package/dist/{secrets-BEgsAQEU.mjs → secrets-rEtHt-6z.mjs} +3 -3
- package/dist/{secrets-BEgsAQEU.mjs.map → secrets-rEtHt-6z.mjs.map} +1 -1
- package/dist/{sections-DmHviGyM.mjs → sections-B_nYvlwn.mjs} +2 -2
- package/dist/{sections-DmHviGyM.mjs.map → sections-B_nYvlwn.mjs.map} +1 -1
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +25 -23
- package/dist/seo/index.d.mts +3 -3
- package/dist/seo/index.mjs +17 -15
- package/dist/seo/index.mjs.map +1 -1
- package/dist/{seo-Dq4G-RrO.mjs → seo-926NRIgt.mjs} +3 -3
- package/dist/{seo-Dq4G-RrO.mjs.map → seo-926NRIgt.mjs.map} +1 -1
- package/dist/{seo-AFpVvTqr.mjs → seo-CVWkdv6x.mjs} +1 -1
- package/dist/{seo-AFpVvTqr.mjs.map → seo-CVWkdv6x.mjs.map} +1 -1
- package/dist/{service-BpArayPr.mjs → service-CJl3ZAYs.mjs} +3 -3
- package/dist/{service-BpArayPr.mjs.map → service-CJl3ZAYs.mjs.map} +1 -1
- package/dist/{session-user-BEorKVT-.mjs → session-user-BlMgqCHS.mjs} +1 -1
- package/dist/{session-user-BEorKVT-.mjs.map → session-user-BlMgqCHS.mjs.map} +1 -1
- package/dist/{settings-xRdoUZr0.mjs → settings--wobrkkC.mjs} +21 -8
- package/dist/settings--wobrkkC.mjs.map +1 -0
- package/dist/{settings-DE9xtzqd.mjs → settings-Cwm6o2jY.mjs} +3 -3
- package/dist/{settings-DE9xtzqd.mjs.map → settings-Cwm6o2jY.mjs.map} +1 -1
- package/dist/{setup-complete-BnT8pq_C.mjs → setup-complete-DQbClIN2.mjs} +2 -2
- package/dist/{setup-complete-BnT8pq_C.mjs.map → setup-complete-DQbClIN2.mjs.map} +1 -1
- package/dist/{setup-nonce-CBitf_oQ.mjs → setup-nonce-DZCFS2sn.mjs} +1 -1
- package/dist/{setup-nonce-CBitf_oQ.mjs.map → setup-nonce-DZCFS2sn.mjs.map} +1 -1
- package/dist/{single-flight-cache-B0eLKS6K.mjs → single-flight-cache-BPuGPdcN.mjs} +2 -2
- package/dist/{single-flight-cache-B0eLKS6K.mjs.map → single-flight-cache-BPuGPdcN.mjs.map} +1 -1
- package/dist/{site-url-DjpIXMXJ.mjs → site-url-BrxA_E9H.mjs} +3 -3
- package/dist/{site-url-DjpIXMXJ.mjs.map → site-url-BrxA_E9H.mjs.map} +1 -1
- package/dist/{snapshot-BBlGkb2q.mjs → snapshot--OCDTqdb.mjs} +1 -1
- package/dist/{snapshot-BBlGkb2q.mjs.map → snapshot--OCDTqdb.mjs.map} +1 -1
- package/dist/{ssrf-Cpvg_n3A.mjs → ssrf-5sIM5jzl.mjs} +23 -6
- package/dist/{ssrf-Cpvg_n3A.mjs.map → ssrf-5sIM5jzl.mjs.map} +1 -1
- package/dist/{state-DYwPue40.mjs → state-BpFVsJZB.mjs} +12 -4
- package/dist/state-BpFVsJZB.mjs.map +1 -0
- package/dist/{status-CWVYpbD8.mjs → status-B777-dXz.mjs} +1 -1
- package/dist/{status-CWVYpbD8.mjs.map → status-B777-dXz.mjs.map} +1 -1
- package/dist/storage/local.d.mts +2 -1
- package/dist/storage/local.d.mts.map +1 -1
- package/dist/storage/local.mjs +1 -1
- package/dist/storage/local.mjs.map +1 -1
- package/dist/storage/s3.d.mts +2 -1
- package/dist/storage/s3.d.mts.map +1 -1
- package/dist/storage/s3.mjs +3 -2
- package/dist/storage/s3.mjs.map +1 -1
- package/dist/{target-DixqqV5i.mjs → target-BmR0iTwz.mjs} +1 -1
- package/dist/{target-DixqqV5i.mjs.map → target-BmR0iTwz.mjs.map} +1 -1
- package/dist/{taxonomies-OHUIiIpI.mjs → taxonomies-DkAkMupr.mjs} +17 -14
- package/dist/taxonomies-DkAkMupr.mjs.map +1 -0
- package/dist/{taxonomies-BlrncHi9.mjs → taxonomies-Wfy_Lg12.mjs} +43 -17
- package/dist/taxonomies-Wfy_Lg12.mjs.map +1 -0
- package/dist/{taxonomy-BqCZ1TdU.mjs → taxonomy-tJepplLL.mjs} +5 -5
- package/dist/{taxonomy-BqCZ1TdU.mjs.map → taxonomy-tJepplLL.mjs.map} +1 -1
- package/dist/{tokens-C39klX8R.mjs → tokens-BCO1oruF.mjs} +1 -1
- package/dist/{tokens-C39klX8R.mjs.map → tokens-BCO1oruF.mjs.map} +1 -1
- package/dist/{transaction-NQj4VJ7Z.mjs → transaction-0KOpOyMu.mjs} +2 -1
- package/dist/{transaction-NQj4VJ7Z.mjs.map → transaction-0KOpOyMu.mjs.map} +1 -1
- package/dist/{transport-DBJwa-Si.mjs → transport-Dr3qtwXC.mjs} +4 -3
- package/dist/{transport-DBJwa-Si.mjs.map → transport-Dr3qtwXC.mjs.map} +1 -1
- package/dist/{transport-RQE36APG.d.mts → transport-xh6YKW2G.d.mts} +1 -1
- package/dist/{transport-RQE36APG.d.mts.map → transport-xh6YKW2G.d.mts.map} +1 -1
- package/dist/{trusted-proxy-CEVekpby.mjs → trusted-proxy-BR5F1Otp.mjs} +1 -1
- package/dist/{trusted-proxy-CEVekpby.mjs.map → trusted-proxy-BR5F1Otp.mjs.map} +1 -1
- package/dist/{types-BW1syrlw.mjs → types-3qNFPlci.mjs} +1 -1
- package/dist/{types-BW1syrlw.mjs.map → types-3qNFPlci.mjs.map} +1 -1
- package/dist/types-75KIqzL9.mjs.map +1 -1
- package/dist/{types-DrJrVCT1.d.mts → types-B6GrPic4.d.mts} +9 -3
- package/dist/{types-DrJrVCT1.d.mts.map → types-B6GrPic4.d.mts.map} +1 -1
- package/dist/{types-DN64_zzZ.d.mts → types-BuHW4xDE.d.mts} +11 -10
- package/dist/types-BuHW4xDE.d.mts.map +1 -0
- package/dist/{types-DWRhk9xZ.d.mts → types-C00oyCZp.d.mts} +1 -1
- package/dist/{types-DWRhk9xZ.d.mts.map → types-C00oyCZp.d.mts.map} +1 -1
- package/dist/{types-BntycPTF.d.mts → types-CDtkNSFQ.d.mts} +1 -1
- package/dist/{types-BntycPTF.d.mts.map → types-CDtkNSFQ.d.mts.map} +1 -1
- package/dist/{types-Dfk8KI5R.d.mts → types-CPeXo1wF.d.mts} +1 -1
- package/dist/{types-Dfk8KI5R.d.mts.map → types-CPeXo1wF.d.mts.map} +1 -1
- package/dist/types-CQPWhPxE.mjs.map +1 -1
- package/dist/{types-BcqdcT-r.d.mts → types-CXFkwEGC.d.mts} +3 -2
- package/dist/types-CXFkwEGC.d.mts.map +1 -0
- package/dist/{types-CtzytVXn.mjs → types-DM3vioBY.mjs} +1 -1
- package/dist/{types-CtzytVXn.mjs.map → types-DM3vioBY.mjs.map} +1 -1
- package/dist/{types-CXnOzDe1.d.mts → types-DczELMop.d.mts} +1 -1
- package/dist/{types-CXnOzDe1.d.mts.map → types-DczELMop.d.mts.map} +1 -1
- package/dist/types-DfuTR6dL.mjs +3 -0
- package/dist/{types-DQIDRKF2.d.mts → types-FV23hEoW.d.mts} +10 -1
- package/dist/types-FV23hEoW.d.mts.map +1 -0
- package/dist/{types-C2pMvO62.d.mts → types-xDMtUFnO.d.mts} +2 -1
- package/dist/types-xDMtUFnO.d.mts.map +1 -0
- package/dist/{upload-attempts-D4FS8LT6.mjs → upload-attempts-BsqoQ1fn.mjs} +1 -1
- package/dist/{upload-attempts-D4FS8LT6.mjs.map → upload-attempts-BsqoQ1fn.mjs.map} +1 -1
- package/dist/{url-pattern-BHS0V5Ng.mjs → url-pattern-D4c2czpJ.mjs} +1 -1
- package/dist/{url-pattern-BHS0V5Ng.mjs.map → url-pattern-D4c2czpJ.mjs.map} +1 -1
- package/dist/{user-DJZfUJVE.mjs → user-BTZ40aq6.mjs} +2 -2
- package/dist/{user-DJZfUJVE.mjs.map → user-BTZ40aq6.mjs.map} +1 -1
- package/dist/{utils-D4vD_Y98.mjs → utils-BKvNjjhY.mjs} +1 -1
- package/dist/{utils-D4vD_Y98.mjs.map → utils-BKvNjjhY.mjs.map} +1 -1
- package/dist/{validate-BMLBvxOC.mjs → validate-DE_LRwo9.mjs} +2 -2
- package/dist/{validate-BMLBvxOC.mjs.map → validate-DE_LRwo9.mjs.map} +1 -1
- package/dist/{validate-CTqt5nuE.d.mts → validate-DUP27OYD.d.mts} +5 -5
- package/dist/{validate-CTqt5nuE.d.mts.map → validate-DUP27OYD.d.mts.map} +1 -1
- package/dist/{validation-npvENUCB.mjs → validation-BMImFJ11.mjs} +10 -8
- package/dist/{validation-npvENUCB.mjs.map → validation-BMImFJ11.mjs.map} +1 -1
- package/dist/version-Bii3suaO.mjs +7 -0
- package/dist/{version-DB_fqCSI.mjs.map → version-Bii3suaO.mjs.map} +1 -1
- package/dist/{widgets-BD3ho7Rq.mjs → widgets-D3gJ10xU.mjs} +18 -5
- package/dist/widgets-D3gJ10xU.mjs.map +1 -0
- package/dist/{wxr-taxonomies-Ca68766D.d.mts → wxr-taxonomies-B2Og_6rU.d.mts} +1 -1
- package/dist/{wxr-taxonomies-Ca68766D.d.mts.map → wxr-taxonomies-B2Og_6rU.d.mts.map} +1 -1
- package/dist/{wxr-taxonomies-B1R3vBoD.mjs → wxr-taxonomies-Cxngsjwo.mjs} +4 -4
- package/dist/{wxr-taxonomies-B1R3vBoD.mjs.map → wxr-taxonomies-Cxngsjwo.mjs.map} +1 -1
- package/dist/{zod-generator-LC-on_Vb.mjs → zod-generator-BuYSQJB7.mjs} +32 -22
- package/dist/zod-generator-BuYSQJB7.mjs.map +1 -0
- package/package.json +20 -9
- package/src/api/errors.ts +22 -0
- package/src/api/handlers/content.ts +49 -11
- package/src/api/handlers/index.ts +18 -0
- package/src/api/handlers/manifest.ts +161 -12
- package/src/api/handlers/media-allowlist.ts +1 -0
- package/src/api/handlers/media-folders.ts +130 -0
- package/src/api/handlers/media-usage-activation.ts +102 -0
- package/src/api/handlers/media-usage.ts +108 -0
- package/src/api/handlers/media.ts +92 -2
- package/src/api/handlers/registry.ts +483 -561
- package/src/api/handlers/taxonomies.ts +16 -9
- package/src/api/openapi/document.ts +277 -7
- package/src/api/parse.ts +1 -1
- package/src/api/schemas/auth.ts +4 -4
- package/src/api/schemas/bylines.ts +3 -3
- package/src/api/schemas/comments.ts +1 -1
- package/src/api/schemas/common.ts +3 -2
- package/src/api/schemas/content.ts +78 -22
- package/src/api/schemas/media-usage.ts +77 -0
- package/src/api/schemas/media.ts +121 -0
- package/src/api/schemas/redirects.ts +6 -1
- package/src/api/schemas/schema.ts +4 -0
- package/src/api/schemas/setup.ts +1 -1
- package/src/api/schemas/taxonomies.ts +2 -2
- package/src/api/schemas/users.ts +1 -1
- package/src/api/types.ts +23 -10
- package/src/astro/dev-typegen.ts +35 -0
- package/src/astro/image-endpoint.ts +2 -2
- package/src/astro/integration/dev-typegen.ts +91 -0
- package/src/astro/integration/index.ts +9 -44
- package/src/astro/integration/routes.ts +23 -0
- package/src/astro/integration/vite-config.ts +23 -9
- package/src/astro/middleware/auth.ts +4 -0
- package/src/astro/middleware.ts +5 -7
- package/src/astro/routes/api/admin/api-tokens/index.ts +4 -1
- package/src/astro/routes/api/admin/media-usage/activation.ts +42 -0
- package/src/astro/routes/api/admin/media-usage/progress.ts +37 -0
- package/src/astro/routes/api/admin/oauth-clients/[id].ts +1 -1
- package/src/astro/routes/api/admin/oauth-clients/index.ts +1 -1
- package/src/astro/routes/api/admin/plugins/registry/[id]/update.ts +4 -0
- package/src/astro/routes/api/admin/plugins/registry/artifact.ts +247 -101
- package/src/astro/routes/api/admin/plugins/registry/install.ts +4 -0
- package/src/astro/routes/api/admin/plugins/registry/verify.ts +60 -0
- package/src/astro/routes/api/auth/me.ts +14 -2
- package/src/astro/routes/api/content/[collection]/[id]/discard-draft.ts +8 -2
- package/src/astro/routes/api/content/[collection]/[id]/publish.ts +2 -1
- package/src/astro/routes/api/content/[collection]/[id]/unpublish.ts +6 -2
- package/src/astro/routes/api/manifest.ts +1 -1
- package/src/astro/routes/api/media/[id]/replace.ts +114 -0
- package/src/astro/routes/api/media/[id].ts +3 -0
- package/src/astro/routes/api/media/file/[...key].ts +4 -1
- package/src/astro/routes/api/media/folders/[id].ts +55 -0
- package/src/astro/routes/api/media/folders/index.ts +37 -0
- package/src/astro/routes/api/media/upload-url.ts +8 -4
- package/src/astro/routes/api/media.ts +66 -10
- package/src/astro/routes/api/menus/[name]/items/[id].ts +7 -2
- package/src/astro/routes/api/menus/[name]/items.ts +4 -1
- package/src/astro/routes/api/menus/[name]/reorder.ts +4 -1
- package/src/astro/routes/api/menus/[name]/translations.ts +4 -1
- package/src/astro/routes/api/menus/[name].ts +7 -2
- package/src/astro/routes/api/menus/index.ts +4 -1
- package/src/astro/routes/api/settings/email.ts +1 -1
- package/src/astro/routes/api/settings.ts +4 -1
- package/src/astro/routes/api/setup/dev-bypass.ts +12 -0
- package/src/astro/routes/api/taxonomies/[name]/reorder.ts +4 -1
- package/src/astro/routes/api/taxonomies/[name]/terms/[slug]/translations.ts +4 -1
- package/src/astro/routes/api/taxonomies/[name]/terms/[slug].ts +7 -2
- package/src/astro/routes/api/taxonomies/[name]/terms/index.ts +4 -1
- package/src/astro/routes/api/taxonomies/[name].ts +7 -2
- package/src/astro/routes/api/taxonomies/index.ts +4 -1
- package/src/astro/routes/api/widget-areas/[name]/reorder.ts +3 -1
- package/src/astro/routes/api/widget-areas/[name]/widgets/[id].ts +5 -2
- package/src/astro/routes/api/widget-areas/[name]/widgets.ts +3 -1
- package/src/astro/routes/api/widget-areas/[name].ts +3 -1
- package/src/astro/routes/api/widget-areas/index.ts +3 -1
- package/src/astro/types.ts +34 -6
- package/src/auth/challenge-store.ts +3 -1
- package/src/aws-sdk.d.ts +1 -0
- package/src/cache/chrome-tags.ts +24 -0
- package/src/client/index.ts +140 -2
- package/src/client/transport.ts +6 -2
- package/src/components/EmDashImage.astro +156 -51
- package/src/components/EmDashMedia.astro +2 -1
- package/src/components/Gallery.astro +7 -0
- package/src/components/InlinePortableTextEditor.tsx +136 -2
- package/src/components/LiveSearch.astro +23 -0
- package/src/components/inline-code-block.tsx +180 -49
- package/src/components/widgets/Archives.astro +2 -37
- package/src/content/converters/gallery.ts +2 -0
- package/src/content/converters/index.ts +2 -0
- package/src/content/converters/mark-safety.ts +1 -0
- package/src/content/converters/portable-text-identity.ts +139 -0
- package/src/content/converters/portable-text-to-prosemirror.ts +202 -69
- package/src/content/converters/prosemirror-to-portable-text.ts +96 -25
- package/src/content/converters/types.ts +3 -0
- package/src/database/connection.ts +2 -31
- package/src/database/index.ts +1 -1
- package/src/database/json-recordset.ts +16 -0
- package/src/database/migrations/017_authorization_codes.ts +14 -4
- package/src/database/migrations/019_i18n.ts +1 -1
- package/src/database/migrations/071_restore_content_bylines_table.ts +43 -0
- package/src/database/migrations/072_media_folders.ts +72 -0
- package/src/database/migrations/073_media_focal_point.ts +57 -0
- package/src/database/migrations/074_content_deleted_scheduled_index.ts +55 -0
- package/src/database/migrations/runner.ts +11 -3
- package/src/database/repositories/byline.ts +32 -16
- package/src/database/repositories/content.ts +119 -51
- package/src/database/repositories/media-folders.ts +115 -0
- package/src/database/repositories/media-usage-work.ts +395 -111
- package/src/database/repositories/media-usage.ts +1104 -47
- package/src/database/repositories/media.ts +156 -29
- package/src/database/repositories/plugin-storage.ts +74 -9
- package/src/database/repositories/types.ts +8 -7
- package/src/database/transaction.ts +1 -0
- package/src/database/types.ts +13 -0
- package/src/db/adapters.ts +10 -3
- package/src/db/node-sqlite-compat.ts +78 -0
- package/src/db/postgres.ts +23 -0
- package/src/db/sqlite.ts +3 -3
- package/src/emdash-runtime.ts +186 -251
- package/src/fields/boolean.ts +1 -1
- package/src/fields/datetime.ts +1 -1
- package/src/fields/file.ts +1 -1
- package/src/fields/image.ts +7 -1
- package/src/fields/integer.ts +1 -1
- package/src/fields/json.ts +1 -1
- package/src/fields/multiselect.ts +1 -1
- package/src/fields/number.ts +1 -1
- package/src/fields/portable-text.ts +1 -1
- package/src/fields/richtext.ts +1 -1
- package/src/fields/select.ts +1 -1
- package/src/fields/slug.ts +1 -1
- package/src/fields/text.ts +1 -1
- package/src/fields/textarea.ts +1 -1
- package/src/fields/types.ts +8 -4
- package/src/index.ts +30 -3
- package/src/loader.ts +63 -10
- package/src/mcp/server.ts +228 -24
- package/src/media/focal-point.ts +37 -0
- package/src/media/image-endpoint.ts +5 -2
- package/src/media/local-runtime.ts +8 -0
- package/src/media/mime.ts +1 -0
- package/src/media/normalize.ts +25 -4
- package/src/media/types.ts +10 -0
- package/src/media/usage/activation.ts +162 -35
- package/src/media/usage/capture-triggers.ts +19 -3
- package/src/media/usage/cleanup.ts +9 -8
- package/src/media/usage/collection-deletion-processor.ts +7 -3
- package/src/media/usage/collection-deletion.ts +10 -0
- package/src/media/usage/content-refresh.ts +258 -39
- package/src/media/usage/content-snapshots.ts +128 -31
- package/src/media/usage/extractor.ts +32 -13
- package/src/media/usage/maintenance-engine.ts +166 -0
- package/src/media/usage/reconciliation-processor.ts +106 -29
- package/src/media/usage/reconciliation.ts +90 -7
- package/src/media/usage/work-processor.ts +342 -101
- package/src/menus/index.ts +16 -0
- package/src/object-cache/index.ts +44 -2
- package/src/plugin-types.ts +18 -1
- package/src/plugins/hooks.ts +4 -1
- package/src/plugins/index.ts +7 -0
- package/src/plugins/manager.ts +2 -1
- package/src/plugins/manifest-schema.ts +1 -1
- package/src/plugins/routes.ts +3 -1
- package/src/plugins/sandbox/hook-result.ts +52 -0
- package/src/plugins/sandbox/index.ts +10 -0
- package/src/plugins/save-rejection.ts +20 -0
- package/src/plugins/scheduler/node.ts +1 -13
- package/src/plugins/scheduler/types.ts +0 -2
- package/src/plugins/state.ts +13 -3
- package/src/plugins/types.ts +6 -0
- package/src/registry/artifact-checksum.ts +15 -0
- package/src/registry/artifact-fetch.ts +530 -0
- package/src/registry/artifact-verification.ts +85 -0
- package/src/registry/authoritative-records.ts +180 -0
- package/src/registry/config.ts +24 -6
- package/src/registry/record-labels.ts +28 -0
- package/src/registry/types.ts +12 -15
- package/src/schema/registry.ts +26 -3
- package/src/schema/types.ts +1 -0
- package/src/schema/zod-generator.ts +28 -17
- package/src/security/ssrf.ts +26 -4
- package/src/seed/apply.ts +4 -4
- package/src/settings/index.ts +16 -0
- package/src/storage/local.ts +1 -0
- package/src/storage/s3.ts +2 -0
- package/src/storage/types.ts +2 -0
- package/src/taxonomies/index.ts +40 -20
- package/src/ui.ts +2 -0
- package/src/widgets/archives.ts +67 -0
- package/src/widgets/index.ts +16 -0
- package/dist/api-BeBglVxU.mjs +0 -4695
- package/dist/api-BeBglVxU.mjs.map +0 -1
- package/dist/byline-yjvWq4ip.mjs.map +0 -1
- package/dist/challenge-store-SIL5DsF2.mjs.map +0 -1
- package/dist/collection-deletion-DQPvMD8R.mjs.map +0 -1
- package/dist/content-ZHCc1ngN.mjs.map +0 -1
- package/dist/content-refresh-B_8SJzuU.mjs.map +0 -1
- package/dist/context-ZldbZcle.mjs.map +0 -1
- package/dist/errors-CLUPm7aD.mjs.map +0 -1
- package/dist/index-BVBZj4-7.d.mts.map +0 -1
- package/dist/loader-CdG_Ci3H.mjs.map +0 -1
- package/dist/manifest-schema-BXbUAHod.mjs.map +0 -1
- package/dist/media-BWWWb8kg.mjs.map +0 -1
- package/dist/media-CzhAn2--.mjs.map +0 -1
- package/dist/media-allowlist-D6x-Us02.mjs.map +0 -1
- package/dist/media-usage-BZCydfvu.mjs.map +0 -1
- package/dist/media-usage-work-DrCbqBcl.mjs.map +0 -1
- package/dist/menus-DSo5QeW0.mjs.map +0 -1
- package/dist/mime-DfIVjNkr.mjs.map +0 -1
- package/dist/normalize-Bc-s_r-a.mjs.map +0 -1
- package/dist/object-cache-71tPfV4A.mjs.map +0 -1
- package/dist/options--hhz-jZ1.d.mts.map +0 -1
- package/dist/placeholder-Dp0K3RkD.d.mts.map +0 -1
- package/dist/redirects-DTDHWH31.mjs.map +0 -1
- package/dist/registry-Cqa2I749.mjs.map +0 -1
- package/dist/relations-BBApI4e2.mjs.map +0 -1
- package/dist/relations-BHo5A8Zf.d.mts.map +0 -1
- package/dist/runner-BYHZn3Jy.d.mts.map +0 -1
- package/dist/runner-C1T11CfC.mjs.map +0 -1
- package/dist/settings-xRdoUZr0.mjs.map +0 -1
- package/dist/state-DYwPue40.mjs.map +0 -1
- package/dist/taxonomies-BlrncHi9.mjs.map +0 -1
- package/dist/taxonomies-OHUIiIpI.mjs.map +0 -1
- package/dist/types-BcqdcT-r.d.mts.map +0 -1
- package/dist/types-C2pMvO62.d.mts.map +0 -1
- package/dist/types-CP1CflWf.mjs +0 -3
- package/dist/types-DN64_zzZ.d.mts.map +0 -1
- package/dist/types-DQIDRKF2.d.mts.map +0 -1
- package/dist/version-DB_fqCSI.mjs +0 -7
- package/dist/widgets-BD3ho7Rq.mjs.map +0 -1
- package/dist/zod-generator-LC-on_Vb.mjs.map +0 -1
- /package/dist/{api-tokens-rIXC6LdE.mjs → api-tokens-BfYts-sq.mjs} +0 -0
- /package/dist/{ssrf-DpXgKsna.mjs → ssrf-Dg3cIT-b.mjs} +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import "../../../config-C3EBstHi.mjs";
|
|
2
2
|
import { i as encodeBase64, t as decodeBase64 } from "../../../base64-CvLhUKQv.mjs";
|
|
3
3
|
import { i as InvalidCursorError, o as decodeCursor } from "../../../types-CQPWhPxE.mjs";
|
|
4
|
-
import { t as apiError } from "../../../error-
|
|
5
|
-
import { t as CONTENT_TYPE_RE } from "../../../media-
|
|
6
|
-
import { Gt as updateFieldBody, Pt as createCollectionBody, Wt as updateCollectionBody,
|
|
7
|
-
import "../../../relations-
|
|
8
|
-
import "../../../status-
|
|
4
|
+
import { t as apiError } from "../../../error-DFrQjppn.mjs";
|
|
5
|
+
import { t as CONTENT_TYPE_RE } from "../../../media-BHjus86Y.mjs";
|
|
6
|
+
import { Cn as contentBylineInputSchema, Gt as updateFieldBody, Pt as createCollectionBody, V as createTaxonomyDefBody, Wt as updateCollectionBody, an as contentSeoInput, hn as bylineCreateBody, nt as updateTaxonomyDefBody, xn as bylineUpdateBody } from "../../../redirects-BLNOWQTn.mjs";
|
|
7
|
+
import "../../../relations-C4htk5sb.mjs";
|
|
8
|
+
import "../../../status-B777-dXz.mjs";
|
|
9
9
|
import "../../../api/schemas/index.mjs";
|
|
10
|
-
import { i as hasScope$1 } from "../../../api-tokens-
|
|
11
|
-
import { n as convertDataForWrite, t as convertDataForRead } from "../../../portable-text-
|
|
10
|
+
import { i as hasScope$1 } from "../../../api-tokens-BfYts-sq.mjs";
|
|
11
|
+
import { n as convertDataForWrite, t as convertDataForRead } from "../../../portable-text-U85hOafW.mjs";
|
|
12
12
|
import { z } from "zod";
|
|
13
13
|
import { Permissions, Role, canActOnOwn, hasPermission } from "@emdash-cms/auth";
|
|
14
14
|
import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
|
|
@@ -18,8 +18,26 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
18
18
|
const COLLECTION_SLUG_PATTERN = /^[a-z][a-z0-9_]*$/;
|
|
19
19
|
/** http(s) scheme matcher used by `settings_update` URL validation. */
|
|
20
20
|
const HTTP_SCHEME_PATTERN = /^https?:\/\//i;
|
|
21
|
+
/**
|
|
22
|
+
* Shared wording for the `_rev` parameter on write tools. Agents only see the
|
|
23
|
+
* tool schema, so the retry protocol is stated here.
|
|
24
|
+
*/
|
|
25
|
+
const REV_PARAM_DESCRIPTION = "Revision token proving you have read the current item. Call content_get first and pass back the _rev it returns. If this call fails with CONFLICT the item changed in the meantime: call content_get again and retry with the new token.";
|
|
26
|
+
/**
|
|
27
|
+
* Replaces Zod's "expected string, received undefined" for a caller that never
|
|
28
|
+
* read the schema, so the message says where the token comes from.
|
|
29
|
+
*/
|
|
30
|
+
const REV_MISSING_ERROR = "_rev is required: call content_get for this item and pass back the _rev it returns.";
|
|
21
31
|
const TAXONOMY_CURSOR_VERSION = 2;
|
|
22
32
|
const MAX_TAXONOMY_CURSOR_LENGTH = 2048;
|
|
33
|
+
const contentDateTimeInputSchema = z.iso.datetime({
|
|
34
|
+
offset: true,
|
|
35
|
+
message: "must be an ISO 8601 datetime"
|
|
36
|
+
}).or(z.iso.datetime({
|
|
37
|
+
offset: true,
|
|
38
|
+
precision: -1,
|
|
39
|
+
message: "must be an ISO 8601 datetime"
|
|
40
|
+
}));
|
|
23
41
|
const settingsMediaReferenceSchema = z.object({
|
|
24
42
|
mediaId: z.string().describe("Media item ID (use media_create or media_list)"),
|
|
25
43
|
alt: z.string().optional().describe("Alt text for the media reference")
|
|
@@ -67,7 +85,9 @@ const schemaUpdateCollectionToolSchema = z.object({
|
|
|
67
85
|
commentsEnabled: updateCollectionBody.shape.commentsEnabled.describe("Whether comments are enabled for this collection"),
|
|
68
86
|
commentsModeration: updateCollectionBody.shape.commentsModeration.describe("Comment moderation policy"),
|
|
69
87
|
commentsClosedAfterDays: updateCollectionBody.shape.commentsClosedAfterDays.describe("Close comments after this many days; 0 keeps them open"),
|
|
70
|
-
commentsAutoApproveUsers: updateCollectionBody.shape.commentsAutoApproveUsers.describe("Whether comments from authenticated users are automatically approved")
|
|
88
|
+
commentsAutoApproveUsers: updateCollectionBody.shape.commentsAutoApproveUsers.describe("Whether comments from authenticated users are automatically approved"),
|
|
89
|
+
titleField: updateCollectionBody.shape.titleField.describe("Field slug to use as the Title column in admin lists; pass null to fall back to the default"),
|
|
90
|
+
dateField: updateCollectionBody.shape.dateField.describe("Datetime field slug to use as the Date column in admin lists; pass null to fall back to the default")
|
|
71
91
|
});
|
|
72
92
|
const schemaUpdateFieldToolSchema = z.object({
|
|
73
93
|
collection: z.string().min(1).max(63).regex(COLLECTION_SLUG_PATTERN, "Invalid collection slug").describe("Collection slug containing the field"),
|
|
@@ -234,7 +254,7 @@ function getEmDash(extra) {
|
|
|
234
254
|
}
|
|
235
255
|
async function getCollectionFields(ec, collection) {
|
|
236
256
|
try {
|
|
237
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
257
|
+
const { SchemaRegistry } = await import("../../../schema-CGnBeLiW.mjs").then((n) => n.t);
|
|
238
258
|
const col = await new SchemaRegistry(ec.db).getCollectionWithFields(collection);
|
|
239
259
|
return col ? col.fields : null;
|
|
240
260
|
} catch {
|
|
@@ -263,7 +283,7 @@ async function applyReadMarkdown(ec, collection, items) {
|
|
|
263
283
|
for (const item of items) if (item.data && typeof item.data === "object") item.data = convertDataForRead(item.data, fields, false);
|
|
264
284
|
}
|
|
265
285
|
async function invalidateBylines() {
|
|
266
|
-
const { invalidateBylineCache } = await import("../../../bylines-
|
|
286
|
+
const { invalidateBylineCache } = await import("../../../bylines-CJ5nd6Lw.mjs").then((n) => n.t);
|
|
267
287
|
invalidateBylineCache();
|
|
268
288
|
}
|
|
269
289
|
/**
|
|
@@ -342,6 +362,12 @@ function extractContentId(data) {
|
|
|
342
362
|
const item = obj.item && typeof obj.item === "object" ? obj.item : obj;
|
|
343
363
|
return typeof item?.id === "string" ? item.id : void 0;
|
|
344
364
|
}
|
|
365
|
+
/** Extract the `_rev` token from a content handler response. */
|
|
366
|
+
function extractContentRev(data) {
|
|
367
|
+
if (!data || typeof data !== "object") return void 0;
|
|
368
|
+
const rev = data._rev;
|
|
369
|
+
return typeof rev === "string" ? rev : void 0;
|
|
370
|
+
}
|
|
345
371
|
function createMcpServer(pluginTools = [], request) {
|
|
346
372
|
const server = new McpServer({
|
|
347
373
|
name: "emdash",
|
|
@@ -430,7 +456,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
430
456
|
});
|
|
431
457
|
server.registerTool("content_get", {
|
|
432
458
|
title: "Get Content",
|
|
433
|
-
description: "Get a single content item by its ID or slug. Returns the full content data including all field values, metadata, and a _rev token
|
|
459
|
+
description: "Get a single content item by its ID or slug. Returns the full content data including all field values, metadata, and a _rev token. content_update, content_publish, content_unpublish and content_discard_draft require that token, so read the item here before calling them.",
|
|
434
460
|
inputSchema: z.object({
|
|
435
461
|
collection: z.string().describe("Collection slug (e.g. 'posts', 'pages')"),
|
|
436
462
|
id: z.string().describe("Content item ID (ULID) or slug"),
|
|
@@ -511,7 +537,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
511
537
|
});
|
|
512
538
|
server.registerTool("content_update", {
|
|
513
539
|
title: "Update Content",
|
|
514
|
-
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).
|
|
540
|
+
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). Requires the _rev token from content_get, so read the item before updating it: the update fails if the item changed since that read. When status is not set, a change to a published item is staged as a draft, so the response shows the new values while the live version keeps the old ones until content_publish. `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.",
|
|
515
541
|
inputSchema: z.object({
|
|
516
542
|
collection: z.string().describe("Collection slug"),
|
|
517
543
|
id: z.string().describe("Content item ID or slug"),
|
|
@@ -522,11 +548,8 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
522
548
|
seo: contentSeoInput.optional().describe("Per-content SEO metadata. Only valid for collections with SEO enabled (see schema_get_collection.hasSeo). Fields not included are left unchanged; pass null to clear."),
|
|
523
549
|
bylines: z.array(contentBylineInputSchema).optional().describe("Replace the byline list for this item. The first entry becomes the primary byline. Pass an empty array to clear all bylines."),
|
|
524
550
|
taxonomies: z.record(z.string(), z.array(z.string())).optional().describe("Replace taxonomy term assignments as { taxonomyName: [termSlug, ...] }. Term slugs are resolved in the entry's locale. Only named taxonomies are touched; other taxonomies are left unchanged. Pass an empty array to clear a taxonomy."),
|
|
525
|
-
publishedAt:
|
|
526
|
-
|
|
527
|
-
message: "must be an ISO 8601 datetime"
|
|
528
|
-
}).nullish().describe("Override the publication timestamp (ISO 8601). Requires content:publish_any permission. Pass null to clear. Useful for content migrations."),
|
|
529
|
-
_rev: z.string().optional().describe("Revision token from content_get for conflict detection")
|
|
551
|
+
publishedAt: contentDateTimeInputSchema.nullish().describe("Override the publication timestamp (ISO 8601). Requires content:publish_any permission. Pass null to clear. Useful for content migrations."),
|
|
552
|
+
_rev: z.string({ error: REV_MISSING_ERROR }).describe(REV_PARAM_DESCRIPTION)
|
|
530
553
|
})
|
|
531
554
|
}, async (args, extra) => {
|
|
532
555
|
requireScope(extra, "content:write");
|
|
@@ -546,6 +569,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
546
569
|
const resolvedId = extractContentId(existing.data) ?? args.id;
|
|
547
570
|
if (args.status === "published") {
|
|
548
571
|
requireOwnership(extra, ownerId, "content:publish_own", "content:publish_any");
|
|
572
|
+
let rev = args._rev;
|
|
549
573
|
if (args.data || args.slug || args.seo !== void 0 || args.bylines !== void 0 || args.taxonomies !== void 0 || args.publishedAt !== void 0) {
|
|
550
574
|
const updateResult = await emdash.handleContentUpdate(args.collection, resolvedId, {
|
|
551
575
|
data,
|
|
@@ -559,11 +583,13 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
559
583
|
_rev: args._rev
|
|
560
584
|
});
|
|
561
585
|
if (!updateResult.success) return unwrap(updateResult);
|
|
586
|
+
rev = extractContentRev(updateResult.data);
|
|
562
587
|
}
|
|
563
|
-
return unwrap(await emdash.handleContentPublish(args.collection, resolvedId));
|
|
588
|
+
return unwrap(await emdash.handleContentPublish(args.collection, resolvedId, { _rev: rev }));
|
|
564
589
|
}
|
|
565
590
|
if (args.status === "draft") {
|
|
566
591
|
requireOwnership(extra, ownerId, "content:publish_own", "content:publish_any");
|
|
592
|
+
let rev = args._rev;
|
|
567
593
|
if (args.data || args.slug || args.seo !== void 0 || args.bylines !== void 0 || args.taxonomies !== void 0 || args.publishedAt !== void 0) {
|
|
568
594
|
const updateResult = await emdash.handleContentUpdate(args.collection, resolvedId, {
|
|
569
595
|
data,
|
|
@@ -577,8 +603,9 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
577
603
|
_rev: args._rev
|
|
578
604
|
});
|
|
579
605
|
if (!updateResult.success) return unwrap(updateResult);
|
|
606
|
+
rev = extractContentRev(updateResult.data);
|
|
580
607
|
}
|
|
581
|
-
return unwrap(await emdash.handleContentUnpublish(args.collection, resolvedId));
|
|
608
|
+
return unwrap(await emdash.handleContentUnpublish(args.collection, resolvedId, { _rev: rev }));
|
|
582
609
|
}
|
|
583
610
|
return unwrap(await emdash.handleContentUpdate(args.collection, resolvedId, {
|
|
584
611
|
data,
|
|
@@ -646,10 +673,8 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
646
673
|
inputSchema: z.object({
|
|
647
674
|
collection: z.string().describe("Collection slug"),
|
|
648
675
|
id: z.string().describe("Content item ID or slug"),
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
message: "must be an ISO 8601 datetime"
|
|
652
|
-
}).optional().describe("Override publication timestamp (ISO 8601). Requires content:publish_any permission. Useful when importing content with original publish dates.")
|
|
676
|
+
_rev: z.string({ error: REV_MISSING_ERROR }).describe(REV_PARAM_DESCRIPTION),
|
|
677
|
+
publishedAt: contentDateTimeInputSchema.optional().describe("Override publication timestamp (ISO 8601). Requires content:publish_any permission. Useful when importing content with original publish dates.")
|
|
653
678
|
})
|
|
654
679
|
}, async (args, extra) => {
|
|
655
680
|
requireScope(extra, "content:write");
|
|
@@ -665,14 +690,18 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
665
690
|
}, "content:publish_any")) throw new EmDashAuthError("Setting publishedAt requires content:publish_any permission", "INSUFFICIENT_PERMISSIONS");
|
|
666
691
|
}
|
|
667
692
|
const resolvedId = extractContentId(existing.data) ?? args.id;
|
|
668
|
-
return unwrap(await emdash.handleContentPublish(args.collection, resolvedId, {
|
|
693
|
+
return unwrap(await emdash.handleContentPublish(args.collection, resolvedId, {
|
|
694
|
+
publishedAt: args.publishedAt,
|
|
695
|
+
_rev: args._rev
|
|
696
|
+
}));
|
|
669
697
|
});
|
|
670
698
|
server.registerTool("content_unpublish", {
|
|
671
699
|
title: "Unpublish Content",
|
|
672
|
-
description: "Unpublish a content item, reverting it to draft status. It will no longer be visible on the live site but its content
|
|
700
|
+
description: "Unpublish a content item, reverting it to draft status. It will no longer be visible on the live site, but its content and publication date are preserved.",
|
|
673
701
|
inputSchema: z.object({
|
|
674
702
|
collection: z.string().describe("Collection slug"),
|
|
675
|
-
id: z.string().describe("Content item ID or slug")
|
|
703
|
+
id: z.string().describe("Content item ID or slug"),
|
|
704
|
+
_rev: z.string({ error: REV_MISSING_ERROR }).describe(REV_PARAM_DESCRIPTION)
|
|
676
705
|
})
|
|
677
706
|
}, async (args, extra) => {
|
|
678
707
|
requireScope(extra, "content:write");
|
|
@@ -682,7 +711,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
682
711
|
if (!existing.success) return unwrap(existing);
|
|
683
712
|
requireOwnership(extra, extractContentAuthorId(existing.data), "content:publish_own", "content:publish_any");
|
|
684
713
|
const resolvedId = extractContentId(existing.data) ?? args.id;
|
|
685
|
-
return unwrap(await ec.handleContentUnpublish(args.collection, resolvedId));
|
|
714
|
+
return unwrap(await ec.handleContentUnpublish(args.collection, resolvedId, { _rev: args._rev }));
|
|
686
715
|
});
|
|
687
716
|
server.registerTool("content_schedule", {
|
|
688
717
|
title: "Schedule Content",
|
|
@@ -737,7 +766,8 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
737
766
|
description: "Discard the current draft changes and revert to the last published version. Only works on items that have been published at least once.",
|
|
738
767
|
inputSchema: z.object({
|
|
739
768
|
collection: z.string().describe("Collection slug"),
|
|
740
|
-
id: z.string().describe("Content item ID or slug")
|
|
769
|
+
id: z.string().describe("Content item ID or slug"),
|
|
770
|
+
_rev: z.string({ error: REV_MISSING_ERROR }).describe(REV_PARAM_DESCRIPTION)
|
|
741
771
|
}),
|
|
742
772
|
annotations: { destructiveHint: true }
|
|
743
773
|
}, async (args, extra) => {
|
|
@@ -748,7 +778,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
748
778
|
if (!existing.success) return unwrap(existing);
|
|
749
779
|
requireOwnership(extra, extractContentAuthorId(existing.data), "content:edit_own", "content:edit_any");
|
|
750
780
|
const resolvedId = extractContentId(existing.data) ?? args.id;
|
|
751
|
-
return unwrap(await ec.handleContentDiscardDraft(args.collection, resolvedId));
|
|
781
|
+
return unwrap(await ec.handleContentDiscardDraft(args.collection, resolvedId, { _rev: args._rev }));
|
|
752
782
|
});
|
|
753
783
|
server.registerTool("content_list_trashed", {
|
|
754
784
|
title: "List Trashed Content",
|
|
@@ -819,7 +849,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
819
849
|
requireScope(extra, "content:read");
|
|
820
850
|
const ec = getEmDash(extra);
|
|
821
851
|
try {
|
|
822
|
-
const { BylineRepository } = await import("../../../byline-
|
|
852
|
+
const { BylineRepository } = await import("../../../byline-DuhF7NWl.mjs").then((n) => n.n);
|
|
823
853
|
return jsonResult(await new BylineRepository(ec.db).findMany({
|
|
824
854
|
search: args.search,
|
|
825
855
|
isGuest: args.isGuest,
|
|
@@ -841,7 +871,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
841
871
|
requireScope(extra, "content:read");
|
|
842
872
|
const ec = getEmDash(extra);
|
|
843
873
|
try {
|
|
844
|
-
const { BylineRepository } = await import("../../../byline-
|
|
874
|
+
const { BylineRepository } = await import("../../../byline-DuhF7NWl.mjs").then((n) => n.n);
|
|
845
875
|
const byline = await new BylineRepository(ec.db).findById(args.id);
|
|
846
876
|
if (!byline) return respondError("NOT_FOUND", `Byline '${args.id}' not found`);
|
|
847
877
|
return jsonResult(byline);
|
|
@@ -859,7 +889,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
859
889
|
requireRole(extra, Role.EDITOR);
|
|
860
890
|
const ec = getEmDash(extra);
|
|
861
891
|
try {
|
|
862
|
-
const { handleBylineCreate } = await import("../../../bylines-
|
|
892
|
+
const { handleBylineCreate } = await import("../../../bylines-RwBAeOF1.mjs").then((n) => n.t);
|
|
863
893
|
const result = await handleBylineCreate(ec.db, args);
|
|
864
894
|
if (result.success) await invalidateBylines();
|
|
865
895
|
return unwrap(result);
|
|
@@ -879,7 +909,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
879
909
|
requireRole(extra, Role.EDITOR);
|
|
880
910
|
const ec = getEmDash(extra);
|
|
881
911
|
try {
|
|
882
|
-
const { handleBylineUpdate } = await import("../../../bylines-
|
|
912
|
+
const { handleBylineUpdate } = await import("../../../bylines-RwBAeOF1.mjs").then((n) => n.t);
|
|
883
913
|
const { id, ...input } = args;
|
|
884
914
|
const result = await handleBylineUpdate(ec.db, id, input);
|
|
885
915
|
if (result.success) await invalidateBylines();
|
|
@@ -898,7 +928,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
898
928
|
requireRole(extra, Role.EDITOR);
|
|
899
929
|
const ec = getEmDash(extra);
|
|
900
930
|
try {
|
|
901
|
-
const { BylineRepository } = await import("../../../byline-
|
|
931
|
+
const { BylineRepository } = await import("../../../byline-DuhF7NWl.mjs").then((n) => n.n);
|
|
902
932
|
if (!await new BylineRepository(ec.db).delete(args.id)) return respondError("NOT_FOUND", `Byline '${args.id}' not found`);
|
|
903
933
|
await invalidateBylines();
|
|
904
934
|
return jsonResult({ deleted: args.id });
|
|
@@ -915,7 +945,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
915
945
|
requireScope(extra, "content:read");
|
|
916
946
|
const ec = getEmDash(extra);
|
|
917
947
|
try {
|
|
918
|
-
const { handleBylineTranslations } = await import("../../../bylines-
|
|
948
|
+
const { handleBylineTranslations } = await import("../../../bylines-RwBAeOF1.mjs").then((n) => n.t);
|
|
919
949
|
return unwrap(await handleBylineTranslations(ec.db, args.id));
|
|
920
950
|
} catch (error) {
|
|
921
951
|
return respondHandlerError(error, "BYLINE_TRANSLATIONS_ERROR");
|
|
@@ -931,7 +961,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
931
961
|
requireRole(extra, Role.EDITOR);
|
|
932
962
|
const ec = getEmDash(extra);
|
|
933
963
|
try {
|
|
934
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
964
|
+
const { SchemaRegistry } = await import("../../../schema-CGnBeLiW.mjs").then((n) => n.t);
|
|
935
965
|
return jsonResult({ items: await new SchemaRegistry(ec.db).listCollections() });
|
|
936
966
|
} catch (error) {
|
|
937
967
|
return respondHandlerError(error, "SCHEMA_LIST_ERROR");
|
|
@@ -947,7 +977,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
947
977
|
requireRole(extra, Role.EDITOR);
|
|
948
978
|
const ec = getEmDash(extra);
|
|
949
979
|
try {
|
|
950
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
980
|
+
const { SchemaRegistry } = await import("../../../schema-CGnBeLiW.mjs").then((n) => n.t);
|
|
951
981
|
const collection = await new SchemaRegistry(ec.db).getCollectionWithFields(args.slug);
|
|
952
982
|
if (!collection) return respondError("NOT_FOUND", `Collection '${args.slug}' not found`);
|
|
953
983
|
return jsonResult(collection);
|
|
@@ -972,7 +1002,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
972
1002
|
requireRole(extra, Role.ADMIN);
|
|
973
1003
|
const ec = getEmDash(extra);
|
|
974
1004
|
try {
|
|
975
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
1005
|
+
const { SchemaRegistry } = await import("../../../schema-CGnBeLiW.mjs").then((n) => n.t);
|
|
976
1006
|
const collection = await new SchemaRegistry(ec.db).createCollection({
|
|
977
1007
|
slug: args.slug,
|
|
978
1008
|
label: args.label,
|
|
@@ -1001,7 +1031,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1001
1031
|
requireRole(extra, Role.ADMIN);
|
|
1002
1032
|
const ec = getEmDash(extra);
|
|
1003
1033
|
try {
|
|
1004
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
1034
|
+
const { SchemaRegistry } = await import("../../../schema-CGnBeLiW.mjs").then((n) => n.t);
|
|
1005
1035
|
await new SchemaRegistry(ec.db).deleteCollection(args.slug, { force: args.force });
|
|
1006
1036
|
ec.invalidateUrlPatternCache();
|
|
1007
1037
|
return jsonResult({ deleted: args.slug });
|
|
@@ -1020,7 +1050,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1020
1050
|
const ec = getEmDash(extra);
|
|
1021
1051
|
const { slug, ...input } = args;
|
|
1022
1052
|
try {
|
|
1023
|
-
const { handleSchemaCollectionUpdate } = await import("../../../schema-
|
|
1053
|
+
const { handleSchemaCollectionUpdate } = await import("../../../schema-DYr-Vd-L.mjs").then((n) => n.h);
|
|
1024
1054
|
const result = await handleSchemaCollectionUpdate(ec.db, slug, input);
|
|
1025
1055
|
if (result.success) ec.invalidateUrlPatternCache();
|
|
1026
1056
|
return unwrap(result);
|
|
@@ -1065,7 +1095,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1065
1095
|
options: z.object({
|
|
1066
1096
|
collection: z.string().optional().describe("Target collection slug for reference fields"),
|
|
1067
1097
|
rows: z.number().optional().describe("Number of rows for textarea")
|
|
1068
|
-
}).
|
|
1098
|
+
}).loose().optional().describe("Widget configuration"),
|
|
1069
1099
|
searchable: z.boolean().optional().describe("Include in full-text search index (default false)"),
|
|
1070
1100
|
indexed: z.boolean().optional().describe("Create a physical index for structured sorting"),
|
|
1071
1101
|
translatable: z.boolean().optional().describe("Whether this field is translatable (default true). Non-translatable fields are synced across all locales in a translation group.")
|
|
@@ -1075,7 +1105,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1075
1105
|
requireRole(extra, Role.ADMIN);
|
|
1076
1106
|
const ec = getEmDash(extra);
|
|
1077
1107
|
try {
|
|
1078
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
1108
|
+
const { SchemaRegistry } = await import("../../../schema-CGnBeLiW.mjs").then((n) => n.t);
|
|
1079
1109
|
return jsonResult(await new SchemaRegistry(ec.db).createField(args.collection, {
|
|
1080
1110
|
slug: args.slug,
|
|
1081
1111
|
label: args.label,
|
|
@@ -1106,7 +1136,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1106
1136
|
requireRole(extra, Role.ADMIN);
|
|
1107
1137
|
const ec = getEmDash(extra);
|
|
1108
1138
|
try {
|
|
1109
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
1139
|
+
const { SchemaRegistry } = await import("../../../schema-CGnBeLiW.mjs").then((n) => n.t);
|
|
1110
1140
|
await new SchemaRegistry(ec.db).deleteField(args.collection, args.fieldSlug);
|
|
1111
1141
|
return jsonResult({
|
|
1112
1142
|
deleted: args.fieldSlug,
|
|
@@ -1127,7 +1157,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1127
1157
|
const ec = getEmDash(extra);
|
|
1128
1158
|
const { collection, fieldSlug, ...input } = args;
|
|
1129
1159
|
try {
|
|
1130
|
-
const { handleSchemaFieldUpdate } = await import("../../../schema-
|
|
1160
|
+
const { handleSchemaFieldUpdate } = await import("../../../schema-DYr-Vd-L.mjs").then((n) => n.h);
|
|
1131
1161
|
return unwrap(await handleSchemaFieldUpdate(ec.db, collection, fieldSlug, input));
|
|
1132
1162
|
} catch (error) {
|
|
1133
1163
|
return respondHandlerError(error, "SCHEMA_FIELD_UPDATE_ERROR");
|
|
@@ -1187,7 +1217,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1187
1217
|
inputSchema: z.object({
|
|
1188
1218
|
filename: z.string().min(1).describe("Filename including extension (e.g. 'cover.png')"),
|
|
1189
1219
|
base64: z.string().optional().describe("Base64-encoded file contents. Provide exactly one of base64 / url."),
|
|
1190
|
-
url: z.
|
|
1220
|
+
url: z.url().optional().describe("Public http(s) URL to fetch the file from. Provide exactly one of base64 / url."),
|
|
1191
1221
|
contentType: z.string().regex(CONTENT_TYPE_RE, "Invalid content type").optional().describe("MIME type (e.g. 'image/png'). Required with base64; with url it defaults to the response's Content-Type header."),
|
|
1192
1222
|
alt: z.string().optional().describe("Alt text for accessibility")
|
|
1193
1223
|
}),
|
|
@@ -1198,7 +1228,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1198
1228
|
const { emdash, userId } = getExtra(extra);
|
|
1199
1229
|
if (!emdash.storage) return respondError("NO_STORAGE", "Storage not configured");
|
|
1200
1230
|
try {
|
|
1201
|
-
const { handleMediaUpload } = await import("../../../media-upload-
|
|
1231
|
+
const { handleMediaUpload } = await import("../../../media-upload-BCidR-EY.mjs");
|
|
1202
1232
|
return unwrap(await handleMediaUpload(emdash.db, emdash.storage, {
|
|
1203
1233
|
filename: args.filename,
|
|
1204
1234
|
base64: args.base64,
|
|
@@ -1278,7 +1308,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1278
1308
|
};
|
|
1279
1309
|
} else input = { scope: "all" };
|
|
1280
1310
|
try {
|
|
1281
|
-
const { handleMediaUsageRepair } = await import("../../../media-usage-
|
|
1311
|
+
const { handleMediaUsageRepair } = await import("../../../media-usage-CdY5jhSR.mjs").then((n) => n.o);
|
|
1282
1312
|
return unwrap(await handleMediaUsageRepair(ec.db, input));
|
|
1283
1313
|
} catch (error) {
|
|
1284
1314
|
return respondHandlerError(error, "MEDIA_USAGE_REPAIR_ERROR");
|
|
@@ -1299,7 +1329,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1299
1329
|
requireScope(extra, "content:read");
|
|
1300
1330
|
const ec = getEmDash(extra);
|
|
1301
1331
|
try {
|
|
1302
|
-
const { searchWithDb } = await import("../../../search-
|
|
1332
|
+
const { searchWithDb } = await import("../../../search-C-qDk4kx.mjs").then((n) => n.t);
|
|
1303
1333
|
return jsonResult(await searchWithDb(ec.db, args.query, {
|
|
1304
1334
|
collections: args.collections,
|
|
1305
1335
|
locale: args.locale,
|
|
@@ -1319,12 +1349,105 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1319
1349
|
requireScope(extra, "content:read");
|
|
1320
1350
|
const ec = getEmDash(extra);
|
|
1321
1351
|
try {
|
|
1322
|
-
const { handleTaxonomyList } = await import("../../../taxonomies-
|
|
1352
|
+
const { handleTaxonomyList } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
|
|
1323
1353
|
return unwrap(await handleTaxonomyList(ec.db, { locale: args.locale }));
|
|
1324
1354
|
} catch (error) {
|
|
1325
1355
|
return respondHandlerError(error, "TAXONOMY_LIST_ERROR");
|
|
1326
1356
|
}
|
|
1327
1357
|
});
|
|
1358
|
+
server.registerTool("taxonomy_get", {
|
|
1359
|
+
title: "Get Taxonomy Definition",
|
|
1360
|
+
description: "Get a single taxonomy definition by name. Taxonomy definitions describe a classification system (e.g. categories or tags), which collections it applies to, and whether it is hierarchical. Pass `locale` to resolve a specific translation; otherwise the lowest matching locale is returned.",
|
|
1361
|
+
inputSchema: z.object({
|
|
1362
|
+
name: z.string().describe("Taxonomy name (e.g. 'categories', 'tags')"),
|
|
1363
|
+
locale: z.string().optional().describe("Locale to resolve the definition for")
|
|
1364
|
+
}),
|
|
1365
|
+
annotations: { readOnlyHint: true }
|
|
1366
|
+
}, async (args, extra) => {
|
|
1367
|
+
requireScope(extra, "content:read");
|
|
1368
|
+
const ec = getEmDash(extra);
|
|
1369
|
+
try {
|
|
1370
|
+
const { handleTaxonomyGet } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
|
|
1371
|
+
return unwrap(await handleTaxonomyGet(ec.db, args.name, { locale: args.locale }));
|
|
1372
|
+
} catch (error) {
|
|
1373
|
+
return respondHandlerError(error, "TAXONOMY_GET_ERROR");
|
|
1374
|
+
}
|
|
1375
|
+
});
|
|
1376
|
+
server.registerTool("taxonomy_create", {
|
|
1377
|
+
title: "Create Taxonomy Definition",
|
|
1378
|
+
description: "Create a new taxonomy definition. Definitions are per-locale; pass `locale` when the same taxonomy name exists in multiple translations. `collections` names which content types the taxonomy applies to. If `translationOf` is set, the new definition joins the source's translation group and inherits `hierarchical` and `collections` from the source when those fields are omitted.",
|
|
1379
|
+
inputSchema: z.object({
|
|
1380
|
+
name: createTaxonomyDefBody.shape.name.describe("Taxonomy name (lowercase letters, numbers, underscores)"),
|
|
1381
|
+
label: createTaxonomyDefBody.shape.label.describe("Display name"),
|
|
1382
|
+
labelSingular: createTaxonomyDefBody.shape.labelSingular.describe("Singular form of the display name"),
|
|
1383
|
+
hierarchical: createTaxonomyDefBody.shape.hierarchical.describe("Whether the taxonomy supports parent/child terms (defaults to false, or inherited from translationOf)"),
|
|
1384
|
+
collections: createTaxonomyDefBody.shape.collections.describe("Collection slugs this taxonomy applies to (defaults to [], or inherited from translationOf)"),
|
|
1385
|
+
locale: z.string().optional().describe("Locale for this definition (e.g. 'fr-fr')"),
|
|
1386
|
+
translationOf: z.string().optional().describe("Existing taxonomy definition id to create this locale variant from")
|
|
1387
|
+
})
|
|
1388
|
+
}, async (args, extra) => {
|
|
1389
|
+
requireScope(extra, "taxonomies:manage");
|
|
1390
|
+
requireRole(extra, Role.EDITOR);
|
|
1391
|
+
const ec = getEmDash(extra);
|
|
1392
|
+
try {
|
|
1393
|
+
const { handleTaxonomyCreate } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
|
|
1394
|
+
return unwrap(await handleTaxonomyCreate(ec.db, {
|
|
1395
|
+
name: args.name,
|
|
1396
|
+
label: args.label,
|
|
1397
|
+
labelSingular: args.labelSingular,
|
|
1398
|
+
hierarchical: args.hierarchical,
|
|
1399
|
+
collections: args.collections,
|
|
1400
|
+
locale: args.locale,
|
|
1401
|
+
translationOf: args.translationOf
|
|
1402
|
+
}));
|
|
1403
|
+
} catch (error) {
|
|
1404
|
+
return respondHandlerError(error, "TAXONOMY_CREATE_ERROR");
|
|
1405
|
+
}
|
|
1406
|
+
});
|
|
1407
|
+
server.registerTool("taxonomy_update", {
|
|
1408
|
+
title: "Update Taxonomy Definition",
|
|
1409
|
+
description: "Update an existing taxonomy definition. The taxonomy `name` cannot be changed. Pass `locale` to update a specific translation; otherwise the lowest matching locale is updated. Any field may be omitted to leave it unchanged.",
|
|
1410
|
+
inputSchema: z.object({
|
|
1411
|
+
name: z.string().describe("Taxonomy name to update"),
|
|
1412
|
+
label: updateTaxonomyDefBody.shape.label.describe("New display name"),
|
|
1413
|
+
labelSingular: updateTaxonomyDefBody.shape.labelSingular.describe("New singular display name; pass null to clear"),
|
|
1414
|
+
hierarchical: updateTaxonomyDefBody.shape.hierarchical.describe("Whether the taxonomy supports parent/child terms"),
|
|
1415
|
+
collections: updateTaxonomyDefBody.shape.collections.describe("Collection slugs this taxonomy applies to"),
|
|
1416
|
+
locale: z.string().optional().describe("Locale of the definition to update")
|
|
1417
|
+
})
|
|
1418
|
+
}, async (args, extra) => {
|
|
1419
|
+
requireScope(extra, "taxonomies:manage");
|
|
1420
|
+
requireRole(extra, Role.EDITOR);
|
|
1421
|
+
const ec = getEmDash(extra);
|
|
1422
|
+
try {
|
|
1423
|
+
const { handleTaxonomyUpdate } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
|
|
1424
|
+
return unwrap(await handleTaxonomyUpdate(ec.db, args.name, {
|
|
1425
|
+
label: args.label,
|
|
1426
|
+
labelSingular: args.labelSingular,
|
|
1427
|
+
hierarchical: args.hierarchical,
|
|
1428
|
+
collections: args.collections,
|
|
1429
|
+
locale: args.locale
|
|
1430
|
+
}));
|
|
1431
|
+
} catch (error) {
|
|
1432
|
+
return respondHandlerError(error, "TAXONOMY_UPDATE_ERROR");
|
|
1433
|
+
}
|
|
1434
|
+
});
|
|
1435
|
+
server.registerTool("taxonomy_delete", {
|
|
1436
|
+
title: "Delete Taxonomy Definition",
|
|
1437
|
+
description: "Delete a taxonomy definition and all of its terms in every locale, along with any content assignments those terms hold. This cannot be undone.",
|
|
1438
|
+
inputSchema: z.object({ name: z.string().describe("Taxonomy name to delete") }),
|
|
1439
|
+
annotations: { destructiveHint: true }
|
|
1440
|
+
}, async (args, extra) => {
|
|
1441
|
+
requireScope(extra, "taxonomies:manage");
|
|
1442
|
+
requireRole(extra, Role.EDITOR);
|
|
1443
|
+
const ec = getEmDash(extra);
|
|
1444
|
+
try {
|
|
1445
|
+
const { handleTaxonomyDelete } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
|
|
1446
|
+
return unwrap(await handleTaxonomyDelete(ec.db, args.name));
|
|
1447
|
+
} catch (error) {
|
|
1448
|
+
return respondHandlerError(error, "TAXONOMY_DELETE_ERROR");
|
|
1449
|
+
}
|
|
1450
|
+
});
|
|
1328
1451
|
server.registerTool("taxonomy_list_terms", {
|
|
1329
1452
|
title: "List Taxonomy Terms",
|
|
1330
1453
|
description: "List terms in a taxonomy with pagination. Terms are individual entries (e.g. specific categories or tags). Hierarchical taxonomies can have parent-child relationships.",
|
|
@@ -1339,11 +1462,11 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1339
1462
|
requireScope(extra, "content:read");
|
|
1340
1463
|
const ec = getEmDash(extra);
|
|
1341
1464
|
try {
|
|
1342
|
-
const { handleTaxonomyList } = await import("../../../taxonomies-
|
|
1465
|
+
const { handleTaxonomyList } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
|
|
1343
1466
|
const listResult = await handleTaxonomyList(ec.db, { locale: args.locale });
|
|
1344
1467
|
if (!listResult.success) return unwrap(listResult);
|
|
1345
1468
|
if (!listResult.data.taxonomies.find((t) => t.name === args.taxonomy)) return respondError("NOT_FOUND", `Taxonomy '${args.taxonomy}' not found`);
|
|
1346
|
-
const { TaxonomyRepository } = await import("../../../taxonomy-
|
|
1469
|
+
const { TaxonomyRepository } = await import("../../../taxonomy-tJepplLL.mjs").then((n) => n.n);
|
|
1347
1470
|
const repo = new TaxonomyRepository(ec.db);
|
|
1348
1471
|
const limit = Math.min(args.limit ?? 50, 100);
|
|
1349
1472
|
let cursor;
|
|
@@ -1404,7 +1527,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1404
1527
|
requireRole(extra, Role.EDITOR);
|
|
1405
1528
|
const ec = getEmDash(extra);
|
|
1406
1529
|
try {
|
|
1407
|
-
const { handleTermCreate } = await import("../../../taxonomies-
|
|
1530
|
+
const { handleTermCreate } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
|
|
1408
1531
|
return unwrap(await handleTermCreate(ec.db, args.taxonomy, {
|
|
1409
1532
|
slug: args.slug,
|
|
1410
1533
|
label: args.label,
|
|
@@ -1433,7 +1556,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1433
1556
|
requireRole(extra, Role.EDITOR);
|
|
1434
1557
|
const ec = getEmDash(extra);
|
|
1435
1558
|
try {
|
|
1436
|
-
const { handleTermUpdate } = await import("../../../taxonomies-
|
|
1559
|
+
const { handleTermUpdate } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
|
|
1437
1560
|
return unwrap(await handleTermUpdate(ec.db, args.taxonomy, args.termSlug, {
|
|
1438
1561
|
slug: args.slug,
|
|
1439
1562
|
label: args.label,
|
|
@@ -1457,7 +1580,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1457
1580
|
requireRole(extra, Role.EDITOR);
|
|
1458
1581
|
const ec = getEmDash(extra);
|
|
1459
1582
|
try {
|
|
1460
|
-
const { handleTermDelete } = await import("../../../taxonomies-
|
|
1583
|
+
const { handleTermDelete } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
|
|
1461
1584
|
return unwrap(await handleTermDelete(ec.db, args.taxonomy, args.termSlug));
|
|
1462
1585
|
} catch (error) {
|
|
1463
1586
|
return respondHandlerError(error, "TAXONOMY_TERM_DELETE_ERROR");
|
|
@@ -1472,7 +1595,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1472
1595
|
requireScope(extra, "content:read");
|
|
1473
1596
|
const ec = getEmDash(extra);
|
|
1474
1597
|
try {
|
|
1475
|
-
const { handleTermTranslations } = await import("../../../taxonomies-
|
|
1598
|
+
const { handleTermTranslations } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
|
|
1476
1599
|
return unwrap(await handleTermTranslations(ec.db, args.id));
|
|
1477
1600
|
} catch (error) {
|
|
1478
1601
|
return respondHandlerError(error, "TERM_TRANSLATIONS_ERROR");
|
|
@@ -1487,7 +1610,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1487
1610
|
requireScope(extra, "content:read");
|
|
1488
1611
|
const ec = getEmDash(extra);
|
|
1489
1612
|
try {
|
|
1490
|
-
const { handleMenuList } = await import("../../../menus-
|
|
1613
|
+
const { handleMenuList } = await import("../../../menus-uvPLXMZf.mjs").then((n) => n.d);
|
|
1491
1614
|
return unwrap(await handleMenuList(ec.db, { locale: args.locale }));
|
|
1492
1615
|
} catch (error) {
|
|
1493
1616
|
return respondHandlerError(error, "MENU_LIST_ERROR");
|
|
@@ -1505,7 +1628,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1505
1628
|
requireScope(extra, "content:read");
|
|
1506
1629
|
const ec = getEmDash(extra);
|
|
1507
1630
|
try {
|
|
1508
|
-
const { handleMenuGet } = await import("../../../menus-
|
|
1631
|
+
const { handleMenuGet } = await import("../../../menus-uvPLXMZf.mjs").then((n) => n.d);
|
|
1509
1632
|
return unwrap(await handleMenuGet(ec.db, args.name, { locale: args.locale }));
|
|
1510
1633
|
} catch (error) {
|
|
1511
1634
|
return respondHandlerError(error, "MENU_GET_ERROR");
|
|
@@ -1520,7 +1643,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1520
1643
|
requireScope(extra, "content:read");
|
|
1521
1644
|
const ec = getEmDash(extra);
|
|
1522
1645
|
try {
|
|
1523
|
-
const { handleMenuTranslations } = await import("../../../menus-
|
|
1646
|
+
const { handleMenuTranslations } = await import("../../../menus-uvPLXMZf.mjs").then((n) => n.d);
|
|
1524
1647
|
return unwrap(await handleMenuTranslations(ec.db, args.id));
|
|
1525
1648
|
} catch (error) {
|
|
1526
1649
|
return respondHandlerError(error, "MENU_TRANSLATIONS_ERROR");
|
|
@@ -1540,7 +1663,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1540
1663
|
requireRole(extra, Role.EDITOR);
|
|
1541
1664
|
const ec = getEmDash(extra);
|
|
1542
1665
|
try {
|
|
1543
|
-
const { handleMenuCreate } = await import("../../../menus-
|
|
1666
|
+
const { handleMenuCreate } = await import("../../../menus-uvPLXMZf.mjs").then((n) => n.d);
|
|
1544
1667
|
return unwrap(await handleMenuCreate(ec.db, {
|
|
1545
1668
|
name: args.name,
|
|
1546
1669
|
label: args.label,
|
|
@@ -1564,7 +1687,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1564
1687
|
requireRole(extra, Role.EDITOR);
|
|
1565
1688
|
const ec = getEmDash(extra);
|
|
1566
1689
|
try {
|
|
1567
|
-
const { handleMenuUpdate } = await import("../../../menus-
|
|
1690
|
+
const { handleMenuUpdate } = await import("../../../menus-uvPLXMZf.mjs").then((n) => n.d);
|
|
1568
1691
|
return unwrap(await handleMenuUpdate(ec.db, args.name, {
|
|
1569
1692
|
label: args.label,
|
|
1570
1693
|
locale: args.locale
|
|
@@ -1586,7 +1709,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1586
1709
|
requireRole(extra, Role.EDITOR);
|
|
1587
1710
|
const ec = getEmDash(extra);
|
|
1588
1711
|
try {
|
|
1589
|
-
const { handleMenuDelete } = await import("../../../menus-
|
|
1712
|
+
const { handleMenuDelete } = await import("../../../menus-uvPLXMZf.mjs").then((n) => n.d);
|
|
1590
1713
|
return unwrap(await handleMenuDelete(ec.db, args.name, { locale: args.locale }));
|
|
1591
1714
|
} catch (error) {
|
|
1592
1715
|
return respondHandlerError(error, "MENU_DELETE_ERROR");
|
|
@@ -1621,7 +1744,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1621
1744
|
requireRole(extra, Role.EDITOR);
|
|
1622
1745
|
const ec = getEmDash(extra);
|
|
1623
1746
|
try {
|
|
1624
|
-
const { handleMenuSetItems } = await import("../../../menus-
|
|
1747
|
+
const { handleMenuSetItems } = await import("../../../menus-uvPLXMZf.mjs").then((n) => n.d);
|
|
1625
1748
|
return unwrap(await handleMenuSetItems(ec.db, args.name, args.items, { locale: args.locale }));
|
|
1626
1749
|
} catch (error) {
|
|
1627
1750
|
return respondHandlerError(error, "MENU_SET_ITEMS_ERROR");
|
|
@@ -1668,7 +1791,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1668
1791
|
requireRole(extra, Role.EDITOR);
|
|
1669
1792
|
const ec = getEmDash(extra);
|
|
1670
1793
|
try {
|
|
1671
|
-
const { handleSettingsGet } = await import("../../../settings-
|
|
1794
|
+
const { handleSettingsGet } = await import("../../../settings-Cwm6o2jY.mjs").then((n) => n.r);
|
|
1672
1795
|
return unwrap(await handleSettingsGet(ec.db, ec.storage));
|
|
1673
1796
|
} catch (error) {
|
|
1674
1797
|
return respondHandlerError(error, "SETTINGS_READ_ERROR");
|
|
@@ -1682,7 +1805,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1682
1805
|
tagline: z.string().optional().describe("Site tagline / short description"),
|
|
1683
1806
|
logo: settingsMediaReferenceSchema.optional().describe("Logo media reference ({ mediaId, alt? })"),
|
|
1684
1807
|
favicon: settingsMediaReferenceSchema.optional().describe("Favicon media reference ({ mediaId, alt? })"),
|
|
1685
|
-
url: z.union([z.
|
|
1808
|
+
url: z.union([z.url().refine((u) => HTTP_SCHEME_PATTERN.test(u), "URL must use http or https"), z.literal("")]).optional().describe("Canonical site URL (http or https). Empty string clears it."),
|
|
1686
1809
|
postsPerPage: z.number().int().min(1).max(100).optional().describe("Default page size for content listings"),
|
|
1687
1810
|
dateFormat: z.string().optional().describe("Date format token string"),
|
|
1688
1811
|
timezone: z.string().optional().describe("IANA timezone identifier"),
|
|
@@ -1694,7 +1817,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1694
1817
|
requireRole(extra, Role.ADMIN);
|
|
1695
1818
|
const ec = getEmDash(extra);
|
|
1696
1819
|
try {
|
|
1697
|
-
const { handleSettingsUpdate } = await import("../../../settings-
|
|
1820
|
+
const { handleSettingsUpdate } = await import("../../../settings-Cwm6o2jY.mjs").then((n) => n.r);
|
|
1698
1821
|
return unwrap(await handleSettingsUpdate(ec.db, ec.storage, args));
|
|
1699
1822
|
} catch (error) {
|
|
1700
1823
|
return respondHandlerError(error, "SETTINGS_UPDATE_ERROR");
|