emdash 0.39.0 → 0.40.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/action-token-DYwe4Pk0.mjs +26 -0
- package/dist/action-token-DYwe4Pk0.mjs.map +1 -0
- package/dist/activation-LOkDM5WT.mjs +382 -0
- package/dist/activation-LOkDM5WT.mjs.map +1 -0
- package/dist/adapters-B64LbYcB.d.mts +171 -0
- package/dist/adapters-B64LbYcB.d.mts.map +1 -0
- package/dist/allowed-origins-CHB8oZNM.mjs +116 -0
- package/dist/allowed-origins-CHB8oZNM.mjs.map +1 -0
- package/dist/api/route-utils.d.mts +4 -4
- package/dist/api/route-utils.mjs +49 -40
- package/dist/api/route-utils.mjs.map +1 -1
- package/dist/api/schemas/index.d.mts +2 -2
- package/dist/api/schemas/index.mjs +11 -7
- package/dist/api-cFFZpyS0.mjs +4718 -0
- package/dist/api-cFFZpyS0.mjs.map +1 -0
- package/dist/api-tokens-CE1ECIg0.mjs +3 -0
- package/dist/api-tokens-s4i4aUp_.mjs +166 -0
- package/dist/api-tokens-s4i4aUp_.mjs.map +1 -0
- package/dist/apply-CoT603H3.mjs +1163 -0
- package/dist/apply-CoT603H3.mjs.map +1 -0
- package/dist/approvals-CqMfNxak.mjs +460 -0
- package/dist/approvals-CqMfNxak.mjs.map +1 -0
- package/dist/artifact-fetch-DZMOGZ3-.mjs +818 -0
- package/dist/artifact-fetch-DZMOGZ3-.mjs.map +1 -0
- package/dist/astro/index.d.mts +14 -14
- package/dist/astro/index.mjs +62 -12
- package/dist/astro/index.mjs.map +1 -1
- package/dist/astro/middleware/auth.d.mts +14 -12
- package/dist/astro/middleware/auth.d.mts.map +1 -1
- package/dist/astro/middleware/auth.mjs +26 -11
- package/dist/astro/middleware/auth.mjs.map +1 -1
- package/dist/astro/middleware/media-usage-write-fence.d.mts +9 -1
- package/dist/astro/middleware/media-usage-write-fence.d.mts.map +1 -1
- package/dist/astro/middleware/media-usage-write-fence.mjs +95 -13
- package/dist/astro/middleware/media-usage-write-fence.mjs.map +1 -1
- package/dist/astro/middleware/redirect.mjs +8 -8
- package/dist/astro/middleware/request-context.d.mts.map +1 -1
- package/dist/astro/middleware/request-context.mjs +145 -47
- package/dist/astro/middleware/request-context.mjs.map +1 -1
- package/dist/astro/middleware/setup.mjs +1 -1
- package/dist/astro/middleware.d.mts +12 -12
- package/dist/astro/middleware.d.mts.map +1 -1
- package/dist/astro/middleware.mjs +129 -122
- package/dist/astro/middleware.mjs.map +1 -1
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +14 -8
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +14 -8
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +5 -3
- package/dist/astro/routes/api/admin/api-tokens/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -4
- package/dist/astro/routes/api/admin/api-tokens/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +6 -4
- package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs.map +1 -1
- package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +17 -11
- package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/byline-fields/index.mjs +17 -11
- package/dist/astro/routes/api/admin/byline-fields/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +17 -11
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +25 -19
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +25 -19
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/admin/bylines/index.mjs +25 -19
- package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +19 -13
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/_id_.mjs +7 -5
- package/dist/astro/routes/api/admin/comments/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/bulk.mjs +18 -12
- package/dist/astro/routes/api/admin/comments/bulk.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/counts.mjs +7 -5
- package/dist/astro/routes/api/admin/comments/counts.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/index.mjs +18 -12
- package/dist/astro/routes/api/admin/comments/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -4
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/hooks/exclusive/index.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -6
- package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/activation.mjs +21 -15
- package/dist/astro/routes/api/admin/media-usage/activation.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +23 -17
- 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 +23 -17
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/progress.mjs +26 -15
- package/dist/astro/routes/api/admin/media-usage/progress.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/repair.mjs +32 -19
- package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/work/index.mjs +23 -17
- 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 +23 -17
- package/dist/astro/routes/api/admin/media-usage/work/retry.mjs.map +1 -1
- package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +5 -3
- package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs +5 -3
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/disable.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +10 -8
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/enable.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +10 -8
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +72 -61
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +6 -4
- package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +71 -60
- package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +74 -63
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/update.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +84 -73
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/index.mjs +72 -61
- package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +4 -2
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +71 -60
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +83 -72
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +71 -60
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +74 -63
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +85 -74
- package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +8 -6
- package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs +76 -65
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.d.mts +8 -0
- package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +221 -0
- package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs.map +1 -0
- package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +72 -61
- package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/updates.mjs +71 -60
- package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
- package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +6 -4
- package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +71 -60
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +4 -2
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs.map +1 -1
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +71 -60
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/_...path_.d.mts +12 -0
- package/dist/astro/routes/api/admin/transfer/_...path_.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/_...path_.mjs +144 -0
- package/dist/astro/routes/api/admin/transfer/_...path_.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +68 -0
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +68 -0
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/approvals/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/approvals/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +67 -0
- package/dist/astro/routes/api/admin/transfer/approvals/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/capabilities.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/capabilities.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/capabilities.mjs +70 -0
- package/dist/astro/routes/api/admin/transfer/capabilities.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +67 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +70 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +69 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +66 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +69 -0
- package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/exports/index.d.mts +9 -0
- package/dist/astro/routes/api/admin/transfer/exports/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/exports/index.mjs +91 -0
- package/dist/astro/routes/api/admin/transfer/exports/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +66 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +70 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +78 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +66 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +77 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +77 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +66 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +70 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +67 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.d.mts +8 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +66 -0
- package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/index.d.mts +9 -0
- package/dist/astro/routes/api/admin/transfer/imports/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/transfer/imports/index.mjs +99 -0
- package/dist/astro/routes/api/admin/transfer/imports/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs +3 -1
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs.map +1 -1
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs +3 -1
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs.map +1 -1
- package/dist/astro/routes/api/admin/users/_id_/index.mjs +14 -8
- package/dist/astro/routes/api/admin/users/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +16 -6
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs.map +1 -1
- package/dist/astro/routes/api/admin/users/index.mjs +14 -8
- package/dist/astro/routes/api/admin/users/index.mjs.map +1 -1
- package/dist/astro/routes/api/auth/dev-bypass.mjs +5 -3
- package/dist/astro/routes/api/auth/dev-bypass.mjs.map +1 -1
- package/dist/astro/routes/api/auth/invite/accept.mjs +3 -1
- package/dist/astro/routes/api/auth/invite/accept.mjs.map +1 -1
- package/dist/astro/routes/api/auth/invite/complete.mjs +19 -13
- package/dist/astro/routes/api/auth/invite/complete.mjs.map +1 -1
- package/dist/astro/routes/api/auth/invite/index.d.mts.map +1 -1
- package/dist/astro/routes/api/auth/invite/index.mjs +24 -12
- package/dist/astro/routes/api/auth/invite/index.mjs.map +1 -1
- package/dist/astro/routes/api/auth/invite/register-options.mjs +18 -12
- package/dist/astro/routes/api/auth/invite/register-options.mjs.map +1 -1
- package/dist/astro/routes/api/auth/logout.mjs +4 -2
- package/dist/astro/routes/api/auth/logout.mjs.map +1 -1
- package/dist/astro/routes/api/auth/magic-link/send.d.mts.map +1 -1
- package/dist/astro/routes/api/auth/magic-link/send.mjs +29 -15
- package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
- package/dist/astro/routes/api/auth/magic-link/verify.d.mts +2 -1
- package/dist/astro/routes/api/auth/magic-link/verify.d.mts.map +1 -1
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +37 -17
- package/dist/astro/routes/api/auth/magic-link/verify.mjs.map +1 -1
- package/dist/astro/routes/api/auth/me.mjs +15 -9
- package/dist/astro/routes/api/auth/me.mjs.map +1 -1
- package/dist/astro/routes/api/auth/mode.mjs +4 -2
- package/dist/astro/routes/api/auth/mode.mjs.map +1 -1
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +4 -4
- package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
- package/dist/astro/routes/api/auth/passkey/_id_.mjs +14 -8
- package/dist/astro/routes/api/auth/passkey/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/auth/passkey/index.mjs +3 -1
- package/dist/astro/routes/api/auth/passkey/index.mjs.map +1 -1
- package/dist/astro/routes/api/auth/passkey/options.d.mts.map +1 -1
- package/dist/astro/routes/api/auth/passkey/options.mjs +21 -24
- package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +18 -12
- package/dist/astro/routes/api/auth/passkey/register/options.mjs.map +1 -1
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +19 -13
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs.map +1 -1
- package/dist/astro/routes/api/auth/passkey/verify.mjs +19 -13
- package/dist/astro/routes/api/auth/passkey/verify.mjs.map +1 -1
- package/dist/astro/routes/api/auth/signup/complete.mjs +19 -13
- package/dist/astro/routes/api/auth/signup/complete.mjs.map +1 -1
- package/dist/astro/routes/api/auth/signup/request.mjs +18 -12
- package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
- package/dist/astro/routes/api/auth/signup/verify.mjs +3 -1
- package/dist/astro/routes/api/auth/signup/verify.mjs.map +1 -1
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +14 -11
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs.map +1 -1
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +21 -15
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +4 -2
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +18 -13
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +4 -3
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +18 -13
- package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +4 -2
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +10 -8
- package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.d.mts.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +68 -16
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +18 -13
- 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 +31 -22
- 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 +31 -22
- 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 +4 -3
- package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +4 -2
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +18 -13
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +38 -19
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +4 -2
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +18 -13
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +18 -13
- package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/authors.mjs +4 -2
- package/dist/astro/routes/api/content/_collection_/authors.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/index.mjs +15 -10
- package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/trash.mjs +15 -9
- package/dist/astro/routes/api/content/_collection_/trash.mjs.map +1 -1
- package/dist/astro/routes/api/dashboard.mjs +11 -9
- package/dist/astro/routes/api/dashboard.mjs.map +1 -1
- package/dist/astro/routes/api/dev/emails.mjs +4 -2
- package/dist/astro/routes/api/dev/emails.mjs.map +1 -1
- package/dist/astro/routes/api/health.mjs +5 -3
- package/dist/astro/routes/api/health.mjs.map +1 -1
- package/dist/astro/routes/api/import/probe.d.mts +3 -3
- package/dist/astro/routes/api/import/probe.mjs +27 -21
- package/dist/astro/routes/api/import/probe.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +5 -3
- package/dist/astro/routes/api/import/wordpress/analyze.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -13
- package/dist/astro/routes/api/import/wordpress/execute.mjs +18 -16
- package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
- package/dist/astro/routes/api/import/wordpress/media.mjs +19 -13
- package/dist/astro/routes/api/import/wordpress/media.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +18 -12
- package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts +5 -1
- package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts.map +1 -1
- package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs +4 -2
- package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +29 -15
- 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 +27 -21
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +38 -32
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
- package/dist/astro/routes/api/manifest.mjs +6 -4
- package/dist/astro/routes/api/manifest.mjs.map +1 -1
- package/dist/astro/routes/api/mcp.d.mts.map +1 -1
- package/dist/astro/routes/api/mcp.mjs +717 -67
- package/dist/astro/routes/api/mcp.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_/confirm.mjs +19 -13
- package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_/replace.mjs +16 -10
- package/dist/astro/routes/api/media/_id_/replace.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_/upload.mjs +8 -6
- package/dist/astro/routes/api/media/_id_/upload.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_/usage.mjs +34 -21
- 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 +37 -26
- package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +5 -3
- package/dist/astro/routes/api/media/asset/_id_/_filename_.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 +31 -2
- package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
- package/dist/astro/routes/api/media/folders/_id_.mjs +16 -10
- package/dist/astro/routes/api/media/folders/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/media/folders/index.mjs +16 -10
- package/dist/astro/routes/api/media/folders/index.mjs.map +1 -1
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +4 -2
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs.map +1 -1
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +4 -2
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs.map +1 -1
- package/dist/astro/routes/api/media/providers/index.mjs +4 -2
- package/dist/astro/routes/api/media/providers/index.mjs.map +1 -1
- package/dist/astro/routes/api/media/upload-url.mjs +18 -12
- package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
- package/dist/astro/routes/api/media.mjs +36 -24
- package/dist/astro/routes/api/media.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +18 -12
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/items.mjs +18 -12
- package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +18 -12
- package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/translations.mjs +18 -12
- package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_.mjs +18 -12
- package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/menus/index.mjs +18 -12
- package/dist/astro/routes/api/menus/index.mjs.map +1 -1
- package/dist/astro/routes/api/oauth/authorize.d.mts.map +1 -1
- package/dist/astro/routes/api/oauth/authorize.mjs +9 -6
- package/dist/astro/routes/api/oauth/authorize.mjs.map +1 -1
- package/dist/astro/routes/api/oauth/device/authorize.mjs +7 -5
- package/dist/astro/routes/api/oauth/device/authorize.mjs.map +1 -1
- package/dist/astro/routes/api/oauth/device/code.mjs +10 -8
- package/dist/astro/routes/api/oauth/device/code.mjs.map +1 -1
- package/dist/astro/routes/api/oauth/device/token.mjs +9 -7
- package/dist/astro/routes/api/oauth/device/token.mjs.map +1 -1
- package/dist/astro/routes/api/oauth/register.mjs +4 -2
- package/dist/astro/routes/api/oauth/register.mjs.map +1 -1
- package/dist/astro/routes/api/oauth/token/refresh.mjs +7 -5
- package/dist/astro/routes/api/oauth/token/refresh.mjs.map +1 -1
- package/dist/astro/routes/api/oauth/token/revoke.mjs +7 -5
- package/dist/astro/routes/api/oauth/token/revoke.mjs.map +1 -1
- package/dist/astro/routes/api/oauth/token.mjs +7 -5
- package/dist/astro/routes/api/oauth/token.mjs.map +1 -1
- package/dist/astro/routes/api/openapi.json.mjs +497 -12
- package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +10 -8
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/404s/index.mjs +21 -15
- package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/404s/summary.mjs +21 -15
- package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/_id_.mjs +21 -15
- package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/index.mjs +21 -15
- package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
- package/dist/astro/routes/api/relations/_id_/index.mjs +31 -22
- package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/relations/_id_/translations.mjs +21 -16
- package/dist/astro/routes/api/relations/_id_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/relations/index.mjs +31 -22
- package/dist/astro/routes/api/relations/index.mjs.map +1 -1
- package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +4 -2
- package/dist/astro/routes/api/revisions/_revisionId_/index.mjs.map +1 -1
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +4 -3
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs.map +1 -1
- package/dist/astro/routes/api/schema/block-types/_slug_/index.d.mts +9 -0
- package/dist/astro/routes/api/schema/block-types/_slug_/index.d.mts.map +1 -0
- package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +102 -0
- package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -0
- package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.d.mts +8 -0
- package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.d.mts.map +1 -0
- package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +96 -0
- package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -0
- package/dist/astro/routes/api/schema/block-types/index.d.mts +9 -0
- package/dist/astro/routes/api/schema/block-types/index.d.mts.map +1 -0
- package/dist/astro/routes/api/schema/block-types/index.mjs +102 -0
- package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +71 -60
- 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 +71 -60
- 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 +71 -60
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +71 -60
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/index.mjs +71 -60
- package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/reorder.mjs +71 -60
- package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/index.mjs +17 -14
- package/dist/astro/routes/api/schema/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +71 -60
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/schema/orphans/index.mjs +71 -60
- package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
- package/dist/astro/routes/api/search/enable.mjs +20 -14
- package/dist/astro/routes/api/search/enable.mjs.map +1 -1
- package/dist/astro/routes/api/search/index.mjs +19 -13
- package/dist/astro/routes/api/search/index.mjs.map +1 -1
- package/dist/astro/routes/api/search/rebuild.mjs +20 -14
- package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
- package/dist/astro/routes/api/search/stats.mjs +10 -8
- package/dist/astro/routes/api/search/stats.mjs.map +1 -1
- package/dist/astro/routes/api/search/suggest.mjs +19 -13
- package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
- package/dist/astro/routes/api/sections/_slug_.mjs +19 -13
- package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/sections/index.mjs +19 -13
- package/dist/astro/routes/api/sections/index.mjs.map +1 -1
- package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +8 -7
- package/dist/astro/routes/api/settings/backups/archives/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/settings/backups/archives/index.mjs +8 -6
- package/dist/astro/routes/api/settings/backups/archives/index.mjs.map +1 -1
- package/dist/astro/routes/api/settings/backups/export.mjs +8 -7
- package/dist/astro/routes/api/settings/backups/export.mjs.map +1 -1
- package/dist/astro/routes/api/settings/backups/index.mjs +9 -8
- package/dist/astro/routes/api/settings/backups/index.mjs.map +1 -1
- package/dist/astro/routes/api/settings/email.mjs +6 -4
- package/dist/astro/routes/api/settings/email.mjs.map +1 -1
- package/dist/astro/routes/api/settings.mjs +25 -19
- package/dist/astro/routes/api/settings.mjs.map +1 -1
- package/dist/astro/routes/api/setup/admin-verify.mjs +20 -14
- package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
- package/dist/astro/routes/api/setup/admin.mjs +19 -13
- package/dist/astro/routes/api/setup/admin.mjs.map +1 -1
- package/dist/astro/routes/api/setup/dev-bypass.mjs +43 -37
- package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
- package/dist/astro/routes/api/setup/dev-reset.mjs +4 -2
- package/dist/astro/routes/api/setup/dev-reset.mjs.map +1 -1
- package/dist/astro/routes/api/setup/index.mjs +48 -38
- package/dist/astro/routes/api/setup/index.mjs.map +1 -1
- package/dist/astro/routes/api/setup/status.mjs +5 -3
- package/dist/astro/routes/api/setup/status.mjs.map +1 -1
- package/dist/astro/routes/api/snapshot.mjs +10 -8
- package/dist/astro/routes/api/snapshot.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +25 -19
- package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +25 -19
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +25 -19
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +25 -19
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +24 -18
- package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_.mjs +25 -19
- package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/bulk-tag.d.mts +8 -0
- package/dist/astro/routes/api/taxonomies/bulk-tag.d.mts.map +1 -0
- package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +295 -0
- package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -0
- package/dist/astro/routes/api/taxonomies/index.mjs +25 -19
- package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
- package/dist/astro/routes/api/themes/preview.mjs +7 -5
- package/dist/astro/routes/api/themes/preview.mjs.map +1 -1
- package/dist/astro/routes/api/typegen.d.mts.map +1 -1
- package/dist/astro/routes/api/typegen.mjs +12 -9
- package/dist/astro/routes/api/typegen.mjs.map +1 -1
- package/dist/astro/routes/api/visual-editing/action-token.mjs +7 -5
- package/dist/astro/routes/api/visual-editing/action-token.mjs.map +1 -1
- package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +22 -16
- package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs.map +1 -1
- package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +3 -1
- package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs.map +1 -1
- package/dist/astro/routes/api/well-known/auth.mjs +2 -2
- package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
- package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +16 -10
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +20 -14
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +20 -14
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_.mjs +10 -8
- package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/index.mjs +20 -14
- package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
- package/dist/astro/routes/api/widget-components.mjs +4 -2
- package/dist/astro/routes/api/widget-components.mjs.map +1 -1
- package/dist/astro/routes/robots.txt.mjs +10 -10
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +13 -13
- package/dist/astro/routes/sitemap.xml.mjs +11 -11
- package/dist/astro/types.d.mts +21 -17
- package/dist/astro/types.d.mts.map +1 -1
- package/dist/audit-RfCugiSB.mjs +127 -0
- package/dist/audit-RfCugiSB.mjs.map +1 -0
- package/dist/auth/providers/github.d.mts +1 -1
- package/dist/auth/providers/google.d.mts +1 -1
- package/dist/authoritative-records-CoJvBXAD.mjs +5172 -0
- package/dist/authoritative-records-CoJvBXAD.mjs.map +1 -0
- package/dist/authorize-seCifOMJ.mjs +49 -0
- package/dist/authorize-seCifOMJ.mjs.map +1 -0
- package/dist/backup-CBu0LrXf.mjs +246 -0
- package/dist/backup-CBu0LrXf.mjs.map +1 -0
- package/dist/block-type-registry-DUI_3KxT.mjs +6709 -0
- package/dist/block-type-registry-DUI_3KxT.mjs.map +1 -0
- package/dist/block-types-BmZmLmAD.mjs +132 -0
- package/dist/block-types-BmZmLmAD.mjs.map +1 -0
- package/dist/block-values-C_VIPr5t.mjs +175 -0
- package/dist/block-values-C_VIPr5t.mjs.map +1 -0
- package/dist/byline-DYmkXqvo.mjs +909 -0
- package/dist/byline-DYmkXqvo.mjs.map +1 -0
- package/dist/byline-fields-D28AT-Fh.mjs +123 -0
- package/dist/byline-fields-D28AT-Fh.mjs.map +1 -0
- package/dist/byline-registry-gnKscbQX.mjs +406 -0
- package/dist/byline-registry-gnKscbQX.mjs.map +1 -0
- package/dist/bylines-BPwJqoYH.mjs +232 -0
- package/dist/bylines-BPwJqoYH.mjs.map +1 -0
- package/dist/bylines-ukLaYpVZ.mjs +214 -0
- package/dist/bylines-ukLaYpVZ.mjs.map +1 -0
- package/dist/cache-m7UEkRFV.mjs +108 -0
- package/dist/cache-m7UEkRFV.mjs.map +1 -0
- package/dist/canonical-YhEQezjg.mjs +174 -0
- package/dist/canonical-YhEQezjg.mjs.map +1 -0
- package/dist/capture-triggers-kJyl_yyM.mjs +362 -0
- package/dist/capture-triggers-kJyl_yyM.mjs.map +1 -0
- package/dist/challenge-store-ppU6Uv13.mjs +51 -0
- package/dist/challenge-store-ppU6Uv13.mjs.map +1 -0
- package/dist/checksum-B2IINIlN.mjs +162 -0
- package/dist/checksum-B2IINIlN.mjs.map +1 -0
- package/dist/chrome-tags-DApCQSIk.mjs +24 -0
- package/dist/chrome-tags-DApCQSIk.mjs.map +1 -0
- package/dist/chunks-Dms7Uxbt.mjs +25 -0
- package/dist/chunks-Dms7Uxbt.mjs.map +1 -0
- package/dist/cli/index.mjs +1471 -56
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/cf-access.d.mts +1 -1
- package/dist/client/index.d.mts +1050 -4
- package/dist/client/index.d.mts.map +1 -1
- package/dist/client/index.mjs +193 -11
- package/dist/client/index.mjs.map +1 -1
- package/dist/collection-deletion-BIm28mo3.mjs +436 -0
- package/dist/collection-deletion-BIm28mo3.mjs.map +1 -0
- package/dist/collection-deletion-processor-Br6rxs3u.mjs +217 -0
- package/dist/collection-deletion-processor-Br6rxs3u.mjs.map +1 -0
- package/dist/collection-slugs-cache-CjGk__zp.mjs +85 -0
- package/dist/collection-slugs-cache-CjGk__zp.mjs.map +1 -0
- package/dist/comment-CrBl22OF.mjs +313 -0
- package/dist/comment-CrBl22OF.mjs.map +1 -0
- package/dist/comment-reaction-JEQ2Fpd8.mjs +85 -0
- package/dist/comment-reaction-JEQ2Fpd8.mjs.map +1 -0
- package/dist/comments-2ah9du9y.mjs +195 -0
- package/dist/comments-2ah9du9y.mjs.map +1 -0
- package/dist/comments-fHZ8ON9O.mjs +99 -0
- package/dist/comments-fHZ8ON9O.mjs.map +1 -0
- package/dist/components-CXbq7CSM.mjs +108 -0
- package/dist/components-CXbq7CSM.mjs.map +1 -0
- package/dist/config-5ii2haYu.d.mts +6528 -0
- package/dist/config-5ii2haYu.d.mts.map +1 -0
- package/dist/config-CvmjJcVw.mjs +73 -0
- package/dist/config-CvmjJcVw.mjs.map +1 -0
- package/dist/config-IhybvkIQ.mjs +242 -0
- package/dist/config-IhybvkIQ.mjs.map +1 -0
- package/dist/config-Py43JK9r.d.mts +39 -0
- package/dist/config-Py43JK9r.d.mts.map +1 -0
- package/dist/content-DFaIEDj9.mjs +2281 -0
- package/dist/content-DFaIEDj9.mjs.map +1 -0
- package/dist/content-list-query-Dra4Dalc.d.mts +26 -0
- package/dist/content-list-query-Dra4Dalc.d.mts.map +1 -0
- package/dist/content-policy-DFNw91-d.mjs +46 -0
- package/dist/content-policy-DFNw91-d.mjs.map +1 -0
- package/dist/content-repair-Q8IUrpLL.mjs +442 -0
- package/dist/content-repair-Q8IUrpLL.mjs.map +1 -0
- package/dist/context-BeGccdUX.mjs +1921 -0
- package/dist/context-BeGccdUX.mjs.map +1 -0
- package/dist/cron-7DCJwPXq.mjs +284 -0
- package/dist/cron-7DCJwPXq.mjs.map +1 -0
- package/dist/dashboard-DjrB-xxZ.mjs +151 -0
- package/dist/dashboard-DjrB-xxZ.mjs.map +1 -0
- package/dist/db/index.d.mts +3 -3
- package/dist/db/index.mjs +3 -3
- package/dist/db/libsql-migrations.d.mts +1 -1
- package/dist/db/libsql-migrations.mjs +6 -6
- package/dist/db/libsql.d.mts +1 -1
- package/dist/db/postgres-migrations.d.mts +1 -1
- package/dist/db/postgres-migrations.mjs +6 -6
- package/dist/db/postgres.d.mts +1 -1
- package/dist/db/sqlite-migrations.d.mts +1 -1
- package/dist/db/sqlite-migrations.mjs +6 -6
- package/dist/db/sqlite.d.mts +1 -1
- package/dist/db/sqlite.mjs +2 -2
- package/dist/db/sqlite.mjs.map +1 -1
- package/dist/default-DQ6vsviu.mjs +81 -0
- package/dist/default-DQ6vsviu.mjs.map +1 -0
- package/dist/deferred-tasks-BPxXUB4x.d.mts +9 -0
- package/dist/deferred-tasks-BPxXUB4x.d.mts.map +1 -0
- package/dist/device-flow-CRd6DXmW.mjs +466 -0
- package/dist/device-flow-CRd6DXmW.mjs.map +1 -0
- package/dist/dialect-helpers-7_IqPdh9.mjs +307 -0
- package/dist/dialect-helpers-7_IqPdh9.mjs.map +1 -0
- package/dist/digest-BarSh-pN.mjs +194 -0
- package/dist/digest-BarSh-pN.mjs.map +1 -0
- package/dist/direct-executor-BmuFJJZV.mjs +104 -0
- package/dist/direct-executor-BmuFJJZV.mjs.map +1 -0
- package/dist/dist-BNwANFJR.mjs +810 -0
- package/dist/dist-BNwANFJR.mjs.map +1 -0
- package/dist/email-console-bJn3ctqA.mjs +50 -0
- package/dist/email-console-bJn3ctqA.mjs.map +1 -0
- package/dist/email-locale-CN6WAMx0.mjs +25 -0
- package/dist/email-locale-CN6WAMx0.mjs.map +1 -0
- package/dist/emdash-runtime-DAjghyEG.mjs +4186 -0
- package/dist/emdash-runtime-DAjghyEG.mjs.map +1 -0
- package/dist/enrich-Dl3kZ-lP.mjs +194 -0
- package/dist/enrich-Dl3kZ-lP.mjs.map +1 -0
- package/dist/entry-lock-BJYdBfXb.mjs +1097 -0
- package/dist/entry-lock-BJYdBfXb.mjs.map +1 -0
- package/dist/entry-lock-DHQOxN7R.mjs +163 -0
- package/dist/entry-lock-DHQOxN7R.mjs.map +1 -0
- package/dist/entry-lock-DVhCt49A.d.mts +4368 -0
- package/dist/entry-lock-DVhCt49A.d.mts.map +1 -0
- package/dist/entry-locks-D0foLdjQ.mjs +167 -0
- package/dist/entry-locks-D0foLdjQ.mjs.map +1 -0
- package/dist/error-CfvOHP0M.mjs +90 -0
- package/dist/error-CfvOHP0M.mjs.map +1 -0
- package/dist/errors-BF0_LFhW.mjs +460 -0
- package/dist/errors-BF0_LFhW.mjs.map +1 -0
- package/dist/errors-DgE1zJGG.mjs +120 -0
- package/dist/errors-DgE1zJGG.mjs.map +1 -0
- package/dist/escape-CuaZhZvL.mjs +9 -0
- package/dist/escape-CuaZhZvL.mjs.map +1 -0
- package/dist/fence-CMDXJYc_.mjs +162 -0
- package/dist/fence-CMDXJYc_.mjs.map +1 -0
- package/dist/field-defs-cache-HIgBbqZZ.mjs +77 -0
- package/dist/field-defs-cache-HIgBbqZZ.mjs.map +1 -0
- package/dist/fts-manager-S-K0laoS.mjs +443 -0
- package/dist/fts-manager-S-K0laoS.mjs.map +1 -0
- package/dist/gc-DjKY0Ay1.mjs +75 -0
- package/dist/gc-DjKY0Ay1.mjs.map +1 -0
- package/dist/hash-SDAW6zC-.mjs +37 -0
- package/dist/hash-SDAW6zC-.mjs.map +1 -0
- package/dist/hook-result-B5bXDgS2.d.mts +31 -0
- package/dist/hook-result-B5bXDgS2.d.mts.map +1 -0
- package/dist/hreflang-D5uNnsGJ.d.mts +50 -0
- package/dist/hreflang-D5uNnsGJ.d.mts.map +1 -0
- package/dist/hreflang-DMFBL2eb.mjs +105 -0
- package/dist/hreflang-DMFBL2eb.mjs.map +1 -0
- package/dist/http-route-dispatch-BitqzwMy.mjs +339 -0
- package/dist/http-route-dispatch-BitqzwMy.mjs.map +1 -0
- package/dist/identity-IyNWwXr6.mjs +35 -0
- package/dist/identity-IyNWwXr6.mjs.map +1 -0
- package/dist/import-C3JZplWq.mjs +2020 -0
- package/dist/import-C3JZplWq.mjs.map +1 -0
- package/dist/index-D-hdtLe8.d.mts +623 -0
- package/dist/index-D-hdtLe8.d.mts.map +1 -0
- package/dist/index.d.mts +24 -24
- package/dist/index.mjs +105 -93
- package/dist/install-finalization-DfM1fj5x.mjs +58 -0
- package/dist/install-finalization-DfM1fj5x.mjs.map +1 -0
- package/dist/keys-yxLm5l35.mjs +61 -0
- package/dist/keys-yxLm5l35.mjs.map +1 -0
- package/dist/kinds-CRu_T5T5.mjs +961 -0
- package/dist/kinds-CRu_T5T5.mjs.map +1 -0
- package/dist/lifecycle-BzeGPeQ-.mjs +25 -0
- package/dist/lifecycle-BzeGPeQ-.mjs.map +1 -0
- package/dist/load-XgJiE6_3.mjs +28 -0
- package/dist/load-XgJiE6_3.mjs.map +1 -0
- package/dist/loader-BzqeR1ZN.mjs +1086 -0
- package/dist/loader-BzqeR1ZN.mjs.map +1 -0
- package/dist/loops-BQSzv5Zn.mjs +203 -0
- package/dist/loops-BQSzv5Zn.mjs.map +1 -0
- package/dist/manifest-builder-B8zR-73J.mjs +189 -0
- package/dist/manifest-builder-B8zR-73J.mjs.map +1 -0
- package/dist/manifest-schema-CY3zng_M.mjs +492 -0
- package/dist/manifest-schema-CY3zng_M.mjs.map +1 -0
- package/dist/media/image-endpoint.mjs +1 -1
- package/dist/media/index.d.mts +1 -1
- package/dist/media/index.mjs +3 -3
- package/dist/media/local-runtime.d.mts +14 -14
- package/dist/media/local-runtime.d.mts.map +1 -1
- package/dist/media/local-runtime.mjs +15 -16
- package/dist/media/local-runtime.mjs.map +1 -1
- package/dist/media-Pu1L6xir.mjs +408 -0
- package/dist/media-Pu1L6xir.mjs.map +1 -0
- package/dist/media-Qp5S3eH3.mjs +355 -0
- package/dist/media-Qp5S3eH3.mjs.map +1 -0
- package/dist/media-allowlist-BSoa9Vvm.mjs +44 -0
- package/dist/media-allowlist-BSoa9Vvm.mjs.map +1 -0
- package/dist/media-folders-BE0oo2eX.mjs +210 -0
- package/dist/media-folders-BE0oo2eX.mjs.map +1 -0
- package/dist/media-h7tOiDLj.mjs +221 -0
- package/dist/media-h7tOiDLj.mjs.map +1 -0
- package/dist/media-url-jArBpzIG.mjs +43 -0
- package/dist/media-url-jArBpzIG.mjs.map +1 -0
- package/dist/media-usage-My-Vi-ex.mjs +1629 -0
- package/dist/media-usage-My-Vi-ex.mjs.map +1 -0
- package/dist/media-usage-activation-HKp7zk7W.mjs +78 -0
- package/dist/media-usage-activation-HKp7zk7W.mjs.map +1 -0
- package/dist/media-usage-work-C2OZLCAd.mjs +586 -0
- package/dist/media-usage-work-C2OZLCAd.mjs.map +1 -0
- package/dist/media-usage-work-DwUNbgvS.mjs +152 -0
- package/dist/media-usage-work-DwUNbgvS.mjs.map +1 -0
- package/dist/menus-BM7BPLOb.mjs +139 -0
- package/dist/menus-BM7BPLOb.mjs.map +1 -0
- package/dist/menus-ITeAbcIF.mjs +753 -0
- package/dist/menus-ITeAbcIF.mjs.map +1 -0
- package/dist/menus-TsSGmSR4.mjs +3608 -0
- package/dist/menus-TsSGmSR4.mjs.map +1 -0
- package/dist/migrations/index.d.mts +1 -1
- package/dist/migrations/index.mjs +5 -5
- package/dist/mime-ChLqYwDk.mjs +36 -0
- package/dist/mime-ChLqYwDk.mjs.map +1 -0
- package/dist/mode-CCuKXUci.mjs +23 -0
- package/dist/mode-CCuKXUci.mjs.map +1 -0
- package/dist/node-sqlite-compat-CONMsl-x.mjs +46 -0
- package/dist/node-sqlite-compat-CONMsl-x.mjs.map +1 -0
- package/dist/normalize-CO2P8-iE.mjs +191 -0
- package/dist/normalize-CO2P8-iE.mjs.map +1 -0
- package/dist/oauth-authorization-DlMIL5_h.mjs +274 -0
- package/dist/oauth-authorization-DlMIL5_h.mjs.map +1 -0
- package/dist/oauth-clients-Djq9r_KP.mjs +266 -0
- package/dist/oauth-clients-Djq9r_KP.mjs.map +1 -0
- package/dist/oauth-state-store-BbjnZXNC.mjs +50 -0
- package/dist/oauth-state-store-BbjnZXNC.mjs.map +1 -0
- package/dist/oauth-user-lookup-vue9a64A.mjs +26 -0
- package/dist/oauth-user-lookup-vue9a64A.mjs.map +1 -0
- package/dist/object-cache/memory.d.mts +1 -1
- package/dist/object-cache-CqWNY5uP.mjs +582 -0
- package/dist/object-cache-CqWNY5uP.mjs.map +1 -0
- package/dist/options-DhrI7eMv.mjs +208 -0
- package/dist/options-DhrI7eMv.mjs.map +1 -0
- package/dist/options-SQCHQCPH.d.mts +81 -0
- package/dist/options-SQCHQCPH.d.mts.map +1 -0
- package/dist/page/index.d.mts +2 -2
- package/dist/page/index.mjs +9 -9
- package/dist/parse-CVgO-Qai.d.mts +168 -0
- package/dist/parse-CVgO-Qai.d.mts.map +1 -0
- package/dist/parse-DY6OD1j_.mjs +81 -0
- package/dist/parse-DY6OD1j_.mjs.map +1 -0
- package/dist/passkey-config-X_H8128a.mjs +46 -0
- package/dist/passkey-config-X_H8128a.mjs.map +1 -0
- package/dist/paths-JxokKIbr.mjs +77 -0
- package/dist/paths-JxokKIbr.mjs.map +1 -0
- package/dist/patterns-BhAvqO0S.mjs +145 -0
- package/dist/patterns-BhAvqO0S.mjs.map +1 -0
- package/dist/placeholder-MSEd8gty.d.mts +306 -0
- package/dist/placeholder-MSEd8gty.d.mts.map +1 -0
- package/dist/plan-xjcWrAah.mjs +135 -0
- package/dist/plan-xjcWrAah.mjs.map +1 -0
- package/dist/plugin-test-runtime.d.mts +38 -15
- package/dist/plugin-test-runtime.d.mts.map +1 -1
- package/dist/plugin-test-runtime.mjs +112 -99
- package/dist/plugin-types.d.mts +2 -2
- package/dist/plugin-utils.d.mts +12 -12
- package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
- package/dist/plugins/adapt-sandbox-entry.mjs +3 -3
- package/dist/plugins/host.d.mts +5 -5
- package/dist/plugins/host.mjs +45 -37
- package/dist/plugins-DUXUt8B9.mjs +277 -0
- package/dist/plugins-DUXUt8B9.mjs.map +1 -0
- package/dist/policy-CUvwAARc.mjs +45 -0
- package/dist/policy-CUvwAARc.mjs.map +1 -0
- package/dist/portable-text-5O_ZGUjB.mjs +307 -0
- package/dist/portable-text-5O_ZGUjB.mjs.map +1 -0
- package/dist/preview-CIUcPYr6.mjs +107 -0
- package/dist/preview-CIUcPYr6.mjs.map +1 -0
- package/dist/protocol-B97DZaFr.d.mts +61 -0
- package/dist/protocol-B97DZaFr.d.mts.map +1 -0
- package/dist/public-submission-BFBUrqst.mjs +250 -0
- package/dist/public-submission-BFBUrqst.mjs.map +1 -0
- package/dist/public-url-Bn7U0D7-.mjs +101 -0
- package/dist/public-url-Bn7U0D7-.mjs.map +1 -0
- package/dist/query-B48peoRT.mjs +890 -0
- package/dist/query-B48peoRT.mjs.map +1 -0
- package/dist/query-C4IH0uhR.mjs +41 -0
- package/dist/query-C4IH0uhR.mjs.map +1 -0
- package/dist/rate-limit-BZ6nybgc.mjs +120 -0
- package/dist/rate-limit-BZ6nybgc.mjs.map +1 -0
- package/dist/receipt-B4wJj5Jq.mjs +43 -0
- package/dist/receipt-B4wJj5Jq.mjs.map +1 -0
- package/dist/redirect-Cd1E7VUt.mjs +17 -0
- package/dist/redirect-Cd1E7VUt.mjs.map +1 -0
- package/dist/redirect-iJf5fltD.mjs +415 -0
- package/dist/redirect-iJf5fltD.mjs.map +1 -0
- package/dist/redirects-CYu1u1aK.mjs +446 -0
- package/dist/redirects-CYu1u1aK.mjs.map +1 -0
- package/dist/redirects-Cv9apQKj.mjs +148 -0
- package/dist/redirects-Cv9apQKj.mjs.map +1 -0
- package/dist/registry/testing.mjs +3 -3
- package/dist/relation-M4NUCb0b.mjs +334 -0
- package/dist/relation-M4NUCb0b.mjs.map +1 -0
- package/dist/relations-CCif47Oq.mjs +403 -0
- package/dist/relations-CCif47Oq.mjs.map +1 -0
- package/dist/relations-CK9CYUyr.mjs +310 -0
- package/dist/relations-CK9CYUyr.mjs.map +1 -0
- package/dist/request-cache-DzLYKm_x.mjs +104 -0
- package/dist/request-cache-DzLYKm_x.mjs.map +1 -0
- package/dist/request-context.d.mts +1 -1
- package/dist/request-meta-sZXt3sRo.mjs +141 -0
- package/dist/request-meta-sZXt3sRo.mjs.map +1 -0
- package/dist/resolve-2WbQsCvT.mjs +199 -0
- package/dist/resolve-2WbQsCvT.mjs.map +1 -0
- package/dist/route-wire--1hLuACz.mjs +197 -0
- package/dist/route-wire--1hLuACz.mjs.map +1 -0
- package/dist/routes-CUsM40Cc.mjs +272 -0
- package/dist/routes-CUsM40Cc.mjs.map +1 -0
- package/dist/runner-1y4J9fJB.mjs +5742 -0
- package/dist/runner-1y4J9fJB.mjs.map +1 -0
- package/dist/runner-D5_LzKXI.d.mts +68 -0
- package/dist/runner-D5_LzKXI.d.mts.map +1 -0
- package/dist/runtime.d.mts +13 -13
- package/dist/runtime.mjs +4 -4
- package/dist/schema-BABiRdsH.mjs +13 -0
- package/dist/schema-BABiRdsH.mjs.map +1 -0
- package/dist/schema-Du3MzCG0.mjs +446 -0
- package/dist/schema-Du3MzCG0.mjs.map +1 -0
- package/dist/scopes-Dbk-ElhT.mjs +34 -0
- package/dist/scopes-Dbk-ElhT.mjs.map +1 -0
- package/dist/search-Bt1PL1jf.mjs +448 -0
- package/dist/search-Bt1PL1jf.mjs.map +1 -0
- package/dist/secrets-CIi0nFiR.mjs +341 -0
- package/dist/secrets-CIi0nFiR.mjs.map +1 -0
- package/dist/sections-Ddptx_o9.mjs +346 -0
- package/dist/sections-Ddptx_o9.mjs.map +1 -0
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +35 -30
- package/dist/seo/index.d.mts +3 -3
- package/dist/seo/index.mjs +25 -21
- package/dist/seo/index.mjs.map +1 -1
- package/dist/seo-CZT2oLtT.mjs +114 -0
- package/dist/seo-CZT2oLtT.mjs.map +1 -0
- package/dist/seo-D5w3-Azy.mjs +133 -0
- package/dist/seo-D5w3-Azy.mjs.map +1 -0
- package/dist/service-DuykXPyW.mjs +150 -0
- package/dist/service-DuykXPyW.mjs.map +1 -0
- package/dist/session-user-BhaVp8w0.mjs +51 -0
- package/dist/session-user-BhaVp8w0.mjs.map +1 -0
- package/dist/settings-2xNYr90o.mjs +51 -0
- package/dist/settings-2xNYr90o.mjs.map +1 -0
- package/dist/settings-CgjRWGW9.mjs +439 -0
- package/dist/settings-CgjRWGW9.mjs.map +1 -0
- package/dist/settings-DYidIB26.mjs +61 -0
- package/dist/settings-DYidIB26.mjs.map +1 -0
- package/dist/setup-complete-bOogcHWG.mjs +26 -0
- package/dist/setup-complete-bOogcHWG.mjs.map +1 -0
- package/dist/setup-nonce-0EGuKM4s.mjs +25 -0
- package/dist/setup-nonce-0EGuKM4s.mjs.map +1 -0
- package/dist/site-settings-DOgRUoFX.mjs +50 -0
- package/dist/site-settings-DOgRUoFX.mjs.map +1 -0
- package/dist/site-url-BU_bbxwj.mjs +16 -0
- package/dist/site-url-BU_bbxwj.mjs.map +1 -0
- package/dist/snapshot-CugwUqKQ.mjs +237 -0
- package/dist/snapshot-CugwUqKQ.mjs.map +1 -0
- package/dist/ssrf-CJUnJymJ.mjs +406 -0
- package/dist/ssrf-CJUnJymJ.mjs.map +1 -0
- package/dist/stage-DgrBz_du.mjs +662 -0
- package/dist/stage-DgrBz_du.mjs.map +1 -0
- package/dist/state-DDiPySSG.mjs +153 -0
- package/dist/state-DDiPySSG.mjs.map +1 -0
- package/dist/status-DZKIG4a9.mjs +30 -0
- package/dist/status-DZKIG4a9.mjs.map +1 -0
- package/dist/storage/local.d.mts +1 -1
- package/dist/storage/local.mjs +1 -1
- package/dist/storage/s3.d.mts +1 -1
- package/dist/storage/s3.mjs +1 -1
- package/dist/storage-query-Bdv7A62k.d.mts +1576 -0
- package/dist/storage-query-Bdv7A62k.d.mts.map +1 -0
- package/dist/tar-_1AgTYFu.mjs +449 -0
- package/dist/tar-_1AgTYFu.mjs.map +1 -0
- package/dist/target-_7pn2Gbg.mjs +27 -0
- package/dist/target-_7pn2Gbg.mjs.map +1 -0
- package/dist/taxonomies-C1IwNe8Q.mjs +697 -0
- package/dist/taxonomies-C1IwNe8Q.mjs.map +1 -0
- package/dist/taxonomies-C_XMoRcX.mjs +939 -0
- package/dist/taxonomies-C_XMoRcX.mjs.map +1 -0
- package/dist/taxonomy-C3Fu1YeH.mjs +525 -0
- package/dist/taxonomy-C3Fu1YeH.mjs.map +1 -0
- package/dist/tokens-u78jETkX.mjs +171 -0
- package/dist/tokens-u78jETkX.mjs.map +1 -0
- package/dist/transfer-BhUCrgDc.mjs +8675 -0
- package/dist/transfer-BhUCrgDc.mjs.map +1 -0
- package/dist/transfer-DIGvR9Af.mjs +166 -0
- package/dist/transfer-DIGvR9Af.mjs.map +1 -0
- package/dist/transfer-download-Pml7RMio.mjs +33 -0
- package/dist/transfer-download-Pml7RMio.mjs.map +1 -0
- package/dist/transformations-9gfpwY65.mjs +196 -0
- package/dist/transformations-9gfpwY65.mjs.map +1 -0
- package/dist/transport-BIfH7_hx.d.mts +42 -0
- package/dist/transport-BIfH7_hx.d.mts.map +1 -0
- package/dist/transport-DKWIq53q.mjs +136 -0
- package/dist/transport-DKWIq53q.mjs.map +1 -0
- package/dist/trusted-proxy-tKiVtyTD.mjs +51 -0
- package/dist/trusted-proxy-tKiVtyTD.mjs.map +1 -0
- package/dist/turnstile-DpsoyOfg.mjs +53 -0
- package/dist/turnstile-DpsoyOfg.mjs.map +1 -0
- package/dist/types-B4sUC2p1.d.mts +198 -0
- package/dist/types-B4sUC2p1.d.mts.map +1 -0
- package/dist/types-B7Lmsh1E.d.mts +887 -0
- package/dist/types-B7Lmsh1E.d.mts.map +1 -0
- package/dist/types-BZakh7Ym.mjs +22 -0
- package/dist/types-BZakh7Ym.mjs.map +1 -0
- package/dist/types-B_CppEmv.d.mts +264 -0
- package/dist/types-B_CppEmv.d.mts.map +1 -0
- package/dist/types-BcrBrE6-.mjs +159 -0
- package/dist/types-BcrBrE6-.mjs.map +1 -0
- package/dist/types-CAZgq9fO.d.mts +124 -0
- package/dist/types-CAZgq9fO.d.mts.map +1 -0
- package/dist/types-Cd-O03VG.d.mts +363 -0
- package/dist/types-Cd-O03VG.d.mts.map +1 -0
- package/dist/types-Cr-Kg-3D.d.mts +1641 -0
- package/dist/types-Cr-Kg-3D.d.mts.map +1 -0
- package/dist/types-D2fvWd1i.d.mts +359 -0
- package/dist/types-D2fvWd1i.d.mts.map +1 -0
- package/dist/types-D7HUsguf.mjs +77 -0
- package/dist/types-D7HUsguf.mjs.map +1 -0
- package/dist/types-DA1Te3Oy.d.mts +198 -0
- package/dist/types-DA1Te3Oy.d.mts.map +1 -0
- package/dist/types-DhV6Q5bP.mjs +18 -0
- package/dist/types-DhV6Q5bP.mjs.map +1 -0
- package/dist/types-DnnVSl6Y.d.mts +85 -0
- package/dist/types-DnnVSl6Y.d.mts.map +1 -0
- package/dist/types-VT4-BugW.mjs +16 -0
- package/dist/types-VT4-BugW.mjs.map +1 -0
- package/dist/upload-attempts-B68ZGNu9.mjs +32 -0
- package/dist/upload-attempts-B68ZGNu9.mjs.map +1 -0
- package/dist/url-pattern-CCeZMGOh.mjs +33 -0
- package/dist/url-pattern-CCeZMGOh.mjs.map +1 -0
- package/dist/user-DDSL-sGw.mjs +171 -0
- package/dist/user-DDSL-sGw.mjs.map +1 -0
- package/dist/utils-DdhmO9w9.mjs +439 -0
- package/dist/utils-DdhmO9w9.mjs.map +1 -0
- package/dist/validate-CHosPEhs.mjs +453 -0
- package/dist/validate-CHosPEhs.mjs.map +1 -0
- package/dist/validate-CM79QXYE.d.mts +432 -0
- package/dist/validate-CM79QXYE.d.mts.map +1 -0
- package/dist/validation-BFecQczG.mjs +218 -0
- package/dist/validation-BFecQczG.mjs.map +1 -0
- package/dist/version-BRZXVifl.mjs +9 -0
- package/dist/version-BRZXVifl.mjs.map +1 -0
- package/dist/version-DUQDHgrf.mjs +7 -0
- package/dist/version-DUQDHgrf.mjs.map +1 -0
- package/dist/widgets-WdV72brA.mjs +126 -0
- package/dist/widgets-WdV72brA.mjs.map +1 -0
- package/dist/wxr-taxonomies-BHTdqkmZ.d.mts +34 -0
- package/dist/wxr-taxonomies-BHTdqkmZ.d.mts.map +1 -0
- package/dist/wxr-taxonomies-DP6ESgMN.mjs +372 -0
- package/dist/wxr-taxonomies-DP6ESgMN.mjs.map +1 -0
- package/dist/zod-generator-D6uE4WiS.mjs +389 -0
- package/dist/zod-generator-D6uE4WiS.mjs.map +1 -0
- package/package.json +6 -5
- package/src/api/authorize.ts +17 -0
- package/src/api/email-locale.ts +24 -0
- package/src/api/errors.ts +16 -0
- package/src/api/handlers/api-tokens.ts +18 -3
- package/src/api/handlers/block-types.ts +129 -0
- package/src/api/handlers/bulk-tag.ts +309 -0
- package/src/api/handlers/comments.ts +0 -28
- package/src/api/handlers/index.ts +10 -0
- package/src/api/handlers/manifest.ts +8 -1
- package/src/api/handlers/marketplace.ts +22 -16
- package/src/api/handlers/media-usage.ts +31 -12
- package/src/api/handlers/media.ts +19 -14
- package/src/api/handlers/schema.ts +33 -8
- package/src/api/handlers/settings.ts +2 -2
- package/src/api/handlers/snapshot.ts +4 -0
- package/src/api/handlers/taxonomies.ts +132 -83
- package/src/api/handlers/transfer.ts +1347 -0
- package/src/api/handlers/validate-media-fields.ts +124 -12
- package/src/api/media-usage-write-fence.ts +5 -26
- package/src/api/openapi/document.ts +614 -5
- package/src/api/schemas/auth.ts +7 -1
- package/src/api/schemas/common.ts +5 -0
- package/src/api/schemas/content.ts +20 -1
- package/src/api/schemas/media-usage.ts +11 -0
- package/src/api/schemas/menus.ts +1 -1
- package/src/api/schemas/schema.ts +117 -0
- package/src/api/schemas/settings.ts +3 -3
- package/src/api/schemas/taxonomies.ts +18 -0
- package/src/api/schemas/transfer.ts +249 -0
- package/src/api/transfer-download.ts +36 -0
- package/src/api/types.ts +3 -0
- package/src/astro/integration/routes.ts +31 -0
- package/src/astro/integration/vite-config.ts +26 -0
- package/src/astro/middleware/auth.ts +30 -7
- package/src/astro/middleware/media-usage-write-fence.ts +106 -11
- package/src/astro/middleware/request-context.ts +16 -2
- package/src/astro/middleware.ts +38 -18
- package/src/astro/routes/admin.astro +3 -1
- package/src/astro/routes/api/admin/hooks/exclusive/index.ts +1 -5
- package/src/astro/routes/api/admin/plugins/[id]/disable.ts +4 -3
- package/src/astro/routes/api/admin/plugins/[id]/enable.ts +4 -3
- package/src/astro/routes/api/admin/plugins/[id]/uninstall.ts +4 -3
- package/src/astro/routes/api/admin/plugins/[id]/update.ts +4 -3
- package/src/astro/routes/api/admin/plugins/marketplace/[id]/install.ts +4 -3
- package/src/astro/routes/api/admin/plugins/registry/[id]/uninstall.ts +4 -3
- package/src/astro/routes/api/admin/plugins/registry/[id]/update.ts +3 -3
- package/src/astro/routes/api/admin/plugins/registry/install.ts +3 -3
- package/src/astro/routes/api/admin/plugins/registry/publisher-handle.ts +59 -0
- package/src/astro/routes/api/admin/transfer/[...path].ts +143 -0
- package/src/astro/routes/api/admin/transfer/approvals/[id]/approve.ts +35 -0
- package/src/astro/routes/api/admin/transfer/approvals/[id]/deny.ts +35 -0
- package/src/astro/routes/api/admin/transfer/approvals/index.ts +33 -0
- package/src/astro/routes/api/admin/transfer/capabilities.ts +36 -0
- package/src/astro/routes/api/admin/transfer/exports/[id]/advance.ts +34 -0
- package/src/astro/routes/api/admin/transfer/exports/[id]/archive.ts +35 -0
- package/src/astro/routes/api/admin/transfer/exports/[id]/files/[...path].ts +40 -0
- package/src/astro/routes/api/admin/transfer/exports/[id]/index.ts +25 -0
- package/src/astro/routes/api/admin/transfer/exports/[id]/manifest.ts +38 -0
- package/src/astro/routes/api/admin/transfer/exports/index.ts +64 -0
- package/src/astro/routes/api/admin/transfer/imports/[id]/abandon.ts +28 -0
- package/src/astro/routes/api/admin/transfer/imports/[id]/advance.ts +37 -0
- package/src/astro/routes/api/admin/transfer/imports/[id]/analyze.ts +51 -0
- package/src/astro/routes/api/admin/transfer/imports/[id]/cancel.ts +27 -0
- package/src/astro/routes/api/admin/transfer/imports/[id]/execute.ts +48 -0
- package/src/astro/routes/api/admin/transfer/imports/[id]/files/[...path].ts +54 -0
- package/src/astro/routes/api/admin/transfer/imports/[id]/index.ts +25 -0
- package/src/astro/routes/api/admin/transfer/imports/[id]/missing.ts +34 -0
- package/src/astro/routes/api/admin/transfer/imports/[id]/plan.ts +29 -0
- package/src/astro/routes/api/admin/transfer/imports/[id]/receipt.ts +25 -0
- package/src/astro/routes/api/admin/transfer/imports/index.ts +85 -0
- package/src/astro/routes/api/admin/users/[id]/send-recovery.ts +9 -1
- package/src/astro/routes/api/auth/invite/index.ts +15 -1
- package/src/astro/routes/api/auth/magic-link/send.ts +9 -1
- package/src/astro/routes/api/auth/magic-link/verify.ts +37 -39
- package/src/astro/routes/api/auth/passkey/options.ts +2 -21
- package/src/astro/routes/api/content/[collection]/[id]/preview-url.ts +64 -13
- package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +16 -1
- package/src/astro/routes/api/import/wordpress/rewrite-url-helpers.ts +11 -4
- package/src/astro/routes/api/mcp.ts +1 -0
- package/src/astro/routes/api/media/[id].ts +5 -15
- package/src/astro/routes/api/media/file/[...key].ts +30 -5
- package/src/astro/routes/api/oauth/authorize.ts +4 -0
- package/src/astro/routes/api/schema/block-types/[slug]/index.ts +29 -0
- package/src/astro/routes/api/schema/block-types/[slug]/versions/[version]/activate.ts +31 -0
- package/src/astro/routes/api/schema/block-types/index.ts +29 -0
- package/src/astro/routes/api/taxonomies/bulk-tag.ts +29 -0
- package/src/astro/routes/api/typegen.ts +8 -4
- package/src/astro/types.ts +4 -0
- package/src/auth/api-tokens.ts +1 -0
- package/src/auth/rate-limit.ts +2 -1
- package/src/auth/scopes.ts +11 -0
- package/src/cleanup.ts +14 -0
- package/src/cli/client-factory.ts +6 -1
- package/src/cli/commands/export-seed.ts +41 -15
- package/src/cli/commands/seed.ts +6 -2
- package/src/cli/commands/site.ts +556 -0
- package/src/cli/index.ts +2 -0
- package/src/cli/site/archive.ts +273 -0
- package/src/cli/site/export.ts +311 -0
- package/src/cli/site/import.ts +815 -0
- package/src/cli/site/shared.ts +241 -0
- package/src/client/index.ts +414 -11
- package/src/client/portable-text.ts +41 -0
- package/src/comments/public-submission.ts +19 -11
- package/src/components/Blocks.astro +46 -0
- package/src/components/Gallery.astro +2 -1
- package/src/components/Image.astro +51 -6
- package/src/components/InlinePortableTextEditor.tsx +28 -18
- package/src/components/blocks.ts +44 -0
- package/src/components/index.ts +14 -4
- package/src/content/converters/gallery.ts +54 -16
- package/src/content/converters/image-link.ts +27 -0
- package/src/content/converters/index.ts +1 -0
- package/src/content/converters/portable-text-to-prosemirror.ts +10 -7
- package/src/content/converters/prosemirror-to-portable-text.ts +14 -0
- package/src/content/converters/types.ts +17 -0
- package/src/database/content-datetime.ts +19 -2
- package/src/database/migrations/035_bounded_404_log.ts +28 -39
- package/src/database/migrations/081_redirect_write_guards.ts +7 -4
- package/src/database/migrations/083_block_types.ts +58 -0
- package/src/database/migrations/084_site_transfer.ts +264 -0
- package/src/database/migrations/085_taxonomy_def_groups.ts +155 -0
- package/src/database/migrations/runner.ts +6 -0
- package/src/database/repositories/audit.ts +10 -1
- package/src/database/repositories/byline.ts +4 -1
- package/src/database/repositories/content.ts +83 -11
- package/src/database/repositories/media-usage.ts +43 -13
- package/src/database/repositories/media.ts +32 -1
- package/src/database/repositories/options.ts +12 -0
- package/src/database/repositories/revision.ts +6 -3
- package/src/database/repositories/taxonomy-def.ts +126 -0
- package/src/database/repositories/taxonomy.ts +65 -26
- package/src/database/types.ts +133 -1
- package/src/db/sqlite.ts +1 -1
- package/src/emdash-runtime.ts +287 -51
- package/src/import/utils.ts +8 -1
- package/src/import/wxr-taxonomies.ts +11 -67
- package/src/index.ts +26 -1
- package/src/loader.ts +9 -5
- package/src/mcp/server.ts +521 -29
- package/src/mcp/transfer.ts +569 -0
- package/src/media/local-runtime.ts +5 -18
- package/src/media/upload-attempts.ts +5 -0
- package/src/media/url.ts +15 -0
- package/src/media/usage/content-fields.ts +69 -5
- package/src/media/usage/content-refresh.ts +13 -66
- package/src/media/usage/content-repair.ts +10 -2
- package/src/media/usage/extractor.ts +74 -3
- package/src/media/usage/projection-fingerprint.ts +14 -0
- package/src/media/usage/schema-invalidation.ts +72 -0
- package/src/media/usage/site-settings.ts +52 -0
- package/src/media/usage/types.ts +2 -0
- package/src/object-cache/index.ts +69 -4
- package/src/plugin-test-runtime.ts +1 -0
- package/src/plugins/context.ts +104 -56
- package/src/plugins/cron.ts +6 -4
- package/src/plugins/define-plugin.ts +11 -1
- package/src/plugins/email-console.ts +2 -0
- package/src/plugins/email.ts +16 -0
- package/src/plugins/hooks.ts +33 -9
- package/src/plugins/manifest-schema.ts +1 -0
- package/src/plugins/route-error.ts +57 -0
- package/src/plugins/routes.ts +5 -60
- package/src/plugins/sandbox/types.ts +22 -2
- package/src/plugins/types.ts +4 -0
- package/src/registry/artifact-fetch.ts +17 -4
- package/src/registry/publisher-handle.ts +273 -0
- package/src/schema/block-type-contract.ts +478 -0
- package/src/schema/block-type-registry.ts +689 -0
- package/src/schema/block-types.ts +110 -0
- package/src/schema/block-values.ts +293 -0
- package/src/schema/byline-registry.ts +1 -1
- package/src/schema/index.ts +28 -0
- package/src/schema/registry.ts +462 -12
- package/src/schema/types.ts +12 -1
- package/src/schema/zod-generator.ts +92 -9
- package/src/search/fts-manager.ts +40 -0
- package/src/seed/apply.ts +173 -49
- package/src/seed/types.ts +23 -3
- package/src/seed/validate.ts +131 -7
- package/src/settings/index.ts +32 -9
- package/src/settings/types.ts +15 -0
- package/src/taxonomies/index.ts +72 -83
- package/src/transfer/analyze/index.ts +45 -0
- package/src/transfer/analyze/issues.ts +55 -0
- package/src/transfer/analyze/plan.ts +327 -0
- package/src/transfer/analyze/read.ts +134 -0
- package/src/transfer/analyze/step.ts +551 -0
- package/src/transfer/analyze/target.ts +269 -0
- package/src/transfer/analyze/unique-keys.ts +228 -0
- package/src/transfer/analyze/validate.ts +1412 -0
- package/src/transfer/analyze/values.ts +227 -0
- package/src/transfer/analyze/write-rules.ts +196 -0
- package/src/transfer/audit.ts +38 -0
- package/src/transfer/auth.ts +25 -0
- package/src/transfer/container/tar.ts +242 -0
- package/src/transfer/domain.ts +248 -0
- package/src/transfer/errors.ts +134 -0
- package/src/transfer/export/exporter.ts +1067 -0
- package/src/transfer/export/fence.ts +84 -0
- package/src/transfer/export/media.ts +165 -0
- package/src/transfer/export/readers.ts +1164 -0
- package/src/transfer/export/verify.ts +677 -0
- package/src/transfer/fence.ts +193 -0
- package/src/transfer/format/canonical.ts +151 -0
- package/src/transfer/format/column-codec.ts +275 -0
- package/src/transfer/format/columns.ts +707 -0
- package/src/transfer/format/digest.ts +287 -0
- package/src/transfer/format/features.ts +91 -0
- package/src/transfer/format/issues.ts +39 -0
- package/src/transfer/format/kinds.ts +936 -0
- package/src/transfer/format/limits.ts +87 -0
- package/src/transfer/format/manifest.ts +297 -0
- package/src/transfer/format/media-refs.ts +716 -0
- package/src/transfer/format/paths.ts +73 -0
- package/src/transfer/format/plan.ts +162 -0
- package/src/transfer/format/receipt.ts +43 -0
- package/src/transfer/format/records.ts +127 -0
- package/src/transfer/format/settings.ts +94 -0
- package/src/transfer/format/transformations.ts +260 -0
- package/src/transfer/format/version.ts +9 -0
- package/src/transfer/gc.ts +103 -0
- package/src/transfer/import/advance.ts +522 -0
- package/src/transfer/import/context.ts +281 -0
- package/src/transfer/import/entries.ts +186 -0
- package/src/transfer/import/ids.ts +40 -0
- package/src/transfer/import/index.ts +15 -0
- package/src/transfer/import/media.ts +141 -0
- package/src/transfer/import/rebuild.ts +300 -0
- package/src/transfer/import/rows.ts +114 -0
- package/src/transfer/import/scaffold.ts +221 -0
- package/src/transfer/import/sql.ts +134 -0
- package/src/transfer/import/stages.ts +329 -0
- package/src/transfer/import/writers.ts +370 -0
- package/src/transfer/index.ts +472 -0
- package/src/transfer/ops/approvals.ts +359 -0
- package/src/transfer/ops/budget.ts +82 -0
- package/src/transfer/ops/collation.ts +21 -0
- package/src/transfer/ops/identity-map.ts +142 -0
- package/src/transfer/ops/media-blobs.ts +135 -0
- package/src/transfer/ops/operations.ts +842 -0
- package/src/transfer/ops/package-index.ts +159 -0
- package/src/transfer/ops/staged-files.ts +231 -0
- package/src/transfer/ops/states.ts +265 -0
- package/src/transfer/ops/time.ts +54 -0
- package/src/transfer/schema-importer.ts +34 -0
- package/src/transfer/site-id.ts +30 -0
- package/src/transfer/staging/assembler.ts +217 -0
- package/src/transfer/staging/keys.ts +94 -0
- package/src/transfer/staging/package.ts +229 -0
- package/src/transfer/staging/stage.ts +231 -0
- package/src/ui.ts +19 -0
- package/src/visual-editing/toolbar.ts +125 -37
- package/dist/action-token-On1sot_c.mjs +0 -26
- package/dist/action-token-On1sot_c.mjs.map +0 -1
- package/dist/activation-CaMfdBt1.mjs +0 -382
- package/dist/activation-CaMfdBt1.mjs.map +0 -1
- package/dist/adapters-Cq10K4_c.d.mts +0 -171
- package/dist/adapters-Cq10K4_c.d.mts.map +0 -1
- package/dist/allowed-origins-1Sa-2wZK.mjs +0 -116
- package/dist/allowed-origins-1Sa-2wZK.mjs.map +0 -1
- package/dist/api-DmjKxPCY.mjs +0 -4831
- package/dist/api-DmjKxPCY.mjs.map +0 -1
- package/dist/api-tokens-BIXItFKV.mjs +0 -163
- package/dist/api-tokens-BIXItFKV.mjs.map +0 -1
- package/dist/api-tokens-DS1VzN7_.mjs +0 -3
- package/dist/apply-drpfmqrR.mjs +0 -1005
- package/dist/apply-drpfmqrR.mjs.map +0 -1
- package/dist/artifact-fetch-COiMhVgk.mjs +0 -813
- package/dist/artifact-fetch-COiMhVgk.mjs.map +0 -1
- package/dist/authoritative-records-DbqshfKD.mjs +0 -5172
- package/dist/authoritative-records-DbqshfKD.mjs.map +0 -1
- package/dist/authorize-BXpfMpp0.mjs +0 -40
- package/dist/authorize-BXpfMpp0.mjs.map +0 -1
- package/dist/backup-BsPQdwnS.mjs +0 -246
- package/dist/backup-BsPQdwnS.mjs.map +0 -1
- package/dist/byline-Doh-wt99.mjs +0 -906
- package/dist/byline-Doh-wt99.mjs.map +0 -1
- package/dist/byline-fields-CsrdvaLV.mjs +0 -123
- package/dist/byline-fields-CsrdvaLV.mjs.map +0 -1
- package/dist/byline-registry-D6lWzXk6.mjs +0 -406
- package/dist/byline-registry-D6lWzXk6.mjs.map +0 -1
- package/dist/bylines-Cop0hkoy.mjs +0 -214
- package/dist/bylines-Cop0hkoy.mjs.map +0 -1
- package/dist/bylines-kpBzHPr8.mjs +0 -232
- package/dist/bylines-kpBzHPr8.mjs.map +0 -1
- package/dist/cache-B0pOlXdM.mjs +0 -108
- package/dist/cache-B0pOlXdM.mjs.map +0 -1
- package/dist/capture-triggers-gxQxnxrJ.mjs +0 -362
- package/dist/capture-triggers-gxQxnxrJ.mjs.map +0 -1
- package/dist/challenge-store-CkRdSdd8.mjs +0 -51
- package/dist/challenge-store-CkRdSdd8.mjs.map +0 -1
- package/dist/checksum-Bsi2D9M1.mjs +0 -162
- package/dist/checksum-Bsi2D9M1.mjs.map +0 -1
- package/dist/chrome-tags-D7LGB91U.mjs +0 -24
- package/dist/chrome-tags-D7LGB91U.mjs.map +0 -1
- package/dist/chunks-BmWyou79.mjs +0 -25
- package/dist/chunks-BmWyou79.mjs.map +0 -1
- package/dist/collection-deletion-C3Xixmkx.mjs +0 -436
- package/dist/collection-deletion-C3Xixmkx.mjs.map +0 -1
- package/dist/collection-slugs-cache-D9auiKmI.mjs +0 -85
- package/dist/collection-slugs-cache-D9auiKmI.mjs.map +0 -1
- package/dist/comment-DcT8qdPK.mjs +0 -313
- package/dist/comment-DcT8qdPK.mjs.map +0 -1
- package/dist/comment-reaction-DY5-y8Y5.mjs +0 -85
- package/dist/comment-reaction-DY5-y8Y5.mjs.map +0 -1
- package/dist/comments-B67VRNGw.mjs +0 -204
- package/dist/comments-B67VRNGw.mjs.map +0 -1
- package/dist/comments-BVzzt6x5.mjs +0 -99
- package/dist/comments-BVzzt6x5.mjs.map +0 -1
- package/dist/components-DIl9Qzh6.mjs +0 -108
- package/dist/components-DIl9Qzh6.mjs.map +0 -1
- package/dist/config-B2acLeC5.mjs +0 -242
- package/dist/config-B2acLeC5.mjs.map +0 -1
- package/dist/config-CGVeT8Hc.mjs +0 -73
- package/dist/config-CGVeT8Hc.mjs.map +0 -1
- package/dist/config-D3HhLON3.d.mts +0 -39
- package/dist/config-D3HhLON3.d.mts.map +0 -1
- package/dist/config-DS7e4EZ9.d.mts +0 -6387
- package/dist/config-DS7e4EZ9.d.mts.map +0 -1
- package/dist/content-DZ3B5qtA.mjs +0 -2216
- package/dist/content-DZ3B5qtA.mjs.map +0 -1
- package/dist/content-list-query-CbPdzsna.d.mts +0 -26
- package/dist/content-list-query-CbPdzsna.d.mts.map +0 -1
- package/dist/content-policy-CM4skrNi.mjs +0 -46
- package/dist/content-policy-CM4skrNi.mjs.map +0 -1
- package/dist/content-refresh-BHLHJgyt.mjs +0 -3599
- package/dist/content-refresh-BHLHJgyt.mjs.map +0 -1
- package/dist/content-repair-BVll5WNl.mjs +0 -440
- package/dist/content-repair-BVll5WNl.mjs.map +0 -1
- package/dist/context-B195kjqZ.mjs +0 -1835
- package/dist/context-B195kjqZ.mjs.map +0 -1
- package/dist/cron-BcR3RN4K.mjs +0 -282
- package/dist/cron-BcR3RN4K.mjs.map +0 -1
- package/dist/dashboard-CZD4G7k_.mjs +0 -151
- package/dist/dashboard-CZD4G7k_.mjs.map +0 -1
- package/dist/default-BtlxWgh9.mjs +0 -81
- package/dist/default-BtlxWgh9.mjs.map +0 -1
- package/dist/deferred-tasks-Ba9fphlE.d.mts +0 -9
- package/dist/deferred-tasks-Ba9fphlE.d.mts.map +0 -1
- package/dist/device-flow-3E5l0fpH.mjs +0 -466
- package/dist/device-flow-3E5l0fpH.mjs.map +0 -1
- package/dist/dialect-helpers-CtYdsX4W.mjs +0 -307
- package/dist/dialect-helpers-CtYdsX4W.mjs.map +0 -1
- package/dist/direct-executor-ZI8E01Yt.mjs +0 -104
- package/dist/direct-executor-ZI8E01Yt.mjs.map +0 -1
- package/dist/dist-2hDLsLeq.mjs +0 -810
- package/dist/dist-2hDLsLeq.mjs.map +0 -1
- package/dist/email-console-gc-E3Eqj.mjs +0 -50
- package/dist/email-console-gc-E3Eqj.mjs.map +0 -1
- package/dist/emdash-runtime-DZGinqTL.mjs +0 -4041
- package/dist/emdash-runtime-DZGinqTL.mjs.map +0 -1
- package/dist/enrich-C2Mk0lwE.mjs +0 -194
- package/dist/enrich-C2Mk0lwE.mjs.map +0 -1
- package/dist/entry-lock-D3C99MXS.mjs +0 -1520
- package/dist/entry-lock-D3C99MXS.mjs.map +0 -1
- package/dist/entry-lock-D9rnj2Lu.mjs +0 -163
- package/dist/entry-lock-D9rnj2Lu.mjs.map +0 -1
- package/dist/entry-lock-DX7QkqEg.d.mts +0 -3503
- package/dist/entry-lock-DX7QkqEg.d.mts.map +0 -1
- package/dist/entry-locks-CO_KaoU5.mjs +0 -167
- package/dist/entry-locks-CO_KaoU5.mjs.map +0 -1
- package/dist/error-CCTCskie.mjs +0 -90
- package/dist/error-CCTCskie.mjs.map +0 -1
- package/dist/errors-W3PA8HqB.mjs +0 -447
- package/dist/errors-W3PA8HqB.mjs.map +0 -1
- package/dist/escape-DN4Qmjsl.mjs +0 -9
- package/dist/escape-DN4Qmjsl.mjs.map +0 -1
- package/dist/field-defs-cache-B337z8UJ.mjs +0 -77
- package/dist/field-defs-cache-B337z8UJ.mjs.map +0 -1
- package/dist/fts-manager-DMb0sbIQ.mjs +0 -413
- package/dist/fts-manager-DMb0sbIQ.mjs.map +0 -1
- package/dist/hash-CLVFzWvx.mjs +0 -37
- package/dist/hash-CLVFzWvx.mjs.map +0 -1
- package/dist/hook-result-KY1jq21o.d.mts +0 -31
- package/dist/hook-result-KY1jq21o.d.mts.map +0 -1
- package/dist/hreflang-BgS2FqhH.d.mts +0 -50
- package/dist/hreflang-BgS2FqhH.d.mts.map +0 -1
- package/dist/hreflang-CrJwqoeb.mjs +0 -105
- package/dist/hreflang-CrJwqoeb.mjs.map +0 -1
- package/dist/http-route-dispatch-DAKlanXb.mjs +0 -339
- package/dist/http-route-dispatch-DAKlanXb.mjs.map +0 -1
- package/dist/identity-DRGSHEEr.mjs +0 -35
- package/dist/identity-DRGSHEEr.mjs.map +0 -1
- package/dist/import-DFr5B_hC.mjs +0 -2020
- package/dist/import-DFr5B_hC.mjs.map +0 -1
- package/dist/index-CDwKDkTq.d.mts +0 -623
- package/dist/index-CDwKDkTq.d.mts.map +0 -1
- package/dist/install-finalization-5Os-QZ-2.mjs +0 -58
- package/dist/install-finalization-5Os-QZ-2.mjs.map +0 -1
- package/dist/lifecycle-7e-Lt_kX.mjs +0 -25
- package/dist/lifecycle-7e-Lt_kX.mjs.map +0 -1
- package/dist/load-Cu5bvCZh.mjs +0 -28
- package/dist/load-Cu5bvCZh.mjs.map +0 -1
- package/dist/loader-t4TxaFiQ.mjs +0 -1004
- package/dist/loader-t4TxaFiQ.mjs.map +0 -1
- package/dist/manifest-builder-D31UoJCu.mjs +0 -189
- package/dist/manifest-builder-D31UoJCu.mjs.map +0 -1
- package/dist/manifest-schema-Bkh8SeHd.mjs +0 -491
- package/dist/manifest-schema-Bkh8SeHd.mjs.map +0 -1
- package/dist/media-TBlKCwo7.mjs +0 -334
- package/dist/media-TBlKCwo7.mjs.map +0 -1
- package/dist/media-allowlist-s60eAIf6.mjs +0 -44
- package/dist/media-allowlist-s60eAIf6.mjs.map +0 -1
- package/dist/media-folders-ClIRLUQv.mjs +0 -210
- package/dist/media-folders-ClIRLUQv.mjs.map +0 -1
- package/dist/media-url-DY_ijO3B.mjs +0 -43
- package/dist/media-url-DY_ijO3B.mjs.map +0 -1
- package/dist/media-usage-C4NolTpQ.mjs +0 -1833
- package/dist/media-usage-C4NolTpQ.mjs.map +0 -1
- package/dist/media-usage-activation-CAhmb14O.mjs +0 -78
- package/dist/media-usage-activation-CAhmb14O.mjs.map +0 -1
- package/dist/media-usage-work-Cu5DqewW.mjs +0 -586
- package/dist/media-usage-work-Cu5DqewW.mjs.map +0 -1
- package/dist/media-usage-work-DJr3rOEN.mjs +0 -152
- package/dist/media-usage-work-DJr3rOEN.mjs.map +0 -1
- package/dist/media-usage-write-fence-DW5oHT7q.mjs +0 -42
- package/dist/media-usage-write-fence-DW5oHT7q.mjs.map +0 -1
- package/dist/menus-DbgU9z5Q.mjs +0 -3732
- package/dist/menus-DbgU9z5Q.mjs.map +0 -1
- package/dist/menus-Wy8m5NcH.mjs +0 -753
- package/dist/menus-Wy8m5NcH.mjs.map +0 -1
- package/dist/mime-CCYRC4r1.mjs +0 -36
- package/dist/mime-CCYRC4r1.mjs.map +0 -1
- package/dist/mode-CkmOhFqj.mjs +0 -23
- package/dist/mode-CkmOhFqj.mjs.map +0 -1
- package/dist/node-sqlite-compat-vpVaILnb.mjs +0 -46
- package/dist/node-sqlite-compat-vpVaILnb.mjs.map +0 -1
- package/dist/normalize-dChXQjwS.mjs +0 -191
- package/dist/normalize-dChXQjwS.mjs.map +0 -1
- package/dist/oauth-authorization-DZ-R-hmx.mjs +0 -274
- package/dist/oauth-authorization-DZ-R-hmx.mjs.map +0 -1
- package/dist/oauth-clients-BMPA8vjl.mjs +0 -266
- package/dist/oauth-clients-BMPA8vjl.mjs.map +0 -1
- package/dist/oauth-state-store-0gIdb48-.mjs +0 -50
- package/dist/oauth-state-store-0gIdb48-.mjs.map +0 -1
- package/dist/oauth-user-lookup-ChVW4UWu.mjs +0 -26
- package/dist/oauth-user-lookup-ChVW4UWu.mjs.map +0 -1
- package/dist/object-cache-DlSVbn5Y.mjs +0 -534
- package/dist/object-cache-DlSVbn5Y.mjs.map +0 -1
- package/dist/options-D5WcorD5.mjs +0 -200
- package/dist/options-D5WcorD5.mjs.map +0 -1
- package/dist/options-DAknChnw.d.mts +0 -77
- package/dist/options-DAknChnw.d.mts.map +0 -1
- package/dist/parse-Cr379Av9.mjs +0 -81
- package/dist/parse-Cr379Av9.mjs.map +0 -1
- package/dist/parse-tj9XLNO_.d.mts +0 -165
- package/dist/parse-tj9XLNO_.d.mts.map +0 -1
- package/dist/passkey-config-BD-wMaCf.mjs +0 -46
- package/dist/passkey-config-BD-wMaCf.mjs.map +0 -1
- package/dist/patterns-Do3iqi7N.mjs +0 -145
- package/dist/patterns-Do3iqi7N.mjs.map +0 -1
- package/dist/placeholder-CubPFn_L.d.mts +0 -306
- package/dist/placeholder-CubPFn_L.d.mts.map +0 -1
- package/dist/plugins-DHurtdXQ.mjs +0 -277
- package/dist/plugins-DHurtdXQ.mjs.map +0 -1
- package/dist/policy-lyZnjpwz.mjs +0 -45
- package/dist/policy-lyZnjpwz.mjs.map +0 -1
- package/dist/portable-text-oAwodbPS.mjs +0 -286
- package/dist/portable-text-oAwodbPS.mjs.map +0 -1
- package/dist/preview-Cup2bj8c.mjs +0 -107
- package/dist/preview-Cup2bj8c.mjs.map +0 -1
- package/dist/protocol-C1CNiKX4.d.mts +0 -61
- package/dist/protocol-C1CNiKX4.d.mts.map +0 -1
- package/dist/public-submission-Cs-pFMQK.mjs +0 -245
- package/dist/public-submission-Cs-pFMQK.mjs.map +0 -1
- package/dist/public-url-BWVHsfQv.mjs +0 -101
- package/dist/public-url-BWVHsfQv.mjs.map +0 -1
- package/dist/query-D-lxiOgn.mjs +0 -890
- package/dist/query-D-lxiOgn.mjs.map +0 -1
- package/dist/query-D7kHKOws.mjs +0 -41
- package/dist/query-D7kHKOws.mjs.map +0 -1
- package/dist/rate-limit-CqJn-w4h.mjs +0 -120
- package/dist/rate-limit-CqJn-w4h.mjs.map +0 -1
- package/dist/redirect-BrChFPIu.mjs +0 -17
- package/dist/redirect-BrChFPIu.mjs.map +0 -1
- package/dist/redirect-D2Yo-b6S.mjs +0 -415
- package/dist/redirect-D2Yo-b6S.mjs.map +0 -1
- package/dist/redirects-BCiTaIQ-.mjs +0 -146
- package/dist/redirects-BCiTaIQ-.mjs.map +0 -1
- package/dist/redirects-ByItliuu.mjs +0 -644
- package/dist/redirects-ByItliuu.mjs.map +0 -1
- package/dist/registry-CkuPoZs7.mjs +0 -1222
- package/dist/registry-CkuPoZs7.mjs.map +0 -1
- package/dist/relation-XTAtOpJO.mjs +0 -334
- package/dist/relation-XTAtOpJO.mjs.map +0 -1
- package/dist/relations-B4w-G5U9.mjs +0 -309
- package/dist/relations-B4w-G5U9.mjs.map +0 -1
- package/dist/relations-O63JWBRj.mjs +0 -403
- package/dist/relations-O63JWBRj.mjs.map +0 -1
- package/dist/request-cache-DaMhSQdx.mjs +0 -104
- package/dist/request-cache-DaMhSQdx.mjs.map +0 -1
- package/dist/request-meta-C8yl_sIs.mjs +0 -141
- package/dist/request-meta-C8yl_sIs.mjs.map +0 -1
- package/dist/resolve-BJIS8wKr.mjs +0 -199
- package/dist/resolve-BJIS8wKr.mjs.map +0 -1
- package/dist/route-wire-D66L2oaZ.mjs +0 -197
- package/dist/route-wire-D66L2oaZ.mjs.map +0 -1
- package/dist/routes-DYsTe-oR.mjs +0 -321
- package/dist/routes-DYsTe-oR.mjs.map +0 -1
- package/dist/runner-3gfxRsJG.d.mts +0 -68
- package/dist/runner-3gfxRsJG.d.mts.map +0 -1
- package/dist/runner-ClrleR8A.mjs +0 -5502
- package/dist/runner-ClrleR8A.mjs.map +0 -1
- package/dist/schema-CPhPM9Do.mjs +0 -420
- package/dist/schema-CPhPM9Do.mjs.map +0 -1
- package/dist/schema-DEERRrKS.mjs +0 -9
- package/dist/schema-DEERRrKS.mjs.map +0 -1
- package/dist/scopes-Bn8_rCSt.mjs +0 -27
- package/dist/scopes-Bn8_rCSt.mjs.map +0 -1
- package/dist/search-lami_Ota.mjs +0 -448
- package/dist/search-lami_Ota.mjs.map +0 -1
- package/dist/secrets-DNgVgz_e.mjs +0 -341
- package/dist/secrets-DNgVgz_e.mjs.map +0 -1
- package/dist/sections-BIpd4Cxf.mjs +0 -346
- package/dist/sections-BIpd4Cxf.mjs.map +0 -1
- package/dist/seo-BtU70b7l.mjs +0 -114
- package/dist/seo-BtU70b7l.mjs.map +0 -1
- package/dist/seo-_4qmazxz.mjs +0 -133
- package/dist/seo-_4qmazxz.mjs.map +0 -1
- package/dist/service-Bpy5iTX0.mjs +0 -150
- package/dist/service-Bpy5iTX0.mjs.map +0 -1
- package/dist/session-user-BQeS2Mrb.mjs +0 -51
- package/dist/session-user-BQeS2Mrb.mjs.map +0 -1
- package/dist/settings-DmroR53o.mjs +0 -420
- package/dist/settings-DmroR53o.mjs.map +0 -1
- package/dist/settings-g2F2a3Ub.mjs +0 -51
- package/dist/settings-g2F2a3Ub.mjs.map +0 -1
- package/dist/setup-complete-BrZaXpVV.mjs +0 -26
- package/dist/setup-complete-BrZaXpVV.mjs.map +0 -1
- package/dist/setup-nonce-Cb9-884O.mjs +0 -25
- package/dist/setup-nonce-Cb9-884O.mjs.map +0 -1
- package/dist/site-url-DjhYCaep.mjs +0 -16
- package/dist/site-url-DjhYCaep.mjs.map +0 -1
- package/dist/snapshot-C32Xuv3o.mjs +0 -233
- package/dist/snapshot-C32Xuv3o.mjs.map +0 -1
- package/dist/ssrf-Co1GGFZz.mjs +0 -406
- package/dist/ssrf-Co1GGFZz.mjs.map +0 -1
- package/dist/state-C7gCoiHr.mjs +0 -153
- package/dist/state-C7gCoiHr.mjs.map +0 -1
- package/dist/status-DLoBmcDz.mjs +0 -30
- package/dist/status-DLoBmcDz.mjs.map +0 -1
- package/dist/storage-query-CPctdMKX.d.mts +0 -1519
- package/dist/storage-query-CPctdMKX.d.mts.map +0 -1
- package/dist/target-CUKlGrXb.mjs +0 -27
- package/dist/target-CUKlGrXb.mjs.map +0 -1
- package/dist/taxonomies-BpqpXJUE.mjs +0 -707
- package/dist/taxonomies-BpqpXJUE.mjs.map +0 -1
- package/dist/taxonomies-ClCo4IGO.mjs +0 -899
- package/dist/taxonomies-ClCo4IGO.mjs.map +0 -1
- package/dist/taxonomy-Dj1vpw5E.mjs +0 -508
- package/dist/taxonomy-Dj1vpw5E.mjs.map +0 -1
- package/dist/tokens-Ns02GAma.mjs +0 -171
- package/dist/tokens-Ns02GAma.mjs.map +0 -1
- package/dist/transport-B8P1xsqk.mjs +0 -136
- package/dist/transport-B8P1xsqk.mjs.map +0 -1
- package/dist/transport-BLHZZcD_.d.mts +0 -42
- package/dist/transport-BLHZZcD_.d.mts.map +0 -1
- package/dist/trusted-proxy-Cg7SuD15.mjs +0 -51
- package/dist/trusted-proxy-Cg7SuD15.mjs.map +0 -1
- package/dist/turnstile-DWCSh_Qc.mjs +0 -53
- package/dist/turnstile-DWCSh_Qc.mjs.map +0 -1
- package/dist/types-B3RkqvDW.mjs +0 -156
- package/dist/types-B3RkqvDW.mjs.map +0 -1
- package/dist/types-BtuppOTV.mjs +0 -16
- package/dist/types-BtuppOTV.mjs.map +0 -1
- package/dist/types-CCR3ivXE.d.mts +0 -363
- package/dist/types-CCR3ivXE.d.mts.map +0 -1
- package/dist/types-CSHgU_-_.mjs +0 -18
- package/dist/types-CSHgU_-_.mjs.map +0 -1
- package/dist/types-CbwqGOXm.d.mts +0 -766
- package/dist/types-CbwqGOXm.d.mts.map +0 -1
- package/dist/types-D4RGIc2I.d.mts +0 -198
- package/dist/types-D4RGIc2I.d.mts.map +0 -1
- package/dist/types-DEHidMEk.d.mts +0 -1637
- package/dist/types-DEHidMEk.d.mts.map +0 -1
- package/dist/types-DQeU2SR7.d.mts +0 -279
- package/dist/types-DQeU2SR7.d.mts.map +0 -1
- package/dist/types-DxQWoQLA.d.mts +0 -264
- package/dist/types-DxQWoQLA.d.mts.map +0 -1
- package/dist/types-FBBnGZ2Y.d.mts +0 -198
- package/dist/types-FBBnGZ2Y.d.mts.map +0 -1
- package/dist/types-ZCnlropY.mjs +0 -69
- package/dist/types-ZCnlropY.mjs.map +0 -1
- package/dist/types-_Qtyawiy.d.mts +0 -124
- package/dist/types-_Qtyawiy.d.mts.map +0 -1
- package/dist/types-gC6FAoa_.d.mts +0 -75
- package/dist/types-gC6FAoa_.d.mts.map +0 -1
- package/dist/types-k--LneIF.mjs +0 -22
- package/dist/types-k--LneIF.mjs.map +0 -1
- package/dist/upload-attempts-2xdnoKGe.mjs +0 -27
- package/dist/upload-attempts-2xdnoKGe.mjs.map +0 -1
- package/dist/url-pattern-3m3reMzr.mjs +0 -33
- package/dist/url-pattern-3m3reMzr.mjs.map +0 -1
- package/dist/user-DroRntkx.mjs +0 -171
- package/dist/user-DroRntkx.mjs.map +0 -1
- package/dist/utils-CC2oNGV8.mjs +0 -435
- package/dist/utils-CC2oNGV8.mjs.map +0 -1
- package/dist/validate-BCP9HNDn.mjs +0 -384
- package/dist/validate-BCP9HNDn.mjs.map +0 -1
- package/dist/validate-CyQ7I3xF.d.mts +0 -410
- package/dist/validate-CyQ7I3xF.d.mts.map +0 -1
- package/dist/validation-DBy6WF94.mjs +0 -216
- package/dist/validation-DBy6WF94.mjs.map +0 -1
- package/dist/version-B57E4Uo7.mjs +0 -7
- package/dist/version-B57E4Uo7.mjs.map +0 -1
- package/dist/widgets-wQ7Xcgq8.mjs +0 -126
- package/dist/widgets-wQ7Xcgq8.mjs.map +0 -1
- package/dist/wxr-taxonomies-DIHfvEDt.mjs +0 -406
- package/dist/wxr-taxonomies-DIHfvEDt.mjs.map +0 -1
- package/dist/wxr-taxonomies-DU2ZSiGc.d.mts +0 -34
- package/dist/wxr-taxonomies-DU2ZSiGc.d.mts.map +0 -1
- package/dist/zod-generator-D_yHIWfs.mjs +0 -329
- package/dist/zod-generator-D_yHIWfs.mjs.map +0 -1
- /package/dist/{ssrf-BRpTDMV6.mjs → ssrf-DpBH7aOt.mjs} +0 -0
|
@@ -1,21 +1,401 @@
|
|
|
1
|
-
import "../../../
|
|
1
|
+
import "../../../dialect-helpers-7_IqPdh9.mjs";
|
|
2
|
+
import { r as getI18nConfig } from "../../../config-CvmjJcVw.mjs";
|
|
3
|
+
import "../../../after-PcEvMY_6.mjs";
|
|
4
|
+
import "../../../options-DhrI7eMv.mjs";
|
|
2
5
|
import { i as encodeBase64, t as decodeBase64 } from "../../../base64-DvnNgP7e.mjs";
|
|
6
|
+
import "../../../secrets-CIi0nFiR.mjs";
|
|
7
|
+
import "../../../object-cache-CqWNY5uP.mjs";
|
|
3
8
|
import { i as InvalidCursorError, o as decodeCursor } from "../../../types-BkUg2yHx.mjs";
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import "../../../
|
|
7
|
-
import
|
|
8
|
-
import "../../../
|
|
9
|
-
import "../../../
|
|
10
|
-
import "../../../
|
|
9
|
+
import "../../../media-Qp5S3eH3.mjs";
|
|
10
|
+
import "../../../audit-RfCugiSB.mjs";
|
|
11
|
+
import "../../../request-cache-DzLYKm_x.mjs";
|
|
12
|
+
import "../../../byline-registry-gnKscbQX.mjs";
|
|
13
|
+
import "../../../field-defs-cache-HIgBbqZZ.mjs";
|
|
14
|
+
import "../../../byline-DYmkXqvo.mjs";
|
|
15
|
+
import "../../../fts-manager-S-K0laoS.mjs";
|
|
16
|
+
import { n as siteSettingsTag, r as taxonomyTag, t as menuTag } from "../../../chrome-tags-DApCQSIk.mjs";
|
|
17
|
+
import "../../../loader-BzqeR1ZN.mjs";
|
|
18
|
+
import "../../../collection-slugs-cache-CjGk__zp.mjs";
|
|
19
|
+
import "../../../capture-triggers-kJyl_yyM.mjs";
|
|
20
|
+
import "../../../activation-LOkDM5WT.mjs";
|
|
21
|
+
import "../../../block-type-registry-DUI_3KxT.mjs";
|
|
22
|
+
import "../../../collection-deletion-BIm28mo3.mjs";
|
|
23
|
+
import { r as isTransferError, t as TransferError } from "../../../errors-DgE1zJGG.mjs";
|
|
24
|
+
import "../../../canonical-YhEQezjg.mjs";
|
|
25
|
+
import { f as toSha256Digest } from "../../../digest-BarSh-pN.mjs";
|
|
26
|
+
import "../../../hash-SDAW6zC-.mjs";
|
|
27
|
+
import "../../../zod-generator-D6uE4WiS.mjs";
|
|
28
|
+
import "../../../collection-deletion-processor-Br6rxs3u.mjs";
|
|
29
|
+
import "../../../settings-DYidIB26.mjs";
|
|
30
|
+
import "../../../site-settings-DOgRUoFX.mjs";
|
|
31
|
+
import "../../../errors-BF0_LFhW.mjs";
|
|
32
|
+
import "../../../settings-CgjRWGW9.mjs";
|
|
33
|
+
import { t as apiError } from "../../../error-CfvOHP0M.mjs";
|
|
34
|
+
import "../../../redirects-Cv9apQKj.mjs";
|
|
35
|
+
import { Ct as updateCollectionBody, I as createTaxonomyDefBody, St as updateBlockTypeBody, Yt as bylineCreateBody, Z as updateTaxonomyDefBody, dt as createBlockTypeBody, ft as createCollectionBody, rn as contentBylineInputSchema, tn as bylineUpdateBody, wt as updateFieldBody, zt as contentSeoInput } from "../../../entry-lock-BJYdBfXb.mjs";
|
|
36
|
+
import { t as CONTENT_TYPE_RE } from "../../../media-Pu1L6xir.mjs";
|
|
37
|
+
import "../../../comments-fHZ8ON9O.mjs";
|
|
38
|
+
import "../../../relations-CK9CYUyr.mjs";
|
|
39
|
+
import "../../../menus-BM7BPLOb.mjs";
|
|
40
|
+
import "../../../status-DZKIG4a9.mjs";
|
|
11
41
|
import "../../../api/schemas/index.mjs";
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
42
|
+
import { a as readSiteWriteFence, o as recordSiteWrite } from "../../../fence-CMDXJYc_.mjs";
|
|
43
|
+
import { a as hasScope$1 } from "../../../api-tokens-CE1ECIg0.mjs";
|
|
44
|
+
import { n as convertDataForWrite, t as convertDataForRead } from "../../../portable-text-5O_ZGUjB.mjs";
|
|
45
|
+
import "../../../tar-_1AgTYFu.mjs";
|
|
46
|
+
import { i as RECORD_KINDS } from "../../../kinds-CRu_T5T5.mjs";
|
|
47
|
+
import "../../../paths-JxokKIbr.mjs";
|
|
48
|
+
import "../../../transformations-9gfpwY65.mjs";
|
|
49
|
+
import "../../../version-BRZXVifl.mjs";
|
|
50
|
+
import "../../../receipt-B4wJj5Jq.mjs";
|
|
51
|
+
import { S as TRANSFER_SCOPES, n as TransferApprovalRepository } from "../../../approvals-CqMfNxak.mjs";
|
|
52
|
+
import { a as siteImportDecisionsInputSchema, t as isPlanExecutable } from "../../../plan-xjcWrAah.mjs";
|
|
53
|
+
import { i as TransferOperationRepository } from "../../../stage-DgrBz_du.mjs";
|
|
54
|
+
import { C as requestTransferApproval, E as analysisTargetContext, S as handleTransferCapabilities, T as loadImportPlan, _ as handleImportGet, c as handleExportGet, d as handleImportAdvance, f as handleImportAnalyze, h as handleImportExecute, i as handleExportAdvance, o as handleExportCreate, t as exportParamsDigest, w as openExportPackage, x as handleImportReceipt } from "../../../transfer-BhUCrgDc.mjs";
|
|
55
|
+
import "../../../keys-yxLm5l35.mjs";
|
|
14
56
|
import { z } from "zod";
|
|
15
57
|
import { Permissions, Role, canActOnOwn, hasPermission } from "@emdash-cms/auth";
|
|
16
58
|
import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
|
|
17
59
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
18
60
|
|
|
61
|
+
//#region src/mcp/transfer.ts
|
|
62
|
+
/** Plan principals, warnings, and blockers listed per call; the totals are always reported. */
|
|
63
|
+
const MCP_PLAN_LIST_LIMIT = 50;
|
|
64
|
+
function failure(code, message, details) {
|
|
65
|
+
return {
|
|
66
|
+
success: false,
|
|
67
|
+
error: details === void 0 ? {
|
|
68
|
+
code,
|
|
69
|
+
message
|
|
70
|
+
} : {
|
|
71
|
+
code,
|
|
72
|
+
message,
|
|
73
|
+
details
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function transferFailure(error, fallbackCode) {
|
|
78
|
+
if (isTransferError(error)) return failure(error.code, error.message);
|
|
79
|
+
console.error("[transfer] MCP tool failed:", error);
|
|
80
|
+
return failure(fallbackCode, "Site transfer request failed");
|
|
81
|
+
}
|
|
82
|
+
function storageMissing() {
|
|
83
|
+
return failure("STORAGE_NOT_CONFIGURED", "No storage backend is configured");
|
|
84
|
+
}
|
|
85
|
+
function tokenRequired() {
|
|
86
|
+
return failure("INSUFFICIENT_SCOPE", "Approval grants need a caller authenticated with an API or OAuth token");
|
|
87
|
+
}
|
|
88
|
+
function summarizeOperation(operation) {
|
|
89
|
+
const progress = operation.progress;
|
|
90
|
+
return {
|
|
91
|
+
id: operation.id,
|
|
92
|
+
kind: operation.kind,
|
|
93
|
+
state: operation.state,
|
|
94
|
+
stage: operation.stage,
|
|
95
|
+
progress: progress ? {
|
|
96
|
+
done: progress.done,
|
|
97
|
+
total: progress.total,
|
|
98
|
+
...progress.records === void 0 ? {} : { records: progress.records },
|
|
99
|
+
...progress.bytesDone === void 0 ? {} : { bytesDone: progress.bytesDone },
|
|
100
|
+
...progress.bytesTotal === void 0 ? {} : { bytesTotal: progress.bytesTotal }
|
|
101
|
+
} : null,
|
|
102
|
+
packageDigest: operation.packageDigest,
|
|
103
|
+
planDigest: operation.planDigest,
|
|
104
|
+
error: operation.errorCode ? { code: operation.errorCode } : null,
|
|
105
|
+
createdAt: operation.createdAt,
|
|
106
|
+
updatedAt: operation.updatedAt,
|
|
107
|
+
completedAt: operation.completedAt,
|
|
108
|
+
expiresAt: operation.expiresAt
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function summarizeIssue(issue) {
|
|
112
|
+
return {
|
|
113
|
+
code: issue.code,
|
|
114
|
+
message: issue.message,
|
|
115
|
+
...issue.kind === void 0 ? {} : { kind: issue.kind },
|
|
116
|
+
...issue.id === void 0 ? {} : { id: issue.id },
|
|
117
|
+
...issue.count === void 0 ? {} : { count: issue.count },
|
|
118
|
+
...issue.detail === void 0 ? {} : { detail: { ...issue.detail } }
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/** How many records a transformation touches; its listed ids and values are not returned. */
|
|
122
|
+
function transformationCount(item) {
|
|
123
|
+
switch (item.code) {
|
|
124
|
+
case "redirect_loop_disabled":
|
|
125
|
+
case "search_unsupported": return item.ids.length;
|
|
126
|
+
case "locale_recased": return item.locales.length;
|
|
127
|
+
default: return item.count;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function summarizePlan(plan, planDigest) {
|
|
131
|
+
return {
|
|
132
|
+
packageDigest: plan.packageDigest,
|
|
133
|
+
planDigest,
|
|
134
|
+
executable: isPlanExecutable(plan),
|
|
135
|
+
origin: {
|
|
136
|
+
siteId: plan.origin.siteId,
|
|
137
|
+
packageId: plan.origin.packageId,
|
|
138
|
+
createdAt: plan.origin.createdAt,
|
|
139
|
+
emdashVersion: plan.origin.createdByEmDashVersion
|
|
140
|
+
},
|
|
141
|
+
counts: { ...plan.counts },
|
|
142
|
+
bytes: {
|
|
143
|
+
records: plan.bytes.records,
|
|
144
|
+
media: plan.bytes.media
|
|
145
|
+
},
|
|
146
|
+
principals: {
|
|
147
|
+
total: plan.principals.length,
|
|
148
|
+
items: plan.principals.toSorted((a, b) => b.references - a.references || a.id.localeCompare(b.id)).slice(0, MCP_PLAN_LIST_LIMIT).map((principal) => ({
|
|
149
|
+
id: principal.id,
|
|
150
|
+
displayName: principal.displayName,
|
|
151
|
+
references: principal.references,
|
|
152
|
+
suggestedUserId: principal.suggestedUserId ?? null,
|
|
153
|
+
mappedUserId: plan.decisions.principalMappings[principal.id] ?? null
|
|
154
|
+
}))
|
|
155
|
+
},
|
|
156
|
+
decisions: {
|
|
157
|
+
siteTitle: plan.decisions.siteTitle,
|
|
158
|
+
siteTagline: plan.decisions.siteTagline
|
|
159
|
+
},
|
|
160
|
+
transformations: plan.transformations.map((item) => ({
|
|
161
|
+
code: item.code,
|
|
162
|
+
..."kind" in item ? { kind: item.kind } : {},
|
|
163
|
+
count: transformationCount(item)
|
|
164
|
+
})),
|
|
165
|
+
warnings: {
|
|
166
|
+
total: plan.warnings.length,
|
|
167
|
+
items: plan.warnings.slice(0, MCP_PLAN_LIST_LIMIT).map(summarizeIssue)
|
|
168
|
+
},
|
|
169
|
+
blockers: {
|
|
170
|
+
total: plan.blockers.length,
|
|
171
|
+
items: plan.blockers.slice(0, MCP_PLAN_LIST_LIMIT).map(summarizeIssue)
|
|
172
|
+
},
|
|
173
|
+
estimatedSteps: plan.estimatedSteps
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Whether `caller` may drive or read `operationId` through a grant it
|
|
178
|
+
* consumed for it, in place of the transfer scope.
|
|
179
|
+
*/
|
|
180
|
+
async function hasOperationGrant(db, caller, action, operationId) {
|
|
181
|
+
if (caller.tokenId === void 0) return false;
|
|
182
|
+
return new TransferApprovalRepository(db).hasConsumed({
|
|
183
|
+
userId: caller.userId,
|
|
184
|
+
action,
|
|
185
|
+
operationId,
|
|
186
|
+
tokenId: caller.tokenId
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
async function transferCapabilities(context) {
|
|
190
|
+
return handleTransferCapabilities(context.db, analysisTargetContext({
|
|
191
|
+
i18n: getI18nConfig(),
|
|
192
|
+
maxUploadSize: context.maxUploadSize
|
|
193
|
+
}));
|
|
194
|
+
}
|
|
195
|
+
async function startExport(context, caller, input) {
|
|
196
|
+
const options = input.comments === void 0 ? {} : { comments: input.comments };
|
|
197
|
+
if (!input.scoped) {
|
|
198
|
+
if (caller.tokenId === void 0) return tokenRequired();
|
|
199
|
+
if (input.approvalId === void 0) return withInstruction(await requestTransferApproval(context.db, {
|
|
200
|
+
userId: caller.userId,
|
|
201
|
+
action: "export",
|
|
202
|
+
paramsDigest: await exportParamsDigest(options),
|
|
203
|
+
requestedByTokenId: caller.tokenId
|
|
204
|
+
}));
|
|
205
|
+
}
|
|
206
|
+
const created = await handleExportCreate(context.db, {
|
|
207
|
+
userId: caller.userId,
|
|
208
|
+
options,
|
|
209
|
+
...input.scoped || input.approvalId === void 0 ? {} : { approval: {
|
|
210
|
+
id: input.approvalId,
|
|
211
|
+
tokenId: caller.tokenId
|
|
212
|
+
} }
|
|
213
|
+
});
|
|
214
|
+
if (!created.success) return created;
|
|
215
|
+
return {
|
|
216
|
+
success: true,
|
|
217
|
+
data: { operation: summarizeOperation(created.data.operation) }
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Put the approval id and the next step in the message text, which is all
|
|
222
|
+
* many MCP clients show the model; `details` carries the same values.
|
|
223
|
+
*/
|
|
224
|
+
function withInstruction(result) {
|
|
225
|
+
if (result.success || result.error.code !== "TRANSFER_APPROVAL_REQUIRED") return result;
|
|
226
|
+
const details = result.error.details ?? {};
|
|
227
|
+
const approvalId = String(details.approvalId);
|
|
228
|
+
return failure("TRANSFER_APPROVAL_REQUIRED", `Approval ${approvalId} is pending until ${String(details.expiresAt)}. An admin must approve it in the EmDash admin under Settings → Transfer. Then call this tool again with the same arguments and approvalId "${approvalId}".`, details);
|
|
229
|
+
}
|
|
230
|
+
async function exportTotals(db, storage, operationId) {
|
|
231
|
+
const manifest = await openExportPackage({
|
|
232
|
+
db,
|
|
233
|
+
storage,
|
|
234
|
+
operation: await new TransferOperationRepository(db).require(operationId)
|
|
235
|
+
}).manifest();
|
|
236
|
+
const byKind = {};
|
|
237
|
+
let total = 0;
|
|
238
|
+
for (const kind of RECORD_KINDS) {
|
|
239
|
+
const summary = manifest.records[kind];
|
|
240
|
+
if (!summary) continue;
|
|
241
|
+
byKind[kind] = summary.count;
|
|
242
|
+
total += summary.count;
|
|
243
|
+
}
|
|
244
|
+
return {
|
|
245
|
+
records: {
|
|
246
|
+
total,
|
|
247
|
+
byKind
|
|
248
|
+
},
|
|
249
|
+
media: {
|
|
250
|
+
count: manifest.media.count,
|
|
251
|
+
totalBytes: manifest.media.totalBytes
|
|
252
|
+
},
|
|
253
|
+
files: {
|
|
254
|
+
count: manifest.files.count,
|
|
255
|
+
totalBytes: manifest.files.totalBytes
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
async function exportStatus(context, input) {
|
|
260
|
+
let operation;
|
|
261
|
+
let nextRequestInMs;
|
|
262
|
+
if (input.advance) {
|
|
263
|
+
if (!context.storage) return storageMissing();
|
|
264
|
+
const step = await handleExportAdvance(context.db, context.storage, { operationId: input.operationId });
|
|
265
|
+
if (!step.success) return step;
|
|
266
|
+
operation = step.data.operation;
|
|
267
|
+
nextRequestInMs = step.data.nextRequestInMs;
|
|
268
|
+
} else {
|
|
269
|
+
const read = await handleExportGet(context.db, input.operationId);
|
|
270
|
+
if (!read.success) return read;
|
|
271
|
+
operation = read.data.operation;
|
|
272
|
+
nextRequestInMs = operation.state === "pending" || operation.state === "running" ? 0 : null;
|
|
273
|
+
}
|
|
274
|
+
const status = {
|
|
275
|
+
operation: summarizeOperation(operation),
|
|
276
|
+
nextRequestInMs
|
|
277
|
+
};
|
|
278
|
+
if (operation.state === "complete" && operation.stagingCollectedAt === null) {
|
|
279
|
+
if (!context.storage) return storageMissing();
|
|
280
|
+
try {
|
|
281
|
+
status.totals = await exportTotals(context.db, context.storage, operation.id);
|
|
282
|
+
} catch (error) {
|
|
283
|
+
return transferFailure(error, "TRANSFER_EXPORT_ERROR");
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return {
|
|
287
|
+
success: true,
|
|
288
|
+
data: status
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
async function analyzeImport(context, input) {
|
|
292
|
+
if (!context.storage) return storageMissing();
|
|
293
|
+
const result = await handleImportAnalyze(context.db, context.storage, {
|
|
294
|
+
operationId: input.operationId,
|
|
295
|
+
decisions: input.decisions,
|
|
296
|
+
target: analysisTargetContext({
|
|
297
|
+
i18n: getI18nConfig(),
|
|
298
|
+
maxUploadSize: context.maxUploadSize
|
|
299
|
+
})
|
|
300
|
+
});
|
|
301
|
+
if (!result.success) return result;
|
|
302
|
+
const { operation, plan, planDigest, nextRequestInMs } = result.data;
|
|
303
|
+
return {
|
|
304
|
+
success: true,
|
|
305
|
+
data: {
|
|
306
|
+
operation: summarizeOperation(operation),
|
|
307
|
+
...plan && planDigest ? { plan: summarizePlan(plan, planDigest) } : {},
|
|
308
|
+
nextRequestInMs
|
|
309
|
+
}
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Check what `handleImportExecute` would, before a pending grant is created,
|
|
314
|
+
* so an admin is only ever asked to approve an import that can run.
|
|
315
|
+
*/
|
|
316
|
+
async function assertExecutable(context, input) {
|
|
317
|
+
const operation = await new TransferOperationRepository(context.db).get(input.operationId);
|
|
318
|
+
if (!operation || operation.kind !== "import") throw new TransferError("TRANSFER_OPERATION_NOT_FOUND", "Transfer operation not found");
|
|
319
|
+
if (operation.packageDigest !== input.packageDigest) throw new TransferError("TRANSFER_PACKAGE_DIGEST_MISMATCH", "Package digest does not match");
|
|
320
|
+
if (operation.planDigest === null || operation.planDigest !== input.planDigest) throw new TransferError("TRANSFER_PLAN_DIGEST_MISMATCH", "Plan digest does not match");
|
|
321
|
+
if (operation.state !== "planned") throw new TransferError("TRANSFER_INVALID_STATE", "Import is not waiting to be started");
|
|
322
|
+
const plan = await loadImportPlan(context.storage, operation);
|
|
323
|
+
if (!plan || !isPlanExecutable(plan)) throw new TransferError("TRANSFER_PLAN_BLOCKED", "The import plan has blockers");
|
|
324
|
+
}
|
|
325
|
+
async function startImport(context, caller, input) {
|
|
326
|
+
const storage = context.storage;
|
|
327
|
+
if (!storage) return storageMissing();
|
|
328
|
+
if (!input.scoped) {
|
|
329
|
+
if (caller.tokenId === void 0) return tokenRequired();
|
|
330
|
+
if (input.approvalId === void 0) {
|
|
331
|
+
try {
|
|
332
|
+
await assertExecutable({
|
|
333
|
+
...context,
|
|
334
|
+
storage
|
|
335
|
+
}, input);
|
|
336
|
+
} catch (error) {
|
|
337
|
+
return transferFailure(error, "TRANSFER_IMPORT_ERROR");
|
|
338
|
+
}
|
|
339
|
+
return withInstruction(await requestTransferApproval(context.db, {
|
|
340
|
+
userId: caller.userId,
|
|
341
|
+
action: "import",
|
|
342
|
+
operationId: input.operationId,
|
|
343
|
+
packageDigest: input.packageDigest,
|
|
344
|
+
planDigest: input.planDigest,
|
|
345
|
+
requestedByTokenId: caller.tokenId
|
|
346
|
+
}));
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
const executed = await handleImportExecute(context.db, storage, {
|
|
350
|
+
operationId: input.operationId,
|
|
351
|
+
userId: caller.userId,
|
|
352
|
+
packageDigest: input.packageDigest,
|
|
353
|
+
planDigest: input.planDigest,
|
|
354
|
+
...input.scoped || input.approvalId === void 0 ? {} : { approval: {
|
|
355
|
+
id: input.approvalId,
|
|
356
|
+
tokenId: caller.tokenId
|
|
357
|
+
} }
|
|
358
|
+
});
|
|
359
|
+
if (!executed.success) return executed;
|
|
360
|
+
return {
|
|
361
|
+
success: true,
|
|
362
|
+
data: { operation: summarizeOperation(executed.data.operation) }
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
async function importStatus(context, operationId) {
|
|
366
|
+
const result = await handleImportGet(context.db, operationId);
|
|
367
|
+
if (!result.success) return result;
|
|
368
|
+
return {
|
|
369
|
+
success: true,
|
|
370
|
+
data: {
|
|
371
|
+
operation: summarizeOperation(result.data.operation),
|
|
372
|
+
files: {
|
|
373
|
+
declared: result.data.files.declared,
|
|
374
|
+
verified: result.data.files.verified
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
async function resumeImport(context, caller, operationId) {
|
|
380
|
+
if (!context.storage) return storageMissing();
|
|
381
|
+
const step = await handleImportAdvance(context.db, context.storage, {
|
|
382
|
+
operationId,
|
|
383
|
+
userId: caller.userId
|
|
384
|
+
});
|
|
385
|
+
if (!step.success) return step;
|
|
386
|
+
return {
|
|
387
|
+
success: true,
|
|
388
|
+
data: {
|
|
389
|
+
operation: summarizeOperation(step.data.operation),
|
|
390
|
+
nextRequestInMs: step.data.nextRequestInMs
|
|
391
|
+
}
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
async function importReceipt(context, operationId) {
|
|
395
|
+
return handleImportReceipt(context.db, operationId);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
//#endregion
|
|
19
399
|
//#region src/mcp/server.ts
|
|
20
400
|
const COLLECTION_SLUG_PATTERN = /^[a-z][a-z0-9_]*$/;
|
|
21
401
|
/** http(s) scheme matcher used by `settings_update` URL validation. */
|
|
@@ -30,6 +410,25 @@ const REV_PARAM_DESCRIPTION = "Revision token proving you have read the current
|
|
|
30
410
|
* read the schema, so the message says where the token comes from.
|
|
31
411
|
*/
|
|
32
412
|
const REV_MISSING_ERROR = "_rev is required: call content_get for this item and pass back the _rev it returns.";
|
|
413
|
+
const SHA256_DIGEST_PATTERN = /^sha256:[0-9a-f]{64}$/;
|
|
414
|
+
const transferOperationIdSchema = z.string().regex(/^[0-9A-Za-z_-]{1,64}$/, "Invalid operation id").describe("Transfer operation id");
|
|
415
|
+
const transferApprovalIdSchema = z.string().min(1).max(64).describe("Approval id from an earlier TRANSFER_APPROVAL_REQUIRED error, once approved");
|
|
416
|
+
/**
|
|
417
|
+
* The site transfer tools. Like the transfer REST API they are exempt from
|
|
418
|
+
* the site write fence, so an import started over MCP can be driven to
|
|
419
|
+
* completion over MCP.
|
|
420
|
+
*/
|
|
421
|
+
const TRANSFER_TOOL_NAMES = new Set([
|
|
422
|
+
"site_transfer_capabilities",
|
|
423
|
+
"site_export_start",
|
|
424
|
+
"site_export_status",
|
|
425
|
+
"site_import_analyze",
|
|
426
|
+
"site_import_start",
|
|
427
|
+
"site_import_status",
|
|
428
|
+
"site_import_resume",
|
|
429
|
+
"site_import_receipt"
|
|
430
|
+
]);
|
|
431
|
+
const APPROVAL_FLOW_DESCRIPTION = "If the token lacks the scope, the first call fails with TRANSFER_APPROVAL_REQUIRED and details.approvalId; an admin must approve that request in the EmDash admin (Settings → Transfer). Then repeat the call with the same arguments plus approvalId. Approvals are single-use, bound to this user, this token, and these exact arguments, and expire 15 minutes after they are requested or approved.";
|
|
33
432
|
const TAXONOMY_CURSOR_VERSION = 2;
|
|
34
433
|
const MAX_TAXONOMY_CURSOR_LENGTH = 2048;
|
|
35
434
|
const contentDateTimeInputSchema = z.iso.datetime({
|
|
@@ -54,7 +453,7 @@ const settingsSocialSchema = z.object({
|
|
|
54
453
|
});
|
|
55
454
|
const settingsSeoSchema = z.object({
|
|
56
455
|
titleSeparator: z.string().max(10).optional().describe("Separator between page title and site title (e.g. ' | ')"),
|
|
57
|
-
defaultOgImage: settingsMediaReferenceSchema.optional().describe("Default Open Graph image when content has none"),
|
|
456
|
+
defaultOgImage: settingsMediaReferenceSchema.nullable().optional().describe("Default Open Graph image when content has none; null removes it"),
|
|
58
457
|
robotsTxt: z.string().max(5e3).optional().describe("Custom robots.txt body. Leave unset for the EmDash default."),
|
|
59
458
|
googleVerification: z.string().max(100).optional().describe("Google Search Console verification token"),
|
|
60
459
|
bingVerification: z.string().max(100).optional().describe("Bing Webmaster Tools verification token")
|
|
@@ -270,9 +669,10 @@ async function unwrapAndInvalidate(extra, result, tags, changedEarlier = false)
|
|
|
270
669
|
}
|
|
271
670
|
async function getCollectionFields(ec, collection) {
|
|
272
671
|
try {
|
|
273
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
672
|
+
const { SchemaRegistry } = await import("../../../schema-BABiRdsH.mjs").then((n) => n.t);
|
|
673
|
+
const { expandCollectionBlockFields } = await import("../../../block-values-C_VIPr5t.mjs").then((n) => n.t);
|
|
274
674
|
const col = await new SchemaRegistry(ec.db).getCollectionWithFields(collection);
|
|
275
|
-
return col ? col.fields : null;
|
|
675
|
+
return col ? (await expandCollectionBlockFields(ec.db, col)).fields : null;
|
|
276
676
|
} catch {
|
|
277
677
|
return null;
|
|
278
678
|
}
|
|
@@ -299,7 +699,7 @@ async function applyReadMarkdown(ec, collection, items) {
|
|
|
299
699
|
for (const item of items) if (item.data && typeof item.data === "object") item.data = convertDataForRead(item.data, fields, false);
|
|
300
700
|
}
|
|
301
701
|
async function invalidateBylines() {
|
|
302
|
-
const { invalidateBylineCache } = await import("../../../bylines-
|
|
702
|
+
const { invalidateBylineCache } = await import("../../../bylines-BPwJqoYH.mjs").then((n) => n.t);
|
|
303
703
|
invalidateBylineCache();
|
|
304
704
|
}
|
|
305
705
|
/**
|
|
@@ -324,6 +724,46 @@ function requireRole(extra, minRole) {
|
|
|
324
724
|
if (getExtra(extra).userRole < minRole) throw new EmDashAuthError("Insufficient permissions for this operation", "INSUFFICIENT_PERMISSIONS");
|
|
325
725
|
}
|
|
326
726
|
/**
|
|
727
|
+
* Whether the caller's token holds `scope` (`transfer:*`: any transfer
|
|
728
|
+
* scope). A caller without token scopes holds none.
|
|
729
|
+
*/
|
|
730
|
+
function transferScopeHeld(extra, scope) {
|
|
731
|
+
const { tokenScopes } = getExtra(extra);
|
|
732
|
+
if (!tokenScopes) return false;
|
|
733
|
+
if (scope === "transfer:*") return TRANSFER_SCOPES.some((held) => hasScope$1(tokenScopes, held));
|
|
734
|
+
return hasScope$1(tokenScopes, scope);
|
|
735
|
+
}
|
|
736
|
+
function insufficientTransferScope(scope) {
|
|
737
|
+
return new EmDashAuthError(`Insufficient scope: requires ${scope === "transfer:*" ? TRANSFER_SCOPES.join(" or ") : scope}`, "INSUFFICIENT_SCOPE");
|
|
738
|
+
}
|
|
739
|
+
function requireTransferScope(extra, scope) {
|
|
740
|
+
if (!transferScopeHeld(extra, scope)) throw insufficientTransferScope(scope);
|
|
741
|
+
}
|
|
742
|
+
/**
|
|
743
|
+
* Require `scope`, or a grant this user consumed with this token to start
|
|
744
|
+
* `operationId`.
|
|
745
|
+
*/
|
|
746
|
+
async function requireTransferAccess(extra, scope, action, operationId) {
|
|
747
|
+
if (transferScopeHeld(extra, scope)) return;
|
|
748
|
+
const { emdash, userId, tokenId } = getExtra(extra);
|
|
749
|
+
if (await hasOperationGrant(emdash.db, {
|
|
750
|
+
userId,
|
|
751
|
+
tokenId
|
|
752
|
+
}, action, operationId)) return;
|
|
753
|
+
throw insufficientTransferScope(scope);
|
|
754
|
+
}
|
|
755
|
+
function transferContext(extra) {
|
|
756
|
+
const { emdash } = getExtra(extra);
|
|
757
|
+
return {
|
|
758
|
+
db: emdash.db,
|
|
759
|
+
storage: emdash.storage,
|
|
760
|
+
maxUploadSize: emdash.config.maxUploadSize
|
|
761
|
+
};
|
|
762
|
+
}
|
|
763
|
+
function transferDigest(value) {
|
|
764
|
+
return toSha256Digest(value.slice(7));
|
|
765
|
+
}
|
|
766
|
+
/**
|
|
327
767
|
* Whether the current user may read non-published content (drafts, scheduled,
|
|
328
768
|
* trashed, revisions, compare). SUBSCRIBER may hold content:read for
|
|
329
769
|
* member-only published content but must not see drafts.
|
|
@@ -391,9 +831,16 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
391
831
|
}, { capabilities: { logging: {} } });
|
|
392
832
|
const originalRegisterTool = server.registerTool.bind(server);
|
|
393
833
|
server.registerTool = ((name, config, callback) => {
|
|
834
|
+
const fenced = config.annotations?.readOnlyHint !== true && !TRANSFER_TOOL_NAMES.has(name);
|
|
394
835
|
const wrapped = async (...callbackArgs) => {
|
|
395
836
|
try {
|
|
396
|
-
return await callback(...callbackArgs);
|
|
837
|
+
if (!fenced) return await callback(...callbackArgs);
|
|
838
|
+
const { db } = getEmDash(callbackArgs.at(-1));
|
|
839
|
+
const fence = await readSiteWriteFence(db);
|
|
840
|
+
if (fence.error) return respondError(fence.error.code, fence.error.message);
|
|
841
|
+
const result = await callback(...callbackArgs);
|
|
842
|
+
if (fence.exportRunning && !("isError" in result && result.isError)) await recordSiteWrite(db);
|
|
843
|
+
return result;
|
|
397
844
|
} catch (error) {
|
|
398
845
|
return respondHandlerError(error, "INTERNAL_ERROR");
|
|
399
846
|
}
|
|
@@ -509,6 +956,8 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
509
956
|
status: z.enum(["draft", "published"]).optional().describe("Initial status (default 'draft'). Requires publish permission."),
|
|
510
957
|
locale: z.string().optional().describe("Locale for this content (e.g. 'fr'). Defaults to default locale."),
|
|
511
958
|
translationOf: z.string().optional().describe("ID of the content item this is a translation of. Links items in the same translation group."),
|
|
959
|
+
migrateBlocks: z.boolean().optional().describe("Allow retained blocks to migrate to their type's active version"),
|
|
960
|
+
replaceBlocks: z.boolean().optional().describe("Treat an entirely keyless blocks array as an explicit replacement"),
|
|
512
961
|
bylines: z.array(contentBylineInputSchema).optional().describe("Bylines to credit. Each entry references an existing byline by id (see byline_list / byline_create) with an optional roleLabel. The first entry becomes the primary byline."),
|
|
513
962
|
taxonomies: z.record(z.string(), z.array(z.string())).optional().describe("Taxonomy term assignments as { taxonomyName: [termSlug, ...] }. Term slugs are resolved in the entry's locale. Call taxonomy_list to see available taxonomies and taxonomy_list_terms to look up slugs. Missing keys leave that taxonomy unchanged.")
|
|
514
963
|
}),
|
|
@@ -540,6 +989,8 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
540
989
|
translationOf: args.translationOf,
|
|
541
990
|
bylines: args.bylines,
|
|
542
991
|
taxonomies: args.taxonomies,
|
|
992
|
+
migrateBlocks: args.migrateBlocks,
|
|
993
|
+
replaceBlocks: args.replaceBlocks,
|
|
543
994
|
actor
|
|
544
995
|
});
|
|
545
996
|
if (!result.success) return unwrap(result);
|
|
@@ -561,6 +1012,8 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
561
1012
|
translationOf: args.translationOf,
|
|
562
1013
|
bylines: args.bylines,
|
|
563
1014
|
taxonomies: args.taxonomies,
|
|
1015
|
+
migrateBlocks: args.migrateBlocks,
|
|
1016
|
+
replaceBlocks: args.replaceBlocks,
|
|
564
1017
|
actor
|
|
565
1018
|
}), [args.collection]);
|
|
566
1019
|
});
|
|
@@ -578,6 +1031,8 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
578
1031
|
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."),
|
|
579
1032
|
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."),
|
|
580
1033
|
publishedAt: contentDateTimeInputSchema.nullish().describe("Override the publication timestamp (ISO 8601). Requires content:publish_any permission. Pass null to clear. Useful for content migrations."),
|
|
1034
|
+
migrateBlocks: z.boolean().optional().describe("Allow existing blocks to migrate to their type's active version"),
|
|
1035
|
+
replaceBlocks: z.boolean().optional().describe("Treat an entirely keyless blocks array as an explicit replacement"),
|
|
581
1036
|
_rev: z.string({ error: REV_MISSING_ERROR }).describe(REV_PARAM_DESCRIPTION)
|
|
582
1037
|
})
|
|
583
1038
|
}, async (args, extra) => {
|
|
@@ -614,6 +1069,8 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
614
1069
|
bylines: args.bylines,
|
|
615
1070
|
taxonomies: args.taxonomies,
|
|
616
1071
|
publishedAt: args.publishedAt,
|
|
1072
|
+
migrateBlocks: args.migrateBlocks,
|
|
1073
|
+
replaceBlocks: args.replaceBlocks,
|
|
617
1074
|
_rev: args._rev
|
|
618
1075
|
});
|
|
619
1076
|
if (!updateResult.success) return unwrap(updateResult);
|
|
@@ -643,6 +1100,8 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
643
1100
|
bylines: args.bylines,
|
|
644
1101
|
taxonomies: args.taxonomies,
|
|
645
1102
|
publishedAt: args.publishedAt,
|
|
1103
|
+
migrateBlocks: args.migrateBlocks,
|
|
1104
|
+
replaceBlocks: args.replaceBlocks,
|
|
646
1105
|
_rev: args._rev
|
|
647
1106
|
});
|
|
648
1107
|
if (!updateResult.success) return unwrap(updateResult);
|
|
@@ -667,6 +1126,8 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
667
1126
|
bylines: args.bylines,
|
|
668
1127
|
taxonomies: args.taxonomies,
|
|
669
1128
|
publishedAt: args.publishedAt,
|
|
1129
|
+
migrateBlocks: args.migrateBlocks,
|
|
1130
|
+
replaceBlocks: args.replaceBlocks,
|
|
670
1131
|
_rev: args._rev
|
|
671
1132
|
});
|
|
672
1133
|
if (result.liveContentChanged === false) return unwrap(result);
|
|
@@ -883,7 +1344,12 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
883
1344
|
}, async (args, extra) => {
|
|
884
1345
|
requireScope(extra, "content:write");
|
|
885
1346
|
requireRole(extra, Role.CONTRIBUTOR);
|
|
886
|
-
|
|
1347
|
+
const { emdash, userId } = getExtra(extra);
|
|
1348
|
+
const existing = await emdash.handleContentGet(args.collection, args.id);
|
|
1349
|
+
if (!existing.success) return unwrap(existing);
|
|
1350
|
+
requireOwnership(extra, extractContentAuthorId(existing.data), "content:edit_own", "content:edit_any");
|
|
1351
|
+
const resolvedId = extractContentId(existing.data) ?? args.id;
|
|
1352
|
+
return unwrapAndInvalidate(extra, await emdash.handleContentDuplicate(args.collection, resolvedId, userId), [args.collection]);
|
|
887
1353
|
});
|
|
888
1354
|
server.registerTool("content_translations", {
|
|
889
1355
|
title: "Get Content Translations",
|
|
@@ -925,7 +1391,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
925
1391
|
requireScope(extra, "content:read");
|
|
926
1392
|
const ec = getEmDash(extra);
|
|
927
1393
|
try {
|
|
928
|
-
const { BylineRepository } = await import("../../../byline-
|
|
1394
|
+
const { BylineRepository } = await import("../../../byline-DYmkXqvo.mjs").then((n) => n.n);
|
|
929
1395
|
return jsonResult(await new BylineRepository(ec.db).findMany({
|
|
930
1396
|
search: args.search,
|
|
931
1397
|
isGuest: args.isGuest,
|
|
@@ -947,7 +1413,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
947
1413
|
requireScope(extra, "content:read");
|
|
948
1414
|
const ec = getEmDash(extra);
|
|
949
1415
|
try {
|
|
950
|
-
const { BylineRepository } = await import("../../../byline-
|
|
1416
|
+
const { BylineRepository } = await import("../../../byline-DYmkXqvo.mjs").then((n) => n.n);
|
|
951
1417
|
const byline = await new BylineRepository(ec.db).findById(args.id);
|
|
952
1418
|
if (!byline) return respondError("NOT_FOUND", `Byline '${args.id}' not found`);
|
|
953
1419
|
return jsonResult(byline);
|
|
@@ -965,7 +1431,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
965
1431
|
requireRole(extra, Role.EDITOR);
|
|
966
1432
|
const ec = getEmDash(extra);
|
|
967
1433
|
try {
|
|
968
|
-
const { handleBylineCreate } = await import("../../../bylines-
|
|
1434
|
+
const { handleBylineCreate } = await import("../../../bylines-ukLaYpVZ.mjs").then((n) => n.t);
|
|
969
1435
|
const result = await handleBylineCreate(ec.db, args);
|
|
970
1436
|
if (result.success) await invalidateBylines();
|
|
971
1437
|
return unwrap(result);
|
|
@@ -985,7 +1451,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
985
1451
|
requireRole(extra, Role.EDITOR);
|
|
986
1452
|
const ec = getEmDash(extra);
|
|
987
1453
|
try {
|
|
988
|
-
const { handleBylineUpdate } = await import("../../../bylines-
|
|
1454
|
+
const { handleBylineUpdate } = await import("../../../bylines-ukLaYpVZ.mjs").then((n) => n.t);
|
|
989
1455
|
const { id, ...input } = args;
|
|
990
1456
|
const result = await handleBylineUpdate(ec.db, id, input);
|
|
991
1457
|
if (result.success) await invalidateBylines();
|
|
@@ -1004,7 +1470,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1004
1470
|
requireRole(extra, Role.EDITOR);
|
|
1005
1471
|
const ec = getEmDash(extra);
|
|
1006
1472
|
try {
|
|
1007
|
-
const { BylineRepository } = await import("../../../byline-
|
|
1473
|
+
const { BylineRepository } = await import("../../../byline-DYmkXqvo.mjs").then((n) => n.n);
|
|
1008
1474
|
if (!await new BylineRepository(ec.db).delete(args.id)) return respondError("NOT_FOUND", `Byline '${args.id}' not found`);
|
|
1009
1475
|
await invalidateBylines();
|
|
1010
1476
|
return jsonResult({ deleted: args.id });
|
|
@@ -1021,7 +1487,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1021
1487
|
requireScope(extra, "content:read");
|
|
1022
1488
|
const ec = getEmDash(extra);
|
|
1023
1489
|
try {
|
|
1024
|
-
const { handleBylineTranslations } = await import("../../../bylines-
|
|
1490
|
+
const { handleBylineTranslations } = await import("../../../bylines-ukLaYpVZ.mjs").then((n) => n.t);
|
|
1025
1491
|
return unwrap(await handleBylineTranslations(ec.db, args.id));
|
|
1026
1492
|
} catch (error) {
|
|
1027
1493
|
return respondHandlerError(error, "BYLINE_TRANSLATIONS_ERROR");
|
|
@@ -1037,7 +1503,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1037
1503
|
requireRole(extra, Role.EDITOR);
|
|
1038
1504
|
const ec = getEmDash(extra);
|
|
1039
1505
|
try {
|
|
1040
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
1506
|
+
const { SchemaRegistry } = await import("../../../schema-BABiRdsH.mjs").then((n) => n.t);
|
|
1041
1507
|
return jsonResult({ items: await new SchemaRegistry(ec.db).listCollections() });
|
|
1042
1508
|
} catch (error) {
|
|
1043
1509
|
return respondHandlerError(error, "SCHEMA_LIST_ERROR");
|
|
@@ -1045,7 +1511,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1045
1511
|
});
|
|
1046
1512
|
server.registerTool("schema_get_collection", {
|
|
1047
1513
|
title: "Get Collection Schema",
|
|
1048
|
-
description: "Get detailed info about a collection including all field definitions. Fields describe the data model: name, type (string, text, number, boolean, datetime, portableText, image, reference, json, select, multiSelect, slug), constraints, and validation rules. Use this to understand what data content_create and content_update expect.",
|
|
1514
|
+
description: "Get detailed info about a collection including all field definitions. Fields describe the data model: name, type (string, text, number, boolean, datetime, portableText, image, reference, json, select, multiSelect, slug, blocks), constraints, and validation rules. Blocks fields include every allowed and retired block type version. Use this to understand what data content_create and content_update expect.",
|
|
1049
1515
|
inputSchema: z.object({ slug: z.string().describe("Collection slug (e.g. 'posts'). Use schema_list_collections to see available slugs.") }),
|
|
1050
1516
|
annotations: { readOnlyHint: true }
|
|
1051
1517
|
}, async (args, extra) => {
|
|
@@ -1053,14 +1519,79 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1053
1519
|
requireRole(extra, Role.EDITOR);
|
|
1054
1520
|
const ec = getEmDash(extra);
|
|
1055
1521
|
try {
|
|
1056
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
1522
|
+
const { SchemaRegistry, expandCollectionBlockFields } = await import("../../../schema-BABiRdsH.mjs").then((n) => n.t);
|
|
1057
1523
|
const collection = await new SchemaRegistry(ec.db).getCollectionWithFields(args.slug);
|
|
1058
1524
|
if (!collection) return respondError("NOT_FOUND", `Collection '${args.slug}' not found`);
|
|
1059
|
-
return jsonResult(collection);
|
|
1525
|
+
return jsonResult(await expandCollectionBlockFields(ec.db, collection));
|
|
1060
1526
|
} catch (error) {
|
|
1061
1527
|
return respondHandlerError(error, "SCHEMA_GET_ERROR");
|
|
1062
1528
|
}
|
|
1063
1529
|
});
|
|
1530
|
+
server.registerTool("schema_list_block_types", {
|
|
1531
|
+
title: "List Block Types",
|
|
1532
|
+
description: "List every database-owned block type and all retained versions.",
|
|
1533
|
+
inputSchema: z.object({}),
|
|
1534
|
+
annotations: { readOnlyHint: true }
|
|
1535
|
+
}, async (_args, extra) => {
|
|
1536
|
+
requireScope(extra, "schema:read");
|
|
1537
|
+
requireRole(extra, Role.EDITOR);
|
|
1538
|
+
const ec = getEmDash(extra);
|
|
1539
|
+
const { handleBlockTypeList } = await import("../../../block-types-BmZmLmAD.mjs").then((n) => n.t);
|
|
1540
|
+
return unwrap(await handleBlockTypeList(ec.db));
|
|
1541
|
+
});
|
|
1542
|
+
server.registerTool("schema_get_block_type", {
|
|
1543
|
+
title: "Get Block Type",
|
|
1544
|
+
description: "Get one block type, including active, inactive, and historical versions.",
|
|
1545
|
+
inputSchema: z.object({ slug: z.string().describe("Block type slug") }),
|
|
1546
|
+
annotations: { readOnlyHint: true }
|
|
1547
|
+
}, async (args, extra) => {
|
|
1548
|
+
requireScope(extra, "schema:read");
|
|
1549
|
+
requireRole(extra, Role.EDITOR);
|
|
1550
|
+
const ec = getEmDash(extra);
|
|
1551
|
+
const { handleBlockTypeGet } = await import("../../../block-types-BmZmLmAD.mjs").then((n) => n.t);
|
|
1552
|
+
return unwrap(await handleBlockTypeGet(ec.db, args.slug));
|
|
1553
|
+
});
|
|
1554
|
+
server.registerTool("schema_create_block_type", {
|
|
1555
|
+
title: "Create Block Type",
|
|
1556
|
+
description: "Create a block type with active version 1.",
|
|
1557
|
+
inputSchema: z.object(createBlockTypeBody.shape)
|
|
1558
|
+
}, async (args, extra) => {
|
|
1559
|
+
requireScope(extra, "schema:write");
|
|
1560
|
+
requireRole(extra, Role.ADMIN);
|
|
1561
|
+
const ec = getEmDash(extra);
|
|
1562
|
+
const { handleBlockTypeCreate } = await import("../../../block-types-BmZmLmAD.mjs").then((n) => n.t);
|
|
1563
|
+
return unwrap(await handleBlockTypeCreate(ec.db, args));
|
|
1564
|
+
});
|
|
1565
|
+
server.registerTool("schema_update_block_type", {
|
|
1566
|
+
title: "Update Block Type",
|
|
1567
|
+
description: "Update presentation or compatible fields in place. Set breaking to create an inactive retained version.",
|
|
1568
|
+
inputSchema: z.object({
|
|
1569
|
+
slug: z.string(),
|
|
1570
|
+
...updateBlockTypeBody.shape
|
|
1571
|
+
})
|
|
1572
|
+
}, async (args, extra) => {
|
|
1573
|
+
requireScope(extra, "schema:write");
|
|
1574
|
+
requireRole(extra, Role.ADMIN);
|
|
1575
|
+
const ec = getEmDash(extra);
|
|
1576
|
+
const { slug, ...input } = args;
|
|
1577
|
+
const { handleBlockTypeUpdate } = await import("../../../block-types-BmZmLmAD.mjs").then((n) => n.t);
|
|
1578
|
+
return unwrap(await handleBlockTypeUpdate(ec.db, slug, input));
|
|
1579
|
+
});
|
|
1580
|
+
server.registerTool("schema_activate_block_type_version", {
|
|
1581
|
+
title: "Activate Block Type Version",
|
|
1582
|
+
description: "Make a retained version the active version used by newly created blocks.",
|
|
1583
|
+
inputSchema: z.object({
|
|
1584
|
+
slug: z.string(),
|
|
1585
|
+
version: z.number().int().positive(),
|
|
1586
|
+
expectedFingerprint: z.string().min(1)
|
|
1587
|
+
})
|
|
1588
|
+
}, async (args, extra) => {
|
|
1589
|
+
requireScope(extra, "schema:write");
|
|
1590
|
+
requireRole(extra, Role.ADMIN);
|
|
1591
|
+
const ec = getEmDash(extra);
|
|
1592
|
+
const { handleBlockTypeVersionActivate } = await import("../../../block-types-BmZmLmAD.mjs").then((n) => n.t);
|
|
1593
|
+
return unwrap(await handleBlockTypeVersionActivate(ec.db, args.slug, args.version, args.expectedFingerprint));
|
|
1594
|
+
});
|
|
1064
1595
|
server.registerTool("schema_create_collection", {
|
|
1065
1596
|
title: "Create Collection",
|
|
1066
1597
|
description: "Create a new content collection (content type). This creates a database table and schema definition. The slug must be lowercase alphanumeric with underscores, starting with a letter. Supports: 'drafts' (draft/publish workflow), 'revisions' (version history), 'preview' (live preview), 'scheduling' (timed publish), 'search' (full-text indexing), and 'seo' (SEO metadata).",
|
|
@@ -1080,7 +1611,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1080
1611
|
requireRole(extra, Role.ADMIN);
|
|
1081
1612
|
const ec = getEmDash(extra);
|
|
1082
1613
|
try {
|
|
1083
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
1614
|
+
const { SchemaRegistry } = await import("../../../schema-BABiRdsH.mjs").then((n) => n.t);
|
|
1084
1615
|
const collection = await new SchemaRegistry(ec.db).createCollection({
|
|
1085
1616
|
slug: args.slug,
|
|
1086
1617
|
label: args.label,
|
|
@@ -1111,7 +1642,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1111
1642
|
requireRole(extra, Role.ADMIN);
|
|
1112
1643
|
const ec = getEmDash(extra);
|
|
1113
1644
|
try {
|
|
1114
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
1645
|
+
const { SchemaRegistry } = await import("../../../schema-BABiRdsH.mjs").then((n) => n.t);
|
|
1115
1646
|
await new SchemaRegistry(ec.db).deleteCollection(args.slug, { force: args.force });
|
|
1116
1647
|
ec.invalidateUrlPatternCache();
|
|
1117
1648
|
return jsonResult({ deleted: args.slug });
|
|
@@ -1130,7 +1661,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1130
1661
|
const ec = getEmDash(extra);
|
|
1131
1662
|
const { slug, ...input } = args;
|
|
1132
1663
|
try {
|
|
1133
|
-
const { handleSchemaCollectionUpdate } = await import("../../../schema-
|
|
1664
|
+
const { handleSchemaCollectionUpdate } = await import("../../../schema-Du3MzCG0.mjs").then((n) => n.h);
|
|
1134
1665
|
const result = await handleSchemaCollectionUpdate(ec.db, slug, input);
|
|
1135
1666
|
if (result.success) ec.invalidateUrlPatternCache();
|
|
1136
1667
|
return unwrap(result);
|
|
@@ -1140,7 +1671,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1140
1671
|
});
|
|
1141
1672
|
server.registerTool("schema_create_field", {
|
|
1142
1673
|
title: "Add Field to Collection",
|
|
1143
|
-
description: "Add a new field to a collection's schema. This adds a column to the database table. Field types: string (short text), text (long text), number (decimal), integer, boolean, datetime, select (single choice), multiSelect (multiple), portableText (rich text), image, file, reference (link to another collection), json, slug (URL-safe id). For select/multiSelect, provide choices in validation.options array.",
|
|
1674
|
+
description: "Add a new field to a collection's schema. This adds a column to the database table. Field types: string (short text), text (long text), number (decimal), integer, boolean, datetime, select (single choice), multiSelect (multiple), portableText (rich text), image, file, reference (link to another collection), json, slug (URL-safe id), or blocks. For select/multiSelect, provide choices in validation.options array.",
|
|
1144
1675
|
inputSchema: z.object({
|
|
1145
1676
|
collection: z.string().describe("Collection slug to add the field to"),
|
|
1146
1677
|
slug: z.string().regex(COLLECTION_SLUG_PATTERN).describe("Field identifier (lowercase letters, numbers, underscores)"),
|
|
@@ -1159,7 +1690,8 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1159
1690
|
"file",
|
|
1160
1691
|
"reference",
|
|
1161
1692
|
"json",
|
|
1162
|
-
"slug"
|
|
1693
|
+
"slug",
|
|
1694
|
+
"blocks"
|
|
1163
1695
|
]).describe("Data type for this field"),
|
|
1164
1696
|
required: z.boolean().optional().describe("Whether the field is required (default false)"),
|
|
1165
1697
|
unique: z.boolean().optional().describe("Whether values must be unique (default false)"),
|
|
@@ -1170,7 +1702,10 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1170
1702
|
minLength: z.number().optional(),
|
|
1171
1703
|
maxLength: z.number().optional(),
|
|
1172
1704
|
pattern: z.string().optional(),
|
|
1173
|
-
options: z.array(z.string()).optional().describe("Allowed values for select/multiSelect")
|
|
1705
|
+
options: z.array(z.string()).optional().describe("Allowed values for select/multiSelect"),
|
|
1706
|
+
allowedTypes: z.array(z.string()).optional().describe("Ordered block type slugs allowed by a blocks field"),
|
|
1707
|
+
minItems: z.number().int().min(0).optional(),
|
|
1708
|
+
maxItems: z.number().int().min(1).optional()
|
|
1174
1709
|
}).optional().describe("Validation constraints"),
|
|
1175
1710
|
options: z.object({
|
|
1176
1711
|
collection: z.string().optional().describe("Target collection slug for reference fields"),
|
|
@@ -1185,7 +1720,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1185
1720
|
requireRole(extra, Role.ADMIN);
|
|
1186
1721
|
const ec = getEmDash(extra);
|
|
1187
1722
|
try {
|
|
1188
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
1723
|
+
const { SchemaRegistry } = await import("../../../schema-BABiRdsH.mjs").then((n) => n.t);
|
|
1189
1724
|
return jsonResult(await new SchemaRegistry(ec.db).createField(args.collection, {
|
|
1190
1725
|
slug: args.slug,
|
|
1191
1726
|
label: args.label,
|
|
@@ -1216,7 +1751,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1216
1751
|
requireRole(extra, Role.ADMIN);
|
|
1217
1752
|
const ec = getEmDash(extra);
|
|
1218
1753
|
try {
|
|
1219
|
-
const { SchemaRegistry } = await import("../../../schema-
|
|
1754
|
+
const { SchemaRegistry } = await import("../../../schema-BABiRdsH.mjs").then((n) => n.t);
|
|
1220
1755
|
await new SchemaRegistry(ec.db).deleteField(args.collection, args.fieldSlug);
|
|
1221
1756
|
return jsonResult({
|
|
1222
1757
|
deleted: args.fieldSlug,
|
|
@@ -1237,7 +1772,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1237
1772
|
const ec = getEmDash(extra);
|
|
1238
1773
|
const { collection, fieldSlug, ...input } = args;
|
|
1239
1774
|
try {
|
|
1240
|
-
const { handleSchemaFieldUpdate } = await import("../../../schema-
|
|
1775
|
+
const { handleSchemaFieldUpdate } = await import("../../../schema-Du3MzCG0.mjs").then((n) => n.h);
|
|
1241
1776
|
return unwrap(await handleSchemaFieldUpdate(ec.db, collection, fieldSlug, input));
|
|
1242
1777
|
} catch (error) {
|
|
1243
1778
|
return respondHandlerError(error, "SCHEMA_FIELD_UPDATE_ERROR");
|
|
@@ -1387,7 +1922,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1387
1922
|
};
|
|
1388
1923
|
} else input = { scope: "all" };
|
|
1389
1924
|
try {
|
|
1390
|
-
const { handleMediaUsageRepair } = await import("../../../media-usage-
|
|
1925
|
+
const { handleMediaUsageRepair } = await import("../../../media-usage-My-Vi-ex.mjs").then((n) => n.o);
|
|
1391
1926
|
return unwrap(await handleMediaUsageRepair(ec.db, input));
|
|
1392
1927
|
} catch (error) {
|
|
1393
1928
|
return respondHandlerError(error, "MEDIA_USAGE_REPAIR_ERROR");
|
|
@@ -1408,7 +1943,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1408
1943
|
requireScope(extra, "content:read");
|
|
1409
1944
|
const ec = getEmDash(extra);
|
|
1410
1945
|
try {
|
|
1411
|
-
const { searchWithDb } = await import("../../../search-
|
|
1946
|
+
const { searchWithDb } = await import("../../../search-Bt1PL1jf.mjs").then((n) => n.t);
|
|
1412
1947
|
return jsonResult(await searchWithDb(ec.db, args.query, {
|
|
1413
1948
|
collections: args.collections,
|
|
1414
1949
|
locale: args.locale,
|
|
@@ -1428,7 +1963,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1428
1963
|
requireScope(extra, "content:read");
|
|
1429
1964
|
const ec = getEmDash(extra);
|
|
1430
1965
|
try {
|
|
1431
|
-
const { handleTaxonomyList } = await import("../../../taxonomies-
|
|
1966
|
+
const { handleTaxonomyList } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1432
1967
|
return unwrap(await handleTaxonomyList(ec.db, { locale: args.locale }));
|
|
1433
1968
|
} catch (error) {
|
|
1434
1969
|
return respondHandlerError(error, "TAXONOMY_LIST_ERROR");
|
|
@@ -1446,7 +1981,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1446
1981
|
requireScope(extra, "content:read");
|
|
1447
1982
|
const ec = getEmDash(extra);
|
|
1448
1983
|
try {
|
|
1449
|
-
const { handleTaxonomyGet } = await import("../../../taxonomies-
|
|
1984
|
+
const { handleTaxonomyGet } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1450
1985
|
return unwrap(await handleTaxonomyGet(ec.db, args.name, { locale: args.locale }));
|
|
1451
1986
|
} catch (error) {
|
|
1452
1987
|
return respondHandlerError(error, "TAXONOMY_GET_ERROR");
|
|
@@ -1454,13 +1989,13 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1454
1989
|
});
|
|
1455
1990
|
server.registerTool("taxonomy_create", {
|
|
1456
1991
|
title: "Create Taxonomy Definition",
|
|
1457
|
-
description: "Create a
|
|
1992
|
+
description: "Create a taxonomy definition in one locale. `label` and `labelSingular` belong to that locale; `hierarchical` and `collections` belong to the taxonomy and are the same in every locale. `collections` names which content types the taxonomy applies to. A definition for a name that already exists in another locale joins that taxonomy and takes its `hierarchical` and `collections`; passing different values is an error (change them with taxonomy_update).",
|
|
1458
1993
|
inputSchema: z.object({
|
|
1459
1994
|
name: createTaxonomyDefBody.shape.name.describe("Taxonomy name (lowercase letters, numbers, underscores)"),
|
|
1460
1995
|
label: createTaxonomyDefBody.shape.label.describe("Display name"),
|
|
1461
1996
|
labelSingular: createTaxonomyDefBody.shape.labelSingular.describe("Singular form of the display name"),
|
|
1462
|
-
hierarchical: createTaxonomyDefBody.shape.hierarchical.describe("Whether the taxonomy supports parent/child terms (defaults to false
|
|
1463
|
-
collections: createTaxonomyDefBody.shape.collections.describe("Collection slugs this taxonomy applies to (defaults to []
|
|
1997
|
+
hierarchical: createTaxonomyDefBody.shape.hierarchical.describe("Whether the taxonomy supports parent/child terms, in every locale (defaults to false; must match when the taxonomy exists in another locale)"),
|
|
1998
|
+
collections: createTaxonomyDefBody.shape.collections.describe("Collection slugs this taxonomy applies to, in every locale (defaults to []; must match when the taxonomy exists in another locale)"),
|
|
1464
1999
|
locale: z.string().optional().describe("Locale for this definition (e.g. 'fr-fr')"),
|
|
1465
2000
|
translationOf: z.string().optional().describe("Existing taxonomy definition id to create this locale variant from")
|
|
1466
2001
|
})
|
|
@@ -1469,7 +2004,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1469
2004
|
requireRole(extra, Role.EDITOR);
|
|
1470
2005
|
const ec = getEmDash(extra);
|
|
1471
2006
|
try {
|
|
1472
|
-
const { handleTaxonomyCreate } = await import("../../../taxonomies-
|
|
2007
|
+
const { handleTaxonomyCreate } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1473
2008
|
return unwrapAndInvalidate(extra, await handleTaxonomyCreate(ec.db, {
|
|
1474
2009
|
name: args.name,
|
|
1475
2010
|
label: args.label,
|
|
@@ -1485,13 +2020,13 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1485
2020
|
});
|
|
1486
2021
|
server.registerTool("taxonomy_update", {
|
|
1487
2022
|
title: "Update Taxonomy Definition",
|
|
1488
|
-
description: "Update an existing taxonomy definition. The taxonomy `name` cannot be changed. Pass `locale` to update a specific translation
|
|
2023
|
+
description: "Update an existing taxonomy definition. The taxonomy `name` cannot be changed. Pass `locale` to update a specific translation's `label` and `labelSingular`; otherwise the lowest matching locale is updated. `hierarchical` and `collections` change for every locale. Any field may be omitted to leave it unchanged.",
|
|
1489
2024
|
inputSchema: z.object({
|
|
1490
2025
|
name: z.string().describe("Taxonomy name to update"),
|
|
1491
2026
|
label: updateTaxonomyDefBody.shape.label.describe("New display name"),
|
|
1492
2027
|
labelSingular: updateTaxonomyDefBody.shape.labelSingular.describe("New singular display name; pass null to clear"),
|
|
1493
|
-
hierarchical: updateTaxonomyDefBody.shape.hierarchical.describe("Whether the taxonomy supports parent/child terms"),
|
|
1494
|
-
collections: updateTaxonomyDefBody.shape.collections.describe("Collection slugs this taxonomy applies to"),
|
|
2028
|
+
hierarchical: updateTaxonomyDefBody.shape.hierarchical.describe("Whether the taxonomy supports parent/child terms, in every locale"),
|
|
2029
|
+
collections: updateTaxonomyDefBody.shape.collections.describe("Collection slugs this taxonomy applies to, in every locale"),
|
|
1495
2030
|
locale: z.string().optional().describe("Locale of the definition to update")
|
|
1496
2031
|
})
|
|
1497
2032
|
}, async (args, extra) => {
|
|
@@ -1499,7 +2034,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1499
2034
|
requireRole(extra, Role.EDITOR);
|
|
1500
2035
|
const ec = getEmDash(extra);
|
|
1501
2036
|
try {
|
|
1502
|
-
const { handleTaxonomyUpdate } = await import("../../../taxonomies-
|
|
2037
|
+
const { handleTaxonomyUpdate } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1503
2038
|
return unwrapAndInvalidate(extra, await handleTaxonomyUpdate(ec.db, args.name, {
|
|
1504
2039
|
label: args.label,
|
|
1505
2040
|
labelSingular: args.labelSingular,
|
|
@@ -1521,7 +2056,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1521
2056
|
requireRole(extra, Role.EDITOR);
|
|
1522
2057
|
const ec = getEmDash(extra);
|
|
1523
2058
|
try {
|
|
1524
|
-
const { handleTaxonomyDelete } = await import("../../../taxonomies-
|
|
2059
|
+
const { handleTaxonomyDelete } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1525
2060
|
return unwrapAndInvalidate(extra, await handleTaxonomyDelete(ec.db, args.name), [taxonomyTag(args.name)]);
|
|
1526
2061
|
} catch (error) {
|
|
1527
2062
|
return respondHandlerError(error, "TAXONOMY_DELETE_ERROR");
|
|
@@ -1541,11 +2076,11 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1541
2076
|
requireScope(extra, "content:read");
|
|
1542
2077
|
const ec = getEmDash(extra);
|
|
1543
2078
|
try {
|
|
1544
|
-
const { handleTaxonomyList } = await import("../../../taxonomies-
|
|
2079
|
+
const { handleTaxonomyList } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1545
2080
|
const listResult = await handleTaxonomyList(ec.db, { locale: args.locale });
|
|
1546
2081
|
if (!listResult.success) return unwrap(listResult);
|
|
1547
2082
|
if (!listResult.data.taxonomies.find((t) => t.name === args.taxonomy)) return respondError("NOT_FOUND", `Taxonomy '${args.taxonomy}' not found`);
|
|
1548
|
-
const { TaxonomyRepository } = await import("../../../taxonomy-
|
|
2083
|
+
const { TaxonomyRepository } = await import("../../../taxonomy-C3Fu1YeH.mjs").then((n) => n.n);
|
|
1549
2084
|
const repo = new TaxonomyRepository(ec.db);
|
|
1550
2085
|
const limit = Math.min(args.limit ?? 50, 100);
|
|
1551
2086
|
let cursor;
|
|
@@ -1599,14 +2134,14 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1599
2134
|
parentId: z.string().optional().describe("Parent term ID for hierarchical taxonomies"),
|
|
1600
2135
|
description: z.string().optional().describe("Description of the term"),
|
|
1601
2136
|
locale: z.string().optional().describe("Locale for the new term (e.g. 'es')"),
|
|
1602
|
-
translationOf: z.string().optional().describe("Term id to join as a translation (same translation_group)")
|
|
2137
|
+
translationOf: z.string().optional().describe("Term id to join as a translation (same translation_group). The new term takes that term's parent and position; a different parentId moves the term in every locale")
|
|
1603
2138
|
})
|
|
1604
2139
|
}, async (args, extra) => {
|
|
1605
2140
|
requireScope(extra, "taxonomies:manage");
|
|
1606
2141
|
requireRole(extra, Role.EDITOR);
|
|
1607
2142
|
const ec = getEmDash(extra);
|
|
1608
2143
|
try {
|
|
1609
|
-
const { handleTermCreate } = await import("../../../taxonomies-
|
|
2144
|
+
const { handleTermCreate } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1610
2145
|
return unwrapAndInvalidate(extra, await handleTermCreate(ec.db, args.taxonomy, {
|
|
1611
2146
|
slug: args.slug,
|
|
1612
2147
|
label: args.label,
|
|
@@ -1636,7 +2171,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1636
2171
|
requireRole(extra, Role.EDITOR);
|
|
1637
2172
|
const ec = getEmDash(extra);
|
|
1638
2173
|
try {
|
|
1639
|
-
const { handleTermUpdate } = await import("../../../taxonomies-
|
|
2174
|
+
const { handleTermUpdate } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1640
2175
|
return unwrapAndInvalidate(extra, await handleTermUpdate(ec.db, args.taxonomy, args.termSlug, {
|
|
1641
2176
|
slug: args.slug,
|
|
1642
2177
|
label: args.label,
|
|
@@ -1661,7 +2196,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1661
2196
|
requireRole(extra, Role.EDITOR);
|
|
1662
2197
|
const ec = getEmDash(extra);
|
|
1663
2198
|
try {
|
|
1664
|
-
const { handleTermDelete } = await import("../../../taxonomies-
|
|
2199
|
+
const { handleTermDelete } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1665
2200
|
return unwrapAndInvalidate(extra, await handleTermDelete(ec.db, args.taxonomy, args.termSlug, { locale: args.locale }), [taxonomyTag(args.taxonomy)]);
|
|
1666
2201
|
} catch (error) {
|
|
1667
2202
|
return respondHandlerError(error, "TAXONOMY_TERM_DELETE_ERROR");
|
|
@@ -1676,7 +2211,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1676
2211
|
requireScope(extra, "content:read");
|
|
1677
2212
|
const ec = getEmDash(extra);
|
|
1678
2213
|
try {
|
|
1679
|
-
const { handleTermTranslations } = await import("../../../taxonomies-
|
|
2214
|
+
const { handleTermTranslations } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1680
2215
|
return unwrap(await handleTermTranslations(ec.db, args.id));
|
|
1681
2216
|
} catch (error) {
|
|
1682
2217
|
return respondHandlerError(error, "TERM_TRANSLATIONS_ERROR");
|
|
@@ -1691,7 +2226,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1691
2226
|
requireScope(extra, "content:read");
|
|
1692
2227
|
const ec = getEmDash(extra);
|
|
1693
2228
|
try {
|
|
1694
|
-
const { handleMenuList } = await import("../../../menus-
|
|
2229
|
+
const { handleMenuList } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
|
|
1695
2230
|
return unwrap(await handleMenuList(ec.db, { locale: args.locale }));
|
|
1696
2231
|
} catch (error) {
|
|
1697
2232
|
return respondHandlerError(error, "MENU_LIST_ERROR");
|
|
@@ -1709,7 +2244,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1709
2244
|
requireScope(extra, "content:read");
|
|
1710
2245
|
const ec = getEmDash(extra);
|
|
1711
2246
|
try {
|
|
1712
|
-
const { handleMenuGet } = await import("../../../menus-
|
|
2247
|
+
const { handleMenuGet } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
|
|
1713
2248
|
return unwrap(await handleMenuGet(ec.db, args.name, { locale: args.locale }));
|
|
1714
2249
|
} catch (error) {
|
|
1715
2250
|
return respondHandlerError(error, "MENU_GET_ERROR");
|
|
@@ -1724,7 +2259,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1724
2259
|
requireScope(extra, "content:read");
|
|
1725
2260
|
const ec = getEmDash(extra);
|
|
1726
2261
|
try {
|
|
1727
|
-
const { handleMenuTranslations } = await import("../../../menus-
|
|
2262
|
+
const { handleMenuTranslations } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
|
|
1728
2263
|
return unwrap(await handleMenuTranslations(ec.db, args.id));
|
|
1729
2264
|
} catch (error) {
|
|
1730
2265
|
return respondHandlerError(error, "MENU_TRANSLATIONS_ERROR");
|
|
@@ -1744,7 +2279,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1744
2279
|
requireRole(extra, Role.EDITOR);
|
|
1745
2280
|
const ec = getEmDash(extra);
|
|
1746
2281
|
try {
|
|
1747
|
-
const { handleMenuCreate } = await import("../../../menus-
|
|
2282
|
+
const { handleMenuCreate } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
|
|
1748
2283
|
return unwrapAndInvalidate(extra, await handleMenuCreate(ec.db, {
|
|
1749
2284
|
name: args.name,
|
|
1750
2285
|
label: args.label,
|
|
@@ -1768,7 +2303,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1768
2303
|
requireRole(extra, Role.EDITOR);
|
|
1769
2304
|
const ec = getEmDash(extra);
|
|
1770
2305
|
try {
|
|
1771
|
-
const { handleMenuUpdate } = await import("../../../menus-
|
|
2306
|
+
const { handleMenuUpdate } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
|
|
1772
2307
|
return unwrapAndInvalidate(extra, await handleMenuUpdate(ec.db, args.name, {
|
|
1773
2308
|
label: args.label,
|
|
1774
2309
|
locale: args.locale
|
|
@@ -1790,7 +2325,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1790
2325
|
requireRole(extra, Role.EDITOR);
|
|
1791
2326
|
const ec = getEmDash(extra);
|
|
1792
2327
|
try {
|
|
1793
|
-
const { handleMenuDelete } = await import("../../../menus-
|
|
2328
|
+
const { handleMenuDelete } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
|
|
1794
2329
|
return unwrapAndInvalidate(extra, await handleMenuDelete(ec.db, args.name, { locale: args.locale }), [menuTag(args.name)]);
|
|
1795
2330
|
} catch (error) {
|
|
1796
2331
|
return respondHandlerError(error, "MENU_DELETE_ERROR");
|
|
@@ -1825,7 +2360,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1825
2360
|
requireRole(extra, Role.EDITOR);
|
|
1826
2361
|
const ec = getEmDash(extra);
|
|
1827
2362
|
try {
|
|
1828
|
-
const { handleMenuSetItems } = await import("../../../menus-
|
|
2363
|
+
const { handleMenuSetItems } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
|
|
1829
2364
|
return unwrapAndInvalidate(extra, await handleMenuSetItems(ec.db, args.name, args.items, { locale: args.locale }), [menuTag(args.name)]);
|
|
1830
2365
|
} catch (error) {
|
|
1831
2366
|
return respondHandlerError(error, "MENU_SET_ITEMS_ERROR");
|
|
@@ -1872,7 +2407,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1872
2407
|
requireRole(extra, Role.EDITOR);
|
|
1873
2408
|
const ec = getEmDash(extra);
|
|
1874
2409
|
try {
|
|
1875
|
-
const { handleSettingsGet } = await import("../../../settings-
|
|
2410
|
+
const { handleSettingsGet } = await import("../../../settings-2xNYr90o.mjs").then((n) => n.r);
|
|
1876
2411
|
return unwrap(await handleSettingsGet(ec.db, ec.storage));
|
|
1877
2412
|
} catch (error) {
|
|
1878
2413
|
return respondHandlerError(error, "SETTINGS_READ_ERROR");
|
|
@@ -1880,12 +2415,12 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1880
2415
|
});
|
|
1881
2416
|
server.registerTool("settings_update", {
|
|
1882
2417
|
title: "Update Site Settings",
|
|
1883
|
-
description: "Update one or more site-wide settings. This is a partial update: only the fields provided are changed; omitted fields are left as-is. Returns the full settings object after the update. To set a media reference (logo, favicon, seo.defaultOgImage), pass an object with `mediaId` (and optional `alt`) — the media item must already exist (use media_create first).",
|
|
2418
|
+
description: "Update one or more site-wide settings. This is a partial update: only the fields provided are changed; omitted fields are left as-is. Returns the full settings object after the update. To set a media reference (logo, favicon, seo.defaultOgImage), pass an object with `mediaId` (and optional `alt`) — the media item must already exist (use media_create first), or pass null to remove it.",
|
|
1884
2419
|
inputSchema: z.object({
|
|
1885
2420
|
title: z.string().optional().describe("Site title"),
|
|
1886
2421
|
tagline: z.string().optional().describe("Site tagline / short description"),
|
|
1887
|
-
logo: settingsMediaReferenceSchema.optional().describe("Logo media reference ({ mediaId, alt? })"),
|
|
1888
|
-
favicon: settingsMediaReferenceSchema.optional().describe("Favicon media reference ({ mediaId, alt? })"),
|
|
2422
|
+
logo: settingsMediaReferenceSchema.nullable().optional().describe("Logo media reference ({ mediaId, alt? }); null removes it"),
|
|
2423
|
+
favicon: settingsMediaReferenceSchema.nullable().optional().describe("Favicon media reference ({ mediaId, alt? }); null removes it"),
|
|
1889
2424
|
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."),
|
|
1890
2425
|
postsPerPage: z.number().int().min(1).max(100).optional().describe("Default page size for content listings"),
|
|
1891
2426
|
dateFormat: z.string().optional().describe("Date format token string"),
|
|
@@ -1898,12 +2433,126 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1898
2433
|
requireRole(extra, Role.ADMIN);
|
|
1899
2434
|
const ec = getEmDash(extra);
|
|
1900
2435
|
try {
|
|
1901
|
-
const { handleSettingsUpdate } = await import("../../../settings-
|
|
2436
|
+
const { handleSettingsUpdate } = await import("../../../settings-2xNYr90o.mjs").then((n) => n.r);
|
|
1902
2437
|
return unwrapAndInvalidate(extra, await handleSettingsUpdate(ec.db, ec.storage, args), [siteSettingsTag()]);
|
|
1903
2438
|
} catch (error) {
|
|
1904
2439
|
return respondHandlerError(error, "SETTINGS_UPDATE_ERROR");
|
|
1905
2440
|
}
|
|
1906
2441
|
});
|
|
2442
|
+
server.registerTool("site_transfer_capabilities", {
|
|
2443
|
+
title: "Get Site Transfer Capabilities",
|
|
2444
|
+
description: "Site package format versions, features, and limits this site supports, and whether it can receive an import (its portable content is empty) with the reasons it cannot. Requires any transfer scope (transfer:export, transfer:analyze, or transfer:execute).",
|
|
2445
|
+
inputSchema: z.object({}),
|
|
2446
|
+
annotations: { readOnlyHint: true }
|
|
2447
|
+
}, async (_args, extra) => {
|
|
2448
|
+
requireRole(extra, Role.ADMIN);
|
|
2449
|
+
requireTransferScope(extra, "transfer:*");
|
|
2450
|
+
return unwrap(await transferCapabilities(transferContext(extra)));
|
|
2451
|
+
});
|
|
2452
|
+
server.registerTool("site_export_start", {
|
|
2453
|
+
title: "Start Site Export",
|
|
2454
|
+
description: "Start exporting the whole site as a portable site package (schema, content, media, settings; never users, credentials, or secrets). Returns the operation id and status only; drive it with site_export_status. The package itself is downloaded outside MCP, from the admin or the CLI. Requires the transfer:export scope. " + APPROVAL_FLOW_DESCRIPTION,
|
|
2455
|
+
inputSchema: z.object({
|
|
2456
|
+
comments: z.boolean().optional().describe("Include comments and reactions (default true)"),
|
|
2457
|
+
approvalId: transferApprovalIdSchema.optional()
|
|
2458
|
+
})
|
|
2459
|
+
}, async (args, extra) => {
|
|
2460
|
+
requireRole(extra, Role.ADMIN);
|
|
2461
|
+
const scoped = transferScopeHeld(extra, "transfer:export");
|
|
2462
|
+
const { userId, tokenId } = getExtra(extra);
|
|
2463
|
+
return unwrap(await startExport(transferContext(extra), {
|
|
2464
|
+
userId,
|
|
2465
|
+
tokenId
|
|
2466
|
+
}, {
|
|
2467
|
+
...args,
|
|
2468
|
+
scoped
|
|
2469
|
+
}));
|
|
2470
|
+
});
|
|
2471
|
+
server.registerTool("site_export_status", {
|
|
2472
|
+
title: "Get Site Export Status",
|
|
2473
|
+
description: "Report an export's state, stage, and progress, and once it is complete its package digest and record and media totals. By default each call also runs one bounded export step, so call it repeatedly until nextRequestInMs is null; pass advance: false to only read. Requires the transfer:export scope, or the approval that started this export (same token).",
|
|
2474
|
+
inputSchema: z.object({
|
|
2475
|
+
operationId: transferOperationIdSchema,
|
|
2476
|
+
advance: z.boolean().optional().describe("Run one bounded export step before reporting (default true)")
|
|
2477
|
+
})
|
|
2478
|
+
}, async (args, extra) => {
|
|
2479
|
+
requireRole(extra, Role.ADMIN);
|
|
2480
|
+
await requireTransferAccess(extra, "transfer:export", "export", args.operationId);
|
|
2481
|
+
return unwrap(await exportStatus(transferContext(extra), {
|
|
2482
|
+
operationId: args.operationId,
|
|
2483
|
+
advance: args.advance ?? true
|
|
2484
|
+
}));
|
|
2485
|
+
});
|
|
2486
|
+
server.registerTool("site_import_analyze", {
|
|
2487
|
+
title: "Analyze Site Import",
|
|
2488
|
+
description: "Validate an uploaded site package against this site and produce an import plan. The package must already be uploaded over HTTP, from the admin or the CLI; MCP never carries package bytes. Each call runs one bounded analysis step: repeat until nextRequestInMs is null, then read plan (counts, principals with suggested user mappings, warnings, blockers, packageDigest, planDigest). Pass decisions to map principals or keep this site's title and tagline; that produces a new planDigest. Principal emails are never returned. Writes no site content. Requires the transfer:analyze scope.",
|
|
2489
|
+
inputSchema: z.object({
|
|
2490
|
+
operationId: transferOperationIdSchema,
|
|
2491
|
+
decisions: siteImportDecisionsInputSchema.optional().describe("principalMappings (principal id to target user id, or null to drop the reference) and siteTitle / siteTagline ('package' or 'target'). Omitted values keep the plan defaults.")
|
|
2492
|
+
})
|
|
2493
|
+
}, async (args, extra) => {
|
|
2494
|
+
requireRole(extra, Role.ADMIN);
|
|
2495
|
+
requireTransferScope(extra, "transfer:analyze");
|
|
2496
|
+
return unwrap(await analyzeImport(transferContext(extra), args));
|
|
2497
|
+
});
|
|
2498
|
+
server.registerTool("site_import_start", {
|
|
2499
|
+
title: "Start Site Import",
|
|
2500
|
+
description: "Start importing an analyzed package into this site. packageDigest and planDigest must be the values from the latest site_import_analyze plan, which must have no blockers. Returns the operation id and status; drive it with site_import_resume. The site refuses ordinary content writes until the import completes or an admin abandons it. Requires the transfer:execute scope. " + APPROVAL_FLOW_DESCRIPTION,
|
|
2501
|
+
inputSchema: z.object({
|
|
2502
|
+
operationId: transferOperationIdSchema,
|
|
2503
|
+
packageDigest: z.string().regex(SHA256_DIGEST_PATTERN, "Expected sha256:<64 hex>").describe("Package digest from the plan"),
|
|
2504
|
+
planDigest: z.string().regex(SHA256_DIGEST_PATTERN, "Expected sha256:<64 hex>").describe("Plan digest from the latest analysis"),
|
|
2505
|
+
approvalId: transferApprovalIdSchema.optional()
|
|
2506
|
+
}),
|
|
2507
|
+
annotations: { destructiveHint: true }
|
|
2508
|
+
}, async (args, extra) => {
|
|
2509
|
+
requireRole(extra, Role.ADMIN);
|
|
2510
|
+
const scoped = transferScopeHeld(extra, "transfer:execute");
|
|
2511
|
+
const { userId, tokenId } = getExtra(extra);
|
|
2512
|
+
return unwrap(await startImport(transferContext(extra), {
|
|
2513
|
+
userId,
|
|
2514
|
+
tokenId
|
|
2515
|
+
}, {
|
|
2516
|
+
operationId: args.operationId,
|
|
2517
|
+
packageDigest: transferDigest(args.packageDigest),
|
|
2518
|
+
planDigest: transferDigest(args.planDigest),
|
|
2519
|
+
approvalId: args.approvalId,
|
|
2520
|
+
scoped
|
|
2521
|
+
}));
|
|
2522
|
+
});
|
|
2523
|
+
server.registerTool("site_import_status", {
|
|
2524
|
+
title: "Get Site Import Status",
|
|
2525
|
+
description: "Report an import's state, stage, progress, digests, and uploaded file counts. Does not advance the import. Requires any transfer scope, or the approval that started this import (same token).",
|
|
2526
|
+
inputSchema: z.object({ operationId: transferOperationIdSchema }),
|
|
2527
|
+
annotations: { readOnlyHint: true }
|
|
2528
|
+
}, async (args, extra) => {
|
|
2529
|
+
requireRole(extra, Role.ADMIN);
|
|
2530
|
+
await requireTransferAccess(extra, "transfer:*", "import", args.operationId);
|
|
2531
|
+
return unwrap(await importStatus(transferContext(extra), args.operationId));
|
|
2532
|
+
});
|
|
2533
|
+
server.registerTool("site_import_resume", {
|
|
2534
|
+
title: "Resume Site Import",
|
|
2535
|
+
description: "Run one bounded step of a started import and report its status. Call repeatedly until nextRequestInMs is null; safe to repeat after a disconnect. Requires the transfer:execute scope, or the approval that started this import (same token).",
|
|
2536
|
+
inputSchema: z.object({ operationId: transferOperationIdSchema })
|
|
2537
|
+
}, async (args, extra) => {
|
|
2538
|
+
requireRole(extra, Role.ADMIN);
|
|
2539
|
+
await requireTransferAccess(extra, "transfer:execute", "import", args.operationId);
|
|
2540
|
+
const { userId, tokenId } = getExtra(extra);
|
|
2541
|
+
return unwrap(await resumeImport(transferContext(extra), {
|
|
2542
|
+
userId,
|
|
2543
|
+
tokenId
|
|
2544
|
+
}, args.operationId));
|
|
2545
|
+
});
|
|
2546
|
+
server.registerTool("site_import_receipt", {
|
|
2547
|
+
title: "Get Site Import Receipt",
|
|
2548
|
+
description: "Return the verified receipt of a completed import: package and plan digests, origin and target site ids, logical digest, record counts, warnings, and the receipt's own digest. Requires any transfer scope, or the approval that started this import (same token).",
|
|
2549
|
+
inputSchema: z.object({ operationId: transferOperationIdSchema }),
|
|
2550
|
+
annotations: { readOnlyHint: true }
|
|
2551
|
+
}, async (args, extra) => {
|
|
2552
|
+
requireRole(extra, Role.ADMIN);
|
|
2553
|
+
await requireTransferAccess(extra, "transfer:*", "import", args.operationId);
|
|
2554
|
+
return unwrap(await importReceipt(transferContext(extra), args.operationId));
|
|
2555
|
+
});
|
|
1907
2556
|
return server;
|
|
1908
2557
|
}
|
|
1909
2558
|
|
|
@@ -1940,6 +2589,7 @@ const POST = async ({ request, locals, cache }) => {
|
|
|
1940
2589
|
userId: user.id,
|
|
1941
2590
|
userRole: user.role,
|
|
1942
2591
|
tokenScopes: locals.tokenScopes,
|
|
2592
|
+
tokenId: locals.tokenId,
|
|
1943
2593
|
cache
|
|
1944
2594
|
}
|
|
1945
2595
|
} });
|