emdash 0.38.0 → 0.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/action-token-On1sot_c.mjs +26 -0
- package/dist/action-token-On1sot_c.mjs.map +1 -0
- package/dist/activation-CaMfdBt1.mjs +382 -0
- package/dist/activation-CaMfdBt1.mjs.map +1 -0
- package/dist/adapters-Cq10K4_c.d.mts +171 -0
- package/dist/adapters-Cq10K4_c.d.mts.map +1 -0
- package/dist/after-PcEvMY_6.mjs +96 -0
- package/dist/after-PcEvMY_6.mjs.map +1 -0
- package/dist/allowed-origins-1Sa-2wZK.mjs +116 -0
- package/dist/allowed-origins-1Sa-2wZK.mjs.map +1 -0
- package/dist/api/route-utils.d.mts +4 -3
- package/dist/api/route-utils.d.mts.map +1 -1
- package/dist/api/route-utils.mjs +45 -30
- package/dist/api/route-utils.mjs.map +1 -1
- package/dist/api/schemas/index.d.mts +2 -2
- package/dist/api/schemas/index.mjs +7 -6
- package/dist/api-DmjKxPCY.mjs +4831 -0
- package/dist/api-DmjKxPCY.mjs.map +1 -0
- package/dist/api-tokens-BIXItFKV.mjs +163 -0
- package/dist/api-tokens-BIXItFKV.mjs.map +1 -0
- package/dist/apply-drpfmqrR.mjs +1005 -0
- package/dist/apply-drpfmqrR.mjs.map +1 -0
- package/dist/artifact-fetch-COiMhVgk.mjs +813 -0
- package/dist/artifact-fetch-COiMhVgk.mjs.map +1 -0
- package/dist/astro/index.d.mts +14 -12
- package/dist/astro/index.d.mts.map +1 -1
- package/dist/astro/index.mjs +99 -15
- package/dist/astro/index.mjs.map +1 -1
- package/dist/astro/middleware/auth.d.mts +12 -10
- package/dist/astro/middleware/auth.d.mts.map +1 -1
- package/dist/astro/middleware/auth.mjs +20 -11
- package/dist/astro/middleware/auth.mjs.map +1 -1
- package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
- package/dist/astro/middleware/redirect.mjs +11 -11
- package/dist/astro/middleware/request-context.d.mts +1 -1
- package/dist/astro/middleware/request-context.d.mts.map +1 -1
- package/dist/astro/middleware/request-context.mjs +154 -28
- package/dist/astro/middleware/request-context.mjs.map +1 -1
- package/dist/astro/middleware/setup.mjs +1 -1
- package/dist/astro/middleware.d.mts +13 -10
- package/dist/astro/middleware.d.mts.map +1 -1
- package/dist/astro/middleware.mjs +114 -3062
- package/dist/astro/middleware.mjs.map +1 -1
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +10 -9
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +10 -9
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +5 -5
- package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -6
- package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +6 -6
- package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +13 -12
- package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/byline-fields/index.mjs +13 -12
- package/dist/astro/routes/api/admin/byline-fields/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +13 -12
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +22 -21
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +22 -21
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/admin/bylines/index.mjs +22 -21
- package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/_id_/status.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +21 -54
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -8
- package/dist/astro/routes/api/admin/comments/bulk.mjs +15 -14
- package/dist/astro/routes/api/admin/comments/bulk.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/counts.mjs +8 -8
- package/dist/astro/routes/api/admin/comments/index.mjs +15 -14
- package/dist/astro/routes/api/admin/comments/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
- package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
- package/dist/astro/routes/api/admin/media-usage/activation.mjs +17 -16
- 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 +19 -18
- 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 +19 -18
- 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 +17 -17
- package/dist/astro/routes/api/admin/media-usage/repair.mjs +21 -20
- package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/work/index.mjs +19 -18
- 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 +19 -18
- 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 -5
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs +5 -5
- package/dist/astro/routes/api/admin/plugins/_id_/disable.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +9 -69
- 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 +9 -72
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +66 -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 -6
- package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +65 -62
- package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +70 -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 +87 -66
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/index.mjs +66 -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 -4
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +65 -62
- 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 +85 -66
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +65 -62
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +70 -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.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +90 -69
- package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/artifact.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +9 -8
- package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/install.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs +77 -66
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/verify.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +67 -64
- package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/updates.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/updates.mjs +66 -63
- package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
- package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.d.mts +8 -0
- package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +27 -0
- package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs.map +1 -0
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +65 -62
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +4 -4
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +65 -62
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs +4 -4
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs +3 -3
- package/dist/astro/routes/api/admin/users/_id_/index.mjs +11 -10
- package/dist/astro/routes/api/admin/users/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +5 -5
- package/dist/astro/routes/api/admin/users/index.mjs +10 -9
- package/dist/astro/routes/api/admin/users/index.mjs.map +1 -1
- package/dist/astro/routes/api/auth/dev-bypass.mjs +5 -5
- package/dist/astro/routes/api/auth/invite/accept.mjs +3 -3
- package/dist/astro/routes/api/auth/invite/complete.mjs +15 -14
- package/dist/astro/routes/api/auth/invite/complete.mjs.map +1 -1
- package/dist/astro/routes/api/auth/invite/index.mjs +12 -11
- package/dist/astro/routes/api/auth/invite/index.mjs.map +1 -1
- package/dist/astro/routes/api/auth/invite/register-options.mjs +14 -13
- package/dist/astro/routes/api/auth/invite/register-options.mjs.map +1 -1
- package/dist/astro/routes/api/auth/logout.mjs +4 -4
- package/dist/astro/routes/api/auth/magic-link/send.mjs +14 -13
- package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +4 -4
- package/dist/astro/routes/api/auth/me.mjs +11 -10
- package/dist/astro/routes/api/auth/me.mjs.map +1 -1
- package/dist/astro/routes/api/auth/mode.mjs +4 -4
- 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 +10 -9
- package/dist/astro/routes/api/auth/passkey/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/auth/passkey/index.mjs +3 -3
- package/dist/astro/routes/api/auth/passkey/options.mjs +16 -15
- package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +14 -13
- package/dist/astro/routes/api/auth/passkey/register/options.mjs.map +1 -1
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +15 -14
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs.map +1 -1
- package/dist/astro/routes/api/auth/passkey/verify.mjs +15 -14
- package/dist/astro/routes/api/auth/passkey/verify.mjs.map +1 -1
- package/dist/astro/routes/api/auth/signup/complete.mjs +15 -14
- package/dist/astro/routes/api/auth/signup/complete.mjs.map +1 -1
- package/dist/astro/routes/api/auth/signup/request.mjs +14 -13
- package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
- package/dist/astro/routes/api/auth/signup/verify.mjs +3 -3
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.d.mts.map +1 -1
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +15 -211
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs.map +1 -1
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +18 -17
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +15 -14
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +15 -14
- package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.d.mts +8 -0
- package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.d.mts.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +35 -0
- package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +16 -15
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts +9 -2
- package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +25 -18
- 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 +27 -25
- 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 +27 -25
- 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 +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.d.mts.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +23 -15
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +23 -21
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +23 -15
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +15 -14
- package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/authors.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/index.mjs +12 -11
- package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/trash.mjs +11 -10
- package/dist/astro/routes/api/content/_collection_/trash.mjs.map +1 -1
- package/dist/astro/routes/api/dashboard.mjs +14 -12
- package/dist/astro/routes/api/dashboard.mjs.map +1 -1
- package/dist/astro/routes/api/dev/emails.mjs +4 -4
- package/dist/astro/routes/api/health.d.mts +8 -0
- package/dist/astro/routes/api/health.d.mts.map +1 -0
- package/dist/astro/routes/api/health.mjs +21 -0
- package/dist/astro/routes/api/health.mjs.map +1 -0
- package/dist/astro/routes/api/import/probe.d.mts +3 -3
- package/dist/astro/routes/api/import/probe.mjs +25 -23
- package/dist/astro/routes/api/import/probe.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +5 -5
- package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -11
- package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -1
- package/dist/astro/routes/api/import/wordpress/execute.mjs +20 -20
- package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -10
- package/dist/astro/routes/api/import/wordpress/media.d.mts.map +1 -1
- package/dist/astro/routes/api/import/wordpress/media.mjs +15 -14
- package/dist/astro/routes/api/import/wordpress/media.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +14 -13
- package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -11
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts.map +1 -1
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +18 -17
- 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 +25 -23
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -11
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts.map +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +36 -34
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
- package/dist/astro/routes/api/manifest.mjs +17 -9
- 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 +167 -101
- package/dist/astro/routes/api/mcp.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_/confirm.mjs +15 -14
- package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_/replace.mjs +12 -11
- package/dist/astro/routes/api/media/_id_/replace.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_/upload.mjs +8 -8
- package/dist/astro/routes/api/media/_id_/usage.mjs +23 -22
- package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_.mjs +22 -21
- package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/media/asset/_id_/_filename_.d.mts +8 -0
- package/dist/astro/routes/api/media/asset/_id_/_filename_.d.mts.map +1 -0
- package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +52 -0
- package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs.map +1 -0
- package/dist/astro/routes/api/media/file/_...key_.mjs +3 -3
- package/dist/astro/routes/api/media/folders/_id_.mjs +12 -11
- package/dist/astro/routes/api/media/folders/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/media/folders/index.mjs +12 -11
- package/dist/astro/routes/api/media/folders/index.mjs.map +1 -1
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +4 -4
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +4 -4
- package/dist/astro/routes/api/media/providers/index.mjs +4 -4
- package/dist/astro/routes/api/media/upload-url.mjs +14 -13
- package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
- package/dist/astro/routes/api/media.mjs +26 -25
- package/dist/astro/routes/api/media.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +15 -14
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/items.mjs +15 -14
- package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +15 -14
- package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/translations.mjs +15 -14
- package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_.mjs +15 -14
- package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/menus/index.mjs +15 -14
- package/dist/astro/routes/api/menus/index.mjs.map +1 -1
- package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
- package/dist/astro/routes/api/oauth/device/authorize.mjs +7 -7
- package/dist/astro/routes/api/oauth/device/code.mjs +10 -10
- package/dist/astro/routes/api/oauth/device/token.mjs +9 -9
- package/dist/astro/routes/api/oauth/register.mjs +4 -4
- package/dist/astro/routes/api/oauth/token/refresh.mjs +7 -7
- package/dist/astro/routes/api/oauth/token/revoke.mjs +7 -7
- package/dist/astro/routes/api/oauth/token.mjs +7 -7
- package/dist/astro/routes/api/openapi.json.mjs +28 -23
- package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.d.mts +2 -1
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.d.mts.map +1 -1
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +22 -40
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/404s/index.mjs +18 -15
- package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/404s/summary.mjs +18 -15
- package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/_id_.d.mts.map +1 -1
- package/dist/astro/routes/api/redirects/_id_.mjs +20 -23
- package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/index.d.mts.map +1 -1
- package/dist/astro/routes/api/redirects/index.mjs +19 -20
- package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
- package/dist/astro/routes/api/relations/_id_/index.mjs +27 -25
- package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/relations/_id_/translations.mjs +21 -20
- package/dist/astro/routes/api/relations/_id_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/relations/index.mjs +27 -25
- package/dist/astro/routes/api/relations/index.mjs.map +1 -1
- package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +4 -4
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +5 -5
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +65 -62
- 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 +65 -62
- 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 +65 -62
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +65 -62
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/index.mjs +65 -62
- package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/reorder.mjs +65 -62
- package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/index.mjs +16 -16
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +65 -62
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/schema/orphans/index.mjs +65 -62
- package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
- package/dist/astro/routes/api/search/enable.mjs +16 -15
- package/dist/astro/routes/api/search/enable.mjs.map +1 -1
- package/dist/astro/routes/api/search/index.mjs +17 -15
- package/dist/astro/routes/api/search/index.mjs.map +1 -1
- package/dist/astro/routes/api/search/rebuild.mjs +16 -15
- package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
- package/dist/astro/routes/api/search/stats.mjs +10 -10
- package/dist/astro/routes/api/search/suggest.mjs +15 -14
- package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
- package/dist/astro/routes/api/sections/_slug_.mjs +15 -14
- package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/sections/index.mjs +15 -14
- package/dist/astro/routes/api/sections/index.mjs.map +1 -1
- package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +9 -9
- package/dist/astro/routes/api/settings/backups/archives/index.mjs +8 -8
- package/dist/astro/routes/api/settings/backups/export.mjs +9 -9
- package/dist/astro/routes/api/settings/backups/index.mjs +10 -10
- package/dist/astro/routes/api/settings/email.mjs +6 -6
- package/dist/astro/routes/api/settings.mjs +22 -20
- package/dist/astro/routes/api/settings.mjs.map +1 -1
- package/dist/astro/routes/api/setup/admin-verify.mjs +16 -15
- package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
- package/dist/astro/routes/api/setup/admin.mjs +15 -14
- package/dist/astro/routes/api/setup/admin.mjs.map +1 -1
- package/dist/astro/routes/api/setup/dev-bypass.mjs +42 -40
- package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
- package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
- package/dist/astro/routes/api/setup/index.mjs +43 -40
- package/dist/astro/routes/api/setup/index.mjs.map +1 -1
- package/dist/astro/routes/api/setup/status.mjs +5 -5
- package/dist/astro/routes/api/snapshot.mjs +11 -11
- package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +23 -22
- package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +23 -22
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +23 -22
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +23 -22
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +22 -21
- package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_.mjs +23 -22
- package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/index.mjs +23 -22
- package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
- package/dist/astro/routes/api/themes/preview.mjs +8 -8
- package/dist/astro/routes/api/typegen.mjs +6 -6
- package/dist/astro/routes/api/visual-editing/action-token.d.mts +8 -0
- package/dist/astro/routes/api/visual-editing/action-token.d.mts.map +1 -0
- package/dist/astro/routes/api/visual-editing/action-token.mjs +25 -0
- package/dist/astro/routes/api/visual-editing/action-token.mjs.map +1 -0
- package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.d.mts +8 -0
- package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.d.mts.map +1 -0
- package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +37 -0
- package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs.map +1 -0
- package/dist/astro/routes/api/visual-editing/toolbar-labels.d.mts +8 -0
- package/dist/astro/routes/api/visual-editing/toolbar-labels.d.mts.map +1 -0
- package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +20 -0
- package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs.map +1 -0
- 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 +12 -11
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +16 -15
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +16 -15
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_.mjs +10 -10
- package/dist/astro/routes/api/widget-areas/index.mjs +16 -15
- package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
- package/dist/astro/routes/api/widget-components.mjs +4 -4
- package/dist/astro/routes/robots.txt.mjs +13 -12
- package/dist/astro/routes/robots.txt.mjs.map +1 -1
- package/dist/astro/routes/sitemap-_collection_.xml.d.mts.map +1 -1
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +23 -19
- package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
- package/dist/astro/routes/sitemap.xml.mjs +14 -13
- package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
- package/dist/astro/types.d.mts +61 -23
- package/dist/astro/types.d.mts.map +1 -1
- package/dist/auth/providers/github.d.mts +1 -1
- package/dist/auth/providers/google.d.mts +1 -1
- package/dist/authoritative-records-DbqshfKD.mjs +5172 -0
- package/dist/authoritative-records-DbqshfKD.mjs.map +1 -0
- package/dist/authorize-BXpfMpp0.mjs +40 -0
- package/dist/authorize-BXpfMpp0.mjs.map +1 -0
- package/dist/backup-BsPQdwnS.mjs +246 -0
- package/dist/backup-BsPQdwnS.mjs.map +1 -0
- package/dist/base64-DvnNgP7e.mjs +63 -0
- package/dist/base64-DvnNgP7e.mjs.map +1 -0
- package/dist/byline-Doh-wt99.mjs +906 -0
- package/dist/byline-Doh-wt99.mjs.map +1 -0
- package/dist/byline-fields-CsrdvaLV.mjs +123 -0
- package/dist/byline-fields-CsrdvaLV.mjs.map +1 -0
- package/dist/byline-registry-D6lWzXk6.mjs +406 -0
- package/dist/byline-registry-D6lWzXk6.mjs.map +1 -0
- package/dist/bylines-Cop0hkoy.mjs +214 -0
- package/dist/bylines-Cop0hkoy.mjs.map +1 -0
- package/dist/bylines-kpBzHPr8.mjs +232 -0
- package/dist/bylines-kpBzHPr8.mjs.map +1 -0
- package/dist/cache-B0pOlXdM.mjs +108 -0
- package/dist/cache-B0pOlXdM.mjs.map +1 -0
- package/dist/capture-triggers-gxQxnxrJ.mjs +362 -0
- package/dist/capture-triggers-gxQxnxrJ.mjs.map +1 -0
- package/dist/challenge-store-CkRdSdd8.mjs +51 -0
- package/dist/challenge-store-CkRdSdd8.mjs.map +1 -0
- package/dist/checksum-Bsi2D9M1.mjs +162 -0
- package/dist/checksum-Bsi2D9M1.mjs.map +1 -0
- package/dist/chrome-tags-D7LGB91U.mjs +24 -0
- package/dist/chrome-tags-D7LGB91U.mjs.map +1 -0
- package/dist/chunks-BmWyou79.mjs +25 -0
- package/dist/chunks-BmWyou79.mjs.map +1 -0
- package/dist/cli/index.mjs +889 -102
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/cf-access.d.mts +1 -1
- package/dist/client/index.d.mts +2 -2
- package/dist/client/index.mjs +2 -2
- package/dist/collection-deletion-C3Xixmkx.mjs +436 -0
- package/dist/collection-deletion-C3Xixmkx.mjs.map +1 -0
- package/dist/collection-slugs-cache-D9auiKmI.mjs +85 -0
- package/dist/collection-slugs-cache-D9auiKmI.mjs.map +1 -0
- package/dist/comment-DcT8qdPK.mjs +313 -0
- package/dist/comment-DcT8qdPK.mjs.map +1 -0
- package/dist/comment-reaction-DY5-y8Y5.mjs +85 -0
- package/dist/comment-reaction-DY5-y8Y5.mjs.map +1 -0
- package/dist/comments-B67VRNGw.mjs +204 -0
- package/dist/comments-B67VRNGw.mjs.map +1 -0
- package/dist/comments-BVzzt6x5.mjs +99 -0
- package/dist/comments-BVzzt6x5.mjs.map +1 -0
- package/dist/components-DIl9Qzh6.mjs +108 -0
- package/dist/components-DIl9Qzh6.mjs.map +1 -0
- package/dist/config-B2acLeC5.mjs +242 -0
- package/dist/config-B2acLeC5.mjs.map +1 -0
- package/dist/config-CGVeT8Hc.mjs +73 -0
- package/dist/config-CGVeT8Hc.mjs.map +1 -0
- package/dist/config-D3HhLON3.d.mts +39 -0
- package/dist/config-D3HhLON3.d.mts.map +1 -0
- package/dist/config-DS7e4EZ9.d.mts +6387 -0
- package/dist/config-DS7e4EZ9.d.mts.map +1 -0
- package/dist/content-DZ3B5qtA.mjs +2216 -0
- package/dist/content-DZ3B5qtA.mjs.map +1 -0
- package/dist/content-list-query-CbPdzsna.d.mts +26 -0
- package/dist/content-list-query-CbPdzsna.d.mts.map +1 -0
- package/dist/content-policy-CM4skrNi.mjs +46 -0
- package/dist/content-policy-CM4skrNi.mjs.map +1 -0
- package/dist/content-refresh-BHLHJgyt.mjs +3599 -0
- package/dist/content-refresh-BHLHJgyt.mjs.map +1 -0
- package/dist/content-repair-BVll5WNl.mjs +440 -0
- package/dist/content-repair-BVll5WNl.mjs.map +1 -0
- package/dist/context-B195kjqZ.mjs +1835 -0
- package/dist/context-B195kjqZ.mjs.map +1 -0
- package/dist/cron-BcR3RN4K.mjs +282 -0
- package/dist/cron-BcR3RN4K.mjs.map +1 -0
- package/dist/dashboard-CZD4G7k_.mjs +151 -0
- package/dist/dashboard-CZD4G7k_.mjs.map +1 -0
- package/dist/database/migration-lock.d.mts +37 -0
- package/dist/database/migration-lock.d.mts.map +1 -0
- package/dist/database/migration-lock.mjs +76 -0
- package/dist/database/migration-lock.mjs.map +1 -0
- package/dist/database/pg-migration-lock.d.mts +1 -1
- package/dist/database/pg-migration-lock.mjs +1 -1
- package/dist/database/pg-migration-lock.mjs.map +1 -1
- package/dist/datetime-normalization-PeiEdcRY.mjs +187 -0
- package/dist/datetime-normalization-PeiEdcRY.mjs.map +1 -0
- package/dist/db/index.d.mts +3 -3
- package/dist/db/index.mjs +4 -3
- package/dist/db/index.mjs.map +1 -1
- package/dist/db/libsql-migrations.d.mts +1 -1
- package/dist/db/libsql-migrations.mjs +7 -6
- package/dist/db/libsql-migrations.mjs.map +1 -1
- package/dist/db/libsql.d.mts +1 -1
- package/dist/db/postgres-migrations.d.mts +1 -1
- package/dist/db/postgres-migrations.mjs +7 -6
- package/dist/db/postgres-migrations.mjs.map +1 -1
- package/dist/db/postgres.d.mts +1 -1
- package/dist/db/sqlite-migrations.d.mts +1 -1
- package/dist/db/sqlite-migrations.mjs +7 -6
- package/dist/db/sqlite-migrations.mjs.map +1 -1
- package/dist/db/sqlite.d.mts +1 -1
- package/dist/db/sqlite.mjs +1 -1
- package/dist/db-errors-CBD5yMro.mjs +55 -0
- package/dist/db-errors-CBD5yMro.mjs.map +1 -0
- package/dist/default-BtlxWgh9.mjs +81 -0
- package/dist/default-BtlxWgh9.mjs.map +1 -0
- package/dist/deferred-tasks-Ba9fphlE.d.mts +9 -0
- package/dist/deferred-tasks-Ba9fphlE.d.mts.map +1 -0
- package/dist/dev-typegen-CZaPLl3V.mjs +29 -0
- package/dist/dev-typegen-CZaPLl3V.mjs.map +1 -0
- package/dist/device-flow-3E5l0fpH.mjs +466 -0
- package/dist/device-flow-3E5l0fpH.mjs.map +1 -0
- package/dist/dialect-helpers-CtYdsX4W.mjs +307 -0
- package/dist/dialect-helpers-CtYdsX4W.mjs.map +1 -0
- package/dist/direct-executor-ZI8E01Yt.mjs +104 -0
- package/dist/direct-executor-ZI8E01Yt.mjs.map +1 -0
- package/dist/dist-2hDLsLeq.mjs +810 -0
- package/dist/dist-2hDLsLeq.mjs.map +1 -0
- package/dist/email-console-gc-E3Eqj.mjs +50 -0
- package/dist/email-console-gc-E3Eqj.mjs.map +1 -0
- package/dist/emdash-runtime-DZGinqTL.mjs +4041 -0
- package/dist/emdash-runtime-DZGinqTL.mjs.map +1 -0
- package/dist/enrich-C2Mk0lwE.mjs +194 -0
- package/dist/enrich-C2Mk0lwE.mjs.map +1 -0
- package/dist/entry-lock-D3C99MXS.mjs +1520 -0
- package/dist/entry-lock-D3C99MXS.mjs.map +1 -0
- package/dist/entry-lock-D9rnj2Lu.mjs +163 -0
- package/dist/entry-lock-D9rnj2Lu.mjs.map +1 -0
- package/dist/entry-lock-DX7QkqEg.d.mts +3503 -0
- package/dist/entry-lock-DX7QkqEg.d.mts.map +1 -0
- package/dist/entry-locks-CO_KaoU5.mjs +167 -0
- package/dist/entry-locks-CO_KaoU5.mjs.map +1 -0
- package/dist/error-CCTCskie.mjs +90 -0
- package/dist/error-CCTCskie.mjs.map +1 -0
- package/dist/errors-W3PA8HqB.mjs +447 -0
- package/dist/errors-W3PA8HqB.mjs.map +1 -0
- package/dist/escape-DN4Qmjsl.mjs +9 -0
- package/dist/escape-DN4Qmjsl.mjs.map +1 -0
- package/dist/field-defs-cache-B337z8UJ.mjs +77 -0
- package/dist/field-defs-cache-B337z8UJ.mjs.map +1 -0
- package/dist/focal-point-Gr34o-4o.mjs +23 -0
- package/dist/focal-point-Gr34o-4o.mjs.map +1 -0
- package/dist/fts-manager-DMb0sbIQ.mjs +413 -0
- package/dist/fts-manager-DMb0sbIQ.mjs.map +1 -0
- package/dist/hash-CLVFzWvx.mjs +37 -0
- package/dist/hash-CLVFzWvx.mjs.map +1 -0
- package/dist/hook-result-KY1jq21o.d.mts +31 -0
- package/dist/hook-result-KY1jq21o.d.mts.map +1 -0
- package/dist/hreflang-BgS2FqhH.d.mts +50 -0
- package/dist/hreflang-BgS2FqhH.d.mts.map +1 -0
- package/dist/hreflang-CrJwqoeb.mjs +105 -0
- package/dist/hreflang-CrJwqoeb.mjs.map +1 -0
- package/dist/http-route-dispatch-DAKlanXb.mjs +339 -0
- package/dist/http-route-dispatch-DAKlanXb.mjs.map +1 -0
- package/dist/identity-DRGSHEEr.mjs +35 -0
- package/dist/identity-DRGSHEEr.mjs.map +1 -0
- package/dist/import-DFr5B_hC.mjs +2020 -0
- package/dist/import-DFr5B_hC.mjs.map +1 -0
- package/dist/index-CDwKDkTq.d.mts +623 -0
- package/dist/index-CDwKDkTq.d.mts.map +1 -0
- package/dist/index.d.mts +27 -22
- package/dist/index.mjs +101 -89
- package/dist/init-lock-4eRRB4Le.mjs +56 -0
- package/dist/init-lock-4eRRB4Le.mjs.map +1 -0
- package/dist/install-finalization-5Os-QZ-2.mjs +58 -0
- package/dist/install-finalization-5Os-QZ-2.mjs.map +1 -0
- package/dist/lifecycle-7e-Lt_kX.mjs +25 -0
- package/dist/lifecycle-7e-Lt_kX.mjs.map +1 -0
- package/dist/load-Cu5bvCZh.mjs +28 -0
- package/dist/load-Cu5bvCZh.mjs.map +1 -0
- package/dist/loader-t4TxaFiQ.mjs +1004 -0
- package/dist/loader-t4TxaFiQ.mjs.map +1 -0
- package/dist/manifest-builder-D31UoJCu.mjs +189 -0
- package/dist/manifest-builder-D31UoJCu.mjs.map +1 -0
- package/dist/manifest-schema-Bkh8SeHd.mjs +491 -0
- package/dist/manifest-schema-Bkh8SeHd.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 +4 -4
- package/dist/media/local-runtime.d.mts +14 -12
- package/dist/media/local-runtime.d.mts.map +1 -1
- package/dist/media/local-runtime.mjs +12 -11
- package/dist/media/local-runtime.mjs.map +1 -1
- package/dist/media-TBlKCwo7.mjs +334 -0
- package/dist/media-TBlKCwo7.mjs.map +1 -0
- package/dist/media-allowlist-s60eAIf6.mjs +44 -0
- package/dist/media-allowlist-s60eAIf6.mjs.map +1 -0
- package/dist/media-folders-ClIRLUQv.mjs +210 -0
- package/dist/media-folders-ClIRLUQv.mjs.map +1 -0
- package/dist/media-url-DY_ijO3B.mjs +43 -0
- package/dist/media-url-DY_ijO3B.mjs.map +1 -0
- package/dist/media-usage-C4NolTpQ.mjs +1833 -0
- package/dist/media-usage-C4NolTpQ.mjs.map +1 -0
- package/dist/media-usage-activation-CAhmb14O.mjs +78 -0
- package/dist/media-usage-activation-CAhmb14O.mjs.map +1 -0
- package/dist/media-usage-work-Cu5DqewW.mjs +586 -0
- package/dist/media-usage-work-Cu5DqewW.mjs.map +1 -0
- package/dist/media-usage-work-DJr3rOEN.mjs +152 -0
- package/dist/media-usage-work-DJr3rOEN.mjs.map +1 -0
- package/dist/media-usage-write-fence-DW5oHT7q.mjs +42 -0
- package/dist/media-usage-write-fence-DW5oHT7q.mjs.map +1 -0
- package/dist/menus-DbgU9z5Q.mjs +3732 -0
- package/dist/menus-DbgU9z5Q.mjs.map +1 -0
- package/dist/menus-Wy8m5NcH.mjs +753 -0
- package/dist/menus-Wy8m5NcH.mjs.map +1 -0
- package/dist/migrations/index.d.mts +2 -2
- package/dist/migrations/index.d.mts.map +1 -1
- package/dist/migrations/index.mjs +6 -5
- package/dist/mime-CCYRC4r1.mjs +36 -0
- package/dist/mime-CCYRC4r1.mjs.map +1 -0
- package/dist/mode-CkmOhFqj.mjs +23 -0
- package/dist/mode-CkmOhFqj.mjs.map +1 -0
- package/dist/node-sqlite-compat-vpVaILnb.mjs +46 -0
- package/dist/node-sqlite-compat-vpVaILnb.mjs.map +1 -0
- package/dist/normalize-dChXQjwS.mjs +191 -0
- package/dist/normalize-dChXQjwS.mjs.map +1 -0
- package/dist/oauth-authorization-DZ-R-hmx.mjs +274 -0
- package/dist/oauth-authorization-DZ-R-hmx.mjs.map +1 -0
- package/dist/oauth-clients-BMPA8vjl.mjs +266 -0
- package/dist/oauth-clients-BMPA8vjl.mjs.map +1 -0
- package/dist/oauth-state-store-0gIdb48-.mjs +50 -0
- package/dist/oauth-state-store-0gIdb48-.mjs.map +1 -0
- package/dist/oauth-user-lookup-ChVW4UWu.mjs +26 -0
- package/dist/oauth-user-lookup-ChVW4UWu.mjs.map +1 -0
- package/dist/object-cache/memory.d.mts +1 -1
- package/dist/object-cache-DlSVbn5Y.mjs +534 -0
- package/dist/object-cache-DlSVbn5Y.mjs.map +1 -0
- package/dist/options-D5WcorD5.mjs +200 -0
- package/dist/options-D5WcorD5.mjs.map +1 -0
- package/dist/options-DAknChnw.d.mts +77 -0
- package/dist/options-DAknChnw.d.mts.map +1 -0
- package/dist/page/index.d.mts +2 -2
- package/dist/page/index.mjs +12 -11
- package/dist/page/index.mjs.map +1 -1
- package/dist/parse-Cr379Av9.mjs +81 -0
- package/dist/parse-Cr379Av9.mjs.map +1 -0
- package/dist/parse-tj9XLNO_.d.mts +165 -0
- package/dist/parse-tj9XLNO_.d.mts.map +1 -0
- package/dist/passkey-config-BD-wMaCf.mjs +46 -0
- package/dist/passkey-config-BD-wMaCf.mjs.map +1 -0
- package/dist/patterns-Do3iqi7N.mjs +145 -0
- package/dist/patterns-Do3iqi7N.mjs.map +1 -0
- package/dist/placeholder-CubPFn_L.d.mts +306 -0
- package/dist/placeholder-CubPFn_L.d.mts.map +1 -0
- package/dist/plugin-test-runtime.d.mts +97 -0
- package/dist/plugin-test-runtime.d.mts.map +1 -0
- package/dist/plugin-test-runtime.mjs +105 -0
- package/dist/plugin-types.d.mts +53 -15
- package/dist/plugin-types.d.mts.map +1 -1
- package/dist/plugin-types.mjs +18 -1
- package/dist/plugin-types.mjs.map +1 -0
- package/dist/plugin-utils.d.mts +12 -10
- package/dist/plugin-utils.d.mts.map +1 -1
- package/dist/plugins/adapt-sandbox-entry.d.mts +12 -10
- package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
- package/dist/plugins/adapt-sandbox-entry.mjs +18 -13
- package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
- package/dist/plugins/host.d.mts +7 -0
- package/dist/plugins/host.mjs +45 -0
- package/dist/plugins/http-wire.d.mts +25 -0
- package/dist/plugins/http-wire.d.mts.map +1 -0
- package/dist/plugins/http-wire.mjs +148 -0
- package/dist/plugins/http-wire.mjs.map +1 -0
- package/dist/plugins/secret-redactor.d.mts +9 -0
- package/dist/plugins/secret-redactor.d.mts.map +1 -0
- package/dist/plugins/secret-redactor.mjs +51 -0
- package/dist/plugins/secret-redactor.mjs.map +1 -0
- package/dist/plugins-DHurtdXQ.mjs +277 -0
- package/dist/plugins-DHurtdXQ.mjs.map +1 -0
- package/dist/policy-lyZnjpwz.mjs +45 -0
- package/dist/policy-lyZnjpwz.mjs.map +1 -0
- package/dist/portable-text-oAwodbPS.mjs +286 -0
- package/dist/portable-text-oAwodbPS.mjs.map +1 -0
- package/dist/preview-Cup2bj8c.mjs +107 -0
- package/dist/preview-Cup2bj8c.mjs.map +1 -0
- package/dist/protocol-C1CNiKX4.d.mts +61 -0
- package/dist/protocol-C1CNiKX4.d.mts.map +1 -0
- package/dist/public-submission-Cs-pFMQK.mjs +245 -0
- package/dist/public-submission-Cs-pFMQK.mjs.map +1 -0
- package/dist/public-url-BWVHsfQv.mjs +101 -0
- package/dist/public-url-BWVHsfQv.mjs.map +1 -0
- package/dist/query-D-lxiOgn.mjs +890 -0
- package/dist/query-D-lxiOgn.mjs.map +1 -0
- package/dist/query-D7kHKOws.mjs +41 -0
- package/dist/query-D7kHKOws.mjs.map +1 -0
- package/dist/rate-limit-CqJn-w4h.mjs +120 -0
- package/dist/rate-limit-CqJn-w4h.mjs.map +1 -0
- package/dist/redirect-BrChFPIu.mjs +17 -0
- package/dist/redirect-BrChFPIu.mjs.map +1 -0
- package/dist/redirect-D2Yo-b6S.mjs +415 -0
- package/dist/redirect-D2Yo-b6S.mjs.map +1 -0
- package/dist/redirects-BCiTaIQ-.mjs +146 -0
- package/dist/redirects-BCiTaIQ-.mjs.map +1 -0
- package/dist/redirects-ByItliuu.mjs +644 -0
- package/dist/redirects-ByItliuu.mjs.map +1 -0
- package/dist/registry/testing.d.mts +14 -0
- package/dist/registry/testing.d.mts.map +1 -0
- package/dist/registry/testing.mjs +255 -0
- package/dist/registry/testing.mjs.map +1 -0
- package/dist/registry-CkuPoZs7.mjs +1222 -0
- package/dist/registry-CkuPoZs7.mjs.map +1 -0
- package/dist/relation-XTAtOpJO.mjs +334 -0
- package/dist/relation-XTAtOpJO.mjs.map +1 -0
- package/dist/relations-B4w-G5U9.mjs +309 -0
- package/dist/relations-B4w-G5U9.mjs.map +1 -0
- package/dist/relations-O63JWBRj.mjs +403 -0
- package/dist/relations-O63JWBRj.mjs.map +1 -0
- package/dist/request-cache-DaMhSQdx.mjs +104 -0
- package/dist/request-cache-DaMhSQdx.mjs.map +1 -0
- package/dist/request-context.d.mts +1 -1
- package/dist/request-meta-C8yl_sIs.mjs +141 -0
- package/dist/request-meta-C8yl_sIs.mjs.map +1 -0
- package/dist/resolve-BJIS8wKr.mjs +199 -0
- package/dist/resolve-BJIS8wKr.mjs.map +1 -0
- package/dist/route-wire-D66L2oaZ.mjs +197 -0
- package/dist/route-wire-D66L2oaZ.mjs.map +1 -0
- package/dist/routes-DYsTe-oR.mjs +321 -0
- package/dist/routes-DYsTe-oR.mjs.map +1 -0
- package/dist/runner-3gfxRsJG.d.mts +68 -0
- package/dist/runner-3gfxRsJG.d.mts.map +1 -0
- package/dist/runner-ClrleR8A.mjs +5502 -0
- package/dist/runner-ClrleR8A.mjs.map +1 -0
- package/dist/runtime.d.mts +13 -11
- package/dist/runtime.d.mts.map +1 -1
- package/dist/runtime.mjs +6 -6
- package/dist/schema-CPhPM9Do.mjs +420 -0
- package/dist/schema-CPhPM9Do.mjs.map +1 -0
- package/dist/schema-DEERRrKS.mjs +9 -0
- package/dist/schema-DEERRrKS.mjs.map +1 -0
- package/dist/scopes-Bn8_rCSt.mjs +27 -0
- package/dist/scopes-Bn8_rCSt.mjs.map +1 -0
- package/dist/search-lami_Ota.mjs +448 -0
- package/dist/search-lami_Ota.mjs.map +1 -0
- package/dist/secrets-DNgVgz_e.mjs +341 -0
- package/dist/secrets-DNgVgz_e.mjs.map +1 -0
- package/dist/sections-BIpd4Cxf.mjs +346 -0
- package/dist/sections-BIpd4Cxf.mjs.map +1 -0
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +35 -33
- package/dist/seo/index.d.mts +3 -3
- package/dist/seo/index.mjs +26 -24
- package/dist/seo/index.mjs.map +1 -1
- package/dist/seo-BtU70b7l.mjs +114 -0
- package/dist/seo-BtU70b7l.mjs.map +1 -0
- package/dist/seo-_4qmazxz.mjs +133 -0
- package/dist/seo-_4qmazxz.mjs.map +1 -0
- package/dist/service-Bpy5iTX0.mjs +150 -0
- package/dist/service-Bpy5iTX0.mjs.map +1 -0
- package/dist/session-user-BQeS2Mrb.mjs +51 -0
- package/dist/session-user-BQeS2Mrb.mjs.map +1 -0
- package/dist/settings-DmroR53o.mjs +420 -0
- package/dist/settings-DmroR53o.mjs.map +1 -0
- package/dist/settings-g2F2a3Ub.mjs +51 -0
- package/dist/settings-g2F2a3Ub.mjs.map +1 -0
- package/dist/setup-complete-BrZaXpVV.mjs +26 -0
- package/dist/setup-complete-BrZaXpVV.mjs.map +1 -0
- package/dist/setup-nonce-Cb9-884O.mjs +25 -0
- package/dist/setup-nonce-Cb9-884O.mjs.map +1 -0
- package/dist/single-flight-cache-B5O2qhO1.mjs +104 -0
- package/dist/single-flight-cache-B5O2qhO1.mjs.map +1 -0
- package/dist/site-url-DjhYCaep.mjs +16 -0
- package/dist/site-url-DjhYCaep.mjs.map +1 -0
- package/dist/slugify-T5GHH42D.mjs +17 -0
- package/dist/slugify-T5GHH42D.mjs.map +1 -0
- package/dist/snapshot-C32Xuv3o.mjs +233 -0
- package/dist/snapshot-C32Xuv3o.mjs.map +1 -0
- package/dist/ssrf-Co1GGFZz.mjs +406 -0
- package/dist/ssrf-Co1GGFZz.mjs.map +1 -0
- package/dist/state-C7gCoiHr.mjs +153 -0
- package/dist/state-C7gCoiHr.mjs.map +1 -0
- package/dist/status-DLoBmcDz.mjs +30 -0
- package/dist/status-DLoBmcDz.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-CPctdMKX.d.mts +1519 -0
- package/dist/storage-query-CPctdMKX.d.mts.map +1 -0
- package/dist/target-CUKlGrXb.mjs +27 -0
- package/dist/target-CUKlGrXb.mjs.map +1 -0
- package/dist/taxonomies-BpqpXJUE.mjs +707 -0
- package/dist/taxonomies-BpqpXJUE.mjs.map +1 -0
- package/dist/taxonomies-ClCo4IGO.mjs +899 -0
- package/dist/taxonomies-ClCo4IGO.mjs.map +1 -0
- package/dist/taxonomy-Dj1vpw5E.mjs +508 -0
- package/dist/taxonomy-Dj1vpw5E.mjs.map +1 -0
- package/dist/tokens-Ns02GAma.mjs +171 -0
- package/dist/tokens-Ns02GAma.mjs.map +1 -0
- package/dist/transaction-BcJO4Tmc.mjs +29 -0
- package/dist/transaction-BcJO4Tmc.mjs.map +1 -0
- package/dist/transport-B8P1xsqk.mjs +136 -0
- package/dist/transport-B8P1xsqk.mjs.map +1 -0
- package/dist/transport-BLHZZcD_.d.mts +42 -0
- package/dist/transport-BLHZZcD_.d.mts.map +1 -0
- package/dist/trusted-proxy-Cg7SuD15.mjs +51 -0
- package/dist/trusted-proxy-Cg7SuD15.mjs.map +1 -0
- package/dist/turnstile-DWCSh_Qc.mjs +53 -0
- package/dist/turnstile-DWCSh_Qc.mjs.map +1 -0
- package/dist/types-B3RkqvDW.mjs +156 -0
- package/dist/types-B3RkqvDW.mjs.map +1 -0
- package/dist/types-BkUg2yHx.mjs +92 -0
- package/dist/types-BkUg2yHx.mjs.map +1 -0
- package/dist/types-BtuppOTV.mjs +16 -0
- package/dist/types-BtuppOTV.mjs.map +1 -0
- package/dist/types-CCR3ivXE.d.mts +363 -0
- package/dist/types-CCR3ivXE.d.mts.map +1 -0
- package/dist/types-CSHgU_-_.mjs +18 -0
- package/dist/types-CSHgU_-_.mjs.map +1 -0
- package/dist/types-CbwqGOXm.d.mts +766 -0
- package/dist/types-CbwqGOXm.d.mts.map +1 -0
- package/dist/types-D4RGIc2I.d.mts +198 -0
- package/dist/types-D4RGIc2I.d.mts.map +1 -0
- package/dist/types-DEHidMEk.d.mts +1637 -0
- package/dist/types-DEHidMEk.d.mts.map +1 -0
- package/dist/types-DQeU2SR7.d.mts +279 -0
- package/dist/types-DQeU2SR7.d.mts.map +1 -0
- package/dist/types-DxQWoQLA.d.mts +264 -0
- package/dist/types-DxQWoQLA.d.mts.map +1 -0
- package/dist/types-FBBnGZ2Y.d.mts +198 -0
- package/dist/types-FBBnGZ2Y.d.mts.map +1 -0
- package/dist/types-ZCnlropY.mjs +69 -0
- package/dist/types-ZCnlropY.mjs.map +1 -0
- package/dist/types-_Qtyawiy.d.mts +124 -0
- package/dist/types-_Qtyawiy.d.mts.map +1 -0
- package/dist/types-gC6FAoa_.d.mts +75 -0
- package/dist/types-gC6FAoa_.d.mts.map +1 -0
- package/dist/types-k--LneIF.mjs +22 -0
- package/dist/types-k--LneIF.mjs.map +1 -0
- package/dist/upload-attempts-2xdnoKGe.mjs +27 -0
- package/dist/upload-attempts-2xdnoKGe.mjs.map +1 -0
- package/dist/url-pattern-3m3reMzr.mjs +33 -0
- package/dist/url-pattern-3m3reMzr.mjs.map +1 -0
- package/dist/user-DroRntkx.mjs +171 -0
- package/dist/user-DroRntkx.mjs.map +1 -0
- package/dist/utils-CC2oNGV8.mjs +435 -0
- package/dist/utils-CC2oNGV8.mjs.map +1 -0
- package/dist/validate-BCP9HNDn.mjs +384 -0
- package/dist/validate-BCP9HNDn.mjs.map +1 -0
- package/dist/validate-CyQ7I3xF.d.mts +410 -0
- package/dist/validate-CyQ7I3xF.d.mts.map +1 -0
- package/dist/validate-DANX1-Qi.mjs +120 -0
- package/dist/validate-DANX1-Qi.mjs.map +1 -0
- package/dist/validation-DBy6WF94.mjs +216 -0
- package/dist/validation-DBy6WF94.mjs.map +1 -0
- package/dist/version-B57E4Uo7.mjs +7 -0
- package/dist/version-B57E4Uo7.mjs.map +1 -0
- package/dist/widgets-wQ7Xcgq8.mjs +126 -0
- package/dist/widgets-wQ7Xcgq8.mjs.map +1 -0
- package/dist/wxr-taxonomies-DIHfvEDt.mjs +406 -0
- package/dist/wxr-taxonomies-DIHfvEDt.mjs.map +1 -0
- package/dist/wxr-taxonomies-DU2ZSiGc.d.mts +34 -0
- package/dist/wxr-taxonomies-DU2ZSiGc.d.mts.map +1 -0
- package/dist/zod-generator-D_yHIWfs.mjs +329 -0
- package/dist/zod-generator-D_yHIWfs.mjs.map +1 -0
- package/package.json +36 -11
- package/src/api/errors.ts +16 -0
- package/src/api/handlers/backup.ts +11 -5
- package/src/api/handlers/content.ts +160 -6
- package/src/api/handlers/dashboard.ts +31 -1
- package/src/api/handlers/index.ts +3 -0
- package/src/api/handlers/manifest.ts +4 -6
- package/src/api/handlers/marketplace.ts +99 -15
- package/src/api/handlers/media-upload.ts +31 -4
- package/src/api/handlers/plugin-settings.ts +35 -3
- package/src/api/handlers/redirects.ts +221 -138
- package/src/api/handlers/registry.ts +62 -21
- package/src/api/handlers/revision.ts +14 -26
- package/src/api/handlers/snapshot.ts +4 -1
- package/src/api/handlers/taxonomies.ts +70 -5
- package/src/api/handlers/validation.ts +120 -19
- package/src/api/openapi/document.ts +34 -17
- package/src/api/schemas/content.ts +26 -14
- package/src/api/schemas/entry-lock.ts +9 -0
- package/src/api/schemas/search.ts +4 -0
- package/src/api/types.ts +2 -0
- package/src/astro/integration/index.ts +16 -3
- package/src/astro/integration/routes.ts +84 -0
- package/src/astro/integration/runtime.ts +31 -23
- package/src/astro/integration/virtual-modules.ts +4 -0
- package/src/astro/integration/vite-config.ts +1 -0
- package/src/astro/middleware/auth.ts +25 -4
- package/src/astro/middleware/request-context.ts +28 -10
- package/src/astro/middleware.ts +17 -1
- package/src/astro/prefetch.ts +2 -2
- package/src/astro/routes/api/admin/comments/[id]/status.ts +22 -58
- package/src/astro/routes/api/admin/plugins/[id]/disable.ts +2 -15
- package/src/astro/routes/api/admin/plugins/[id]/enable.ts +2 -25
- package/src/astro/routes/api/admin/plugins/[id]/uninstall.ts +1 -0
- package/src/astro/routes/api/admin/plugins/[id]/update.ts +23 -4
- package/src/astro/routes/api/admin/plugins/marketplace/[id]/install.ts +12 -2
- package/src/astro/routes/api/admin/plugins/registry/[id]/uninstall.ts +1 -0
- package/src/astro/routes/api/admin/plugins/registry/[id]/update.ts +29 -10
- package/src/astro/routes/api/admin/plugins/registry/artifact.ts +8 -2
- package/src/astro/routes/api/admin/plugins/registry/install.ts +15 -4
- package/src/astro/routes/api/admin/plugins/registry/verify.ts +2 -1
- package/src/astro/routes/api/admin/plugins/updates.ts +6 -1
- package/src/astro/routes/api/admin/scheduled-policy-rejections/[collection]/[id].ts +34 -0
- package/src/astro/routes/api/comments/[collection]/[contentId]/index.ts +4 -259
- package/src/astro/routes/api/content/[collection]/[id]/plugin-extensions/[pluginId]/[kind]/[extensionId].ts +29 -0
- package/src/astro/routes/api/content/[collection]/[id]/publish.ts +10 -3
- package/src/astro/routes/api/content/[collection]/[id]/schedule.ts +10 -1
- package/src/astro/routes/api/content/[collection]/[id]/unpublish.ts +5 -1
- package/src/astro/routes/api/health.ts +23 -0
- package/src/astro/routes/api/manifest.ts +14 -4
- package/src/astro/routes/api/mcp.ts +2 -1
- package/src/astro/routes/api/media/asset/[id]/[filename].ts +50 -0
- package/src/astro/routes/api/plugins/[pluginId]/[...path].ts +13 -81
- package/src/astro/routes/api/redirects/[id].ts +0 -3
- package/src/astro/routes/api/redirects/index.ts +0 -2
- package/src/astro/routes/api/search/index.ts +1 -0
- package/src/astro/routes/api/visual-editing/action-token.ts +36 -0
- package/src/astro/routes/api/visual-editing/content/[collection]/[id]/publish.ts +32 -0
- package/src/astro/routes/api/visual-editing/toolbar-labels.ts +16 -0
- package/src/astro/routes/sitemap-[collection].xml.ts +7 -4
- package/src/astro/types.ts +70 -9
- package/src/cli/commands/bundle-utils.ts +19 -19
- package/src/cli/commands/bundle.ts +9 -6
- package/src/cli/commands/content.ts +1 -1
- package/src/cli/commands/doctor.ts +25 -0
- package/src/cli/commands/export-seed.ts +193 -56
- package/src/cli/commands/migrate.ts +71 -23
- package/src/cli/commands/publish.ts +2 -2
- package/src/comments/public-submission.ts +246 -0
- package/src/comments/service.ts +59 -12
- package/src/components/EmDashHead.astro +1 -0
- package/src/components/widgets/Archives.astro +6 -5
- package/src/config/secrets.ts +25 -11
- package/src/content/known-fields.ts +44 -0
- package/src/database/connection.ts +5 -1
- package/src/database/content-datetime.ts +123 -0
- package/src/database/datetime-storage.ts +452 -0
- package/src/database/dialect-helpers.ts +36 -1
- package/src/database/migration-lock.ts +140 -0
- package/src/database/migrations/078_menu_item_translation_groups.ts +15 -0
- package/src/database/migrations/079_datetime_normalization.ts +13 -0
- package/src/database/migrations/080_content_translation_locale_unique.ts +88 -0
- package/src/database/migrations/081_redirect_write_guards.ts +257 -0
- package/src/database/migrations/082_taxonomy_translation_locale_unique.ts +49 -0
- package/src/database/migrations/runner.ts +57 -15
- package/src/database/pg-migration-lock.ts +2 -2
- package/src/database/repositories/byline.ts +9 -0
- package/src/database/repositories/comment.ts +86 -0
- package/src/database/repositories/content.ts +391 -69
- package/src/database/repositories/media.ts +35 -4
- package/src/database/repositories/menu.ts +1 -0
- package/src/database/repositories/options.ts +46 -4
- package/src/database/repositories/redirect.ts +259 -64
- package/src/database/repositories/revision.ts +116 -17
- package/src/database/repositories/taxonomy.ts +34 -0
- package/src/database/repositories/types.ts +2 -0
- package/src/database/types.ts +11 -0
- package/src/datetime-normalization.ts +311 -0
- package/src/db/node-sqlite-compat.ts +3 -2
- package/src/emdash-runtime.ts +1925 -422
- package/src/fields/image.ts +2 -0
- package/src/i18n/config.ts +6 -6
- package/src/i18n/resolve.ts +54 -11
- package/src/index.ts +87 -0
- package/src/loader.ts +14 -0
- package/src/mcp/server.ts +194 -64
- package/src/media/usage/extractor.ts +50 -15
- package/src/media/usage/types.ts +1 -1
- package/src/menus/index.ts +49 -16
- package/src/migrations/direct-executor.ts +40 -2
- package/src/migrations/index.ts +1 -0
- package/src/migrations/protocol.ts +11 -1
- package/src/plugin-test-runtime.ts +17 -0
- package/src/plugin-types.ts +119 -21
- package/src/plugins/adapt-sandbox-entry.ts +34 -27
- package/src/plugins/content-access.ts +170 -0
- package/src/plugins/content-policy.ts +74 -0
- package/src/plugins/context.ts +742 -150
- package/src/plugins/cron.ts +18 -10
- package/src/plugins/define-plugin.ts +55 -54
- package/src/plugins/editor-draft.ts +257 -0
- package/src/plugins/hooks.ts +129 -2
- package/src/plugins/host.ts +29 -0
- package/src/plugins/http-route-dispatch.ts +389 -0
- package/src/plugins/http-wire.ts +180 -0
- package/src/plugins/index.ts +88 -3
- package/src/plugins/install-finalization.ts +77 -0
- package/src/plugins/lifecycle.ts +47 -0
- package/src/plugins/manifest-schema.ts +314 -58
- package/src/plugins/media.ts +166 -0
- package/src/plugins/request-meta.ts +12 -2
- package/src/plugins/route-wire.ts +304 -0
- package/src/plugins/routes.ts +38 -5
- package/src/plugins/sandbox/index.ts +4 -0
- package/src/plugins/sandbox/proxy.ts +129 -0
- package/src/plugins/sandbox/types.ts +67 -5
- package/src/plugins/secret-redactor.ts +65 -0
- package/src/plugins/settings.ts +303 -0
- package/src/plugins/state.ts +26 -0
- package/src/plugins/types.ts +488 -15
- package/src/query.ts +55 -1
- package/src/registry/authoritative-records.ts +26 -0
- package/src/registry/config.ts +70 -22
- package/src/registry/testing.ts +100 -0
- package/src/registry/types.ts +7 -64
- package/src/scheduled-publish.ts +70 -3
- package/src/schema/index.ts +1 -0
- package/src/schema/registry.ts +45 -1
- package/src/schema/types.ts +7 -0
- package/src/schema/zod-generator.ts +5 -13
- package/src/search/fts-manager.ts +3 -3
- package/src/search/query.ts +32 -5
- package/src/search/types.ts +8 -0
- package/src/seed/apply.ts +37 -3
- package/src/seed/types.ts +6 -1
- package/src/seo/hreflang.ts +9 -6
- package/src/settings/index.ts +53 -11
- package/src/visual-editing/action-token.ts +31 -0
- package/src/visual-editing/toolbar-bootstrap.ts +31 -6
- package/src/visual-editing/toolbar.ts +103 -12
- package/src/widgets/archives.ts +10 -9
- package/src/widgets/index.ts +11 -1
- package/dist/activation-DyNTe_Tl.mjs +0 -382
- package/dist/activation-DyNTe_Tl.mjs.map +0 -1
- package/dist/adapters-DCEgOBXi.d.mts +0 -171
- package/dist/adapters-DCEgOBXi.d.mts.map +0 -1
- package/dist/after-CBU2vkoO.mjs +0 -96
- package/dist/after-CBU2vkoO.mjs.map +0 -1
- package/dist/allowed-origins-GFUVavRj.mjs +0 -116
- package/dist/allowed-origins-GFUVavRj.mjs.map +0 -1
- package/dist/api-BvxJmnFY.mjs +0 -10094
- package/dist/api-BvxJmnFY.mjs.map +0 -1
- package/dist/api-tokens-xpGqMHrC.mjs +0 -163
- package/dist/api-tokens-xpGqMHrC.mjs.map +0 -1
- package/dist/apply-DLmM3R7f.mjs +0 -984
- package/dist/apply-DLmM3R7f.mjs.map +0 -1
- package/dist/artifact-fetch-P2JXVwOq.mjs +0 -972
- package/dist/artifact-fetch-P2JXVwOq.mjs.map +0 -1
- package/dist/authorize-C2QHlWSS.mjs +0 -40
- package/dist/authorize-C2QHlWSS.mjs.map +0 -1
- package/dist/backup-oS8ft5Cm.mjs +0 -241
- package/dist/backup-oS8ft5Cm.mjs.map +0 -1
- package/dist/base64-CvLhUKQv.mjs +0 -63
- package/dist/base64-CvLhUKQv.mjs.map +0 -1
- package/dist/bundle-CL0JjIPx.mjs +0 -663
- package/dist/bundle-CL0JjIPx.mjs.map +0 -1
- package/dist/byline-Vdi85CsZ.mjs +0 -902
- package/dist/byline-Vdi85CsZ.mjs.map +0 -1
- package/dist/byline-fields-DPVRFMz2.mjs +0 -123
- package/dist/byline-fields-DPVRFMz2.mjs.map +0 -1
- package/dist/byline-registry-BxDGIO0I.mjs +0 -406
- package/dist/byline-registry-BxDGIO0I.mjs.map +0 -1
- package/dist/bylines-BX8QhcTk.mjs +0 -232
- package/dist/bylines-BX8QhcTk.mjs.map +0 -1
- package/dist/bylines-w-E1IEQd.mjs +0 -214
- package/dist/bylines-w-E1IEQd.mjs.map +0 -1
- package/dist/cache--7HKu5Xm.mjs +0 -108
- package/dist/cache--7HKu5Xm.mjs.map +0 -1
- package/dist/capture-triggers-CeAsC76Z.mjs +0 -362
- package/dist/capture-triggers-CeAsC76Z.mjs.map +0 -1
- package/dist/challenge-store-BIOak-tp.mjs +0 -51
- package/dist/challenge-store-BIOak-tp.mjs.map +0 -1
- package/dist/chrome-tags-DzDQBCjX.mjs +0 -24
- package/dist/chrome-tags-DzDQBCjX.mjs.map +0 -1
- package/dist/chunks-VG_tyqnP.mjs +0 -25
- package/dist/chunks-VG_tyqnP.mjs.map +0 -1
- package/dist/collection-deletion-BCwaWTDw.mjs +0 -436
- package/dist/collection-deletion-BCwaWTDw.mjs.map +0 -1
- package/dist/collection-slugs-cache-7lTmNzeA.mjs +0 -85
- package/dist/collection-slugs-cache-7lTmNzeA.mjs.map +0 -1
- package/dist/comment-reaction-CDyvPQRj.mjs +0 -85
- package/dist/comment-reaction-CDyvPQRj.mjs.map +0 -1
- package/dist/comment-vxOzWbZN.mjs +0 -255
- package/dist/comment-vxOzWbZN.mjs.map +0 -1
- package/dist/comments-VzmVLyaC.mjs +0 -204
- package/dist/comments-VzmVLyaC.mjs.map +0 -1
- package/dist/components-CL6Wkdk-.mjs +0 -108
- package/dist/components-CL6Wkdk-.mjs.map +0 -1
- package/dist/config--eWjQJE5.mjs +0 -217
- package/dist/config--eWjQJE5.mjs.map +0 -1
- package/dist/config-C3EBstHi.mjs +0 -72
- package/dist/config-C3EBstHi.mjs.map +0 -1
- package/dist/config-CGAhyOjP.d.mts +0 -6653
- package/dist/config-CGAhyOjP.d.mts.map +0 -1
- package/dist/config-ChFzshGd.d.mts +0 -34
- package/dist/config-ChFzshGd.d.mts.map +0 -1
- package/dist/content-CNfMWuhY.mjs +0 -1841
- package/dist/content-CNfMWuhY.mjs.map +0 -1
- package/dist/content-list-query-B8d4UQp9.d.mts +0 -26
- package/dist/content-list-query-B8d4UQp9.d.mts.map +0 -1
- package/dist/content-refresh-GTMyi2Xy.mjs +0 -3588
- package/dist/content-refresh-GTMyi2Xy.mjs.map +0 -1
- package/dist/content-repair-CIMt5C0U.mjs +0 -440
- package/dist/content-repair-CIMt5C0U.mjs.map +0 -1
- package/dist/context-C9PB8vGd.mjs +0 -1308
- package/dist/context-C9PB8vGd.mjs.map +0 -1
- package/dist/cron-DHAy9oyq.mjs +0 -277
- package/dist/cron-DHAy9oyq.mjs.map +0 -1
- package/dist/dashboard-BNSvAN8A.mjs +0 -140
- package/dist/dashboard-BNSvAN8A.mjs.map +0 -1
- package/dist/db-errors-Cl-sKYTm.mjs +0 -55
- package/dist/db-errors-Cl-sKYTm.mjs.map +0 -1
- package/dist/default-ByZ0JqZo.mjs +0 -81
- package/dist/default-ByZ0JqZo.mjs.map +0 -1
- package/dist/deferred-tasks-Cu4NSJpa.d.mts +0 -9
- package/dist/deferred-tasks-Cu4NSJpa.d.mts.map +0 -1
- package/dist/dev-typegen-DHT7lcMU.mjs +0 -29
- package/dist/dev-typegen-DHT7lcMU.mjs.map +0 -1
- package/dist/device-flow-Cf6bhCCT.mjs +0 -466
- package/dist/device-flow-Cf6bhCCT.mjs.map +0 -1
- package/dist/dialect-helpers-BcQvkHgn.mjs +0 -283
- package/dist/dialect-helpers-BcQvkHgn.mjs.map +0 -1
- package/dist/direct-executor-yAyUGSqB.mjs +0 -85
- package/dist/direct-executor-yAyUGSqB.mjs.map +0 -1
- package/dist/dist-BAsh8dbf.mjs +0 -810
- package/dist/dist-BAsh8dbf.mjs.map +0 -1
- package/dist/email-console-DNup1Fku.mjs +0 -50
- package/dist/email-console-DNup1Fku.mjs.map +0 -1
- package/dist/enrich-t2Xvjdqa.mjs +0 -194
- package/dist/enrich-t2Xvjdqa.mjs.map +0 -1
- package/dist/entry-lock-BEr8gDkG.mjs +0 -163
- package/dist/entry-lock-BEr8gDkG.mjs.map +0 -1
- package/dist/entry-lock-CGAtrwAR.d.mts +0 -3409
- package/dist/entry-lock-CGAtrwAR.d.mts.map +0 -1
- package/dist/entry-lock-DIYHAaSw.mjs +0 -1281
- package/dist/entry-lock-DIYHAaSw.mjs.map +0 -1
- package/dist/entry-locks-BEcX7ET0.mjs +0 -167
- package/dist/entry-locks-BEcX7ET0.mjs.map +0 -1
- package/dist/error-BDcFyoRt.mjs +0 -90
- package/dist/error-BDcFyoRt.mjs.map +0 -1
- package/dist/errors-DvMdNrgf.mjs +0 -434
- package/dist/errors-DvMdNrgf.mjs.map +0 -1
- package/dist/escape-B3asJC6W.mjs +0 -9
- package/dist/escape-B3asJC6W.mjs.map +0 -1
- package/dist/field-defs-cache-Cf5FHK0M.mjs +0 -77
- package/dist/field-defs-cache-Cf5FHK0M.mjs.map +0 -1
- package/dist/focal-point-BeWFo6Xx.mjs +0 -23
- package/dist/focal-point-BeWFo6Xx.mjs.map +0 -1
- package/dist/fts-manager-iddym8cd.mjs +0 -413
- package/dist/fts-manager-iddym8cd.mjs.map +0 -1
- package/dist/hash-BRweX6jz.mjs +0 -37
- package/dist/hash-BRweX6jz.mjs.map +0 -1
- package/dist/hook-result-BrshYHLx.d.mts +0 -31
- package/dist/hook-result-BrshYHLx.d.mts.map +0 -1
- package/dist/hreflang-CQpu5bMy.d.mts +0 -48
- package/dist/hreflang-CQpu5bMy.d.mts.map +0 -1
- package/dist/hreflang-DshnweTC.mjs +0 -103
- package/dist/hreflang-DshnweTC.mjs.map +0 -1
- package/dist/identity-CjGKDq8J.mjs +0 -35
- package/dist/identity-CjGKDq8J.mjs.map +0 -1
- package/dist/import-D96g2otw.mjs +0 -2020
- package/dist/import-D96g2otw.mjs.map +0 -1
- package/dist/index-1ECYpfiF.d.mts +0 -278
- package/dist/index-1ECYpfiF.d.mts.map +0 -1
- package/dist/init-lock-CFNBe_iH.mjs +0 -56
- package/dist/init-lock-CFNBe_iH.mjs.map +0 -1
- package/dist/load-DPtY9cZo.mjs +0 -28
- package/dist/load-DPtY9cZo.mjs.map +0 -1
- package/dist/loader-WJi6GFRn.mjs +0 -1004
- package/dist/loader-WJi6GFRn.mjs.map +0 -1
- package/dist/manifest-builder-BfNlGQIA.mjs +0 -189
- package/dist/manifest-builder-BfNlGQIA.mjs.map +0 -1
- package/dist/manifest-schema-CILooI5J.mjs +0 -301
- package/dist/manifest-schema-CILooI5J.mjs.map +0 -1
- package/dist/media-BBm8Wg3f.mjs +0 -318
- package/dist/media-BBm8Wg3f.mjs.map +0 -1
- package/dist/media-C1EIZKh1.mjs +0 -464
- package/dist/media-C1EIZKh1.mjs.map +0 -1
- package/dist/media-allowlist-elXJgb_K.mjs +0 -44
- package/dist/media-allowlist-elXJgb_K.mjs.map +0 -1
- package/dist/media-folders-DASfX_DH.mjs +0 -210
- package/dist/media-folders-DASfX_DH.mjs.map +0 -1
- package/dist/media-upload-C7_AQJ5v.mjs +0 -147
- package/dist/media-upload-C7_AQJ5v.mjs.map +0 -1
- package/dist/media-url-8dVl1loq.mjs +0 -43
- package/dist/media-url-8dVl1loq.mjs.map +0 -1
- package/dist/media-usage-C1EswMTq.mjs +0 -1833
- package/dist/media-usage-C1EswMTq.mjs.map +0 -1
- package/dist/media-usage-activation-CrHNltlL.mjs +0 -78
- package/dist/media-usage-activation-CrHNltlL.mjs.map +0 -1
- package/dist/media-usage-work-C5B1zT1c.mjs +0 -586
- package/dist/media-usage-work-C5B1zT1c.mjs.map +0 -1
- package/dist/media-usage-work-IkQx_Yz6.mjs +0 -152
- package/dist/media-usage-work-IkQx_Yz6.mjs.map +0 -1
- package/dist/media-usage-write-fence-B9anjOSg.mjs +0 -42
- package/dist/media-usage-write-fence-B9anjOSg.mjs.map +0 -1
- package/dist/menus-D8mC4eaN.mjs +0 -3989
- package/dist/menus-D8mC4eaN.mjs.map +0 -1
- package/dist/menus-UdwjHZJC.mjs +0 -752
- package/dist/menus-UdwjHZJC.mjs.map +0 -1
- package/dist/mime-DYpsOAny.mjs +0 -36
- package/dist/mime-DYpsOAny.mjs.map +0 -1
- package/dist/mode-Dm4BHhRH.mjs +0 -23
- package/dist/mode-Dm4BHhRH.mjs.map +0 -1
- package/dist/node-sqlite-compat-2sezm-Zd.mjs +0 -46
- package/dist/node-sqlite-compat-2sezm-Zd.mjs.map +0 -1
- package/dist/normalize-4nkKGsuW.mjs +0 -191
- package/dist/normalize-4nkKGsuW.mjs.map +0 -1
- package/dist/oauth-authorization-BxE_lURD.mjs +0 -274
- package/dist/oauth-authorization-BxE_lURD.mjs.map +0 -1
- package/dist/oauth-clients-DJIdOdq0.mjs +0 -266
- package/dist/oauth-clients-DJIdOdq0.mjs.map +0 -1
- package/dist/oauth-state-store-CsdxP57n.mjs +0 -50
- package/dist/oauth-state-store-CsdxP57n.mjs.map +0 -1
- package/dist/oauth-user-lookup-HzzW-dkF.mjs +0 -26
- package/dist/oauth-user-lookup-HzzW-dkF.mjs.map +0 -1
- package/dist/object-cache-DVKnyOfy.mjs +0 -534
- package/dist/object-cache-DVKnyOfy.mjs.map +0 -1
- package/dist/options-D1FBiAv1.mjs +0 -172
- package/dist/options-D1FBiAv1.mjs.map +0 -1
- package/dist/options-D8Y0VHc7.d.mts +0 -227
- package/dist/options-D8Y0VHc7.d.mts.map +0 -1
- package/dist/parse-WRg5C3NX.mjs +0 -81
- package/dist/parse-WRg5C3NX.mjs.map +0 -1
- package/dist/passkey-config-qIdO-wF6.mjs +0 -46
- package/dist/passkey-config-qIdO-wF6.mjs.map +0 -1
- package/dist/patterns-DC8CLptu.mjs +0 -145
- package/dist/patterns-DC8CLptu.mjs.map +0 -1
- package/dist/placeholder-COrvARyD.d.mts +0 -306
- package/dist/placeholder-COrvARyD.d.mts.map +0 -1
- package/dist/policy-XCfb-IE9.mjs +0 -45
- package/dist/policy-XCfb-IE9.mjs.map +0 -1
- package/dist/portable-text-BS3d5n-0.mjs +0 -286
- package/dist/portable-text-BS3d5n-0.mjs.map +0 -1
- package/dist/preview-BxwsGgGp.mjs +0 -107
- package/dist/preview-BxwsGgGp.mjs.map +0 -1
- package/dist/protocol-CLn58-nw.d.mts +0 -52
- package/dist/protocol-CLn58-nw.d.mts.map +0 -1
- package/dist/public-url-FWWAvnre.mjs +0 -101
- package/dist/public-url-FWWAvnre.mjs.map +0 -1
- package/dist/query-DygOte9M.mjs +0 -890
- package/dist/query-DygOte9M.mjs.map +0 -1
- package/dist/query-gtXT03Wc.mjs +0 -41
- package/dist/query-gtXT03Wc.mjs.map +0 -1
- package/dist/rate-limit-CQUPm0dh.mjs +0 -120
- package/dist/rate-limit-CQUPm0dh.mjs.map +0 -1
- package/dist/redirect-D1cWafi6.mjs +0 -17
- package/dist/redirect-D1cWafi6.mjs.map +0 -1
- package/dist/redirect-DId44BS1.mjs +0 -326
- package/dist/redirect-DId44BS1.mjs.map +0 -1
- package/dist/redirects-DN-ZE33W.mjs +0 -579
- package/dist/redirects-DN-ZE33W.mjs.map +0 -1
- package/dist/registry-DTqaqxed.mjs +0 -1195
- package/dist/registry-DTqaqxed.mjs.map +0 -1
- package/dist/relation-DxgCHOBw.mjs +0 -334
- package/dist/relation-DxgCHOBw.mjs.map +0 -1
- package/dist/relations-KKDSLUwS.mjs +0 -403
- package/dist/relations-KKDSLUwS.mjs.map +0 -1
- package/dist/relations-rOmbndUJ.mjs +0 -309
- package/dist/relations-rOmbndUJ.mjs.map +0 -1
- package/dist/request-cache-DAZZmesc.mjs +0 -104
- package/dist/request-cache-DAZZmesc.mjs.map +0 -1
- package/dist/request-meta-BgjUQLQ-.mjs +0 -140
- package/dist/request-meta-BgjUQLQ-.mjs.map +0 -1
- package/dist/resolve-Cy0aWSRj.mjs +0 -176
- package/dist/resolve-Cy0aWSRj.mjs.map +0 -1
- package/dist/runner-CfwysRM0.d.mts +0 -67
- package/dist/runner-CfwysRM0.d.mts.map +0 -1
- package/dist/runner-nEzvnogG.mjs +0 -4800
- package/dist/runner-nEzvnogG.mjs.map +0 -1
- package/dist/schema-CRu38Pr5.mjs +0 -9
- package/dist/schema-CRu38Pr5.mjs.map +0 -1
- package/dist/schema-DifxndJx.mjs +0 -420
- package/dist/schema-DifxndJx.mjs.map +0 -1
- package/dist/scopes-D5A1OZbq.mjs +0 -27
- package/dist/scopes-D5A1OZbq.mjs.map +0 -1
- package/dist/search-DEPFSBFq.mjs +0 -439
- package/dist/search-DEPFSBFq.mjs.map +0 -1
- package/dist/secrets-CdfzLdoO.mjs +0 -330
- package/dist/secrets-CdfzLdoO.mjs.map +0 -1
- package/dist/sections-3X52kmIR.mjs +0 -346
- package/dist/sections-3X52kmIR.mjs.map +0 -1
- package/dist/seo-Bw68KxRc.mjs +0 -133
- package/dist/seo-Bw68KxRc.mjs.map +0 -1
- package/dist/seo-C4AmbsMU.mjs +0 -114
- package/dist/seo-C4AmbsMU.mjs.map +0 -1
- package/dist/service-J_-Vgo7R.mjs +0 -195
- package/dist/service-J_-Vgo7R.mjs.map +0 -1
- package/dist/session-user-CbnMMwk6.mjs +0 -51
- package/dist/session-user-CbnMMwk6.mjs.map +0 -1
- package/dist/settings-AnEFYICn.mjs +0 -51
- package/dist/settings-AnEFYICn.mjs.map +0 -1
- package/dist/settings-DcMjREe5.mjs +0 -258
- package/dist/settings-DcMjREe5.mjs.map +0 -1
- package/dist/setup-complete-BClXXTvr.mjs +0 -26
- package/dist/setup-complete-BClXXTvr.mjs.map +0 -1
- package/dist/setup-nonce-BheRa4RG.mjs +0 -25
- package/dist/setup-nonce-BheRa4RG.mjs.map +0 -1
- package/dist/single-flight-cache-jaswDzmQ.mjs +0 -104
- package/dist/single-flight-cache-jaswDzmQ.mjs.map +0 -1
- package/dist/site-url-Bqf-ea3N.mjs +0 -16
- package/dist/site-url-Bqf-ea3N.mjs.map +0 -1
- package/dist/slugify-B994zkXC.mjs +0 -17
- package/dist/slugify-B994zkXC.mjs.map +0 -1
- package/dist/snapshot-C4CtXntb.mjs +0 -232
- package/dist/snapshot-C4CtXntb.mjs.map +0 -1
- package/dist/ssrf-gl4gFNhw.mjs +0 -406
- package/dist/ssrf-gl4gFNhw.mjs.map +0 -1
- package/dist/state-1F6IOhdQ.mjs +0 -136
- package/dist/state-1F6IOhdQ.mjs.map +0 -1
- package/dist/status-Cenfk_r5.mjs +0 -30
- package/dist/status-Cenfk_r5.mjs.map +0 -1
- package/dist/target-CRzeTs8G.mjs +0 -27
- package/dist/target-CRzeTs8G.mjs.map +0 -1
- package/dist/taxonomies-BOdxuZpV.mjs +0 -844
- package/dist/taxonomies-BOdxuZpV.mjs.map +0 -1
- package/dist/taxonomies-NcFDq5Gg.mjs +0 -707
- package/dist/taxonomies-NcFDq5Gg.mjs.map +0 -1
- package/dist/taxonomy-DP1vny4K.mjs +0 -492
- package/dist/taxonomy-DP1vny4K.mjs.map +0 -1
- package/dist/tokens-CDk8ox9p.mjs +0 -171
- package/dist/tokens-CDk8ox9p.mjs.map +0 -1
- package/dist/transaction-0KOpOyMu.mjs +0 -29
- package/dist/transaction-0KOpOyMu.mjs.map +0 -1
- package/dist/transport-BVn4tVb9.d.mts +0 -42
- package/dist/transport-BVn4tVb9.d.mts.map +0 -1
- package/dist/transport-DP0JI-8i.mjs +0 -136
- package/dist/transport-DP0JI-8i.mjs.map +0 -1
- package/dist/trusted-proxy-BTM6UxqD.mjs +0 -51
- package/dist/trusted-proxy-BTM6UxqD.mjs.map +0 -1
- package/dist/types-2n848aVW.d.mts +0 -198
- package/dist/types-2n848aVW.d.mts.map +0 -1
- package/dist/types-A2cN6a4a.mjs +0 -3
- package/dist/types-BMXnRIrX.mjs +0 -144
- package/dist/types-BMXnRIrX.mjs.map +0 -1
- package/dist/types-BouXpOsa.d.mts +0 -1446
- package/dist/types-BouXpOsa.d.mts.map +0 -1
- package/dist/types-ByG2coLw.mjs +0 -16
- package/dist/types-ByG2coLw.mjs.map +0 -1
- package/dist/types-CQPWhPxE.mjs +0 -92
- package/dist/types-CQPWhPxE.mjs.map +0 -1
- package/dist/types-DEfNJ__A.d.mts +0 -75
- package/dist/types-DEfNJ__A.d.mts.map +0 -1
- package/dist/types-DKcKSbtB.d.mts +0 -273
- package/dist/types-DKcKSbtB.d.mts.map +0 -1
- package/dist/types-DRYs7uTL.d.mts +0 -198
- package/dist/types-DRYs7uTL.d.mts.map +0 -1
- package/dist/types-DaEg7KX2.d.mts +0 -363
- package/dist/types-DaEg7KX2.d.mts.map +0 -1
- package/dist/types-LU8utpP_.d.mts +0 -262
- package/dist/types-LU8utpP_.d.mts.map +0 -1
- package/dist/types-VpYfPUxN.d.mts +0 -124
- package/dist/types-VpYfPUxN.d.mts.map +0 -1
- package/dist/types-c9GP7Dj5.mjs +0 -18
- package/dist/types-c9GP7Dj5.mjs.map +0 -1
- package/dist/types-tJWDK__M.d.mts +0 -756
- package/dist/types-tJWDK__M.d.mts.map +0 -1
- package/dist/upload-attempts-C6S2y-lp.mjs +0 -27
- package/dist/upload-attempts-C6S2y-lp.mjs.map +0 -1
- package/dist/url-pattern-UYtxVTuj.mjs +0 -33
- package/dist/url-pattern-UYtxVTuj.mjs.map +0 -1
- package/dist/user-DIsIXogT.mjs +0 -171
- package/dist/user-DIsIXogT.mjs.map +0 -1
- package/dist/utils-BicP5Qbg.mjs +0 -435
- package/dist/utils-BicP5Qbg.mjs.map +0 -1
- package/dist/validate-BpwoDOgt.mjs +0 -120
- package/dist/validate-BpwoDOgt.mjs.map +0 -1
- package/dist/validate-D8VPn4Hv.mjs +0 -384
- package/dist/validate-D8VPn4Hv.mjs.map +0 -1
- package/dist/validate-Df6Dvwbw.d.mts +0 -405
- package/dist/validate-Df6Dvwbw.d.mts.map +0 -1
- package/dist/validation-CzMJn9Ku.mjs +0 -155
- package/dist/validation-CzMJn9Ku.mjs.map +0 -1
- package/dist/version-CK67_SXX.mjs +0 -7
- package/dist/version-CK67_SXX.mjs.map +0 -1
- package/dist/widgets-RFVAxQl3.mjs +0 -122
- package/dist/widgets-RFVAxQl3.mjs.map +0 -1
- package/dist/wxr-taxonomies-BX4yQL9s.d.mts +0 -34
- package/dist/wxr-taxonomies-BX4yQL9s.d.mts.map +0 -1
- package/dist/wxr-taxonomies-Csdp7yde.mjs +0 -406
- package/dist/wxr-taxonomies-Csdp7yde.mjs.map +0 -1
- package/dist/zod-generator-CNRGdnBY.mjs +0 -331
- package/dist/zod-generator-CNRGdnBY.mjs.map +0 -1
- /package/dist/{api-tokens-B_lfpmH3.mjs → api-tokens-DS1VzN7_.mjs} +0 -0
- /package/dist/{ssrf-TQhaljuI.mjs → ssrf-BRpTDMV6.mjs} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.mjs","names":[],"sources":["../../../../../../../src/astro/routes/api/content/[collection]/[id]/publish.ts"],"sourcesContent":["/**\n * Publish content - promotes draft to live\n *\n * POST /_emdash/api/content/{collection}/{id}/publish\n *\n * Optional JSON body: { publishedAt?: string, _rev?: string, overrideLock?: boolean }\n * publishedAt — ISO 8601 datetime to backdate the publish (e.g. when\n * migrating content). Writing publishedAt requires content:publish_any.\n * Without it, the existing published_at is preserved on re-publish and\n * falls back to the current time on first publish.\n */\n\nimport { hasPermission } from \"@emdash-cms/auth\";\nimport type { APIRoute } from \"astro\";\n\nimport { requireOwnerPerm } from \"#api/authorize.js\";\nimport { apiError, mapErrorStatus, unwrapResult } from \"#api/error.js\";\nimport { claimEntryLockForWrite } from \"#api/handlers/entry-lock.js\";\nimport { isParseError, parseOptionalBody } from \"#api/parse.js\";\nimport { contentPublishBody } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\nexport
|
|
1
|
+
{"version":3,"file":"publish.mjs","names":[],"sources":["../../../../../../../src/astro/routes/api/content/[collection]/[id]/publish.ts"],"sourcesContent":["/**\n * Publish content - promotes draft to live\n *\n * POST /_emdash/api/content/{collection}/{id}/publish\n *\n * Optional JSON body: { publishedAt?: string, _rev?: string, overrideLock?: boolean }\n * publishedAt — ISO 8601 datetime to backdate the publish (e.g. when\n * migrating content). Writing publishedAt requires content:publish_any.\n * Without it, the existing published_at is preserved on re-publish and\n * falls back to the current time on first publish.\n */\n\nimport { hasPermission } from \"@emdash-cms/auth\";\nimport type { APIContext, APIRoute } from \"astro\";\n\nimport { requireOwnerPerm } from \"#api/authorize.js\";\nimport { apiError, mapErrorStatus, unwrapResult } from \"#api/error.js\";\nimport { claimEntryLockForWrite } from \"#api/handlers/entry-lock.js\";\nimport { isParseError, parseOptionalBody } from \"#api/parse.js\";\nimport { contentPublishBody } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\nexport async function publishContent(\n\t{ params, request, locals, url, cache }: APIContext,\n\toriginSource: \"api\" | \"visual-editor\",\n): Promise<Response> {\n\tconst { emdash, user } = locals;\n\tconst collection = params.collection!;\n\tconst id = params.id!;\n\n\tif (!emdash?.handleContentPublish || !emdash?.handleContentGet) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\t// Body is optional — empty body means use the legacy behavior (preserve\n\t// or default published_at). Pass `publishedAt` to backdate.\n\tconst body = await parseOptionalBody(request, contentPublishBody, {});\n\tif (isParseError(body)) return body;\n\n\tconst locale = url.searchParams.get(\"locale\") || undefined;\n\n\t// Fetch item to check ownership\n\tconst existing = await emdash.handleContentGet(collection, id, locale);\n\tif (!existing.success) {\n\t\treturn apiError(\n\t\t\texisting.error?.code ?? \"UNKNOWN_ERROR\",\n\t\t\texisting.error?.message ?? \"Unknown error\",\n\t\t\tmapErrorStatus(existing.error?.code),\n\t\t);\n\t}\n\n\tconst existingData =\n\t\texisting.data && typeof existing.data === \"object\"\n\t\t\t? // eslint-disable-next-line typescript/no-unsafe-type-assertion -- handler returns unknown data; narrowed by typeof check above\n\t\t\t\t(existing.data as Record<string, unknown>)\n\t\t\t: undefined;\n\tconst existingItem =\n\t\texistingData?.item && typeof existingData.item === \"object\"\n\t\t\t? // eslint-disable-next-line typescript/no-unsafe-type-assertion -- narrowed by typeof check above\n\t\t\t\t(existingData.item as Record<string, unknown>)\n\t\t\t: existingData;\n\tconst authorId = typeof existingItem?.authorId === \"string\" ? existingItem.authorId : \"\";\n\tconst denied = requireOwnerPerm(user, authorId, \"content:publish_own\", \"content:publish_any\");\n\tif (denied) return denied;\n\n\t// Schema narrows `publishedAt` to `string | undefined`; null is rejected\n\t// at the schema layer (publish has no semantic meaning for \"clear\").\n\tconst publishedAt = body?.publishedAt;\n\n\t// Backdating overwrites historical record — gate behind publish_any\n\t// regardless of ownership.\n\tif (publishedAt !== undefined && !hasPermission(user, \"content:publish_any\")) {\n\t\treturn apiError(\n\t\t\t\"FORBIDDEN\",\n\t\t\t\"Setting publishedAt requires content:publish_any permission\",\n\t\t\t403,\n\t\t);\n\t}\n\n\tconst resolvedId = typeof existingItem?.id === \"string\" ? existingItem.id : id;\n\n\tconst refusal = await claimEntryLockForWrite(emdash.db, collection, resolvedId, user!.id, {\n\t\toverride: body?.overrideLock,\n\t});\n\tif (refusal) {\n\t\treturn apiError(refusal.code, refusal.message, mapErrorStatus(refusal.code), {\n\t\t\t...refusal.details,\n\t\t});\n\t}\n\n\tconst result = await emdash.handleContentPublish(collection, resolvedId, {\n\t\tpublishedAt,\n\t\t_rev: body?._rev,\n\t\tactor: { id: user!.id, role: user!.role },\n\t\torigin: { source: originSource },\n\t});\n\n\tif (!result.success) return unwrapResult(result);\n\n\tif (cache?.enabled) await cache.invalidate({ tags: [collection, resolvedId] });\n\n\treturn unwrapResult(result);\n}\n\nexport const POST: APIRoute = (context) => publishContent(context, \"api\");\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,YAAY;AAEzB,eAAsB,eACrB,EAAE,QAAQ,SAAS,QAAQ,KAAK,SAChC,cACoB;CACpB,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,aAAa,OAAO;CAC1B,MAAM,KAAK,OAAO;AAElB,KAAI,CAAC,QAAQ,wBAAwB,CAAC,QAAQ,iBAC7C,QAAO,SAAS,kBAAkB,6BAA6B,IAAI;CAKpE,MAAM,OAAO,MAAM,kBAAkB,SAAS,oBAAoB,EAAE,CAAC;AACrE,KAAI,aAAa,KAAK,CAAE,QAAO;CAE/B,MAAM,SAAS,IAAI,aAAa,IAAI,SAAS,IAAI;CAGjD,MAAM,WAAW,MAAM,OAAO,iBAAiB,YAAY,IAAI,OAAO;AACtE,KAAI,CAAC,SAAS,QACb,QAAO,SACN,SAAS,OAAO,QAAQ,iBACxB,SAAS,OAAO,WAAW,iBAC3B,eAAe,SAAS,OAAO,KAAK,CACpC;CAGF,MAAM,eACL,SAAS,QAAQ,OAAO,SAAS,SAAS,WAEvC,SAAS,OACT;CACJ,MAAM,eACL,cAAc,QAAQ,OAAO,aAAa,SAAS,WAEhD,aAAa,OACb;CAEJ,MAAM,SAAS,iBAAiB,MADf,OAAO,cAAc,aAAa,WAAW,aAAa,WAAW,IACtC,uBAAuB,sBAAsB;AAC7F,KAAI,OAAQ,QAAO;CAInB,MAAM,cAAc,MAAM;AAI1B,KAAI,gBAAgB,UAAa,CAAC,cAAc,MAAM,sBAAsB,CAC3E,QAAO,SACN,aACA,+DACA,IACA;CAGF,MAAM,aAAa,OAAO,cAAc,OAAO,WAAW,aAAa,KAAK;CAE5E,MAAM,UAAU,MAAM,uBAAuB,OAAO,IAAI,YAAY,YAAY,KAAM,IAAI,EACzF,UAAU,MAAM,cAChB,CAAC;AACF,KAAI,QACH,QAAO,SAAS,QAAQ,MAAM,QAAQ,SAAS,eAAe,QAAQ,KAAK,EAAE,EAC5E,GAAG,QAAQ,SACX,CAAC;CAGH,MAAM,SAAS,MAAM,OAAO,qBAAqB,YAAY,YAAY;EACxE;EACA,MAAM,MAAM;EACZ,OAAO;GAAE,IAAI,KAAM;GAAI,MAAM,KAAM;GAAM;EACzC,QAAQ,EAAE,QAAQ,cAAc;EAChC,CAAC;AAEF,KAAI,CAAC,OAAO,QAAS,QAAO,aAAa,OAAO;AAEhD,KAAI,OAAO,QAAS,OAAM,MAAM,WAAW,EAAE,MAAM,CAAC,YAAY,WAAW,EAAE,CAAC;AAE9E,QAAO,aAAa,OAAO;;AAG5B,MAAa,QAAkB,YAAY,eAAe,SAAS,MAAM"}
|
|
@@ -1,29 +1,31 @@
|
|
|
1
|
-
import "../../../../../../../../dialect-helpers-
|
|
2
|
-
import "../../../../../../../../config-
|
|
3
|
-
import "../../../../../../../../
|
|
4
|
-
import "../../../../../../../../
|
|
5
|
-
import
|
|
6
|
-
import "../../../../../../../../
|
|
7
|
-
import "../../../../../../../../
|
|
8
|
-
import "../../../../../../../../
|
|
9
|
-
import "../../../../../../../../
|
|
10
|
-
import "../../../../../../../../
|
|
11
|
-
import "../../../../../../../../
|
|
12
|
-
import "../../../../../../../../
|
|
13
|
-
import "../../../../../../../../
|
|
14
|
-
import "../../../../../../../../
|
|
15
|
-
import "../../../../../../../../
|
|
16
|
-
import "../../../../../../../../
|
|
17
|
-
import "../../../../../../../../
|
|
18
|
-
import
|
|
19
|
-
import { i as
|
|
20
|
-
import {
|
|
21
|
-
import "../../../../../../../../
|
|
22
|
-
import
|
|
23
|
-
import "../../../../../../../../
|
|
1
|
+
import "../../../../../../../../dialect-helpers-CtYdsX4W.mjs";
|
|
2
|
+
import "../../../../../../../../config-CGVeT8Hc.mjs";
|
|
3
|
+
import "../../../../../../../../datetime-normalization-PeiEdcRY.mjs";
|
|
4
|
+
import "../../../../../../../../after-PcEvMY_6.mjs";
|
|
5
|
+
import "../../../../../../../../base64-DvnNgP7e.mjs";
|
|
6
|
+
import { t as ContentRepository } from "../../../../../../../../content-DZ3B5qtA.mjs";
|
|
7
|
+
import "../../../../../../../../object-cache-DlSVbn5Y.mjs";
|
|
8
|
+
import "../../../../../../../../slugify-T5GHH42D.mjs";
|
|
9
|
+
import "../../../../../../../../types-BkUg2yHx.mjs";
|
|
10
|
+
import "../../../../../../../../request-cache-DaMhSQdx.mjs";
|
|
11
|
+
import "../../../../../../../../relation-XTAtOpJO.mjs";
|
|
12
|
+
import "../../../../../../../../fts-manager-DMb0sbIQ.mjs";
|
|
13
|
+
import "../../../../../../../../collection-slugs-cache-D9auiKmI.mjs";
|
|
14
|
+
import "../../../../../../../../capture-triggers-gxQxnxrJ.mjs";
|
|
15
|
+
import "../../../../../../../../activation-CaMfdBt1.mjs";
|
|
16
|
+
import "../../../../../../../../collection-deletion-C3Xixmkx.mjs";
|
|
17
|
+
import "../../../../../../../../content-refresh-BHLHJgyt.mjs";
|
|
18
|
+
import "../../../../../../../../registry-CkuPoZs7.mjs";
|
|
19
|
+
import { a as unwrapResult, i as requireDb, r as handleError, t as apiError } from "../../../../../../../../error-CCTCskie.mjs";
|
|
20
|
+
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../../../../../parse-Cr379Av9.mjs";
|
|
21
|
+
import { g as cursorPaginationQuery } from "../../../../../../../../redirects-BCiTaIQ-.mjs";
|
|
22
|
+
import "../../../../../../../../entry-lock-D3C99MXS.mjs";
|
|
23
|
+
import "../../../../../../../../comments-BVzzt6x5.mjs";
|
|
24
|
+
import { l as setReferenceChildrenBody } from "../../../../../../../../relations-B4w-G5U9.mjs";
|
|
25
|
+
import "../../../../../../../../status-DLoBmcDz.mjs";
|
|
24
26
|
import "../../../../../../../../api/schemas/index.mjs";
|
|
25
|
-
import { n as requireOwnerPerm, r as requirePerm } from "../../../../../../../../authorize-
|
|
26
|
-
import { n as handleReferenceChildrenSet, t as handleReferenceChildrenGet } from "../../../../../../../../relations-
|
|
27
|
+
import { n as requireOwnerPerm, r as requirePerm } from "../../../../../../../../authorize-BXpfMpp0.mjs";
|
|
28
|
+
import { n as handleReferenceChildrenSet, t as handleReferenceChildrenGet } from "../../../../../../../../relations-O63JWBRj.mjs";
|
|
27
29
|
import { hasPermission } from "@emdash-cms/auth";
|
|
28
30
|
|
|
29
31
|
//#region src/astro/routes/api/content/[collection]/[id]/references/[relation]/children.ts
|
package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"children.mjs","names":[],"sources":["../../../../../../../../../src/astro/routes/api/content/[collection]/[id]/references/[relation]/children.ts"],"sourcesContent":["/**\n * Content-entry reference children endpoint (parent side)\n *\n * GET /_emdash/api/content/:collection/:id/references/:relation/children\n * POST /_emdash/api/content/:collection/:id/references/:relation/children\n */\n\nimport { hasPermission } from \"@emdash-cms/auth\";\nimport type { APIRoute } from \"astro\";\n\nimport { requireOwnerPerm, requirePerm } from \"#api/authorize.js\";\nimport { apiError, handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport { handleReferenceChildrenGet, handleReferenceChildrenSet } from \"#api/handlers/relations.js\";\nimport { isParseError, parseBody, parseQuery } from \"#api/parse.js\";\nimport { cursorPaginationQuery, setReferenceChildrenBody } from \"#api/schemas.js\";\nimport { ContentRepository } from \"#db/repositories/content.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { collection, id, relation } = params;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst denied = requirePerm(user, \"content:read\");\n\tif (denied) return denied;\n\n\tif (!collection || !id || !relation) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"Collection, id, and relation required\", 400);\n\t}\n\n\tconst query = parseQuery(new URL(request.url), cursorPaginationQuery);\n\tif (isParseError(query)) return query;\n\n\ttry {\n\t\tconst result = await handleReferenceChildrenGet(\n\t\t\temdash.db,\n\t\t\tcollection,\n\t\t\tid,\n\t\t\trelation,\n\t\t\t{ limit: query.limit, cursor: query.cursor },\n\t\t\thasPermission(user, \"content:read_drafts\"),\n\t\t);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to get references\", \"REFERENCES_GET_ERROR\");\n\t}\n};\n\nexport const POST: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { collection, id, relation } = params;\n\n\tif (!collection || !id || !relation) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"Collection, id, and relation required\", 400);\n\t}\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\t// Gate on the base edit capability BEFORE the existence lookup. Resolving the\n\t// entry first would let a user with no edit permission distinguish real ids\n\t// (403) from missing ids (404) — an existence oracle. Mirrors the taxonomy\n\t// edge POST, which checks `content:edit_own` before fetching the entry.\n\tconst denied = requirePerm(user, \"content:edit_own\");\n\tif (denied) return denied;\n\n\t// Resolve the parent entry to gate on its author (ownership-aware write).\n\tconst parent = await new ContentRepository(emdash.db).findByIdOrSlug(collection, id);\n\tif (!parent) return apiError(\"NOT_FOUND\", \"Content not found\", 404);\n\n\tconst editDenied = requireOwnerPerm(\n\t\tuser,\n\t\tparent.authorId ?? \"\",\n\t\t\"content:edit_own\",\n\t\t\"content:edit_any\",\n\t);\n\tif (editDenied) return editDenied;\n\n\ttry {\n\t\tconst body = await parseBody(request, setReferenceChildrenBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst result = await handleReferenceChildrenSet(\n\t\t\temdash.db,\n\t\t\tcollection,\n\t\t\tid,\n\t\t\trelation,\n\t\t\tbody.childIds,\n\t\t);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to set references\", \"REFERENCES_SET_ERROR\");\n\t}\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"children.mjs","names":[],"sources":["../../../../../../../../../src/astro/routes/api/content/[collection]/[id]/references/[relation]/children.ts"],"sourcesContent":["/**\n * Content-entry reference children endpoint (parent side)\n *\n * GET /_emdash/api/content/:collection/:id/references/:relation/children\n * POST /_emdash/api/content/:collection/:id/references/:relation/children\n */\n\nimport { hasPermission } from \"@emdash-cms/auth\";\nimport type { APIRoute } from \"astro\";\n\nimport { requireOwnerPerm, requirePerm } from \"#api/authorize.js\";\nimport { apiError, handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport { handleReferenceChildrenGet, handleReferenceChildrenSet } from \"#api/handlers/relations.js\";\nimport { isParseError, parseBody, parseQuery } from \"#api/parse.js\";\nimport { cursorPaginationQuery, setReferenceChildrenBody } from \"#api/schemas.js\";\nimport { ContentRepository } from \"#db/repositories/content.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { collection, id, relation } = params;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst denied = requirePerm(user, \"content:read\");\n\tif (denied) return denied;\n\n\tif (!collection || !id || !relation) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"Collection, id, and relation required\", 400);\n\t}\n\n\tconst query = parseQuery(new URL(request.url), cursorPaginationQuery);\n\tif (isParseError(query)) return query;\n\n\ttry {\n\t\tconst result = await handleReferenceChildrenGet(\n\t\t\temdash.db,\n\t\t\tcollection,\n\t\t\tid,\n\t\t\trelation,\n\t\t\t{ limit: query.limit, cursor: query.cursor },\n\t\t\thasPermission(user, \"content:read_drafts\"),\n\t\t);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to get references\", \"REFERENCES_GET_ERROR\");\n\t}\n};\n\nexport const POST: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { collection, id, relation } = params;\n\n\tif (!collection || !id || !relation) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"Collection, id, and relation required\", 400);\n\t}\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\t// Gate on the base edit capability BEFORE the existence lookup. Resolving the\n\t// entry first would let a user with no edit permission distinguish real ids\n\t// (403) from missing ids (404) — an existence oracle. Mirrors the taxonomy\n\t// edge POST, which checks `content:edit_own` before fetching the entry.\n\tconst denied = requirePerm(user, \"content:edit_own\");\n\tif (denied) return denied;\n\n\t// Resolve the parent entry to gate on its author (ownership-aware write).\n\tconst parent = await new ContentRepository(emdash.db).findByIdOrSlug(collection, id);\n\tif (!parent) return apiError(\"NOT_FOUND\", \"Content not found\", 404);\n\n\tconst editDenied = requireOwnerPerm(\n\t\tuser,\n\t\tparent.authorId ?? \"\",\n\t\t\"content:edit_own\",\n\t\t\"content:edit_any\",\n\t);\n\tif (editDenied) return editDenied;\n\n\ttry {\n\t\tconst body = await parseBody(request, setReferenceChildrenBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst result = await handleReferenceChildrenSet(\n\t\t\temdash.db,\n\t\t\tcollection,\n\t\t\tid,\n\t\t\trelation,\n\t\t\tbody.childIds,\n\t\t);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to set references\", \"REFERENCES_SET_ERROR\");\n\t}\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAa,YAAY;AAEzB,MAAa,MAAgB,OAAO,EAAE,QAAQ,SAAS,aAAa;CACnE,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,EAAE,YAAY,IAAI,aAAa;CAErC,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAClB,MAAM,SAAS,YAAY,MAAM,eAAe;AAChD,KAAI,OAAQ,QAAO;AAEnB,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAC1B,QAAO,SAAS,oBAAoB,yCAAyC,IAAI;CAGlF,MAAM,QAAQ,WAAW,IAAI,IAAI,QAAQ,IAAI,EAAE,sBAAsB;AACrE,KAAI,aAAa,MAAM,CAAE,QAAO;AAEhC,KAAI;AASH,SAAO,aARQ,MAAM,2BACpB,OAAO,IACP,YACA,IACA,UACA;GAAE,OAAO,MAAM;GAAO,QAAQ,MAAM;GAAQ,EAC5C,cAAc,MAAM,sBAAsB,CAC1C,CAC0B;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,4BAA4B,uBAAuB;;;AAI/E,MAAa,OAAiB,OAAO,EAAE,QAAQ,SAAS,aAAa;CACpE,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,EAAE,YAAY,IAAI,aAAa;AAErC,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAC1B,QAAO,SAAS,oBAAoB,yCAAyC,IAAI;CAGlF,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAKlB,MAAM,SAAS,YAAY,MAAM,mBAAmB;AACpD,KAAI,OAAQ,QAAO;CAGnB,MAAM,SAAS,MAAM,IAAI,kBAAkB,OAAO,GAAG,CAAC,eAAe,YAAY,GAAG;AACpF,KAAI,CAAC,OAAQ,QAAO,SAAS,aAAa,qBAAqB,IAAI;CAEnE,MAAM,aAAa,iBAClB,MACA,OAAO,YAAY,IACnB,oBACA,mBACA;AACD,KAAI,WAAY,QAAO;AAEvB,KAAI;EACH,MAAM,OAAO,MAAM,UAAU,SAAS,yBAAyB;AAC/D,MAAI,aAAa,KAAK,CAAE,QAAO;AAS/B,SAAO,aAPQ,MAAM,2BACpB,OAAO,IACP,YACA,IACA,UACA,KAAK,SACL,CAC0B;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,4BAA4B,uBAAuB"}
|
|
@@ -1,29 +1,31 @@
|
|
|
1
|
-
import "../../../../../../../../dialect-helpers-
|
|
2
|
-
import "../../../../../../../../config-
|
|
3
|
-
import "../../../../../../../../
|
|
4
|
-
import "../../../../../../../../
|
|
5
|
-
import "../../../../../../../../
|
|
6
|
-
import "../../../../../../../../
|
|
7
|
-
import "../../../../../../../../
|
|
8
|
-
import "../../../../../../../../
|
|
9
|
-
import "../../../../../../../../
|
|
10
|
-
import "../../../../../../../../
|
|
11
|
-
import "../../../../../../../../
|
|
12
|
-
import "../../../../../../../../
|
|
13
|
-
import "../../../../../../../../
|
|
14
|
-
import "../../../../../../../../
|
|
15
|
-
import "../../../../../../../../
|
|
16
|
-
import "../../../../../../../../
|
|
17
|
-
import "../../../../../../../../
|
|
18
|
-
import
|
|
19
|
-
import { i as
|
|
20
|
-
import {
|
|
21
|
-
import "../../../../../../../../
|
|
22
|
-
import "../../../../../../../../
|
|
23
|
-
import "../../../../../../../../
|
|
1
|
+
import "../../../../../../../../dialect-helpers-CtYdsX4W.mjs";
|
|
2
|
+
import "../../../../../../../../config-CGVeT8Hc.mjs";
|
|
3
|
+
import "../../../../../../../../datetime-normalization-PeiEdcRY.mjs";
|
|
4
|
+
import "../../../../../../../../after-PcEvMY_6.mjs";
|
|
5
|
+
import "../../../../../../../../base64-DvnNgP7e.mjs";
|
|
6
|
+
import "../../../../../../../../content-DZ3B5qtA.mjs";
|
|
7
|
+
import "../../../../../../../../object-cache-DlSVbn5Y.mjs";
|
|
8
|
+
import "../../../../../../../../slugify-T5GHH42D.mjs";
|
|
9
|
+
import "../../../../../../../../types-BkUg2yHx.mjs";
|
|
10
|
+
import "../../../../../../../../request-cache-DaMhSQdx.mjs";
|
|
11
|
+
import "../../../../../../../../relation-XTAtOpJO.mjs";
|
|
12
|
+
import "../../../../../../../../fts-manager-DMb0sbIQ.mjs";
|
|
13
|
+
import "../../../../../../../../collection-slugs-cache-D9auiKmI.mjs";
|
|
14
|
+
import "../../../../../../../../capture-triggers-gxQxnxrJ.mjs";
|
|
15
|
+
import "../../../../../../../../activation-CaMfdBt1.mjs";
|
|
16
|
+
import "../../../../../../../../collection-deletion-C3Xixmkx.mjs";
|
|
17
|
+
import "../../../../../../../../content-refresh-BHLHJgyt.mjs";
|
|
18
|
+
import "../../../../../../../../registry-CkuPoZs7.mjs";
|
|
19
|
+
import { a as unwrapResult, i as requireDb, r as handleError, t as apiError } from "../../../../../../../../error-CCTCskie.mjs";
|
|
20
|
+
import { i as parseQuery, t as isParseError } from "../../../../../../../../parse-Cr379Av9.mjs";
|
|
21
|
+
import { g as cursorPaginationQuery } from "../../../../../../../../redirects-BCiTaIQ-.mjs";
|
|
22
|
+
import "../../../../../../../../entry-lock-D3C99MXS.mjs";
|
|
23
|
+
import "../../../../../../../../comments-BVzzt6x5.mjs";
|
|
24
|
+
import "../../../../../../../../relations-B4w-G5U9.mjs";
|
|
25
|
+
import "../../../../../../../../status-DLoBmcDz.mjs";
|
|
24
26
|
import "../../../../../../../../api/schemas/index.mjs";
|
|
25
|
-
import { r as requirePerm } from "../../../../../../../../authorize-
|
|
26
|
-
import { r as handleReferenceParentsGet } from "../../../../../../../../relations-
|
|
27
|
+
import { r as requirePerm } from "../../../../../../../../authorize-BXpfMpp0.mjs";
|
|
28
|
+
import { r as handleReferenceParentsGet } from "../../../../../../../../relations-O63JWBRj.mjs";
|
|
27
29
|
import { hasPermission } from "@emdash-cms/auth";
|
|
28
30
|
|
|
29
31
|
//#region src/astro/routes/api/content/[collection]/[id]/references/[relation]/parents.ts
|
package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parents.mjs","names":[],"sources":["../../../../../../../../../src/astro/routes/api/content/[collection]/[id]/references/[relation]/parents.ts"],"sourcesContent":["/**\n * Content-entry reference parents endpoint (child side, read-only backlink)\n *\n * GET /_emdash/api/content/:collection/:id/references/:relation/parents\n */\n\nimport { hasPermission } from \"@emdash-cms/auth\";\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport { handleReferenceParentsGet } from \"#api/handlers/relations.js\";\nimport { isParseError, parseQuery } from \"#api/parse.js\";\nimport { cursorPaginationQuery } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { collection, id, relation } = params;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst denied = requirePerm(user, \"content:read\");\n\tif (denied) return denied;\n\n\tif (!collection || !id || !relation) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"Collection, id, and relation required\", 400);\n\t}\n\n\tconst query = parseQuery(new URL(request.url), cursorPaginationQuery);\n\tif (isParseError(query)) return query;\n\n\ttry {\n\t\tconst result = await handleReferenceParentsGet(\n\t\t\temdash.db,\n\t\t\tcollection,\n\t\t\tid,\n\t\t\trelation,\n\t\t\t{ limit: query.limit, cursor: query.cursor },\n\t\t\thasPermission(user, \"content:read_drafts\"),\n\t\t);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to get references\", \"REFERENCES_GET_ERROR\");\n\t}\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"parents.mjs","names":[],"sources":["../../../../../../../../../src/astro/routes/api/content/[collection]/[id]/references/[relation]/parents.ts"],"sourcesContent":["/**\n * Content-entry reference parents endpoint (child side, read-only backlink)\n *\n * GET /_emdash/api/content/:collection/:id/references/:relation/parents\n */\n\nimport { hasPermission } from \"@emdash-cms/auth\";\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport { handleReferenceParentsGet } from \"#api/handlers/relations.js\";\nimport { isParseError, parseQuery } from \"#api/parse.js\";\nimport { cursorPaginationQuery } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { collection, id, relation } = params;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst denied = requirePerm(user, \"content:read\");\n\tif (denied) return denied;\n\n\tif (!collection || !id || !relation) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"Collection, id, and relation required\", 400);\n\t}\n\n\tconst query = parseQuery(new URL(request.url), cursorPaginationQuery);\n\tif (isParseError(query)) return query;\n\n\ttry {\n\t\tconst result = await handleReferenceParentsGet(\n\t\t\temdash.db,\n\t\t\tcollection,\n\t\t\tid,\n\t\t\trelation,\n\t\t\t{ limit: query.limit, cursor: query.cursor },\n\t\t\thasPermission(user, \"content:read_drafts\"),\n\t\t);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to get references\", \"REFERENCES_GET_ERROR\");\n\t}\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAa,YAAY;AAEzB,MAAa,MAAgB,OAAO,EAAE,QAAQ,SAAS,aAAa;CACnE,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,EAAE,YAAY,IAAI,aAAa;CAErC,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAClB,MAAM,SAAS,YAAY,MAAM,eAAe;AAChD,KAAI,OAAQ,QAAO;AAEnB,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAC1B,QAAO,SAAS,oBAAoB,yCAAyC,IAAI;CAGlF,MAAM,QAAQ,WAAW,IAAI,IAAI,QAAQ,IAAI,EAAE,sBAAsB;AACrE,KAAI,aAAa,MAAM,CAAE,QAAO;AAEhC,KAAI;AASH,SAAO,aARQ,MAAM,0BACpB,OAAO,IACP,YACA,IACA,UACA;GAAE,OAAO,MAAM;GAAO,QAAQ,MAAM;GAAQ,EAC5C,cAAc,MAAM,sBAAsB,CAC1C,CAC0B;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,4BAA4B,uBAAuB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import "../../../../../../base64-
|
|
2
|
-
import "../../../../../../types-
|
|
3
|
-
import { n as mapErrorStatus } from "../../../../../../errors-
|
|
4
|
-
import { a as unwrapResult, t as apiError } from "../../../../../../error-
|
|
5
|
-
import { n as requireOwnerPerm } from "../../../../../../authorize-
|
|
1
|
+
import "../../../../../../base64-DvnNgP7e.mjs";
|
|
2
|
+
import "../../../../../../types-BkUg2yHx.mjs";
|
|
3
|
+
import { n as mapErrorStatus } from "../../../../../../errors-W3PA8HqB.mjs";
|
|
4
|
+
import { a as unwrapResult, t as apiError } from "../../../../../../error-CCTCskie.mjs";
|
|
5
|
+
import { n as requireOwnerPerm } from "../../../../../../authorize-BXpfMpp0.mjs";
|
|
6
6
|
|
|
7
7
|
//#region src/astro/routes/api/content/[collection]/[id]/restore.ts
|
|
8
8
|
const prerender = false;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import "../../../../../../base64-
|
|
2
|
-
import "../../../../../../types-
|
|
3
|
-
import { a as unwrapResult, t as apiError } from "../../../../../../error-
|
|
4
|
-
import { r as requirePerm } from "../../../../../../authorize-
|
|
1
|
+
import "../../../../../../base64-DvnNgP7e.mjs";
|
|
2
|
+
import "../../../../../../types-BkUg2yHx.mjs";
|
|
3
|
+
import { a as unwrapResult, t as apiError } from "../../../../../../error-CCTCskie.mjs";
|
|
4
|
+
import { r as requirePerm } from "../../../../../../authorize-BXpfMpp0.mjs";
|
|
5
5
|
|
|
6
6
|
//#region src/astro/routes/api/content/[collection]/[id]/revisions.ts
|
|
7
7
|
const prerender = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule.d.mts","names":[],"sources":["../../../../../../../src/astro/routes/api/content/[collection]/[id]/schedule.ts"],"mappings":";;;cAea,SAAA;AAAA,cAsBA,IAAA,EAAM,QAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"schedule.d.mts","names":[],"sources":["../../../../../../../src/astro/routes/api/content/[collection]/[id]/schedule.ts"],"mappings":";;;cAea,SAAA;AAAA,cAsBA,IAAA,EAAM,QAAA;AAAA,cAsDN,MAAA,EAAQ,QAAA"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import "../../../../../../dialect-helpers-
|
|
2
|
-
import "../../../../../../config-
|
|
3
|
-
import "../../../../../../base64-
|
|
4
|
-
import "../../../../../../types-
|
|
5
|
-
import "../../../../../../entry-locks-
|
|
6
|
-
import { n as mapErrorStatus } from "../../../../../../errors-
|
|
7
|
-
import { a as unwrapResult, t as apiError } from "../../../../../../error-
|
|
8
|
-
import { n as parseBody, t as isParseError } from "../../../../../../parse-
|
|
9
|
-
import "../../../../../../
|
|
10
|
-
import {
|
|
11
|
-
import "../../../../../../
|
|
12
|
-
import "../../../../../../
|
|
1
|
+
import "../../../../../../dialect-helpers-CtYdsX4W.mjs";
|
|
2
|
+
import "../../../../../../config-CGVeT8Hc.mjs";
|
|
3
|
+
import "../../../../../../base64-DvnNgP7e.mjs";
|
|
4
|
+
import "../../../../../../types-BkUg2yHx.mjs";
|
|
5
|
+
import "../../../../../../entry-locks-CO_KaoU5.mjs";
|
|
6
|
+
import { n as mapErrorStatus } from "../../../../../../errors-W3PA8HqB.mjs";
|
|
7
|
+
import { a as unwrapResult, t as apiError } from "../../../../../../error-CCTCskie.mjs";
|
|
8
|
+
import { n as parseBody, t as isParseError } from "../../../../../../parse-Cr379Av9.mjs";
|
|
9
|
+
import "../../../../../../redirects-BCiTaIQ-.mjs";
|
|
10
|
+
import { er as contentScheduleBody } from "../../../../../../entry-lock-D3C99MXS.mjs";
|
|
11
|
+
import "../../../../../../comments-BVzzt6x5.mjs";
|
|
12
|
+
import "../../../../../../relations-B4w-G5U9.mjs";
|
|
13
|
+
import "../../../../../../status-DLoBmcDz.mjs";
|
|
13
14
|
import "../../../../../../api/schemas/index.mjs";
|
|
14
|
-
import { n as requireOwnerPerm } from "../../../../../../authorize-
|
|
15
|
-
import { t as claimEntryLockForWrite } from "../../../../../../entry-lock-
|
|
15
|
+
import { n as requireOwnerPerm } from "../../../../../../authorize-BXpfMpp0.mjs";
|
|
16
|
+
import { t as claimEntryLockForWrite } from "../../../../../../entry-lock-D9rnj2Lu.mjs";
|
|
16
17
|
|
|
17
18
|
//#region src/astro/routes/api/content/[collection]/[id]/schedule.ts
|
|
18
19
|
const prerender = false;
|
|
@@ -42,7 +43,14 @@ const POST = async ({ params, request, locals, url, cache }) => {
|
|
|
42
43
|
if (denied) return denied;
|
|
43
44
|
const refusal = await claimEntryLockForWrite(emdash.db, collection, resolvedId ?? id, user.id, { override: body.overrideLock });
|
|
44
45
|
if (refusal) return apiError(refusal.code, refusal.message, mapErrorStatus(refusal.code), { ...refusal.details });
|
|
45
|
-
const result = await emdash.handleContentSchedule(collection, resolvedId ?? id, body.scheduledAt
|
|
46
|
+
const result = await emdash.handleContentSchedule(collection, resolvedId ?? id, body.scheduledAt, {
|
|
47
|
+
_rev: body._rev,
|
|
48
|
+
actor: {
|
|
49
|
+
id: user.id,
|
|
50
|
+
role: user.role
|
|
51
|
+
},
|
|
52
|
+
origin: { source: "api" }
|
|
53
|
+
});
|
|
46
54
|
if (!result.success) return unwrapResult(result);
|
|
47
55
|
if (cache?.enabled) await cache.invalidate({ tags: [collection, resolvedId ?? id] });
|
|
48
56
|
return unwrapResult(result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule.mjs","names":[],"sources":["../../../../../../../src/astro/routes/api/content/[collection]/[id]/schedule.ts"],"sourcesContent":["/**\n * Schedule content for future publishing - injected by EmDash integration\n *\n * POST /_emdash/api/content/{collection}/{id}/schedule - Schedule for publishing\n * DELETE /_emdash/api/content/{collection}/{id}/schedule - Unschedule (clear scheduled time)\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requireOwnerPerm } from \"#api/authorize.js\";\nimport { apiError, mapErrorStatus, unwrapResult } from \"#api/error.js\";\nimport { claimEntryLockForWrite } from \"#api/handlers/entry-lock.js\";\nimport { parseBody, isParseError } from \"#api/parse.js\";\nimport { contentScheduleBody } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\n/**\n * Extract author ID from a content item response (shared by POST and DELETE).\n */\nfunction extractOwnership(data: unknown): { authorId: string; resolvedId: string | undefined } {\n\tconst obj =\n\t\tdata && typeof data === \"object\"\n\t\t\t? // eslint-disable-next-line typescript/no-unsafe-type-assertion -- handler returns unknown; narrowed by typeof\n\t\t\t\t(data as Record<string, unknown>)\n\t\t\t: undefined;\n\tconst item =\n\t\tobj?.item && typeof obj.item === \"object\"\n\t\t\t? // eslint-disable-next-line typescript/no-unsafe-type-assertion -- narrowed by typeof\n\t\t\t\t(obj.item as Record<string, unknown>)\n\t\t\t: obj;\n\treturn {\n\t\tauthorId: typeof item?.authorId === \"string\" ? item.authorId : \"\",\n\t\tresolvedId: typeof item?.id === \"string\" ? item.id : undefined,\n\t};\n}\n\nexport const POST: APIRoute = async ({ params, request, locals, url, cache }) => {\n\tconst { emdash, user } = locals;\n\tconst collection = params.collection!;\n\tconst id = params.id!;\n\tconst body = await parseBody(request, contentScheduleBody);\n\tif (isParseError(body)) return body;\n\n\tif (!emdash?.handleContentSchedule || !emdash?.handleContentGet) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\tconst locale = url.searchParams.get(\"locale\") || undefined;\n\n\t// Fetch item to check ownership\n\tconst existing = await emdash.handleContentGet(collection, id, locale);\n\tif (!existing.success) {\n\t\treturn apiError(\n\t\t\texisting.error?.code ?? \"UNKNOWN_ERROR\",\n\t\t\texisting.error?.message ?? \"Unknown error\",\n\t\t\tmapErrorStatus(existing.error?.code),\n\t\t);\n\t}\n\n\tconst { authorId, resolvedId } = extractOwnership(existing.data);\n\tconst denied = requireOwnerPerm(user, authorId, \"content:publish_own\", \"content:publish_any\");\n\tif (denied) return denied;\n\n\tconst refusal = await claimEntryLockForWrite(emdash.db, collection, resolvedId ?? id, user!.id, {\n\t\toverride: body.overrideLock,\n\t});\n\tif (refusal) {\n\t\treturn apiError(refusal.code, refusal.message, mapErrorStatus(refusal.code), {\n\t\t\t...refusal.details,\n\t\t});\n\t}\n\n\tconst result = await emdash.handleContentSchedule(
|
|
1
|
+
{"version":3,"file":"schedule.mjs","names":[],"sources":["../../../../../../../src/astro/routes/api/content/[collection]/[id]/schedule.ts"],"sourcesContent":["/**\n * Schedule content for future publishing - injected by EmDash integration\n *\n * POST /_emdash/api/content/{collection}/{id}/schedule - Schedule for publishing\n * DELETE /_emdash/api/content/{collection}/{id}/schedule - Unschedule (clear scheduled time)\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requireOwnerPerm } from \"#api/authorize.js\";\nimport { apiError, mapErrorStatus, unwrapResult } from \"#api/error.js\";\nimport { claimEntryLockForWrite } from \"#api/handlers/entry-lock.js\";\nimport { parseBody, isParseError } from \"#api/parse.js\";\nimport { contentScheduleBody } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\n/**\n * Extract author ID from a content item response (shared by POST and DELETE).\n */\nfunction extractOwnership(data: unknown): { authorId: string; resolvedId: string | undefined } {\n\tconst obj =\n\t\tdata && typeof data === \"object\"\n\t\t\t? // eslint-disable-next-line typescript/no-unsafe-type-assertion -- handler returns unknown; narrowed by typeof\n\t\t\t\t(data as Record<string, unknown>)\n\t\t\t: undefined;\n\tconst item =\n\t\tobj?.item && typeof obj.item === \"object\"\n\t\t\t? // eslint-disable-next-line typescript/no-unsafe-type-assertion -- narrowed by typeof\n\t\t\t\t(obj.item as Record<string, unknown>)\n\t\t\t: obj;\n\treturn {\n\t\tauthorId: typeof item?.authorId === \"string\" ? item.authorId : \"\",\n\t\tresolvedId: typeof item?.id === \"string\" ? item.id : undefined,\n\t};\n}\n\nexport const POST: APIRoute = async ({ params, request, locals, url, cache }) => {\n\tconst { emdash, user } = locals;\n\tconst collection = params.collection!;\n\tconst id = params.id!;\n\tconst body = await parseBody(request, contentScheduleBody);\n\tif (isParseError(body)) return body;\n\n\tif (!emdash?.handleContentSchedule || !emdash?.handleContentGet) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\tconst locale = url.searchParams.get(\"locale\") || undefined;\n\n\t// Fetch item to check ownership\n\tconst existing = await emdash.handleContentGet(collection, id, locale);\n\tif (!existing.success) {\n\t\treturn apiError(\n\t\t\texisting.error?.code ?? \"UNKNOWN_ERROR\",\n\t\t\texisting.error?.message ?? \"Unknown error\",\n\t\t\tmapErrorStatus(existing.error?.code),\n\t\t);\n\t}\n\n\tconst { authorId, resolvedId } = extractOwnership(existing.data);\n\tconst denied = requireOwnerPerm(user, authorId, \"content:publish_own\", \"content:publish_any\");\n\tif (denied) return denied;\n\n\tconst refusal = await claimEntryLockForWrite(emdash.db, collection, resolvedId ?? id, user!.id, {\n\t\toverride: body.overrideLock,\n\t});\n\tif (refusal) {\n\t\treturn apiError(refusal.code, refusal.message, mapErrorStatus(refusal.code), {\n\t\t\t...refusal.details,\n\t\t});\n\t}\n\n\tconst result = await emdash.handleContentSchedule(\n\t\tcollection,\n\t\tresolvedId ?? id,\n\t\tbody.scheduledAt,\n\t\t{\n\t\t\t_rev: body._rev,\n\t\t\tactor: { id: user!.id, role: user!.role },\n\t\t\torigin: { source: \"api\" },\n\t\t},\n\t);\n\n\tif (!result.success) return unwrapResult(result);\n\n\tif (cache?.enabled) await cache.invalidate({ tags: [collection, resolvedId ?? id] });\n\n\treturn unwrapResult(result);\n};\n\nexport const DELETE: APIRoute = async ({ params, locals, url, cache }) => {\n\tconst { emdash, user } = locals;\n\tconst collection = params.collection!;\n\tconst id = params.id!;\n\n\tif (!emdash?.handleContentUnschedule || !emdash?.handleContentGet) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\tconst locale = url.searchParams.get(\"locale\") || undefined;\n\n\t// Fetch item to check ownership\n\tconst existing = await emdash.handleContentGet(collection, id, locale);\n\tif (!existing.success) {\n\t\treturn apiError(\n\t\t\texisting.error?.code ?? \"UNKNOWN_ERROR\",\n\t\t\texisting.error?.message ?? \"Unknown error\",\n\t\t\tmapErrorStatus(existing.error?.code),\n\t\t);\n\t}\n\n\tconst { authorId, resolvedId } = extractOwnership(existing.data);\n\tconst denied = requireOwnerPerm(user, authorId, \"content:publish_own\", \"content:publish_any\");\n\tif (denied) return denied;\n\n\t// DELETE carries no body, so the lock opt-out rides on the query string.\n\tconst refusal = await claimEntryLockForWrite(emdash.db, collection, resolvedId ?? id, user!.id, {\n\t\toverride: url.searchParams.get(\"overrideLock\") === \"true\",\n\t});\n\tif (refusal) {\n\t\treturn apiError(refusal.code, refusal.message, mapErrorStatus(refusal.code), {\n\t\t\t...refusal.details,\n\t\t});\n\t}\n\n\tconst result = await emdash.handleContentUnschedule(collection, resolvedId ?? id);\n\n\tif (!result.success) return unwrapResult(result);\n\n\tif (cache?.enabled) await cache.invalidate({ tags: [collection, resolvedId ?? id] });\n\n\treturn unwrapResult(result);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAeA,MAAa,YAAY;;;;AAKzB,SAAS,iBAAiB,MAAqE;CAC9F,MAAM,MACL,QAAQ,OAAO,SAAS,WAErB,OACA;CACJ,MAAM,OACL,KAAK,QAAQ,OAAO,IAAI,SAAS,WAE9B,IAAI,OACJ;AACJ,QAAO;EACN,UAAU,OAAO,MAAM,aAAa,WAAW,KAAK,WAAW;EAC/D,YAAY,OAAO,MAAM,OAAO,WAAW,KAAK,KAAK;EACrD;;AAGF,MAAa,OAAiB,OAAO,EAAE,QAAQ,SAAS,QAAQ,KAAK,YAAY;CAChF,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,aAAa,OAAO;CAC1B,MAAM,KAAK,OAAO;CAClB,MAAM,OAAO,MAAM,UAAU,SAAS,oBAAoB;AAC1D,KAAI,aAAa,KAAK,CAAE,QAAO;AAE/B,KAAI,CAAC,QAAQ,yBAAyB,CAAC,QAAQ,iBAC9C,QAAO,SAAS,kBAAkB,6BAA6B,IAAI;CAGpE,MAAM,SAAS,IAAI,aAAa,IAAI,SAAS,IAAI;CAGjD,MAAM,WAAW,MAAM,OAAO,iBAAiB,YAAY,IAAI,OAAO;AACtE,KAAI,CAAC,SAAS,QACb,QAAO,SACN,SAAS,OAAO,QAAQ,iBACxB,SAAS,OAAO,WAAW,iBAC3B,eAAe,SAAS,OAAO,KAAK,CACpC;CAGF,MAAM,EAAE,UAAU,eAAe,iBAAiB,SAAS,KAAK;CAChE,MAAM,SAAS,iBAAiB,MAAM,UAAU,uBAAuB,sBAAsB;AAC7F,KAAI,OAAQ,QAAO;CAEnB,MAAM,UAAU,MAAM,uBAAuB,OAAO,IAAI,YAAY,cAAc,IAAI,KAAM,IAAI,EAC/F,UAAU,KAAK,cACf,CAAC;AACF,KAAI,QACH,QAAO,SAAS,QAAQ,MAAM,QAAQ,SAAS,eAAe,QAAQ,KAAK,EAAE,EAC5E,GAAG,QAAQ,SACX,CAAC;CAGH,MAAM,SAAS,MAAM,OAAO,sBAC3B,YACA,cAAc,IACd,KAAK,aACL;EACC,MAAM,KAAK;EACX,OAAO;GAAE,IAAI,KAAM;GAAI,MAAM,KAAM;GAAM;EACzC,QAAQ,EAAE,QAAQ,OAAO;EACzB,CACD;AAED,KAAI,CAAC,OAAO,QAAS,QAAO,aAAa,OAAO;AAEhD,KAAI,OAAO,QAAS,OAAM,MAAM,WAAW,EAAE,MAAM,CAAC,YAAY,cAAc,GAAG,EAAE,CAAC;AAEpF,QAAO,aAAa,OAAO;;AAG5B,MAAa,SAAmB,OAAO,EAAE,QAAQ,QAAQ,KAAK,YAAY;CACzE,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,aAAa,OAAO;CAC1B,MAAM,KAAK,OAAO;AAElB,KAAI,CAAC,QAAQ,2BAA2B,CAAC,QAAQ,iBAChD,QAAO,SAAS,kBAAkB,6BAA6B,IAAI;CAGpE,MAAM,SAAS,IAAI,aAAa,IAAI,SAAS,IAAI;CAGjD,MAAM,WAAW,MAAM,OAAO,iBAAiB,YAAY,IAAI,OAAO;AACtE,KAAI,CAAC,SAAS,QACb,QAAO,SACN,SAAS,OAAO,QAAQ,iBACxB,SAAS,OAAO,WAAW,iBAC3B,eAAe,SAAS,OAAO,KAAK,CACpC;CAGF,MAAM,EAAE,UAAU,eAAe,iBAAiB,SAAS,KAAK;CAChE,MAAM,SAAS,iBAAiB,MAAM,UAAU,uBAAuB,sBAAsB;AAC7F,KAAI,OAAQ,QAAO;CAGnB,MAAM,UAAU,MAAM,uBAAuB,OAAO,IAAI,YAAY,cAAc,IAAI,KAAM,IAAI,EAC/F,UAAU,IAAI,aAAa,IAAI,eAAe,KAAK,QACnD,CAAC;AACF,KAAI,QACH,QAAO,SAAS,QAAQ,MAAM,QAAQ,SAAS,eAAe,QAAQ,KAAK,EAAE,EAC5E,GAAG,QAAQ,SACX,CAAC;CAGH,MAAM,SAAS,MAAM,OAAO,wBAAwB,YAAY,cAAc,GAAG;AAEjF,KAAI,CAAC,OAAO,QAAS,QAAO,aAAa,OAAO;AAEhD,KAAI,OAAO,QAAS,OAAM,MAAM,WAAW,EAAE,MAAM,CAAC,YAAY,cAAc,GAAG,EAAE,CAAC;AAEpF,QAAO,aAAa,OAAO"}
|
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
import "../../../../../../../dialect-helpers-
|
|
2
|
-
import { r as getI18nConfig } from "../../../../../../../config-
|
|
3
|
-
import "../../../../../../../
|
|
4
|
-
import "../../../../../../../
|
|
5
|
-
import
|
|
6
|
-
import "../../../../../../../
|
|
7
|
-
import "../../../../../../../
|
|
8
|
-
import "../../../../../../../
|
|
9
|
-
import
|
|
10
|
-
import "../../../../../../../
|
|
11
|
-
import "../../../../../../../
|
|
12
|
-
import "../../../../../../../
|
|
13
|
-
import "../../../../../../../
|
|
14
|
-
import
|
|
15
|
-
import {
|
|
16
|
-
import { n as
|
|
17
|
-
import "../../../../../../../
|
|
18
|
-
import
|
|
19
|
-
import "../../../../../../../
|
|
20
|
-
import "../../../../../../../
|
|
1
|
+
import "../../../../../../../dialect-helpers-CtYdsX4W.mjs";
|
|
2
|
+
import { r as getI18nConfig } from "../../../../../../../config-CGVeT8Hc.mjs";
|
|
3
|
+
import "../../../../../../../datetime-normalization-PeiEdcRY.mjs";
|
|
4
|
+
import "../../../../../../../after-PcEvMY_6.mjs";
|
|
5
|
+
import "../../../../../../../base64-DvnNgP7e.mjs";
|
|
6
|
+
import { t as ContentRepository } from "../../../../../../../content-DZ3B5qtA.mjs";
|
|
7
|
+
import "../../../../../../../object-cache-DlSVbn5Y.mjs";
|
|
8
|
+
import "../../../../../../../slugify-T5GHH42D.mjs";
|
|
9
|
+
import "../../../../../../../types-BkUg2yHx.mjs";
|
|
10
|
+
import { t as TaxonomyRepository } from "../../../../../../../taxonomy-Dj1vpw5E.mjs";
|
|
11
|
+
import "../../../../../../../resolve-BJIS8wKr.mjs";
|
|
12
|
+
import "../../../../../../../request-cache-DaMhSQdx.mjs";
|
|
13
|
+
import "../../../../../../../loader-t4TxaFiQ.mjs";
|
|
14
|
+
import "../../../../../../../collection-slugs-cache-D9auiKmI.mjs";
|
|
15
|
+
import { d as invalidateTermCache } from "../../../../../../../taxonomies-BpqpXJUE.mjs";
|
|
16
|
+
import { i as requireDb, n as apiSuccess, r as handleError, t as apiError } from "../../../../../../../error-CCTCskie.mjs";
|
|
17
|
+
import { n as parseBody, t as isParseError } from "../../../../../../../parse-Cr379Av9.mjs";
|
|
18
|
+
import "../../../../../../../redirects-BCiTaIQ-.mjs";
|
|
19
|
+
import { rr as contentTermsBody } from "../../../../../../../entry-lock-D3C99MXS.mjs";
|
|
20
|
+
import "../../../../../../../comments-BVzzt6x5.mjs";
|
|
21
|
+
import "../../../../../../../relations-B4w-G5U9.mjs";
|
|
22
|
+
import "../../../../../../../status-DLoBmcDz.mjs";
|
|
21
23
|
import "../../../../../../../api/schemas/index.mjs";
|
|
22
|
-
import { n as requireOwnerPerm, r as requirePerm } from "../../../../../../../authorize-
|
|
24
|
+
import { n as requireOwnerPerm, r as requirePerm } from "../../../../../../../authorize-BXpfMpp0.mjs";
|
|
23
25
|
|
|
24
26
|
//#region src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts
|
|
25
27
|
const prerender = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_taxonomy_.mjs","names":[],"sources":["../../../../../../../../src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts"],"sourcesContent":["/**\n * Content-taxonomy association endpoint\n *\n * GET /_emdash/api/content/:collection/:id/terms/:taxonomy - Get terms for an entry\n * POST /_emdash/api/content/:collection/:id/terms/:taxonomy - Set terms for an entry\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm, requireOwnerPerm } from \"#api/authorize.js\";\nimport { apiError, apiSuccess, handleError, requireDb } from \"#api/error.js\";\nimport { parseBody, isParseError } from \"#api/parse.js\";\nimport { contentTermsBody } from \"#api/schemas.js\";\nimport { ContentRepository } from \"#db/repositories/content.js\";\nimport {\n\tTaxonomyRepository,\n\ttype TaxonomyAssignmentResolution,\n} from \"#db/repositories/taxonomy.js\";\nimport { invalidateTermCache } from \"#taxonomies/index.js\";\n\nimport { getI18nConfig } from \"../../../../../../../i18n/config.js\";\n\nexport const prerender = false;\n\nfunction assignmentResponse(assignments: TaxonomyAssignmentResolution[], entryLocale: string) {\n\tconst config = getI18nConfig();\n\tconst defaultLocale = config?.defaultLocale ?? \"en\";\n\treturn {\n\t\tterms: assignments.flatMap(({ term }) =>\n\t\t\tterm\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: term.id,\n\t\t\t\t\t\t\tname: term.name,\n\t\t\t\t\t\t\tslug: term.slug,\n\t\t\t\t\t\t\tlabel: term.label,\n\t\t\t\t\t\t\tparentId: term.parentId,\n\t\t\t\t\t\t\tlocale: term.locale,\n\t\t\t\t\t\t\ttranslationGroup: term.translationGroup,\n\t\t\t\t\t\t},\n\t\t\t\t\t]\n\t\t\t\t: [],\n\t\t),\n\t\tunresolved: assignments\n\t\t\t.filter(({ term }) => term === null)\n\t\t\t.map(({ translationGroup, availableLocales, translations }) => ({\n\t\t\t\ttranslationGroup,\n\t\t\t\tavailableLocales,\n\t\t\t\ttranslations,\n\t\t\t})),\n\t\tentryLocale,\n\t\tdefaultLocale,\n\t\timplicitDefaultLocale: config === null,\n\t};\n}\n\n/**\n * Get terms assigned to an entry\n */\nexport const GET: APIRoute = async ({ params, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { collection, id, taxonomy } = params;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst denied = requirePerm(user, \"content:read\");\n\tif (denied) return denied;\n\n\tif (!collection || !id || !taxonomy) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"Collection, id, and taxonomy required\", 400);\n\t}\n\n\ttry {\n\t\t// Assignments store content and term translation groups. Resolve the\n\t\t// entry's locale server-side so the response includes only that locale's\n\t\t// term variant.\n\t\tconst entry = await new ContentRepository(emdash.db).findByIdOrSlug(collection, id);\n\t\tif (!entry) return apiError(\"NOT_FOUND\", \"Content not found\", 404);\n\t\tconst locale = entry.locale || getI18nConfig()?.defaultLocale || \"en\";\n\t\tconst defaultLocale = getI18nConfig()?.defaultLocale ?? \"en\";\n\n\t\tconst repo = new TaxonomyRepository(emdash.db);\n\t\tconst assignments = await repo.getTermAssignmentsForEntry(\n\t\t\tcollection,\n\t\t\tentry.id,\n\t\t\ttaxonomy,\n\t\t\tlocale,\n\t\t\tdefaultLocale,\n\t\t);\n\n\t\treturn apiSuccess(assignmentResponse(assignments, locale));\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to get entry terms\", \"TERMS_GET_ERROR\");\n\t}\n};\n\n/**\n * Set terms for an entry (replaces existing)\n */\nexport const POST: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { collection, id, taxonomy } = params;\n\n\tif (!collection || !id || !taxonomy) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"Collection, id, and taxonomy required\", 400);\n\t}\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst denied = requirePerm(user, \"content:edit_own\");\n\tif (denied) return denied;\n\n\tif (!emdash.handleContentGet) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\t// Verify the content exists before modifying its terms\n\tconst existing = await emdash.handleContentGet(collection, id);\n\tif (!existing.success) {\n\t\treturn apiError(\n\t\t\texisting.error?.code ?? \"NOT_FOUND\",\n\t\t\texisting.error?.message ?? \"Content not found\",\n\t\t\texisting.error?.code === \"NOT_FOUND\" ? 404 : 500,\n\t\t);\n\t}\n\n\t// Check ownership for edit permission\n\tconst existingData =\n\t\texisting.data && typeof existing.data === \"object\"\n\t\t\t? // eslint-disable-next-line typescript/no-unsafe-type-assertion -- handler returns unknown data; narrowed by typeof check above\n\t\t\t\t(existing.data as Record<string, unknown>)\n\t\t\t: undefined;\n\t// Handler returns { item, _rev } — extract the item for ownership check\n\tconst existingItem =\n\t\texistingData?.item && typeof existingData.item === \"object\"\n\t\t\t? // eslint-disable-next-line typescript/no-unsafe-type-assertion -- narrowed by typeof check above\n\t\t\t\t(existingData.item as Record<string, unknown>)\n\t\t\t: existingData;\n\tconst authorId = typeof existingItem?.authorId === \"string\" ? existingItem.authorId : \"\";\n\tconst editDenied = requireOwnerPerm(user, authorId, \"content:edit_own\", \"content:edit_any\");\n\tif (editDenied) return editDenied;\n\n\t// Resolve the canonical content ID from the handler result.\n\t// The URL `id` param may be a slug; we must use the real ID for term storage.\n\tconst canonicalId = typeof existingItem?.id === \"string\" ? existingItem.id : id;\n\t// The assignment spans the content translation group, while the response\n\t// includes only the term variant matching this entry's locale.\n\tconst entryLocale =\n\t\ttypeof existingItem?.locale === \"string\"\n\t\t\t? existingItem.locale\n\t\t\t: (getI18nConfig()?.defaultLocale ?? \"en\");\n\n\ttry {\n\t\tconst body = await parseBody(request, contentTermsBody);\n\t\tif (isParseError(body)) return body;\n\t\tconst { termIds } = body;\n\n\t\tconst repo = new TaxonomyRepository(emdash.db);\n\n\t\t// Verify all term IDs exist and belong to the correct taxonomy\n\t\tfor (const termId of termIds) {\n\t\t\tconst term = await repo.findById(termId);\n\t\t\tif (!term) {\n\t\t\t\treturn apiError(\"NOT_FOUND\", `Term ID '${termId}' not found`, 404);\n\t\t\t}\n\t\t\tif (term.name !== taxonomy) {\n\t\t\t\treturn apiError(\n\t\t\t\t\t\"VALIDATION_ERROR\",\n\t\t\t\t\t`Term ID '${termId}' does not belong to taxonomy '${taxonomy}'`,\n\t\t\t\t\t400,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// Set the terms (replaces existing) using the canonical ID\n\t\tawait repo.setTermsForEntry(collection, canonicalId, taxonomy, termIds);\n\n\t\t// Term assignments changed — invalidate the hasAnyTermAssignments cache\n\t\t// so hydration on subsequent reads issues a fresh query.\n\t\tinvalidateTermCache();\n\n\t\t// Get the updated terms using the canonical ID, scoped to the entry locale\n\t\tconst assignments = await repo.getTermAssignmentsForEntry(\n\t\t\tcollection,\n\t\t\tcanonicalId,\n\t\t\ttaxonomy,\n\t\t\tentryLocale,\n\t\t\tgetI18nConfig()?.defaultLocale ?? \"en\",\n\t\t);\n\n\t\treturn apiSuccess(assignmentResponse(assignments, entryLocale));\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to set entry terms\", \"TERMS_SET_ERROR\");\n\t}\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"_taxonomy_.mjs","names":[],"sources":["../../../../../../../../src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts"],"sourcesContent":["/**\n * Content-taxonomy association endpoint\n *\n * GET /_emdash/api/content/:collection/:id/terms/:taxonomy - Get terms for an entry\n * POST /_emdash/api/content/:collection/:id/terms/:taxonomy - Set terms for an entry\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm, requireOwnerPerm } from \"#api/authorize.js\";\nimport { apiError, apiSuccess, handleError, requireDb } from \"#api/error.js\";\nimport { parseBody, isParseError } from \"#api/parse.js\";\nimport { contentTermsBody } from \"#api/schemas.js\";\nimport { ContentRepository } from \"#db/repositories/content.js\";\nimport {\n\tTaxonomyRepository,\n\ttype TaxonomyAssignmentResolution,\n} from \"#db/repositories/taxonomy.js\";\nimport { invalidateTermCache } from \"#taxonomies/index.js\";\n\nimport { getI18nConfig } from \"../../../../../../../i18n/config.js\";\n\nexport const prerender = false;\n\nfunction assignmentResponse(assignments: TaxonomyAssignmentResolution[], entryLocale: string) {\n\tconst config = getI18nConfig();\n\tconst defaultLocale = config?.defaultLocale ?? \"en\";\n\treturn {\n\t\tterms: assignments.flatMap(({ term }) =>\n\t\t\tterm\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: term.id,\n\t\t\t\t\t\t\tname: term.name,\n\t\t\t\t\t\t\tslug: term.slug,\n\t\t\t\t\t\t\tlabel: term.label,\n\t\t\t\t\t\t\tparentId: term.parentId,\n\t\t\t\t\t\t\tlocale: term.locale,\n\t\t\t\t\t\t\ttranslationGroup: term.translationGroup,\n\t\t\t\t\t\t},\n\t\t\t\t\t]\n\t\t\t\t: [],\n\t\t),\n\t\tunresolved: assignments\n\t\t\t.filter(({ term }) => term === null)\n\t\t\t.map(({ translationGroup, availableLocales, translations }) => ({\n\t\t\t\ttranslationGroup,\n\t\t\t\tavailableLocales,\n\t\t\t\ttranslations,\n\t\t\t})),\n\t\tentryLocale,\n\t\tdefaultLocale,\n\t\timplicitDefaultLocale: config === null,\n\t};\n}\n\n/**\n * Get terms assigned to an entry\n */\nexport const GET: APIRoute = async ({ params, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { collection, id, taxonomy } = params;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst denied = requirePerm(user, \"content:read\");\n\tif (denied) return denied;\n\n\tif (!collection || !id || !taxonomy) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"Collection, id, and taxonomy required\", 400);\n\t}\n\n\ttry {\n\t\t// Assignments store content and term translation groups. Resolve the\n\t\t// entry's locale server-side so the response includes only that locale's\n\t\t// term variant.\n\t\tconst entry = await new ContentRepository(emdash.db).findByIdOrSlug(collection, id);\n\t\tif (!entry) return apiError(\"NOT_FOUND\", \"Content not found\", 404);\n\t\tconst locale = entry.locale || getI18nConfig()?.defaultLocale || \"en\";\n\t\tconst defaultLocale = getI18nConfig()?.defaultLocale ?? \"en\";\n\n\t\tconst repo = new TaxonomyRepository(emdash.db);\n\t\tconst assignments = await repo.getTermAssignmentsForEntry(\n\t\t\tcollection,\n\t\t\tentry.id,\n\t\t\ttaxonomy,\n\t\t\tlocale,\n\t\t\tdefaultLocale,\n\t\t);\n\n\t\treturn apiSuccess(assignmentResponse(assignments, locale));\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to get entry terms\", \"TERMS_GET_ERROR\");\n\t}\n};\n\n/**\n * Set terms for an entry (replaces existing)\n */\nexport const POST: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { collection, id, taxonomy } = params;\n\n\tif (!collection || !id || !taxonomy) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"Collection, id, and taxonomy required\", 400);\n\t}\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst denied = requirePerm(user, \"content:edit_own\");\n\tif (denied) return denied;\n\n\tif (!emdash.handleContentGet) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\t// Verify the content exists before modifying its terms\n\tconst existing = await emdash.handleContentGet(collection, id);\n\tif (!existing.success) {\n\t\treturn apiError(\n\t\t\texisting.error?.code ?? \"NOT_FOUND\",\n\t\t\texisting.error?.message ?? \"Content not found\",\n\t\t\texisting.error?.code === \"NOT_FOUND\" ? 404 : 500,\n\t\t);\n\t}\n\n\t// Check ownership for edit permission\n\tconst existingData =\n\t\texisting.data && typeof existing.data === \"object\"\n\t\t\t? // eslint-disable-next-line typescript/no-unsafe-type-assertion -- handler returns unknown data; narrowed by typeof check above\n\t\t\t\t(existing.data as Record<string, unknown>)\n\t\t\t: undefined;\n\t// Handler returns { item, _rev } — extract the item for ownership check\n\tconst existingItem =\n\t\texistingData?.item && typeof existingData.item === \"object\"\n\t\t\t? // eslint-disable-next-line typescript/no-unsafe-type-assertion -- narrowed by typeof check above\n\t\t\t\t(existingData.item as Record<string, unknown>)\n\t\t\t: existingData;\n\tconst authorId = typeof existingItem?.authorId === \"string\" ? existingItem.authorId : \"\";\n\tconst editDenied = requireOwnerPerm(user, authorId, \"content:edit_own\", \"content:edit_any\");\n\tif (editDenied) return editDenied;\n\n\t// Resolve the canonical content ID from the handler result.\n\t// The URL `id` param may be a slug; we must use the real ID for term storage.\n\tconst canonicalId = typeof existingItem?.id === \"string\" ? existingItem.id : id;\n\t// The assignment spans the content translation group, while the response\n\t// includes only the term variant matching this entry's locale.\n\tconst entryLocale =\n\t\ttypeof existingItem?.locale === \"string\"\n\t\t\t? existingItem.locale\n\t\t\t: (getI18nConfig()?.defaultLocale ?? \"en\");\n\n\ttry {\n\t\tconst body = await parseBody(request, contentTermsBody);\n\t\tif (isParseError(body)) return body;\n\t\tconst { termIds } = body;\n\n\t\tconst repo = new TaxonomyRepository(emdash.db);\n\n\t\t// Verify all term IDs exist and belong to the correct taxonomy\n\t\tfor (const termId of termIds) {\n\t\t\tconst term = await repo.findById(termId);\n\t\t\tif (!term) {\n\t\t\t\treturn apiError(\"NOT_FOUND\", `Term ID '${termId}' not found`, 404);\n\t\t\t}\n\t\t\tif (term.name !== taxonomy) {\n\t\t\t\treturn apiError(\n\t\t\t\t\t\"VALIDATION_ERROR\",\n\t\t\t\t\t`Term ID '${termId}' does not belong to taxonomy '${taxonomy}'`,\n\t\t\t\t\t400,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// Set the terms (replaces existing) using the canonical ID\n\t\tawait repo.setTermsForEntry(collection, canonicalId, taxonomy, termIds);\n\n\t\t// Term assignments changed — invalidate the hasAnyTermAssignments cache\n\t\t// so hydration on subsequent reads issues a fresh query.\n\t\tinvalidateTermCache();\n\n\t\t// Get the updated terms using the canonical ID, scoped to the entry locale\n\t\tconst assignments = await repo.getTermAssignmentsForEntry(\n\t\t\tcollection,\n\t\t\tcanonicalId,\n\t\t\ttaxonomy,\n\t\t\tentryLocale,\n\t\t\tgetI18nConfig()?.defaultLocale ?? \"en\",\n\t\t);\n\n\t\treturn apiSuccess(assignmentResponse(assignments, entryLocale));\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to set entry terms\", \"TERMS_SET_ERROR\");\n\t}\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAa,YAAY;AAEzB,SAAS,mBAAmB,aAA6C,aAAqB;CAC7F,MAAM,SAAS,eAAe;CAC9B,MAAM,gBAAgB,QAAQ,iBAAiB;AAC/C,QAAO;EACN,OAAO,YAAY,SAAS,EAAE,WAC7B,OACG,CACA;GACC,IAAI,KAAK;GACT,MAAM,KAAK;GACX,MAAM,KAAK;GACX,OAAO,KAAK;GACZ,UAAU,KAAK;GACf,QAAQ,KAAK;GACb,kBAAkB,KAAK;GACvB,CACD,GACA,EAAE,CACL;EACD,YAAY,YACV,QAAQ,EAAE,WAAW,SAAS,KAAK,CACnC,KAAK,EAAE,kBAAkB,kBAAkB,oBAAoB;GAC/D;GACA;GACA;GACA,EAAE;EACJ;EACA;EACA,uBAAuB,WAAW;EAClC;;;;;AAMF,MAAa,MAAgB,OAAO,EAAE,QAAQ,aAAa;CAC1D,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,EAAE,YAAY,IAAI,aAAa;CAErC,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAClB,MAAM,SAAS,YAAY,MAAM,eAAe;AAChD,KAAI,OAAQ,QAAO;AAEnB,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAC1B,QAAO,SAAS,oBAAoB,yCAAyC,IAAI;AAGlF,KAAI;EAIH,MAAM,QAAQ,MAAM,IAAI,kBAAkB,OAAO,GAAG,CAAC,eAAe,YAAY,GAAG;AACnF,MAAI,CAAC,MAAO,QAAO,SAAS,aAAa,qBAAqB,IAAI;EAClE,MAAM,SAAS,MAAM,UAAU,eAAe,EAAE,iBAAiB;EACjE,MAAM,gBAAgB,eAAe,EAAE,iBAAiB;AAWxD,SAAO,WAAW,mBARE,MADP,IAAI,mBAAmB,OAAO,GAAG,CACf,2BAC9B,YACA,MAAM,IACN,UACA,QACA,cACA,EAEiD,OAAO,CAAC;UAClD,OAAO;AACf,SAAO,YAAY,OAAO,6BAA6B,kBAAkB;;;;;;AAO3E,MAAa,OAAiB,OAAO,EAAE,QAAQ,SAAS,aAAa;CACpE,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,EAAE,YAAY,IAAI,aAAa;AAErC,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAC1B,QAAO,SAAS,oBAAoB,yCAAyC,IAAI;CAGlF,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAClB,MAAM,SAAS,YAAY,MAAM,mBAAmB;AACpD,KAAI,OAAQ,QAAO;AAEnB,KAAI,CAAC,OAAO,iBACX,QAAO,SAAS,kBAAkB,6BAA6B,IAAI;CAIpE,MAAM,WAAW,MAAM,OAAO,iBAAiB,YAAY,GAAG;AAC9D,KAAI,CAAC,SAAS,QACb,QAAO,SACN,SAAS,OAAO,QAAQ,aACxB,SAAS,OAAO,WAAW,qBAC3B,SAAS,OAAO,SAAS,cAAc,MAAM,IAC7C;CAIF,MAAM,eACL,SAAS,QAAQ,OAAO,SAAS,SAAS,WAEvC,SAAS,OACT;CAEJ,MAAM,eACL,cAAc,QAAQ,OAAO,aAAa,SAAS,WAEhD,aAAa,OACb;CAEJ,MAAM,aAAa,iBAAiB,MADnB,OAAO,cAAc,aAAa,WAAW,aAAa,WAAW,IAClC,oBAAoB,mBAAmB;AAC3F,KAAI,WAAY,QAAO;CAIvB,MAAM,cAAc,OAAO,cAAc,OAAO,WAAW,aAAa,KAAK;CAG7E,MAAM,cACL,OAAO,cAAc,WAAW,WAC7B,aAAa,SACZ,eAAe,EAAE,iBAAiB;AAEvC,KAAI;EACH,MAAM,OAAO,MAAM,UAAU,SAAS,iBAAiB;AACvD,MAAI,aAAa,KAAK,CAAE,QAAO;EAC/B,MAAM,EAAE,YAAY;EAEpB,MAAM,OAAO,IAAI,mBAAmB,OAAO,GAAG;AAG9C,OAAK,MAAM,UAAU,SAAS;GAC7B,MAAM,OAAO,MAAM,KAAK,SAAS,OAAO;AACxC,OAAI,CAAC,KACJ,QAAO,SAAS,aAAa,YAAY,OAAO,cAAc,IAAI;AAEnE,OAAI,KAAK,SAAS,SACjB,QAAO,SACN,oBACA,YAAY,OAAO,iCAAiC,SAAS,IAC7D,IACA;;AAKH,QAAM,KAAK,iBAAiB,YAAY,aAAa,UAAU,QAAQ;AAIvE,uBAAqB;AAWrB,SAAO,WAAW,mBARE,MAAM,KAAK,2BAC9B,YACA,aACA,UACA,aACA,eAAe,EAAE,iBAAiB,KAClC,EAEiD,YAAY,CAAC;UACvD,OAAO;AACf,SAAO,YAAY,OAAO,6BAA6B,kBAAkB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import "../../../../../../base64-
|
|
2
|
-
import "../../../../../../types-
|
|
3
|
-
import { a as unwrapResult, t as apiError } from "../../../../../../error-
|
|
4
|
-
import { r as requirePerm } from "../../../../../../authorize-
|
|
1
|
+
import "../../../../../../base64-DvnNgP7e.mjs";
|
|
2
|
+
import "../../../../../../types-BkUg2yHx.mjs";
|
|
3
|
+
import { a as unwrapResult, t as apiError } from "../../../../../../error-CCTCskie.mjs";
|
|
4
|
+
import { r as requirePerm } from "../../../../../../authorize-BXpfMpp0.mjs";
|
|
5
5
|
import { hasPermission } from "@emdash-cms/auth";
|
|
6
6
|
|
|
7
7
|
//#region src/astro/routes/api/content/[collection]/[id]/translations.ts
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import "../../../../../../dialect-helpers-
|
|
2
|
-
import "../../../../../../config-
|
|
3
|
-
import "../../../../../../base64-
|
|
4
|
-
import "../../../../../../types-
|
|
5
|
-
import "../../../../../../entry-locks-
|
|
6
|
-
import { n as mapErrorStatus } from "../../../../../../errors-
|
|
7
|
-
import { a as unwrapResult, t as apiError } from "../../../../../../error-
|
|
8
|
-
import { r as parseOptionalBody, t as isParseError } from "../../../../../../parse-
|
|
9
|
-
import "../../../../../../
|
|
10
|
-
import {
|
|
11
|
-
import "../../../../../../
|
|
12
|
-
import "../../../../../../
|
|
1
|
+
import "../../../../../../dialect-helpers-CtYdsX4W.mjs";
|
|
2
|
+
import "../../../../../../config-CGVeT8Hc.mjs";
|
|
3
|
+
import "../../../../../../base64-DvnNgP7e.mjs";
|
|
4
|
+
import "../../../../../../types-BkUg2yHx.mjs";
|
|
5
|
+
import "../../../../../../entry-locks-CO_KaoU5.mjs";
|
|
6
|
+
import { n as mapErrorStatus } from "../../../../../../errors-W3PA8HqB.mjs";
|
|
7
|
+
import { a as unwrapResult, t as apiError } from "../../../../../../error-CCTCskie.mjs";
|
|
8
|
+
import { r as parseOptionalBody, t as isParseError } from "../../../../../../parse-Cr379Av9.mjs";
|
|
9
|
+
import "../../../../../../redirects-BCiTaIQ-.mjs";
|
|
10
|
+
import { $n as contentRevisionConditionBody } from "../../../../../../entry-lock-D3C99MXS.mjs";
|
|
11
|
+
import "../../../../../../comments-BVzzt6x5.mjs";
|
|
12
|
+
import "../../../../../../relations-B4w-G5U9.mjs";
|
|
13
|
+
import "../../../../../../status-DLoBmcDz.mjs";
|
|
13
14
|
import "../../../../../../api/schemas/index.mjs";
|
|
14
|
-
import { n as requireOwnerPerm } from "../../../../../../authorize-
|
|
15
|
-
import { t as claimEntryLockForWrite } from "../../../../../../entry-lock-
|
|
15
|
+
import { n as requireOwnerPerm } from "../../../../../../authorize-BXpfMpp0.mjs";
|
|
16
|
+
import { t as claimEntryLockForWrite } from "../../../../../../entry-lock-D9rnj2Lu.mjs";
|
|
16
17
|
|
|
17
18
|
//#region src/astro/routes/api/content/[collection]/[id]/unpublish.ts
|
|
18
19
|
const prerender = false;
|
|
@@ -33,7 +34,14 @@ const POST = async ({ params, request, locals, url, cache }) => {
|
|
|
33
34
|
const resolvedId = typeof existingItem?.id === "string" ? existingItem.id : id;
|
|
34
35
|
const refusal = await claimEntryLockForWrite(emdash.db, collection, resolvedId, user.id, { override: body?.overrideLock });
|
|
35
36
|
if (refusal) return apiError(refusal.code, refusal.message, mapErrorStatus(refusal.code), { ...refusal.details });
|
|
36
|
-
const result = await emdash.handleContentUnpublish(collection, resolvedId, {
|
|
37
|
+
const result = await emdash.handleContentUnpublish(collection, resolvedId, {
|
|
38
|
+
_rev: body?._rev,
|
|
39
|
+
actor: {
|
|
40
|
+
id: user.id,
|
|
41
|
+
role: user.role
|
|
42
|
+
},
|
|
43
|
+
origin: { source: "api" }
|
|
44
|
+
});
|
|
37
45
|
if (!result.success) return unwrapResult(result);
|
|
38
46
|
if (cache?.enabled) await cache.invalidate({ tags: [collection, resolvedId] });
|
|
39
47
|
return unwrapResult(result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unpublish.mjs","names":[],"sources":["../../../../../../../src/astro/routes/api/content/[collection]/[id]/unpublish.ts"],"sourcesContent":["/**\n * Unpublish content - removes from public view, preserves draft\n *\n * POST /_emdash/api/content/{collection}/{id}/unpublish\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requireOwnerPerm } from \"#api/authorize.js\";\nimport { apiError, mapErrorStatus, unwrapResult } from \"#api/error.js\";\nimport { claimEntryLockForWrite } from \"#api/handlers/entry-lock.js\";\nimport { isParseError, parseOptionalBody } from \"#api/parse.js\";\nimport { contentRevisionConditionBody } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\nexport const POST: APIRoute = async ({ params, request, locals, url, cache }) => {\n\tconst { emdash, user } = locals;\n\tconst collection = params.collection!;\n\tconst id = params.id!;\n\n\tif (!emdash?.handleContentUnpublish || !emdash?.handleContentGet) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\tconst body = await parseOptionalBody(request, contentRevisionConditionBody, {});\n\tif (isParseError(body)) return body;\n\n\tconst locale = url.searchParams.get(\"locale\") || undefined;\n\n\t// Fetch item to check ownership\n\tconst existing = await emdash.handleContentGet(collection, id, locale);\n\tif (!existing.success) {\n\t\treturn apiError(\n\t\t\texisting.error?.code ?? \"UNKNOWN_ERROR\",\n\t\t\texisting.error?.message ?? \"Unknown error\",\n\t\t\tmapErrorStatus(existing.error?.code),\n\t\t);\n\t}\n\n\tconst existingData =\n\t\texisting.data && typeof existing.data === \"object\"\n\t\t\t? // eslint-disable-next-line typescript/no-unsafe-type-assertion -- handler returns unknown data; narrowed by typeof check above\n\t\t\t\t(existing.data as Record<string, unknown>)\n\t\t\t: undefined;\n\tconst existingItem =\n\t\texistingData?.item && typeof existingData.item === \"object\"\n\t\t\t? // eslint-disable-next-line typescript/no-unsafe-type-assertion -- narrowed by typeof check above\n\t\t\t\t(existingData.item as Record<string, unknown>)\n\t\t\t: existingData;\n\tconst authorId = typeof existingItem?.authorId === \"string\" ? existingItem.authorId : \"\";\n\tconst denied = requireOwnerPerm(user, authorId, \"content:publish_own\", \"content:publish_any\");\n\tif (denied) return denied;\n\n\tconst resolvedId = typeof existingItem?.id === \"string\" ? existingItem.id : id;\n\n\tconst refusal = await claimEntryLockForWrite(emdash.db, collection, resolvedId, user!.id, {\n\t\toverride: body?.overrideLock,\n\t});\n\tif (refusal) {\n\t\treturn apiError(refusal.code, refusal.message, mapErrorStatus(refusal.code), {\n\t\t\t...refusal.details,\n\t\t});\n\t}\n\n\tconst result = await emdash.handleContentUnpublish(collection, resolvedId, {
|
|
1
|
+
{"version":3,"file":"unpublish.mjs","names":[],"sources":["../../../../../../../src/astro/routes/api/content/[collection]/[id]/unpublish.ts"],"sourcesContent":["/**\n * Unpublish content - removes from public view, preserves draft\n *\n * POST /_emdash/api/content/{collection}/{id}/unpublish\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requireOwnerPerm } from \"#api/authorize.js\";\nimport { apiError, mapErrorStatus, unwrapResult } from \"#api/error.js\";\nimport { claimEntryLockForWrite } from \"#api/handlers/entry-lock.js\";\nimport { isParseError, parseOptionalBody } from \"#api/parse.js\";\nimport { contentRevisionConditionBody } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\nexport const POST: APIRoute = async ({ params, request, locals, url, cache }) => {\n\tconst { emdash, user } = locals;\n\tconst collection = params.collection!;\n\tconst id = params.id!;\n\n\tif (!emdash?.handleContentUnpublish || !emdash?.handleContentGet) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\tconst body = await parseOptionalBody(request, contentRevisionConditionBody, {});\n\tif (isParseError(body)) return body;\n\n\tconst locale = url.searchParams.get(\"locale\") || undefined;\n\n\t// Fetch item to check ownership\n\tconst existing = await emdash.handleContentGet(collection, id, locale);\n\tif (!existing.success) {\n\t\treturn apiError(\n\t\t\texisting.error?.code ?? \"UNKNOWN_ERROR\",\n\t\t\texisting.error?.message ?? \"Unknown error\",\n\t\t\tmapErrorStatus(existing.error?.code),\n\t\t);\n\t}\n\n\tconst existingData =\n\t\texisting.data && typeof existing.data === \"object\"\n\t\t\t? // eslint-disable-next-line typescript/no-unsafe-type-assertion -- handler returns unknown data; narrowed by typeof check above\n\t\t\t\t(existing.data as Record<string, unknown>)\n\t\t\t: undefined;\n\tconst existingItem =\n\t\texistingData?.item && typeof existingData.item === \"object\"\n\t\t\t? // eslint-disable-next-line typescript/no-unsafe-type-assertion -- narrowed by typeof check above\n\t\t\t\t(existingData.item as Record<string, unknown>)\n\t\t\t: existingData;\n\tconst authorId = typeof existingItem?.authorId === \"string\" ? existingItem.authorId : \"\";\n\tconst denied = requireOwnerPerm(user, authorId, \"content:publish_own\", \"content:publish_any\");\n\tif (denied) return denied;\n\n\tconst resolvedId = typeof existingItem?.id === \"string\" ? existingItem.id : id;\n\n\tconst refusal = await claimEntryLockForWrite(emdash.db, collection, resolvedId, user!.id, {\n\t\toverride: body?.overrideLock,\n\t});\n\tif (refusal) {\n\t\treturn apiError(refusal.code, refusal.message, mapErrorStatus(refusal.code), {\n\t\t\t...refusal.details,\n\t\t});\n\t}\n\n\tconst result = await emdash.handleContentUnpublish(collection, resolvedId, {\n\t\t_rev: body?._rev,\n\t\tactor: { id: user!.id, role: user!.role },\n\t\torigin: { source: \"api\" },\n\t});\n\n\tif (!result.success) return unwrapResult(result);\n\n\tif (cache?.enabled) await cache.invalidate({ tags: [collection, resolvedId] });\n\n\treturn unwrapResult(result);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAcA,MAAa,YAAY;AAEzB,MAAa,OAAiB,OAAO,EAAE,QAAQ,SAAS,QAAQ,KAAK,YAAY;CAChF,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,aAAa,OAAO;CAC1B,MAAM,KAAK,OAAO;AAElB,KAAI,CAAC,QAAQ,0BAA0B,CAAC,QAAQ,iBAC/C,QAAO,SAAS,kBAAkB,6BAA6B,IAAI;CAEpE,MAAM,OAAO,MAAM,kBAAkB,SAAS,8BAA8B,EAAE,CAAC;AAC/E,KAAI,aAAa,KAAK,CAAE,QAAO;CAE/B,MAAM,SAAS,IAAI,aAAa,IAAI,SAAS,IAAI;CAGjD,MAAM,WAAW,MAAM,OAAO,iBAAiB,YAAY,IAAI,OAAO;AACtE,KAAI,CAAC,SAAS,QACb,QAAO,SACN,SAAS,OAAO,QAAQ,iBACxB,SAAS,OAAO,WAAW,iBAC3B,eAAe,SAAS,OAAO,KAAK,CACpC;CAGF,MAAM,eACL,SAAS,QAAQ,OAAO,SAAS,SAAS,WAEvC,SAAS,OACT;CACJ,MAAM,eACL,cAAc,QAAQ,OAAO,aAAa,SAAS,WAEhD,aAAa,OACb;CAEJ,MAAM,SAAS,iBAAiB,MADf,OAAO,cAAc,aAAa,WAAW,aAAa,WAAW,IACtC,uBAAuB,sBAAsB;AAC7F,KAAI,OAAQ,QAAO;CAEnB,MAAM,aAAa,OAAO,cAAc,OAAO,WAAW,aAAa,KAAK;CAE5E,MAAM,UAAU,MAAM,uBAAuB,OAAO,IAAI,YAAY,YAAY,KAAM,IAAI,EACzF,UAAU,MAAM,cAChB,CAAC;AACF,KAAI,QACH,QAAO,SAAS,QAAQ,MAAM,QAAQ,SAAS,eAAe,QAAQ,KAAK,EAAE,EAC5E,GAAG,QAAQ,SACX,CAAC;CAGH,MAAM,SAAS,MAAM,OAAO,uBAAuB,YAAY,YAAY;EAC1E,MAAM,MAAM;EACZ,OAAO;GAAE,IAAI,KAAM;GAAI,MAAM,KAAM;GAAM;EACzC,QAAQ,EAAE,QAAQ,OAAO;EACzB,CAAC;AAEF,KAAI,CAAC,OAAO,QAAS,QAAO,aAAa,OAAO;AAEhD,KAAI,OAAO,QAAS,OAAM,MAAM,WAAW,EAAE,MAAM,CAAC,YAAY,WAAW,EAAE,CAAC;AAE9E,QAAO,aAAa,OAAO"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import "../../../../../dialect-helpers-
|
|
2
|
-
import "../../../../../config-
|
|
3
|
-
import "../../../../../base64-
|
|
4
|
-
import "../../../../../types-
|
|
5
|
-
import "../../../../../entry-locks-
|
|
6
|
-
import { n as mapErrorStatus } from "../../../../../errors-
|
|
7
|
-
import { a as unwrapResult, t as apiError } from "../../../../../error-
|
|
8
|
-
import { n as parseBody, t as isParseError } from "../../../../../parse-
|
|
9
|
-
import "../../../../../
|
|
10
|
-
import {
|
|
11
|
-
import "../../../../../
|
|
12
|
-
import "../../../../../
|
|
1
|
+
import "../../../../../dialect-helpers-CtYdsX4W.mjs";
|
|
2
|
+
import "../../../../../config-CGVeT8Hc.mjs";
|
|
3
|
+
import "../../../../../base64-DvnNgP7e.mjs";
|
|
4
|
+
import "../../../../../types-BkUg2yHx.mjs";
|
|
5
|
+
import "../../../../../entry-locks-CO_KaoU5.mjs";
|
|
6
|
+
import { n as mapErrorStatus } from "../../../../../errors-W3PA8HqB.mjs";
|
|
7
|
+
import { a as unwrapResult, t as apiError } from "../../../../../error-CCTCskie.mjs";
|
|
8
|
+
import { n as parseBody, t as isParseError } from "../../../../../parse-Cr379Av9.mjs";
|
|
9
|
+
import "../../../../../redirects-BCiTaIQ-.mjs";
|
|
10
|
+
import { cr as contentUpdateBody } from "../../../../../entry-lock-D3C99MXS.mjs";
|
|
11
|
+
import "../../../../../comments-BVzzt6x5.mjs";
|
|
12
|
+
import "../../../../../relations-B4w-G5U9.mjs";
|
|
13
|
+
import "../../../../../status-DLoBmcDz.mjs";
|
|
13
14
|
import "../../../../../api/schemas/index.mjs";
|
|
14
|
-
import { n as requireOwnerPerm, r as requirePerm } from "../../../../../authorize-
|
|
15
|
-
import { t as claimEntryLockForWrite } from "../../../../../entry-lock-
|
|
15
|
+
import { n as requireOwnerPerm, r as requirePerm } from "../../../../../authorize-BXpfMpp0.mjs";
|
|
16
|
+
import { t as claimEntryLockForWrite } from "../../../../../entry-lock-D9rnj2Lu.mjs";
|
|
16
17
|
import { hasPermission } from "@emdash-cms/auth";
|
|
17
18
|
|
|
18
19
|
//#region src/astro/routes/api/content/[collection]/[id].ts
|