emdash 0.32.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{adapters-C0ONzkUP.d.mts → adapters-34EN2eXO.d.mts} +34 -2
- package/dist/adapters-34EN2eXO.d.mts.map +1 -0
- package/dist/after-CBU2vkoO.mjs +96 -0
- package/dist/after-CBU2vkoO.mjs.map +1 -0
- package/dist/{allowed-origins-CCEi9bPI.mjs → allowed-origins-DW7sYyqg.mjs} +2 -2
- package/dist/{allowed-origins-CCEi9bPI.mjs.map → allowed-origins-DW7sYyqg.mjs.map} +1 -1
- package/dist/api/route-utils.d.mts +3 -4
- package/dist/api/route-utils.d.mts.map +1 -1
- package/dist/api/route-utils.mjs +26 -25
- package/dist/api/route-utils.mjs.map +1 -1
- package/dist/api/schemas/index.d.mts +2 -2
- package/dist/api/schemas/index.mjs +6 -5
- package/dist/{api-DgPbMlng.mjs → api-DdAsirBe.mjs} +321 -428
- package/dist/api-DdAsirBe.mjs.map +1 -0
- package/dist/{api-tokens-p-iMzvXR.mjs → api-tokens-CFXu8F_2.mjs} +2 -2
- package/dist/{api-tokens-p-iMzvXR.mjs.map → api-tokens-CFXu8F_2.mjs.map} +1 -1
- package/dist/{apply-1_6ra7NP.mjs → apply-D5zfeD09.mjs} +139 -102
- package/dist/apply-D5zfeD09.mjs.map +1 -0
- package/dist/astro/index.d.mts +12 -12
- package/dist/astro/index.d.mts.map +1 -1
- package/dist/astro/index.mjs +103 -35
- package/dist/astro/index.mjs.map +1 -1
- package/dist/astro/middleware/auth.d.mts +10 -10
- package/dist/astro/middleware/auth.mjs +9 -9
- package/dist/astro/middleware/media-usage-write-fence.d.mts +7 -0
- package/dist/astro/middleware/media-usage-write-fence.d.mts.map +1 -0
- package/dist/astro/middleware/media-usage-write-fence.mjs +35 -0
- package/dist/astro/middleware/media-usage-write-fence.mjs.map +1 -0
- package/dist/astro/middleware/redirect.d.mts.map +1 -1
- package/dist/astro/middleware/redirect.mjs +13 -10
- package/dist/astro/middleware/redirect.mjs.map +1 -1
- package/dist/astro/middleware/request-context.mjs +5 -5
- package/dist/astro/middleware/setup.mjs +1 -1
- package/dist/astro/middleware.d.mts +12 -11
- package/dist/astro/middleware.d.mts.map +1 -1
- package/dist/astro/middleware.mjs +1915 -223
- package/dist/astro/middleware.mjs.map +1 -1
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +9 -8
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +9 -8
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +5 -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 +12 -11
- package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/byline-fields/index.mjs +12 -11
- package/dist/astro/routes/api/admin/byline-fields/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +12 -11
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +20 -20
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +20 -20
- package/dist/astro/routes/api/admin/bylines/index.mjs +20 -20
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +18 -17
- 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 +14 -13
- 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 +14 -13
- 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/collection-deletions/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +36 -0
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.d.mts +8 -0
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +36 -0
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs.map +1 -0
- package/dist/astro/routes/api/admin/media-usage/repair.mjs +15 -14
- package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/work/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/media-usage/work/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/media-usage/work/index.mjs +37 -0
- package/dist/astro/routes/api/admin/media-usage/work/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/media-usage/work/retry.d.mts +8 -0
- package/dist/astro/routes/api/admin/media-usage/work/retry.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +37 -0
- package/dist/astro/routes/api/admin/media-usage/work/retry.mjs.map +1 -0
- 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 +56 -47
- 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 +56 -47
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +52 -46
- 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 +52 -46
- package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +55 -46
- 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 +55 -46
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/index.mjs +52 -46
- 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 +52 -46
- 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 +55 -46
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +52 -46
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +55 -46
- 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 +56 -47
- package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +52 -46
- 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 +56 -47
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/updates.mjs +52 -46
- package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +52 -46
- 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 +52 -46
- 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 +10 -9
- package/dist/astro/routes/api/admin/users/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs.map +1 -1
- package/dist/astro/routes/api/admin/users/index.mjs +9 -8
- package/dist/astro/routes/api/admin/users/index.mjs.map +1 -1
- package/dist/astro/routes/api/auth/dev-bypass.mjs +8 -8
- package/dist/astro/routes/api/auth/invite/accept.mjs +3 -3
- package/dist/astro/routes/api/auth/invite/complete.mjs +14 -13
- 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 +13 -12
- 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 +10 -9
- 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 +9 -8
- 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 +15 -14
- package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +13 -12
- package/dist/astro/routes/api/auth/passkey/register/options.mjs.map +1 -1
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +14 -13
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs.map +1 -1
- package/dist/astro/routes/api/auth/passkey/verify.mjs +14 -13
- package/dist/astro/routes/api/auth/passkey/verify.mjs.map +1 -1
- package/dist/astro/routes/api/auth/signup/complete.mjs +14 -13
- 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.mjs +20 -19
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs.map +1 -1
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +17 -16
- 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 +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +15 -15
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +11 -10
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +21 -20
- 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 +21 -20
- 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.mjs +11 -10
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +47 -34
- 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 +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +11 -10
- 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 +11 -10
- package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/trash.mjs +10 -9
- package/dist/astro/routes/api/content/_collection_/trash.mjs.map +1 -1
- package/dist/astro/routes/api/dashboard.mjs +12 -10
- package/dist/astro/routes/api/dashboard.mjs.map +1 -1
- package/dist/astro/routes/api/dev/emails.mjs +4 -4
- package/dist/astro/routes/api/import/probe.d.mts +3 -3
- package/dist/astro/routes/api/import/probe.mjs +22 -20
- 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 +11 -11
- package/dist/astro/routes/api/import/wordpress/execute.mjs +18 -18
- package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/media.d.mts +10 -10
- package/dist/astro/routes/api/import/wordpress/media.mjs +14 -12
- package/dist/astro/routes/api/import/wordpress/media.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +13 -12
- package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +11 -11
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +15 -15
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +22 -20
- 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 +11 -11
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +32 -31
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
- package/dist/astro/routes/api/manifest.mjs +6 -6
- package/dist/astro/routes/api/mcp.d.mts.map +1 -1
- package/dist/astro/routes/api/mcp.mjs +174 -72
- package/dist/astro/routes/api/mcp.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_/confirm.mjs +14 -12
- package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_/upload.mjs +7 -7
- package/dist/astro/routes/api/media/_id_/usage.mjs +17 -16
- package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_.mjs +16 -15
- package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/media/file/_...key_.mjs +3 -3
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +4 -4
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +4 -4
- package/dist/astro/routes/api/media/providers/index.mjs +4 -4
- package/dist/astro/routes/api/media/upload-url.mjs +11 -10
- package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
- package/dist/astro/routes/api/media.mjs +19 -16
- package/dist/astro/routes/api/media.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +13 -13
- package/dist/astro/routes/api/menus/_name_/items.mjs +13 -13
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +13 -13
- package/dist/astro/routes/api/menus/_name_/translations.mjs +13 -13
- package/dist/astro/routes/api/menus/_name_.mjs +13 -13
- package/dist/astro/routes/api/menus/index.mjs +13 -13
- 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 +183 -6
- package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.d.mts.map +1 -1
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +8 -7
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/404s/index.mjs +14 -13
- package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/404s/summary.mjs +14 -13
- package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/_id_.mjs +16 -14
- package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/index.mjs +16 -14
- package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
- package/dist/astro/routes/api/relations/_id_/index.mjs +21 -20
- package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/relations/_id_/translations.mjs +16 -15
- package/dist/astro/routes/api/relations/_id_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/relations/index.mjs +21 -20
- 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 +52 -46
- 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 +52 -46
- 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 +52 -46
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/index.d.mts.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +52 -46
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/index.mjs +52 -46
- package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/reorder.d.mts +8 -0
- package/dist/astro/routes/api/schema/collections/reorder.d.mts.map +1 -0
- package/dist/astro/routes/api/schema/collections/reorder.mjs +71 -0
- package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -0
- package/dist/astro/routes/api/schema/index.mjs +14 -11
- package/dist/astro/routes/api/schema/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +52 -46
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/schema/orphans/index.mjs +52 -46
- package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
- package/dist/astro/routes/api/search/enable.d.mts +1 -0
- package/dist/astro/routes/api/search/enable.d.mts.map +1 -1
- package/dist/astro/routes/api/search/enable.mjs +19 -15
- package/dist/astro/routes/api/search/enable.mjs.map +1 -1
- package/dist/astro/routes/api/search/index.mjs +13 -13
- package/dist/astro/routes/api/search/rebuild.mjs +15 -15
- package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
- package/dist/astro/routes/api/search/stats.mjs +9 -9
- package/dist/astro/routes/api/search/suggest.mjs +13 -13
- package/dist/astro/routes/api/sections/_slug_.mjs +13 -12
- package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/sections/index.mjs +13 -12
- package/dist/astro/routes/api/sections/index.mjs.map +1 -1
- package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +8 -8
- package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
- package/dist/astro/routes/api/settings/backups/export.mjs +8 -8
- package/dist/astro/routes/api/settings/backups/index.mjs +9 -9
- package/dist/astro/routes/api/settings/email.mjs +6 -6
- package/dist/astro/routes/api/settings.mjs +18 -17
- package/dist/astro/routes/api/settings.mjs.map +1 -1
- package/dist/astro/routes/api/setup/admin-verify.mjs +15 -14
- package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
- package/dist/astro/routes/api/setup/admin.mjs +14 -13
- package/dist/astro/routes/api/setup/admin.mjs.map +1 -1
- package/dist/astro/routes/api/setup/dev-bypass.mjs +34 -32
- 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 +36 -34
- 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 +10 -10
- package/dist/astro/routes/api/taxonomies/_name_/reorder.d.mts +8 -0
- package/dist/astro/routes/api/taxonomies/_name_/reorder.d.mts.map +1 -0
- package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +44 -0
- package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +19 -18
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +19 -18
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.d.mts.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +21 -19
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/translations.d.mts +8 -0
- package/dist/astro/routes/api/taxonomies/_name_/translations.d.mts.map +1 -0
- package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +46 -0
- package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -0
- package/dist/astro/routes/api/taxonomies/_name_.d.mts +19 -0
- package/dist/astro/routes/api/taxonomies/_name_.d.mts.map +1 -0
- package/dist/astro/routes/api/taxonomies/_name_.mjs +88 -0
- package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -0
- package/dist/astro/routes/api/taxonomies/index.mjs +19 -18
- package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
- package/dist/astro/routes/api/themes/preview.mjs +8 -8
- package/dist/astro/routes/api/typegen.mjs +6 -6
- package/dist/astro/routes/api/well-known/auth.mjs +2 -2
- package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
- package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +10 -9
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +13 -12
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +13 -12
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_.mjs +8 -7
- package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/index.mjs +13 -12
- 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 +11 -10
- package/dist/astro/routes/robots.txt.mjs.map +1 -1
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +14 -14
- package/dist/astro/routes/sitemap.xml.mjs +12 -11
- package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
- package/dist/astro/types.d.mts +41 -17
- package/dist/astro/types.d.mts.map +1 -1
- package/dist/auth/providers/github.d.mts +1 -1
- package/dist/auth/providers/google.d.mts +1 -1
- package/dist/{authorize-R5iYYrpa.mjs → authorize-1iFJzPaZ.mjs} +2 -2
- package/dist/{authorize-R5iYYrpa.mjs.map → authorize-1iFJzPaZ.mjs.map} +1 -1
- package/dist/{backup-LpQ1V_sR.mjs → backup-LHjIAVNP.mjs} +5 -5
- package/dist/{backup-LpQ1V_sR.mjs.map → backup-LHjIAVNP.mjs.map} +1 -1
- package/dist/{base64-B-PsqheR.mjs → base64-CvLhUKQv.mjs} +1 -1
- package/dist/{base64-B-PsqheR.mjs.map → base64-CvLhUKQv.mjs.map} +1 -1
- package/dist/bundle-CBEXrBnb.mjs +663 -0
- package/dist/bundle-CBEXrBnb.mjs.map +1 -0
- package/dist/{byline-fields-T9ZLZMxJ.mjs → byline-fields-C5S8wygO.mjs} +2 -2
- package/dist/{byline-fields-T9ZLZMxJ.mjs.map → byline-fields-C5S8wygO.mjs.map} +1 -1
- package/dist/{byline-C5TAqs8N.mjs → byline-pEcoDps8.mjs} +9 -9
- package/dist/{byline-C5TAqs8N.mjs.map → byline-pEcoDps8.mjs.map} +1 -1
- package/dist/{byline-registry-BCuOp4UF.mjs → byline-registry-DDun8sxh.mjs} +4 -4
- package/dist/{byline-registry-BCuOp4UF.mjs.map → byline-registry-DDun8sxh.mjs.map} +1 -1
- package/dist/{bylines-B8-WGdja.mjs → bylines-BWemdX2k.mjs} +8 -8
- package/dist/{bylines-B8-WGdja.mjs.map → bylines-BWemdX2k.mjs.map} +1 -1
- package/dist/{bylines-DGuqBLjV.mjs → bylines-DJfSfXCL.mjs} +5 -5
- package/dist/{bylines-DGuqBLjV.mjs.map → bylines-DJfSfXCL.mjs.map} +1 -1
- package/dist/cache-CBJaDy_E.mjs +108 -0
- package/dist/cache-CBJaDy_E.mjs.map +1 -0
- package/dist/{challenge-store-BFzgFRog.mjs → challenge-store-CZyFVaad.mjs} +1 -1
- package/dist/{challenge-store-BFzgFRog.mjs.map → challenge-store-CZyFVaad.mjs.map} +1 -1
- package/dist/{chunks-D5dlPeRb.mjs → chunks-DfPax1I0.mjs} +2 -2
- package/dist/{chunks-D5dlPeRb.mjs.map → chunks-DfPax1I0.mjs.map} +1 -1
- package/dist/cli/index.mjs +193 -707
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/cf-access.d.mts +1 -1
- package/dist/client/index.d.mts +74 -4
- package/dist/client/index.d.mts.map +1 -1
- package/dist/client/index.mjs +25 -2
- package/dist/client/index.mjs.map +1 -1
- package/dist/collection-deletion-C8BugSGz.mjs +779 -0
- package/dist/collection-deletion-C8BugSGz.mjs.map +1 -0
- package/dist/{comment-DnTxxVHv.mjs → comment-Dxlep6cE.mjs} +3 -3
- package/dist/{comment-DnTxxVHv.mjs.map → comment-Dxlep6cE.mjs.map} +1 -1
- package/dist/{comment-reaction-BUlUz2bh.mjs → comment-reaction-D6qfHKBc.mjs} +2 -2
- package/dist/{comment-reaction-BUlUz2bh.mjs.map → comment-reaction-D6qfHKBc.mjs.map} +1 -1
- package/dist/{comments-QPKgK3nk.mjs → comments-CTOuhTSX.mjs} +3 -3
- package/dist/{comments-QPKgK3nk.mjs.map → comments-CTOuhTSX.mjs.map} +1 -1
- package/dist/{components-DZkL4Fx0.mjs → components-CQy3lh9x.mjs} +1 -1
- package/dist/{components-DZkL4Fx0.mjs.map → components-CQy3lh9x.mjs.map} +1 -1
- package/dist/{config-DyF3OKg_.mjs → config-C3EBstHi.mjs} +18 -2
- package/dist/config-C3EBstHi.mjs.map +1 -0
- package/dist/{content-CpfKV9QE.mjs → content-BNfwh7xX.mjs} +667 -183
- package/dist/content-BNfwh7xX.mjs.map +1 -0
- package/dist/content-list-query-DhQ84eVV.d.mts +26 -0
- package/dist/content-list-query-DhQ84eVV.d.mts.map +1 -0
- package/dist/content-refresh-DNERP4-f.mjs +2560 -0
- package/dist/content-refresh-DNERP4-f.mjs.map +1 -0
- package/dist/{context-kO4YZB03.mjs → context-DRgOvSnW.mjs} +28 -20
- package/dist/context-DRgOvSnW.mjs.map +1 -0
- package/dist/{cron-BlKIMD_e.mjs → cron-Y9aLtgrA.mjs} +1 -1
- package/dist/{cron-BlKIMD_e.mjs.map → cron-Y9aLtgrA.mjs.map} +1 -1
- package/dist/{dashboard-DoBwPnON.mjs → dashboard-CB8J89rJ.mjs} +45 -11
- package/dist/dashboard-CB8J89rJ.mjs.map +1 -0
- package/dist/db/index.d.mts +4 -4
- package/dist/db/index.mjs +3 -3
- package/dist/db/index.mjs.map +1 -1
- package/dist/db/libsql.d.mts +1 -1
- package/dist/db/postgres.d.mts +1 -1
- package/dist/db/sqlite.d.mts +1 -1
- package/dist/{db-errors-CcWLaRiR.mjs → db-errors-Cl-sKYTm.mjs} +1 -1
- package/dist/{db-errors-CcWLaRiR.mjs.map → db-errors-Cl-sKYTm.mjs.map} +1 -1
- package/dist/{default-C4v9KP56.mjs → default-DdDl3fxv.mjs} +1 -1
- package/dist/{default-C4v9KP56.mjs.map → default-DdDl3fxv.mjs.map} +1 -1
- package/dist/deferred-tasks-BMsa9F64.d.mts +9 -0
- package/dist/deferred-tasks-BMsa9F64.d.mts.map +1 -0
- package/dist/{device-flow-DhUsyJU6.mjs → device-flow-CaioYGK3.mjs} +5 -5
- package/dist/{device-flow-DhUsyJU6.mjs.map → device-flow-CaioYGK3.mjs.map} +1 -1
- package/dist/{dialect-helpers-DFwyWjTM.mjs → dialect-helpers-BSbfaO3F.mjs} +24 -16
- package/dist/dialect-helpers-BSbfaO3F.mjs.map +1 -0
- package/dist/dist-D_6CKR8z.mjs +810 -0
- package/dist/dist-D_6CKR8z.mjs.map +1 -0
- package/dist/{email-console-C-9Ng8DM.mjs → email-console-BHNjIwiB.mjs} +1 -1
- package/dist/{email-console-C-9Ng8DM.mjs.map → email-console-BHNjIwiB.mjs.map} +1 -1
- package/dist/{enrich-CFJJgxs_.mjs → enrich-_ySMEvEE.mjs} +2 -2
- package/dist/{enrich-CFJJgxs_.mjs.map → enrich-_ySMEvEE.mjs.map} +1 -1
- package/dist/{error-DmmN74gW.mjs → error-DupyJZE2.mjs} +3 -3
- package/dist/{error-DmmN74gW.mjs.map → error-DupyJZE2.mjs.map} +1 -1
- package/dist/{errors-DtEXIQQV.mjs → errors-CLUPm7aD.mjs} +15 -2
- package/dist/errors-CLUPm7aD.mjs.map +1 -0
- package/dist/{escape-CdW31WsG.mjs → escape-C_aLKP3H.mjs} +1 -1
- package/dist/{escape-CdW31WsG.mjs.map → escape-C_aLKP3H.mjs.map} +1 -1
- package/dist/{field-defs-cache-QMVnzTH6.mjs → field-defs-cache-hg6QkjV9.mjs} +5 -5
- package/dist/{field-defs-cache-QMVnzTH6.mjs.map → field-defs-cache-hg6QkjV9.mjs.map} +1 -1
- package/dist/{fts-manager-vncsZIJm.mjs → fts-manager-CZ-5dVwJ.mjs} +111 -61
- package/dist/fts-manager-CZ-5dVwJ.mjs.map +1 -0
- package/dist/{hash-Cb7U1b5M.mjs → hash-Cg0TXJPV.mjs} +1 -1
- package/dist/{hash-Cb7U1b5M.mjs.map → hash-Cg0TXJPV.mjs.map} +1 -1
- package/dist/{hreflang-CZbSx6Bg.d.mts → hreflang-D3Uehfv2.d.mts} +2 -2
- package/dist/{hreflang-CZbSx6Bg.d.mts.map → hreflang-D3Uehfv2.d.mts.map} +1 -1
- package/dist/{hreflang-Bg-zMpkr.mjs → hreflang-DNswoYsi.mjs} +7 -7
- package/dist/{hreflang-Bg-zMpkr.mjs.map → hreflang-DNswoYsi.mjs.map} +1 -1
- package/dist/{import-PKhLeXvn.mjs → import-B41u8Rot.mjs} +7 -7
- package/dist/{import-PKhLeXvn.mjs.map → import-B41u8Rot.mjs.map} +1 -1
- package/dist/{index-j9rTh3cp.d.mts → index-C3Y-rsyN.d.mts} +286 -93
- package/dist/index-C3Y-rsyN.d.mts.map +1 -0
- package/dist/{index-BeNto_Vs.d.mts → index-Cof4-Fab.d.mts} +5 -10
- package/dist/index-Cof4-Fab.d.mts.map +1 -0
- package/dist/index.d.mts +20 -19
- package/dist/index.mjs +79 -71
- package/dist/{init-lock-DJkX6Hto.mjs → init-lock-6b309ZrF.mjs} +1 -1
- package/dist/{init-lock-DJkX6Hto.mjs.map → init-lock-6b309ZrF.mjs.map} +1 -1
- package/dist/{load-BwTdWE8B.mjs → load-DmvJrtxS.mjs} +2 -2
- package/dist/{load-BwTdWE8B.mjs.map → load-DmvJrtxS.mjs.map} +1 -1
- package/dist/{loader-C1XOLV5b.mjs → loader-DLBqRiGP.mjs} +120 -64
- package/dist/loader-DLBqRiGP.mjs.map +1 -0
- package/dist/{manifest-schema-bCq54i7F.mjs → manifest-schema-BXbUAHod.mjs} +1 -1
- package/dist/{manifest-schema-bCq54i7F.mjs.map → manifest-schema-BXbUAHod.mjs.map} +1 -1
- package/dist/media/image-endpoint.mjs +1 -1
- package/dist/media/index.d.mts +1 -1
- package/dist/media/index.mjs +3 -2
- package/dist/media/index.mjs.map +1 -1
- package/dist/media/local-runtime.d.mts +12 -12
- package/dist/media/local-runtime.mjs +10 -9
- package/dist/media/local-runtime.mjs.map +1 -1
- package/dist/{media-DWIzoVFL.mjs → media-BWWWb8kg.mjs} +92 -3
- package/dist/media-BWWWb8kg.mjs.map +1 -0
- package/dist/{media-tQDZEdu7.mjs → media-CzhAn2--.mjs} +2 -2
- package/dist/{media-tQDZEdu7.mjs.map → media-CzhAn2--.mjs.map} +1 -1
- package/dist/{media-allowlist-B7TPD6aq.mjs → media-allowlist-BD6HhgXA.mjs} +14 -3
- package/dist/media-allowlist-BD6HhgXA.mjs.map +1 -0
- package/dist/{media-upload-Bc9Nc5Zf.mjs → media-upload-9yas9zGH.mjs} +11 -9
- package/dist/{media-upload-Bc9Nc5Zf.mjs.map → media-upload-9yas9zGH.mjs.map} +1 -1
- package/dist/{media-url-BCm5vBn6.mjs → media-url-BvoX88FA.mjs} +1 -1
- package/dist/{media-url-BCm5vBn6.mjs.map → media-url-BvoX88FA.mjs.map} +1 -1
- package/dist/{media-usage-DPJcNaAq.mjs → media-usage-De3qvwjc.mjs} +138 -61
- package/dist/media-usage-De3qvwjc.mjs.map +1 -0
- package/dist/media-usage-work-B9Bksh_b.mjs +152 -0
- package/dist/media-usage-work-B9Bksh_b.mjs.map +1 -0
- package/dist/media-usage-work-DrCbqBcl.mjs +424 -0
- package/dist/media-usage-work-DrCbqBcl.mjs.map +1 -0
- package/dist/media-usage-write-fence-aHEgN1zB.mjs +42 -0
- package/dist/media-usage-write-fence-aHEgN1zB.mjs.map +1 -0
- package/dist/{menus-C6qhqP4X.mjs → menus-CC-yn1F9.mjs} +554 -121
- package/dist/menus-CC-yn1F9.mjs.map +1 -0
- package/dist/{menus-BxPLFfIc.mjs → menus-fxvEDYE6.mjs} +5 -5
- package/dist/{menus-BxPLFfIc.mjs.map → menus-fxvEDYE6.mjs.map} +1 -1
- package/dist/{mode-fiXRMfeA.mjs → mode-Bpe-tNNy.mjs} +1 -1
- package/dist/{mode-fiXRMfeA.mjs.map → mode-Bpe-tNNy.mjs.map} +1 -1
- package/dist/{normalize-C-SHXmra.mjs → normalize-Bc-s_r-a.mjs} +1 -1
- package/dist/{normalize-C-SHXmra.mjs.map → normalize-Bc-s_r-a.mjs.map} +1 -1
- package/dist/{oauth-authorization-C9tFinly.mjs → oauth-authorization-BXO1MKej.mjs} +5 -5
- package/dist/{oauth-authorization-C9tFinly.mjs.map → oauth-authorization-BXO1MKej.mjs.map} +1 -1
- package/dist/{oauth-clients-BwTxE1aE.mjs → oauth-clients-C_DNqtRu.mjs} +1 -1
- package/dist/{oauth-clients-BwTxE1aE.mjs.map → oauth-clients-C_DNqtRu.mjs.map} +1 -1
- package/dist/{oauth-state-store-DaRUwPWO.mjs → oauth-state-store-DwAxMtk4.mjs} +1 -1
- package/dist/{oauth-state-store-DaRUwPWO.mjs.map → oauth-state-store-DwAxMtk4.mjs.map} +1 -1
- package/dist/{oauth-user-lookup-CzuzOSlF.mjs → oauth-user-lookup-BxfZizdk.mjs} +1 -1
- package/dist/{oauth-user-lookup-CzuzOSlF.mjs.map → oauth-user-lookup-BxfZizdk.mjs.map} +1 -1
- package/dist/object-cache/memory.d.mts +1 -1
- package/dist/{object-cache-Bok5j2ae.mjs → object-cache-71tPfV4A.mjs} +106 -5
- package/dist/object-cache-71tPfV4A.mjs.map +1 -0
- package/dist/{options-BlmBHTvX.mjs → options-CBXIHUoT.mjs} +1 -1
- package/dist/{options-BlmBHTvX.mjs.map → options-CBXIHUoT.mjs.map} +1 -1
- package/dist/{options-aeIs8WFu.d.mts → options-DRe1pIBL.d.mts} +4 -3
- package/dist/options-DRe1pIBL.d.mts.map +1 -0
- package/dist/page/index.d.mts +2 -2
- package/dist/{parse-BL49yb9D.mjs → parse-DFbuc-Fh.mjs} +2 -2
- package/dist/{parse-BL49yb9D.mjs.map → parse-DFbuc-Fh.mjs.map} +1 -1
- package/dist/{passkey-config-KMhgFjdQ.mjs → passkey-config-_2GOwwK8.mjs} +1 -1
- package/dist/{passkey-config-KMhgFjdQ.mjs.map → passkey-config-_2GOwwK8.mjs.map} +1 -1
- package/dist/{placeholder-Dxo5Zt58.d.mts → placeholder-CzW7Lshs.d.mts} +1 -1
- package/dist/{placeholder-Dxo5Zt58.d.mts.map → placeholder-CzW7Lshs.d.mts.map} +1 -1
- package/dist/plugin-types.d.mts +8 -1
- package/dist/plugin-types.d.mts.map +1 -1
- package/dist/plugin-utils.d.mts +10 -10
- package/dist/plugins/adapt-sandbox-entry.d.mts +10 -10
- package/dist/plugins/adapt-sandbox-entry.mjs +7 -4
- package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
- package/dist/{portable-text-CNahFfj6.mjs → portable-text-DhKbDAGr.mjs} +1 -1
- package/dist/{portable-text-CNahFfj6.mjs.map → portable-text-DhKbDAGr.mjs.map} +1 -1
- package/dist/{preview-D4Jnbfx7.mjs → preview-PW-nOnq4.mjs} +2 -2
- package/dist/{preview-D4Jnbfx7.mjs.map → preview-PW-nOnq4.mjs.map} +1 -1
- package/dist/{public-url-DSGTnJFw.mjs → public-url-CWoFhQT8.mjs} +14 -3
- package/dist/public-url-CWoFhQT8.mjs.map +1 -0
- package/dist/{query-DCiXI7OZ.mjs → query-BgjfiLUQ.mjs} +38 -77
- package/dist/query-BgjfiLUQ.mjs.map +1 -0
- package/dist/{query-1xOcEy18.mjs → query-vgZNwIhh.mjs} +4 -4
- package/dist/{query-1xOcEy18.mjs.map → query-vgZNwIhh.mjs.map} +1 -1
- package/dist/{rate-limit-Vkp9gQ1Y.mjs → rate-limit-L5anykgo.mjs} +2 -2
- package/dist/{rate-limit-Vkp9gQ1Y.mjs.map → rate-limit-L5anykgo.mjs.map} +1 -1
- package/dist/{redirect-BJ6d1yHh.mjs → redirect-COsS6SWJ.mjs} +3 -3
- package/dist/{redirect-BJ6d1yHh.mjs.map → redirect-COsS6SWJ.mjs.map} +1 -1
- package/dist/{redirect-CDgfv9vh.mjs → redirect-KBNE3UEs.mjs} +1 -1
- package/dist/{redirect-CDgfv9vh.mjs.map → redirect-KBNE3UEs.mjs.map} +1 -1
- package/dist/{redirects-Cwkq2H-G.mjs → redirects-CufRQt0Q.mjs} +5 -5
- package/dist/{redirects-Cwkq2H-G.mjs.map → redirects-CufRQt0Q.mjs.map} +1 -1
- package/dist/{redirects-BOn2DIUs.mjs → redirects-cV9g7V-0.mjs} +149 -16
- package/dist/redirects-cV9g7V-0.mjs.map +1 -0
- package/dist/registry-C581V4TP.mjs +1275 -0
- package/dist/registry-C581V4TP.mjs.map +1 -0
- package/dist/{relation-DJ5DZh7B.mjs → relation-DtmAQH7s.mjs} +3 -3
- package/dist/{relation-DJ5DZh7B.mjs.map → relation-DtmAQH7s.mjs.map} +1 -1
- package/dist/{relations-C4duJnwI.mjs → relations-BBApI4e2.mjs} +3 -3
- package/dist/{relations-C4duJnwI.mjs.map → relations-BBApI4e2.mjs.map} +1 -1
- package/dist/{relations-DpTjftCl.mjs → relations-DICSyfsh.mjs} +6 -6
- package/dist/{relations-DpTjftCl.mjs.map → relations-DICSyfsh.mjs.map} +1 -1
- package/dist/{relations-DHFQGX0h.d.mts → relations-DItI3MN9.d.mts} +401 -40
- package/dist/relations-DItI3MN9.d.mts.map +1 -0
- package/dist/request-context.d.mts +3 -0
- package/dist/request-context.d.mts.map +1 -1
- package/dist/request-context.mjs.map +1 -1
- package/dist/{request-meta-DzXYYI-n.mjs → request-meta-DgZJh3zG.mjs} +2 -2
- package/dist/{request-meta-DzXYYI-n.mjs.map → request-meta-DgZJh3zG.mjs.map} +1 -1
- package/dist/{resolve-BUvFE0Lr.mjs → resolve-DOhVEvty.mjs} +2 -2
- package/dist/{resolve-BUvFE0Lr.mjs.map → resolve-DOhVEvty.mjs.map} +1 -1
- package/dist/{runner-BsI18UgP.mjs → runner-BiDvq5dv.mjs} +1404 -235
- package/dist/runner-BiDvq5dv.mjs.map +1 -0
- package/dist/{runner-CHdkERbt.d.mts → runner-CgQbELYC.d.mts} +2 -2
- package/dist/{runner-CHdkERbt.d.mts.map → runner-CgQbELYC.d.mts.map} +1 -1
- package/dist/runtime.d.mts +11 -11
- package/dist/runtime.mjs +5 -4
- package/dist/runtime.mjs.map +1 -1
- package/dist/{schema-eqZhkR0S.mjs → schema-BFyTg38T.mjs} +3 -3
- package/dist/{schema-eqZhkR0S.mjs.map → schema-BFyTg38T.mjs.map} +1 -1
- package/dist/schema-CeQSNwB3.mjs +390 -0
- package/dist/schema-CeQSNwB3.mjs.map +1 -0
- package/dist/{scopes-Be2d8bSb.mjs → scopes-BVeuhGBE.mjs} +3 -3
- package/dist/{scopes-Be2d8bSb.mjs.map → scopes-BVeuhGBE.mjs.map} +1 -1
- package/dist/{search-CeO678cp.mjs → search-BpuPKZb0.mjs} +26 -16
- package/dist/search-BpuPKZb0.mjs.map +1 -0
- package/dist/{secrets-870d-7yA.mjs → secrets-dtYs2hDo.mjs} +5 -5
- package/dist/{secrets-870d-7yA.mjs.map → secrets-dtYs2hDo.mjs.map} +1 -1
- package/dist/{sections-DSuEfirn.mjs → sections-COctk6hf.mjs} +3 -3
- package/dist/{sections-DSuEfirn.mjs.map → sections-COctk6hf.mjs.map} +1 -1
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +28 -26
- package/dist/seo/index.d.mts +3 -3
- package/dist/seo/index.mjs +20 -19
- package/dist/seo/index.mjs.map +1 -1
- package/dist/{seo-C3GDfT0V.mjs → seo-AFpVvTqr.mjs} +6 -4
- package/dist/seo-AFpVvTqr.mjs.map +1 -0
- package/dist/{seo-BAPKiED8.mjs → seo-CvDxfvFb.mjs} +3 -3
- package/dist/{seo-BAPKiED8.mjs.map → seo-CvDxfvFb.mjs.map} +1 -1
- package/dist/{service-DyFT-k-R.mjs → service-xMiMSTsR.mjs} +4 -4
- package/dist/{service-DyFT-k-R.mjs.map → service-xMiMSTsR.mjs.map} +1 -1
- package/dist/{session-user-BrK2zz7S.mjs → session-user-BzVemLkw.mjs} +2 -2
- package/dist/{session-user-BrK2zz7S.mjs.map → session-user-BzVemLkw.mjs.map} +1 -1
- package/dist/{settings-DgKouY2S.mjs → settings-B372MV0p.mjs} +7 -7
- package/dist/{settings-DgKouY2S.mjs.map → settings-B372MV0p.mjs.map} +1 -1
- package/dist/{settings-CREKyj8I.mjs → settings-BE9aqn_9.mjs} +3 -3
- package/dist/{settings-CREKyj8I.mjs.map → settings-BE9aqn_9.mjs.map} +1 -1
- package/dist/{setup-complete-L7bMK2VI.mjs → setup-complete-DF7TAfD5.mjs} +2 -2
- package/dist/{setup-complete-L7bMK2VI.mjs.map → setup-complete-DF7TAfD5.mjs.map} +1 -1
- package/dist/{setup-nonce-Ct5tjWcq.mjs → setup-nonce-Do-U_cg9.mjs} +1 -1
- package/dist/{setup-nonce-Ct5tjWcq.mjs.map → setup-nonce-Do-U_cg9.mjs.map} +1 -1
- package/dist/{single-flight-cache-C2exrGAi.mjs → single-flight-cache-B0eLKS6K.mjs} +2 -2
- package/dist/{single-flight-cache-C2exrGAi.mjs.map → single-flight-cache-B0eLKS6K.mjs.map} +1 -1
- package/dist/site-url-Bowsi9T-.mjs +16 -0
- package/dist/site-url-Bowsi9T-.mjs.map +1 -0
- package/dist/slugify-B994zkXC.mjs +17 -0
- package/dist/slugify-B994zkXC.mjs.map +1 -0
- package/dist/{snapshot-BdpUJKD-.mjs → snapshot-B5h6aPMh.mjs} +2 -2
- package/dist/{snapshot-BdpUJKD-.mjs.map → snapshot-B5h6aPMh.mjs.map} +1 -1
- package/dist/{ssrf-CviKqWmq.mjs → ssrf-Cpvg_n3A.mjs} +1 -1
- package/dist/{ssrf-CviKqWmq.mjs.map → ssrf-Cpvg_n3A.mjs.map} +1 -1
- package/dist/{state-xxv6ZTMv.mjs → state-DYwPue40.mjs} +1 -1
- package/dist/{state-xxv6ZTMv.mjs.map → state-DYwPue40.mjs.map} +1 -1
- package/dist/{status-COfycGIU.mjs → status-CWVYpbD8.mjs} +1 -1
- package/dist/{status-COfycGIU.mjs.map → status-CWVYpbD8.mjs.map} +1 -1
- package/dist/storage/local.d.mts +1 -1
- package/dist/storage/local.mjs +1 -1
- package/dist/storage/s3.d.mts +1 -1
- package/dist/storage/s3.mjs +1 -1
- package/dist/{taxonomies-B61CRSha.mjs → taxonomies-B0o9ExNV.mjs} +85 -75
- package/dist/taxonomies-B0o9ExNV.mjs.map +1 -0
- package/dist/{taxonomies-Dbdki3Un.mjs → taxonomies-Dk3MAklL.mjs} +360 -56
- package/dist/taxonomies-Dk3MAklL.mjs.map +1 -0
- package/dist/taxonomy-CPeM8d2o.mjs +484 -0
- package/dist/taxonomy-CPeM8d2o.mjs.map +1 -0
- package/dist/{tokens-DVltpO2D.mjs → tokens-C39klX8R.mjs} +2 -2
- package/dist/{tokens-DVltpO2D.mjs.map → tokens-C39klX8R.mjs.map} +1 -1
- package/dist/{transaction-D0FOsb3X.mjs → transaction-NQj4VJ7Z.mjs} +1 -1
- package/dist/{transaction-D0FOsb3X.mjs.map → transaction-NQj4VJ7Z.mjs.map} +1 -1
- package/dist/{transport-BWQo0Foy.mjs → transport--CfOflrp.mjs} +1 -1
- package/dist/{transport-BWQo0Foy.mjs.map → transport--CfOflrp.mjs.map} +1 -1
- package/dist/{transport-DokJOScS.d.mts → transport-B_rfeU-a.d.mts} +1 -1
- package/dist/{transport-DokJOScS.d.mts.map → transport-B_rfeU-a.d.mts.map} +1 -1
- package/dist/{trusted-proxy-CwjQj0YG.mjs → trusted-proxy-CEVekpby.mjs} +1 -1
- package/dist/{trusted-proxy-CwjQj0YG.mjs.map → trusted-proxy-CEVekpby.mjs.map} +1 -1
- package/dist/{types-o7xo7VgH.mjs → types-75KIqzL9.mjs} +20 -3
- package/dist/types-75KIqzL9.mjs.map +1 -0
- package/dist/{types-C9P3ysxq.d.mts → types-BPuloofb.d.mts} +1 -1
- package/dist/{types-C9P3ysxq.d.mts.map → types-BPuloofb.d.mts.map} +1 -1
- package/dist/{types-BD40g7zz.mjs → types-BW1syrlw.mjs} +1 -1
- package/dist/{types-BD40g7zz.mjs.map → types-BW1syrlw.mjs.map} +1 -1
- package/dist/{types-jISEalTX.d.mts → types-C3_AbkDP.d.mts} +53 -10
- package/dist/types-C3_AbkDP.d.mts.map +1 -0
- package/dist/{types-84Bque3-.d.mts → types-CAGdePf3.d.mts} +133 -1
- package/dist/types-CAGdePf3.d.mts.map +1 -0
- package/dist/{types-CcSZCcF1.d.mts → types-CFUfyt1s.d.mts} +1 -1
- package/dist/{types-CcSZCcF1.d.mts.map → types-CFUfyt1s.d.mts.map} +1 -1
- package/dist/{types-DQLZ58GV.d.mts → types-CPx2lIGo.d.mts} +1 -1
- package/dist/{types-DQLZ58GV.d.mts.map → types-CPx2lIGo.d.mts.map} +1 -1
- package/dist/{types-XrQQ-Aex.mjs → types-CQPWhPxE.mjs} +15 -11
- package/dist/types-CQPWhPxE.mjs.map +1 -0
- package/dist/{types-BQY7VYw6.d.mts → types-Cs-TFLNf.d.mts} +28 -8
- package/dist/types-Cs-TFLNf.d.mts.map +1 -0
- package/dist/types-CtzytVXn.mjs +18 -0
- package/dist/types-CtzytVXn.mjs.map +1 -0
- package/dist/{types-DqZVPILm.d.mts → types-D4_1Ga4L.d.mts} +44 -5
- package/dist/types-D4_1Ga4L.d.mts.map +1 -0
- package/dist/{types-Dr2GLlwu.d.mts → types-DefV3OiO.d.mts} +1 -1
- package/dist/{types-Dr2GLlwu.d.mts.map → types-DefV3OiO.d.mts.map} +1 -1
- package/dist/{types-DsAMyD_o.d.mts → types-X0MThr7x.d.mts} +1 -1
- package/dist/{types-DsAMyD_o.d.mts.map → types-X0MThr7x.d.mts.map} +1 -1
- package/dist/{upload-attempts-C5yd6Gae.mjs → upload-attempts-hlne3iA1.mjs} +1 -1
- package/dist/{upload-attempts-C5yd6Gae.mjs.map → upload-attempts-hlne3iA1.mjs.map} +1 -1
- package/dist/url-pattern-BHS0V5Ng.mjs +33 -0
- package/dist/url-pattern-BHS0V5Ng.mjs.map +1 -0
- package/dist/{user-BAumEmpA.mjs → user-sHgJ62SP.mjs} +3 -3
- package/dist/{user-BAumEmpA.mjs.map → user-sHgJ62SP.mjs.map} +1 -1
- package/dist/{utils-BbUgmeZG.mjs → utils-D4vD_Y98.mjs} +3 -3
- package/dist/{utils-BbUgmeZG.mjs.map → utils-D4vD_Y98.mjs.map} +1 -1
- package/dist/{validate-Bs_wT2ul.mjs → validate-BkqIG_Uj.mjs} +24 -5
- package/dist/validate-BkqIG_Uj.mjs.map +1 -0
- package/dist/{validate-VPnKoIzW.mjs → validate-BpwoDOgt.mjs} +25 -2
- package/dist/validate-BpwoDOgt.mjs.map +1 -0
- package/dist/{validate-CdYcY-Ln.d.mts → validate-DeGtBN84.d.mts} +25 -7
- package/dist/validate-DeGtBN84.d.mts.map +1 -0
- package/dist/{validation-BngR0nit.mjs → validation-CiJb_X5o.mjs} +14 -13
- package/dist/{validation-BngR0nit.mjs.map → validation-CiJb_X5o.mjs.map} +1 -1
- package/dist/version-x0NjTScG.mjs +7 -0
- package/dist/{version-Bdfb34kk.mjs.map → version-x0NjTScG.mjs.map} +1 -1
- package/dist/{widgets-L-VndTKD.mjs → widgets-Cwzvww0W.mjs} +3 -3
- package/dist/{widgets-L-VndTKD.mjs.map → widgets-Cwzvww0W.mjs.map} +1 -1
- package/dist/{wxr-taxonomies-DueaLFd9.d.mts → wxr-taxonomies-CmC0ZsDr.d.mts} +1 -1
- package/dist/{wxr-taxonomies-DueaLFd9.d.mts.map → wxr-taxonomies-CmC0ZsDr.d.mts.map} +1 -1
- package/dist/{wxr-taxonomies-BexjtNid.mjs → wxr-taxonomies-QZjWxjyk.mjs} +13 -32
- package/dist/{wxr-taxonomies-BexjtNid.mjs.map → wxr-taxonomies-QZjWxjyk.mjs.map} +1 -1
- package/dist/{zod-generator-DMzfga3g.mjs → zod-generator-D11MhxG4.mjs} +53 -6
- package/dist/zod-generator-D11MhxG4.mjs.map +1 -0
- package/package.json +18 -7
- package/src/after.ts +6 -1
- package/src/api/errors.ts +13 -0
- package/src/api/handlers/content.ts +172 -33
- package/src/api/handlers/dashboard.ts +12 -2
- package/src/api/handlers/index.ts +16 -0
- package/src/api/handlers/manifest.ts +2 -0
- package/src/api/handlers/marketplace.ts +14 -0
- package/src/api/handlers/media-allowlist.ts +13 -2
- package/src/api/handlers/media-usage-work.ts +188 -0
- package/src/api/handlers/media-usage.ts +5 -3
- package/src/api/handlers/registry.ts +14 -0
- package/src/api/handlers/revision.ts +19 -5
- package/src/api/handlers/schema.ts +46 -3
- package/src/api/handlers/seo.ts +5 -2
- package/src/api/handlers/snapshot.ts +1 -1
- package/src/api/handlers/taxonomies.ts +446 -83
- package/src/api/media-usage-write-fence.ts +64 -0
- package/src/api/openapi/document.ts +247 -0
- package/src/api/public-url.ts +14 -2
- package/src/api/schemas/common.ts +3 -1
- package/src/api/schemas/content.ts +122 -1
- package/src/api/schemas/media-usage.ts +133 -0
- package/src/api/schemas/schema.ts +91 -3
- package/src/api/schemas/search.ts +2 -0
- package/src/api/schemas/taxonomies.ts +58 -8
- package/src/api/site-url.ts +16 -6
- package/src/api/types.ts +1 -0
- package/src/astro/integration/index.ts +55 -42
- package/src/astro/integration/routes.ts +48 -4
- package/src/astro/integration/runtime.ts +28 -0
- package/src/astro/integration/virtual-modules.ts +27 -1
- package/src/astro/integration/vite-config.ts +16 -1
- package/src/astro/middleware/media-usage-write-fence.ts +30 -0
- package/src/astro/middleware/redirect.ts +14 -12
- package/src/astro/middleware/scoped-db.ts +35 -4
- package/src/astro/middleware.ts +131 -30
- package/src/astro/routes/api/admin/comments/[id]/status.ts +1 -1
- package/src/astro/routes/api/admin/media-usage/collection-deletions/index.ts +22 -0
- package/src/astro/routes/api/admin/media-usage/collection-deletions/retry.ts +22 -0
- package/src/astro/routes/api/admin/media-usage/work/index.ts +26 -0
- package/src/astro/routes/api/admin/media-usage/work/retry.ts +26 -0
- package/src/astro/routes/api/admin/plugins/[id]/disable.ts +4 -0
- package/src/astro/routes/api/admin/plugins/[id]/enable.ts +4 -0
- package/src/astro/routes/api/admin/plugins/[id]/uninstall.ts +4 -0
- package/src/astro/routes/api/admin/plugins/[id]/update.ts +4 -0
- package/src/astro/routes/api/admin/plugins/marketplace/[id]/install.ts +4 -0
- package/src/astro/routes/api/admin/plugins/registry/[id]/uninstall.ts +4 -0
- package/src/astro/routes/api/admin/plugins/registry/[id]/update.ts +4 -0
- package/src/astro/routes/api/admin/plugins/registry/install.ts +4 -0
- package/src/astro/routes/api/admin/users/[id]/send-recovery.ts +2 -2
- package/src/astro/routes/api/auth/invite/index.ts +2 -2
- package/src/astro/routes/api/auth/magic-link/send.ts +2 -2
- package/src/astro/routes/api/auth/signup/request.ts +2 -2
- package/src/astro/routes/api/comments/[collection]/[contentId]/index.ts +1 -1
- package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +67 -31
- package/src/astro/routes/api/import/wordpress/execute.ts +3 -10
- package/src/astro/routes/api/mcp.ts +1 -0
- package/src/astro/routes/api/plugins/[pluginId]/[...path].ts +7 -1
- package/src/astro/routes/api/schema/collections/[slug]/index.ts +1 -7
- package/src/astro/routes/api/schema/collections/reorder.ts +31 -0
- package/src/astro/routes/api/schema/index.ts +2 -0
- package/src/astro/routes/api/search/enable.ts +5 -1
- package/src/astro/routes/api/search/rebuild.ts +6 -1
- package/src/astro/routes/api/taxonomies/[name]/reorder.ts +41 -0
- package/src/astro/routes/api/taxonomies/[name]/terms/index.ts +1 -0
- package/src/astro/routes/api/taxonomies/[name]/translations.ts +48 -0
- package/src/astro/routes/api/taxonomies/[name].ts +102 -0
- package/src/astro/types.ts +31 -4
- package/src/cleanup.ts +25 -26
- package/src/cli/commands/dev.ts +13 -3
- package/src/cli/commands/doctor.ts +193 -6
- package/src/cli/commands/export-seed.ts +6 -1
- package/src/cli/index.ts +1 -1
- package/src/client/index.ts +119 -0
- package/src/components/Block.astro +12 -0
- package/src/components/CommentForm.astro +1 -1
- package/src/components/Comments.astro +1 -1
- package/src/components/InlinePortableTextEditor.tsx +260 -32
- package/src/components/OrderedList.astro +14 -0
- package/src/components/PortableText.astro +26 -4
- package/src/components/index.ts +12 -1
- package/src/components/ordered-list.ts +549 -0
- package/src/content/converters/mark-safety.ts +120 -0
- package/src/content/converters/numbered-list.ts +148 -0
- package/src/content/converters/portable-text-to-prosemirror.ts +84 -25
- package/src/content/converters/prosemirror-to-portable-text.ts +35 -14
- package/src/content/converters/types.ts +2 -0
- package/src/content/portable-text-lists.ts +205 -0
- package/src/content-list-query.ts +29 -0
- package/src/database/dialect-helpers.ts +3 -22
- package/src/database/migrations/055_content_translation_group_locale_index.ts +67 -0
- package/src/database/migrations/056_taxonomy_term_sort_order.ts +189 -0
- package/src/database/migrations/057_collection_hidden.ts +24 -0
- package/src/database/migrations/058_collection_sort_order.ts +20 -0
- package/src/database/migrations/059_revision_prune_queue.ts +36 -0
- package/src/database/migrations/060_collection_admin_config.ts +16 -0
- package/src/database/migrations/061_media_usage_cleanup.ts +77 -0
- package/src/database/migrations/062_media_usage_cleanup_fence.ts +295 -0
- package/src/database/migrations/063_media_usage_incremental_work.ts +397 -0
- package/src/database/migrations/064_fts_plain_text.ts +253 -0
- package/src/database/migrations/065_media_usage_collection_deletion.ts +85 -0
- package/src/database/migrations/066_media_usage_reconciliation.ts +115 -0
- package/src/database/migrations/067_indexed_content_fields.ts +39 -0
- package/src/database/migrations/068_content_taxonomy_entry_groups.ts +61 -0
- package/src/database/migrations/069_collection_title_date_fields.ts +45 -0
- package/src/database/migrations/070_collection_routable.ts +18 -0
- package/src/database/migrations/runner.ts +32 -0
- package/src/database/repositories/content.ts +1051 -273
- package/src/database/repositories/media-usage-work.ts +848 -0
- package/src/database/repositories/media-usage.ts +1502 -138
- package/src/database/repositories/revision.ts +98 -22
- package/src/database/repositories/taxonomy.ts +429 -103
- package/src/database/repositories/types.ts +58 -2
- package/src/database/types.ts +147 -17
- package/src/database/validate.ts +39 -0
- package/src/db/adapters.ts +36 -0
- package/src/db/index.ts +3 -0
- package/src/deferred-tasks.ts +71 -0
- package/src/emdash-runtime.ts +493 -110
- package/src/fields/file.ts +7 -4
- package/src/fields/image.ts +8 -1
- package/src/fields/types.ts +18 -5
- package/src/i18n/config.ts +32 -0
- package/src/i18n/repair-locale-casing.ts +0 -14
- package/src/i18n/taxonomy-locale-diagnostic.ts +47 -0
- package/src/import/wxr-taxonomies.ts +7 -47
- package/src/index.ts +27 -2
- package/src/loader.ts +165 -89
- package/src/mcp/server.ts +242 -34
- package/src/media/usage/activation.ts +626 -0
- package/src/media/usage/capture-triggers.ts +543 -0
- package/src/media/usage/cleanup.ts +305 -0
- package/src/media/usage/collection-deletion-processor.ts +356 -0
- package/src/media/usage/collection-deletion.ts +836 -0
- package/src/media/usage/content-fields.ts +40 -3
- package/src/media/usage/content-refresh.ts +356 -47
- package/src/media/usage/content-repair.ts +180 -61
- package/src/media/usage/content-snapshots.ts +85 -105
- package/src/media/usage/gc.ts +50 -0
- package/src/media/usage/projection-fingerprint.ts +129 -0
- package/src/media/usage/reconciliation-processor.ts +372 -0
- package/src/media/usage/reconciliation.ts +1117 -0
- package/src/media/usage/source-key.ts +4 -0
- package/src/media/usage/types.ts +2 -0
- package/src/media/usage/work-processor.ts +248 -0
- package/src/menus/index.ts +246 -141
- package/src/object-cache/index.ts +160 -3
- package/src/plugin-types.ts +8 -0
- package/src/plugins/adapt-sandbox-entry.ts +24 -5
- package/src/plugins/context.ts +24 -7
- package/src/plugins/index.ts +9 -0
- package/src/plugins/routes.ts +77 -1
- package/src/plugins/sandbox/index.ts +10 -1
- package/src/plugins/sandbox/types.ts +78 -1
- package/src/plugins/scheduler/node.ts +13 -1
- package/src/plugins/scheduler/types.ts +2 -0
- package/src/plugins/storage-indexes.ts +50 -11
- package/src/plugins/types.ts +39 -2
- package/src/query.ts +50 -79
- package/src/redirects/cache.ts +79 -19
- package/src/request-context.ts +3 -0
- package/src/scheduled-publish.ts +6 -1
- package/src/scheduler-health.ts +46 -0
- package/src/schema/registry.ts +863 -249
- package/src/schema/types.ts +74 -8
- package/src/schema/url-pattern.ts +33 -0
- package/src/schema/zod-generator.ts +77 -5
- package/src/search/fts-manager.ts +167 -86
- package/src/search/index.ts +2 -0
- package/src/search/query.ts +32 -11
- package/src/search/types.ts +8 -0
- package/src/seed/apply.ts +89 -16
- package/src/seed/types.ts +21 -3
- package/src/seed/validate.ts +52 -2
- package/src/taxonomies/index.ts +88 -82
- package/src/taxonomies/term-counts.ts +23 -12
- package/src/ui-comments.ts +19 -0
- package/src/ui.ts +11 -3
- package/src/utils/slugify.ts +1 -29
- package/src/virtual-modules.d.ts +24 -0
- package/dist/adapters-C0ONzkUP.d.mts.map +0 -1
- package/dist/after-B1IIdH3Y.mjs +0 -29
- package/dist/after-B1IIdH3Y.mjs.map +0 -1
- package/dist/api-DgPbMlng.mjs.map +0 -1
- package/dist/apply-1_6ra7NP.mjs.map +0 -1
- package/dist/cache-B26cufFd.mjs +0 -65
- package/dist/cache-B26cufFd.mjs.map +0 -1
- package/dist/config-DyF3OKg_.mjs.map +0 -1
- package/dist/content-CpfKV9QE.mjs.map +0 -1
- package/dist/content-refresh-DgqUBeTv.mjs +0 -1629
- package/dist/content-refresh-DgqUBeTv.mjs.map +0 -1
- package/dist/context-kO4YZB03.mjs.map +0 -1
- package/dist/dashboard-DoBwPnON.mjs.map +0 -1
- package/dist/dialect-helpers-DFwyWjTM.mjs.map +0 -1
- package/dist/errors-DtEXIQQV.mjs.map +0 -1
- package/dist/fts-manager-vncsZIJm.mjs.map +0 -1
- package/dist/index-BeNto_Vs.d.mts.map +0 -1
- package/dist/index-j9rTh3cp.d.mts.map +0 -1
- package/dist/loader-C1XOLV5b.mjs.map +0 -1
- package/dist/media-DWIzoVFL.mjs.map +0 -1
- package/dist/media-allowlist-B7TPD6aq.mjs.map +0 -1
- package/dist/media-usage-DPJcNaAq.mjs.map +0 -1
- package/dist/menus-C6qhqP4X.mjs.map +0 -1
- package/dist/object-cache-Bok5j2ae.mjs.map +0 -1
- package/dist/options-aeIs8WFu.d.mts.map +0 -1
- package/dist/public-url-DSGTnJFw.mjs.map +0 -1
- package/dist/query-DCiXI7OZ.mjs.map +0 -1
- package/dist/redirects-BOn2DIUs.mjs.map +0 -1
- package/dist/registry-BP1JK2xh.mjs +0 -795
- package/dist/registry-BP1JK2xh.mjs.map +0 -1
- package/dist/relations-DHFQGX0h.d.mts.map +0 -1
- package/dist/runner-BsI18UgP.mjs.map +0 -1
- package/dist/search-CeO678cp.mjs.map +0 -1
- package/dist/seo-C3GDfT0V.mjs.map +0 -1
- package/dist/site-url-8N3kSyVZ.mjs +0 -13
- package/dist/site-url-8N3kSyVZ.mjs.map +0 -1
- package/dist/slugify-C_tqlU4G.mjs +0 -30
- package/dist/slugify-C_tqlU4G.mjs.map +0 -1
- package/dist/taxonomies-B61CRSha.mjs.map +0 -1
- package/dist/taxonomies-Dbdki3Un.mjs.map +0 -1
- package/dist/taxonomy-DvwWAPvA.mjs +0 -304
- package/dist/taxonomy-DvwWAPvA.mjs.map +0 -1
- package/dist/types-84Bque3-.d.mts.map +0 -1
- package/dist/types-BQY7VYw6.d.mts.map +0 -1
- package/dist/types-DqZVPILm.d.mts.map +0 -1
- package/dist/types-XrQQ-Aex.mjs.map +0 -1
- package/dist/types-jISEalTX.d.mts.map +0 -1
- package/dist/types-o7xo7VgH.mjs.map +0 -1
- package/dist/validate-Bs_wT2ul.mjs.map +0 -1
- package/dist/validate-CdYcY-Ln.d.mts.map +0 -1
- package/dist/validate-VPnKoIzW.mjs.map +0 -1
- package/dist/version-Bdfb34kk.mjs +0 -7
- package/dist/zod-generator-DMzfga3g.mjs.map +0 -1
- /package/dist/{api-tokens-CEsW_jCg.mjs → api-tokens-CyTsLszZ.mjs} +0 -0
- /package/dist/{ssrf-BB__xfNM.mjs → ssrf-DpXgKsna.mjs} +0 -0
- /package/dist/{types-CK0LxPUQ.mjs → types-CP1CflWf.mjs} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_...path_.d.mts","names":[],"sources":["../../../../../../src/astro/routes/api/plugins/[pluginId]/[...path].ts"],"mappings":";;;cAkBa,SAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"_...path_.d.mts","names":[],"sources":["../../../../../../src/astro/routes/api/plugins/[pluginId]/[...path].ts"],"mappings":";;;cAkBa,SAAA;AAAA,cA2FA,GAAA,EAAG,QAAA;AAAA,cACH,IAAA,EAAI,QAAA;AAAA,cACJ,GAAA,EAAG,QAAA;AAAA,cACH,KAAA,EAAK,QAAA;AAAA,cACL,MAAA,EAAM,QAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import "../../../../../base64-
|
|
2
|
-
import "../../../../../types-
|
|
3
|
-
import { n as apiSuccess, t as apiError } from "../../../../../error-
|
|
4
|
-
import "../../../../../api-tokens-
|
|
5
|
-
import { r as requirePerm } from "../../../../../authorize-
|
|
6
|
-
import { t as requireScope } from "../../../../../scopes-
|
|
1
|
+
import "../../../../../base64-CvLhUKQv.mjs";
|
|
2
|
+
import "../../../../../types-CQPWhPxE.mjs";
|
|
3
|
+
import { n as apiSuccess, t as apiError } from "../../../../../error-DupyJZE2.mjs";
|
|
4
|
+
import "../../../../../api-tokens-CyTsLszZ.mjs";
|
|
5
|
+
import { r as requirePerm } from "../../../../../authorize-1iFJzPaZ.mjs";
|
|
6
|
+
import { t as requireScope } from "../../../../../scopes-BVeuhGBE.mjs";
|
|
7
7
|
import { Permissions } from "@emdash-cms/auth";
|
|
8
8
|
|
|
9
9
|
//#region src/astro/routes/api/plugins/[pluginId]/[...path].ts
|
|
@@ -38,7 +38,8 @@ const handleRequest = async ({ params, request, locals }) => {
|
|
|
38
38
|
if (scopeError) return scopeError;
|
|
39
39
|
if (!locals.tokenScopes && request.headers.get("X-EmDash-Request") !== "1") return apiError("CSRF_REJECTED", "Missing required header", 403);
|
|
40
40
|
}
|
|
41
|
-
const
|
|
41
|
+
const caller = routeMeta.public ? void 0 : user;
|
|
42
|
+
const result = await emdash.handlePluginApiRoute(pluginId, method, `/${path}`, request, caller);
|
|
42
43
|
if (!result.success) {
|
|
43
44
|
const code = result.error?.code ?? "PLUGIN_ERROR";
|
|
44
45
|
return apiError(code, code === "INTERNAL_ERROR" ? "Plugin route error" : result.error?.message ?? "Plugin route error", result.status ?? (code === "NOT_FOUND" ? 404 : 400));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_...path_.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/plugins/[pluginId]/[...path].ts"],"sourcesContent":["/**\n * Plugin API routes - dynamic handler for plugin-defined endpoints\n *\n * Routes are mounted at /_emdash/api/plugins/{pluginId}/*\n * Plugins register routes like \"POST /do-something\" which becomes\n * POST /_emdash/api/plugins/{pluginId}/do-something\n *\n * Routes marked as `public: true` skip authentication and CSRF checks.\n * Private routes (the default) require authentication and appropriate permissions.\n */\n\nimport { Permissions, type Permission } from \"@emdash-cms/auth\";\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, apiSuccess } from \"#api/error.js\";\nimport { requireScope } from \"#auth/scopes.js\";\n\nexport const prerender = false;\n\n/**\n * Handle all methods by matching against plugin-defined routes\n */\nconst handleRequest: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst pluginId = params.pluginId!;\n\tconst path = params.path || \"\";\n\tconst method = request.method.toUpperCase();\n\n\tif (!emdash?.handlePluginApiRoute) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash not configured\", 500);\n\t}\n\n\t// Resolve route metadata to decide auth before dispatch\n\tconst routeMeta = emdash.getPluginRouteMeta(pluginId, `/${path}`);\n\n\tif (!routeMeta) {\n\t\treturn apiError(\"NOT_FOUND\", \"Plugin route not found\", 404);\n\t}\n\n\t// Public routes skip auth, CSRF, and scope checks entirely\n\tif (!routeMeta.public) {\n\t\t// Plugin routes are dispatched by name only — the HTTP method never\n\t\t// selects a different handler, so a route reached via GET or HEAD runs\n\t\t// exactly the same code (and side effects) as one reached via POST.\n\t\t// Method-based tiering is therefore unsafe: gating GET/HEAD/OPTIONS on\n\t\t// `plugins:read` with no CSRF let an editor (or a cross-origin page,\n\t\t// since HEAD is CORS-safe) invoke a mutating admin route by choosing the\n\t\t// method (#1853). Astro also dispatches HEAD to the GET export, so no\n\t\t// explicit HEAD handler is needed to reach a \"GET\" route. Gate every\n\t\t// private invocation on the route's declared permission (defaulting to\n\t\t// `plugins:manage`) + CSRF regardless of method.\n\t\tconst permission = routeMeta.permission ?? \"plugins:manage\";\n\t\tif (!(permission in Permissions)) {\n\t\t\treturn apiError(\"INVALID_PLUGIN_ROUTE\", \"Plugin route declares an invalid permission\", 500);\n\t\t}\n\t\tconst denied = requirePerm(user, permission as Permission);\n\t\tif (denied) return denied;\n\n\t\t// Token scope enforcement — plugin routes require \"admin\" scope.\n\t\t// Session auth is implicitly full-access (requireScope returns null).\n\t\tconst scopeError = requireScope(locals, \"admin\");\n\t\tif (scopeError) return scopeError;\n\n\t\t// CSRF protection on private routes. Plugin routes use soft auth in the\n\t\t// middleware (user resolved but not required), so the middleware's CSRF\n\t\t// check doesn't run — enforce it here. Applied to every method because\n\t\t// any method can trigger a state change (see above). Token-authed\n\t\t// requests (which set tokenScopes) are exempt — tokens aren't ambient\n\t\t// credentials like cookies.\n\t\tif (!locals.tokenScopes && request.headers.get(\"X-EmDash-Request\") !== \"1\") {\n\t\t\treturn apiError(\"CSRF_REJECTED\", \"Missing required header\", 403);\n\t\t}\n\t}\n\n\tconst result = await emdash.handlePluginApiRoute(pluginId, method, `/${path}`, request);\n\n\tif (!result.success) {\n\t\tconst code = result.error?.code ?? \"PLUGIN_ERROR\";\n\t\t// Pass through messages from known plugin errors (PluginRouteError),\n\t\t// but mask internal errors (unhandled exceptions) to avoid leaking\n\t\t// database errors, file paths, etc. from sandboxed plugins.\n\t\tconst message =\n\t\t\tcode === \"INTERNAL_ERROR\"\n\t\t\t\t? \"Plugin route error\"\n\t\t\t\t: (result.error?.message ?? \"Plugin route error\");\n\t\t// PluginRouteError status is returned at the top level of the result\n\t\tconst status = (result as { status?: number }).status ?? (code === \"NOT_FOUND\" ? 404 : 400);\n\t\treturn apiError(code, message, status);\n\t}\n\n\tconst response = apiSuccess(result.data);\n\t// Public routes may opt in to CDN/browser caching for GET responses.\n\t// getRouteMeta only ever exposes cacheControl on public routes, and errors\n\t// above keep the default private, no-store. Astro serves HEAD via this GET\n\t// export, which is fine: same headers, no body.\n\tif (routeMeta.cacheControl && (method === \"GET\" || method === \"HEAD\")) {\n\t\tresponse.headers.set(\"Cache-Control\", routeMeta.cacheControl);\n\t}\n\treturn response;\n};\n\n// Export handlers for all HTTP methods\nexport const GET = handleRequest;\nexport const POST = handleRequest;\nexport const PUT = handleRequest;\nexport const PATCH = handleRequest;\nexport const DELETE = handleRequest;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAkBA,MAAa,YAAY;;;;AAKzB,MAAM,gBAA0B,OAAO,EAAE,QAAQ,SAAS,aAAa;CACtE,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,WAAW,OAAO;CACxB,MAAM,OAAO,OAAO,QAAQ;CAC5B,MAAM,SAAS,QAAQ,OAAO,aAAa;AAE3C,KAAI,CAAC,QAAQ,qBACZ,QAAO,SAAS,kBAAkB,yBAAyB,IAAI;CAIhE,MAAM,YAAY,OAAO,mBAAmB,UAAU,IAAI,OAAO;AAEjE,KAAI,CAAC,UACJ,QAAO,SAAS,aAAa,0BAA0B,IAAI;AAI5D,KAAI,CAAC,UAAU,QAAQ;EAWtB,MAAM,aAAa,UAAU,cAAc;AAC3C,MAAI,EAAE,cAAc,aACnB,QAAO,SAAS,wBAAwB,+CAA+C,IAAI;EAE5F,MAAM,SAAS,YAAY,MAAM,WAAyB;AAC1D,MAAI,OAAQ,QAAO;EAInB,MAAM,aAAa,aAAa,QAAQ,QAAQ;AAChD,MAAI,WAAY,QAAO;AAQvB,MAAI,CAAC,OAAO,eAAe,QAAQ,QAAQ,IAAI,mBAAmB,KAAK,IACtE,QAAO,SAAS,iBAAiB,2BAA2B,IAAI;;
|
|
1
|
+
{"version":3,"file":"_...path_.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/plugins/[pluginId]/[...path].ts"],"sourcesContent":["/**\n * Plugin API routes - dynamic handler for plugin-defined endpoints\n *\n * Routes are mounted at /_emdash/api/plugins/{pluginId}/*\n * Plugins register routes like \"POST /do-something\" which becomes\n * POST /_emdash/api/plugins/{pluginId}/do-something\n *\n * Routes marked as `public: true` skip authentication and CSRF checks.\n * Private routes (the default) require authentication and appropriate permissions.\n */\n\nimport { Permissions, type Permission } from \"@emdash-cms/auth\";\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, apiSuccess } from \"#api/error.js\";\nimport { requireScope } from \"#auth/scopes.js\";\n\nexport const prerender = false;\n\n/**\n * Handle all methods by matching against plugin-defined routes\n */\nconst handleRequest: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst pluginId = params.pluginId!;\n\tconst path = params.path || \"\";\n\tconst method = request.method.toUpperCase();\n\n\tif (!emdash?.handlePluginApiRoute) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash not configured\", 500);\n\t}\n\n\t// Resolve route metadata to decide auth before dispatch\n\tconst routeMeta = emdash.getPluginRouteMeta(pluginId, `/${path}`);\n\n\tif (!routeMeta) {\n\t\treturn apiError(\"NOT_FOUND\", \"Plugin route not found\", 404);\n\t}\n\n\t// Public routes skip auth, CSRF, and scope checks entirely\n\tif (!routeMeta.public) {\n\t\t// Plugin routes are dispatched by name only — the HTTP method never\n\t\t// selects a different handler, so a route reached via GET or HEAD runs\n\t\t// exactly the same code (and side effects) as one reached via POST.\n\t\t// Method-based tiering is therefore unsafe: gating GET/HEAD/OPTIONS on\n\t\t// `plugins:read` with no CSRF let an editor (or a cross-origin page,\n\t\t// since HEAD is CORS-safe) invoke a mutating admin route by choosing the\n\t\t// method (#1853). Astro also dispatches HEAD to the GET export, so no\n\t\t// explicit HEAD handler is needed to reach a \"GET\" route. Gate every\n\t\t// private invocation on the route's declared permission (defaulting to\n\t\t// `plugins:manage`) + CSRF regardless of method.\n\t\tconst permission = routeMeta.permission ?? \"plugins:manage\";\n\t\tif (!(permission in Permissions)) {\n\t\t\treturn apiError(\"INVALID_PLUGIN_ROUTE\", \"Plugin route declares an invalid permission\", 500);\n\t\t}\n\t\tconst denied = requirePerm(user, permission as Permission);\n\t\tif (denied) return denied;\n\n\t\t// Token scope enforcement — plugin routes require \"admin\" scope.\n\t\t// Session auth is implicitly full-access (requireScope returns null).\n\t\tconst scopeError = requireScope(locals, \"admin\");\n\t\tif (scopeError) return scopeError;\n\n\t\t// CSRF protection on private routes. Plugin routes use soft auth in the\n\t\t// middleware (user resolved but not required), so the middleware's CSRF\n\t\t// check doesn't run — enforce it here. Applied to every method because\n\t\t// any method can trigger a state change (see above). Token-authed\n\t\t// requests (which set tokenScopes) are exempt — tokens aren't ambient\n\t\t// credentials like cookies.\n\t\tif (!locals.tokenScopes && request.headers.get(\"X-EmDash-Request\") !== \"1\") {\n\t\t\treturn apiError(\"CSRF_REJECTED\", \"Missing required header\", 403);\n\t\t}\n\t}\n\n\t// Forward the caller only for private routes: it was validated by the\n\t// requirePerm/requireScope checks above, so plugins can trust ctx.user.\n\t// Public routes skip auth, so no caller is bound even when an ambient\n\t// session happens to exist.\n\tconst caller = routeMeta.public ? undefined : user;\n\n\tconst result = await emdash.handlePluginApiRoute(pluginId, method, `/${path}`, request, caller);\n\n\tif (!result.success) {\n\t\tconst code = result.error?.code ?? \"PLUGIN_ERROR\";\n\t\t// Pass through messages from known plugin errors (PluginRouteError),\n\t\t// but mask internal errors (unhandled exceptions) to avoid leaking\n\t\t// database errors, file paths, etc. from sandboxed plugins.\n\t\tconst message =\n\t\t\tcode === \"INTERNAL_ERROR\"\n\t\t\t\t? \"Plugin route error\"\n\t\t\t\t: (result.error?.message ?? \"Plugin route error\");\n\t\t// PluginRouteError status is returned at the top level of the result\n\t\tconst status = (result as { status?: number }).status ?? (code === \"NOT_FOUND\" ? 404 : 400);\n\t\treturn apiError(code, message, status);\n\t}\n\n\tconst response = apiSuccess(result.data);\n\t// Public routes may opt in to CDN/browser caching for GET responses.\n\t// getRouteMeta only ever exposes cacheControl on public routes, and errors\n\t// above keep the default private, no-store. Astro serves HEAD via this GET\n\t// export, which is fine: same headers, no body.\n\tif (routeMeta.cacheControl && (method === \"GET\" || method === \"HEAD\")) {\n\t\tresponse.headers.set(\"Cache-Control\", routeMeta.cacheControl);\n\t}\n\treturn response;\n};\n\n// Export handlers for all HTTP methods\nexport const GET = handleRequest;\nexport const POST = handleRequest;\nexport const PUT = handleRequest;\nexport const PATCH = handleRequest;\nexport const DELETE = handleRequest;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAkBA,MAAa,YAAY;;;;AAKzB,MAAM,gBAA0B,OAAO,EAAE,QAAQ,SAAS,aAAa;CACtE,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,WAAW,OAAO;CACxB,MAAM,OAAO,OAAO,QAAQ;CAC5B,MAAM,SAAS,QAAQ,OAAO,aAAa;AAE3C,KAAI,CAAC,QAAQ,qBACZ,QAAO,SAAS,kBAAkB,yBAAyB,IAAI;CAIhE,MAAM,YAAY,OAAO,mBAAmB,UAAU,IAAI,OAAO;AAEjE,KAAI,CAAC,UACJ,QAAO,SAAS,aAAa,0BAA0B,IAAI;AAI5D,KAAI,CAAC,UAAU,QAAQ;EAWtB,MAAM,aAAa,UAAU,cAAc;AAC3C,MAAI,EAAE,cAAc,aACnB,QAAO,SAAS,wBAAwB,+CAA+C,IAAI;EAE5F,MAAM,SAAS,YAAY,MAAM,WAAyB;AAC1D,MAAI,OAAQ,QAAO;EAInB,MAAM,aAAa,aAAa,QAAQ,QAAQ;AAChD,MAAI,WAAY,QAAO;AAQvB,MAAI,CAAC,OAAO,eAAe,QAAQ,QAAQ,IAAI,mBAAmB,KAAK,IACtE,QAAO,SAAS,iBAAiB,2BAA2B,IAAI;;CAQlE,MAAM,SAAS,UAAU,SAAS,SAAY;CAE9C,MAAM,SAAS,MAAM,OAAO,qBAAqB,UAAU,QAAQ,IAAI,QAAQ,SAAS,OAAO;AAE/F,KAAI,CAAC,OAAO,SAAS;EACpB,MAAM,OAAO,OAAO,OAAO,QAAQ;AAUnC,SAAO,SAAS,MALf,SAAS,mBACN,uBACC,OAAO,OAAO,WAAW,sBAEd,OAA+B,WAAW,SAAS,cAAc,MAAM,KACjD;;CAGvC,MAAM,WAAW,WAAW,OAAO,KAAK;AAKxC,KAAI,UAAU,iBAAiB,WAAW,SAAS,WAAW,QAC7D,UAAS,QAAQ,IAAI,iBAAiB,UAAU,aAAa;AAE9D,QAAO;;AAIR,MAAa,MAAM;AACnB,MAAa,OAAO;AACpB,MAAa,MAAM;AACnB,MAAa,QAAQ;AACrB,MAAa,SAAS"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import "../../../../../dialect-helpers-
|
|
2
|
-
import "../../../../../
|
|
3
|
-
import "../../../../../
|
|
4
|
-
import "../../../../../
|
|
5
|
-
import "../../../../../
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import "../../../../../
|
|
9
|
-
import
|
|
10
|
-
import "../../../../../
|
|
11
|
-
import "../../../../../
|
|
1
|
+
import "../../../../../dialect-helpers-BSbfaO3F.mjs";
|
|
2
|
+
import "../../../../../config-C3EBstHi.mjs";
|
|
3
|
+
import "../../../../../base64-CvLhUKQv.mjs";
|
|
4
|
+
import "../../../../../types-CQPWhPxE.mjs";
|
|
5
|
+
import "../../../../../options-CBXIHUoT.mjs";
|
|
6
|
+
import "../../../../../redirect-COsS6SWJ.mjs";
|
|
7
|
+
import { a as unwrapResult, i as requireDb, r as handleError } from "../../../../../error-DupyJZE2.mjs";
|
|
8
|
+
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../../parse-DFbuc-Fh.mjs";
|
|
9
|
+
import "../../../../../media-BWWWb8kg.mjs";
|
|
10
|
+
import { a as notFoundPruneBody, r as notFoundListQuery } from "../../../../../redirects-cV9g7V-0.mjs";
|
|
11
|
+
import "../../../../../relations-BBApI4e2.mjs";
|
|
12
|
+
import "../../../../../status-CWVYpbD8.mjs";
|
|
12
13
|
import "../../../../../api/schemas/index.mjs";
|
|
13
|
-
import { r as requirePerm } from "../../../../../authorize-
|
|
14
|
-
import { n as handleNotFoundList, r as handleNotFoundPrune, t as handleNotFoundClear } from "../../../../../redirects-
|
|
14
|
+
import { r as requirePerm } from "../../../../../authorize-1iFJzPaZ.mjs";
|
|
15
|
+
import { n as handleNotFoundList, r as handleNotFoundPrune, t as handleNotFoundClear } from "../../../../../redirects-CufRQt0Q.mjs";
|
|
15
16
|
|
|
16
17
|
//#region src/astro/routes/api/redirects/404s/index.ts
|
|
17
18
|
const prerender = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/redirects/404s/index.ts"],"sourcesContent":["/**\n * 404 log list and management endpoints\n *\n * GET /_emdash/api/redirects/404s - List 404 log entries\n * DELETE /_emdash/api/redirects/404s - Clear all 404 log entries\n * POST /_emdash/api/redirects/404s - Prune 404 log entries older than date\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport {\n\thandleNotFoundClear,\n\thandleNotFoundList,\n\thandleNotFoundPrune,\n} from \"#api/handlers/redirects.js\";\nimport { isParseError, parseBody, parseQuery } from \"#api/parse.js\";\nimport { notFoundListQuery, notFoundPruneBody } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ url, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\n\tconst denied = requirePerm(user, \"redirects:read\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst query = parseQuery(url, notFoundListQuery);\n\t\tif (isParseError(query)) return query;\n\n\t\tconst result = await handleNotFoundList(db, query);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to fetch 404 log\", \"NOT_FOUND_LIST_ERROR\");\n\t}\n};\n\nexport const DELETE: APIRoute = async ({ locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\n\tconst denied = requirePerm(user, \"redirects:manage\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst result = await handleNotFoundClear(db);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to clear 404 log\", \"NOT_FOUND_CLEAR_ERROR\");\n\t}\n};\n\nexport const POST: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\n\tconst denied = requirePerm(user, \"redirects:manage\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst body = await parseBody(request, notFoundPruneBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst result = await handleNotFoundPrune(db, body.olderThan);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to prune 404 log\", \"NOT_FOUND_PRUNE_ERROR\");\n\t}\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/redirects/404s/index.ts"],"sourcesContent":["/**\n * 404 log list and management endpoints\n *\n * GET /_emdash/api/redirects/404s - List 404 log entries\n * DELETE /_emdash/api/redirects/404s - Clear all 404 log entries\n * POST /_emdash/api/redirects/404s - Prune 404 log entries older than date\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport {\n\thandleNotFoundClear,\n\thandleNotFoundList,\n\thandleNotFoundPrune,\n} from \"#api/handlers/redirects.js\";\nimport { isParseError, parseBody, parseQuery } from \"#api/parse.js\";\nimport { notFoundListQuery, notFoundPruneBody } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ url, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\n\tconst denied = requirePerm(user, \"redirects:read\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst query = parseQuery(url, notFoundListQuery);\n\t\tif (isParseError(query)) return query;\n\n\t\tconst result = await handleNotFoundList(db, query);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to fetch 404 log\", \"NOT_FOUND_LIST_ERROR\");\n\t}\n};\n\nexport const DELETE: APIRoute = async ({ locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\n\tconst denied = requirePerm(user, \"redirects:manage\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst result = await handleNotFoundClear(db);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to clear 404 log\", \"NOT_FOUND_CLEAR_ERROR\");\n\t}\n};\n\nexport const POST: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\n\tconst denied = requirePerm(user, \"redirects:manage\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst body = await parseBody(request, notFoundPruneBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst result = await handleNotFoundPrune(db, body.olderThan);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to prune 404 log\", \"NOT_FOUND_PRUNE_ERROR\");\n\t}\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAoBA,MAAa,YAAY;AAEzB,MAAa,MAAgB,OAAO,EAAE,KAAK,aAAa;CACvD,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAClB,MAAM,KAAK,OAAO;CAElB,MAAM,SAAS,YAAY,MAAM,iBAAiB;AAClD,KAAI,OAAQ,QAAO;AAEnB,KAAI;EACH,MAAM,QAAQ,WAAW,KAAK,kBAAkB;AAChD,MAAI,aAAa,MAAM,CAAE,QAAO;AAGhC,SAAO,aADQ,MAAM,mBAAmB,IAAI,MAAM,CACvB;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,2BAA2B,uBAAuB;;;AAI9E,MAAa,SAAmB,OAAO,EAAE,aAAa;CACrD,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAClB,MAAM,KAAK,OAAO;CAElB,MAAM,SAAS,YAAY,MAAM,mBAAmB;AACpD,KAAI,OAAQ,QAAO;AAEnB,KAAI;AAEH,SAAO,aADQ,MAAM,oBAAoB,GAAG,CACjB;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,2BAA2B,wBAAwB;;;AAI/E,MAAa,OAAiB,OAAO,EAAE,SAAS,aAAa;CAC5D,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAClB,MAAM,KAAK,OAAO;CAElB,MAAM,SAAS,YAAY,MAAM,mBAAmB;AACpD,KAAI,OAAQ,QAAO;AAEnB,KAAI;EACH,MAAM,OAAO,MAAM,UAAU,SAAS,kBAAkB;AACxD,MAAI,aAAa,KAAK,CAAE,QAAO;AAG/B,SAAO,aADQ,MAAM,oBAAoB,IAAI,KAAK,UAAU,CACjC;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,2BAA2B,wBAAwB"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import "../../../../../dialect-helpers-
|
|
2
|
-
import "../../../../../
|
|
3
|
-
import "../../../../../
|
|
4
|
-
import "../../../../../
|
|
5
|
-
import "../../../../../
|
|
6
|
-
import
|
|
7
|
-
import { i as
|
|
8
|
-
import "../../../../../
|
|
9
|
-
import
|
|
10
|
-
import "../../../../../
|
|
11
|
-
import "../../../../../
|
|
1
|
+
import "../../../../../dialect-helpers-BSbfaO3F.mjs";
|
|
2
|
+
import "../../../../../config-C3EBstHi.mjs";
|
|
3
|
+
import "../../../../../base64-CvLhUKQv.mjs";
|
|
4
|
+
import "../../../../../types-CQPWhPxE.mjs";
|
|
5
|
+
import "../../../../../options-CBXIHUoT.mjs";
|
|
6
|
+
import "../../../../../redirect-COsS6SWJ.mjs";
|
|
7
|
+
import { a as unwrapResult, i as requireDb, r as handleError } from "../../../../../error-DupyJZE2.mjs";
|
|
8
|
+
import { i as parseQuery, t as isParseError } from "../../../../../parse-DFbuc-Fh.mjs";
|
|
9
|
+
import "../../../../../media-BWWWb8kg.mjs";
|
|
10
|
+
import { o as notFoundSummaryQuery } from "../../../../../redirects-cV9g7V-0.mjs";
|
|
11
|
+
import "../../../../../relations-BBApI4e2.mjs";
|
|
12
|
+
import "../../../../../status-CWVYpbD8.mjs";
|
|
12
13
|
import "../../../../../api/schemas/index.mjs";
|
|
13
|
-
import { r as requirePerm } from "../../../../../authorize-
|
|
14
|
-
import { i as handleNotFoundSummary } from "../../../../../redirects-
|
|
14
|
+
import { r as requirePerm } from "../../../../../authorize-1iFJzPaZ.mjs";
|
|
15
|
+
import { i as handleNotFoundSummary } from "../../../../../redirects-CufRQt0Q.mjs";
|
|
15
16
|
|
|
16
17
|
//#region src/astro/routes/api/redirects/404s/summary.ts
|
|
17
18
|
const prerender = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/redirects/404s/summary.ts"],"sourcesContent":["/**\n * 404 summary endpoint\n *\n * GET /_emdash/api/redirects/404s/summary - Get 404 summary grouped by path\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport { handleNotFoundSummary } from \"#api/handlers/redirects.js\";\nimport { isParseError, parseQuery } from \"#api/parse.js\";\nimport { notFoundSummaryQuery } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ url, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\n\tconst denied = requirePerm(user, \"redirects:read\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst query = parseQuery(url, notFoundSummaryQuery);\n\t\tif (isParseError(query)) return query;\n\n\t\tconst result = await handleNotFoundSummary(db, query.limit);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to fetch 404 summary\", \"NOT_FOUND_SUMMARY_ERROR\");\n\t}\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"summary.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/redirects/404s/summary.ts"],"sourcesContent":["/**\n * 404 summary endpoint\n *\n * GET /_emdash/api/redirects/404s/summary - Get 404 summary grouped by path\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport { handleNotFoundSummary } from \"#api/handlers/redirects.js\";\nimport { isParseError, parseQuery } from \"#api/parse.js\";\nimport { notFoundSummaryQuery } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ url, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\n\tconst denied = requirePerm(user, \"redirects:read\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst query = parseQuery(url, notFoundSummaryQuery);\n\t\tif (isParseError(query)) return query;\n\n\t\tconst result = await handleNotFoundSummary(db, query.limit);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to fetch 404 summary\", \"NOT_FOUND_SUMMARY_ERROR\");\n\t}\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAcA,MAAa,YAAY;AAEzB,MAAa,MAAgB,OAAO,EAAE,KAAK,aAAa;CACvD,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAClB,MAAM,KAAK,OAAO;CAElB,MAAM,SAAS,YAAY,MAAM,iBAAiB;AAClD,KAAI,OAAQ,QAAO;AAEnB,KAAI;EACH,MAAM,QAAQ,WAAW,KAAK,qBAAqB;AACnD,MAAI,aAAa,MAAM,CAAE,QAAO;AAGhC,SAAO,aADQ,MAAM,sBAAsB,IAAI,MAAM,MAAM,CAChC;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,+BAA+B,0BAA0B"}
|
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
import "../../../../dialect-helpers-
|
|
2
|
-
import "../../../../
|
|
3
|
-
import "../../../../
|
|
4
|
-
import "../../../../
|
|
5
|
-
import "../../../../
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import { n as
|
|
9
|
-
import "../../../../
|
|
10
|
-
import {
|
|
11
|
-
import "../../../../
|
|
12
|
-
import "../../../../
|
|
1
|
+
import "../../../../dialect-helpers-BSbfaO3F.mjs";
|
|
2
|
+
import "../../../../config-C3EBstHi.mjs";
|
|
3
|
+
import "../../../../after-CBU2vkoO.mjs";
|
|
4
|
+
import "../../../../base64-CvLhUKQv.mjs";
|
|
5
|
+
import "../../../../types-CQPWhPxE.mjs";
|
|
6
|
+
import "../../../../options-CBXIHUoT.mjs";
|
|
7
|
+
import "../../../../redirect-COsS6SWJ.mjs";
|
|
8
|
+
import { n as invalidateRedirectCache } from "../../../../cache-CBJaDy_E.mjs";
|
|
9
|
+
import { a as unwrapResult, i as requireDb, r as handleError, t as apiError } from "../../../../error-DupyJZE2.mjs";
|
|
10
|
+
import { n as parseBody, t as isParseError } from "../../../../parse-DFbuc-Fh.mjs";
|
|
11
|
+
import "../../../../media-BWWWb8kg.mjs";
|
|
12
|
+
import { f as updateRedirectBody } from "../../../../redirects-cV9g7V-0.mjs";
|
|
13
|
+
import "../../../../relations-BBApI4e2.mjs";
|
|
14
|
+
import "../../../../status-CWVYpbD8.mjs";
|
|
13
15
|
import "../../../../api/schemas/index.mjs";
|
|
14
|
-
import { r as requirePerm } from "../../../../authorize-
|
|
15
|
-
import { l as handleRedirectUpdate, o as handleRedirectDelete, s as handleRedirectGet } from "../../../../redirects-
|
|
16
|
+
import { r as requirePerm } from "../../../../authorize-1iFJzPaZ.mjs";
|
|
17
|
+
import { l as handleRedirectUpdate, o as handleRedirectDelete, s as handleRedirectGet } from "../../../../redirects-CufRQt0Q.mjs";
|
|
16
18
|
|
|
17
19
|
//#region src/astro/routes/api/redirects/[id].ts
|
|
18
20
|
const prerender = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_id_.mjs","names":[],"sources":["../../../../../src/astro/routes/api/redirects/[id].ts"],"sourcesContent":["/**\n * Redirect by ID endpoints\n *\n * GET /_emdash/api/redirects/:id - Get redirect\n * PUT /_emdash/api/redirects/:id - Update redirect\n * DELETE /_emdash/api/redirects/:id - Delete redirect\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport {\n\thandleRedirectDelete,\n\thandleRedirectGet,\n\thandleRedirectUpdate,\n} from \"#api/handlers/redirects.js\";\nimport { isParseError, parseBody } from \"#api/parse.js\";\nimport { updateRedirectBody } from \"#api/schemas.js\";\nimport { invalidateRedirectCache } from \"#redirects/cache.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ params, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\tconst { id } = params;\n\n\tconst denied = requirePerm(user, \"redirects:read\");\n\tif (denied) return denied;\n\n\tif (!id) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"id is required\", 400);\n\t}\n\n\ttry {\n\t\tconst result = await handleRedirectGet(db, id);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to fetch redirect\", \"REDIRECT_GET_ERROR\");\n\t}\n};\n\nexport const PUT: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\tconst { id } = params;\n\n\tconst denied = requirePerm(user, \"redirects:manage\");\n\tif (denied) return denied;\n\n\tif (!id) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"id is required\", 400);\n\t}\n\n\ttry {\n\t\tconst body = await parseBody(request, updateRedirectBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst result = await handleRedirectUpdate(db, id, body);\n\t\tinvalidateRedirectCache();\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to update redirect\", \"REDIRECT_UPDATE_ERROR\");\n\t}\n};\n\nexport const DELETE: APIRoute = async ({ params, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\tconst { id } = params;\n\n\tconst denied = requirePerm(user, \"redirects:manage\");\n\tif (denied) return denied;\n\n\tif (!id) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"id is required\", 400);\n\t}\n\n\ttry {\n\t\tconst result = await handleRedirectDelete(db, id);\n\t\tinvalidateRedirectCache();\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to delete redirect\", \"REDIRECT_DELETE_ERROR\");\n\t}\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"_id_.mjs","names":[],"sources":["../../../../../src/astro/routes/api/redirects/[id].ts"],"sourcesContent":["/**\n * Redirect by ID endpoints\n *\n * GET /_emdash/api/redirects/:id - Get redirect\n * PUT /_emdash/api/redirects/:id - Update redirect\n * DELETE /_emdash/api/redirects/:id - Delete redirect\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport {\n\thandleRedirectDelete,\n\thandleRedirectGet,\n\thandleRedirectUpdate,\n} from \"#api/handlers/redirects.js\";\nimport { isParseError, parseBody } from \"#api/parse.js\";\nimport { updateRedirectBody } from \"#api/schemas.js\";\nimport { invalidateRedirectCache } from \"#redirects/cache.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ params, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\tconst { id } = params;\n\n\tconst denied = requirePerm(user, \"redirects:read\");\n\tif (denied) return denied;\n\n\tif (!id) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"id is required\", 400);\n\t}\n\n\ttry {\n\t\tconst result = await handleRedirectGet(db, id);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to fetch redirect\", \"REDIRECT_GET_ERROR\");\n\t}\n};\n\nexport const PUT: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\tconst { id } = params;\n\n\tconst denied = requirePerm(user, \"redirects:manage\");\n\tif (denied) return denied;\n\n\tif (!id) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"id is required\", 400);\n\t}\n\n\ttry {\n\t\tconst body = await parseBody(request, updateRedirectBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst result = await handleRedirectUpdate(db, id, body);\n\t\tinvalidateRedirectCache();\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to update redirect\", \"REDIRECT_UPDATE_ERROR\");\n\t}\n};\n\nexport const DELETE: APIRoute = async ({ params, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\tconst { id } = params;\n\n\tconst denied = requirePerm(user, \"redirects:manage\");\n\tif (denied) return denied;\n\n\tif (!id) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"id is required\", 400);\n\t}\n\n\ttry {\n\t\tconst result = await handleRedirectDelete(db, id);\n\t\tinvalidateRedirectCache();\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to delete redirect\", \"REDIRECT_DELETE_ERROR\");\n\t}\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAqBA,MAAa,YAAY;AAEzB,MAAa,MAAgB,OAAO,EAAE,QAAQ,aAAa;CAC1D,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAClB,MAAM,KAAK,OAAO;CAClB,MAAM,EAAE,OAAO;CAEf,MAAM,SAAS,YAAY,MAAM,iBAAiB;AAClD,KAAI,OAAQ,QAAO;AAEnB,KAAI,CAAC,GACJ,QAAO,SAAS,oBAAoB,kBAAkB,IAAI;AAG3D,KAAI;AAEH,SAAO,aADQ,MAAM,kBAAkB,IAAI,GAAG,CACnB;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,4BAA4B,qBAAqB;;;AAI7E,MAAa,MAAgB,OAAO,EAAE,QAAQ,SAAS,aAAa;CACnE,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAClB,MAAM,KAAK,OAAO;CAClB,MAAM,EAAE,OAAO;CAEf,MAAM,SAAS,YAAY,MAAM,mBAAmB;AACpD,KAAI,OAAQ,QAAO;AAEnB,KAAI,CAAC,GACJ,QAAO,SAAS,oBAAoB,kBAAkB,IAAI;AAG3D,KAAI;EACH,MAAM,OAAO,MAAM,UAAU,SAAS,mBAAmB;AACzD,MAAI,aAAa,KAAK,CAAE,QAAO;EAE/B,MAAM,SAAS,MAAM,qBAAqB,IAAI,IAAI,KAAK;AACvD,2BAAyB;AACzB,SAAO,aAAa,OAAO;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,6BAA6B,wBAAwB;;;AAIjF,MAAa,SAAmB,OAAO,EAAE,QAAQ,aAAa;CAC7D,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAClB,MAAM,KAAK,OAAO;CAClB,MAAM,EAAE,OAAO;CAEf,MAAM,SAAS,YAAY,MAAM,mBAAmB;AACpD,KAAI,OAAQ,QAAO;AAEnB,KAAI,CAAC,GACJ,QAAO,SAAS,oBAAoB,kBAAkB,IAAI;AAG3D,KAAI;EACH,MAAM,SAAS,MAAM,qBAAqB,IAAI,GAAG;AACjD,2BAAyB;AACzB,SAAO,aAAa,OAAO;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,6BAA6B,wBAAwB"}
|
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
import "../../../../dialect-helpers-
|
|
2
|
-
import "../../../../
|
|
3
|
-
import "../../../../
|
|
4
|
-
import "../../../../
|
|
5
|
-
import "../../../../
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import "../../../../
|
|
10
|
-
import {
|
|
11
|
-
import "../../../../
|
|
12
|
-
import "../../../../
|
|
1
|
+
import "../../../../dialect-helpers-BSbfaO3F.mjs";
|
|
2
|
+
import "../../../../config-C3EBstHi.mjs";
|
|
3
|
+
import "../../../../after-CBU2vkoO.mjs";
|
|
4
|
+
import "../../../../base64-CvLhUKQv.mjs";
|
|
5
|
+
import "../../../../types-CQPWhPxE.mjs";
|
|
6
|
+
import "../../../../options-CBXIHUoT.mjs";
|
|
7
|
+
import "../../../../redirect-COsS6SWJ.mjs";
|
|
8
|
+
import { n as invalidateRedirectCache } from "../../../../cache-CBJaDy_E.mjs";
|
|
9
|
+
import { a as unwrapResult, i as requireDb, r as handleError } from "../../../../error-DupyJZE2.mjs";
|
|
10
|
+
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../parse-DFbuc-Fh.mjs";
|
|
11
|
+
import "../../../../media-BWWWb8kg.mjs";
|
|
12
|
+
import { d as redirectsListQuery, t as createRedirectBody } from "../../../../redirects-cV9g7V-0.mjs";
|
|
13
|
+
import "../../../../relations-BBApI4e2.mjs";
|
|
14
|
+
import "../../../../status-CWVYpbD8.mjs";
|
|
13
15
|
import "../../../../api/schemas/index.mjs";
|
|
14
|
-
import { r as requirePerm } from "../../../../authorize-
|
|
15
|
-
import { a as handleRedirectCreate, c as handleRedirectList } from "../../../../redirects-
|
|
16
|
+
import { r as requirePerm } from "../../../../authorize-1iFJzPaZ.mjs";
|
|
17
|
+
import { a as handleRedirectCreate, c as handleRedirectList } from "../../../../redirects-CufRQt0Q.mjs";
|
|
16
18
|
|
|
17
19
|
//#region src/astro/routes/api/redirects/index.ts
|
|
18
20
|
const prerender = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../../src/astro/routes/api/redirects/index.ts"],"sourcesContent":["/**\n * Redirects list and create endpoints\n *\n * GET /_emdash/api/redirects - List redirects (with filters)\n * POST /_emdash/api/redirects - Create redirect\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport { handleRedirectCreate, handleRedirectList } from \"#api/handlers/redirects.js\";\nimport { isParseError, parseBody, parseQuery } from \"#api/parse.js\";\nimport { createRedirectBody, redirectsListQuery } from \"#api/schemas.js\";\nimport { invalidateRedirectCache } from \"#redirects/cache.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ url, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\n\tconst denied = requirePerm(user, \"redirects:read\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst query = parseQuery(url, redirectsListQuery);\n\t\tif (isParseError(query)) return query;\n\n\t\tconst result = await handleRedirectList(db, query);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to fetch redirects\", \"REDIRECT_LIST_ERROR\");\n\t}\n};\n\nexport const POST: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\n\tconst denied = requirePerm(user, \"redirects:manage\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst body = await parseBody(request, createRedirectBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst result = await handleRedirectCreate(db, body);\n\t\tinvalidateRedirectCache();\n\t\treturn unwrapResult(result, 201);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to create redirect\", \"REDIRECT_CREATE_ERROR\");\n\t}\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../../src/astro/routes/api/redirects/index.ts"],"sourcesContent":["/**\n * Redirects list and create endpoints\n *\n * GET /_emdash/api/redirects - List redirects (with filters)\n * POST /_emdash/api/redirects - Create redirect\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport { handleRedirectCreate, handleRedirectList } from \"#api/handlers/redirects.js\";\nimport { isParseError, parseBody, parseQuery } from \"#api/parse.js\";\nimport { createRedirectBody, redirectsListQuery } from \"#api/schemas.js\";\nimport { invalidateRedirectCache } from \"#redirects/cache.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ url, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\n\tconst denied = requirePerm(user, \"redirects:read\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst query = parseQuery(url, redirectsListQuery);\n\t\tif (isParseError(query)) return query;\n\n\t\tconst result = await handleRedirectList(db, query);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to fetch redirects\", \"REDIRECT_LIST_ERROR\");\n\t}\n};\n\nexport const POST: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\tconst db = emdash.db;\n\n\tconst denied = requirePerm(user, \"redirects:manage\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst body = await parseBody(request, createRedirectBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst result = await handleRedirectCreate(db, body);\n\t\tinvalidateRedirectCache();\n\t\treturn unwrapResult(result, 201);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to create redirect\", \"REDIRECT_CREATE_ERROR\");\n\t}\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAgBA,MAAa,YAAY;AAEzB,MAAa,MAAgB,OAAO,EAAE,KAAK,aAAa;CACvD,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAClB,MAAM,KAAK,OAAO;CAElB,MAAM,SAAS,YAAY,MAAM,iBAAiB;AAClD,KAAI,OAAQ,QAAO;AAEnB,KAAI;EACH,MAAM,QAAQ,WAAW,KAAK,mBAAmB;AACjD,MAAI,aAAa,MAAM,CAAE,QAAO;AAGhC,SAAO,aADQ,MAAM,mBAAmB,IAAI,MAAM,CACvB;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,6BAA6B,sBAAsB;;;AAI/E,MAAa,OAAiB,OAAO,EAAE,SAAS,aAAa;CAC5D,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAClB,MAAM,KAAK,OAAO;CAElB,MAAM,SAAS,YAAY,MAAM,mBAAmB;AACpD,KAAI,OAAQ,QAAO;AAEnB,KAAI;EACH,MAAM,OAAO,MAAM,UAAU,SAAS,mBAAmB;AACzD,MAAI,aAAa,KAAK,CAAE,QAAO;EAE/B,MAAM,SAAS,MAAM,qBAAqB,IAAI,KAAK;AACnD,2BAAyB;AACzB,SAAO,aAAa,QAAQ,IAAI;UACxB,OAAO;AACf,SAAO,YAAY,OAAO,6BAA6B,wBAAwB"}
|
|
@@ -1,24 +1,25 @@
|
|
|
1
|
-
import "../../../../../dialect-helpers-
|
|
2
|
-
import "../../../../../config-
|
|
3
|
-
import "../../../../../after-
|
|
4
|
-
import "../../../../../object-cache-
|
|
5
|
-
import "../../../../../content-
|
|
6
|
-
import "../../../../../
|
|
7
|
-
import "../../../../../
|
|
8
|
-
import "../../../../../
|
|
9
|
-
import "../../../../../
|
|
10
|
-
import "../../../../../
|
|
11
|
-
import "../../../../../content-refresh-
|
|
12
|
-
import "../../../../../
|
|
13
|
-
import
|
|
14
|
-
import {
|
|
15
|
-
import "../../../../../
|
|
16
|
-
import "../../../../../
|
|
17
|
-
import
|
|
18
|
-
import "../../../../../
|
|
1
|
+
import "../../../../../dialect-helpers-BSbfaO3F.mjs";
|
|
2
|
+
import "../../../../../config-C3EBstHi.mjs";
|
|
3
|
+
import "../../../../../after-CBU2vkoO.mjs";
|
|
4
|
+
import "../../../../../object-cache-71tPfV4A.mjs";
|
|
5
|
+
import "../../../../../content-BNfwh7xX.mjs";
|
|
6
|
+
import "../../../../../slugify-B994zkXC.mjs";
|
|
7
|
+
import "../../../../../base64-CvLhUKQv.mjs";
|
|
8
|
+
import "../../../../../types-CQPWhPxE.mjs";
|
|
9
|
+
import "../../../../../relation-DtmAQH7s.mjs";
|
|
10
|
+
import "../../../../../fts-manager-CZ-5dVwJ.mjs";
|
|
11
|
+
import "../../../../../content-refresh-DNERP4-f.mjs";
|
|
12
|
+
import "../../../../../collection-deletion-C8BugSGz.mjs";
|
|
13
|
+
import "../../../../../registry-C581V4TP.mjs";
|
|
14
|
+
import { a as unwrapResult, i as requireDb, r as handleError, t as apiError } from "../../../../../error-DupyJZE2.mjs";
|
|
15
|
+
import { n as parseBody, t as isParseError } from "../../../../../parse-DFbuc-Fh.mjs";
|
|
16
|
+
import "../../../../../media-BWWWb8kg.mjs";
|
|
17
|
+
import "../../../../../redirects-cV9g7V-0.mjs";
|
|
18
|
+
import { u as updateRelationBody } from "../../../../../relations-BBApI4e2.mjs";
|
|
19
|
+
import "../../../../../status-CWVYpbD8.mjs";
|
|
19
20
|
import "../../../../../api/schemas/index.mjs";
|
|
20
|
-
import { r as requirePerm } from "../../../../../authorize-
|
|
21
|
-
import { a as handleRelationDelete, l as handleRelationUpdate, o as handleRelationGet } from "../../../../../relations-
|
|
21
|
+
import { r as requirePerm } from "../../../../../authorize-1iFJzPaZ.mjs";
|
|
22
|
+
import { a as handleRelationDelete, l as handleRelationUpdate, o as handleRelationGet } from "../../../../../relations-DICSyfsh.mjs";
|
|
22
23
|
|
|
23
24
|
//#region src/astro/routes/api/relations/[id]/index.ts
|
|
24
25
|
const prerender = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/relations/[id]/index.ts"],"sourcesContent":["/**\n * Single relation definition endpoint\n *\n * GET /_emdash/api/relations/:id - Get a relation\n * PATCH /_emdash/api/relations/:id - Update a relation's labels\n * DELETE /_emdash/api/relations/:id - Delete a relation\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport {\n\thandleRelationDelete,\n\thandleRelationGet,\n\thandleRelationUpdate,\n} from \"#api/handlers/relations.js\";\nimport { isParseError, parseBody } from \"#api/parse.js\";\nimport { updateRelationBody } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ params, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { id } = params;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\n\tconst denied = requirePerm(user, \"schema:read\");\n\tif (denied) return denied;\n\n\tif (!id) return apiError(\"VALIDATION_ERROR\", \"Relation id required\", 400);\n\n\ttry {\n\t\tconst result = await handleRelationGet(emdash.db, id);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to get relation\", \"RELATION_GET_ERROR\");\n\t}\n};\n\nexport const PATCH: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { id } = params;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\n\tconst denied = requirePerm(user, \"schema:manage\");\n\tif (denied) return denied;\n\n\tif (!id) return apiError(\"VALIDATION_ERROR\", \"Relation id required\", 400);\n\n\ttry {\n\t\tconst body = await parseBody(request, updateRelationBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst result = await handleRelationUpdate(emdash.db, id, body);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to update relation\", \"RELATION_UPDATE_ERROR\");\n\t}\n};\n\nexport const DELETE: APIRoute = async ({ params, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { id } = params;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\n\tconst denied = requirePerm(user, \"schema:manage\");\n\tif (denied) return denied;\n\n\tif (!id) return apiError(\"VALIDATION_ERROR\", \"Relation id required\", 400);\n\n\ttry {\n\t\tconst result = await handleRelationDelete(emdash.db, id);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to delete relation\", \"RELATION_DELETE_ERROR\");\n\t}\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/relations/[id]/index.ts"],"sourcesContent":["/**\n * Single relation definition endpoint\n *\n * GET /_emdash/api/relations/:id - Get a relation\n * PATCH /_emdash/api/relations/:id - Update a relation's labels\n * DELETE /_emdash/api/relations/:id - Delete a relation\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport {\n\thandleRelationDelete,\n\thandleRelationGet,\n\thandleRelationUpdate,\n} from \"#api/handlers/relations.js\";\nimport { isParseError, parseBody } from \"#api/parse.js\";\nimport { updateRelationBody } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ params, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { id } = params;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\n\tconst denied = requirePerm(user, \"schema:read\");\n\tif (denied) return denied;\n\n\tif (!id) return apiError(\"VALIDATION_ERROR\", \"Relation id required\", 400);\n\n\ttry {\n\t\tconst result = await handleRelationGet(emdash.db, id);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to get relation\", \"RELATION_GET_ERROR\");\n\t}\n};\n\nexport const PATCH: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { id } = params;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\n\tconst denied = requirePerm(user, \"schema:manage\");\n\tif (denied) return denied;\n\n\tif (!id) return apiError(\"VALIDATION_ERROR\", \"Relation id required\", 400);\n\n\ttry {\n\t\tconst body = await parseBody(request, updateRelationBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst result = await handleRelationUpdate(emdash.db, id, body);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to update relation\", \"RELATION_UPDATE_ERROR\");\n\t}\n};\n\nexport const DELETE: APIRoute = async ({ params, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { id } = params;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\n\tconst denied = requirePerm(user, \"schema:manage\");\n\tif (denied) return denied;\n\n\tif (!id) return apiError(\"VALIDATION_ERROR\", \"Relation id required\", 400);\n\n\ttry {\n\t\tconst result = await handleRelationDelete(emdash.db, id);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to delete relation\", \"RELATION_DELETE_ERROR\");\n\t}\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAoBA,MAAa,YAAY;AAEzB,MAAa,MAAgB,OAAO,EAAE,QAAQ,aAAa;CAC1D,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,EAAE,OAAO;CAEf,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAElB,MAAM,SAAS,YAAY,MAAM,cAAc;AAC/C,KAAI,OAAQ,QAAO;AAEnB,KAAI,CAAC,GAAI,QAAO,SAAS,oBAAoB,wBAAwB,IAAI;AAEzE,KAAI;AAEH,SAAO,aADQ,MAAM,kBAAkB,OAAO,IAAI,GAAG,CAC1B;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,0BAA0B,qBAAqB;;;AAI3E,MAAa,QAAkB,OAAO,EAAE,QAAQ,SAAS,aAAa;CACrE,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,EAAE,OAAO;CAEf,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAElB,MAAM,SAAS,YAAY,MAAM,gBAAgB;AACjD,KAAI,OAAQ,QAAO;AAEnB,KAAI,CAAC,GAAI,QAAO,SAAS,oBAAoB,wBAAwB,IAAI;AAEzE,KAAI;EACH,MAAM,OAAO,MAAM,UAAU,SAAS,mBAAmB;AACzD,MAAI,aAAa,KAAK,CAAE,QAAO;AAG/B,SAAO,aADQ,MAAM,qBAAqB,OAAO,IAAI,IAAI,KAAK,CACnC;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,6BAA6B,wBAAwB;;;AAIjF,MAAa,SAAmB,OAAO,EAAE,QAAQ,aAAa;CAC7D,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,EAAE,OAAO;CAEf,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAElB,MAAM,SAAS,YAAY,MAAM,gBAAgB;AACjD,KAAI,OAAQ,QAAO;AAEnB,KAAI,CAAC,GAAI,QAAO,SAAS,oBAAoB,wBAAwB,IAAI;AAEzE,KAAI;AAEH,SAAO,aADQ,MAAM,qBAAqB,OAAO,IAAI,GAAG,CAC7B;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,6BAA6B,wBAAwB"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import "../../../../../dialect-helpers-
|
|
2
|
-
import "../../../../../config-
|
|
3
|
-
import "../../../../../after-
|
|
4
|
-
import "../../../../../object-cache-
|
|
5
|
-
import "../../../../../content-
|
|
6
|
-
import "../../../../../
|
|
7
|
-
import "../../../../../
|
|
8
|
-
import "../../../../../
|
|
9
|
-
import "../../../../../
|
|
10
|
-
import "../../../../../
|
|
11
|
-
import "../../../../../content-refresh-
|
|
12
|
-
import "../../../../../
|
|
13
|
-
import
|
|
14
|
-
import { r as
|
|
15
|
-
import {
|
|
1
|
+
import "../../../../../dialect-helpers-BSbfaO3F.mjs";
|
|
2
|
+
import "../../../../../config-C3EBstHi.mjs";
|
|
3
|
+
import "../../../../../after-CBU2vkoO.mjs";
|
|
4
|
+
import "../../../../../object-cache-71tPfV4A.mjs";
|
|
5
|
+
import "../../../../../content-BNfwh7xX.mjs";
|
|
6
|
+
import "../../../../../slugify-B994zkXC.mjs";
|
|
7
|
+
import "../../../../../base64-CvLhUKQv.mjs";
|
|
8
|
+
import "../../../../../types-CQPWhPxE.mjs";
|
|
9
|
+
import "../../../../../relation-DtmAQH7s.mjs";
|
|
10
|
+
import "../../../../../fts-manager-CZ-5dVwJ.mjs";
|
|
11
|
+
import "../../../../../content-refresh-DNERP4-f.mjs";
|
|
12
|
+
import "../../../../../collection-deletion-C8BugSGz.mjs";
|
|
13
|
+
import "../../../../../registry-C581V4TP.mjs";
|
|
14
|
+
import { a as unwrapResult, i as requireDb, r as handleError, t as apiError } from "../../../../../error-DupyJZE2.mjs";
|
|
15
|
+
import { r as requirePerm } from "../../../../../authorize-1iFJzPaZ.mjs";
|
|
16
|
+
import { c as handleRelationTranslations } from "../../../../../relations-DICSyfsh.mjs";
|
|
16
17
|
|
|
17
18
|
//#region src/astro/routes/api/relations/[id]/translations.ts
|
|
18
19
|
const prerender = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/relations/[id]/translations.ts"],"sourcesContent":["/**\n * Relation translations endpoint\n *\n * GET /_emdash/api/relations/:id/translations - List locale siblings of a relation\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport { handleRelationTranslations } from \"#api/handlers/relations.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ params, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { id } = params;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\n\tconst denied = requirePerm(user, \"schema:read\");\n\tif (denied) return denied;\n\n\tif (!id) return apiError(\"VALIDATION_ERROR\", \"Relation id required\", 400);\n\n\ttry {\n\t\tconst result = await handleRelationTranslations(emdash.db, id);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to get translations\", \"RELATION_TRANSLATIONS_ERROR\");\n\t}\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"translations.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/relations/[id]/translations.ts"],"sourcesContent":["/**\n * Relation translations endpoint\n *\n * GET /_emdash/api/relations/:id/translations - List locale siblings of a relation\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport { handleRelationTranslations } from \"#api/handlers/relations.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ params, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { id } = params;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\n\tconst denied = requirePerm(user, \"schema:read\");\n\tif (denied) return denied;\n\n\tif (!id) return apiError(\"VALIDATION_ERROR\", \"Relation id required\", 400);\n\n\ttry {\n\t\tconst result = await handleRelationTranslations(emdash.db, id);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to get translations\", \"RELATION_TRANSLATIONS_ERROR\");\n\t}\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAYA,MAAa,YAAY;AAEzB,MAAa,MAAgB,OAAO,EAAE,QAAQ,aAAa;CAC1D,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,EAAE,OAAO;CAEf,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAElB,MAAM,SAAS,YAAY,MAAM,cAAc;AAC/C,KAAI,OAAQ,QAAO;AAEnB,KAAI,CAAC,GAAI,QAAO,SAAS,oBAAoB,wBAAwB,IAAI;AAEzE,KAAI;AAEH,SAAO,aADQ,MAAM,2BAA2B,OAAO,IAAI,GAAG,CACnC;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,8BAA8B,8BAA8B"}
|
|
@@ -1,24 +1,25 @@
|
|
|
1
|
-
import "../../../../dialect-helpers-
|
|
2
|
-
import "../../../../config-
|
|
3
|
-
import "../../../../after-
|
|
4
|
-
import "../../../../object-cache-
|
|
5
|
-
import "../../../../content-
|
|
6
|
-
import "../../../../
|
|
7
|
-
import "../../../../
|
|
8
|
-
import "../../../../
|
|
9
|
-
import "../../../../
|
|
10
|
-
import "../../../../
|
|
11
|
-
import "../../../../content-refresh-
|
|
12
|
-
import "../../../../
|
|
13
|
-
import
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import "../../../../
|
|
17
|
-
import
|
|
18
|
-
import "../../../../
|
|
1
|
+
import "../../../../dialect-helpers-BSbfaO3F.mjs";
|
|
2
|
+
import "../../../../config-C3EBstHi.mjs";
|
|
3
|
+
import "../../../../after-CBU2vkoO.mjs";
|
|
4
|
+
import "../../../../object-cache-71tPfV4A.mjs";
|
|
5
|
+
import "../../../../content-BNfwh7xX.mjs";
|
|
6
|
+
import "../../../../slugify-B994zkXC.mjs";
|
|
7
|
+
import "../../../../base64-CvLhUKQv.mjs";
|
|
8
|
+
import "../../../../types-CQPWhPxE.mjs";
|
|
9
|
+
import "../../../../relation-DtmAQH7s.mjs";
|
|
10
|
+
import "../../../../fts-manager-CZ-5dVwJ.mjs";
|
|
11
|
+
import "../../../../content-refresh-DNERP4-f.mjs";
|
|
12
|
+
import "../../../../collection-deletion-C8BugSGz.mjs";
|
|
13
|
+
import "../../../../registry-C581V4TP.mjs";
|
|
14
|
+
import { a as unwrapResult, i as requireDb, r as handleError } from "../../../../error-DupyJZE2.mjs";
|
|
15
|
+
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../parse-DFbuc-Fh.mjs";
|
|
16
|
+
import { et as localeFilterQuery } from "../../../../media-BWWWb8kg.mjs";
|
|
17
|
+
import "../../../../redirects-cV9g7V-0.mjs";
|
|
18
|
+
import { t as createRelationBody } from "../../../../relations-BBApI4e2.mjs";
|
|
19
|
+
import "../../../../status-CWVYpbD8.mjs";
|
|
19
20
|
import "../../../../api/schemas/index.mjs";
|
|
20
|
-
import { r as requirePerm } from "../../../../authorize-
|
|
21
|
-
import { i as handleRelationCreate, s as handleRelationList } from "../../../../relations-
|
|
21
|
+
import { r as requirePerm } from "../../../../authorize-1iFJzPaZ.mjs";
|
|
22
|
+
import { i as handleRelationCreate, s as handleRelationList } from "../../../../relations-DICSyfsh.mjs";
|
|
22
23
|
|
|
23
24
|
//#region src/astro/routes/api/relations/index.ts
|
|
24
25
|
const prerender = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../../src/astro/routes/api/relations/index.ts"],"sourcesContent":["/**\n * Relation definitions endpoint\n *\n * GET /_emdash/api/relations[?locale=xx] - List relation definitions\n * POST /_emdash/api/relations - Create a relation definition\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport { handleRelationCreate, handleRelationList } from \"#api/handlers/relations.js\";\nimport { isParseError, parseBody, parseQuery } from \"#api/parse.js\";\nimport { createRelationBody, localeFilterQuery } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\n\tconst denied = requirePerm(user, \"schema:read\");\n\tif (denied) return denied;\n\n\tconst query = parseQuery(new URL(request.url), localeFilterQuery);\n\tif (isParseError(query)) return query;\n\n\ttry {\n\t\tconst result = await handleRelationList(emdash.db, { locale: query.locale });\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to list relations\", \"RELATION_LIST_ERROR\");\n\t}\n};\n\nexport const POST: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\n\tconst denied = requirePerm(user, \"schema:manage\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst body = await parseBody(request, createRelationBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst result = await handleRelationCreate(emdash.db, body);\n\t\treturn unwrapResult(result, 201);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to create relation\", \"RELATION_CREATE_ERROR\");\n\t}\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../../src/astro/routes/api/relations/index.ts"],"sourcesContent":["/**\n * Relation definitions endpoint\n *\n * GET /_emdash/api/relations[?locale=xx] - List relation definitions\n * POST /_emdash/api/relations - Create a relation definition\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { handleError, requireDb, unwrapResult } from \"#api/error.js\";\nimport { handleRelationCreate, handleRelationList } from \"#api/handlers/relations.js\";\nimport { isParseError, parseBody, parseQuery } from \"#api/parse.js\";\nimport { createRelationBody, localeFilterQuery } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\nexport const GET: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\n\tconst denied = requirePerm(user, \"schema:read\");\n\tif (denied) return denied;\n\n\tconst query = parseQuery(new URL(request.url), localeFilterQuery);\n\tif (isParseError(query)) return query;\n\n\ttry {\n\t\tconst result = await handleRelationList(emdash.db, { locale: query.locale });\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to list relations\", \"RELATION_LIST_ERROR\");\n\t}\n};\n\nexport const POST: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\n\tconst denied = requirePerm(user, \"schema:manage\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst body = await parseBody(request, createRelationBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst result = await handleRelationCreate(emdash.db, body);\n\t\treturn unwrapResult(result, 201);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to create relation\", \"RELATION_CREATE_ERROR\");\n\t}\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAa,YAAY;AAEzB,MAAa,MAAgB,OAAO,EAAE,SAAS,aAAa;CAC3D,MAAM,EAAE,QAAQ,SAAS;CAEzB,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAElB,MAAM,SAAS,YAAY,MAAM,cAAc;AAC/C,KAAI,OAAQ,QAAO;CAEnB,MAAM,QAAQ,WAAW,IAAI,IAAI,QAAQ,IAAI,EAAE,kBAAkB;AACjE,KAAI,aAAa,MAAM,CAAE,QAAO;AAEhC,KAAI;AAEH,SAAO,aADQ,MAAM,mBAAmB,OAAO,IAAI,EAAE,QAAQ,MAAM,QAAQ,CAAC,CACjD;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,4BAA4B,sBAAsB;;;AAI9E,MAAa,OAAiB,OAAO,EAAE,SAAS,aAAa;CAC5D,MAAM,EAAE,QAAQ,SAAS;CAEzB,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAElB,MAAM,SAAS,YAAY,MAAM,gBAAgB;AACjD,KAAI,OAAQ,QAAO;AAEnB,KAAI;EACH,MAAM,OAAO,MAAM,UAAU,SAAS,mBAAmB;AACzD,MAAI,aAAa,KAAK,CAAE,QAAO;AAG/B,SAAO,aADQ,MAAM,qBAAqB,OAAO,IAAI,KAAK,EAC9B,IAAI;UACxB,OAAO;AACf,SAAO,YAAY,OAAO,6BAA6B,wBAAwB"}
|
|
@@ -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-CvLhUKQv.mjs";
|
|
2
|
+
import "../../../../../types-CQPWhPxE.mjs";
|
|
3
|
+
import { a as unwrapResult, t as apiError } from "../../../../../error-DupyJZE2.mjs";
|
|
4
|
+
import { r as requirePerm } from "../../../../../authorize-1iFJzPaZ.mjs";
|
|
5
5
|
|
|
6
6
|
//#region src/astro/routes/api/revisions/[revisionId]/index.ts
|
|
7
7
|
const prerender = false;
|
|
@@ -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-CvLhUKQv.mjs";
|
|
2
|
+
import "../../../../../types-CQPWhPxE.mjs";
|
|
3
|
+
import { n as mapErrorStatus } from "../../../../../errors-CLUPm7aD.mjs";
|
|
4
|
+
import { a as unwrapResult, t as apiError } from "../../../../../error-DupyJZE2.mjs";
|
|
5
|
+
import { n as requireOwnerPerm } from "../../../../../authorize-1iFJzPaZ.mjs";
|
|
6
6
|
|
|
7
7
|
//#region src/astro/routes/api/revisions/[revisionId]/restore.ts
|
|
8
8
|
const prerender = false;
|