emdash 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/action-token-B1ds4laA.mjs +26 -0
- package/dist/action-token-B1ds4laA.mjs.map +1 -0
- package/dist/activation-sGF9br3X.mjs +387 -0
- package/dist/activation-sGF9br3X.mjs.map +1 -0
- package/dist/adapters-BOMSX9PU.d.mts +173 -0
- package/dist/adapters-BOMSX9PU.d.mts.map +1 -0
- package/dist/allowed-origins-CovsTkm3.mjs +116 -0
- package/dist/allowed-origins-CovsTkm3.mjs.map +1 -0
- package/dist/api/route-utils.d.mts +4 -4
- package/dist/api/route-utils.mjs +59 -57
- package/dist/api/route-utils.mjs.map +1 -1
- package/dist/api/schemas/index.d.mts +1 -1
- package/dist/api/schemas/index.mjs +11 -11
- package/dist/api-C_LxFnOm.mjs +5077 -0
- package/dist/api-C_LxFnOm.mjs.map +1 -0
- package/dist/api-tokens-DQ9Ee-vP.mjs +173 -0
- package/dist/api-tokens-DQ9Ee-vP.mjs.map +1 -0
- package/dist/apply-CLjfxvyH.mjs +1758 -0
- package/dist/apply-CLjfxvyH.mjs.map +1 -0
- package/dist/approvals-ocK89i4H.mjs +460 -0
- package/dist/approvals-ocK89i4H.mjs.map +1 -0
- package/dist/artifact-fetch-CgvvpoWQ.mjs +659 -0
- package/dist/artifact-fetch-CgvvpoWQ.mjs.map +1 -0
- package/dist/artifacts-DwOYYBQm.mjs +323 -0
- package/dist/artifacts-DwOYYBQm.mjs.map +1 -0
- package/dist/astro/image-endpoint.mjs +12 -2
- package/dist/astro/image-endpoint.mjs.map +1 -1
- package/dist/astro/index.d.mts +14 -14
- package/dist/astro/index.mjs +23 -12
- package/dist/astro/index.mjs.map +1 -1
- package/dist/astro/middleware/auth.d.mts +12 -12
- package/dist/astro/middleware/auth.mjs +10 -10
- package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
- package/dist/astro/middleware/redirect.d.mts.map +1 -1
- package/dist/astro/middleware/redirect.mjs +128 -48
- package/dist/astro/middleware/redirect.mjs.map +1 -1
- package/dist/astro/middleware/request-context.d.mts.map +1 -1
- package/dist/astro/middleware/request-context.mjs +12 -8
- package/dist/astro/middleware/request-context.mjs.map +1 -1
- package/dist/astro/middleware/setup.mjs +1 -1
- package/dist/astro/middleware.d.mts +12 -12
- package/dist/astro/middleware.d.mts.map +1 -1
- package/dist/astro/middleware.mjs +134 -124
- package/dist/astro/middleware.mjs.map +1 -1
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +16 -16
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +16 -16
- package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +6 -6
- package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -7
- package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +7 -7
- package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +19 -19
- package/dist/astro/routes/api/admin/byline-fields/index.mjs +19 -19
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +19 -19
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +29 -28
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +29 -28
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/admin/bylines/index.mjs +29 -28
- package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +21 -21
- package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -8
- package/dist/astro/routes/api/admin/comments/bulk.mjs +20 -20
- package/dist/astro/routes/api/admin/comments/counts.mjs +8 -8
- package/dist/astro/routes/api/admin/comments/index.mjs +20 -20
- package/dist/astro/routes/api/admin/core-update.mjs +7 -7
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
- package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
- package/dist/astro/routes/api/admin/media-usage/activation.mjs +22 -22
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +23 -23
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +23 -23
- package/dist/astro/routes/api/admin/media-usage/progress.mjs +27 -26
- package/dist/astro/routes/api/admin/media-usage/progress.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/repair.mjs +33 -32
- package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/work/index.mjs +23 -23
- package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +23 -23
- package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +8 -8
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +8 -8
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +81 -79
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +7 -7
- package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +80 -78
- package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +80 -78
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +91 -89
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/index.mjs +81 -79
- package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +7 -7
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +80 -78
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +90 -88
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +80 -78
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +80 -78
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +92 -90
- package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +9 -9
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs +82 -80
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +7 -7
- package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +81 -79
- package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/updates.mjs +80 -78
- package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
- package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +6 -6
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +80 -78
- 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 +7 -7
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +80 -78
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/_...path_.mjs +4 -4
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +45 -43
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +45 -43
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +47 -45
- package/dist/astro/routes/api/admin/transfer/approvals/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/capabilities.mjs +47 -45
- package/dist/astro/routes/api/admin/transfer/capabilities.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +47 -45
- package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +48 -46
- package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +48 -46
- package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +47 -45
- package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +48 -46
- package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/index.mjs +49 -47
- package/dist/astro/routes/api/admin/transfer/exports/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +47 -45
- package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +47 -45
- package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +49 -47
- package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +47 -45
- package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +49 -47
- package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +47 -45
- package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +47 -45
- package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +49 -47
- package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +47 -45
- package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +47 -45
- package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/index.mjs +49 -47
- package/dist/astro/routes/api/admin/transfer/imports/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs +5 -5
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs +4 -4
- package/dist/astro/routes/api/admin/users/_id_/index.mjs +17 -17
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
- package/dist/astro/routes/api/admin/users/index.mjs +16 -16
- package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
- package/dist/astro/routes/api/auth/handover.mjs +6 -6
- package/dist/astro/routes/api/auth/invite/accept.mjs +4 -4
- package/dist/astro/routes/api/auth/invite/complete.mjs +21 -21
- package/dist/astro/routes/api/auth/invite/index.mjs +18 -18
- package/dist/astro/routes/api/auth/invite/register-options.mjs +19 -19
- package/dist/astro/routes/api/auth/logout.mjs +5 -5
- package/dist/astro/routes/api/auth/magic-link/send.mjs +20 -20
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +17 -17
- package/dist/astro/routes/api/auth/me.mjs +17 -17
- package/dist/astro/routes/api/auth/mode.mjs +5 -5
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +8 -8
- package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
- package/dist/astro/routes/api/auth/passkey/_id_.mjs +16 -16
- package/dist/astro/routes/api/auth/passkey/index.mjs +4 -4
- package/dist/astro/routes/api/auth/passkey/options.mjs +21 -21
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +19 -19
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +20 -20
- package/dist/astro/routes/api/auth/passkey/verify.mjs +21 -21
- package/dist/astro/routes/api/auth/signup/complete.mjs +21 -21
- package/dist/astro/routes/api/auth/signup/request.mjs +19 -19
- package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
- package/dist/astro/routes/api/calendar.mjs +17 -17
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +13 -13
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +21 -21
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +20 -20
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +19 -19
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +6 -6
- package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +12 -12
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +36 -35
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +20 -20
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +40 -39
- 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 +40 -39
- 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 +6 -6
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +20 -20
- 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 +40 -32
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/translations.d.mts.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +9 -5
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +20 -20
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +20 -20
- package/dist/astro/routes/api/content/_collection_/authors.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/index.mjs +17 -17
- package/dist/astro/routes/api/content/_collection_/trash.mjs +17 -17
- package/dist/astro/routes/api/dashboard.mjs +21 -15
- package/dist/astro/routes/api/dashboard.mjs.map +1 -1
- package/dist/astro/routes/api/dev/emails.mjs +5 -5
- package/dist/astro/routes/api/dev/scheduled-tasks.mjs +119 -117
- package/dist/astro/routes/api/dev/scheduled-tasks.mjs.map +1 -1
- package/dist/astro/routes/api/health.mjs +6 -6
- package/dist/astro/routes/api/import/probe.d.mts +3 -3
- package/dist/astro/routes/api/import/probe.mjs +31 -29
- package/dist/astro/routes/api/import/probe.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +8 -8
- package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -13
- package/dist/astro/routes/api/import/wordpress/execute.mjs +31 -30
- package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
- package/dist/astro/routes/api/import/wordpress/media.mjs +21 -21
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +22 -22
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +32 -31
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +31 -29
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +42 -40
- 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.mjs +117 -100
- package/dist/astro/routes/api/mcp.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_/confirm.mjs +21 -21
- package/dist/astro/routes/api/media/_id_/replace.mjs +18 -18
- package/dist/astro/routes/api/media/_id_/upload.mjs +9 -9
- package/dist/astro/routes/api/media/_id_/usage.mjs +35 -34
- package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_.mjs +33 -32
- package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +6 -6
- package/dist/astro/routes/api/media/file/_...key_.mjs +21 -13
- package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
- package/dist/astro/routes/api/media/folders/_id_.mjs +18 -18
- package/dist/astro/routes/api/media/folders/index.mjs +18 -18
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +5 -5
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +5 -5
- package/dist/astro/routes/api/media/providers/index.mjs +5 -5
- package/dist/astro/routes/api/media/upload-url.mjs +20 -20
- package/dist/astro/routes/api/media.mjs +37 -36
- package/dist/astro/routes/api/media.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +22 -21
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/items.mjs +22 -21
- package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +22 -21
- package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/translations.mjs +22 -21
- package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_.mjs +22 -21
- package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/menus/index.mjs +22 -21
- package/dist/astro/routes/api/menus/index.mjs.map +1 -1
- package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
- package/dist/astro/routes/api/oauth/device/authorize.mjs +8 -8
- package/dist/astro/routes/api/oauth/device/code.mjs +11 -11
- package/dist/astro/routes/api/oauth/device/token.mjs +10 -10
- package/dist/astro/routes/api/oauth/register.mjs +7 -7
- package/dist/astro/routes/api/oauth/token/refresh.mjs +8 -8
- package/dist/astro/routes/api/oauth/token/revoke.mjs +8 -8
- package/dist/astro/routes/api/oauth/token.mjs +8 -8
- package/dist/astro/routes/api/openapi.json.mjs +22 -22
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +12 -12
- package/dist/astro/routes/api/redirects/404s/index.mjs +23 -22
- package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/404s/summary.mjs +23 -22
- package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/_id_.mjs +24 -23
- package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/index.mjs +24 -23
- package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
- package/dist/astro/routes/api/relations/_id_/index.mjs +40 -39
- package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/relations/index.mjs +40 -39
- package/dist/astro/routes/api/relations/index.mjs.map +1 -1
- package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +5 -5
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +19 -19
- package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +80 -78
- package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +80 -78
- package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
- package/dist/astro/routes/api/schema/block-types/index.mjs +80 -78
- package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +80 -78
- 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 +80 -78
- 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 +80 -78
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +80 -78
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/index.mjs +80 -78
- package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/reorder.mjs +80 -78
- package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/index.mjs +20 -19
- package/dist/astro/routes/api/schema/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +80 -78
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/schema/orphans/index.mjs +80 -78
- package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
- package/dist/astro/routes/api/search/enable.mjs +23 -22
- package/dist/astro/routes/api/search/enable.mjs.map +1 -1
- package/dist/astro/routes/api/search/index.mjs +22 -21
- package/dist/astro/routes/api/search/index.mjs.map +1 -1
- package/dist/astro/routes/api/search/rebuild.mjs +23 -22
- package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
- package/dist/astro/routes/api/search/stats.mjs +12 -11
- package/dist/astro/routes/api/search/stats.mjs.map +1 -1
- package/dist/astro/routes/api/search/suggest.mjs +22 -21
- package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
- package/dist/astro/routes/api/sections/_slug_.mjs +22 -21
- package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/sections/index.mjs +22 -21
- package/dist/astro/routes/api/sections/index.mjs.map +1 -1
- package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
- package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
- package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
- package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
- package/dist/astro/routes/api/settings/domain-notify.mjs +9 -9
- package/dist/astro/routes/api/settings/domain.mjs +22 -20
- package/dist/astro/routes/api/settings/domain.mjs.map +1 -1
- package/dist/astro/routes/api/settings/email.mjs +6 -6
- package/dist/astro/routes/api/settings.mjs +29 -27
- package/dist/astro/routes/api/settings.mjs.map +1 -1
- package/dist/astro/routes/api/setup/admin-verify.mjs +23 -23
- package/dist/astro/routes/api/setup/admin.mjs +20 -20
- package/dist/astro/routes/api/setup/dev-bypass.mjs +52 -50
- 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 +58 -56
- package/dist/astro/routes/api/setup/index.mjs.map +1 -1
- package/dist/astro/routes/api/setup/status.mjs +6 -6
- package/dist/astro/routes/api/site/domain-proof.mjs +16 -14
- package/dist/astro/routes/api/site/domain-proof.mjs.map +1 -1
- package/dist/astro/routes/api/snapshot.mjs +8 -8
- package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +30 -29
- package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +30 -29
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +30 -29
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +30 -29
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +28 -27
- package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_.mjs +30 -29
- package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +44 -43
- package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/index.mjs +30 -29
- package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
- package/dist/astro/routes/api/themes/preview.mjs +6 -6
- package/dist/astro/routes/api/typegen.mjs +6 -6
- package/dist/astro/routes/api/visual-editing/action-token.mjs +6 -6
- package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +21 -21
- package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +4 -4
- package/dist/astro/routes/api/well-known/auth.mjs +1 -1
- 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 +19 -19
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +24 -23
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +24 -23
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_.mjs +13 -12
- package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/index.mjs +24 -23
- package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
- package/dist/astro/routes/api/widget-components.mjs +5 -5
- package/dist/astro/routes/robots.txt.mjs +15 -13
- package/dist/astro/routes/robots.txt.mjs.map +1 -1
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +19 -17
- package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
- package/dist/astro/routes/sitemap.xml.mjs +16 -14
- package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
- package/dist/astro/types.d.mts +17 -17
- package/dist/audit-B8XE-0UV.mjs +127 -0
- package/dist/audit-B8XE-0UV.mjs.map +1 -0
- package/dist/auth/providers/github.d.mts +1 -1
- package/dist/auth/providers/google.d.mts +1 -1
- package/dist/auth/providers/microsoft.d.mts +1 -1
- package/dist/authoritative-records-LPtrIGOY.mjs +5183 -0
- package/dist/authoritative-records-LPtrIGOY.mjs.map +1 -0
- package/dist/authorize-CoDsRRp5.mjs +74 -0
- package/dist/authorize-CoDsRRp5.mjs.map +1 -0
- package/dist/backup-2Wj-hTCN.mjs +246 -0
- package/dist/backup-2Wj-hTCN.mjs.map +1 -0
- package/dist/block-types-C3gJEe7l.mjs +132 -0
- package/dist/block-types-C3gJEe7l.mjs.map +1 -0
- package/dist/block-values-CgbMtSGU.mjs +215 -0
- package/dist/block-values-CgbMtSGU.mjs.map +1 -0
- package/dist/byline-CzGZC2Zs.mjs +922 -0
- package/dist/byline-CzGZC2Zs.mjs.map +1 -0
- package/dist/byline-fields-B1qHvRps.mjs +280 -0
- package/dist/byline-fields-B1qHvRps.mjs.map +1 -0
- package/dist/byline-fields-vYd_4Q1e.mjs +123 -0
- package/dist/byline-fields-vYd_4Q1e.mjs.map +1 -0
- package/dist/byline-registry-BhzpO41z.mjs +406 -0
- package/dist/byline-registry-BhzpO41z.mjs.map +1 -0
- package/dist/bylines-BF555iIz.mjs +150 -0
- package/dist/bylines-BF555iIz.mjs.map +1 -0
- package/dist/bylines-DJx6IWWi.mjs +234 -0
- package/dist/bylines-DJx6IWWi.mjs.map +1 -0
- package/dist/cache-BWzswWB-.mjs +151 -0
- package/dist/cache-BWzswWB-.mjs.map +1 -0
- package/dist/canonical-DjF_z6GI.mjs +174 -0
- package/dist/canonical-DjF_z6GI.mjs.map +1 -0
- package/dist/capture-triggers-D7g3fOZj.mjs +362 -0
- package/dist/capture-triggers-D7g3fOZj.mjs.map +1 -0
- package/dist/challenge-store-Cfjdvw86.mjs +51 -0
- package/dist/challenge-store-Cfjdvw86.mjs.map +1 -0
- package/dist/checksum-BF4acJwn.mjs +162 -0
- package/dist/checksum-BF4acJwn.mjs.map +1 -0
- package/dist/chrome-tags-BDs29G3g.mjs +24 -0
- package/dist/chrome-tags-BDs29G3g.mjs.map +1 -0
- package/dist/chunks-CYBOL-zn.mjs +25 -0
- package/dist/chunks-CYBOL-zn.mjs.map +1 -0
- package/dist/cli/index.mjs +67 -65
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/cf-access.d.mts +1 -1
- package/dist/client/index.d.mts +48 -48
- package/dist/client/index.d.mts.map +1 -1
- package/dist/client/index.mjs +4 -3
- package/dist/client/index.mjs.map +1 -1
- package/dist/collection-slugs-cache-B2J5aESO.mjs +91 -0
- package/dist/collection-slugs-cache-B2J5aESO.mjs.map +1 -0
- package/dist/comment-DV7dybcs.mjs +335 -0
- package/dist/comment-DV7dybcs.mjs.map +1 -0
- package/dist/comment-reaction-CWwqiT6x.mjs +85 -0
- package/dist/comment-reaction-CWwqiT6x.mjs.map +1 -0
- package/dist/comments-DVjWJm8X.mjs +99 -0
- package/dist/comments-DVjWJm8X.mjs.map +1 -0
- package/dist/comments-Q-ILHCEI.mjs +195 -0
- package/dist/comments-Q-ILHCEI.mjs.map +1 -0
- package/dist/components-DnOmvvgg.mjs +112 -0
- package/dist/components-DnOmvvgg.mjs.map +1 -0
- package/dist/config-9IzA83_U.d.mts +6811 -0
- package/dist/config-9IzA83_U.d.mts.map +1 -0
- package/dist/config-BdQzFtmR.mjs +228 -0
- package/dist/config-BdQzFtmR.mjs.map +1 -0
- package/dist/config-Cs2RBkJ6.d.mts +41 -0
- package/dist/config-Cs2RBkJ6.d.mts.map +1 -0
- package/dist/config-Cs_AwWXI.mjs +106 -0
- package/dist/config-Cs_AwWXI.mjs.map +1 -0
- package/dist/connection-CiXgZyCY.mjs +36 -0
- package/dist/connection-CiXgZyCY.mjs.map +1 -0
- package/dist/content-Dt0Os_WQ.mjs +2109 -0
- package/dist/content-Dt0Os_WQ.mjs.map +1 -0
- package/dist/content-list-query-BK26u9Ly.d.mts +26 -0
- package/dist/content-list-query-BK26u9Ly.d.mts.map +1 -0
- package/dist/content-policy-BLDbNJOb.mjs +46 -0
- package/dist/content-policy-BLDbNJOb.mjs.map +1 -0
- package/dist/content-repair-CjwbLy4m.mjs +442 -0
- package/dist/content-repair-CjwbLy4m.mjs.map +1 -0
- package/dist/context-ErV7UdQY.mjs +2089 -0
- package/dist/context-ErV7UdQY.mjs.map +1 -0
- package/dist/credits-BRyjafiF.mjs +110 -0
- package/dist/credits-BRyjafiF.mjs.map +1 -0
- package/dist/cron-Bm5xa7tv.mjs +306 -0
- package/dist/cron-Bm5xa7tv.mjs.map +1 -0
- package/dist/dashboard-DVxQ5XiI.mjs +168 -0
- package/dist/dashboard-DVxQ5XiI.mjs.map +1 -0
- package/dist/database/migration-lock.mjs +1 -1
- package/dist/db/index.d.mts +3 -3
- package/dist/db/index.mjs +2 -2
- package/dist/db/libsql-migrations.d.mts +1 -1
- package/dist/db/libsql-migrations.mjs +5 -5
- package/dist/db/libsql.d.mts +1 -1
- package/dist/db/postgres-migrations.d.mts +1 -1
- package/dist/db/postgres-migrations.mjs +5 -5
- package/dist/db/postgres.d.mts +1 -1
- package/dist/db/sqlite-migrations.d.mts +1 -1
- package/dist/db/sqlite-migrations.mjs +5 -5
- package/dist/db/sqlite.d.mts +1 -1
- package/dist/db/sqlite.mjs +1 -1
- package/dist/db-errors-unnO6yiZ.mjs +65 -0
- package/dist/db-errors-unnO6yiZ.mjs.map +1 -0
- package/dist/default-B9Tf2n94.mjs +81 -0
- package/dist/default-B9Tf2n94.mjs.map +1 -0
- package/dist/deferred-tasks-CpPEqsga.d.mts +9 -0
- package/dist/deferred-tasks-CpPEqsga.d.mts.map +1 -0
- package/dist/destination-DR3IHjmy.mjs +18 -0
- package/dist/destination-DR3IHjmy.mjs.map +1 -0
- package/dist/dev-typegen-ZeWYV8Jp.mjs +29 -0
- package/dist/dev-typegen-ZeWYV8Jp.mjs.map +1 -0
- package/dist/device-flow-BbYNZ9Xi.mjs +521 -0
- package/dist/device-flow-BbYNZ9Xi.mjs.map +1 -0
- package/dist/digest-DlBa7kJl.mjs +194 -0
- package/dist/digest-DlBa7kJl.mjs.map +1 -0
- package/dist/direct-executor-5T8gkhvA.mjs +117 -0
- package/dist/direct-executor-5T8gkhvA.mjs.map +1 -0
- package/dist/dist-DY0aOmAP.mjs +810 -0
- package/dist/dist-DY0aOmAP.mjs.map +1 -0
- package/dist/email-console-v3OM8It-.mjs +50 -0
- package/dist/email-console-v3OM8It-.mjs.map +1 -0
- package/dist/email-locale-CoZo-oZx.mjs +25 -0
- package/dist/email-locale-CoZo-oZx.mjs.map +1 -0
- package/dist/emdash-runtime-DwezbIqQ.mjs +4392 -0
- package/dist/emdash-runtime-DwezbIqQ.mjs.map +1 -0
- package/dist/enrich-C3XIJi0O.mjs +194 -0
- package/dist/enrich-C3XIJi0O.mjs.map +1 -0
- package/dist/entry-lock-CY7XpdSw.d.mts +4568 -0
- package/dist/entry-lock-CY7XpdSw.d.mts.map +1 -0
- package/dist/entry-lock-DDuWaAiP.mjs +1211 -0
- package/dist/entry-lock-DDuWaAiP.mjs.map +1 -0
- package/dist/entry-lock-D_Og9Gy3.mjs +163 -0
- package/dist/entry-lock-D_Og9Gy3.mjs.map +1 -0
- package/dist/entry-locks-Cp8_BcQQ.mjs +167 -0
- package/dist/entry-locks-Cp8_BcQQ.mjs.map +1 -0
- package/dist/env-types-Br8uywYA.mjs +38 -0
- package/dist/env-types-Br8uywYA.mjs.map +1 -0
- package/dist/error-CT2SsX5S.mjs +90 -0
- package/dist/error-CT2SsX5S.mjs.map +1 -0
- package/dist/errors-BMaCpLeS.mjs +479 -0
- package/dist/errors-BMaCpLeS.mjs.map +1 -0
- package/dist/errors-DlJwot7q.mjs +120 -0
- package/dist/errors-DlJwot7q.mjs.map +1 -0
- package/dist/escape-BfbDyuQ-.mjs +9 -0
- package/dist/escape-BfbDyuQ-.mjs.map +1 -0
- package/dist/fence-BOD3SxZG.mjs +162 -0
- package/dist/fence-BOD3SxZG.mjs.map +1 -0
- package/dist/field-defs-cache-C7sR7ZeU.mjs +77 -0
- package/dist/field-defs-cache-C7sR7ZeU.mjs.map +1 -0
- package/dist/field-map-C_rDXfdJ.mjs +84 -0
- package/dist/field-map-C_rDXfdJ.mjs.map +1 -0
- package/dist/focal-point-CgCcr1Ca.mjs +23 -0
- package/dist/focal-point-CgCcr1Ca.mjs.map +1 -0
- package/dist/fts-manager-BzFo0xx6.mjs +483 -0
- package/dist/fts-manager-BzFo0xx6.mjs.map +1 -0
- package/dist/gc-B_c3DPpi.mjs +75 -0
- package/dist/gc-B_c3DPpi.mjs.map +1 -0
- package/dist/hash-A-o2ZX8O.mjs +37 -0
- package/dist/hash-A-o2ZX8O.mjs.map +1 -0
- package/dist/hook-result-f8t7hIuu.d.mts +31 -0
- package/dist/hook-result-f8t7hIuu.d.mts.map +1 -0
- package/dist/hreflang-BpUK9Lcu.mjs +105 -0
- package/dist/hreflang-BpUK9Lcu.mjs.map +1 -0
- package/dist/hreflang-D07R-RbI.d.mts +50 -0
- package/dist/hreflang-D07R-RbI.d.mts.map +1 -0
- package/dist/http-route-dispatch-C2Ep2Uf6.mjs +342 -0
- package/dist/http-route-dispatch-C2Ep2Uf6.mjs.map +1 -0
- package/dist/identity-BivQ8wkV.mjs +35 -0
- package/dist/identity-BivQ8wkV.mjs.map +1 -0
- package/dist/import-B4UvHNJz.mjs +2126 -0
- package/dist/import-B4UvHNJz.mjs.map +1 -0
- package/dist/index-C37Ty40w.d.mts +623 -0
- package/dist/index-C37Ty40w.d.mts.map +1 -0
- package/dist/index.d.mts +23 -23
- package/dist/index.mjs +112 -110
- package/dist/install-finalization-BbYaB4wj.mjs +58 -0
- package/dist/install-finalization-BbYaB4wj.mjs.map +1 -0
- package/dist/json-recordset-BjYIWFkV.mjs +12 -0
- package/dist/json-recordset-BjYIWFkV.mjs.map +1 -0
- package/dist/json-schema-Cde7le0s.mjs +15 -0
- package/dist/json-schema-Cde7le0s.mjs.map +1 -0
- package/dist/keys-CusTXpw-.mjs +61 -0
- package/dist/keys-CusTXpw-.mjs.map +1 -0
- package/dist/kinds-DogmNB6n.mjs +974 -0
- package/dist/kinds-DogmNB6n.mjs.map +1 -0
- package/dist/lifecycle-BLCoCz4T.mjs +25 -0
- package/dist/lifecycle-BLCoCz4T.mjs.map +1 -0
- package/dist/load-Dds3KhXr.mjs +28 -0
- package/dist/load-Dds3KhXr.mjs.map +1 -0
- package/dist/loader-D4w4XE7q.mjs +1420 -0
- package/dist/loader-D4w4XE7q.mjs.map +1 -0
- package/dist/loops-IYgzQdQu.mjs +205 -0
- package/dist/loops-IYgzQdQu.mjs.map +1 -0
- package/dist/manifest-builder-CGF5kujD.mjs +196 -0
- package/dist/manifest-builder-CGF5kujD.mjs.map +1 -0
- package/dist/manifest-schema-B0BxPSjB.mjs +497 -0
- package/dist/manifest-schema-B0BxPSjB.mjs.map +1 -0
- package/dist/marketplace-DNvEGLqU.mjs +257 -0
- package/dist/marketplace-DNvEGLqU.mjs.map +1 -0
- package/dist/media/image-endpoint.d.mts +3 -2
- package/dist/media/image-endpoint.d.mts.map +1 -1
- package/dist/media/image-endpoint.mjs +17 -8
- package/dist/media/image-endpoint.mjs.map +1 -1
- package/dist/media/index.d.mts +1 -1
- package/dist/media/index.mjs +7 -6
- package/dist/media/index.mjs.map +1 -1
- package/dist/media/local-runtime.d.mts +14 -14
- package/dist/media/local-runtime.d.mts.map +1 -1
- package/dist/media/local-runtime.mjs +18 -13
- package/dist/media/local-runtime.mjs.map +1 -1
- package/dist/media-BL9MRrSG.mjs +294 -0
- package/dist/media-BL9MRrSG.mjs.map +1 -0
- package/dist/media-B_x5B9EA.mjs +373 -0
- package/dist/media-B_x5B9EA.mjs.map +1 -0
- package/dist/media-allowlist-CpmqBbIQ.mjs +45 -0
- package/dist/media-allowlist-CpmqBbIQ.mjs.map +1 -0
- package/dist/media-folders-CNs_A_B-.mjs +210 -0
- package/dist/media-folders-CNs_A_B-.mjs.map +1 -0
- package/dist/media-qTTHVkls.mjs +416 -0
- package/dist/media-qTTHVkls.mjs.map +1 -0
- package/dist/media-url-GJboA1fl.mjs +43 -0
- package/dist/media-url-GJboA1fl.mjs.map +1 -0
- package/dist/media-usage-ClWgrX0d.mjs +282 -0
- package/dist/media-usage-ClWgrX0d.mjs.map +1 -0
- package/dist/media-usage-activation-B8Fjtq0h.mjs +78 -0
- package/dist/media-usage-activation-B8Fjtq0h.mjs.map +1 -0
- package/dist/media-usage-work-L8-Au4j-.mjs +1036 -0
- package/dist/media-usage-work-L8-Au4j-.mjs.map +1 -0
- package/dist/media-usage-work-LXgze5j9.mjs +151 -0
- package/dist/media-usage-work-LXgze5j9.mjs.map +1 -0
- package/dist/menus-BAxcbsbv.mjs +818 -0
- package/dist/menus-BAxcbsbv.mjs.map +1 -0
- package/dist/menus-BI6oBXco.mjs +92 -0
- package/dist/menus-BI6oBXco.mjs.map +1 -0
- package/dist/menus-fvGFd4m6.mjs +3725 -0
- package/dist/menus-fvGFd4m6.mjs.map +1 -0
- package/dist/migrations/index.d.mts +1 -1
- package/dist/migrations/index.mjs +4 -4
- package/dist/mime-DwhtRyUt.mjs +81 -0
- package/dist/mime-DwhtRyUt.mjs.map +1 -0
- package/dist/mode-DIDSUwuN.mjs +23 -0
- package/dist/mode-DIDSUwuN.mjs.map +1 -0
- package/dist/node-sqlite-compat-Ddr_mlR9.mjs +63 -0
- package/dist/node-sqlite-compat-Ddr_mlR9.mjs.map +1 -0
- package/dist/normalize-Ip_hFAm8.mjs +216 -0
- package/dist/normalize-Ip_hFAm8.mjs.map +1 -0
- package/dist/oauth-authorization-CcMgeT8R.mjs +274 -0
- package/dist/oauth-authorization-CcMgeT8R.mjs.map +1 -0
- package/dist/oauth-clients-C_osi0PU.mjs +266 -0
- package/dist/oauth-clients-C_osi0PU.mjs.map +1 -0
- package/dist/oauth-state-store-DGLP-6CK.mjs +50 -0
- package/dist/oauth-state-store-DGLP-6CK.mjs.map +1 -0
- package/dist/oauth-user-lookup-z77Ee0Hm.mjs +26 -0
- package/dist/oauth-user-lookup-z77Ee0Hm.mjs.map +1 -0
- package/dist/object-cache/memory.d.mts +1 -1
- package/dist/object-cache-EjasjtoQ.mjs +586 -0
- package/dist/object-cache-EjasjtoQ.mjs.map +1 -0
- package/dist/options-CmUpkyKW.d.mts +81 -0
- package/dist/options-CmUpkyKW.d.mts.map +1 -0
- package/dist/ownership-DCk5NutQ.mjs +12 -0
- package/dist/ownership-DCk5NutQ.mjs.map +1 -0
- package/dist/page/index.d.mts +2 -2
- package/dist/page/index.mjs +14 -12
- package/dist/page/index.mjs.map +1 -1
- package/dist/parse-2W-E2f7w.mjs +81 -0
- package/dist/parse-2W-E2f7w.mjs.map +1 -0
- package/dist/parse-6pN8Xqg5.d.mts +176 -0
- package/dist/parse-6pN8Xqg5.d.mts.map +1 -0
- package/dist/passkey-config-DTTZB6EI.mjs +46 -0
- package/dist/passkey-config-DTTZB6EI.mjs.map +1 -0
- package/dist/paths-CQA62503.mjs +77 -0
- package/dist/paths-CQA62503.mjs.map +1 -0
- package/dist/patterns-CryGz_EV.mjs +159 -0
- package/dist/patterns-CryGz_EV.mjs.map +1 -0
- package/dist/placeholder-BlfXkucE.d.mts +313 -0
- package/dist/placeholder-BlfXkucE.d.mts.map +1 -0
- package/dist/plan-B95eiwnF.mjs +135 -0
- package/dist/plan-B95eiwnF.mjs.map +1 -0
- package/dist/plugin-test-runtime.d.mts +14 -14
- package/dist/plugin-test-runtime.d.mts.map +1 -1
- package/dist/plugin-test-runtime.mjs +121 -119
- package/dist/plugin-tool-name-BDA7m4Xa.mjs +27 -0
- package/dist/plugin-tool-name-BDA7m4Xa.mjs.map +1 -0
- package/dist/plugin-types.d.mts +2 -2
- package/dist/plugin-utils.d.mts +12 -12
- package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
- package/dist/plugins/adapt-sandbox-entry.mjs +4 -4
- package/dist/plugins/host.d.mts +5 -5
- package/dist/plugins/host.mjs +57 -55
- package/dist/plugins-BhxLJ008.mjs +261 -0
- package/dist/plugins-BhxLJ008.mjs.map +1 -0
- package/dist/policy-DOJ2sPqB.mjs +53 -0
- package/dist/policy-DOJ2sPqB.mjs.map +1 -0
- package/dist/portable-text-RCMpCj47.mjs +311 -0
- package/dist/portable-text-RCMpCj47.mjs.map +1 -0
- package/dist/preview-DFwL5APO.mjs +107 -0
- package/dist/preview-DFwL5APO.mjs.map +1 -0
- package/dist/protocol-B-ztxp_y.d.mts +65 -0
- package/dist/protocol-B-ztxp_y.d.mts.map +1 -0
- package/dist/public-plugin-api-routes-ik4fPZMv.mjs +316 -0
- package/dist/public-plugin-api-routes-ik4fPZMv.mjs.map +1 -0
- package/dist/public-submission-C5JZIykp.mjs +251 -0
- package/dist/public-submission-C5JZIykp.mjs.map +1 -0
- package/dist/public-url-CQwzRljH.mjs +101 -0
- package/dist/public-url-CQwzRljH.mjs.map +1 -0
- package/dist/query-BFHjCzSh.mjs +37 -0
- package/dist/query-BFHjCzSh.mjs.map +1 -0
- package/dist/query-DuwyFr5Z.mjs +41 -0
- package/dist/query-DuwyFr5Z.mjs.map +1 -0
- package/dist/query-eR_Nz70M.mjs +1157 -0
- package/dist/query-eR_Nz70M.mjs.map +1 -0
- package/dist/range-BQWPjWgQ.mjs +51 -0
- package/dist/range-BQWPjWgQ.mjs.map +1 -0
- package/dist/rate-limit-mPKeQ3sm.mjs +127 -0
- package/dist/rate-limit-mPKeQ3sm.mjs.map +1 -0
- package/dist/receipt-CmUpyuW5.mjs +43 -0
- package/dist/receipt-CmUpyuW5.mjs.map +1 -0
- package/dist/redirect-BtiMkehU.mjs +19 -0
- package/dist/redirect-BtiMkehU.mjs.map +1 -0
- package/dist/redirect-DcmNMvOs.mjs +423 -0
- package/dist/redirect-DcmNMvOs.mjs.map +1 -0
- package/dist/redirect-paths-K5i3xYfR.mjs +36 -0
- package/dist/redirect-paths-K5i3xYfR.mjs.map +1 -0
- package/dist/redirects-BA_TvtuH.mjs +148 -0
- package/dist/redirects-BA_TvtuH.mjs.map +1 -0
- package/dist/redirects-BIrRvgn4.mjs +446 -0
- package/dist/redirects-BIrRvgn4.mjs.map +1 -0
- package/dist/registry/testing.mjs +3 -3
- package/dist/registry-DymfZkAN.mjs +8374 -0
- package/dist/registry-DymfZkAN.mjs.map +1 -0
- package/dist/relations-DrEs3Sc1.mjs +789 -0
- package/dist/relations-DrEs3Sc1.mjs.map +1 -0
- package/dist/request-cache-5z2WzWmh.mjs +104 -0
- package/dist/request-cache-5z2WzWmh.mjs.map +1 -0
- package/dist/request-context.d.mts +12 -1
- package/dist/request-context.d.mts.map +1 -1
- package/dist/request-context.mjs.map +1 -1
- package/dist/request-meta-o8RIf9pa.mjs +141 -0
- package/dist/request-meta-o8RIf9pa.mjs.map +1 -0
- package/dist/resolve-CVy9xgy_.mjs +102 -0
- package/dist/resolve-CVy9xgy_.mjs.map +1 -0
- package/dist/resolve-DdNXBJSr.mjs +199 -0
- package/dist/resolve-DdNXBJSr.mjs.map +1 -0
- package/dist/revision-Dx7Uth1X.mjs +374 -0
- package/dist/revision-Dx7Uth1X.mjs.map +1 -0
- package/dist/route-cache-DAG5dPhh.mjs +20 -0
- package/dist/route-cache-DAG5dPhh.mjs.map +1 -0
- package/dist/route-wire-Xbsu8Vih.mjs +197 -0
- package/dist/route-wire-Xbsu8Vih.mjs.map +1 -0
- package/dist/routes-YQkSOsws.mjs +272 -0
- package/dist/routes-YQkSOsws.mjs.map +1 -0
- package/dist/runner-CLorw5vo.mjs +6669 -0
- package/dist/runner-CLorw5vo.mjs.map +1 -0
- package/dist/runner-g1A9P-wD.d.mts +73 -0
- package/dist/runner-g1A9P-wD.d.mts.map +1 -0
- package/dist/runtime.d.mts +13 -13
- package/dist/runtime.mjs +6 -5
- package/dist/runtime.mjs.map +1 -1
- package/dist/schema/project-env-types.mjs +49 -47
- package/dist/schema/project-env-types.mjs.map +1 -1
- package/dist/schema-Bss8qImF.mjs +13 -0
- package/dist/schema-Bss8qImF.mjs.map +1 -0
- package/dist/schema-C036pqEw.mjs +815 -0
- package/dist/schema-C036pqEw.mjs.map +1 -0
- package/dist/scopes-C_SoYl9x.mjs +34 -0
- package/dist/scopes-C_SoYl9x.mjs.map +1 -0
- package/dist/search-uNqCgePJ.mjs +450 -0
- package/dist/search-uNqCgePJ.mjs.map +1 -0
- package/dist/sections-BLusMa96.mjs +346 -0
- package/dist/sections-BLusMa96.mjs.map +1 -0
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +47 -45
- package/dist/seo/index.d.mts +3 -3
- package/dist/seo/index.mjs +32 -30
- package/dist/seo/index.mjs.map +1 -1
- package/dist/seo-BodxIpws.mjs +188 -0
- package/dist/seo-BodxIpws.mjs.map +1 -0
- package/dist/seo-DaMYIQY8.mjs +133 -0
- package/dist/seo-DaMYIQY8.mjs.map +1 -0
- package/dist/service-BuM1BRsA.mjs +150 -0
- package/dist/service-BuM1BRsA.mjs.map +1 -0
- package/dist/session-user-2DpQDMKw.mjs +61 -0
- package/dist/session-user-2DpQDMKw.mjs.map +1 -0
- package/dist/settings-B3ZmPF_8.mjs +73 -0
- package/dist/settings-B3ZmPF_8.mjs.map +1 -0
- package/dist/settings-P5hwPX6_.mjs +66 -0
- package/dist/settings-P5hwPX6_.mjs.map +1 -0
- package/dist/settings-yIqoN-Ok.mjs +519 -0
- package/dist/settings-yIqoN-Ok.mjs.map +1 -0
- package/dist/setup-complete-eu6MUQnt.mjs +65 -0
- package/dist/setup-complete-eu6MUQnt.mjs.map +1 -0
- package/dist/setup-nonce-CyPOapqY.mjs +25 -0
- package/dist/setup-nonce-CyPOapqY.mjs.map +1 -0
- package/dist/site-domain-8lEJl_0U.mjs +131 -0
- package/dist/site-domain-8lEJl_0U.mjs.map +1 -0
- package/dist/site-settings-uPkW0e6o.mjs +50 -0
- package/dist/site-settings-uPkW0e6o.mjs.map +1 -0
- package/dist/site-url-25SGVXwL.mjs +45 -0
- package/dist/site-url-25SGVXwL.mjs.map +1 -0
- package/dist/sitemap-name-DTK7CYnY.mjs +26 -0
- package/dist/sitemap-name-DTK7CYnY.mjs.map +1 -0
- package/dist/slug-BEDl2IJY.mjs +16 -0
- package/dist/slug-BEDl2IJY.mjs.map +1 -0
- package/dist/slugify-BDEG9pLk.mjs +22 -0
- package/dist/slugify-BDEG9pLk.mjs.map +1 -0
- package/dist/snapshot-CvkIBRLY.mjs +414 -0
- package/dist/snapshot-CvkIBRLY.mjs.map +1 -0
- package/dist/ssrf-mcCKMH6B.mjs +406 -0
- package/dist/ssrf-mcCKMH6B.mjs.map +1 -0
- package/dist/stage-BQfGzGOy.mjs +662 -0
- package/dist/stage-BQfGzGOy.mjs.map +1 -0
- package/dist/staged-B5vQGeSf.mjs +686 -0
- package/dist/staged-B5vQGeSf.mjs.map +1 -0
- package/dist/state-dO6t6OxV.mjs +178 -0
- package/dist/state-dO6t6OxV.mjs.map +1 -0
- package/dist/status-DSURZwKS.mjs +30 -0
- package/dist/status-DSURZwKS.mjs.map +1 -0
- package/dist/storage/local.d.mts +1 -1
- package/dist/storage/local.mjs +2 -2
- package/dist/storage/s3.d.mts +1 -1
- package/dist/storage/s3.mjs +1 -1
- package/dist/storage-query-Cy0SZ8iG.d.mts +1619 -0
- package/dist/storage-query-Cy0SZ8iG.d.mts.map +1 -0
- package/dist/tar-DWzcUZ_Q.mjs +449 -0
- package/dist/tar-DWzcUZ_Q.mjs.map +1 -0
- package/dist/target-C9htUbrT.mjs +27 -0
- package/dist/target-C9htUbrT.mjs.map +1 -0
- package/dist/taxonomies-By2aGvq2.mjs +729 -0
- package/dist/taxonomies-By2aGvq2.mjs.map +1 -0
- package/dist/taxonomies-CVRd_jz0.mjs +937 -0
- package/dist/taxonomies-CVRd_jz0.mjs.map +1 -0
- package/dist/taxonomy-BG_xu2Qf.mjs +563 -0
- package/dist/taxonomy-BG_xu2Qf.mjs.map +1 -0
- package/dist/tokens-U5vzgSrM.mjs +171 -0
- package/dist/tokens-U5vzgSrM.mjs.map +1 -0
- package/dist/transaction-CkoQ5wqQ.mjs +29 -0
- package/dist/transaction-CkoQ5wqQ.mjs.map +1 -0
- package/dist/transfer-DA0OSfaT.mjs +8873 -0
- package/dist/transfer-DA0OSfaT.mjs.map +1 -0
- package/dist/transfer-Pyf3d7ka.mjs +166 -0
- package/dist/transfer-Pyf3d7ka.mjs.map +1 -0
- package/dist/transfer-download-cX7SuWEy.mjs +33 -0
- package/dist/transfer-download-cX7SuWEy.mjs.map +1 -0
- package/dist/transformations-DczubD4j.mjs +196 -0
- package/dist/transformations-DczubD4j.mjs.map +1 -0
- package/dist/transport-Dm5QzpT_.d.mts +42 -0
- package/dist/transport-Dm5QzpT_.d.mts.map +1 -0
- package/dist/transport-DtIrjEFO.mjs +137 -0
- package/dist/transport-DtIrjEFO.mjs.map +1 -0
- package/dist/trusted-proxy-CDRd5Kmw.mjs +51 -0
- package/dist/trusted-proxy-CDRd5Kmw.mjs.map +1 -0
- package/dist/turnstile-Ct5YuFNY.mjs +58 -0
- package/dist/turnstile-Ct5YuFNY.mjs.map +1 -0
- package/dist/types-Bgujop4S.d.mts +374 -0
- package/dist/types-Bgujop4S.d.mts.map +1 -0
- package/dist/types-BirHUEXt.mjs +18 -0
- package/dist/types-BirHUEXt.mjs.map +1 -0
- package/dist/types-BqJgTL_y.d.mts +293 -0
- package/dist/types-BqJgTL_y.d.mts.map +1 -0
- package/dist/types-C-lrOt9T.d.mts +87 -0
- package/dist/types-C-lrOt9T.d.mts.map +1 -0
- package/dist/types-CCEHAhOv.d.mts +916 -0
- package/dist/types-CCEHAhOv.d.mts.map +1 -0
- package/dist/types-CLVwYRBr.d.mts +227 -0
- package/dist/types-CLVwYRBr.d.mts.map +1 -0
- package/dist/types-C_asjp1J.mjs +201 -0
- package/dist/types-C_asjp1J.mjs.map +1 -0
- package/dist/types-CadaL_k8.d.mts +366 -0
- package/dist/types-CadaL_k8.d.mts.map +1 -0
- package/dist/types-DVbTb4Hk.mjs +77 -0
- package/dist/types-DVbTb4Hk.mjs.map +1 -0
- package/dist/types-Ddku19Zw.d.mts +209 -0
- package/dist/types-Ddku19Zw.d.mts.map +1 -0
- package/dist/types-DwhEvIVb.mjs +133 -0
- package/dist/types-DwhEvIVb.mjs.map +1 -0
- package/dist/types-FIiGQ3PE.mjs +16 -0
- package/dist/types-FIiGQ3PE.mjs.map +1 -0
- package/dist/types-OauzCOY0.mjs +37 -0
- package/dist/types-OauzCOY0.mjs.map +1 -0
- package/dist/types-mQGTpP-4.d.mts +1741 -0
- package/dist/types-mQGTpP-4.d.mts.map +1 -0
- package/dist/types-nbjz3Mgm.d.mts +125 -0
- package/dist/types-nbjz3Mgm.d.mts.map +1 -0
- package/dist/update-check-hW32-0pf.mjs +161 -0
- package/dist/update-check-hW32-0pf.mjs.map +1 -0
- package/dist/upload-attempts-Bpik1TLF.mjs +32 -0
- package/dist/upload-attempts-Bpik1TLF.mjs.map +1 -0
- package/dist/url-DTfGDJhI.mjs +104 -0
- package/dist/url-DTfGDJhI.mjs.map +1 -0
- package/dist/url-pattern-CJeCyNij.mjs +41 -0
- package/dist/url-pattern-CJeCyNij.mjs.map +1 -0
- package/dist/user-nQInBZbE.mjs +171 -0
- package/dist/user-nQInBZbE.mjs.map +1 -0
- package/dist/utils-govudc_U.mjs +442 -0
- package/dist/utils-govudc_U.mjs.map +1 -0
- package/dist/validate-BxLvcDYh.mjs +524 -0
- package/dist/validate-BxLvcDYh.mjs.map +1 -0
- package/dist/validate-mnoVfASU.d.mts +468 -0
- package/dist/validate-mnoVfASU.d.mts.map +1 -0
- package/dist/validation-DQDEvh87.mjs +221 -0
- package/dist/validation-DQDEvh87.mjs.map +1 -0
- package/dist/version-BOFfLiVT.mjs +49 -0
- package/dist/version-BOFfLiVT.mjs.map +1 -0
- package/dist/version-Dcvx_C9g.mjs +7 -0
- package/dist/version-Dcvx_C9g.mjs.map +1 -0
- package/dist/version-DzTJ3gD7.mjs +9 -0
- package/dist/version-DzTJ3gD7.mjs.map +1 -0
- package/dist/video-BX7AI5nJ.mjs +54 -0
- package/dist/video-BX7AI5nJ.mjs.map +1 -0
- package/dist/virtual-modules-CU29aip9.mjs +515 -0
- package/dist/virtual-modules-CU29aip9.mjs.map +1 -0
- package/dist/widgets-HIeFmZxt.mjs +121 -0
- package/dist/widgets-HIeFmZxt.mjs.map +1 -0
- package/dist/wxr-taxonomies-Dy2i2ON3.d.mts +34 -0
- package/dist/wxr-taxonomies-Dy2i2ON3.d.mts.map +1 -0
- package/dist/wxr-taxonomies-DyOGhl8W.mjs +454 -0
- package/dist/wxr-taxonomies-DyOGhl8W.mjs.map +1 -0
- package/dist/zod-generator-VxCPVDpo.mjs +425 -0
- package/dist/zod-generator-VxCPVDpo.mjs.map +1 -0
- package/package.json +5 -5
- package/src/api/handlers/bulk-tag.ts +11 -3
- package/src/api/handlers/bylines.ts +6 -2
- package/src/api/handlers/content.ts +107 -7
- package/src/api/handlers/dashboard.ts +13 -6
- package/src/api/handlers/menus.ts +24 -10
- package/src/api/handlers/relations.ts +15 -1
- package/src/api/handlers/taxonomies.ts +27 -17
- package/src/astro/image-endpoint.ts +23 -2
- package/src/astro/integration/vite-config.ts +16 -8
- package/src/astro/middleware/redirect.ts +158 -63
- package/src/astro/middleware/request-context.ts +1 -0
- package/src/astro/middleware.ts +17 -4
- package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +4 -1
- package/src/astro/routes/api/content/[collection]/[id]/translations.ts +14 -1
- package/src/astro/routes/api/dashboard.ts +2 -0
- package/src/astro/routes/api/media/file/[...key].ts +13 -3
- package/src/auth/types.ts +6 -0
- package/src/cli/commands/export-seed.ts +6 -4
- package/src/cli/commands/login.ts +2 -4
- package/src/client/index.ts +1 -0
- package/src/client/transport.ts +11 -7
- package/src/components/EmDashImage.astro +14 -2
- package/src/components/InlinePortableTextEditor.tsx +4 -1
- package/src/database/migrations/content-sized.ts +82 -0
- package/src/database/migrations/policy.ts +28 -2
- package/src/database/migrations/runner.ts +48 -0
- package/src/database/repositories/byline.ts +73 -17
- package/src/database/repositories/comment.ts +17 -7
- package/src/database/repositories/content.ts +79 -19
- package/src/database/repositories/menu.ts +77 -11
- package/src/database/repositories/taxonomy-def.ts +9 -2
- package/src/database/repositories/taxonomy.ts +47 -14
- package/src/database/repositories/types.ts +11 -0
- package/src/emdash-runtime.ts +37 -10
- package/src/fields/image.ts +1 -0
- package/src/i18n/config.ts +58 -10
- package/src/i18n/normalize.ts +16 -2
- package/src/i18n/query.ts +47 -0
- package/src/i18n/resolve.ts +8 -3
- package/src/import/wxr-taxonomies.ts +3 -2
- package/src/loader.ts +80 -22
- package/src/mcp/server.ts +28 -1
- package/src/media/caption.ts +30 -0
- package/src/media/image-endpoint.ts +13 -6
- package/src/media/local-runtime.ts +3 -0
- package/src/media/normalize.ts +15 -8
- package/src/media/responsive.ts +12 -2
- package/src/media/types.ts +16 -3
- package/src/menus/index.ts +21 -11
- package/src/migrations/manifest.ts +1 -0
- package/src/plugins/byline-access.ts +3 -1
- package/src/plugins/context.ts +1 -2
- package/src/plugins/storage-indexes.ts +7 -3
- package/src/query.ts +23 -13
- package/src/redirects/artifacts.ts +39 -5
- package/src/references/field-map.ts +6 -4
- package/src/request-context.ts +8 -0
- package/src/schema/collection-slugs-cache.ts +31 -17
- package/src/schema/registry.ts +9 -0
- package/src/schema/zod-generator.ts +2 -1
- package/src/search/fts-manager.ts +98 -28
- package/src/search/query.ts +31 -64
- package/src/seed/apply.ts +191 -87
- package/src/seed/types.ts +3 -1
- package/src/settings/index.ts +135 -35
- package/src/settings/version.ts +54 -0
- package/src/taxonomies/index.ts +95 -52
- package/src/taxonomies/term-counts.ts +2 -1
- package/src/utils/db-errors.ts +15 -0
- package/src/virtual-modules.d.ts +1 -0
- package/dist/action-token-SK8zyN7w.mjs +0 -26
- package/dist/action-token-SK8zyN7w.mjs.map +0 -1
- package/dist/activation-Dim4YMM7.mjs +0 -387
- package/dist/activation-Dim4YMM7.mjs.map +0 -1
- package/dist/adapters-F_xorvWv.d.mts +0 -173
- package/dist/adapters-F_xorvWv.d.mts.map +0 -1
- package/dist/allowed-origins-CEug-p0t.mjs +0 -116
- package/dist/allowed-origins-CEug-p0t.mjs.map +0 -1
- package/dist/api-D-7BNHoz.mjs +0 -5025
- package/dist/api-D-7BNHoz.mjs.map +0 -1
- package/dist/api-tokens-Bx38ZCQp.mjs +0 -173
- package/dist/api-tokens-Bx38ZCQp.mjs.map +0 -1
- package/dist/apply-T7ATgzCh.mjs +0 -1702
- package/dist/apply-T7ATgzCh.mjs.map +0 -1
- package/dist/approvals-D-m6wvGl.mjs +0 -460
- package/dist/approvals-D-m6wvGl.mjs.map +0 -1
- package/dist/artifact-fetch-DIh7iyOV.mjs +0 -659
- package/dist/artifact-fetch-DIh7iyOV.mjs.map +0 -1
- package/dist/artifacts-htGyfCSt.mjs +0 -307
- package/dist/artifacts-htGyfCSt.mjs.map +0 -1
- package/dist/audit-_gieLVGU.mjs +0 -127
- package/dist/audit-_gieLVGU.mjs.map +0 -1
- package/dist/authoritative-records-CQlB3JzE.mjs +0 -5183
- package/dist/authoritative-records-CQlB3JzE.mjs.map +0 -1
- package/dist/authorize-DPFBGbE6.mjs +0 -74
- package/dist/authorize-DPFBGbE6.mjs.map +0 -1
- package/dist/backup-3FgVxiDJ.mjs +0 -246
- package/dist/backup-3FgVxiDJ.mjs.map +0 -1
- package/dist/block-types-CYcG56JB.mjs +0 -132
- package/dist/block-types-CYcG56JB.mjs.map +0 -1
- package/dist/block-values-gCX4HBSl.mjs +0 -215
- package/dist/block-values-gCX4HBSl.mjs.map +0 -1
- package/dist/byline-BR1qhyiw.mjs +0 -909
- package/dist/byline-BR1qhyiw.mjs.map +0 -1
- package/dist/byline-fields-4ClDC88c.mjs +0 -123
- package/dist/byline-fields-4ClDC88c.mjs.map +0 -1
- package/dist/byline-fields-BLXZnX7N.mjs +0 -280
- package/dist/byline-fields-BLXZnX7N.mjs.map +0 -1
- package/dist/byline-registry-dvt4N3xV.mjs +0 -406
- package/dist/byline-registry-dvt4N3xV.mjs.map +0 -1
- package/dist/bylines-CVOvRUL7.mjs +0 -234
- package/dist/bylines-CVOvRUL7.mjs.map +0 -1
- package/dist/bylines-DxOs9B7z.mjs +0 -150
- package/dist/bylines-DxOs9B7z.mjs.map +0 -1
- package/dist/cache-CEU9wo_h.mjs +0 -151
- package/dist/cache-CEU9wo_h.mjs.map +0 -1
- package/dist/canonical-BudtH-Fx.mjs +0 -174
- package/dist/canonical-BudtH-Fx.mjs.map +0 -1
- package/dist/capture-triggers-CT6dK9zd.mjs +0 -362
- package/dist/capture-triggers-CT6dK9zd.mjs.map +0 -1
- package/dist/challenge-store-C17BYx2-.mjs +0 -51
- package/dist/challenge-store-C17BYx2-.mjs.map +0 -1
- package/dist/checksum-CEqvfxGX.mjs +0 -162
- package/dist/checksum-CEqvfxGX.mjs.map +0 -1
- package/dist/chrome-tags-BIKBMZYO.mjs +0 -24
- package/dist/chrome-tags-BIKBMZYO.mjs.map +0 -1
- package/dist/chunks-xC4UD5-S.mjs +0 -25
- package/dist/chunks-xC4UD5-S.mjs.map +0 -1
- package/dist/collection-slugs-cache-e09QeJQt.mjs +0 -85
- package/dist/collection-slugs-cache-e09QeJQt.mjs.map +0 -1
- package/dist/comment-UvIWDKcW.mjs +0 -325
- package/dist/comment-UvIWDKcW.mjs.map +0 -1
- package/dist/comment-reaction-dGp6_FRo.mjs +0 -85
- package/dist/comment-reaction-dGp6_FRo.mjs.map +0 -1
- package/dist/comments-pej-_BUO.mjs +0 -195
- package/dist/comments-pej-_BUO.mjs.map +0 -1
- package/dist/comments-yiRFx3w5.mjs +0 -99
- package/dist/comments-yiRFx3w5.mjs.map +0 -1
- package/dist/components-Brp__9xo.mjs +0 -112
- package/dist/components-Brp__9xo.mjs.map +0 -1
- package/dist/config-Bsm_u_oE.d.mts +0 -6799
- package/dist/config-Bsm_u_oE.d.mts.map +0 -1
- package/dist/config-CFMojMFK.d.mts +0 -39
- package/dist/config-CFMojMFK.d.mts.map +0 -1
- package/dist/config-CvmjJcVw.mjs +0 -73
- package/dist/config-CvmjJcVw.mjs.map +0 -1
- package/dist/config-DBU6iUQB.mjs +0 -228
- package/dist/config-DBU6iUQB.mjs.map +0 -1
- package/dist/connection-BtEN_lP9.mjs +0 -36
- package/dist/connection-BtEN_lP9.mjs.map +0 -1
- package/dist/content-DQSRZTVw.mjs +0 -2075
- package/dist/content-DQSRZTVw.mjs.map +0 -1
- package/dist/content-list-query-CYKcY6Vi.d.mts +0 -26
- package/dist/content-list-query-CYKcY6Vi.d.mts.map +0 -1
- package/dist/content-policy-Dm32n9C6.mjs +0 -46
- package/dist/content-policy-Dm32n9C6.mjs.map +0 -1
- package/dist/content-repair-DNh5--x5.mjs +0 -442
- package/dist/content-repair-DNh5--x5.mjs.map +0 -1
- package/dist/context-BYptmCN0.mjs +0 -2090
- package/dist/context-BYptmCN0.mjs.map +0 -1
- package/dist/credits-B9iORdWB.mjs +0 -110
- package/dist/credits-B9iORdWB.mjs.map +0 -1
- package/dist/cron-D7obTIfk.mjs +0 -306
- package/dist/cron-D7obTIfk.mjs.map +0 -1
- package/dist/dashboard-D0jcgBD7.mjs +0 -167
- package/dist/dashboard-D0jcgBD7.mjs.map +0 -1
- package/dist/db-errors-CBD5yMro.mjs +0 -55
- package/dist/db-errors-CBD5yMro.mjs.map +0 -1
- package/dist/default-C0W-PhAp.mjs +0 -81
- package/dist/default-C0W-PhAp.mjs.map +0 -1
- package/dist/deferred-tasks-ZvUECSzI.d.mts +0 -9
- package/dist/deferred-tasks-ZvUECSzI.d.mts.map +0 -1
- package/dist/destination-r2zIAZ2S.mjs +0 -18
- package/dist/destination-r2zIAZ2S.mjs.map +0 -1
- package/dist/dev-typegen-EBni_pOQ.mjs +0 -29
- package/dist/dev-typegen-EBni_pOQ.mjs.map +0 -1
- package/dist/device-flow-BkFKBoAn.mjs +0 -521
- package/dist/device-flow-BkFKBoAn.mjs.map +0 -1
- package/dist/digest-DJ1tHCgy.mjs +0 -194
- package/dist/digest-DJ1tHCgy.mjs.map +0 -1
- package/dist/direct-executor-Cbxzg4qe.mjs +0 -117
- package/dist/direct-executor-Cbxzg4qe.mjs.map +0 -1
- package/dist/dist-Cfu8mMBs.mjs +0 -810
- package/dist/dist-Cfu8mMBs.mjs.map +0 -1
- package/dist/email-console-FFVJWb9N.mjs +0 -50
- package/dist/email-console-FFVJWb9N.mjs.map +0 -1
- package/dist/email-locale-BJ8DjTzZ.mjs +0 -25
- package/dist/email-locale-BJ8DjTzZ.mjs.map +0 -1
- package/dist/emdash-runtime-DVi7vtXC.mjs +0 -4379
- package/dist/emdash-runtime-DVi7vtXC.mjs.map +0 -1
- package/dist/enrich-Duu4sV3a.mjs +0 -194
- package/dist/enrich-Duu4sV3a.mjs.map +0 -1
- package/dist/entry-lock-C7VX0NGK.d.mts +0 -4568
- package/dist/entry-lock-C7VX0NGK.d.mts.map +0 -1
- package/dist/entry-lock-DLxCffFW.mjs +0 -163
- package/dist/entry-lock-DLxCffFW.mjs.map +0 -1
- package/dist/entry-lock-Df6-XhIu.mjs +0 -1211
- package/dist/entry-lock-Df6-XhIu.mjs.map +0 -1
- package/dist/entry-locks-DJAqVweV.mjs +0 -167
- package/dist/entry-locks-DJAqVweV.mjs.map +0 -1
- package/dist/env-types-C3FCVBWe.mjs +0 -38
- package/dist/env-types-C3FCVBWe.mjs.map +0 -1
- package/dist/error-CVWeIOku.mjs +0 -90
- package/dist/error-CVWeIOku.mjs.map +0 -1
- package/dist/errors-B4f4It-2.mjs +0 -120
- package/dist/errors-B4f4It-2.mjs.map +0 -1
- package/dist/errors-BOYNdIo3.mjs +0 -479
- package/dist/errors-BOYNdIo3.mjs.map +0 -1
- package/dist/escape-lsNq38PP.mjs +0 -9
- package/dist/escape-lsNq38PP.mjs.map +0 -1
- package/dist/fence-C3MUitUN.mjs +0 -162
- package/dist/fence-C3MUitUN.mjs.map +0 -1
- package/dist/field-defs-cache-Dez5iWJJ.mjs +0 -77
- package/dist/field-defs-cache-Dez5iWJJ.mjs.map +0 -1
- package/dist/field-map-Bft9LKak.mjs +0 -83
- package/dist/field-map-Bft9LKak.mjs.map +0 -1
- package/dist/focal-point-JX8kcOTQ.mjs +0 -23
- package/dist/focal-point-JX8kcOTQ.mjs.map +0 -1
- package/dist/fts-manager-Beg3e4bI.mjs +0 -443
- package/dist/fts-manager-Beg3e4bI.mjs.map +0 -1
- package/dist/gc-ByyAYiYE.mjs +0 -75
- package/dist/gc-ByyAYiYE.mjs.map +0 -1
- package/dist/hash-BJaeek87.mjs +0 -37
- package/dist/hash-BJaeek87.mjs.map +0 -1
- package/dist/hook-result-BrdLyOdI.d.mts +0 -31
- package/dist/hook-result-BrdLyOdI.d.mts.map +0 -1
- package/dist/hreflang-C8Jb-hrf.mjs +0 -105
- package/dist/hreflang-C8Jb-hrf.mjs.map +0 -1
- package/dist/hreflang-CY_F5OjF.d.mts +0 -50
- package/dist/hreflang-CY_F5OjF.d.mts.map +0 -1
- package/dist/http-route-dispatch-CyeW6iPv.mjs +0 -342
- package/dist/http-route-dispatch-CyeW6iPv.mjs.map +0 -1
- package/dist/identity-Cael5uTT.mjs +0 -35
- package/dist/identity-Cael5uTT.mjs.map +0 -1
- package/dist/import-BUXjdZUn.mjs +0 -2126
- package/dist/import-BUXjdZUn.mjs.map +0 -1
- package/dist/index-BB9sVisO.d.mts +0 -623
- package/dist/index-BB9sVisO.d.mts.map +0 -1
- package/dist/install-finalization-3JX5qQEA.mjs +0 -58
- package/dist/install-finalization-3JX5qQEA.mjs.map +0 -1
- package/dist/json-recordset-BUjxhr77.mjs +0 -12
- package/dist/json-recordset-BUjxhr77.mjs.map +0 -1
- package/dist/json-schema-v_D_pPNG.mjs +0 -15
- package/dist/json-schema-v_D_pPNG.mjs.map +0 -1
- package/dist/keys-CifIkT0N.mjs +0 -61
- package/dist/keys-CifIkT0N.mjs.map +0 -1
- package/dist/kinds-B_Qcl5pz.mjs +0 -974
- package/dist/kinds-B_Qcl5pz.mjs.map +0 -1
- package/dist/lifecycle-7vUJeFRe.mjs +0 -25
- package/dist/lifecycle-7vUJeFRe.mjs.map +0 -1
- package/dist/load-CdAG9wz-.mjs +0 -28
- package/dist/load-CdAG9wz-.mjs.map +0 -1
- package/dist/loader-CswroUbe.mjs +0 -1380
- package/dist/loader-CswroUbe.mjs.map +0 -1
- package/dist/loops-uA4iTOzd.mjs +0 -205
- package/dist/loops-uA4iTOzd.mjs.map +0 -1
- package/dist/manifest-builder-B8zjuH3f.mjs +0 -189
- package/dist/manifest-builder-B8zjuH3f.mjs.map +0 -1
- package/dist/manifest-schema-DNb4XmTS.mjs +0 -497
- package/dist/manifest-schema-DNb4XmTS.mjs.map +0 -1
- package/dist/marketplace-CqbgeIa7.mjs +0 -257
- package/dist/marketplace-CqbgeIa7.mjs.map +0 -1
- package/dist/media--dJRU6i2.mjs +0 -294
- package/dist/media--dJRU6i2.mjs.map +0 -1
- package/dist/media-1WC65OCB.mjs +0 -416
- package/dist/media-1WC65OCB.mjs.map +0 -1
- package/dist/media-Bws9f18T.mjs +0 -373
- package/dist/media-Bws9f18T.mjs.map +0 -1
- package/dist/media-allowlist-BJB7MFx6.mjs +0 -45
- package/dist/media-allowlist-BJB7MFx6.mjs.map +0 -1
- package/dist/media-folders-Dn3C16B8.mjs +0 -210
- package/dist/media-folders-Dn3C16B8.mjs.map +0 -1
- package/dist/media-url-BQgKvpQ5.mjs +0 -43
- package/dist/media-url-BQgKvpQ5.mjs.map +0 -1
- package/dist/media-usage-CF0WVcLO.mjs +0 -282
- package/dist/media-usage-CF0WVcLO.mjs.map +0 -1
- package/dist/media-usage-activation-C9HwVw5w.mjs +0 -78
- package/dist/media-usage-activation-C9HwVw5w.mjs.map +0 -1
- package/dist/media-usage-work-CkLa5-nc.mjs +0 -1036
- package/dist/media-usage-work-CkLa5-nc.mjs.map +0 -1
- package/dist/media-usage-work-m3AWTmmC.mjs +0 -151
- package/dist/media-usage-work-m3AWTmmC.mjs.map +0 -1
- package/dist/menus-BCVSSp1z.mjs +0 -753
- package/dist/menus-BCVSSp1z.mjs.map +0 -1
- package/dist/menus-BSzwObhV.mjs +0 -92
- package/dist/menus-BSzwObhV.mjs.map +0 -1
- package/dist/menus-Cl4kwdt7.mjs +0 -3721
- package/dist/menus-Cl4kwdt7.mjs.map +0 -1
- package/dist/mime-B5M9R53H.mjs +0 -81
- package/dist/mime-B5M9R53H.mjs.map +0 -1
- package/dist/mode-C-D3qICy.mjs +0 -23
- package/dist/mode-C-D3qICy.mjs.map +0 -1
- package/dist/node-sqlite-compat-CrKzRr0J.mjs +0 -63
- package/dist/node-sqlite-compat-CrKzRr0J.mjs.map +0 -1
- package/dist/normalize-BuWa0lvd.mjs +0 -191
- package/dist/normalize-BuWa0lvd.mjs.map +0 -1
- package/dist/oauth-authorization-TpEJrYB7.mjs +0 -274
- package/dist/oauth-authorization-TpEJrYB7.mjs.map +0 -1
- package/dist/oauth-clients-BT0Pg-MO.mjs +0 -266
- package/dist/oauth-clients-BT0Pg-MO.mjs.map +0 -1
- package/dist/oauth-state-store-CHMn_mwc.mjs +0 -50
- package/dist/oauth-state-store-CHMn_mwc.mjs.map +0 -1
- package/dist/oauth-user-lookup-BDgF6IVG.mjs +0 -26
- package/dist/oauth-user-lookup-BDgF6IVG.mjs.map +0 -1
- package/dist/object-cache-Bo6DGaC9.mjs +0 -586
- package/dist/object-cache-Bo6DGaC9.mjs.map +0 -1
- package/dist/options-DJWaq3Ie.d.mts +0 -81
- package/dist/options-DJWaq3Ie.d.mts.map +0 -1
- package/dist/ownership-MiyA7qKO.mjs +0 -12
- package/dist/ownership-MiyA7qKO.mjs.map +0 -1
- package/dist/parse-CWHOFc6z.d.mts +0 -176
- package/dist/parse-CWHOFc6z.d.mts.map +0 -1
- package/dist/parse-DgQ2NABT.mjs +0 -81
- package/dist/parse-DgQ2NABT.mjs.map +0 -1
- package/dist/passkey-config-D0kdzEao.mjs +0 -46
- package/dist/passkey-config-D0kdzEao.mjs.map +0 -1
- package/dist/paths-biDzFTY2.mjs +0 -77
- package/dist/paths-biDzFTY2.mjs.map +0 -1
- package/dist/patterns-CMNnYCgf.mjs +0 -159
- package/dist/patterns-CMNnYCgf.mjs.map +0 -1
- package/dist/placeholder-D41vk11_.d.mts +0 -306
- package/dist/placeholder-D41vk11_.d.mts.map +0 -1
- package/dist/plan-CCoqxNoU.mjs +0 -135
- package/dist/plan-CCoqxNoU.mjs.map +0 -1
- package/dist/plugin-tool-name-DDUgN_0p.mjs +0 -27
- package/dist/plugin-tool-name-DDUgN_0p.mjs.map +0 -1
- package/dist/plugins-COJ2L49n.mjs +0 -261
- package/dist/plugins-COJ2L49n.mjs.map +0 -1
- package/dist/policy-DLQ--Hnm.mjs +0 -45
- package/dist/policy-DLQ--Hnm.mjs.map +0 -1
- package/dist/portable-text-BH4zgkSm.mjs +0 -311
- package/dist/portable-text-BH4zgkSm.mjs.map +0 -1
- package/dist/preview-DLexxwp3.mjs +0 -107
- package/dist/preview-DLexxwp3.mjs.map +0 -1
- package/dist/protocol-79kUO7jP.d.mts +0 -65
- package/dist/protocol-79kUO7jP.d.mts.map +0 -1
- package/dist/public-plugin-api-routes-BuAMJ8nN.mjs +0 -316
- package/dist/public-plugin-api-routes-BuAMJ8nN.mjs.map +0 -1
- package/dist/public-submission-Di3TsgzX.mjs +0 -251
- package/dist/public-submission-Di3TsgzX.mjs.map +0 -1
- package/dist/public-url-Bt98vysr.mjs +0 -101
- package/dist/public-url-Bt98vysr.mjs.map +0 -1
- package/dist/query-CpnRlBh8.mjs +0 -1156
- package/dist/query-CpnRlBh8.mjs.map +0 -1
- package/dist/query-haKvLAWl.mjs +0 -41
- package/dist/query-haKvLAWl.mjs.map +0 -1
- package/dist/range-CYfeXgGK.mjs +0 -51
- package/dist/range-CYfeXgGK.mjs.map +0 -1
- package/dist/rate-limit-Xp4d0NBY.mjs +0 -127
- package/dist/rate-limit-Xp4d0NBY.mjs.map +0 -1
- package/dist/receipt-BUsQCOeM.mjs +0 -43
- package/dist/receipt-BUsQCOeM.mjs.map +0 -1
- package/dist/redirect-CQAV7mCo.mjs +0 -19
- package/dist/redirect-CQAV7mCo.mjs.map +0 -1
- package/dist/redirect-DiS_3mA4.mjs +0 -423
- package/dist/redirect-DiS_3mA4.mjs.map +0 -1
- package/dist/redirect-paths-CNYq7w80.mjs +0 -36
- package/dist/redirect-paths-CNYq7w80.mjs.map +0 -1
- package/dist/redirects-BEVSRMa2.mjs +0 -148
- package/dist/redirects-BEVSRMa2.mjs.map +0 -1
- package/dist/redirects-BHpy-VsZ.mjs +0 -446
- package/dist/redirects-BHpy-VsZ.mjs.map +0 -1
- package/dist/registry-TUVaid9Z.mjs +0 -8369
- package/dist/registry-TUVaid9Z.mjs.map +0 -1
- package/dist/relations-CA_QuMTU.mjs +0 -776
- package/dist/relations-CA_QuMTU.mjs.map +0 -1
- package/dist/request-cache-C4CIo5ad.mjs +0 -104
- package/dist/request-cache-C4CIo5ad.mjs.map +0 -1
- package/dist/request-meta-bwZ_NsvU.mjs +0 -141
- package/dist/request-meta-bwZ_NsvU.mjs.map +0 -1
- package/dist/resolve-D-kqyKns.mjs +0 -199
- package/dist/resolve-D-kqyKns.mjs.map +0 -1
- package/dist/resolve-DwNM-CXl.mjs +0 -101
- package/dist/resolve-DwNM-CXl.mjs.map +0 -1
- package/dist/revision-BVp8S0e_.mjs +0 -374
- package/dist/revision-BVp8S0e_.mjs.map +0 -1
- package/dist/route-cache-QSOyDEw0.mjs +0 -20
- package/dist/route-cache-QSOyDEw0.mjs.map +0 -1
- package/dist/route-wire-Ca_HWCZ5.mjs +0 -197
- package/dist/route-wire-Ca_HWCZ5.mjs.map +0 -1
- package/dist/routes-BerZFrvV.mjs +0 -272
- package/dist/routes-BerZFrvV.mjs.map +0 -1
- package/dist/runner-BObHz5FC.d.mts +0 -68
- package/dist/runner-BObHz5FC.d.mts.map +0 -1
- package/dist/runner-C5NeAkBQ.mjs +0 -6595
- package/dist/runner-C5NeAkBQ.mjs.map +0 -1
- package/dist/schema-C4OBuv6Z.mjs +0 -13
- package/dist/schema-C4OBuv6Z.mjs.map +0 -1
- package/dist/schema-DJRfvM_o.mjs +0 -815
- package/dist/schema-DJRfvM_o.mjs.map +0 -1
- package/dist/scopes-BU03K7Uo.mjs +0 -34
- package/dist/scopes-BU03K7Uo.mjs.map +0 -1
- package/dist/search-DfVzks89.mjs +0 -450
- package/dist/search-DfVzks89.mjs.map +0 -1
- package/dist/sections-BMy4JVUz.mjs +0 -346
- package/dist/sections-BMy4JVUz.mjs.map +0 -1
- package/dist/seo-ClB-dw9w.mjs +0 -188
- package/dist/seo-ClB-dw9w.mjs.map +0 -1
- package/dist/seo-VZYOEy8f.mjs +0 -133
- package/dist/seo-VZYOEy8f.mjs.map +0 -1
- package/dist/service-Bo_usgSk.mjs +0 -150
- package/dist/service-Bo_usgSk.mjs.map +0 -1
- package/dist/session-user-DlpPdf8L.mjs +0 -61
- package/dist/session-user-DlpPdf8L.mjs.map +0 -1
- package/dist/settings-CWb84sDm.mjs +0 -452
- package/dist/settings-CWb84sDm.mjs.map +0 -1
- package/dist/settings-DS914jjE.mjs +0 -66
- package/dist/settings-DS914jjE.mjs.map +0 -1
- package/dist/settings-Dd1uivmQ.mjs +0 -73
- package/dist/settings-Dd1uivmQ.mjs.map +0 -1
- package/dist/setup-complete-BuNxAUiN.mjs +0 -65
- package/dist/setup-complete-BuNxAUiN.mjs.map +0 -1
- package/dist/setup-nonce-BnEAX0iy.mjs +0 -25
- package/dist/setup-nonce-BnEAX0iy.mjs.map +0 -1
- package/dist/site-domain-Bq5j5bVg.mjs +0 -131
- package/dist/site-domain-Bq5j5bVg.mjs.map +0 -1
- package/dist/site-settings-DRHfX7bq.mjs +0 -50
- package/dist/site-settings-DRHfX7bq.mjs.map +0 -1
- package/dist/site-url-MB685I5X.mjs +0 -45
- package/dist/site-url-MB685I5X.mjs.map +0 -1
- package/dist/sitemap-name-BTg2NJJv.mjs +0 -26
- package/dist/sitemap-name-BTg2NJJv.mjs.map +0 -1
- package/dist/slug-aVnUV4SL.mjs +0 -16
- package/dist/slug-aVnUV4SL.mjs.map +0 -1
- package/dist/slugify-bu2-jKia.mjs +0 -22
- package/dist/slugify-bu2-jKia.mjs.map +0 -1
- package/dist/snapshot-DYsG4uOq.mjs +0 -414
- package/dist/snapshot-DYsG4uOq.mjs.map +0 -1
- package/dist/ssrf-BcYjyM4M.mjs +0 -406
- package/dist/ssrf-BcYjyM4M.mjs.map +0 -1
- package/dist/stage-D8DWgPcO.mjs +0 -662
- package/dist/stage-D8DWgPcO.mjs.map +0 -1
- package/dist/staged-CD_imitH.mjs +0 -686
- package/dist/staged-CD_imitH.mjs.map +0 -1
- package/dist/state-CFbGZziM.mjs +0 -178
- package/dist/state-CFbGZziM.mjs.map +0 -1
- package/dist/status-BFNdxzKc.mjs +0 -30
- package/dist/status-BFNdxzKc.mjs.map +0 -1
- package/dist/storage-query-DRyu3bSU.d.mts +0 -1615
- package/dist/storage-query-DRyu3bSU.d.mts.map +0 -1
- package/dist/tar-DFjExb9X.mjs +0 -449
- package/dist/tar-DFjExb9X.mjs.map +0 -1
- package/dist/target-CWZs2-o6.mjs +0 -27
- package/dist/target-CWZs2-o6.mjs.map +0 -1
- package/dist/taxonomies-ChnU7Mc8.mjs +0 -697
- package/dist/taxonomies-ChnU7Mc8.mjs.map +0 -1
- package/dist/taxonomies-Dd9JJv_a.mjs +0 -939
- package/dist/taxonomies-Dd9JJv_a.mjs.map +0 -1
- package/dist/taxonomy-C_C_LBAU.mjs +0 -550
- package/dist/taxonomy-C_C_LBAU.mjs.map +0 -1
- package/dist/tokens-BnhSnGwJ.mjs +0 -171
- package/dist/tokens-BnhSnGwJ.mjs.map +0 -1
- package/dist/transaction-BVYIo_yu.mjs +0 -29
- package/dist/transaction-BVYIo_yu.mjs.map +0 -1
- package/dist/transfer-ClH6w6BV.mjs +0 -8873
- package/dist/transfer-ClH6w6BV.mjs.map +0 -1
- package/dist/transfer-WmWiR3xf.mjs +0 -166
- package/dist/transfer-WmWiR3xf.mjs.map +0 -1
- package/dist/transfer-download--ofRj9Cw.mjs +0 -33
- package/dist/transfer-download--ofRj9Cw.mjs.map +0 -1
- package/dist/transformations-Bx4lYY0Y.mjs +0 -196
- package/dist/transformations-Bx4lYY0Y.mjs.map +0 -1
- package/dist/transport-BjbqNiPI.mjs +0 -136
- package/dist/transport-BjbqNiPI.mjs.map +0 -1
- package/dist/transport-DxiXnbXk.d.mts +0 -42
- package/dist/transport-DxiXnbXk.d.mts.map +0 -1
- package/dist/trusted-proxy-BU3Nx9g1.mjs +0 -51
- package/dist/trusted-proxy-BU3Nx9g1.mjs.map +0 -1
- package/dist/turnstile-CJwvsOqw.mjs +0 -58
- package/dist/turnstile-CJwvsOqw.mjs.map +0 -1
- package/dist/types-BA3ey2QH.d.mts +0 -87
- package/dist/types-BA3ey2QH.d.mts.map +0 -1
- package/dist/types-BGmQ0uXs.mjs +0 -201
- package/dist/types-BGmQ0uXs.mjs.map +0 -1
- package/dist/types-Bwpzb5o6.d.mts +0 -227
- package/dist/types-Bwpzb5o6.d.mts.map +0 -1
- package/dist/types-CNB-dj6F.d.mts +0 -289
- package/dist/types-CNB-dj6F.d.mts.map +0 -1
- package/dist/types-CgfFGfO5.mjs +0 -16
- package/dist/types-CgfFGfO5.mjs.map +0 -1
- package/dist/types-Cj0_yZkn.mjs +0 -18
- package/dist/types-Cj0_yZkn.mjs.map +0 -1
- package/dist/types-D2NEXtgB.mjs +0 -127
- package/dist/types-D2NEXtgB.mjs.map +0 -1
- package/dist/types-DCFavOii.d.mts +0 -916
- package/dist/types-DCFavOii.d.mts.map +0 -1
- package/dist/types-DHO7Pd25.d.mts +0 -366
- package/dist/types-DHO7Pd25.d.mts.map +0 -1
- package/dist/types-DvqVxZXa.d.mts +0 -125
- package/dist/types-DvqVxZXa.d.mts.map +0 -1
- package/dist/types-QoPHm-2w.d.mts +0 -1741
- package/dist/types-QoPHm-2w.d.mts.map +0 -1
- package/dist/types-RLgeIpnF.d.mts +0 -374
- package/dist/types-RLgeIpnF.d.mts.map +0 -1
- package/dist/types-qHVygneX.mjs +0 -77
- package/dist/types-qHVygneX.mjs.map +0 -1
- package/dist/types-sUHaH7lC.mjs +0 -37
- package/dist/types-sUHaH7lC.mjs.map +0 -1
- package/dist/types-slSqujQL.d.mts +0 -204
- package/dist/types-slSqujQL.d.mts.map +0 -1
- package/dist/update-check-BxNg9T6N.mjs +0 -161
- package/dist/update-check-BxNg9T6N.mjs.map +0 -1
- package/dist/upload-attempts-DPFC4COv.mjs +0 -32
- package/dist/upload-attempts-DPFC4COv.mjs.map +0 -1
- package/dist/url-Dn3IStq8.mjs +0 -104
- package/dist/url-Dn3IStq8.mjs.map +0 -1
- package/dist/url-pattern-QATUE_rv.mjs +0 -41
- package/dist/url-pattern-QATUE_rv.mjs.map +0 -1
- package/dist/user-BlCTKVAm.mjs +0 -171
- package/dist/user-BlCTKVAm.mjs.map +0 -1
- package/dist/utils-TPt7w2cS.mjs +0 -442
- package/dist/utils-TPt7w2cS.mjs.map +0 -1
- package/dist/validate-DxYhJQA-.mjs +0 -524
- package/dist/validate-DxYhJQA-.mjs.map +0 -1
- package/dist/validate-emKxGC5F.d.mts +0 -468
- package/dist/validate-emKxGC5F.d.mts.map +0 -1
- package/dist/validation-Ckq4vsVg.mjs +0 -220
- package/dist/validation-Ckq4vsVg.mjs.map +0 -1
- package/dist/version-BZj18Q7G.mjs +0 -9
- package/dist/version-BZj18Q7G.mjs.map +0 -1
- package/dist/version-DHmGpcch.mjs +0 -7
- package/dist/version-DHmGpcch.mjs.map +0 -1
- package/dist/video-DytCnw3L.mjs +0 -54
- package/dist/video-DytCnw3L.mjs.map +0 -1
- package/dist/virtual-modules-DO954n7P.mjs +0 -515
- package/dist/virtual-modules-DO954n7P.mjs.map +0 -1
- package/dist/widgets-DA5XmvVC.mjs +0 -121
- package/dist/widgets-DA5XmvVC.mjs.map +0 -1
- package/dist/wxr-taxonomies-CrMonejI.d.mts +0 -34
- package/dist/wxr-taxonomies-CrMonejI.d.mts.map +0 -1
- package/dist/wxr-taxonomies-RgRG0d5e.mjs +0 -453
- package/dist/wxr-taxonomies-RgRG0d5e.mjs.map +0 -1
- package/dist/zod-generator-D0JKy94C.mjs +0 -424
- package/dist/zod-generator-D0JKy94C.mjs.map +0 -1
- /package/dist/{api-tokens-CdP49zVF.mjs → api-tokens-C7l0GUAF.mjs} +0 -0
- /package/dist/{ssrf-DM0E-D_8.mjs → ssrf-BBXcxG-f.mjs} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"portable-text-BH4zgkSm.mjs","names":[],"sources":["../src/client/portable-text.ts"],"sourcesContent":["/**\n * Portable Text <-> Markdown conversion layer.\n *\n * Three tiers of block handling:\n * Tier 1: Standard PT blocks <-> standard Markdown (headings, paragraphs, lists, etc.)\n * Tier 2: EmDash custom blocks <-> Markdown directives (future)\n * Tier 3: Unknown blocks <-> opaque HTML comment fences (preserved, not editable)\n */\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** Minimal Portable Text block shape */\nexport interface PortableTextBlock {\n\t_type: string;\n\t_key?: string;\n\tstyle?: string;\n\tlevel?: number;\n\tlistItem?: string;\n\tmarkDefs?: MarkDef[];\n\tchildren?: PortableTextSpan[];\n\t[key: string]: unknown;\n}\n\ninterface PortableTextSpan {\n\t_type: string;\n\t_key?: string;\n\ttext?: string;\n\tmarks?: string[];\n\t[key: string]: unknown;\n}\n\ninterface MarkDef {\n\t_key: string;\n\t_type: string;\n\thref?: string;\n\t[key: string]: unknown;\n}\n\ninterface ParsedInline {\n\tspans: PortableTextSpan[];\n\tmarkDefs: MarkDef[];\n}\n\n// ---------------------------------------------------------------------------\n// PT -> Markdown\n// ---------------------------------------------------------------------------\n\n/**\n * Convert Portable Text blocks to Markdown.\n * Unknown block types are serialized as opaque fences.\n */\nexport function portableTextToMarkdown(blocks: PortableTextBlock[]): string {\n\tconst lines: string[] = [];\n\tlet prevWasList = false;\n\n\tfor (let i = 0; i < blocks.length; i++) {\n\t\tconst block = blocks[i];\n\n\t\tif (block._type === \"block\") {\n\t\t\tconst isList = !!block.listItem;\n\n\t\t\t// Blank line between non-contiguous block types\n\t\t\tif (i > 0 && (!isList || !prevWasList)) {\n\t\t\t\tlines.push(\"\");\n\t\t\t}\n\n\t\t\tlines.push(renderStandardBlock(block));\n\t\t\tprevWasList = isList;\n\t\t} else if (block._type === \"code\") {\n\t\t\tif (i > 0) lines.push(\"\");\n\t\t\tconst lang = (block.language as string) || \"\";\n\t\t\tconst code = (block.code as string) || \"\";\n\t\t\tlines.push(\"```\" + lang);\n\t\t\tlines.push(code);\n\t\t\tlines.push(\"```\");\n\t\t\tprevWasList = false;\n\t\t} else if (block._type === \"image\") {\n\t\t\tif (i > 0) lines.push(\"\");\n\t\t\tconst alt = (block.alt as string) || \"\";\n\t\t\tconst url = (block.asset as { url?: string })?.url || \"\";\n\t\t\tlines.push(``);\n\t\t\tprevWasList = false;\n\t\t} else {\n\t\t\t// Tier 3: Unknown block -> opaque fence\n\t\t\tif (i > 0) lines.push(\"\");\n\t\t\tlines.push(`<!--ec:block ${JSON.stringify(block)} -->`);\n\t\t\tprevWasList = false;\n\t\t}\n\t}\n\n\treturn lines.join(\"\\n\") + \"\\n\";\n}\n\nfunction renderStandardBlock(block: PortableTextBlock): string {\n\tconst text = renderSpans(block.children ?? [], block.markDefs ?? []);\n\n\t// List items\n\tif (block.listItem) {\n\t\tconst indent = \" \".repeat(Math.max(0, (block.level ?? 1) - 1));\n\t\tconst marker = block.listItem === \"number\" ? \"1.\" : \"-\";\n\t\treturn `${indent}${marker} ${text}`;\n\t}\n\n\t// Headings\n\tif (block.style && block.style.startsWith(\"h\")) {\n\t\tconst level = parseInt(block.style.substring(1), 10);\n\t\tif (level >= 1 && level <= 6) {\n\t\t\treturn `${\"#\".repeat(level)} ${text}`;\n\t\t}\n\t}\n\n\t// Blockquote\n\tif (block.style === \"blockquote\") {\n\t\treturn `> ${text}`;\n\t}\n\n\treturn text;\n}\n\nfunction renderSpans(spans: PortableTextSpan[], markDefs: MarkDef[]): string {\n\tlet result = \"\";\n\n\tfor (const span of spans) {\n\t\tif (span._type !== \"span\") continue;\n\n\t\tlet text = span.text ?? \"\";\n\t\tconst marks = span.marks ?? [];\n\n\t\tfor (const mark of marks) {\n\t\t\tconst def = markDefs.find((d) => d._key === mark);\n\t\t\tif (def) {\n\t\t\t\tif (def._type === \"link\") {\n\t\t\t\t\ttext = `[${text}](${def.href ?? \"\"})`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (mark) {\n\t\t\t\t\tcase \"strong\":\n\t\t\t\t\t\ttext = `**${text}**`;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"em\":\n\t\t\t\t\t\ttext = `_${text}_`;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"code\":\n\t\t\t\t\t\ttext = `\\`${text}\\``;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"strike-through\":\n\t\t\t\t\tcase \"strikethrough\":\n\t\t\t\t\t\ttext = `~~${text}~~`;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tresult += text;\n\t}\n\n\treturn result;\n}\n\n// ---------------------------------------------------------------------------\n// Markdown -> PT\n// ---------------------------------------------------------------------------\n\n// Regex patterns for markdown parsing\nconst OPAQUE_FENCE_PATTERN = /^<!--ec:block (.+) -->$/;\nconst HEADING_PATTERN = /^(#{1,6})\\s+(.+)$/;\nconst UNORDERED_LIST_PATTERN = /^(\\s*)[-*+]\\s+(.+)$/;\nconst ORDERED_LIST_PATTERN = /^(\\s*)\\d+\\.\\s+(.+)$/;\nconst IMAGE_PATTERN = /^!\\[([^\\]]*)\\]\\(([^)]+)\\)$/;\nconst INLINE_MARKDOWN_PATTERN =\n\t/(\\*\\*(.+?)\\*\\*)|(_(.+?)_)|(`(.+?)`)|(\\[(.+?)\\]\\((.+?)\\))|(~~(.+?)~~)/g;\n\n/**\n * Convert Markdown to Portable Text blocks.\n * Opaque fences (<!--ec:block ... -->) are deserialized and spliced back in.\n */\nexport function markdownToPortableText(markdown: string): PortableTextBlock[] {\n\tconst blocks: PortableTextBlock[] = [];\n\tconst lines = markdown.split(\"\\n\");\n\tlet i = 0;\n\n\twhile (i < lines.length) {\n\t\tconst line = lines[i];\n\n\t\t// Opaque fence\n\t\tconst opaqueMatch = line.match(OPAQUE_FENCE_PATTERN);\n\t\tif (opaqueMatch) {\n\t\t\ttry {\n\t\t\t\tblocks.push(JSON.parse(opaqueMatch[1]) as PortableTextBlock);\n\t\t\t} catch {\n\t\t\t\tblocks.push(makeBlock(line));\n\t\t\t}\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Code fence\n\t\tif (line.startsWith(\"```\")) {\n\t\t\tconst lang = line.slice(3).trim();\n\t\t\tconst codeLines: string[] = [];\n\t\t\ti++;\n\t\t\twhile (i < lines.length && !lines[i].startsWith(\"```\")) {\n\t\t\t\tcodeLines.push(lines[i]);\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tblocks.push({\n\t\t\t\t_type: \"code\",\n\t\t\t\t_key: generateKey(),\n\t\t\t\tlanguage: lang || undefined,\n\t\t\t\tcode: codeLines.join(\"\\n\"),\n\t\t\t});\n\t\t\ti++; // skip closing ```\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Blank line\n\t\tif (line.trim() === \"\") {\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Heading\n\t\tconst headingMatch = line.match(HEADING_PATTERN);\n\t\tif (headingMatch) {\n\t\t\tblocks.push(makeBlock(headingMatch[2], `h${headingMatch[1].length}`));\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Blockquote\n\t\tif (line.startsWith(\"> \")) {\n\t\t\tblocks.push(makeBlock(line.slice(2), \"blockquote\"));\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Unordered list\n\t\tconst ulMatch = line.match(UNORDERED_LIST_PATTERN);\n\t\tif (ulMatch) {\n\t\t\tconst level = Math.floor(ulMatch[1].length / 2) + 1;\n\t\t\tblocks.push(makeListBlock(ulMatch[2], \"bullet\", level));\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ordered list\n\t\tconst olMatch = line.match(ORDERED_LIST_PATTERN);\n\t\tif (olMatch) {\n\t\t\tconst level = Math.floor(olMatch[1].length / 2) + 1;\n\t\t\tblocks.push(makeListBlock(olMatch[2], \"number\", level));\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Image\n\t\tconst imgMatch = line.match(IMAGE_PATTERN);\n\t\tif (imgMatch) {\n\t\t\tblocks.push({\n\t\t\t\t_type: \"image\",\n\t\t\t\t_key: generateKey(),\n\t\t\t\talt: imgMatch[1],\n\t\t\t\tasset: { url: imgMatch[2] },\n\t\t\t});\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Paragraph\n\t\tblocks.push(makeBlock(line));\n\t\ti++;\n\t}\n\n\treturn blocks;\n}\n\n// ---------------------------------------------------------------------------\n// Block builders\n// ---------------------------------------------------------------------------\n\nfunction makeBlock(text: string, style: string = \"normal\"): PortableTextBlock {\n\tconst { spans, markDefs } = parseInline(text);\n\treturn { _type: \"block\", _key: generateKey(), style, markDefs, children: spans };\n}\n\nfunction makeListBlock(text: string, listItem: string, level: number): PortableTextBlock {\n\tconst { spans, markDefs } = parseInline(text);\n\treturn {\n\t\t_type: \"block\",\n\t\t_key: generateKey(),\n\t\tstyle: \"normal\",\n\t\tlistItem,\n\t\tlevel,\n\t\tmarkDefs,\n\t\tchildren: spans,\n\t};\n}\n\n/**\n * Parse inline markdown (bold, italic, code, links, strikethrough) into PT spans + markDefs.\n */\nfunction parseInline(text: string): ParsedInline {\n\tconst spans: PortableTextSpan[] = [];\n\tconst markDefs: MarkDef[] = [];\n\tconst regex = INLINE_MARKDOWN_PATTERN;\n\n\tlet lastIndex = 0;\n\tlet match: RegExpExecArray | null;\n\n\twhile ((match = regex.exec(text)) !== null) {\n\t\tif (match.index > lastIndex) {\n\t\t\tspans.push({\n\t\t\t\t_type: \"span\",\n\t\t\t\t_key: generateKey(),\n\t\t\t\ttext: text.slice(lastIndex, match.index),\n\t\t\t\tmarks: [],\n\t\t\t});\n\t\t}\n\n\t\tif (match[2] != null) {\n\t\t\tspans.push({ _type: \"span\", _key: generateKey(), text: match[2], marks: [\"strong\"] });\n\t\t} else if (match[4] != null) {\n\t\t\tspans.push({ _type: \"span\", _key: generateKey(), text: match[4], marks: [\"em\"] });\n\t\t} else if (match[6] != null) {\n\t\t\tspans.push({ _type: \"span\", _key: generateKey(), text: match[6], marks: [\"code\"] });\n\t\t} else if (match[8] != null && match[9] != null) {\n\t\t\tconst key = generateKey();\n\t\t\tmarkDefs.push({ _key: key, _type: \"link\", href: match[9] });\n\t\t\tspans.push({ _type: \"span\", _key: generateKey(), text: match[8], marks: [key] });\n\t\t} else if (match[11] != null) {\n\t\t\tspans.push({\n\t\t\t\t_type: \"span\",\n\t\t\t\t_key: generateKey(),\n\t\t\t\ttext: match[11],\n\t\t\t\tmarks: [\"strike-through\"],\n\t\t\t});\n\t\t}\n\n\t\tlastIndex = match.index + match[0].length;\n\t}\n\n\tif (lastIndex < text.length) {\n\t\tspans.push({ _type: \"span\", _key: generateKey(), text: text.slice(lastIndex), marks: [] });\n\t}\n\n\tif (spans.length === 0) {\n\t\tspans.push({ _type: \"span\", _key: generateKey(), text, marks: [] });\n\t}\n\n\treturn { spans, markDefs };\n}\n\n// ---------------------------------------------------------------------------\n// Key generation\n// ---------------------------------------------------------------------------\n\nlet keyCounter = 0;\n\nfunction generateKey(): string {\n\treturn `k${(keyCounter++).toString(36)}`;\n}\n\n/** Reset key counter (useful for testing) */\nexport function resetKeyCounter(): void {\n\tkeyCounter = 0;\n}\n\n// ---------------------------------------------------------------------------\n// Schema-aware conversion helpers\n// ---------------------------------------------------------------------------\n\nexport interface FieldSchema {\n\tslug: string;\n\ttype: string;\n\tvalidation?: unknown;\n\tblockTypes?: Array<{\n\t\tslug: string;\n\t\tcurrentVersion: number;\n\t\tversions: Array<{\n\t\t\tversion: number;\n\t\t\tfields: Array<{ slug: string; type: string }>;\n\t\t}>;\n\t}>;\n}\n\nfunction convertNestedBlockPortableText(\n\tvalue: unknown,\n\tfield: FieldSchema,\n\tdirection: \"read\" | \"write\",\n): unknown {\n\tif (!Array.isArray(value)) return value;\n\tconst validation = field.validation;\n\tconst allowedTypes =\n\t\tvalidation && typeof validation === \"object\" && \"allowedTypes\" in validation\n\t\t\t? validation.allowedTypes\n\t\t\t: undefined;\n\treturn value.map((block) => {\n\t\tif (!block || typeof block !== \"object\" || Array.isArray(block)) return block;\n\t\tconst record = { ...block };\n\t\tconst type =\n\t\t\trecord._type === undefined &&\n\t\t\tdirection === \"write\" &&\n\t\t\tArray.isArray(allowedTypes) &&\n\t\t\tallowedTypes.length === 1\n\t\t\t\t? allowedTypes[0]\n\t\t\t\t: record._type;\n\t\tconst version = typeof record._version === \"number\" ? record._version : undefined;\n\t\tconst blockType = field.blockTypes?.find((candidate) => candidate.slug === type);\n\t\tconst definition = blockType?.versions.find(\n\t\t\t(candidate) => candidate.version === (version ?? blockType.currentVersion),\n\t\t);\n\t\tif (!definition) return block;\n\t\tfor (const nestedField of definition.fields) {\n\t\t\tif (nestedField.type !== \"portableText\") continue;\n\t\t\tconst nestedValue = record[nestedField.slug];\n\t\t\tif (direction === \"read\" && Array.isArray(nestedValue)) {\n\t\t\t\trecord[nestedField.slug] = portableTextToMarkdown(nestedValue as PortableTextBlock[]);\n\t\t\t} else if (direction === \"write\" && typeof nestedValue === \"string\") {\n\t\t\t\trecord[nestedField.slug] = markdownToPortableText(nestedValue);\n\t\t\t}\n\t\t}\n\t\treturn record;\n\t});\n}\n\n/**\n * Convert content data for reading: Portable Text arrays -> Markdown strings.\n * Converts top-level `portableText` arrays and nested `portableText` arrays\n * inside `blocks` arrays.\n */\nexport function convertDataForRead(\n\tdata: Record<string, unknown>,\n\tfields: FieldSchema[],\n\traw: boolean = false,\n): Record<string, unknown> {\n\tif (raw) return data;\n\n\tconst result = { ...data };\n\tfor (const field of fields) {\n\t\tif (field.type === \"portableText\" && Array.isArray(result[field.slug])) {\n\t\t\tresult[field.slug] = portableTextToMarkdown(result[field.slug] as PortableTextBlock[]);\n\t\t} else if (field.type === \"blocks\" && Array.isArray(result[field.slug])) {\n\t\t\tresult[field.slug] = convertNestedBlockPortableText(result[field.slug], field, \"read\");\n\t\t}\n\t}\n\treturn result;\n}\n\n/**\n * Convert content data for writing: Markdown strings -> Portable Text arrays.\n * Converts top-level `portableText` strings and nested Markdown strings\n * in `portableText` fields inside `blocks` arrays.\n */\nexport function convertDataForWrite(\n\tdata: Record<string, unknown>,\n\tfields: FieldSchema[],\n): Record<string, unknown> {\n\tconst result = { ...data };\n\tfor (const field of fields) {\n\t\tif (field.type === \"portableText\" && typeof result[field.slug] === \"string\") {\n\t\t\tresult[field.slug] = markdownToPortableText(result[field.slug] as string);\n\t\t} else if (field.type === \"blocks\" && Array.isArray(result[field.slug])) {\n\t\t\tresult[field.slug] = convertNestedBlockPortableText(result[field.slug], field, \"write\");\n\t\t}\n\t}\n\treturn result;\n}\n"],"mappings":"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"}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { t as generatePreviewToken } from "./tokens-BnhSnGwJ.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/preview/urls.ts
|
|
4
|
-
/**
|
|
5
|
-
* Preview URL generation
|
|
6
|
-
*
|
|
7
|
-
* Creates preview URLs that include a signed token for accessing draft content.
|
|
8
|
-
*/
|
|
9
|
-
const REPEATED_SLASHES = /\/{2,}/g;
|
|
10
|
-
/**
|
|
11
|
-
* Generate a preview URL for content
|
|
12
|
-
*
|
|
13
|
-
* The URL includes a `_preview` query parameter with a signed token.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```ts
|
|
17
|
-
* const url = await getPreviewUrl({
|
|
18
|
-
* collection: "posts",
|
|
19
|
-
* id: "hello-world",
|
|
20
|
-
* secret: process.env.PREVIEW_SECRET!,
|
|
21
|
-
* });
|
|
22
|
-
* // Returns: /posts/hello-world?_preview=eyJj...
|
|
23
|
-
*
|
|
24
|
-
* // With base URL:
|
|
25
|
-
* const fullUrl = await getPreviewUrl({
|
|
26
|
-
* collection: "posts",
|
|
27
|
-
* id: "hello-world",
|
|
28
|
-
* secret: process.env.PREVIEW_SECRET!,
|
|
29
|
-
* baseUrl: "https://example.com",
|
|
30
|
-
* });
|
|
31
|
-
* // Returns: https://example.com/posts/hello-world?_preview=eyJj...
|
|
32
|
-
*
|
|
33
|
-
* // Custom path pattern:
|
|
34
|
-
* const customUrl = await getPreviewUrl({
|
|
35
|
-
* collection: "posts",
|
|
36
|
-
* id: "hello-world",
|
|
37
|
-
* secret: process.env.PREVIEW_SECRET!,
|
|
38
|
-
* pathPattern: "/blog/{id}",
|
|
39
|
-
* });
|
|
40
|
-
* // Returns: /blog/hello-world?_preview=eyJj...
|
|
41
|
-
* ```
|
|
42
|
-
*/
|
|
43
|
-
async function getPreviewUrl(options) {
|
|
44
|
-
const { collection, id, secret, expiresIn = "1h", baseUrl, pathPattern = "/{collection}/{id}", locale = "" } = options;
|
|
45
|
-
const token = await generatePreviewToken({
|
|
46
|
-
contentId: `${collection}:${id}`,
|
|
47
|
-
expiresIn,
|
|
48
|
-
secret
|
|
49
|
-
});
|
|
50
|
-
let path = pathPattern.replace("{collection}", collection).replace("{id}", id).replace("{locale}", locale);
|
|
51
|
-
path = path.replace(REPEATED_SLASHES, "/");
|
|
52
|
-
if (path.length > 1 && path.endsWith("/")) path = path.slice(0, -1);
|
|
53
|
-
const url = new URL(path, baseUrl || "http://placeholder");
|
|
54
|
-
url.searchParams.set("_preview", token);
|
|
55
|
-
if (!baseUrl) return `${url.pathname}${url.search}`;
|
|
56
|
-
return url.toString();
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Build a preview URL from a token (when you already have the token)
|
|
60
|
-
*
|
|
61
|
-
* @example
|
|
62
|
-
* ```ts
|
|
63
|
-
* const url = buildPreviewUrl({
|
|
64
|
-
* path: "/posts/hello-world",
|
|
65
|
-
* token: existingToken,
|
|
66
|
-
* });
|
|
67
|
-
* ```
|
|
68
|
-
*/
|
|
69
|
-
function buildPreviewUrl(options) {
|
|
70
|
-
const { path, token, baseUrl } = options;
|
|
71
|
-
const url = new URL(path, baseUrl || "http://placeholder");
|
|
72
|
-
url.searchParams.set("_preview", token);
|
|
73
|
-
if (!baseUrl) return `${url.pathname}${url.search}`;
|
|
74
|
-
return url.toString();
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
//#endregion
|
|
78
|
-
//#region src/preview/helpers.ts
|
|
79
|
-
/**
|
|
80
|
-
* Preview helpers for Astro pages
|
|
81
|
-
*/
|
|
82
|
-
/**
|
|
83
|
-
* Check if a request is a preview request
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* ```ts
|
|
87
|
-
* const isPreview = isPreviewRequest(Astro.url);
|
|
88
|
-
* ```
|
|
89
|
-
*/
|
|
90
|
-
function isPreviewRequest(url) {
|
|
91
|
-
return url.searchParams.has("_preview");
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Get the preview token from a URL
|
|
95
|
-
*
|
|
96
|
-
* @example
|
|
97
|
-
* ```ts
|
|
98
|
-
* const token = getPreviewToken(Astro.url);
|
|
99
|
-
* ```
|
|
100
|
-
*/
|
|
101
|
-
function getPreviewToken(url) {
|
|
102
|
-
return url.searchParams.get("_preview");
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
//#endregion
|
|
106
|
-
export { getPreviewUrl as i, isPreviewRequest as n, buildPreviewUrl as r, getPreviewToken as t };
|
|
107
|
-
//# sourceMappingURL=preview-DLexxwp3.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preview-DLexxwp3.mjs","names":[],"sources":["../src/preview/urls.ts","../src/preview/helpers.ts"],"sourcesContent":["/**\n * Preview URL generation\n *\n * Creates preview URLs that include a signed token for accessing draft content.\n */\n\nimport { generatePreviewToken } from \"./tokens.js\";\n\nconst REPEATED_SLASHES = /\\/{2,}/g;\n\n/**\n * Options for generating a preview URL\n */\nexport interface GetPreviewUrlOptions {\n\t/** Collection slug (e.g., \"posts\") */\n\tcollection: string;\n\t/** Content ID or slug */\n\tid: string;\n\t/** Secret key for signing the token */\n\tsecret: string;\n\t/** How long the preview URL is valid. Default: \"1h\" */\n\texpiresIn?: string | number;\n\t/** Base URL of the site. If not provided, returns a relative URL. */\n\tbaseUrl?: string;\n\t/**\n\t * Custom path pattern. Supports `{collection}`, `{id}` and `{locale}`\n\t * placeholders. Default: `\"/{collection}/{id}\"`.\n\t */\n\tpathPattern?: string;\n\t/**\n\t * Locale segment substituted for the `{locale}` placeholder in `pathPattern`.\n\t * Pass an empty string to omit the locale prefix (e.g. for the default locale\n\t * when `prefixDefaultLocale` is `false`); adjacent slashes left by an empty\n\t * value are collapsed and any trailing slash is trimmed.\n\t */\n\tlocale?: string;\n}\n\n/**\n * Generate a preview URL for content\n *\n * The URL includes a `_preview` query parameter with a signed token.\n *\n * @example\n * ```ts\n * const url = await getPreviewUrl({\n * collection: \"posts\",\n * id: \"hello-world\",\n * secret: process.env.PREVIEW_SECRET!,\n * });\n * // Returns: /posts/hello-world?_preview=eyJj...\n *\n * // With base URL:\n * const fullUrl = await getPreviewUrl({\n * collection: \"posts\",\n * id: \"hello-world\",\n * secret: process.env.PREVIEW_SECRET!,\n * baseUrl: \"https://example.com\",\n * });\n * // Returns: https://example.com/posts/hello-world?_preview=eyJj...\n *\n * // Custom path pattern:\n * const customUrl = await getPreviewUrl({\n * collection: \"posts\",\n * id: \"hello-world\",\n * secret: process.env.PREVIEW_SECRET!,\n * pathPattern: \"/blog/{id}\",\n * });\n * // Returns: /blog/hello-world?_preview=eyJj...\n * ```\n */\nexport async function getPreviewUrl(options: GetPreviewUrlOptions): Promise<string> {\n\tconst {\n\t\tcollection,\n\t\tid,\n\t\tsecret,\n\t\texpiresIn = \"1h\",\n\t\tbaseUrl,\n\t\tpathPattern = \"/{collection}/{id}\",\n\t\tlocale = \"\",\n\t} = options;\n\n\t// Generate the signed token\n\tconst token = await generatePreviewToken({\n\t\tcontentId: `${collection}:${id}`,\n\t\texpiresIn,\n\t\tsecret,\n\t});\n\n\t// Build the path. `{locale}` may resolve to an empty string (default locale\n\t// without a prefix); collapse the resulting double slashes and trim a\n\t// trailing slash so the URL stays clean.\n\tlet path = pathPattern\n\t\t.replace(\"{collection}\", collection)\n\t\t.replace(\"{id}\", id)\n\t\t.replace(\"{locale}\", locale);\n\tpath = path.replace(REPEATED_SLASHES, \"/\");\n\tif (path.length > 1 && path.endsWith(\"/\")) path = path.slice(0, -1);\n\n\t// Add token as query parameter\n\tconst url = new URL(path, baseUrl || \"http://placeholder\");\n\turl.searchParams.set(\"_preview\", token);\n\n\t// Return relative URL if no baseUrl provided\n\tif (!baseUrl) {\n\t\treturn `${url.pathname}${url.search}`;\n\t}\n\n\treturn url.toString();\n}\n\n/**\n * Build a preview URL from a token (when you already have the token)\n *\n * @example\n * ```ts\n * const url = buildPreviewUrl({\n * path: \"/posts/hello-world\",\n * token: existingToken,\n * });\n * ```\n */\nexport function buildPreviewUrl(options: {\n\tpath: string;\n\ttoken: string;\n\tbaseUrl?: string;\n}): string {\n\tconst { path, token, baseUrl } = options;\n\n\tconst url = new URL(path, baseUrl || \"http://placeholder\");\n\turl.searchParams.set(\"_preview\", token);\n\n\tif (!baseUrl) {\n\t\treturn `${url.pathname}${url.search}`;\n\t}\n\n\treturn url.toString();\n}\n","/**\n * Preview helpers for Astro pages\n */\n\n/**\n * Check if a request is a preview request\n *\n * @example\n * ```ts\n * const isPreview = isPreviewRequest(Astro.url);\n * ```\n */\nexport function isPreviewRequest(url: URL): boolean {\n\treturn url.searchParams.has(\"_preview\");\n}\n\n/**\n * Get the preview token from a URL\n *\n * @example\n * ```ts\n * const token = getPreviewToken(Astro.url);\n * ```\n */\nexport function getPreviewToken(url: URL): string | null {\n\treturn url.searchParams.get(\"_preview\");\n}\n"],"mappings":";;;;;;;;AAQA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DzB,eAAsB,cAAc,SAAgD;CACnF,MAAM,EACL,YACA,IACA,QACA,YAAY,MACZ,SACA,cAAc,sBACd,SAAS,OACN;CAGJ,MAAM,QAAQ,MAAM,qBAAqB;EACxC,WAAW,GAAG,WAAW,GAAG;EAC5B;EACA;EACA,CAAC;CAKF,IAAI,OAAO,YACT,QAAQ,gBAAgB,WAAW,CACnC,QAAQ,QAAQ,GAAG,CACnB,QAAQ,YAAY,OAAO;AAC7B,QAAO,KAAK,QAAQ,kBAAkB,IAAI;AAC1C,KAAI,KAAK,SAAS,KAAK,KAAK,SAAS,IAAI,CAAE,QAAO,KAAK,MAAM,GAAG,GAAG;CAGnE,MAAM,MAAM,IAAI,IAAI,MAAM,WAAW,qBAAqB;AAC1D,KAAI,aAAa,IAAI,YAAY,MAAM;AAGvC,KAAI,CAAC,QACJ,QAAO,GAAG,IAAI,WAAW,IAAI;AAG9B,QAAO,IAAI,UAAU;;;;;;;;;;;;;AActB,SAAgB,gBAAgB,SAIrB;CACV,MAAM,EAAE,MAAM,OAAO,YAAY;CAEjC,MAAM,MAAM,IAAI,IAAI,MAAM,WAAW,qBAAqB;AAC1D,KAAI,aAAa,IAAI,YAAY,MAAM;AAEvC,KAAI,CAAC,QACJ,QAAO,GAAG,IAAI,WAAW,IAAI;AAG9B,QAAO,IAAI,UAAU;;;;;;;;;;;;;;;;AC5HtB,SAAgB,iBAAiB,KAAmB;AACnD,QAAO,IAAI,aAAa,IAAI,WAAW;;;;;;;;;;AAWxC,SAAgB,gBAAgB,KAAyB;AACxD,QAAO,IAAI,aAAa,IAAI,WAAW"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { t as I18nConfig } from "./config-CFMojMFK.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/migrations/protocol.d.ts
|
|
4
|
-
type MigrationAction = "check" | "apply" | "release-lock" | "take-over-lock";
|
|
5
|
-
interface MigrationRequest {
|
|
6
|
-
action: MigrationAction;
|
|
7
|
-
i18n: I18nConfig | null;
|
|
8
|
-
artifact: {
|
|
9
|
-
emdashVersion: string;
|
|
10
|
-
migrationSetFingerprint: string;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* For `release-lock` and `take-over-lock`: the lock id a `check` reported.
|
|
14
|
-
* Another lock is left alone. `take-over-lock` applies pending migrations
|
|
15
|
-
* under that lock without freeing it first.
|
|
16
|
-
*/
|
|
17
|
-
lockId?: string;
|
|
18
|
-
}
|
|
19
|
-
interface MigrationLockReport {
|
|
20
|
-
id: string;
|
|
21
|
-
/** ISO 8601 time the lock was taken. */
|
|
22
|
-
heldSince: string;
|
|
23
|
-
}
|
|
24
|
-
interface MigrationTarget {
|
|
25
|
-
kind: string;
|
|
26
|
-
label: string;
|
|
27
|
-
fingerprint: string;
|
|
28
|
-
accountId?: string;
|
|
29
|
-
environment?: string;
|
|
30
|
-
resourceId?: string;
|
|
31
|
-
}
|
|
32
|
-
interface MigrationReport {
|
|
33
|
-
target: MigrationTarget;
|
|
34
|
-
knownApplied: string[];
|
|
35
|
-
pending: string[];
|
|
36
|
-
unknownApplied: string[];
|
|
37
|
-
executed: string[];
|
|
38
|
-
/** Present on `check` while a migration lock is held. */
|
|
39
|
-
lock?: MigrationLockReport;
|
|
40
|
-
}
|
|
41
|
-
interface MigrationExecutor {
|
|
42
|
-
target: MigrationTarget;
|
|
43
|
-
execute(request: MigrationRequest): Promise<MigrationReport>;
|
|
44
|
-
dispose?(): Promise<void>;
|
|
45
|
-
}
|
|
46
|
-
interface MigrationTargetOverrides {
|
|
47
|
-
database?: string;
|
|
48
|
-
databaseUrlEnv?: string;
|
|
49
|
-
d1?: string;
|
|
50
|
-
accountId?: string;
|
|
51
|
-
wranglerConfig?: string;
|
|
52
|
-
wranglerEnv?: string;
|
|
53
|
-
}
|
|
54
|
-
interface MigrationExecutorFactoryContext {
|
|
55
|
-
projectRoot: string;
|
|
56
|
-
env: Readonly<Record<string, string | undefined>>;
|
|
57
|
-
overrides?: Readonly<MigrationTargetOverrides>;
|
|
58
|
-
}
|
|
59
|
-
type MigrationExecutorFactory<ManifestConfig = unknown> = (manifestConfig: ManifestConfig, context: MigrationExecutorFactoryContext) => MigrationExecutor | Promise<MigrationExecutor>;
|
|
60
|
-
interface MigrationExecutorModule<ManifestConfig = unknown> {
|
|
61
|
-
createMigrationExecutor: MigrationExecutorFactory<ManifestConfig>;
|
|
62
|
-
}
|
|
63
|
-
//#endregion
|
|
64
|
-
export { MigrationExecutorModule as a, MigrationRequest as c, MigrationExecutorFactoryContext as i, MigrationTarget as l, MigrationExecutor as n, MigrationLockReport as o, MigrationExecutorFactory as r, MigrationReport as s, MigrationAction as t, MigrationTargetOverrides as u };
|
|
65
|
-
//# sourceMappingURL=protocol-79kUO7jP.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"protocol-79kUO7jP.d.mts","names":[],"sources":["../src/migrations/protocol.ts"],"mappings":";;;KAEY,eAAA;AAAA,UAEK,gBAAA;EAChB,MAAA,EAAQ,eAAA;EACR,IAAA,EAAM,UAAA;EACN,QAAA;IACC,aAAA;IACA,uBAAA;EAAA;EAL+B;;;;;EAYhC,MAAA;AAAA;AAAA,UAGgB,mBAAA;EAChB,EAAA;EAXC;EAaD,SAAA;AAAA;AAAA,UAGgB,eAAA;EAChB,IAAA;EACA,KAAA;EACA,WAAA;EACA,SAAA;EACA,WAAA;EACA,UAAA;AAAA;AAAA,UAGgB,eAAA;EAChB,MAAA,EAAQ,eAAA;EACR,YAAA;EACA,OAAA;EACA,cAAA;EACA,QAAA;EATA;EAWA,IAAA,GAAO,mBAAA;AAAA;AAAA,UAGS,iBAAA;EAChB,MAAA,EAAQ,eAAA;EACR,OAAA,CAAQ,OAAA,EAAS,gBAAA,GAAmB,OAAA,CAAQ,eAAA;EAC5C,OAAA,KAAY,OAAA;AAAA;AAAA,UAGI,wBAAA;EAChB,QAAA;EACA,cAAA;EACA,EAAA;EACA,SAAA;EACA,cAAA;EACA,WAAA;AAAA;AAAA,UAGgB,+BAAA;EAChB,WAAA;EACA,GAAA,EAAK,QAAA,CAAS,MAAA;EACd,SAAA,GAAY,QAAA,CAAS,wBAAA;AAAA;AAAA,KAGV,wBAAA,8BACX,cAAA,EAAgB,cAAA,EAChB,OAAA,EAAS,+BAAA,KACL,iBAAA,GAAoB,OAAA,CAAQ,iBAAA;AAAA,UAEhB,uBAAA;EAChB,uBAAA,EAAyB,wBAAA,CAAyB,cAAA;AAAA"}
|
|
@@ -1,316 +0,0 @@
|
|
|
1
|
-
import { t as getMenu } from "./menus-Cl4kwdt7.mjs";
|
|
2
|
-
import { n as createDeferredTaskTracker } from "./after-PcEvMY_6.mjs";
|
|
3
|
-
import { getRequestContext } from "./request-context.mjs";
|
|
4
|
-
import { n as cachedQuery, t as CacheNamespace } from "./object-cache-Bo6DGaC9.mjs";
|
|
5
|
-
import { i as setRequestCacheEntry, r as requestCached } from "./request-cache-C4CIo5ad.mjs";
|
|
6
|
-
import { c as getDb } from "./loader-CswroUbe.mjs";
|
|
7
|
-
import { flushRecorder, isInstrumentationEnabled } from "./database/instrumentation.mjs";
|
|
8
|
-
import { a as getTaxonomyDefs, o as getTaxonomyTerms } from "./taxonomies-ChnU7Mc8.mjs";
|
|
9
|
-
import { a as getSiteSettings } from "./settings-CWb84sDm.mjs";
|
|
10
|
-
import { r as getWidgetAreas } from "./widgets-DA5XmvVC.mjs";
|
|
11
|
-
|
|
12
|
-
//#region src/astro/middleware/scoped-db.ts
|
|
13
|
-
/**
|
|
14
|
-
* Request-scoped database lifecycle helpers.
|
|
15
|
-
*
|
|
16
|
-
* Extracted from middleware.ts so they can be unit-tested without pulling in
|
|
17
|
-
* the virtual:emdash/* module graph. The middleware imports these to settle a
|
|
18
|
-
* request-scoped db adapter's lifecycle around the response.
|
|
19
|
-
*/
|
|
20
|
-
/**
|
|
21
|
-
* Astro attaches AstroCookies to outgoing responses via a well-known global
|
|
22
|
-
* symbol. Cloning a Response (`new Response(body, init)`) drops non-header
|
|
23
|
-
* metadata, so any helper that wraps the response must explicitly forward this
|
|
24
|
-
* symbol or `cookies.set()` calls will be silently dropped. `Symbol.for`
|
|
25
|
-
* returns the same registry symbol everywhere, so this matches the copy in
|
|
26
|
-
* middleware.ts.
|
|
27
|
-
*/
|
|
28
|
-
const ASTRO_COOKIES_SYMBOL = Symbol.for("astro.cookies");
|
|
29
|
-
/**
|
|
30
|
-
* Whether the request ended authenticated, for the db adapter's `commit()`.
|
|
31
|
-
* `isAuthenticated` is captured before the route runs, so it misses
|
|
32
|
-
* login/signup/invite requests that create the Astro session mid-request;
|
|
33
|
-
* `session.set()` writes the `astro-session` cookie into the jar synchronously,
|
|
34
|
-
* so scanning the outgoing cookies detects them. Only outgoing cookies count —
|
|
35
|
-
* a stale `astro-session` cookie arriving on an anonymous render must not
|
|
36
|
-
* qualify, or its replica-read bookmark would overwrite a fresher one from an
|
|
37
|
-
* earlier authenticated write.
|
|
38
|
-
*/
|
|
39
|
-
function requestEndedAuthenticated(isAuthenticated, cookies) {
|
|
40
|
-
if (isAuthenticated) return true;
|
|
41
|
-
for (const header of cookies.headers()) if (header.startsWith("astro-session=")) return true;
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
/** Hold the real adapter close behind both response and deferred-task completion. */
|
|
45
|
-
function coordinateScopedDbLifecycle(scoped) {
|
|
46
|
-
if (!scoped.close) return { lifecycle: scoped };
|
|
47
|
-
const close = scoped.close;
|
|
48
|
-
const deferredTasks = createDeferredTaskTracker(() => {
|
|
49
|
-
try {
|
|
50
|
-
close();
|
|
51
|
-
} catch (error) {
|
|
52
|
-
console.error("[emdash] request-scoped db close failed:", error);
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
return {
|
|
56
|
-
closed: deferredTasks.settled,
|
|
57
|
-
deferredTasks,
|
|
58
|
-
lifecycle: {
|
|
59
|
-
commit: scoped.commit,
|
|
60
|
-
close: deferredTasks.settle
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Run a request-scoped db's `close()` once the response body has finished
|
|
66
|
-
* streaming. Astro streams HTML and components issue DB queries during that
|
|
67
|
-
* stream, so a connection-backed adapter (e.g. Postgres over Hyperdrive) must
|
|
68
|
-
* not be torn down until the body is flushed. Bodyless responses (redirects,
|
|
69
|
-
* 304s, errors) close immediately. A guard makes close idempotent and a stream
|
|
70
|
-
* `cancel` (client disconnect) still triggers it so connections never leak.
|
|
71
|
-
*
|
|
72
|
-
* No-op for adapters without a `close` (D1): the response passes through.
|
|
73
|
-
*/
|
|
74
|
-
function wrapResponseForScopedClose(response, close) {
|
|
75
|
-
let closed = false;
|
|
76
|
-
const runClose = () => {
|
|
77
|
-
if (closed) return;
|
|
78
|
-
closed = true;
|
|
79
|
-
try {
|
|
80
|
-
close();
|
|
81
|
-
} catch (error) {
|
|
82
|
-
console.error("[emdash] request-scoped db close failed:", error);
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
if (!response.body) {
|
|
86
|
-
runClose();
|
|
87
|
-
return response;
|
|
88
|
-
}
|
|
89
|
-
const transform = new TransformStream({
|
|
90
|
-
flush: runClose,
|
|
91
|
-
cancel: runClose
|
|
92
|
-
});
|
|
93
|
-
const wrapped = new Response(response.body.pipeThrough(transform), response);
|
|
94
|
-
const astroCookies = Reflect.get(response, ASTRO_COOKIES_SYMBOL);
|
|
95
|
-
if (astroCookies !== void 0) Reflect.set(wrapped, ASTRO_COOKIES_SYMBOL, astroCookies);
|
|
96
|
-
wrapped.headers.delete("Content-Length");
|
|
97
|
-
return wrapped;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Run the request body under a request-scoped db, then settle its lifecycle:
|
|
101
|
-
* `commit()` runs before the response is returned (so per-request state like a
|
|
102
|
-
* D1 bookmark cookie is persisted in the headers, even if render throws), while
|
|
103
|
-
* `close()` (if any) is deferred to lifecycle settlement so a
|
|
104
|
-
* connection-backed adapter isn't torn down mid-render or mid-task. On error
|
|
105
|
-
* the lifecycle is settled before rethrowing so it never leaks.
|
|
106
|
-
*
|
|
107
|
-
* On the error path both `commit()` and `close()` are defended: a throw from
|
|
108
|
-
* either is logged and swallowed so it can't replace the propagating render
|
|
109
|
-
* error (which is the one the caller needs to see). On the success path
|
|
110
|
-
* `commit()` is guarded too — if it throws, the connection is closed before the
|
|
111
|
-
* failure is surfaced, so it never leaks. For the current adapters `commit()`
|
|
112
|
-
* is a no-op (Hyperdrive) or a cookie write (D1, no `close`) and `close()` is
|
|
113
|
-
* fire-and-forget, so these guards only matter for a future connection-backed
|
|
114
|
-
* adapter with throwing teardown, but the helper is generic and must not leak
|
|
115
|
-
* or mask.
|
|
116
|
-
*/
|
|
117
|
-
async function finishScoped(scoped, run) {
|
|
118
|
-
let response;
|
|
119
|
-
try {
|
|
120
|
-
response = await run();
|
|
121
|
-
} catch (error) {
|
|
122
|
-
commitSafely(scoped.commit);
|
|
123
|
-
closeSafely(scoped.close);
|
|
124
|
-
throw error;
|
|
125
|
-
}
|
|
126
|
-
try {
|
|
127
|
-
scoped.commit();
|
|
128
|
-
} catch (error) {
|
|
129
|
-
closeSafely(scoped.close);
|
|
130
|
-
throw error;
|
|
131
|
-
}
|
|
132
|
-
return scoped.close ? wrapResponseForScopedClose(response, scoped.close) : response;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Run commit() swallowing any error. Used where an exception is already
|
|
136
|
-
* propagating (or about to be thrown) and a commit failure must neither mask it
|
|
137
|
-
* nor skip the subsequent close().
|
|
138
|
-
*/
|
|
139
|
-
function commitSafely(commit) {
|
|
140
|
-
try {
|
|
141
|
-
commit();
|
|
142
|
-
} catch (error) {
|
|
143
|
-
console.error("[emdash] request-scoped db commit failed during error handling:", error);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Run close() swallowing any error. Used on the error/commit-failure paths
|
|
148
|
-
* where another exception is the one the caller must see; a throwing teardown
|
|
149
|
-
* must not replace it.
|
|
150
|
-
*/
|
|
151
|
-
function closeSafely(close) {
|
|
152
|
-
if (!close) return;
|
|
153
|
-
try {
|
|
154
|
-
close();
|
|
155
|
-
} catch (error) {
|
|
156
|
-
console.error("[emdash] request-scoped db close failed during error handling:", error);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
//#endregion
|
|
161
|
-
//#region src/astro/middleware/stream-end-metrics.ts
|
|
162
|
-
/**
|
|
163
|
-
* Stream-end metrics
|
|
164
|
-
*
|
|
165
|
-
* Server-Timing db.* counters are snapshotted when middleware's next()
|
|
166
|
-
* returns — but at that point only the response *headers* are final.
|
|
167
|
-
* Astro streams the body afterwards, and components rendered during
|
|
168
|
-
* streaming issue further DB queries that the headers can never report.
|
|
169
|
-
*
|
|
170
|
-
* This module wraps the response body in an identity TransformStream and
|
|
171
|
-
* snapshots the request metrics in flush(), i.e. when the body actually
|
|
172
|
-
* finishes streaming. The metrics object lives on the request context
|
|
173
|
-
* (AsyncLocalStorage) and is mutated in-place by the Kysely log hook, so
|
|
174
|
-
* a reference captured before wrapping observes every post-header query.
|
|
175
|
-
* The snapshot is emitted as prefixed NDJSON on stdout (same transport as
|
|
176
|
-
* [emdash-query-log] — console.log works in both Node and workerd).
|
|
177
|
-
*
|
|
178
|
-
* Gated on isInstrumentationEnabled() (EMDASH_QUERY_LOG=1): zero overhead
|
|
179
|
-
* in normal production traffic.
|
|
180
|
-
*/
|
|
181
|
-
const STREAM_END_PREFIX = "[emdash-stream-end]";
|
|
182
|
-
/**
|
|
183
|
-
* Wrap a response body so the FINAL request metrics are emitted when the
|
|
184
|
-
* body finishes streaming. Returns the response unchanged when
|
|
185
|
-
* instrumentation is disabled, the body is null, or no request metrics
|
|
186
|
-
* are attached (e.g. outside the middleware's ALS context).
|
|
187
|
-
*/
|
|
188
|
-
function wrapBodyForStreamMetrics(response) {
|
|
189
|
-
if (!isInstrumentationEnabled()) return response;
|
|
190
|
-
if (!response.body) return response;
|
|
191
|
-
const ctx = getRequestContext();
|
|
192
|
-
const metrics = ctx?.metrics;
|
|
193
|
-
if (!metrics) return response;
|
|
194
|
-
const recorder = ctx?.queryRecorder;
|
|
195
|
-
if (recorder) recorder.deferredFlush = true;
|
|
196
|
-
const transform = new TransformStream({ flush() {
|
|
197
|
-
const snapshot = {
|
|
198
|
-
route: recorder?.route,
|
|
199
|
-
method: recorder?.method,
|
|
200
|
-
phase: recorder?.phase,
|
|
201
|
-
totalMs: performance.now() - metrics.start,
|
|
202
|
-
dbCount: metrics.dbCount,
|
|
203
|
-
dbTotalMs: metrics.dbTotalMs,
|
|
204
|
-
dbFirstOffset: metrics.dbFirstOffset,
|
|
205
|
-
dbLastOffset: metrics.dbLastOffset,
|
|
206
|
-
cacheHits: metrics.cacheHits,
|
|
207
|
-
cacheMisses: metrics.cacheMisses
|
|
208
|
-
};
|
|
209
|
-
console.log(`${STREAM_END_PREFIX} ${JSON.stringify(snapshot)}`);
|
|
210
|
-
if (recorder) flushRecorder(recorder);
|
|
211
|
-
} });
|
|
212
|
-
const wrapped = new Response(response.body.pipeThrough(transform), response);
|
|
213
|
-
const astroCookies = Reflect.get(response, ASTRO_COOKIES_SYMBOL);
|
|
214
|
-
if (astroCookies !== void 0) Reflect.set(wrapped, ASTRO_COOKIES_SYMBOL, astroCookies);
|
|
215
|
-
wrapped.headers.delete("Content-Length");
|
|
216
|
-
return wrapped;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
//#endregion
|
|
220
|
-
//#region src/astro/prefetch.ts
|
|
221
|
-
/**
|
|
222
|
-
* Eager, transparent prefetch of site-global "chrome" data.
|
|
223
|
-
*
|
|
224
|
-
* On a public page render, the shared layout pulls the same site-global data on
|
|
225
|
-
* every request -- menus, widget areas, taxonomy term lists, site settings --
|
|
226
|
-
* but each is awaited inside a separately-rendered Astro component, so they
|
|
227
|
-
* execute as serial DB round trips. This fires them all CONCURRENTLY at the
|
|
228
|
-
* very start of the request, before `next()`:
|
|
229
|
-
*
|
|
230
|
-
* - On remote backends whose adapter can overlap queries the round trips
|
|
231
|
-
* overlap instead of serializing, collapsing ~N sequential RTTs into ~1
|
|
232
|
-
* wall-clock RTT. On a coalescing backend they additionally batch into a
|
|
233
|
-
* single round trip.
|
|
234
|
-
* - The results land in the per-request `requestCached` store under the exact
|
|
235
|
-
* keys the layout helpers use, so when the components render they hit a warm
|
|
236
|
-
* (in-flight or resolved) cache entry instead of issuing their own query.
|
|
237
|
-
*
|
|
238
|
-
* Nothing here changes what templates call -- it warms the real helpers, so the
|
|
239
|
-
* cache keys and value shapes are guaranteed identical. The caller gates this to
|
|
240
|
-
* the public-page path on a request-scoped (remote) backend that can overlap
|
|
241
|
-
* queries; it is a no-op-ish waste on synchronous local SQLite and only delays
|
|
242
|
-
* the page on a handle that runs one query at a time, so don't call it there.
|
|
243
|
-
*
|
|
244
|
-
* Fire-and-forget: never awaited by middleware, never throws (a prefetch failure
|
|
245
|
-
* must not affect the request -- the helpers will simply run on demand).
|
|
246
|
-
*/
|
|
247
|
-
/** Warm widget areas: one bulk load, primed under each per-area cache key. */
|
|
248
|
-
async function prefetchWidgetAreas() {
|
|
249
|
-
const areas = await requestCached("widget-areas", getWidgetAreas);
|
|
250
|
-
for (const area of areas) setRequestCacheEntry(`widget-area:${area.name}`, area);
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* Warm every taxonomy's term list via the real helper (primes per-name keys).
|
|
254
|
-
* Counts are left out: they cost an aggregate over the whole assignment pivot
|
|
255
|
-
* per taxonomy, and only a consumer that renders one can say it's needed. A
|
|
256
|
-
* consumer that does asks for it and reuses the term list warmed here.
|
|
257
|
-
*/
|
|
258
|
-
async function prefetchTaxonomyTerms() {
|
|
259
|
-
const defs = await getTaxonomyDefs();
|
|
260
|
-
await Promise.allSettled(defs.map((def) => getTaxonomyTerms(def.name, { includeCounts: false })));
|
|
261
|
-
}
|
|
262
|
-
/** Warm every menu via the real helper (primes `menu:${name}:${locale}`). */
|
|
263
|
-
async function prefetchMenus() {
|
|
264
|
-
const names = await cachedQuery({
|
|
265
|
-
namespace: CacheNamespace.MENUS,
|
|
266
|
-
key: "names",
|
|
267
|
-
load: async () => {
|
|
268
|
-
const rows = await (await getDb()).selectFrom("_emdash_menus").select("name").distinct().execute();
|
|
269
|
-
return [...new Set(rows.map((r) => r.name))];
|
|
270
|
-
}
|
|
271
|
-
});
|
|
272
|
-
await Promise.allSettled(names.map((name) => getMenu(name)));
|
|
273
|
-
}
|
|
274
|
-
/**
|
|
275
|
-
* Concurrently warm the site-global layout data for the current request.
|
|
276
|
-
* Safe to call only inside the request ALS frame that owns the (remote)
|
|
277
|
-
* request-scoped db. Never throws.
|
|
278
|
-
*/
|
|
279
|
-
async function prefetchLayoutData() {
|
|
280
|
-
try {
|
|
281
|
-
await Promise.allSettled([
|
|
282
|
-
getSiteSettings(),
|
|
283
|
-
prefetchMenus(),
|
|
284
|
-
prefetchWidgetAreas(),
|
|
285
|
-
prefetchTaxonomyTerms()
|
|
286
|
-
]);
|
|
287
|
-
} catch (error) {
|
|
288
|
-
console.error("[emdash] layout prefetch failed (non-fatal):", error);
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
//#endregion
|
|
293
|
-
//#region src/astro/public-plugin-api-routes.ts
|
|
294
|
-
function getPublicPluginRouteMeta(runtime, pluginId, path) {
|
|
295
|
-
const meta = runtime.getPluginRouteMeta(pluginId, path);
|
|
296
|
-
return meta?.public === true ? meta : null;
|
|
297
|
-
}
|
|
298
|
-
function pluginRouteNotFound() {
|
|
299
|
-
return {
|
|
300
|
-
success: false,
|
|
301
|
-
error: {
|
|
302
|
-
code: "NOT_FOUND",
|
|
303
|
-
message: "Plugin route not found"
|
|
304
|
-
}
|
|
305
|
-
};
|
|
306
|
-
}
|
|
307
|
-
function createPublicPluginApiRouteHandler(runtime) {
|
|
308
|
-
return async (pluginId, method, path, request) => {
|
|
309
|
-
if (!getPublicPluginRouteMeta(runtime, pluginId, path)) return pluginRouteNotFound();
|
|
310
|
-
return runtime.handlePluginApiRoute(pluginId, method, path, request);
|
|
311
|
-
};
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
//#endregion
|
|
315
|
-
export { ASTRO_COOKIES_SYMBOL as a, requestEndedAuthenticated as c, wrapBodyForStreamMetrics as i, getPublicPluginRouteMeta as n, coordinateScopedDbLifecycle as o, prefetchLayoutData as r, finishScoped as s, createPublicPluginApiRouteHandler as t };
|
|
316
|
-
//# sourceMappingURL=public-plugin-api-routes-BuAMJ8nN.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"public-plugin-api-routes-BuAMJ8nN.mjs","names":[],"sources":["../src/astro/middleware/scoped-db.ts","../src/astro/middleware/stream-end-metrics.ts","../src/astro/prefetch.ts","../src/astro/public-plugin-api-routes.ts"],"sourcesContent":["/**\n * Request-scoped database lifecycle helpers.\n *\n * Extracted from middleware.ts so they can be unit-tested without pulling in\n * the virtual:emdash/* module graph. The middleware imports these to settle a\n * request-scoped db adapter's lifecycle around the response.\n */\n\nimport { createDeferredTaskTracker } from \"../../deferred-tasks.js\";\nimport type { DeferredTaskTracker } from \"../../deferred-tasks.js\";\n\n/**\n * Astro attaches AstroCookies to outgoing responses via a well-known global\n * symbol. Cloning a Response (`new Response(body, init)`) drops non-header\n * metadata, so any helper that wraps the response must explicitly forward this\n * symbol or `cookies.set()` calls will be silently dropped. `Symbol.for`\n * returns the same registry symbol everywhere, so this matches the copy in\n * middleware.ts.\n */\nexport const ASTRO_COOKIES_SYMBOL = Symbol.for(\"astro.cookies\");\n\ninterface ScopedDbLifecycle {\n\tcommit: () => void;\n\tclose?: () => void;\n}\n\n/**\n * Whether the request ended authenticated, for the db adapter's `commit()`.\n * `isAuthenticated` is captured before the route runs, so it misses\n * login/signup/invite requests that create the Astro session mid-request;\n * `session.set()` writes the `astro-session` cookie into the jar synchronously,\n * so scanning the outgoing cookies detects them. Only outgoing cookies count —\n * a stale `astro-session` cookie arriving on an anonymous render must not\n * qualify, or its replica-read bookmark would overwrite a fresher one from an\n * earlier authenticated write.\n */\nexport function requestEndedAuthenticated(\n\tisAuthenticated: boolean,\n\tcookies: { headers(): Iterable<string> },\n): boolean {\n\tif (isAuthenticated) return true;\n\tfor (const header of cookies.headers()) {\n\t\tif (header.startsWith(\"astro-session=\")) return true;\n\t}\n\treturn false;\n}\n\n/** Hold the real adapter close behind both response and deferred-task completion. */\nexport function coordinateScopedDbLifecycle(scoped: ScopedDbLifecycle): {\n\tclosed?: Promise<void>;\n\tdeferredTasks?: DeferredTaskTracker;\n\tlifecycle: ScopedDbLifecycle;\n} {\n\tif (!scoped.close) return { lifecycle: scoped };\n\n\tconst close = scoped.close;\n\tconst deferredTasks = createDeferredTaskTracker(() => {\n\t\ttry {\n\t\t\tclose();\n\t\t} catch (error) {\n\t\t\tconsole.error(\"[emdash] request-scoped db close failed:\", error);\n\t\t}\n\t});\n\treturn {\n\t\tclosed: deferredTasks.settled,\n\t\tdeferredTasks,\n\t\tlifecycle: { commit: scoped.commit, close: deferredTasks.settle },\n\t};\n}\n\n/**\n * Run a request-scoped db's `close()` once the response body has finished\n * streaming. Astro streams HTML and components issue DB queries during that\n * stream, so a connection-backed adapter (e.g. Postgres over Hyperdrive) must\n * not be torn down until the body is flushed. Bodyless responses (redirects,\n * 304s, errors) close immediately. A guard makes close idempotent and a stream\n * `cancel` (client disconnect) still triggers it so connections never leak.\n *\n * No-op for adapters without a `close` (D1): the response passes through.\n */\nexport function wrapResponseForScopedClose(response: Response, close: () => void): Response {\n\tlet closed = false;\n\tconst runClose = () => {\n\t\tif (closed) return;\n\t\tclosed = true;\n\t\ttry {\n\t\t\tclose();\n\t\t} catch (error) {\n\t\t\tconsole.error(\"[emdash] request-scoped db close failed:\", error);\n\t\t}\n\t};\n\n\tif (!response.body) {\n\t\trunClose();\n\t\treturn response;\n\t}\n\n\tconst transform = new TransformStream<Uint8Array, Uint8Array>({\n\t\tflush: runClose,\n\t\tcancel: runClose,\n\t});\n\tconst wrapped = new Response(response.body.pipeThrough(transform), response);\n\tconst astroCookies = Reflect.get(response, ASTRO_COOKIES_SYMBOL);\n\tif (astroCookies !== undefined) {\n\t\tReflect.set(wrapped, ASTRO_COOKIES_SYMBOL, astroCookies);\n\t}\n\t// Byte counts are preserved by the identity transform, but a stale\n\t// Content-Length on a reconstructed streaming Response risks truncation.\n\twrapped.headers.delete(\"Content-Length\");\n\treturn wrapped;\n}\n\n/**\n * Run the request body under a request-scoped db, then settle its lifecycle:\n * `commit()` runs before the response is returned (so per-request state like a\n * D1 bookmark cookie is persisted in the headers, even if render throws), while\n * `close()` (if any) is deferred to lifecycle settlement so a\n * connection-backed adapter isn't torn down mid-render or mid-task. On error\n * the lifecycle is settled before rethrowing so it never leaks.\n *\n * On the error path both `commit()` and `close()` are defended: a throw from\n * either is logged and swallowed so it can't replace the propagating render\n * error (which is the one the caller needs to see). On the success path\n * `commit()` is guarded too — if it throws, the connection is closed before the\n * failure is surfaced, so it never leaks. For the current adapters `commit()`\n * is a no-op (Hyperdrive) or a cookie write (D1, no `close`) and `close()` is\n * fire-and-forget, so these guards only matter for a future connection-backed\n * adapter with throwing teardown, but the helper is generic and must not leak\n * or mask.\n */\nexport async function finishScoped(\n\tscoped: ScopedDbLifecycle,\n\trun: () => Promise<Response>,\n): Promise<Response> {\n\tlet response: Response;\n\ttry {\n\t\tresponse = await run();\n\t} catch (error) {\n\t\t// A render error is already propagating; neither commit nor close may\n\t\t// mask it, and close must still run so the connection doesn't leak.\n\t\tcommitSafely(scoped.commit);\n\t\tcloseSafely(scoped.close);\n\t\tthrow error;\n\t}\n\ttry {\n\t\tscoped.commit();\n\t} catch (error) {\n\t\t// commit() failed on the success path: close the connection now (the\n\t\t// response won't be wrapped, so stream-end close would never run) and\n\t\t// surface the failure. close is swallowed so it can't mask the commit\n\t\t// error that the caller needs to see.\n\t\tcloseSafely(scoped.close);\n\t\tthrow error;\n\t}\n\treturn scoped.close ? wrapResponseForScopedClose(response, scoped.close) : response;\n}\n\n/**\n * Run commit() swallowing any error. Used where an exception is already\n * propagating (or about to be thrown) and a commit failure must neither mask it\n * nor skip the subsequent close().\n */\nfunction commitSafely(commit: () => void): void {\n\ttry {\n\t\tcommit();\n\t} catch (error) {\n\t\tconsole.error(\"[emdash] request-scoped db commit failed during error handling:\", error);\n\t}\n}\n\n/**\n * Run close() swallowing any error. Used on the error/commit-failure paths\n * where another exception is the one the caller must see; a throwing teardown\n * must not replace it.\n */\nfunction closeSafely(close: (() => void) | undefined): void {\n\tif (!close) return;\n\ttry {\n\t\tclose();\n\t} catch (error) {\n\t\tconsole.error(\"[emdash] request-scoped db close failed during error handling:\", error);\n\t}\n}\n","/**\n * Stream-end metrics\n *\n * Server-Timing db.* counters are snapshotted when middleware's next()\n * returns — but at that point only the response *headers* are final.\n * Astro streams the body afterwards, and components rendered during\n * streaming issue further DB queries that the headers can never report.\n *\n * This module wraps the response body in an identity TransformStream and\n * snapshots the request metrics in flush(), i.e. when the body actually\n * finishes streaming. The metrics object lives on the request context\n * (AsyncLocalStorage) and is mutated in-place by the Kysely log hook, so\n * a reference captured before wrapping observes every post-header query.\n * The snapshot is emitted as prefixed NDJSON on stdout (same transport as\n * [emdash-query-log] — console.log works in both Node and workerd).\n *\n * Gated on isInstrumentationEnabled() (EMDASH_QUERY_LOG=1): zero overhead\n * in normal production traffic.\n */\n\nimport { flushRecorder, isInstrumentationEnabled } from \"../../database/instrumentation.js\";\nimport { getRequestContext } from \"../../request-context.js\";\n// Reuse the single source of truth for Astro's well-known cookies symbol\n// rather than redefining `Symbol.for(\"astro.cookies\")` here — it must stay in\n// lockstep with the copy the rest of the middleware forwards.\nimport { ASTRO_COOKIES_SYMBOL } from \"./scoped-db.js\";\n\nexport const STREAM_END_PREFIX = \"[emdash-stream-end]\";\n\n/** Shape of the NDJSON snapshot emitted when the body finishes streaming. */\nexport interface StreamEndSnapshot {\n\troute?: string;\n\tmethod?: string;\n\tphase?: string;\n\t/** Total elapsed ms from middleware entry to end of body streaming. */\n\ttotalMs: number;\n\tdbCount: number;\n\tdbTotalMs: number;\n\tdbFirstOffset: number | null;\n\tdbLastOffset: number | null;\n\tcacheHits: number;\n\tcacheMisses: number;\n}\n\n/**\n * Wrap a response body so the FINAL request metrics are emitted when the\n * body finishes streaming. Returns the response unchanged when\n * instrumentation is disabled, the body is null, or no request metrics\n * are attached (e.g. outside the middleware's ALS context).\n */\nexport function wrapBodyForStreamMetrics(response: Response): Response {\n\tif (!isInstrumentationEnabled()) return response;\n\tif (!response.body) return response;\n\n\t// Capture the context's metrics object BEFORE wrapping: flush() runs\n\t// after the middleware's ALS frame may have exited, but the object\n\t// reference stays live and is mutated in-place by the Kysely log hook.\n\tconst ctx = getRequestContext();\n\tconst metrics = ctx?.metrics;\n\tif (!metrics) return response;\n\tconst recorder = ctx?.queryRecorder;\n\n\t// Claim the per-query flush: the recorder is mutated in-place by the\n\t// Kysely log hook for the whole request, including queries issued by\n\t// components while the body streams. Flushing here (rather than when\n\t// middleware returns) is what captures those streaming queries. The\n\t// flag tells the middleware's fallback flush to leave this recorder\n\t// to us.\n\tif (recorder) recorder.deferredFlush = true;\n\n\tconst transform = new TransformStream<Uint8Array, Uint8Array>({\n\t\tflush() {\n\t\t\tconst snapshot: StreamEndSnapshot = {\n\t\t\t\troute: recorder?.route,\n\t\t\t\tmethod: recorder?.method,\n\t\t\t\tphase: recorder?.phase,\n\t\t\t\ttotalMs: performance.now() - metrics.start,\n\t\t\t\tdbCount: metrics.dbCount,\n\t\t\t\tdbTotalMs: metrics.dbTotalMs,\n\t\t\t\tdbFirstOffset: metrics.dbFirstOffset,\n\t\t\t\tdbLastOffset: metrics.dbLastOffset,\n\t\t\t\tcacheHits: metrics.cacheHits,\n\t\t\t\tcacheMisses: metrics.cacheMisses,\n\t\t\t};\n\t\t\tconsole.log(`${STREAM_END_PREFIX} ${JSON.stringify(snapshot)}`);\n\t\t\t// Emit the full per-query log now that streaming is complete.\n\t\t\tif (recorder) flushRecorder(recorder);\n\t\t},\n\t});\n\n\tconst wrapped = new Response(response.body.pipeThrough(transform), response);\n\tconst astroCookies = Reflect.get(response, ASTRO_COOKIES_SYMBOL);\n\tif (astroCookies !== undefined) {\n\t\tReflect.set(wrapped, ASTRO_COOKIES_SYMBOL, astroCookies);\n\t}\n\t// The identity transform preserves byte counts today, but a stale\n\t// Content-Length on a re-constructed streaming Response risks\n\t// truncation if anything upstream changes; the header is recomputed\n\t// (or chunked encoding used) by the server layer anyway.\n\twrapped.headers.delete(\"Content-Length\");\n\treturn wrapped;\n}\n","/**\n * Eager, transparent prefetch of site-global \"chrome\" data.\n *\n * On a public page render, the shared layout pulls the same site-global data on\n * every request -- menus, widget areas, taxonomy term lists, site settings --\n * but each is awaited inside a separately-rendered Astro component, so they\n * execute as serial DB round trips. This fires them all CONCURRENTLY at the\n * very start of the request, before `next()`:\n *\n * - On remote backends whose adapter can overlap queries the round trips\n * overlap instead of serializing, collapsing ~N sequential RTTs into ~1\n * wall-clock RTT. On a coalescing backend they additionally batch into a\n * single round trip.\n * - The results land in the per-request `requestCached` store under the exact\n * keys the layout helpers use, so when the components render they hit a warm\n * (in-flight or resolved) cache entry instead of issuing their own query.\n *\n * Nothing here changes what templates call -- it warms the real helpers, so the\n * cache keys and value shapes are guaranteed identical. The caller gates this to\n * the public-page path on a request-scoped (remote) backend that can overlap\n * queries; it is a no-op-ish waste on synchronous local SQLite and only delays\n * the page on a handle that runs one query at a time, so don't call it there.\n *\n * Fire-and-forget: never awaited by middleware, never throws (a prefetch failure\n * must not affect the request -- the helpers will simply run on demand).\n */\n\nimport { getDb } from \"../loader.js\";\nimport { getMenu } from \"../menus/index.js\";\nimport { cachedQuery, CacheNamespace } from \"../object-cache/index.js\";\nimport { requestCached, setRequestCacheEntry } from \"../request-cache.js\";\nimport { getSiteSettings } from \"../settings/index.js\";\nimport { getTaxonomyDefs, getTaxonomyTerms } from \"../taxonomies/index.js\";\nimport { getWidgetAreas } from \"../widgets/index.js\";\n\n/** Warm widget areas: one bulk load, primed under each per-area cache key. */\nasync function prefetchWidgetAreas(): Promise<void> {\n\tconst areas = await requestCached(\"widget-areas\", getWidgetAreas);\n\t// getWidgetArea(name) caches under `widget-area:${name}` and returns the same\n\t// WidgetArea shape getWidgetAreas yields, so priming here makes those calls hit.\n\tfor (const area of areas) {\n\t\tsetRequestCacheEntry(`widget-area:${area.name}`, area);\n\t}\n}\n\n/**\n * Warm every taxonomy's term list via the real helper (primes per-name keys).\n * Counts are left out: they cost an aggregate over the whole assignment pivot\n * per taxonomy, and only a consumer that renders one can say it's needed. A\n * consumer that does asks for it and reuses the term list warmed here.\n */\nasync function prefetchTaxonomyTerms(): Promise<void> {\n\tconst defs = await getTaxonomyDefs();\n\tawait Promise.allSettled(defs.map((def) => getTaxonomyTerms(def.name, { includeCounts: false })));\n}\n\n/** Warm every menu via the real helper (primes `menu:${name}:${locale}`). */\nasync function prefetchMenus(): Promise<void> {\n\t// The layout calls getMenu(name) with hardcoded names; we can't know them, so\n\t// discover every menu name and warm them all (small, bounded chrome table).\n\tconst names = await cachedQuery({\n\t\tnamespace: CacheNamespace.MENUS,\n\t\tkey: \"names\",\n\t\tload: async () => {\n\t\t\tconst db = await getDb();\n\t\t\tconst rows = await db.selectFrom(\"_emdash_menus\").select(\"name\").distinct().execute();\n\t\t\treturn [...new Set(rows.map((r) => r.name))];\n\t\t},\n\t});\n\tawait Promise.allSettled(names.map((name) => getMenu(name)));\n}\n\n/**\n * Concurrently warm the site-global layout data for the current request.\n * Safe to call only inside the request ALS frame that owns the (remote)\n * request-scoped db. Never throws.\n */\nexport async function prefetchLayoutData(): Promise<void> {\n\ttry {\n\t\tawait Promise.allSettled([\n\t\t\tgetSiteSettings(),\n\t\t\tprefetchMenus(),\n\t\t\tprefetchWidgetAreas(),\n\t\t\tprefetchTaxonomyTerms(),\n\t\t]);\n\t} catch (error) {\n\t\t// Defensive: Promise.allSettled shouldn't reject, but never let a prefetch\n\t\t// failure surface to the request.\n\t\tconsole.error(\"[emdash] layout prefetch failed (non-fatal):\", error);\n\t}\n}\n","import type { RouteMeta } from \"../plugins/routes.js\";\nimport type { HandlerResponse } from \"./types.js\";\n\nexport type PublicPluginApiRouteHandler = (\n\tpluginId: string,\n\tmethod: string,\n\tpath: string,\n\trequest: Request,\n) => Promise<HandlerResponse>;\n\ninterface PublicPluginApiRouteRuntime {\n\tgetPluginRouteMeta(pluginId: string, path: string): RouteMeta | null;\n\thandlePluginApiRoute(\n\t\tpluginId: string,\n\t\tmethod: string,\n\t\tpath: string,\n\t\trequest: Request,\n\t): Promise<HandlerResponse>;\n}\n\nexport function getPublicPluginRouteMeta(\n\truntime: Pick<PublicPluginApiRouteRuntime, \"getPluginRouteMeta\">,\n\tpluginId: string,\n\tpath: string,\n): RouteMeta | null {\n\tconst meta = runtime.getPluginRouteMeta(pluginId, path);\n\treturn meta?.public === true ? meta : null;\n}\n\nfunction pluginRouteNotFound(): HandlerResponse {\n\treturn {\n\t\tsuccess: false,\n\t\terror: {\n\t\t\tcode: \"NOT_FOUND\",\n\t\t\tmessage: \"Plugin route not found\",\n\t\t},\n\t};\n}\n\nexport function createPublicPluginApiRouteHandler(\n\truntime: PublicPluginApiRouteRuntime,\n): PublicPluginApiRouteHandler {\n\treturn async (pluginId, method, path, request) => {\n\t\tif (!getPublicPluginRouteMeta(runtime, pluginId, path)) {\n\t\t\treturn pluginRouteNotFound();\n\t\t}\n\n\t\treturn runtime.handlePluginApiRoute(pluginId, method, path, request);\n\t};\n}\n"],"mappings":"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"}
|