emdash 0.24.1 → 0.26.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/api/route-utils.d.mts +3 -3
- package/dist/api/route-utils.mjs +12 -11
- package/dist/api/route-utils.mjs.map +1 -1
- package/dist/api/schemas/index.d.mts +1 -1
- package/dist/api/schemas/index.mjs +2 -2
- package/dist/{api-d_0wi9fW.mjs → api-BMfveMoB.mjs} +24 -20
- package/dist/api-BMfveMoB.mjs.map +1 -0
- package/dist/{apply-BE9UaWX0.mjs → apply--IVNSdXn.mjs} +19 -16
- package/dist/apply--IVNSdXn.mjs.map +1 -0
- package/dist/astro/index.d.mts +9 -9
- package/dist/astro/index.mjs +3 -2
- package/dist/astro/index.mjs.map +1 -1
- package/dist/astro/middleware/auth.d.mts +8 -8
- package/dist/astro/middleware/auth.mjs +2 -2
- package/dist/astro/middleware/redirect.mjs +4 -4
- package/dist/astro/middleware.d.mts +1 -1
- package/dist/astro/middleware.d.mts.map +1 -1
- package/dist/astro/middleware.mjs +99 -70
- package/dist/astro/middleware.mjs.map +1 -1
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +5 -5
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +5 -5
- package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +2 -2
- package/dist/astro/routes/api/admin/api-tokens/index.mjs +3 -3
- package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +3 -3
- package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +6 -6
- package/dist/astro/routes/api/admin/byline-fields/index.mjs +6 -6
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +6 -6
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +12 -12
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +12 -12
- package/dist/astro/routes/api/admin/bylines/index.mjs +12 -12
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +10 -10
- package/dist/astro/routes/api/admin/comments/_id_.mjs +6 -6
- package/dist/astro/routes/api/admin/comments/bulk.mjs +9 -9
- package/dist/astro/routes/api/admin/comments/counts.mjs +6 -6
- package/dist/astro/routes/api/admin/comments/index.mjs +9 -9
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +4 -4
- package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +3 -3
- package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +3 -3
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs +3 -3
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +31 -31
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +31 -31
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +31 -31
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +31 -31
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +31 -31
- package/dist/astro/routes/api/admin/plugins/index.mjs +31 -31
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +3 -3
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +31 -31
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +31 -31
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +31 -31
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +31 -31
- package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +32 -32
- package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +31 -31
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs +32 -32
- package/dist/astro/routes/api/admin/plugins/updates.mjs +31 -31
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +31 -31
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +3 -3
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +31 -31
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs +2 -2
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs +2 -2
- package/dist/astro/routes/api/admin/users/_id_/index.mjs +5 -5
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +2 -2
- package/dist/astro/routes/api/admin/users/index.mjs +5 -5
- package/dist/astro/routes/api/auth/dev-bypass.mjs +3 -3
- package/dist/astro/routes/api/auth/invite/accept.mjs +2 -2
- package/dist/astro/routes/api/auth/invite/complete.mjs +5 -5
- package/dist/astro/routes/api/auth/invite/index.mjs +5 -5
- package/dist/astro/routes/api/auth/invite/register-options.mjs +5 -5
- package/dist/astro/routes/api/auth/logout.mjs +2 -2
- package/dist/astro/routes/api/auth/magic-link/send.mjs +6 -6
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +2 -2
- package/dist/astro/routes/api/auth/me.mjs +6 -6
- package/dist/astro/routes/api/auth/passkey/_id_.mjs +5 -5
- package/dist/astro/routes/api/auth/passkey/index.mjs +2 -2
- package/dist/astro/routes/api/auth/passkey/options.mjs +6 -6
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +5 -5
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +5 -5
- package/dist/astro/routes/api/auth/passkey/verify.mjs +5 -5
- package/dist/astro/routes/api/auth/signup/complete.mjs +5 -5
- package/dist/astro/routes/api/auth/signup/request.mjs +6 -6
- package/dist/astro/routes/api/auth/signup/verify.mjs +2 -2
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +9 -9
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +9 -9
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +3 -3
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +3 -3
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +3 -3
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +3 -3
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +6 -6
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +6 -6
- package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +3 -3
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +3 -3
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +6 -6
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +11 -11
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +3 -3
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +3 -3
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +6 -6
- package/dist/astro/routes/api/content/_collection_/authors.mjs +3 -3
- package/dist/astro/routes/api/content/_collection_/index.mjs +6 -6
- package/dist/astro/routes/api/content/_collection_/trash.mjs +6 -6
- package/dist/astro/routes/api/dashboard.mjs +8 -8
- package/dist/astro/routes/api/dev/emails.mjs +2 -2
- package/dist/astro/routes/api/import/probe.d.mts +2 -2
- package/dist/astro/routes/api/import/probe.mjs +6 -6
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +3 -3
- package/dist/astro/routes/api/import/wordpress/execute.d.mts +8 -8
- package/dist/astro/routes/api/import/wordpress/execute.mjs +9 -9
- package/dist/astro/routes/api/import/wordpress/media.d.mts +13 -1
- package/dist/astro/routes/api/import/wordpress/media.d.mts.map +1 -1
- package/dist/astro/routes/api/import/wordpress/media.mjs +13 -9
- package/dist/astro/routes/api/import/wordpress/media.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +8 -8
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +8 -8
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +6 -6
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +9 -9
- package/dist/astro/routes/api/manifest.mjs +3 -3
- package/dist/astro/routes/api/mcp.mjs +36 -36
- package/dist/astro/routes/api/media/_id_/confirm.d.mts.map +1 -1
- package/dist/astro/routes/api/media/_id_/confirm.mjs +44 -8
- package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_.mjs +6 -6
- package/dist/astro/routes/api/media/file/_...key_.mjs +2 -2
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +3 -3
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +3 -3
- package/dist/astro/routes/api/media/providers/index.mjs +3 -3
- package/dist/astro/routes/api/media/upload-url.mjs +8 -8
- package/dist/astro/routes/api/media.mjs +22 -21
- package/dist/astro/routes/api/media.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +8 -8
- package/dist/astro/routes/api/menus/_name_/items.mjs +8 -8
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +8 -8
- package/dist/astro/routes/api/menus/_name_/translations.mjs +8 -8
- package/dist/astro/routes/api/menus/_name_.mjs +8 -8
- package/dist/astro/routes/api/menus/index.mjs +8 -8
- package/dist/astro/routes/api/oauth/device/authorize.mjs +3 -3
- package/dist/astro/routes/api/oauth/device/code.mjs +4 -4
- package/dist/astro/routes/api/oauth/device/token.mjs +4 -4
- package/dist/astro/routes/api/oauth/register.mjs +2 -2
- package/dist/astro/routes/api/oauth/token/refresh.mjs +3 -3
- package/dist/astro/routes/api/oauth/token/revoke.mjs +3 -3
- package/dist/astro/routes/api/oauth/token.mjs +2 -2
- package/dist/astro/routes/api/openapi.json.mjs +3 -3
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +3 -3
- package/dist/astro/routes/api/redirects/404s/index.mjs +8 -8
- package/dist/astro/routes/api/redirects/404s/summary.mjs +8 -8
- package/dist/astro/routes/api/redirects/_id_.mjs +9 -9
- package/dist/astro/routes/api/redirects/index.mjs +9 -9
- package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +3 -3
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +3 -3
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +31 -31
- package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +31 -31
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +31 -31
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +31 -31
- package/dist/astro/routes/api/schema/collections/index.mjs +31 -31
- package/dist/astro/routes/api/schema/index.mjs +6 -6
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +31 -31
- package/dist/astro/routes/api/schema/orphans/index.mjs +31 -31
- package/dist/astro/routes/api/search/enable.mjs +9 -9
- package/dist/astro/routes/api/search/index.mjs +8 -8
- package/dist/astro/routes/api/search/rebuild.mjs +9 -9
- package/dist/astro/routes/api/search/stats.mjs +6 -6
- package/dist/astro/routes/api/search/suggest.mjs +8 -8
- package/dist/astro/routes/api/sections/_slug_.mjs +8 -8
- package/dist/astro/routes/api/sections/index.mjs +8 -8
- package/dist/astro/routes/api/settings/email.mjs +4 -4
- package/dist/astro/routes/api/settings.mjs +11 -11
- package/dist/astro/routes/api/setup/admin-verify.mjs +5 -5
- package/dist/astro/routes/api/setup/admin.mjs +5 -5
- package/dist/astro/routes/api/setup/dev-bypass.mjs +17 -17
- package/dist/astro/routes/api/setup/dev-reset.mjs +2 -2
- package/dist/astro/routes/api/setup/index.mjs +20 -20
- package/dist/astro/routes/api/setup/status.mjs +3 -3
- package/dist/astro/routes/api/snapshot.mjs +3 -3
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +11 -11
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +11 -11
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +11 -11
- package/dist/astro/routes/api/taxonomies/index.mjs +11 -11
- package/dist/astro/routes/api/themes/preview.mjs +3 -3
- package/dist/astro/routes/api/typegen.mjs +5 -5
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +6 -6
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +8 -8
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +8 -8
- package/dist/astro/routes/api/widget-areas/_name_.mjs +5 -5
- package/dist/astro/routes/api/widget-areas/index.mjs +8 -8
- package/dist/astro/routes/api/widget-components.mjs +2 -2
- package/dist/astro/routes/robots.txt.mjs +5 -5
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +11 -10
- package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
- package/dist/astro/routes/sitemap.xml.mjs +6 -6
- package/dist/astro/types.d.mts +10 -10
- package/dist/{authorize-B__u-iZJ.mjs → authorize-BZnOGJFo.mjs} +2 -2
- package/dist/{authorize-B__u-iZJ.mjs.map → authorize-BZnOGJFo.mjs.map} +1 -1
- package/dist/{byline-C-YajfV7.mjs → byline-LL8lyqdb.mjs} +6 -6
- package/dist/{byline-C-YajfV7.mjs.map → byline-LL8lyqdb.mjs.map} +1 -1
- package/dist/{byline-fields-Ca56gaT6.d.mts → byline-fields-KD3JFRuH.d.mts} +24 -6
- package/dist/byline-fields-KD3JFRuH.d.mts.map +1 -0
- package/dist/{byline-fields-B-KXkg5R.mjs → byline-fields-eyJMblSr.mjs} +2 -2
- package/dist/{byline-fields-B-KXkg5R.mjs.map → byline-fields-eyJMblSr.mjs.map} +1 -1
- package/dist/{bylines-D4KADDAi.mjs → bylines-BmJ7Vg7J.mjs} +4 -4
- package/dist/{bylines-D4KADDAi.mjs.map → bylines-BmJ7Vg7J.mjs.map} +1 -1
- package/dist/{bylines-BMtJnPnG.mjs → bylines-DE47vP8d.mjs} +6 -6
- package/dist/{bylines-BMtJnPnG.mjs.map → bylines-DE47vP8d.mjs.map} +1 -1
- package/dist/{cache-BUJe2w6Z.mjs → cache-D9jF5bYw.mjs} +2 -2
- package/dist/{cache-BUJe2w6Z.mjs.map → cache-D9jF5bYw.mjs.map} +1 -1
- package/dist/{chunks-BHgcHh2C.mjs → chunks-OCG163rN.mjs} +2 -2
- package/dist/{chunks-BHgcHh2C.mjs.map → chunks-OCG163rN.mjs.map} +1 -1
- package/dist/cli/index.mjs +17 -17
- package/dist/{comment-BDx50EX5.mjs → comment-D9BLDpZI.mjs} +3 -3
- package/dist/{comment-BDx50EX5.mjs.map → comment-D9BLDpZI.mjs.map} +1 -1
- package/dist/{comment-reaction-Gv_pgfI3.mjs → comment-reaction-Drl9SkNu.mjs} +2 -2
- package/dist/{comment-reaction-Gv_pgfI3.mjs.map → comment-reaction-Drl9SkNu.mjs.map} +1 -1
- package/dist/{comments-CXHuQ6jI.mjs → comments-BjJ9SKGU.mjs} +3 -3
- package/dist/{comments-CXHuQ6jI.mjs.map → comments-BjJ9SKGU.mjs.map} +1 -1
- package/dist/{content-PoVGKjp0.mjs → content-ncUWWjna.mjs} +10 -8
- package/dist/content-ncUWWjna.mjs.map +1 -0
- package/dist/{context-Dvws41_A.mjs → context-C_g-iJVA.mjs} +14 -8
- package/dist/context-C_g-iJVA.mjs.map +1 -0
- package/dist/{dashboard-DsYU8JKS.mjs → dashboard-CotyqQrW.mjs} +4 -4
- package/dist/{dashboard-DsYU8JKS.mjs.map → dashboard-CotyqQrW.mjs.map} +1 -1
- package/dist/db/index.d.mts +2 -2
- package/dist/db/index.mjs +1 -1
- package/dist/{db-errors-UXB1CK42.mjs → db-errors-CK46D-ly.mjs} +1 -1
- package/dist/{db-errors-UXB1CK42.mjs.map → db-errors-CK46D-ly.mjs.map} +1 -1
- package/dist/{placeholder-B0s2mWu5.mjs → enrich-BQ0mxJRs.mjs} +61 -10
- package/dist/enrich-BQ0mxJRs.mjs.map +1 -0
- package/dist/{error-lq_fL-RS.mjs → error-rVGiqWDt.mjs} +3 -2
- package/dist/error-rVGiqWDt.mjs.map +1 -0
- package/dist/{field-defs-cache-CYYx8xlG.mjs → field-defs-cache-ljXzJCfc.mjs} +2 -2
- package/dist/{field-defs-cache-CYYx8xlG.mjs.map → field-defs-cache-ljXzJCfc.mjs.map} +1 -1
- package/dist/{fts-manager-DW_NR-Fs.mjs → fts-manager-BbCCbEKA.mjs} +2 -2
- package/dist/{fts-manager-DW_NR-Fs.mjs.map → fts-manager-BbCCbEKA.mjs.map} +1 -1
- package/dist/{index-BroXT-vD.d.mts → index-BRNabKrx.d.mts} +53 -15
- package/dist/index-BRNabKrx.d.mts.map +1 -0
- package/dist/{index-qbL02uhs.d.mts → index-Dt0OKJB4.d.mts} +2 -2
- package/dist/{index-qbL02uhs.d.mts.map → index-Dt0OKJB4.d.mts.map} +1 -1
- package/dist/index.d.mts +12 -12
- package/dist/index.mjs +43 -43
- package/dist/{load-DMFi4n1p.mjs → load-DMjXghbZ.mjs} +2 -2
- package/dist/{load-DMFi4n1p.mjs.map → load-DMjXghbZ.mjs.map} +1 -1
- package/dist/{loader-BR2SgfEc.mjs → loader-BA_zhkS_.mjs} +82 -19
- package/dist/loader-BA_zhkS_.mjs.map +1 -0
- package/dist/{manifest-schema-BWKnQYQF.mjs → manifest-schema-kPGX7VS-.mjs} +4 -1
- package/dist/manifest-schema-kPGX7VS-.mjs.map +1 -0
- package/dist/media/image-endpoint.mjs +1 -1
- package/dist/media/index.d.mts +45 -2
- package/dist/media/index.d.mts.map +1 -1
- package/dist/media/index.mjs +5 -3
- package/dist/media/index.mjs.map +1 -1
- package/dist/media/local-runtime.d.mts +9 -9
- package/dist/media/local-runtime.d.mts.map +1 -1
- package/dist/media/local-runtime.mjs +17 -5
- package/dist/media/local-runtime.mjs.map +1 -1
- package/dist/{media-CTjJoJTh.mjs → media-C5t_eCnk.mjs} +4 -2
- package/dist/media-C5t_eCnk.mjs.map +1 -0
- package/dist/{media-allowlist-B77I5_bw.mjs → media-allowlist-Du8t1u6a.mjs} +2 -2
- package/dist/{media-allowlist-B77I5_bw.mjs.map → media-allowlist-Du8t1u6a.mjs.map} +1 -1
- package/dist/{menus-8O6xNcYW.mjs → menus-CBb6UrMU.mjs} +3 -3
- package/dist/{menus-8O6xNcYW.mjs.map → menus-CBb6UrMU.mjs.map} +1 -1
- package/dist/{menus-GvRSpgIA.mjs → menus-CYH09a41.mjs} +65 -41
- package/dist/menus-CYH09a41.mjs.map +1 -0
- package/dist/{mime-BTzvzJ8M.mjs → mime-CCEzze7W.mjs} +1 -1
- package/dist/{mime-BTzvzJ8M.mjs.map → mime-CCEzze7W.mjs.map} +1 -1
- package/dist/{normalize-ClbNIenm.mjs → normalize-CeglrBT9.mjs} +11 -2
- package/dist/normalize-CeglrBT9.mjs.map +1 -0
- package/dist/{object-cache-SEb2IM4Z.mjs → object-cache-CHbHv83-.mjs} +8 -4
- package/dist/object-cache-CHbHv83-.mjs.map +1 -0
- package/dist/{options-CqECG0gM.d.mts → options-41nCWqi9.d.mts} +3 -3
- package/dist/{options-CqECG0gM.d.mts.map → options-41nCWqi9.d.mts.map} +1 -1
- package/dist/page/index.d.mts +5 -2
- package/dist/page/index.d.mts.map +1 -1
- package/dist/page/index.mjs +3 -2
- package/dist/page/index.mjs.map +1 -1
- package/dist/{parse-DHI873qU.mjs → parse-BwAdS7FZ.mjs} +2 -2
- package/dist/{parse-DHI873qU.mjs.map → parse-BwAdS7FZ.mjs.map} +1 -1
- package/dist/{placeholder-QoI4gEzP.d.mts → placeholder-Cuce9U-m.d.mts} +20 -5
- package/dist/placeholder-Cuce9U-m.d.mts.map +1 -0
- package/dist/plugin-types.d.mts +5 -2
- package/dist/plugin-types.d.mts.map +1 -1
- package/dist/plugin-utils.d.mts +8 -8
- package/dist/plugins/adapt-sandbox-entry.d.mts +8 -8
- package/dist/plugins/adapt-sandbox-entry.mjs +1 -1
- package/dist/{query-DZdlS6Cu.mjs → query-BpQb-blG.mjs} +15 -15
- package/dist/{query-DZdlS6Cu.mjs.map → query-BpQb-blG.mjs.map} +1 -1
- package/dist/{rate-limit-D1Y6VFVP.mjs → rate-limit-Dap6HMNM.mjs} +2 -2
- package/dist/{rate-limit-D1Y6VFVP.mjs.map → rate-limit-Dap6HMNM.mjs.map} +1 -1
- package/dist/{redirect-C1KVGYWe.mjs → redirect-_M0trWoo.mjs} +2 -2
- package/dist/{redirect-C1KVGYWe.mjs.map → redirect-_M0trWoo.mjs.map} +1 -1
- package/dist/{redirects-x9eFPeyi.mjs → redirects-Dcbuisoj.mjs} +2 -1
- package/dist/redirects-Dcbuisoj.mjs.map +1 -0
- package/dist/{redirects-DgnypVir.mjs → redirects-w0V9vj_j.mjs} +3 -3
- package/dist/{redirects-DgnypVir.mjs.map → redirects-w0V9vj_j.mjs.map} +1 -1
- package/dist/{registry-CJkCubOJ.mjs → registry-g8yYt4cC.mjs} +14 -4
- package/dist/registry-g8yYt4cC.mjs.map +1 -0
- package/dist/{runner-CEtq-6Sm.d.mts → runner-BbR3DfrL.d.mts} +2 -2
- package/dist/{runner-CEtq-6Sm.d.mts.map → runner-BbR3DfrL.d.mts.map} +1 -1
- package/dist/{runner-BsquExlK.mjs → runner-DPdt_Wpa.mjs} +250 -178
- package/dist/runner-DPdt_Wpa.mjs.map +1 -0
- package/dist/runtime.d.mts +9 -9
- package/dist/runtime.mjs +2 -2
- package/dist/{schema-DMjXuvNU.mjs → schema-DoLd3j2e.mjs} +5 -5
- package/dist/{schema-DMjXuvNU.mjs.map → schema-DoLd3j2e.mjs.map} +1 -1
- package/dist/{search-D1wKk3lc.mjs → search-BR0ZeZmh.mjs} +4 -4
- package/dist/{search-D1wKk3lc.mjs.map → search-BR0ZeZmh.mjs.map} +1 -1
- package/dist/{sections-CCMic8dB.mjs → sections-5J2YJPqJ.mjs} +3 -3
- package/dist/{sections-CCMic8dB.mjs.map → sections-5J2YJPqJ.mjs.map} +1 -1
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +15 -15
- package/dist/seo/index.d.mts +1 -1
- package/dist/{seo-DCEF-AVr.mjs → seo-BkhuuaaE.mjs} +25 -3
- package/dist/seo-BkhuuaaE.mjs.map +1 -0
- package/dist/{seo-3QrZ1EPT.mjs → seo-DKeXHkzE.mjs} +3 -3
- package/dist/{seo-3QrZ1EPT.mjs.map → seo-DKeXHkzE.mjs.map} +1 -1
- package/dist/{service-CQHK_10l.mjs → service-BbO2s8gT.mjs} +2 -2
- package/dist/{service-CQHK_10l.mjs.map → service-BbO2s8gT.mjs.map} +1 -1
- package/dist/{settings-C3Yi5Co3.mjs → settings-BMNr9Dmi.mjs} +3 -3
- package/dist/{settings-C3Yi5Co3.mjs.map → settings-BMNr9Dmi.mjs.map} +1 -1
- package/dist/{settings-D9rvaLuY.mjs → settings-DJeki-97.mjs} +4 -4
- package/dist/{settings-D9rvaLuY.mjs.map → settings-DJeki-97.mjs.map} +1 -1
- package/dist/{taxonomies-DhLaNJji.mjs → taxonomies-CM_fUqLU.mjs} +5 -4
- package/dist/taxonomies-CM_fUqLU.mjs.map +1 -0
- package/dist/{taxonomies-CurpLtNC.mjs → taxonomies-D13i2ctt.mjs} +76 -21
- package/dist/taxonomies-D13i2ctt.mjs.map +1 -0
- package/dist/{taxonomy-BBUlGug5.mjs → taxonomy-BU0LjdVb.mjs} +4 -4
- package/dist/{taxonomy-BBUlGug5.mjs.map → taxonomy-BU0LjdVb.mjs.map} +1 -1
- package/dist/{types-TTx8uP7V.d.mts → types-BYnDBVwe.d.mts} +27 -5
- package/dist/{types-TTx8uP7V.d.mts.map → types-BYnDBVwe.d.mts.map} +1 -1
- package/dist/{types-CTLJYMhN.d.mts → types-CNlaBFzx.d.mts} +11 -1
- package/dist/{types-CTLJYMhN.d.mts.map → types-CNlaBFzx.d.mts.map} +1 -1
- package/dist/{types-CmI1OyQg.mjs → types-CZgK3EMW.mjs} +2 -2
- package/dist/{types-CmI1OyQg.mjs.map → types-CZgK3EMW.mjs.map} +1 -1
- package/dist/{types-BWh2MjmA.d.mts → types-ETmO_jQr.d.mts} +2 -2
- package/dist/{types-BWh2MjmA.d.mts.map → types-ETmO_jQr.d.mts.map} +1 -1
- package/dist/types-tM44hEcf.mjs.map +1 -1
- package/dist/{types-B-gIxFCE.d.mts → types-xIfVRNLp.d.mts} +38 -1
- package/dist/types-xIfVRNLp.d.mts.map +1 -0
- package/dist/{user-JAuc8VUf.mjs → user-DkG2jKCp.mjs} +3 -3
- package/dist/{user-JAuc8VUf.mjs.map → user-DkG2jKCp.mjs.map} +1 -1
- package/dist/{validate-DOFrIb-c.d.mts → validate-CG0V0wNR.d.mts} +3 -3
- package/dist/{validate-DOFrIb-c.d.mts.map → validate-CG0V0wNR.d.mts.map} +1 -1
- package/dist/{validate-BzXHWnkV.mjs → validate-CuJ1Ps9j.mjs} +2 -2
- package/dist/{validate-BzXHWnkV.mjs.map → validate-CuJ1Ps9j.mjs.map} +1 -1
- package/dist/{validation-CY1gk4Ar.mjs → validation-CwUfTdGF.mjs} +6 -6
- package/dist/{validation-CY1gk4Ar.mjs.map → validation-CwUfTdGF.mjs.map} +1 -1
- package/dist/version-BoNBItP_.mjs +7 -0
- package/dist/{version-C0JPFUG8.mjs.map → version-BoNBItP_.mjs.map} +1 -1
- package/dist/{widgets-Dri0spI4.mjs → widgets-BfOZ-ajY.mjs} +2 -2
- package/dist/{widgets-Dri0spI4.mjs.map → widgets-BfOZ-ajY.mjs.map} +1 -1
- package/dist/{zod-generator-xEHODMJf.mjs → zod-generator-gFsRuNNy.mjs} +6 -3
- package/dist/zod-generator-gFsRuNNy.mjs.map +1 -0
- package/package.json +6 -6
- package/src/api/errors.ts +1 -0
- package/src/api/handlers/content.ts +4 -4
- package/src/api/handlers/seo.ts +30 -2
- package/src/api/handlers/taxonomies.ts +5 -1
- package/src/api/schemas/schema.ts +1 -0
- package/src/astro/integration/virtual-modules.ts +15 -0
- package/src/astro/middleware.ts +14 -1
- package/src/astro/routes/api/import/wordpress/media.ts +9 -3
- package/src/astro/routes/api/media/[id]/confirm.ts +62 -2
- package/src/astro/routes/api/media.ts +17 -19
- package/src/astro/routes/sitemap-[collection].xml.ts +5 -4
- package/src/components/EmDashHead.astro +23 -3
- package/src/components/EmDashImage.astro +4 -7
- package/src/components/Image.astro +14 -4
- package/src/components/InlinePortableTextEditor.tsx +48 -1
- package/src/components/JsonLdScript.astro +9 -0
- package/src/database/migrations/036_i18n_menus_and_taxonomies.ts +16 -0
- package/src/database/migrations/046_media_usage_index.ts +115 -0
- package/src/database/migrations/047_restore_taxonomy_parent_index.ts +29 -0
- package/src/database/migrations/runner.ts +4 -0
- package/src/database/repositories/content.ts +8 -5
- package/src/database/repositories/media-usage.ts +444 -0
- package/src/database/repositories/media.ts +9 -1
- package/src/database/types.ts +39 -0
- package/src/emdash-runtime.ts +72 -25
- package/src/index.ts +3 -0
- package/src/loader.ts +110 -31
- package/src/media/enrich.ts +78 -0
- package/src/media/index.ts +1 -0
- package/src/media/local-runtime.ts +19 -0
- package/src/media/normalize.ts +20 -1
- package/src/media/placeholder.ts +29 -9
- package/src/media/types.ts +14 -0
- package/src/media/usage/extractor.ts +302 -0
- package/src/media/usage/types.ts +46 -0
- package/src/object-cache/index.ts +8 -2
- package/src/page/metadata.ts +23 -3
- package/src/plugin-types.ts +12 -0
- package/src/plugins/context.ts +8 -0
- package/src/plugins/define-plugin.ts +14 -5
- package/src/plugins/hooks.ts +66 -33
- package/src/plugins/index.ts +6 -0
- package/src/plugins/manager.ts +33 -0
- package/src/plugins/manifest-schema.ts +3 -0
- package/src/plugins/types.ts +41 -2
- package/src/schema/registry.ts +25 -0
- package/src/schema/types.ts +10 -0
- package/src/schema/zod-generator.ts +9 -1
- package/src/seed/apply.ts +7 -0
- package/src/taxonomies/index.ts +121 -18
- package/dist/api-d_0wi9fW.mjs.map +0 -1
- package/dist/apply-BE9UaWX0.mjs.map +0 -1
- package/dist/byline-fields-Ca56gaT6.d.mts.map +0 -1
- package/dist/content-PoVGKjp0.mjs.map +0 -1
- package/dist/context-Dvws41_A.mjs.map +0 -1
- package/dist/error-lq_fL-RS.mjs.map +0 -1
- package/dist/index-BroXT-vD.d.mts.map +0 -1
- package/dist/loader-BR2SgfEc.mjs.map +0 -1
- package/dist/manifest-schema-BWKnQYQF.mjs.map +0 -1
- package/dist/media-CTjJoJTh.mjs.map +0 -1
- package/dist/menus-GvRSpgIA.mjs.map +0 -1
- package/dist/normalize-ClbNIenm.mjs.map +0 -1
- package/dist/object-cache-SEb2IM4Z.mjs.map +0 -1
- package/dist/placeholder-B0s2mWu5.mjs.map +0 -1
- package/dist/placeholder-QoI4gEzP.d.mts.map +0 -1
- package/dist/redirects-x9eFPeyi.mjs.map +0 -1
- package/dist/registry-CJkCubOJ.mjs.map +0 -1
- package/dist/runner-BsquExlK.mjs.map +0 -1
- package/dist/seo-DCEF-AVr.mjs.map +0 -1
- package/dist/taxonomies-CurpLtNC.mjs.map +0 -1
- package/dist/taxonomies-DhLaNJji.mjs.map +0 -1
- package/dist/types-B-gIxFCE.d.mts.map +0 -1
- package/dist/version-C0JPFUG8.mjs +0 -7
- package/dist/zod-generator-xEHODMJf.mjs.map +0 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import "../../../base64-CmWvODNW.mjs";
|
|
2
|
-
import "../../../types-
|
|
3
|
-
import { t as MediaRepository } from "../../../media-
|
|
4
|
-
import { t as
|
|
5
|
-
import {
|
|
2
|
+
import "../../../types-CZgK3EMW.mjs";
|
|
3
|
+
import { t as MediaRepository } from "../../../media-C5t_eCnk.mjs";
|
|
4
|
+
import { n as normalizeMime, t as matchesMimeAllowlist } from "../../../mime-CCEzze7W.mjs";
|
|
5
|
+
import { t as enrichImageMetadata } from "../../../enrich-BQ0mxJRs.mjs";
|
|
6
6
|
import { t as computeContentHash } from "../../../hash-DrvzIXcz.mjs";
|
|
7
|
-
import { a as unwrapResult, n as apiSuccess, r as handleError, t as apiError } from "../../../error-
|
|
8
|
-
import { i as parseQuery, t as isParseError } from "../../../parse-
|
|
9
|
-
import { Bt as DEFAULT_MAX_UPLOAD_SIZE, Kt as mediaListQuery, Vt as formatFileSize } from "../../../redirects-
|
|
10
|
-
import "../../../byline-fields-
|
|
7
|
+
import { a as unwrapResult, n as apiSuccess, r as handleError, t as apiError } from "../../../error-rVGiqWDt.mjs";
|
|
8
|
+
import { i as parseQuery, t as isParseError } from "../../../parse-BwAdS7FZ.mjs";
|
|
9
|
+
import { Bt as DEFAULT_MAX_UPLOAD_SIZE, Kt as mediaListQuery, Vt as formatFileSize } from "../../../redirects-Dcbuisoj.mjs";
|
|
10
|
+
import "../../../byline-fields-eyJMblSr.mjs";
|
|
11
11
|
import "../../../status-vUK0SA17.mjs";
|
|
12
12
|
import "../../../api/schemas/index.mjs";
|
|
13
|
-
import { n as requirePerm } from "../../../authorize-
|
|
14
|
-
import { n as resolveFieldAllowlist, t as GLOBAL_UPLOAD_ALLOWLIST } from "../../../media-allowlist-
|
|
13
|
+
import { n as requirePerm } from "../../../authorize-BZnOGJFo.mjs";
|
|
14
|
+
import { n as resolveFieldAllowlist, t as GLOBAL_UPLOAD_ALLOWLIST } from "../../../media-allowlist-Du8t1u6a.mjs";
|
|
15
15
|
import { ulid } from "ulidx";
|
|
16
16
|
import * as path from "node:path";
|
|
17
17
|
|
|
@@ -102,25 +102,26 @@ const POST = async ({ request, locals }) => {
|
|
|
102
102
|
const height = heightStr ? parseInt(heightStr, 10) : void 0;
|
|
103
103
|
const thumbnailEntry = formData.get("thumbnail");
|
|
104
104
|
const thumbnail = thumbnailEntry instanceof File ? thumbnailEntry : null;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
else {
|
|
108
|
-
const clientDims = width && height ? {
|
|
105
|
+
const enriched = await enrichImageMetadata(buffer, file.type, {
|
|
106
|
+
knownDimensions: width != null && height != null ? {
|
|
109
107
|
width,
|
|
110
108
|
height
|
|
111
|
-
} : void 0
|
|
112
|
-
placeholder
|
|
113
|
-
|
|
109
|
+
} : void 0,
|
|
110
|
+
placeholder: thumbnail ? {
|
|
111
|
+
bytes: new Uint8Array(await thumbnail.arrayBuffer()),
|
|
112
|
+
contentType: thumbnail.type
|
|
113
|
+
} : void 0
|
|
114
|
+
});
|
|
114
115
|
const result = await emdash.handleMediaCreate({
|
|
115
116
|
filename: file.name,
|
|
116
117
|
mimeType: normalizeMime(file.type),
|
|
117
118
|
size: file.size,
|
|
118
|
-
width,
|
|
119
|
-
height,
|
|
119
|
+
width: width ?? enriched.width,
|
|
120
|
+
height: height ?? enriched.height,
|
|
120
121
|
storageKey,
|
|
121
122
|
contentHash,
|
|
122
|
-
blurhash:
|
|
123
|
-
dominantColor:
|
|
123
|
+
blurhash: enriched.blurhash,
|
|
124
|
+
dominantColor: enriched.dominantColor,
|
|
124
125
|
authorId: user?.id
|
|
125
126
|
});
|
|
126
127
|
if (!result.success) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.mjs","names":[],"sources":["../../../../src/astro/routes/api/media.ts"],"sourcesContent":["/**\n * Media list and upload endpoint\n *\n * GET /_emdash/api/media - List all media\n * POST /_emdash/api/media - Upload new media (via configured storage adapter)\n */\n\nimport * as path from \"node:path\";\n\nimport type { APIRoute } from \"astro\";\nimport { ulid } from \"ulidx\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, apiSuccess, handleError, unwrapResult } from \"#api/error.js\";\nimport { GLOBAL_UPLOAD_ALLOWLIST, resolveFieldAllowlist } from \"#api/handlers/media-allowlist.js\";\nimport { isParseError, parseQuery } from \"#api/parse.js\";\nimport { DEFAULT_MAX_UPLOAD_SIZE, formatFileSize, mediaListQuery } from \"#api/schemas.js\";\nimport { MediaRepository } from \"#db/repositories/media.js\";\nimport { matchesMimeAllowlist, normalizeMime } from \"#media/mime.js\";\nimport { generatePlaceholder } from \"#media/placeholder.js\";\nimport { computeContentHash } from \"#utils/hash.js\";\n\nimport type { MediaItem } from \"../../types.js\";\n\nexport const prerender = false;\n\n/**\n * Add URL to media items\n * Uses relative URLs to ensure portability across deployments\n */\nfunction addUrlToMedia(item: MediaItem): MediaItem & { url: string } {\n\treturn {\n\t\t...item,\n\t\turl: `/_emdash/api/media/file/${item.storageKey}`,\n\t};\n}\n\n/**\n * List media items\n */\nexport const GET: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\n\tconst denied = requirePerm(user, \"media:read\");\n\tif (denied) return denied;\n\n\tif (!emdash?.handleMediaList) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\tconst url = new URL(request.url);\n\tconst query = parseQuery(url, mediaListQuery);\n\tif (isParseError(query)) return query;\n\n\tconst result = await emdash.handleMediaList({\n\t\tcursor: query.cursor,\n\t\tlimit: query.limit,\n\t\tmimeType: query.mimeType,\n\t\tq: query.q,\n\t});\n\n\tif (!result.success) {\n\t\treturn unwrapResult(result);\n\t}\n\n\t// Add URL to each media item (relative URLs for portability)\n\tconst itemsWithUrl = result.data.items.map((item) => addUrlToMedia(item));\n\n\treturn apiSuccess({ items: itemsWithUrl, nextCursor: result.data.nextCursor });\n};\n\n/**\n * Upload media file\n *\n * Uses the configured storage adapter to store the file.\n */\nexport const POST: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\n\tconst denied = requirePerm(user, \"media:upload\");\n\tif (denied) return denied;\n\n\tif (!emdash?.handleMediaCreate) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\tif (!emdash?.storage) {\n\t\treturn apiError(\"NO_STORAGE\", \"Storage not configured\", 500);\n\t}\n\n\ttry {\n\t\tconst rawMax = emdash.config.maxUploadSize ?? DEFAULT_MAX_UPLOAD_SIZE;\n\t\tif (!Number.isFinite(rawMax) || rawMax <= 0) {\n\t\t\treturn apiError(\"CONFIGURATION_ERROR\", \"Invalid maxUploadSize configuration\", 500);\n\t\t}\n\t\tconst maxUploadSize = rawMax;\n\n\t\t// Best-effort size check before buffering the full multipart body\n\t\tconst contentLength = request.headers.get(\"Content-Length\");\n\t\tif (contentLength && parseInt(contentLength, 10) > maxUploadSize) {\n\t\t\treturn apiError(\"PAYLOAD_TOO_LARGE\", \"Upload too large\", 413);\n\t\t}\n\n\t\tconst formData = await request.formData();\n\t\tconst fileEntry = formData.get(\"file\");\n\t\tconst file = fileEntry instanceof File ? fileEntry : null;\n\n\t\tif (!file) {\n\t\t\treturn apiError(\"NO_FILE\", \"No file provided\", 400);\n\t\t}\n\n\t\t// Validate file type — widen the allowlist when a field-specific list is configured\n\t\tconst fieldIdEntry = formData.get(\"fieldId\");\n\t\tconst fieldId =\n\t\t\ttypeof fieldIdEntry === \"string\" && fieldIdEntry.length > 0 ? fieldIdEntry : null;\n\n\t\tconst fieldAllowlist = fieldId ? await resolveFieldAllowlist(emdash.db, fieldId) : null;\n\t\tconst allowlist = fieldAllowlist ?? [...GLOBAL_UPLOAD_ALLOWLIST];\n\n\t\tif (!matchesMimeAllowlist(file.type, allowlist)) {\n\t\t\treturn apiError(\"INVALID_TYPE\", \"File type not allowed\", 400);\n\t\t}\n\n\t\t// Check file size before buffering\n\t\tif (file.size > maxUploadSize) {\n\t\t\treturn apiError(\n\t\t\t\t\"PAYLOAD_TOO_LARGE\",\n\t\t\t\t`File exceeds maximum size of ${formatFileSize(maxUploadSize)}`,\n\t\t\t\t413,\n\t\t\t);\n\t\t}\n\n\t\t// Get file content and compute hash\n\t\tconst buffer = new Uint8Array(await file.arrayBuffer());\n\t\tconst contentHash = await computeContentHash(buffer);\n\n\t\t// Check for existing media with same content hash (deduplication)\n\t\tconst repo = new MediaRepository(emdash.db);\n\t\tconst existing = await repo.findByContentHash(contentHash);\n\t\tif (existing) {\n\t\t\t// Same content already exists - return existing item\n\t\t\tconst itemWithUrl = addUrlToMedia(existing);\n\t\t\treturn apiSuccess({ item: itemWithUrl, deduplicated: true });\n\t\t}\n\n\t\t// Generate unique storage key\n\t\tconst id = ulid();\n\t\tconst ext = path.extname(file.name) || \"\";\n\t\tconst storageKey = `${id}${ext}`;\n\n\t\t// Upload to storage using the configured adapter\n\t\tawait emdash.storage.upload({\n\t\t\tkey: storageKey,\n\t\t\tbody: buffer,\n\t\t\tcontentType: file.type,\n\t\t});\n\n\t\t// Get image dimensions from form data (sent by client)\n\t\tconst widthEntry = formData.get(\"width\");\n\t\tconst widthStr = typeof widthEntry === \"string\" ? widthEntry : null;\n\t\tconst heightEntry = formData.get(\"height\");\n\t\tconst heightStr = typeof heightEntry === \"string\" ? heightEntry : null;\n\t\tconst width = widthStr ? parseInt(widthStr, 10) : undefined;\n\t\tconst height = heightStr ? parseInt(heightStr, 10) : undefined;\n\n\t\t// Generate placeholder data for images.\n\t\t// If the client sent a thumbnail (small pre-resized image), use that\n\t\t// instead of the full buffer to avoid OOM on memory-constrained runtimes.\n\t\tconst thumbnailEntry = formData.get(\"thumbnail\");\n\t\tconst thumbnail = thumbnailEntry instanceof File ? thumbnailEntry : null;\n\n\t\tlet placeholder: Awaited<ReturnType<typeof generatePlaceholder>> = null;\n\t\tif (file.type.startsWith(\"image/\")) {\n\t\t\tif (thumbnail) {\n\t\t\t\tconst thumbBuffer = new Uint8Array(await thumbnail.arrayBuffer());\n\t\t\t\tplaceholder = await generatePlaceholder(thumbBuffer, thumbnail.type);\n\t\t\t} else {\n\t\t\t\tconst clientDims = width && height ? { width, height } : undefined;\n\t\t\t\tplaceholder = await generatePlaceholder(buffer, file.type, clientDims);\n\t\t\t}\n\t\t}\n\n\t\t// Create media record\n\t\tconst result = await emdash.handleMediaCreate({\n\t\t\tfilename: file.name,\n\t\t\tmimeType: normalizeMime(file.type),\n\t\t\tsize: file.size,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tstorageKey,\n\t\t\tcontentHash,\n\t\t\tblurhash: placeholder?.blurhash,\n\t\t\tdominantColor: placeholder?.dominantColor,\n\t\t\tauthorId: user?.id,\n\t\t});\n\n\t\tif (!result.success) {\n\t\t\t// Clean up the uploaded file on failure\n\t\t\ttry {\n\t\t\t\tawait emdash.storage.delete(storageKey);\n\t\t\t} catch {\n\t\t\t\t// Ignore cleanup errors\n\t\t\t}\n\t\t\treturn unwrapResult(result);\n\t\t}\n\n\t\t// Add URL to the response (relative URL for portability)\n\t\tconst itemWithUrl = addUrlToMedia(result.data.item);\n\n\t\treturn apiSuccess({ item: itemWithUrl }, 201);\n\t} catch (error) {\n\t\treturn handleError(error, \"Upload failed\", \"UPLOAD_ERROR\");\n\t}\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"media.mjs","names":[],"sources":["../../../../src/astro/routes/api/media.ts"],"sourcesContent":["/**\n * Media list and upload endpoint\n *\n * GET /_emdash/api/media - List all media\n * POST /_emdash/api/media - Upload new media (via configured storage adapter)\n */\n\nimport * as path from \"node:path\";\n\nimport type { APIRoute } from \"astro\";\nimport { ulid } from \"ulidx\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, apiSuccess, handleError, unwrapResult } from \"#api/error.js\";\nimport { GLOBAL_UPLOAD_ALLOWLIST, resolveFieldAllowlist } from \"#api/handlers/media-allowlist.js\";\nimport { isParseError, parseQuery } from \"#api/parse.js\";\nimport { DEFAULT_MAX_UPLOAD_SIZE, formatFileSize, mediaListQuery } from \"#api/schemas.js\";\nimport { MediaRepository } from \"#db/repositories/media.js\";\nimport { enrichImageMetadata } from \"#media/enrich.js\";\nimport { matchesMimeAllowlist, normalizeMime } from \"#media/mime.js\";\nimport { computeContentHash } from \"#utils/hash.js\";\n\nimport type { MediaItem } from \"../../types.js\";\n\nexport const prerender = false;\n\n/**\n * Add URL to media items\n * Uses relative URLs to ensure portability across deployments\n */\nfunction addUrlToMedia(item: MediaItem): MediaItem & { url: string } {\n\treturn {\n\t\t...item,\n\t\turl: `/_emdash/api/media/file/${item.storageKey}`,\n\t};\n}\n\n/**\n * List media items\n */\nexport const GET: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\n\tconst denied = requirePerm(user, \"media:read\");\n\tif (denied) return denied;\n\n\tif (!emdash?.handleMediaList) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\tconst url = new URL(request.url);\n\tconst query = parseQuery(url, mediaListQuery);\n\tif (isParseError(query)) return query;\n\n\tconst result = await emdash.handleMediaList({\n\t\tcursor: query.cursor,\n\t\tlimit: query.limit,\n\t\tmimeType: query.mimeType,\n\t\tq: query.q,\n\t});\n\n\tif (!result.success) {\n\t\treturn unwrapResult(result);\n\t}\n\n\t// Add URL to each media item (relative URLs for portability)\n\tconst itemsWithUrl = result.data.items.map((item) => addUrlToMedia(item));\n\n\treturn apiSuccess({ items: itemsWithUrl, nextCursor: result.data.nextCursor });\n};\n\n/**\n * Upload media file\n *\n * Uses the configured storage adapter to store the file.\n */\nexport const POST: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\n\tconst denied = requirePerm(user, \"media:upload\");\n\tif (denied) return denied;\n\n\tif (!emdash?.handleMediaCreate) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\tif (!emdash?.storage) {\n\t\treturn apiError(\"NO_STORAGE\", \"Storage not configured\", 500);\n\t}\n\n\ttry {\n\t\tconst rawMax = emdash.config.maxUploadSize ?? DEFAULT_MAX_UPLOAD_SIZE;\n\t\tif (!Number.isFinite(rawMax) || rawMax <= 0) {\n\t\t\treturn apiError(\"CONFIGURATION_ERROR\", \"Invalid maxUploadSize configuration\", 500);\n\t\t}\n\t\tconst maxUploadSize = rawMax;\n\n\t\t// Best-effort size check before buffering the full multipart body\n\t\tconst contentLength = request.headers.get(\"Content-Length\");\n\t\tif (contentLength && parseInt(contentLength, 10) > maxUploadSize) {\n\t\t\treturn apiError(\"PAYLOAD_TOO_LARGE\", \"Upload too large\", 413);\n\t\t}\n\n\t\tconst formData = await request.formData();\n\t\tconst fileEntry = formData.get(\"file\");\n\t\tconst file = fileEntry instanceof File ? fileEntry : null;\n\n\t\tif (!file) {\n\t\t\treturn apiError(\"NO_FILE\", \"No file provided\", 400);\n\t\t}\n\n\t\t// Validate file type — widen the allowlist when a field-specific list is configured\n\t\tconst fieldIdEntry = formData.get(\"fieldId\");\n\t\tconst fieldId =\n\t\t\ttypeof fieldIdEntry === \"string\" && fieldIdEntry.length > 0 ? fieldIdEntry : null;\n\n\t\tconst fieldAllowlist = fieldId ? await resolveFieldAllowlist(emdash.db, fieldId) : null;\n\t\tconst allowlist = fieldAllowlist ?? [...GLOBAL_UPLOAD_ALLOWLIST];\n\n\t\tif (!matchesMimeAllowlist(file.type, allowlist)) {\n\t\t\treturn apiError(\"INVALID_TYPE\", \"File type not allowed\", 400);\n\t\t}\n\n\t\t// Check file size before buffering\n\t\tif (file.size > maxUploadSize) {\n\t\t\treturn apiError(\n\t\t\t\t\"PAYLOAD_TOO_LARGE\",\n\t\t\t\t`File exceeds maximum size of ${formatFileSize(maxUploadSize)}`,\n\t\t\t\t413,\n\t\t\t);\n\t\t}\n\n\t\t// Get file content and compute hash\n\t\tconst buffer = new Uint8Array(await file.arrayBuffer());\n\t\tconst contentHash = await computeContentHash(buffer);\n\n\t\t// Check for existing media with same content hash (deduplication)\n\t\tconst repo = new MediaRepository(emdash.db);\n\t\tconst existing = await repo.findByContentHash(contentHash);\n\t\tif (existing) {\n\t\t\t// Same content already exists - return existing item\n\t\t\tconst itemWithUrl = addUrlToMedia(existing);\n\t\t\treturn apiSuccess({ item: itemWithUrl, deduplicated: true });\n\t\t}\n\n\t\t// Generate unique storage key\n\t\tconst id = ulid();\n\t\tconst ext = path.extname(file.name) || \"\";\n\t\tconst storageKey = `${id}${ext}`;\n\n\t\t// Upload to storage using the configured adapter\n\t\tawait emdash.storage.upload({\n\t\t\tkey: storageKey,\n\t\t\tbody: buffer,\n\t\t\tcontentType: file.type,\n\t\t});\n\n\t\t// Get image dimensions from form data (sent by client)\n\t\tconst widthEntry = formData.get(\"width\");\n\t\tconst widthStr = typeof widthEntry === \"string\" ? widthEntry : null;\n\t\tconst heightEntry = formData.get(\"height\");\n\t\tconst heightStr = typeof heightEntry === \"string\" ? heightEntry : null;\n\t\tconst width = widthStr ? parseInt(widthStr, 10) : undefined;\n\t\tconst height = heightStr ? parseInt(heightStr, 10) : undefined;\n\n\t\t// Derive dimensions + LQIP placeholders via the shared helper.\n\t\t// If the client sent a downscaled thumbnail, decode that for the blurhash\n\t\t// (avoids OOM on large originals on memory-constrained runtimes).\n\t\tconst thumbnailEntry = formData.get(\"thumbnail\");\n\t\tconst thumbnail = thumbnailEntry instanceof File ? thumbnailEntry : null;\n\t\tconst enriched = await enrichImageMetadata(buffer, file.type, {\n\t\t\tknownDimensions: width != null && height != null ? { width, height } : undefined,\n\t\t\tplaceholder: thumbnail\n\t\t\t\t? { bytes: new Uint8Array(await thumbnail.arrayBuffer()), contentType: thumbnail.type }\n\t\t\t\t: undefined,\n\t\t});\n\n\t\t// Create media record\n\t\tconst result = await emdash.handleMediaCreate({\n\t\t\tfilename: file.name,\n\t\t\tmimeType: normalizeMime(file.type),\n\t\t\tsize: file.size,\n\t\t\t// Client dimensions win over server header dimensions: the browser's\n\t\t\t// naturalWidth/Height apply EXIF orientation, while image-size reports\n\t\t\t// raw (pre-orientation) header dims — swapped for 90°/270° JPEGs.\n\t\t\twidth: width ?? enriched.width,\n\t\t\theight: height ?? enriched.height,\n\t\t\tstorageKey,\n\t\t\tcontentHash,\n\t\t\tblurhash: enriched.blurhash,\n\t\t\tdominantColor: enriched.dominantColor,\n\t\t\tauthorId: user?.id,\n\t\t});\n\n\t\tif (!result.success) {\n\t\t\t// Clean up the uploaded file on failure\n\t\t\ttry {\n\t\t\t\tawait emdash.storage.delete(storageKey);\n\t\t\t} catch {\n\t\t\t\t// Ignore cleanup errors\n\t\t\t}\n\t\t\treturn unwrapResult(result);\n\t\t}\n\n\t\t// Add URL to the response (relative URL for portability)\n\t\tconst itemWithUrl = addUrlToMedia(result.data.item);\n\n\t\treturn apiSuccess({ item: itemWithUrl }, 201);\n\t} catch (error) {\n\t\treturn handleError(error, \"Upload failed\", \"UPLOAD_ERROR\");\n\t}\n};\n"],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import "../../../../../../after-B1IIdH3Y.mjs";
|
|
2
|
-
import "../../../../../../object-cache-
|
|
2
|
+
import "../../../../../../object-cache-CHbHv83-.mjs";
|
|
3
3
|
import "../../../../../../base64-CmWvODNW.mjs";
|
|
4
|
-
import "../../../../../../types-
|
|
5
|
-
import { a as handleMenuItemDelete, s as handleMenuItemUpdate } from "../../../../../../menus-
|
|
6
|
-
import { a as unwrapResult, r as handleError, t as apiError } from "../../../../../../error-
|
|
7
|
-
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../../../parse-
|
|
8
|
-
import { Fn as localeFilterQuery, lt as updateMenuItemBody } from "../../../../../../redirects-
|
|
9
|
-
import "../../../../../../byline-fields-
|
|
4
|
+
import "../../../../../../types-CZgK3EMW.mjs";
|
|
5
|
+
import { a as handleMenuItemDelete, s as handleMenuItemUpdate } from "../../../../../../menus-CBb6UrMU.mjs";
|
|
6
|
+
import { a as unwrapResult, r as handleError, t as apiError } from "../../../../../../error-rVGiqWDt.mjs";
|
|
7
|
+
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../../../parse-BwAdS7FZ.mjs";
|
|
8
|
+
import { Fn as localeFilterQuery, lt as updateMenuItemBody } from "../../../../../../redirects-Dcbuisoj.mjs";
|
|
9
|
+
import "../../../../../../byline-fields-eyJMblSr.mjs";
|
|
10
10
|
import "../../../../../../status-vUK0SA17.mjs";
|
|
11
11
|
import "../../../../../../api/schemas/index.mjs";
|
|
12
|
-
import { n as requirePerm } from "../../../../../../authorize-
|
|
12
|
+
import { n as requirePerm } from "../../../../../../authorize-BZnOGJFo.mjs";
|
|
13
13
|
|
|
14
14
|
//#region src/astro/routes/api/menus/[name]/items/[id].ts
|
|
15
15
|
const prerender = false;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import "../../../../../after-B1IIdH3Y.mjs";
|
|
2
|
-
import "../../../../../object-cache-
|
|
2
|
+
import "../../../../../object-cache-CHbHv83-.mjs";
|
|
3
3
|
import "../../../../../base64-CmWvODNW.mjs";
|
|
4
|
-
import "../../../../../types-
|
|
5
|
-
import { i as handleMenuItemCreate } from "../../../../../menus-
|
|
6
|
-
import { a as unwrapResult, r as handleError } from "../../../../../error-
|
|
7
|
-
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../../parse-
|
|
8
|
-
import { Fn as localeFilterQuery, et as createMenuItemBody } from "../../../../../redirects-
|
|
9
|
-
import "../../../../../byline-fields-
|
|
4
|
+
import "../../../../../types-CZgK3EMW.mjs";
|
|
5
|
+
import { i as handleMenuItemCreate } from "../../../../../menus-CBb6UrMU.mjs";
|
|
6
|
+
import { a as unwrapResult, r as handleError } from "../../../../../error-rVGiqWDt.mjs";
|
|
7
|
+
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../../parse-BwAdS7FZ.mjs";
|
|
8
|
+
import { Fn as localeFilterQuery, et as createMenuItemBody } from "../../../../../redirects-Dcbuisoj.mjs";
|
|
9
|
+
import "../../../../../byline-fields-eyJMblSr.mjs";
|
|
10
10
|
import "../../../../../status-vUK0SA17.mjs";
|
|
11
11
|
import "../../../../../api/schemas/index.mjs";
|
|
12
|
-
import { n as requirePerm } from "../../../../../authorize-
|
|
12
|
+
import { n as requirePerm } from "../../../../../authorize-BZnOGJFo.mjs";
|
|
13
13
|
|
|
14
14
|
//#region src/astro/routes/api/menus/[name]/items.ts
|
|
15
15
|
const prerender = false;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import "../../../../../after-B1IIdH3Y.mjs";
|
|
2
|
-
import "../../../../../object-cache-
|
|
2
|
+
import "../../../../../object-cache-CHbHv83-.mjs";
|
|
3
3
|
import "../../../../../base64-CmWvODNW.mjs";
|
|
4
|
-
import "../../../../../types-
|
|
5
|
-
import { o as handleMenuItemReorder } from "../../../../../menus-
|
|
6
|
-
import { a as unwrapResult, r as handleError } from "../../../../../error-
|
|
7
|
-
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../../parse-
|
|
8
|
-
import { Fn as localeFilterQuery, st as reorderMenuItemsBody } from "../../../../../redirects-
|
|
9
|
-
import "../../../../../byline-fields-
|
|
4
|
+
import "../../../../../types-CZgK3EMW.mjs";
|
|
5
|
+
import { o as handleMenuItemReorder } from "../../../../../menus-CBb6UrMU.mjs";
|
|
6
|
+
import { a as unwrapResult, r as handleError } from "../../../../../error-rVGiqWDt.mjs";
|
|
7
|
+
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../../parse-BwAdS7FZ.mjs";
|
|
8
|
+
import { Fn as localeFilterQuery, st as reorderMenuItemsBody } from "../../../../../redirects-Dcbuisoj.mjs";
|
|
9
|
+
import "../../../../../byline-fields-eyJMblSr.mjs";
|
|
10
10
|
import "../../../../../status-vUK0SA17.mjs";
|
|
11
11
|
import "../../../../../api/schemas/index.mjs";
|
|
12
|
-
import { n as requirePerm } from "../../../../../authorize-
|
|
12
|
+
import { n as requirePerm } from "../../../../../authorize-BZnOGJFo.mjs";
|
|
13
13
|
|
|
14
14
|
//#region src/astro/routes/api/menus/[name]/reorder.ts
|
|
15
15
|
const prerender = false;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import "../../../../../after-B1IIdH3Y.mjs";
|
|
2
|
-
import "../../../../../object-cache-
|
|
2
|
+
import "../../../../../object-cache-CHbHv83-.mjs";
|
|
3
3
|
import "../../../../../base64-CmWvODNW.mjs";
|
|
4
|
-
import "../../../../../types-
|
|
5
|
-
import { l as handleMenuTranslations, r as handleMenuGet, t as handleMenuCreate } from "../../../../../menus-
|
|
6
|
-
import { a as unwrapResult, i as requireDb, r as handleError } from "../../../../../error-
|
|
7
|
-
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../../parse-
|
|
8
|
-
import { Fn as localeFilterQuery } from "../../../../../redirects-
|
|
9
|
-
import "../../../../../byline-fields-
|
|
4
|
+
import "../../../../../types-CZgK3EMW.mjs";
|
|
5
|
+
import { l as handleMenuTranslations, r as handleMenuGet, t as handleMenuCreate } from "../../../../../menus-CBb6UrMU.mjs";
|
|
6
|
+
import { a as unwrapResult, i as requireDb, r as handleError } from "../../../../../error-rVGiqWDt.mjs";
|
|
7
|
+
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../../parse-BwAdS7FZ.mjs";
|
|
8
|
+
import { Fn as localeFilterQuery } from "../../../../../redirects-Dcbuisoj.mjs";
|
|
9
|
+
import "../../../../../byline-fields-eyJMblSr.mjs";
|
|
10
10
|
import "../../../../../status-vUK0SA17.mjs";
|
|
11
11
|
import "../../../../../api/schemas/index.mjs";
|
|
12
|
-
import { n as requirePerm } from "../../../../../authorize-
|
|
12
|
+
import { n as requirePerm } from "../../../../../authorize-BZnOGJFo.mjs";
|
|
13
13
|
import { z } from "zod";
|
|
14
14
|
|
|
15
15
|
//#region src/astro/routes/api/menus/[name]/translations.ts
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import "../../../../after-B1IIdH3Y.mjs";
|
|
2
|
-
import "../../../../object-cache-
|
|
2
|
+
import "../../../../object-cache-CHbHv83-.mjs";
|
|
3
3
|
import "../../../../base64-CmWvODNW.mjs";
|
|
4
|
-
import "../../../../types-
|
|
5
|
-
import { n as handleMenuDelete, r as handleMenuGet, u as handleMenuUpdate } from "../../../../menus-
|
|
6
|
-
import { a as unwrapResult, r as handleError } from "../../../../error-
|
|
7
|
-
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../parse-
|
|
8
|
-
import { Fn as localeFilterQuery, ct as updateMenuBody } from "../../../../redirects-
|
|
9
|
-
import "../../../../byline-fields-
|
|
4
|
+
import "../../../../types-CZgK3EMW.mjs";
|
|
5
|
+
import { n as handleMenuDelete, r as handleMenuGet, u as handleMenuUpdate } from "../../../../menus-CBb6UrMU.mjs";
|
|
6
|
+
import { a as unwrapResult, r as handleError } from "../../../../error-rVGiqWDt.mjs";
|
|
7
|
+
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../parse-BwAdS7FZ.mjs";
|
|
8
|
+
import { Fn as localeFilterQuery, ct as updateMenuBody } from "../../../../redirects-Dcbuisoj.mjs";
|
|
9
|
+
import "../../../../byline-fields-eyJMblSr.mjs";
|
|
10
10
|
import "../../../../status-vUK0SA17.mjs";
|
|
11
11
|
import "../../../../api/schemas/index.mjs";
|
|
12
|
-
import { n as requirePerm } from "../../../../authorize-
|
|
12
|
+
import { n as requirePerm } from "../../../../authorize-BZnOGJFo.mjs";
|
|
13
13
|
|
|
14
14
|
//#region src/astro/routes/api/menus/[name].ts
|
|
15
15
|
const prerender = false;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import "../../../../after-B1IIdH3Y.mjs";
|
|
2
|
-
import "../../../../object-cache-
|
|
2
|
+
import "../../../../object-cache-CHbHv83-.mjs";
|
|
3
3
|
import "../../../../base64-CmWvODNW.mjs";
|
|
4
|
-
import "../../../../types-
|
|
5
|
-
import { c as handleMenuList, t as handleMenuCreate } from "../../../../menus-
|
|
6
|
-
import { a as unwrapResult, r as handleError } from "../../../../error-
|
|
7
|
-
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../parse-
|
|
8
|
-
import { $ as createMenuBody, Fn as localeFilterQuery } from "../../../../redirects-
|
|
9
|
-
import "../../../../byline-fields-
|
|
4
|
+
import "../../../../types-CZgK3EMW.mjs";
|
|
5
|
+
import { c as handleMenuList, t as handleMenuCreate } from "../../../../menus-CBb6UrMU.mjs";
|
|
6
|
+
import { a as unwrapResult, r as handleError } from "../../../../error-rVGiqWDt.mjs";
|
|
7
|
+
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../parse-BwAdS7FZ.mjs";
|
|
8
|
+
import { $ as createMenuBody, Fn as localeFilterQuery } from "../../../../redirects-Dcbuisoj.mjs";
|
|
9
|
+
import "../../../../byline-fields-eyJMblSr.mjs";
|
|
10
10
|
import "../../../../status-vUK0SA17.mjs";
|
|
11
11
|
import "../../../../api/schemas/index.mjs";
|
|
12
|
-
import { n as requirePerm } from "../../../../authorize-
|
|
12
|
+
import { n as requirePerm } from "../../../../authorize-BZnOGJFo.mjs";
|
|
13
13
|
|
|
14
14
|
//#region src/astro/routes/api/menus/index.ts
|
|
15
15
|
const prerender = false;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../../../../../base64-CmWvODNW.mjs";
|
|
2
|
-
import "../../../../../types-
|
|
3
|
-
import { a as unwrapResult, r as handleError, t as apiError } from "../../../../../error-
|
|
4
|
-
import { n as parseBody, t as isParseError } from "../../../../../parse-
|
|
2
|
+
import "../../../../../types-CZgK3EMW.mjs";
|
|
3
|
+
import { a as unwrapResult, r as handleError, t as apiError } from "../../../../../error-rVGiqWDt.mjs";
|
|
4
|
+
import { n as parseBody, t as isParseError } from "../../../../../parse-BwAdS7FZ.mjs";
|
|
5
5
|
import "../../../../../api-tokens-B4BQybOp.mjs";
|
|
6
6
|
import "../../../../../oauth-user-lookup-SHsWRlG9.mjs";
|
|
7
7
|
import { t as handleDeviceAuthorize } from "../../../../../device-flow-DENDCQ9F.mjs";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import "../../../../../base64-CmWvODNW.mjs";
|
|
2
|
-
import "../../../../../types-
|
|
3
|
-
import { a as unwrapResult, r as handleError, t as apiError } from "../../../../../error-
|
|
4
|
-
import { n as parseBody, t as isParseError } from "../../../../../parse-
|
|
2
|
+
import "../../../../../types-CZgK3EMW.mjs";
|
|
3
|
+
import { a as unwrapResult, r as handleError, t as apiError } from "../../../../../error-rVGiqWDt.mjs";
|
|
4
|
+
import { n as parseBody, t as isParseError } from "../../../../../parse-BwAdS7FZ.mjs";
|
|
5
5
|
import { t as getTrustedProxyHeaders } from "../../../../../trusted-proxy-DZY5WCn2.mjs";
|
|
6
6
|
import { n as getPublicOrigin } from "../../../../../public-url-CTVqgMmg.mjs";
|
|
7
7
|
import "../../../../../api-tokens-B4BQybOp.mjs";
|
|
8
8
|
import "../../../../../oauth-user-lookup-SHsWRlG9.mjs";
|
|
9
9
|
import { n as handleDeviceCodeRequest } from "../../../../../device-flow-DENDCQ9F.mjs";
|
|
10
|
-
import { n as getClientIp, r as rateLimitResponse, t as checkRateLimit } from "../../../../../rate-limit-
|
|
10
|
+
import { n as getClientIp, r as rateLimitResponse, t as checkRateLimit } from "../../../../../rate-limit-Dap6HMNM.mjs";
|
|
11
11
|
import { z } from "zod";
|
|
12
12
|
|
|
13
13
|
//#region src/astro/routes/api/oauth/device/code.ts
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import "../../../../../base64-CmWvODNW.mjs";
|
|
2
|
-
import "../../../../../types-
|
|
3
|
-
import { a as unwrapResult, r as handleError, t as apiError } from "../../../../../error-
|
|
4
|
-
import { n as parseBody, t as isParseError } from "../../../../../parse-
|
|
2
|
+
import "../../../../../types-CZgK3EMW.mjs";
|
|
3
|
+
import { a as unwrapResult, r as handleError, t as apiError } from "../../../../../error-rVGiqWDt.mjs";
|
|
4
|
+
import { n as parseBody, t as isParseError } from "../../../../../parse-BwAdS7FZ.mjs";
|
|
5
5
|
import { t as getTrustedProxyHeaders } from "../../../../../trusted-proxy-DZY5WCn2.mjs";
|
|
6
6
|
import "../../../../../api-tokens-B4BQybOp.mjs";
|
|
7
7
|
import "../../../../../oauth-user-lookup-SHsWRlG9.mjs";
|
|
8
8
|
import { r as handleDeviceTokenExchange } from "../../../../../device-flow-DENDCQ9F.mjs";
|
|
9
|
-
import { n as getClientIp, r as rateLimitResponse, t as checkRateLimit } from "../../../../../rate-limit-
|
|
9
|
+
import { n as getClientIp, r as rateLimitResponse, t as checkRateLimit } from "../../../../../rate-limit-Dap6HMNM.mjs";
|
|
10
10
|
import { z } from "zod";
|
|
11
11
|
|
|
12
12
|
//#region src/astro/routes/api/oauth/device/token.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "../../../../base64-CmWvODNW.mjs";
|
|
2
|
-
import "../../../../types-
|
|
3
|
-
import { r as handleError, t as apiError } from "../../../../error-
|
|
2
|
+
import "../../../../types-CZgK3EMW.mjs";
|
|
3
|
+
import { r as handleError, t as apiError } from "../../../../error-rVGiqWDt.mjs";
|
|
4
4
|
import { t as handleOAuthClientCreate } from "../../../../oauth-clients-C9SYwEbZ.mjs";
|
|
5
5
|
|
|
6
6
|
//#region src/astro/routes/api/oauth/register.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../../../../../base64-CmWvODNW.mjs";
|
|
2
|
-
import "../../../../../types-
|
|
3
|
-
import { a as unwrapResult, r as handleError, t as apiError } from "../../../../../error-
|
|
4
|
-
import { n as parseBody, t as isParseError } from "../../../../../parse-
|
|
2
|
+
import "../../../../../types-CZgK3EMW.mjs";
|
|
3
|
+
import { a as unwrapResult, r as handleError, t as apiError } from "../../../../../error-rVGiqWDt.mjs";
|
|
4
|
+
import { n as parseBody, t as isParseError } from "../../../../../parse-BwAdS7FZ.mjs";
|
|
5
5
|
import "../../../../../api-tokens-B4BQybOp.mjs";
|
|
6
6
|
import "../../../../../oauth-user-lookup-SHsWRlG9.mjs";
|
|
7
7
|
import { i as handleTokenRefresh } from "../../../../../device-flow-DENDCQ9F.mjs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../../../../../base64-CmWvODNW.mjs";
|
|
2
|
-
import "../../../../../types-
|
|
3
|
-
import { a as unwrapResult, r as handleError, t as apiError } from "../../../../../error-
|
|
4
|
-
import { n as parseBody, t as isParseError } from "../../../../../parse-
|
|
2
|
+
import "../../../../../types-CZgK3EMW.mjs";
|
|
3
|
+
import { a as unwrapResult, r as handleError, t as apiError } from "../../../../../error-rVGiqWDt.mjs";
|
|
4
|
+
import { n as parseBody, t as isParseError } from "../../../../../parse-BwAdS7FZ.mjs";
|
|
5
5
|
import "../../../../../api-tokens-B4BQybOp.mjs";
|
|
6
6
|
import "../../../../../oauth-user-lookup-SHsWRlG9.mjs";
|
|
7
7
|
import { a as handleTokenRevoke } from "../../../../../device-flow-DENDCQ9F.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "../../../../base64-CmWvODNW.mjs";
|
|
2
|
-
import "../../../../types-
|
|
3
|
-
import { r as handleError, t as apiError } from "../../../../error-
|
|
2
|
+
import "../../../../types-CZgK3EMW.mjs";
|
|
3
|
+
import { r as handleError, t as apiError } from "../../../../error-rVGiqWDt.mjs";
|
|
4
4
|
import "../../../../api-tokens-B4BQybOp.mjs";
|
|
5
5
|
import "../../../../oauth-user-lookup-SHsWRlG9.mjs";
|
|
6
6
|
import { r as handleAuthorizationCodeExchange } from "../../../../oauth-authorization-CsvzIp_F.mjs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../../../base64-CmWvODNW.mjs";
|
|
2
|
-
import "../../../types-
|
|
3
|
-
import { r as handleError } from "../../../error-
|
|
4
|
-
import { $ as createMenuBody, A as searchRebuildBody, At as fieldListResponseSchema, B as updateSectionBody, Bt as DEFAULT_MAX_UPLOAD_SIZE, C as userDetailSchema, Ct as collectionGetQuery, D as usersListQuery, Dt as collectionWithFieldsResponseSchema, E as userUpdateBody, F as siteSettingsSchema, Ft as orphanedTableListResponseSchema, G as taxonomyListResponseSchema, H as createTermBody, Ht as mediaConfirmBody, I as createSectionBody, J as termResponseSchema, K as termGetResponseSchema, Kt as mediaListQuery, L as sectionListResponseSchema, Mn as deleteResponseSchema, Mt as fieldResponseSchema, N as searchSuggestQuery, O as searchEnableBody, Ot as createCollectionBody, P as settingsUpdateBody, Pt as orphanRegisterBody, Q as updateTermBody, Qt as mediaUploadUrlResponseSchema, R as sectionSchema, Rt as updateCollectionBody, S as allowedDomainUpdateBody, T as userSchema, Tt as collectionResponseSchema, Ut as mediaConfirmResponseSchema, Wt as mediaExistingResponseSchema, Xt as mediaUpdateBody, Yt as mediaResponseSchema, Zt as mediaUploadUrlBody, _ as widgetAreaSchema, _t as commentSchema, a as notFoundPruneBody, an as contentListResponseSchema, b as widgetSchema, cn as contentResponseSchema, ct as updateMenuBody, d as redirectsListQuery, en as contentAuthorsResponseSchema, et as createMenuItemBody, f as updateRedirectBody, fn as contentTermsBody, ft as adminCommentListResponseSchema, g as updateWidgetBody, gn as contentUpdateBody, gt as commentListQuery, h as reorderWidgetsBody, hn as contentTrashQuery, ht as commentCountsResponseSchema, i as notFoundListResponseSchema, in as contentListQuery, j as searchResponseSchema, jt as fieldReorderBody, k as searchQuery, kn as apiErrorSchema, kt as createFieldBody, l as redirectListResponseSchema, ln as contentScheduleBody, lt as updateMenuItemBody, m as createWidgetBody, mn as contentTranslationsResponseSchema, mt as commentBulkResponseSchema, nn as contentCreateBody, ot as menuWithItemsSchema, p as createWidgetAreaBody, pt as commentBulkBody, q as termListResponseSchema, qt as mediaListResponseSchema, r as notFoundListQuery, rn as contentItemSchema, rt as menuListItemSchema, s as notFoundSummaryResponseSchema, st as reorderMenuItemsBody, t as createRedirectBody, tn as contentCompareResponseSchema, tt as menuItemSchema, u as redirectSchema, v as widgetAreaWithWidgetsAndCountSchema, vn as trashedContentListResponseSchema, vt as commentStatusBody, w as userListResponseSchema, wt as collectionListResponseSchema, x as allowedDomainCreateBody, xt as publicCommentListResponseSchema, y as widgetAreaWithWidgetsSchema, yt as createCommentBody, z as sectionsListQuery, zn as successEnvelope, zt as updateFieldBody } from "../../../redirects-
|
|
2
|
+
import "../../../types-CZgK3EMW.mjs";
|
|
3
|
+
import { r as handleError } from "../../../error-rVGiqWDt.mjs";
|
|
4
|
+
import { $ as createMenuBody, A as searchRebuildBody, At as fieldListResponseSchema, B as updateSectionBody, Bt as DEFAULT_MAX_UPLOAD_SIZE, C as userDetailSchema, Ct as collectionGetQuery, D as usersListQuery, Dt as collectionWithFieldsResponseSchema, E as userUpdateBody, F as siteSettingsSchema, Ft as orphanedTableListResponseSchema, G as taxonomyListResponseSchema, H as createTermBody, Ht as mediaConfirmBody, I as createSectionBody, J as termResponseSchema, K as termGetResponseSchema, Kt as mediaListQuery, L as sectionListResponseSchema, Mn as deleteResponseSchema, Mt as fieldResponseSchema, N as searchSuggestQuery, O as searchEnableBody, Ot as createCollectionBody, P as settingsUpdateBody, Pt as orphanRegisterBody, Q as updateTermBody, Qt as mediaUploadUrlResponseSchema, R as sectionSchema, Rt as updateCollectionBody, S as allowedDomainUpdateBody, T as userSchema, Tt as collectionResponseSchema, Ut as mediaConfirmResponseSchema, Wt as mediaExistingResponseSchema, Xt as mediaUpdateBody, Yt as mediaResponseSchema, Zt as mediaUploadUrlBody, _ as widgetAreaSchema, _t as commentSchema, a as notFoundPruneBody, an as contentListResponseSchema, b as widgetSchema, cn as contentResponseSchema, ct as updateMenuBody, d as redirectsListQuery, en as contentAuthorsResponseSchema, et as createMenuItemBody, f as updateRedirectBody, fn as contentTermsBody, ft as adminCommentListResponseSchema, g as updateWidgetBody, gn as contentUpdateBody, gt as commentListQuery, h as reorderWidgetsBody, hn as contentTrashQuery, ht as commentCountsResponseSchema, i as notFoundListResponseSchema, in as contentListQuery, j as searchResponseSchema, jt as fieldReorderBody, k as searchQuery, kn as apiErrorSchema, kt as createFieldBody, l as redirectListResponseSchema, ln as contentScheduleBody, lt as updateMenuItemBody, m as createWidgetBody, mn as contentTranslationsResponseSchema, mt as commentBulkResponseSchema, nn as contentCreateBody, ot as menuWithItemsSchema, p as createWidgetAreaBody, pt as commentBulkBody, q as termListResponseSchema, qt as mediaListResponseSchema, r as notFoundListQuery, rn as contentItemSchema, rt as menuListItemSchema, s as notFoundSummaryResponseSchema, st as reorderMenuItemsBody, t as createRedirectBody, tn as contentCompareResponseSchema, tt as menuItemSchema, u as redirectSchema, v as widgetAreaWithWidgetsAndCountSchema, vn as trashedContentListResponseSchema, vt as commentStatusBody, w as userListResponseSchema, wt as collectionListResponseSchema, x as allowedDomainCreateBody, xt as publicCommentListResponseSchema, y as widgetAreaWithWidgetsSchema, yt as createCommentBody, z as sectionsListQuery, zn as successEnvelope, zt as updateFieldBody } from "../../../redirects-Dcbuisoj.mjs";
|
|
5
5
|
import "../../../status-vUK0SA17.mjs";
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
import { globalRegistry } from "zod/v4/core";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "../../../../../base64-CmWvODNW.mjs";
|
|
2
|
-
import "../../../../../types-
|
|
3
|
-
import { n as apiSuccess, t as apiError } from "../../../../../error-
|
|
2
|
+
import "../../../../../types-CZgK3EMW.mjs";
|
|
3
|
+
import { n as apiSuccess, t as apiError } from "../../../../../error-rVGiqWDt.mjs";
|
|
4
4
|
import { i as hasScope } from "../../../../../api-tokens-B4BQybOp.mjs";
|
|
5
|
-
import { n as requirePerm } from "../../../../../authorize-
|
|
5
|
+
import { n as requirePerm } from "../../../../../authorize-BZnOGJFo.mjs";
|
|
6
6
|
|
|
7
7
|
//#region src/auth/scopes.ts
|
|
8
8
|
/**
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import "../../../../../dialect-helpers-DRI5pyY3.mjs";
|
|
2
2
|
import "../../../../../base64-CmWvODNW.mjs";
|
|
3
|
-
import "../../../../../types-
|
|
3
|
+
import "../../../../../types-CZgK3EMW.mjs";
|
|
4
4
|
import "../../../../../options-DTTML-Tx.mjs";
|
|
5
|
-
import "../../../../../redirect-
|
|
6
|
-
import { a as unwrapResult, i as requireDb, r as handleError } from "../../../../../error-
|
|
7
|
-
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../../parse-
|
|
8
|
-
import { a as notFoundPruneBody, r as notFoundListQuery } from "../../../../../redirects-
|
|
9
|
-
import "../../../../../byline-fields-
|
|
5
|
+
import "../../../../../redirect-_M0trWoo.mjs";
|
|
6
|
+
import { a as unwrapResult, i as requireDb, r as handleError } from "../../../../../error-rVGiqWDt.mjs";
|
|
7
|
+
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../../parse-BwAdS7FZ.mjs";
|
|
8
|
+
import { a as notFoundPruneBody, r as notFoundListQuery } from "../../../../../redirects-Dcbuisoj.mjs";
|
|
9
|
+
import "../../../../../byline-fields-eyJMblSr.mjs";
|
|
10
10
|
import "../../../../../status-vUK0SA17.mjs";
|
|
11
11
|
import "../../../../../api/schemas/index.mjs";
|
|
12
|
-
import { n as requirePerm } from "../../../../../authorize-
|
|
13
|
-
import { n as handleNotFoundList, r as handleNotFoundPrune, t as handleNotFoundClear } from "../../../../../redirects-
|
|
12
|
+
import { n as requirePerm } from "../../../../../authorize-BZnOGJFo.mjs";
|
|
13
|
+
import { n as handleNotFoundList, r as handleNotFoundPrune, t as handleNotFoundClear } from "../../../../../redirects-w0V9vj_j.mjs";
|
|
14
14
|
|
|
15
15
|
//#region src/astro/routes/api/redirects/404s/index.ts
|
|
16
16
|
const prerender = false;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import "../../../../../dialect-helpers-DRI5pyY3.mjs";
|
|
2
2
|
import "../../../../../base64-CmWvODNW.mjs";
|
|
3
|
-
import "../../../../../types-
|
|
3
|
+
import "../../../../../types-CZgK3EMW.mjs";
|
|
4
4
|
import "../../../../../options-DTTML-Tx.mjs";
|
|
5
|
-
import "../../../../../redirect-
|
|
6
|
-
import { a as unwrapResult, i as requireDb, r as handleError } from "../../../../../error-
|
|
7
|
-
import { i as parseQuery, t as isParseError } from "../../../../../parse-
|
|
8
|
-
import { o as notFoundSummaryQuery } from "../../../../../redirects-
|
|
9
|
-
import "../../../../../byline-fields-
|
|
5
|
+
import "../../../../../redirect-_M0trWoo.mjs";
|
|
6
|
+
import { a as unwrapResult, i as requireDb, r as handleError } from "../../../../../error-rVGiqWDt.mjs";
|
|
7
|
+
import { i as parseQuery, t as isParseError } from "../../../../../parse-BwAdS7FZ.mjs";
|
|
8
|
+
import { o as notFoundSummaryQuery } from "../../../../../redirects-Dcbuisoj.mjs";
|
|
9
|
+
import "../../../../../byline-fields-eyJMblSr.mjs";
|
|
10
10
|
import "../../../../../status-vUK0SA17.mjs";
|
|
11
11
|
import "../../../../../api/schemas/index.mjs";
|
|
12
|
-
import { n as requirePerm } from "../../../../../authorize-
|
|
13
|
-
import { i as handleNotFoundSummary } from "../../../../../redirects-
|
|
12
|
+
import { n as requirePerm } from "../../../../../authorize-BZnOGJFo.mjs";
|
|
13
|
+
import { i as handleNotFoundSummary } from "../../../../../redirects-w0V9vj_j.mjs";
|
|
14
14
|
|
|
15
15
|
//#region src/astro/routes/api/redirects/404s/summary.ts
|
|
16
16
|
const prerender = false;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import "../../../../dialect-helpers-DRI5pyY3.mjs";
|
|
2
2
|
import "../../../../base64-CmWvODNW.mjs";
|
|
3
|
-
import "../../../../types-
|
|
3
|
+
import "../../../../types-CZgK3EMW.mjs";
|
|
4
4
|
import "../../../../options-DTTML-Tx.mjs";
|
|
5
|
-
import "../../../../redirect-
|
|
6
|
-
import { r as invalidateRedirectCache } from "../../../../cache-
|
|
7
|
-
import { a as unwrapResult, i as requireDb, r as handleError, t as apiError } from "../../../../error-
|
|
8
|
-
import { n as parseBody, t as isParseError } from "../../../../parse-
|
|
9
|
-
import { f as updateRedirectBody } from "../../../../redirects-
|
|
10
|
-
import "../../../../byline-fields-
|
|
5
|
+
import "../../../../redirect-_M0trWoo.mjs";
|
|
6
|
+
import { r as invalidateRedirectCache } from "../../../../cache-D9jF5bYw.mjs";
|
|
7
|
+
import { a as unwrapResult, i as requireDb, r as handleError, t as apiError } from "../../../../error-rVGiqWDt.mjs";
|
|
8
|
+
import { n as parseBody, t as isParseError } from "../../../../parse-BwAdS7FZ.mjs";
|
|
9
|
+
import { f as updateRedirectBody } from "../../../../redirects-Dcbuisoj.mjs";
|
|
10
|
+
import "../../../../byline-fields-eyJMblSr.mjs";
|
|
11
11
|
import "../../../../status-vUK0SA17.mjs";
|
|
12
12
|
import "../../../../api/schemas/index.mjs";
|
|
13
|
-
import { n as requirePerm } from "../../../../authorize-
|
|
14
|
-
import { l as handleRedirectUpdate, o as handleRedirectDelete, s as handleRedirectGet } from "../../../../redirects-
|
|
13
|
+
import { n as requirePerm } from "../../../../authorize-BZnOGJFo.mjs";
|
|
14
|
+
import { l as handleRedirectUpdate, o as handleRedirectDelete, s as handleRedirectGet } from "../../../../redirects-w0V9vj_j.mjs";
|
|
15
15
|
|
|
16
16
|
//#region src/astro/routes/api/redirects/[id].ts
|
|
17
17
|
const prerender = false;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import "../../../../dialect-helpers-DRI5pyY3.mjs";
|
|
2
2
|
import "../../../../base64-CmWvODNW.mjs";
|
|
3
|
-
import "../../../../types-
|
|
3
|
+
import "../../../../types-CZgK3EMW.mjs";
|
|
4
4
|
import "../../../../options-DTTML-Tx.mjs";
|
|
5
|
-
import "../../../../redirect-
|
|
6
|
-
import { r as invalidateRedirectCache } from "../../../../cache-
|
|
7
|
-
import { a as unwrapResult, i as requireDb, r as handleError } from "../../../../error-
|
|
8
|
-
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../parse-
|
|
9
|
-
import { d as redirectsListQuery, t as createRedirectBody } from "../../../../redirects-
|
|
10
|
-
import "../../../../byline-fields-
|
|
5
|
+
import "../../../../redirect-_M0trWoo.mjs";
|
|
6
|
+
import { r as invalidateRedirectCache } from "../../../../cache-D9jF5bYw.mjs";
|
|
7
|
+
import { a as unwrapResult, i as requireDb, r as handleError } from "../../../../error-rVGiqWDt.mjs";
|
|
8
|
+
import { i as parseQuery, n as parseBody, t as isParseError } from "../../../../parse-BwAdS7FZ.mjs";
|
|
9
|
+
import { d as redirectsListQuery, t as createRedirectBody } from "../../../../redirects-Dcbuisoj.mjs";
|
|
10
|
+
import "../../../../byline-fields-eyJMblSr.mjs";
|
|
11
11
|
import "../../../../status-vUK0SA17.mjs";
|
|
12
12
|
import "../../../../api/schemas/index.mjs";
|
|
13
|
-
import { n as requirePerm } from "../../../../authorize-
|
|
14
|
-
import { a as handleRedirectCreate, c as handleRedirectList } from "../../../../redirects-
|
|
13
|
+
import { n as requirePerm } from "../../../../authorize-BZnOGJFo.mjs";
|
|
14
|
+
import { a as handleRedirectCreate, c as handleRedirectList } from "../../../../redirects-w0V9vj_j.mjs";
|
|
15
15
|
|
|
16
16
|
//#region src/astro/routes/api/redirects/index.ts
|
|
17
17
|
const prerender = false;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../../../../../base64-CmWvODNW.mjs";
|
|
2
|
-
import "../../../../../types-
|
|
3
|
-
import { a as unwrapResult, t as apiError } from "../../../../../error-
|
|
4
|
-
import { n as requirePerm } from "../../../../../authorize-
|
|
2
|
+
import "../../../../../types-CZgK3EMW.mjs";
|
|
3
|
+
import { a as unwrapResult, t as apiError } from "../../../../../error-rVGiqWDt.mjs";
|
|
4
|
+
import { n as requirePerm } from "../../../../../authorize-BZnOGJFo.mjs";
|
|
5
5
|
|
|
6
6
|
//#region src/astro/routes/api/revisions/[revisionId]/index.ts
|
|
7
7
|
const prerender = false;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../../../../../base64-CmWvODNW.mjs";
|
|
2
|
-
import "../../../../../types-
|
|
3
|
-
import { a as unwrapResult, o as mapErrorStatus, t as apiError } from "../../../../../error-
|
|
4
|
-
import { t as requireOwnerPerm } from "../../../../../authorize-
|
|
2
|
+
import "../../../../../types-CZgK3EMW.mjs";
|
|
3
|
+
import { a as unwrapResult, o as mapErrorStatus, t as apiError } from "../../../../../error-rVGiqWDt.mjs";
|
|
4
|
+
import { t as requireOwnerPerm } from "../../../../../authorize-BZnOGJFo.mjs";
|
|
5
5
|
|
|
6
6
|
//#region src/astro/routes/api/revisions/[revisionId]/restore.ts
|
|
7
7
|
const prerender = false;
|