emdash 0.39.1 → 0.40.1
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-CuyNEHZG.mjs +4718 -0
- package/dist/api-CuyNEHZG.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-npY1TAhG.mjs +1366 -0
- package/dist/apply-npY1TAhG.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 +68 -18
- 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 +130 -123
- 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 -62
- 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 -61
- 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 -64
- 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 -74
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/index.mjs +72 -62
- 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 -61
- 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 -73
- 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 -61
- 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 -64
- 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 -75
- 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 -66
- 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 -62
- package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/updates.mjs +71 -61
- 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 -61
- 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 -61
- 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 +724 -94
- 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 -61
- 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 -61
- 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 -61
- 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 -61
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/index.mjs +71 -61
- package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/reorder.mjs +71 -61
- 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 -61
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/schema/orphans/index.mjs +71 -61
- 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.d.mts.map +1 -1
- package/dist/astro/routes/api/setup/index.mjs +78 -43
- 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 +11 -9
- 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 +25 -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-BQRj3afm.mjs +246 -0
- package/dist/backup-BQRj3afm.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-BjEm_3xL.d.mts +6537 -0
- package/dist/config-BjEm_3xL.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-BV_7t-Ua.mjs +1921 -0
- package/dist/context-BV_7t-Ua.mjs.map +1 -0
- package/dist/cron-7DCJwPXq.mjs +284 -0
- package/dist/cron-7DCJwPXq.mjs.map +1 -0
- package/dist/dashboard-BP-iJqpd.mjs +151 -0
- package/dist/dashboard-BP-iJqpd.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-D2lNadwo.mjs +104 -0
- package/dist/direct-executor-D2lNadwo.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-CtfnZmPi.mjs +4186 -0
- package/dist/emdash-runtime-CtfnZmPi.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-Cf5OoIgN.d.mts +4368 -0
- package/dist/entry-lock-Cf5OoIgN.d.mts.map +1 -0
- package/dist/entry-lock-DHQOxN7R.mjs +163 -0
- package/dist/entry-lock-DHQOxN7R.mjs.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-CbVI4paR.mjs +105 -0
- package/dist/hreflang-CbVI4paR.mjs.map +1 -0
- package/dist/hreflang-D5uNnsGJ.d.mts +50 -0
- package/dist/hreflang-D5uNnsGJ.d.mts.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-Be5kzutJ.mjs +35 -0
- package/dist/identity-Be5kzutJ.mjs.map +1 -0
- package/dist/import-YzfKCaco.mjs +2020 -0
- package/dist/import-YzfKCaco.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-BmSAOOEF.mjs +189 -0
- package/dist/manifest-builder-BmSAOOEF.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-CPXTbb1R.mjs +373 -0
- package/dist/media-CPXTbb1R.mjs.map +1 -0
- package/dist/media-JXRWDhw3.mjs +294 -0
- package/dist/media-JXRWDhw3.mjs.map +1 -0
- package/dist/media-Pu1L6xir.mjs +408 -0
- package/dist/media-Pu1L6xir.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-url-jArBpzIG.mjs +43 -0
- package/dist/media-url-jArBpzIG.mjs.map +1 -0
- package/dist/media-usage-De-zeR9E.mjs +1629 -0
- package/dist/media-usage-De-zeR9E.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-Cm68rsAq.mjs +3608 -0
- package/dist/menus-Cm68rsAq.mjs.map +1 -0
- package/dist/menus-ITeAbcIF.mjs +753 -0
- package/dist/menus-ITeAbcIF.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 -100
- 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-B29UjdUn.mjs +411 -0
- package/dist/redirect-B29UjdUn.mjs.map +1 -0
- package/dist/redirect-Cd1E7VUt.mjs +17 -0
- package/dist/redirect-Cd1E7VUt.mjs.map +1 -0
- package/dist/redirects-Ca2MPfEG.mjs +446 -0
- package/dist/redirects-Ca2MPfEG.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-vrR95WR6.mjs +272 -0
- package/dist/routes-vrR95WR6.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-B4vDl1fK.mjs +439 -0
- package/dist/settings-B4vDl1fK.mjs.map +1 -0
- package/dist/settings-DYidIB26.mjs +61 -0
- package/dist/settings-DYidIB26.mjs.map +1 -0
- package/dist/settings-Dyj6v8C4.mjs +51 -0
- package/dist/settings-Dyj6v8C4.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-PawoX-WG.mjs +414 -0
- package/dist/snapshot-PawoX-WG.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-FXJH5pI8.d.mts +1581 -0
- package/dist/storage-query-FXJH5pI8.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-DIGvR9Af.mjs +166 -0
- package/dist/transfer-DIGvR9Af.mjs.map +1 -0
- package/dist/transfer-DgeCvHnj.mjs +8675 -0
- package/dist/transfer-DgeCvHnj.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-DXsxRrob.mjs +7 -0
- package/dist/version-DXsxRrob.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 +11 -0
- package/src/api/handlers/manifest.ts +8 -1
- package/src/api/handlers/marketplace.ts +22 -16
- package/src/api/handlers/media-upload.ts +17 -71
- package/src/api/handlers/media-usage.ts +31 -12
- package/src/api/handlers/media.ts +112 -13
- package/src/api/handlers/schema.ts +33 -8
- package/src/api/handlers/settings.ts +2 -2
- package/src/api/handlers/snapshot.ts +261 -3
- 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 +36 -4
- 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 +39 -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/setup/index.ts +66 -23
- package/src/astro/routes/api/snapshot.ts +2 -1
- 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 +9 -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 +24 -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/Columns.astro +3 -1
- package/src/components/Cover.astro +3 -1
- 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/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 +72 -2
- package/src/database/repositories/options.ts +12 -0
- package/src/database/repositories/redirect.ts +17 -34
- 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 +315 -51
- package/src/import/utils.ts +8 -1
- package/src/import/wxr-taxonomies.ts +11 -67
- package/src/index.ts +27 -1
- package/src/loader.ts +9 -5
- package/src/mcp/server.ts +533 -76
- 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 +493 -88
- 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-BB5BoQbN.mjs +0 -4831
- package/dist/api-BB5BoQbN.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-CsKm_5S5.mjs +0 -1005
- package/dist/apply-CsKm_5S5.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-B4tByjBb.mjs +0 -246
- package/dist/backup-B4tByjBb.mjs.map +0 -1
- package/dist/byline-C8ndlnP0.mjs +0 -906
- package/dist/byline-C8ndlnP0.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-CHP44GkL.mjs +0 -232
- package/dist/bylines-CHP44GkL.mjs.map +0 -1
- package/dist/bylines-DxjM4Usz.mjs +0 -214
- package/dist/bylines-DxjM4Usz.mjs.map +0 -1
- package/dist/cache-BByLKGPu.mjs +0 -108
- package/dist/cache-BByLKGPu.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-DUK-cWXi.mjs +0 -25
- package/dist/chunks-DUK-cWXi.mjs.map +0 -1
- package/dist/collection-deletion-C-yQB9fq.mjs +0 -436
- package/dist/collection-deletion-C-yQB9fq.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-B6KHCLYK.mjs +0 -85
- package/dist/comment-reaction-B6KHCLYK.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-Cw1Xz_Br.d.mts +0 -6387
- package/dist/config-Cw1Xz_Br.d.mts.map +0 -1
- package/dist/config-D3HhLON3.d.mts +0 -39
- package/dist/config-D3HhLON3.d.mts.map +0 -1
- package/dist/content-C0Hl3ktM.mjs +0 -2216
- package/dist/content-C0Hl3ktM.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-iRBhQHr5.mjs +0 -3599
- package/dist/content-refresh-iRBhQHr5.mjs.map +0 -1
- package/dist/content-repair-8uHRIJkd.mjs +0 -440
- package/dist/content-repair-8uHRIJkd.mjs.map +0 -1
- package/dist/context-DJP3aNeR.mjs +0 -1835
- package/dist/context-DJP3aNeR.mjs.map +0 -1
- package/dist/cron-BcR3RN4K.mjs +0 -282
- package/dist/cron-BcR3RN4K.mjs.map +0 -1
- package/dist/dashboard-B0s6QKgi.mjs +0 -151
- package/dist/dashboard-B0s6QKgi.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-CDr1quOq.mjs +0 -104
- package/dist/direct-executor-CDr1quOq.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-CxxL05Z0.mjs +0 -4041
- package/dist/emdash-runtime-CxxL05Z0.mjs.map +0 -1
- package/dist/enrich-C2Mk0lwE.mjs +0 -194
- package/dist/enrich-C2Mk0lwE.mjs.map +0 -1
- package/dist/entry-lock-CwWdnFyR.mjs +0 -1520
- package/dist/entry-lock-CwWdnFyR.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-DqkvBC6L.d.mts +0 -3503
- package/dist/entry-lock-DqkvBC6L.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-Db0pJgqn.mjs +0 -77
- package/dist/field-defs-cache-Db0pJgqn.mjs.map +0 -1
- package/dist/fts-manager-CjX0e5BR.mjs +0 -413
- package/dist/fts-manager-CjX0e5BR.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-DOQeTXpg.mjs +0 -105
- package/dist/hreflang-DOQeTXpg.mjs.map +0 -1
- package/dist/http-route-dispatch-MCVKiQCl.mjs +0 -339
- package/dist/http-route-dispatch-MCVKiQCl.mjs.map +0 -1
- package/dist/identity-vFbpuwfY.mjs +0 -35
- package/dist/identity-vFbpuwfY.mjs.map +0 -1
- package/dist/import-got6I69S.mjs +0 -2020
- package/dist/import-got6I69S.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-C56XiwbV.mjs +0 -28
- package/dist/load-C56XiwbV.mjs.map +0 -1
- package/dist/loader-xhNQiT9T.mjs +0 -1004
- package/dist/loader-xhNQiT9T.mjs.map +0 -1
- package/dist/manifest-builder-Bz3nxVET.mjs +0 -189
- package/dist/manifest-builder-Bz3nxVET.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-Bd9rFPKN.mjs +0 -1833
- package/dist/media-usage-Bd9rFPKN.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-BPlRMOJv.mjs +0 -152
- package/dist/media-usage-work-BPlRMOJv.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-write-fence-DW5oHT7q.mjs +0 -42
- package/dist/media-usage-write-fence-DW5oHT7q.mjs.map +0 -1
- package/dist/menus-BUQdvXep.mjs +0 -3732
- package/dist/menus-BUQdvXep.mjs.map +0 -1
- package/dist/menus-DgSUodmF.mjs +0 -753
- package/dist/menus-DgSUodmF.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-pL9QLKZm.mjs +0 -45
- package/dist/policy-pL9QLKZm.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-CxnFU6sz.mjs +0 -890
- package/dist/query-CxnFU6sz.mjs.map +0 -1
- package/dist/query-sgHYEgBW.mjs +0 -41
- package/dist/query-sgHYEgBW.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-CAoL3r26.mjs +0 -644
- package/dist/redirects-CAoL3r26.mjs.map +0 -1
- package/dist/registry-xKzE-_m5.mjs +0 -1222
- package/dist/registry-xKzE-_m5.mjs.map +0 -1
- package/dist/relation-ClsWcYg2.mjs +0 -334
- package/dist/relation-ClsWcYg2.mjs.map +0 -1
- package/dist/relations-B4w-G5U9.mjs +0 -309
- package/dist/relations-B4w-G5U9.mjs.map +0 -1
- package/dist/relations-C3Td_mct.mjs +0 -403
- package/dist/relations-C3Td_mct.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-CWzxcZpn.mjs +0 -321
- package/dist/routes-CWzxcZpn.mjs.map +0 -1
- package/dist/runner-3gfxRsJG.d.mts +0 -68
- package/dist/runner-3gfxRsJG.d.mts.map +0 -1
- package/dist/runner-CIltKk4i.mjs +0 -5502
- package/dist/runner-CIltKk4i.mjs.map +0 -1
- package/dist/schema-DQIE9Htn.mjs +0 -420
- package/dist/schema-DQIE9Htn.mjs.map +0 -1
- package/dist/schema-ILPFMPW3.mjs +0 -9
- package/dist/schema-ILPFMPW3.mjs.map +0 -1
- package/dist/scopes-Bn8_rCSt.mjs +0 -27
- package/dist/scopes-Bn8_rCSt.mjs.map +0 -1
- package/dist/search-D6muneha.mjs +0 -448
- package/dist/search-D6muneha.mjs.map +0 -1
- package/dist/secrets-DNgVgz_e.mjs +0 -341
- package/dist/secrets-DNgVgz_e.mjs.map +0 -1
- package/dist/sections-BPCEGYWd.mjs +0 -346
- package/dist/sections-BPCEGYWd.mjs.map +0 -1
- package/dist/seo-BtU70b7l.mjs +0 -114
- package/dist/seo-BtU70b7l.mjs.map +0 -1
- package/dist/seo-rCk6pDwT.mjs +0 -133
- package/dist/seo-rCk6pDwT.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-CsoLiwpL.mjs +0 -420
- package/dist/settings-CsoLiwpL.mjs.map +0 -1
- package/dist/settings-DCnWtfSZ.mjs +0 -51
- package/dist/settings-DCnWtfSZ.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-Bs5dJVDJ.mjs +0 -899
- package/dist/taxonomies-Bs5dJVDJ.mjs.map +0 -1
- package/dist/taxonomies-DjGU22ur.mjs +0 -707
- package/dist/taxonomies-DjGU22ur.mjs.map +0 -1
- package/dist/taxonomy-c1Q8PMFF.mjs +0 -508
- package/dist/taxonomy-c1Q8PMFF.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-2R1gceFl.mjs +0 -171
- package/dist/user-2R1gceFl.mjs.map +0 -1
- package/dist/utils-CC2oNGV8.mjs +0 -435
- package/dist/utils-CC2oNGV8.mjs.map +0 -1
- package/dist/validate-CaFSi_Wa.mjs +0 -384
- package/dist/validate-CaFSi_Wa.mjs.map +0 -1
- package/dist/validate-CyQ7I3xF.d.mts +0 -410
- package/dist/validate-CyQ7I3xF.d.mts.map +0 -1
- package/dist/validation-nsX2uixg.mjs +0 -216
- package/dist/validation-nsX2uixg.mjs.map +0 -1
- package/dist/version-DGh4SL8e.mjs +0 -7
- package/dist/version-DGh4SL8e.mjs.map +0 -1
- package/dist/widgets-B7ued6f5.mjs +0 -126
- package/dist/widgets-B7ued6f5.mjs.map +0 -1
- package/dist/wxr-taxonomies-BtH3jYSg.mjs +0 -406
- package/dist/wxr-taxonomies-BtH3jYSg.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-DuBjYyrI.mjs +0 -329
- package/dist/zod-generator-DuBjYyrI.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-CPXTbb1R.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-B4vDl1fK.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-DgeCvHnj.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");
|
|
@@ -1261,44 +1796,25 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1261
1796
|
}));
|
|
1262
1797
|
});
|
|
1263
1798
|
server.registerTool("media_create", {
|
|
1264
|
-
title: "
|
|
1265
|
-
description: "
|
|
1266
|
-
inputSchema: z.object({
|
|
1267
|
-
filename: z.string().describe("Original filename (e.g. 'logo.png')"),
|
|
1268
|
-
mimeType: z.string().describe("MIME type (e.g. 'image/png')"),
|
|
1269
|
-
storageKey: z.string().describe("Storage path/key the file was uploaded to"),
|
|
1270
|
-
size: z.number().int().nonnegative().optional().describe("File size in bytes"),
|
|
1271
|
-
width: z.number().int().positive().optional().describe("Image width in pixels"),
|
|
1272
|
-
height: z.number().int().positive().optional().describe("Image height in pixels"),
|
|
1273
|
-
contentHash: z.string().optional().describe("Hash of the file contents (for dedupe)"),
|
|
1274
|
-
blurhash: z.string().optional().describe("Blurhash for image placeholders"),
|
|
1275
|
-
dominantColor: z.string().optional().describe("Hex color string for the image's dominant color")
|
|
1276
|
-
})
|
|
1799
|
+
title: "Confirm Signed Media Upload",
|
|
1800
|
+
description: "Confirm a file after uploading it with a signed URL obtained from POST /_emdash/api/media/upload-url. `storageKey` must be the key returned for the same user. Confirmation checks that the stored file exists and matches the size fixed when the URL was issued, then makes it available through media_list / media_get. To upload through MCP, use media_upload instead.",
|
|
1801
|
+
inputSchema: z.object({ storageKey: z.string().describe("Storage key returned by the signed upload URL request") })
|
|
1277
1802
|
}, async (args, extra) => {
|
|
1278
1803
|
requireScope(extra, "media:write");
|
|
1279
1804
|
requireRole(extra, Role.AUTHOR);
|
|
1280
1805
|
const { emdash, userId } = getExtra(extra);
|
|
1281
|
-
return unwrap(await emdash.
|
|
1282
|
-
filename: args.filename,
|
|
1283
|
-
mimeType: args.mimeType,
|
|
1806
|
+
return unwrap(await emdash.handleMediaRegisterUpload({
|
|
1284
1807
|
storageKey: args.storageKey,
|
|
1285
|
-
size: args.size,
|
|
1286
|
-
width: args.width,
|
|
1287
|
-
height: args.height,
|
|
1288
|
-
contentHash: args.contentHash,
|
|
1289
|
-
blurhash: args.blurhash,
|
|
1290
|
-
dominantColor: args.dominantColor,
|
|
1291
1808
|
authorId: userId
|
|
1292
1809
|
}));
|
|
1293
1810
|
});
|
|
1294
1811
|
server.registerTool("media_upload", {
|
|
1295
1812
|
title: "Upload Media",
|
|
1296
|
-
description: "Upload a media file from base64-encoded data
|
|
1813
|
+
description: "Upload a media file from base64-encoded data and register it in the media library. Returns the media item with id, storageKey, and url — ready to reference from content fields (e.g. featured_image) via content_create / content_update. Uploads are deduplicated by content hash: re-uploading identical bytes returns the existing item with deduplicated: true. Subject to the global upload MIME allowlist and the configured maximum upload size.",
|
|
1297
1814
|
inputSchema: z.object({
|
|
1298
1815
|
filename: z.string().min(1).describe("Filename including extension (e.g. 'cover.png')"),
|
|
1299
|
-
base64: z.string().
|
|
1300
|
-
|
|
1301
|
-
contentType: z.string().regex(CONTENT_TYPE_RE, "Invalid content type").optional().describe("MIME type (e.g. 'image/png'). Required with base64; with url it defaults to the response's Content-Type header."),
|
|
1816
|
+
base64: z.string().describe("Base64-encoded file contents."),
|
|
1817
|
+
contentType: z.string().regex(CONTENT_TYPE_RE, "Invalid content type").describe("MIME type (e.g. 'image/png')."),
|
|
1302
1818
|
alt: z.string().optional().describe("Alt text for accessibility")
|
|
1303
1819
|
}),
|
|
1304
1820
|
annotations: { destructiveHint: false }
|
|
@@ -1311,7 +1827,6 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1311
1827
|
return unwrap(await emdash.handleMediaUpload({
|
|
1312
1828
|
filename: args.filename,
|
|
1313
1829
|
base64: args.base64,
|
|
1314
|
-
url: args.url,
|
|
1315
1830
|
contentType: args.contentType,
|
|
1316
1831
|
alt: args.alt,
|
|
1317
1832
|
authorId: userId,
|
|
@@ -1387,7 +1902,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1387
1902
|
};
|
|
1388
1903
|
} else input = { scope: "all" };
|
|
1389
1904
|
try {
|
|
1390
|
-
const { handleMediaUsageRepair } = await import("../../../media-usage-
|
|
1905
|
+
const { handleMediaUsageRepair } = await import("../../../media-usage-De-zeR9E.mjs").then((n) => n.o);
|
|
1391
1906
|
return unwrap(await handleMediaUsageRepair(ec.db, input));
|
|
1392
1907
|
} catch (error) {
|
|
1393
1908
|
return respondHandlerError(error, "MEDIA_USAGE_REPAIR_ERROR");
|
|
@@ -1408,7 +1923,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1408
1923
|
requireScope(extra, "content:read");
|
|
1409
1924
|
const ec = getEmDash(extra);
|
|
1410
1925
|
try {
|
|
1411
|
-
const { searchWithDb } = await import("../../../search-
|
|
1926
|
+
const { searchWithDb } = await import("../../../search-Bt1PL1jf.mjs").then((n) => n.t);
|
|
1412
1927
|
return jsonResult(await searchWithDb(ec.db, args.query, {
|
|
1413
1928
|
collections: args.collections,
|
|
1414
1929
|
locale: args.locale,
|
|
@@ -1428,7 +1943,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1428
1943
|
requireScope(extra, "content:read");
|
|
1429
1944
|
const ec = getEmDash(extra);
|
|
1430
1945
|
try {
|
|
1431
|
-
const { handleTaxonomyList } = await import("../../../taxonomies-
|
|
1946
|
+
const { handleTaxonomyList } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1432
1947
|
return unwrap(await handleTaxonomyList(ec.db, { locale: args.locale }));
|
|
1433
1948
|
} catch (error) {
|
|
1434
1949
|
return respondHandlerError(error, "TAXONOMY_LIST_ERROR");
|
|
@@ -1446,7 +1961,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1446
1961
|
requireScope(extra, "content:read");
|
|
1447
1962
|
const ec = getEmDash(extra);
|
|
1448
1963
|
try {
|
|
1449
|
-
const { handleTaxonomyGet } = await import("../../../taxonomies-
|
|
1964
|
+
const { handleTaxonomyGet } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1450
1965
|
return unwrap(await handleTaxonomyGet(ec.db, args.name, { locale: args.locale }));
|
|
1451
1966
|
} catch (error) {
|
|
1452
1967
|
return respondHandlerError(error, "TAXONOMY_GET_ERROR");
|
|
@@ -1454,13 +1969,13 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1454
1969
|
});
|
|
1455
1970
|
server.registerTool("taxonomy_create", {
|
|
1456
1971
|
title: "Create Taxonomy Definition",
|
|
1457
|
-
description: "Create a
|
|
1972
|
+
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
1973
|
inputSchema: z.object({
|
|
1459
1974
|
name: createTaxonomyDefBody.shape.name.describe("Taxonomy name (lowercase letters, numbers, underscores)"),
|
|
1460
1975
|
label: createTaxonomyDefBody.shape.label.describe("Display name"),
|
|
1461
1976
|
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 []
|
|
1977
|
+
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)"),
|
|
1978
|
+
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
1979
|
locale: z.string().optional().describe("Locale for this definition (e.g. 'fr-fr')"),
|
|
1465
1980
|
translationOf: z.string().optional().describe("Existing taxonomy definition id to create this locale variant from")
|
|
1466
1981
|
})
|
|
@@ -1469,7 +1984,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1469
1984
|
requireRole(extra, Role.EDITOR);
|
|
1470
1985
|
const ec = getEmDash(extra);
|
|
1471
1986
|
try {
|
|
1472
|
-
const { handleTaxonomyCreate } = await import("../../../taxonomies-
|
|
1987
|
+
const { handleTaxonomyCreate } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1473
1988
|
return unwrapAndInvalidate(extra, await handleTaxonomyCreate(ec.db, {
|
|
1474
1989
|
name: args.name,
|
|
1475
1990
|
label: args.label,
|
|
@@ -1485,13 +2000,13 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1485
2000
|
});
|
|
1486
2001
|
server.registerTool("taxonomy_update", {
|
|
1487
2002
|
title: "Update Taxonomy Definition",
|
|
1488
|
-
description: "Update an existing taxonomy definition. The taxonomy `name` cannot be changed. Pass `locale` to update a specific translation
|
|
2003
|
+
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
2004
|
inputSchema: z.object({
|
|
1490
2005
|
name: z.string().describe("Taxonomy name to update"),
|
|
1491
2006
|
label: updateTaxonomyDefBody.shape.label.describe("New display name"),
|
|
1492
2007
|
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"),
|
|
2008
|
+
hierarchical: updateTaxonomyDefBody.shape.hierarchical.describe("Whether the taxonomy supports parent/child terms, in every locale"),
|
|
2009
|
+
collections: updateTaxonomyDefBody.shape.collections.describe("Collection slugs this taxonomy applies to, in every locale"),
|
|
1495
2010
|
locale: z.string().optional().describe("Locale of the definition to update")
|
|
1496
2011
|
})
|
|
1497
2012
|
}, async (args, extra) => {
|
|
@@ -1499,7 +2014,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1499
2014
|
requireRole(extra, Role.EDITOR);
|
|
1500
2015
|
const ec = getEmDash(extra);
|
|
1501
2016
|
try {
|
|
1502
|
-
const { handleTaxonomyUpdate } = await import("../../../taxonomies-
|
|
2017
|
+
const { handleTaxonomyUpdate } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1503
2018
|
return unwrapAndInvalidate(extra, await handleTaxonomyUpdate(ec.db, args.name, {
|
|
1504
2019
|
label: args.label,
|
|
1505
2020
|
labelSingular: args.labelSingular,
|
|
@@ -1521,7 +2036,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1521
2036
|
requireRole(extra, Role.EDITOR);
|
|
1522
2037
|
const ec = getEmDash(extra);
|
|
1523
2038
|
try {
|
|
1524
|
-
const { handleTaxonomyDelete } = await import("../../../taxonomies-
|
|
2039
|
+
const { handleTaxonomyDelete } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1525
2040
|
return unwrapAndInvalidate(extra, await handleTaxonomyDelete(ec.db, args.name), [taxonomyTag(args.name)]);
|
|
1526
2041
|
} catch (error) {
|
|
1527
2042
|
return respondHandlerError(error, "TAXONOMY_DELETE_ERROR");
|
|
@@ -1541,11 +2056,11 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1541
2056
|
requireScope(extra, "content:read");
|
|
1542
2057
|
const ec = getEmDash(extra);
|
|
1543
2058
|
try {
|
|
1544
|
-
const { handleTaxonomyList } = await import("../../../taxonomies-
|
|
2059
|
+
const { handleTaxonomyList } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1545
2060
|
const listResult = await handleTaxonomyList(ec.db, { locale: args.locale });
|
|
1546
2061
|
if (!listResult.success) return unwrap(listResult);
|
|
1547
2062
|
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-
|
|
2063
|
+
const { TaxonomyRepository } = await import("../../../taxonomy-C3Fu1YeH.mjs").then((n) => n.n);
|
|
1549
2064
|
const repo = new TaxonomyRepository(ec.db);
|
|
1550
2065
|
const limit = Math.min(args.limit ?? 50, 100);
|
|
1551
2066
|
let cursor;
|
|
@@ -1599,14 +2114,14 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1599
2114
|
parentId: z.string().optional().describe("Parent term ID for hierarchical taxonomies"),
|
|
1600
2115
|
description: z.string().optional().describe("Description of the term"),
|
|
1601
2116
|
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)")
|
|
2117
|
+
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
2118
|
})
|
|
1604
2119
|
}, async (args, extra) => {
|
|
1605
2120
|
requireScope(extra, "taxonomies:manage");
|
|
1606
2121
|
requireRole(extra, Role.EDITOR);
|
|
1607
2122
|
const ec = getEmDash(extra);
|
|
1608
2123
|
try {
|
|
1609
|
-
const { handleTermCreate } = await import("../../../taxonomies-
|
|
2124
|
+
const { handleTermCreate } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1610
2125
|
return unwrapAndInvalidate(extra, await handleTermCreate(ec.db, args.taxonomy, {
|
|
1611
2126
|
slug: args.slug,
|
|
1612
2127
|
label: args.label,
|
|
@@ -1636,7 +2151,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1636
2151
|
requireRole(extra, Role.EDITOR);
|
|
1637
2152
|
const ec = getEmDash(extra);
|
|
1638
2153
|
try {
|
|
1639
|
-
const { handleTermUpdate } = await import("../../../taxonomies-
|
|
2154
|
+
const { handleTermUpdate } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1640
2155
|
return unwrapAndInvalidate(extra, await handleTermUpdate(ec.db, args.taxonomy, args.termSlug, {
|
|
1641
2156
|
slug: args.slug,
|
|
1642
2157
|
label: args.label,
|
|
@@ -1661,7 +2176,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1661
2176
|
requireRole(extra, Role.EDITOR);
|
|
1662
2177
|
const ec = getEmDash(extra);
|
|
1663
2178
|
try {
|
|
1664
|
-
const { handleTermDelete } = await import("../../../taxonomies-
|
|
2179
|
+
const { handleTermDelete } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1665
2180
|
return unwrapAndInvalidate(extra, await handleTermDelete(ec.db, args.taxonomy, args.termSlug, { locale: args.locale }), [taxonomyTag(args.taxonomy)]);
|
|
1666
2181
|
} catch (error) {
|
|
1667
2182
|
return respondHandlerError(error, "TAXONOMY_TERM_DELETE_ERROR");
|
|
@@ -1676,7 +2191,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1676
2191
|
requireScope(extra, "content:read");
|
|
1677
2192
|
const ec = getEmDash(extra);
|
|
1678
2193
|
try {
|
|
1679
|
-
const { handleTermTranslations } = await import("../../../taxonomies-
|
|
2194
|
+
const { handleTermTranslations } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
|
|
1680
2195
|
return unwrap(await handleTermTranslations(ec.db, args.id));
|
|
1681
2196
|
} catch (error) {
|
|
1682
2197
|
return respondHandlerError(error, "TERM_TRANSLATIONS_ERROR");
|
|
@@ -1691,7 +2206,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1691
2206
|
requireScope(extra, "content:read");
|
|
1692
2207
|
const ec = getEmDash(extra);
|
|
1693
2208
|
try {
|
|
1694
|
-
const { handleMenuList } = await import("../../../menus-
|
|
2209
|
+
const { handleMenuList } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
|
|
1695
2210
|
return unwrap(await handleMenuList(ec.db, { locale: args.locale }));
|
|
1696
2211
|
} catch (error) {
|
|
1697
2212
|
return respondHandlerError(error, "MENU_LIST_ERROR");
|
|
@@ -1709,7 +2224,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1709
2224
|
requireScope(extra, "content:read");
|
|
1710
2225
|
const ec = getEmDash(extra);
|
|
1711
2226
|
try {
|
|
1712
|
-
const { handleMenuGet } = await import("../../../menus-
|
|
2227
|
+
const { handleMenuGet } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
|
|
1713
2228
|
return unwrap(await handleMenuGet(ec.db, args.name, { locale: args.locale }));
|
|
1714
2229
|
} catch (error) {
|
|
1715
2230
|
return respondHandlerError(error, "MENU_GET_ERROR");
|
|
@@ -1724,7 +2239,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1724
2239
|
requireScope(extra, "content:read");
|
|
1725
2240
|
const ec = getEmDash(extra);
|
|
1726
2241
|
try {
|
|
1727
|
-
const { handleMenuTranslations } = await import("../../../menus-
|
|
2242
|
+
const { handleMenuTranslations } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
|
|
1728
2243
|
return unwrap(await handleMenuTranslations(ec.db, args.id));
|
|
1729
2244
|
} catch (error) {
|
|
1730
2245
|
return respondHandlerError(error, "MENU_TRANSLATIONS_ERROR");
|
|
@@ -1744,7 +2259,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1744
2259
|
requireRole(extra, Role.EDITOR);
|
|
1745
2260
|
const ec = getEmDash(extra);
|
|
1746
2261
|
try {
|
|
1747
|
-
const { handleMenuCreate } = await import("../../../menus-
|
|
2262
|
+
const { handleMenuCreate } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
|
|
1748
2263
|
return unwrapAndInvalidate(extra, await handleMenuCreate(ec.db, {
|
|
1749
2264
|
name: args.name,
|
|
1750
2265
|
label: args.label,
|
|
@@ -1768,7 +2283,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1768
2283
|
requireRole(extra, Role.EDITOR);
|
|
1769
2284
|
const ec = getEmDash(extra);
|
|
1770
2285
|
try {
|
|
1771
|
-
const { handleMenuUpdate } = await import("../../../menus-
|
|
2286
|
+
const { handleMenuUpdate } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
|
|
1772
2287
|
return unwrapAndInvalidate(extra, await handleMenuUpdate(ec.db, args.name, {
|
|
1773
2288
|
label: args.label,
|
|
1774
2289
|
locale: args.locale
|
|
@@ -1790,7 +2305,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1790
2305
|
requireRole(extra, Role.EDITOR);
|
|
1791
2306
|
const ec = getEmDash(extra);
|
|
1792
2307
|
try {
|
|
1793
|
-
const { handleMenuDelete } = await import("../../../menus-
|
|
2308
|
+
const { handleMenuDelete } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
|
|
1794
2309
|
return unwrapAndInvalidate(extra, await handleMenuDelete(ec.db, args.name, { locale: args.locale }), [menuTag(args.name)]);
|
|
1795
2310
|
} catch (error) {
|
|
1796
2311
|
return respondHandlerError(error, "MENU_DELETE_ERROR");
|
|
@@ -1825,7 +2340,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1825
2340
|
requireRole(extra, Role.EDITOR);
|
|
1826
2341
|
const ec = getEmDash(extra);
|
|
1827
2342
|
try {
|
|
1828
|
-
const { handleMenuSetItems } = await import("../../../menus-
|
|
2343
|
+
const { handleMenuSetItems } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
|
|
1829
2344
|
return unwrapAndInvalidate(extra, await handleMenuSetItems(ec.db, args.name, args.items, { locale: args.locale }), [menuTag(args.name)]);
|
|
1830
2345
|
} catch (error) {
|
|
1831
2346
|
return respondHandlerError(error, "MENU_SET_ITEMS_ERROR");
|
|
@@ -1872,7 +2387,7 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1872
2387
|
requireRole(extra, Role.EDITOR);
|
|
1873
2388
|
const ec = getEmDash(extra);
|
|
1874
2389
|
try {
|
|
1875
|
-
const { handleSettingsGet } = await import("../../../settings-
|
|
2390
|
+
const { handleSettingsGet } = await import("../../../settings-Dyj6v8C4.mjs").then((n) => n.r);
|
|
1876
2391
|
return unwrap(await handleSettingsGet(ec.db, ec.storage));
|
|
1877
2392
|
} catch (error) {
|
|
1878
2393
|
return respondHandlerError(error, "SETTINGS_READ_ERROR");
|
|
@@ -1880,12 +2395,12 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1880
2395
|
});
|
|
1881
2396
|
server.registerTool("settings_update", {
|
|
1882
2397
|
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).",
|
|
2398
|
+
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
2399
|
inputSchema: z.object({
|
|
1885
2400
|
title: z.string().optional().describe("Site title"),
|
|
1886
2401
|
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? })"),
|
|
2402
|
+
logo: settingsMediaReferenceSchema.nullable().optional().describe("Logo media reference ({ mediaId, alt? }); null removes it"),
|
|
2403
|
+
favicon: settingsMediaReferenceSchema.nullable().optional().describe("Favicon media reference ({ mediaId, alt? }); null removes it"),
|
|
1889
2404
|
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
2405
|
postsPerPage: z.number().int().min(1).max(100).optional().describe("Default page size for content listings"),
|
|
1891
2406
|
dateFormat: z.string().optional().describe("Date format token string"),
|
|
@@ -1898,12 +2413,126 @@ function createMcpServer(pluginTools = [], request) {
|
|
|
1898
2413
|
requireRole(extra, Role.ADMIN);
|
|
1899
2414
|
const ec = getEmDash(extra);
|
|
1900
2415
|
try {
|
|
1901
|
-
const { handleSettingsUpdate } = await import("../../../settings-
|
|
2416
|
+
const { handleSettingsUpdate } = await import("../../../settings-Dyj6v8C4.mjs").then((n) => n.r);
|
|
1902
2417
|
return unwrapAndInvalidate(extra, await handleSettingsUpdate(ec.db, ec.storage, args), [siteSettingsTag()]);
|
|
1903
2418
|
} catch (error) {
|
|
1904
2419
|
return respondHandlerError(error, "SETTINGS_UPDATE_ERROR");
|
|
1905
2420
|
}
|
|
1906
2421
|
});
|
|
2422
|
+
server.registerTool("site_transfer_capabilities", {
|
|
2423
|
+
title: "Get Site Transfer Capabilities",
|
|
2424
|
+
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).",
|
|
2425
|
+
inputSchema: z.object({}),
|
|
2426
|
+
annotations: { readOnlyHint: true }
|
|
2427
|
+
}, async (_args, extra) => {
|
|
2428
|
+
requireRole(extra, Role.ADMIN);
|
|
2429
|
+
requireTransferScope(extra, "transfer:*");
|
|
2430
|
+
return unwrap(await transferCapabilities(transferContext(extra)));
|
|
2431
|
+
});
|
|
2432
|
+
server.registerTool("site_export_start", {
|
|
2433
|
+
title: "Start Site Export",
|
|
2434
|
+
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,
|
|
2435
|
+
inputSchema: z.object({
|
|
2436
|
+
comments: z.boolean().optional().describe("Include comments and reactions (default true)"),
|
|
2437
|
+
approvalId: transferApprovalIdSchema.optional()
|
|
2438
|
+
})
|
|
2439
|
+
}, async (args, extra) => {
|
|
2440
|
+
requireRole(extra, Role.ADMIN);
|
|
2441
|
+
const scoped = transferScopeHeld(extra, "transfer:export");
|
|
2442
|
+
const { userId, tokenId } = getExtra(extra);
|
|
2443
|
+
return unwrap(await startExport(transferContext(extra), {
|
|
2444
|
+
userId,
|
|
2445
|
+
tokenId
|
|
2446
|
+
}, {
|
|
2447
|
+
...args,
|
|
2448
|
+
scoped
|
|
2449
|
+
}));
|
|
2450
|
+
});
|
|
2451
|
+
server.registerTool("site_export_status", {
|
|
2452
|
+
title: "Get Site Export Status",
|
|
2453
|
+
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).",
|
|
2454
|
+
inputSchema: z.object({
|
|
2455
|
+
operationId: transferOperationIdSchema,
|
|
2456
|
+
advance: z.boolean().optional().describe("Run one bounded export step before reporting (default true)")
|
|
2457
|
+
})
|
|
2458
|
+
}, async (args, extra) => {
|
|
2459
|
+
requireRole(extra, Role.ADMIN);
|
|
2460
|
+
await requireTransferAccess(extra, "transfer:export", "export", args.operationId);
|
|
2461
|
+
return unwrap(await exportStatus(transferContext(extra), {
|
|
2462
|
+
operationId: args.operationId,
|
|
2463
|
+
advance: args.advance ?? true
|
|
2464
|
+
}));
|
|
2465
|
+
});
|
|
2466
|
+
server.registerTool("site_import_analyze", {
|
|
2467
|
+
title: "Analyze Site Import",
|
|
2468
|
+
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.",
|
|
2469
|
+
inputSchema: z.object({
|
|
2470
|
+
operationId: transferOperationIdSchema,
|
|
2471
|
+
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.")
|
|
2472
|
+
})
|
|
2473
|
+
}, async (args, extra) => {
|
|
2474
|
+
requireRole(extra, Role.ADMIN);
|
|
2475
|
+
requireTransferScope(extra, "transfer:analyze");
|
|
2476
|
+
return unwrap(await analyzeImport(transferContext(extra), args));
|
|
2477
|
+
});
|
|
2478
|
+
server.registerTool("site_import_start", {
|
|
2479
|
+
title: "Start Site Import",
|
|
2480
|
+
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,
|
|
2481
|
+
inputSchema: z.object({
|
|
2482
|
+
operationId: transferOperationIdSchema,
|
|
2483
|
+
packageDigest: z.string().regex(SHA256_DIGEST_PATTERN, "Expected sha256:<64 hex>").describe("Package digest from the plan"),
|
|
2484
|
+
planDigest: z.string().regex(SHA256_DIGEST_PATTERN, "Expected sha256:<64 hex>").describe("Plan digest from the latest analysis"),
|
|
2485
|
+
approvalId: transferApprovalIdSchema.optional()
|
|
2486
|
+
}),
|
|
2487
|
+
annotations: { destructiveHint: true }
|
|
2488
|
+
}, async (args, extra) => {
|
|
2489
|
+
requireRole(extra, Role.ADMIN);
|
|
2490
|
+
const scoped = transferScopeHeld(extra, "transfer:execute");
|
|
2491
|
+
const { userId, tokenId } = getExtra(extra);
|
|
2492
|
+
return unwrap(await startImport(transferContext(extra), {
|
|
2493
|
+
userId,
|
|
2494
|
+
tokenId
|
|
2495
|
+
}, {
|
|
2496
|
+
operationId: args.operationId,
|
|
2497
|
+
packageDigest: transferDigest(args.packageDigest),
|
|
2498
|
+
planDigest: transferDigest(args.planDigest),
|
|
2499
|
+
approvalId: args.approvalId,
|
|
2500
|
+
scoped
|
|
2501
|
+
}));
|
|
2502
|
+
});
|
|
2503
|
+
server.registerTool("site_import_status", {
|
|
2504
|
+
title: "Get Site Import Status",
|
|
2505
|
+
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).",
|
|
2506
|
+
inputSchema: z.object({ operationId: transferOperationIdSchema }),
|
|
2507
|
+
annotations: { readOnlyHint: true }
|
|
2508
|
+
}, async (args, extra) => {
|
|
2509
|
+
requireRole(extra, Role.ADMIN);
|
|
2510
|
+
await requireTransferAccess(extra, "transfer:*", "import", args.operationId);
|
|
2511
|
+
return unwrap(await importStatus(transferContext(extra), args.operationId));
|
|
2512
|
+
});
|
|
2513
|
+
server.registerTool("site_import_resume", {
|
|
2514
|
+
title: "Resume Site Import",
|
|
2515
|
+
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).",
|
|
2516
|
+
inputSchema: z.object({ operationId: transferOperationIdSchema })
|
|
2517
|
+
}, async (args, extra) => {
|
|
2518
|
+
requireRole(extra, Role.ADMIN);
|
|
2519
|
+
await requireTransferAccess(extra, "transfer:execute", "import", args.operationId);
|
|
2520
|
+
const { userId, tokenId } = getExtra(extra);
|
|
2521
|
+
return unwrap(await resumeImport(transferContext(extra), {
|
|
2522
|
+
userId,
|
|
2523
|
+
tokenId
|
|
2524
|
+
}, args.operationId));
|
|
2525
|
+
});
|
|
2526
|
+
server.registerTool("site_import_receipt", {
|
|
2527
|
+
title: "Get Site Import Receipt",
|
|
2528
|
+
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).",
|
|
2529
|
+
inputSchema: z.object({ operationId: transferOperationIdSchema }),
|
|
2530
|
+
annotations: { readOnlyHint: true }
|
|
2531
|
+
}, async (args, extra) => {
|
|
2532
|
+
requireRole(extra, Role.ADMIN);
|
|
2533
|
+
await requireTransferAccess(extra, "transfer:*", "import", args.operationId);
|
|
2534
|
+
return unwrap(await importReceipt(transferContext(extra), args.operationId));
|
|
2535
|
+
});
|
|
1907
2536
|
return server;
|
|
1908
2537
|
}
|
|
1909
2538
|
|
|
@@ -1940,6 +2569,7 @@ const POST = async ({ request, locals, cache }) => {
|
|
|
1940
2569
|
userId: user.id,
|
|
1941
2570
|
userRole: user.role,
|
|
1942
2571
|
tokenScopes: locals.tokenScopes,
|
|
2572
|
+
tokenId: locals.tokenId,
|
|
1943
2573
|
cache
|
|
1944
2574
|
}
|
|
1945
2575
|
} });
|