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,414 +0,0 @@
|
|
|
1
|
-
import { m as listTablesLike, p as listTableColumns } from "./dialect-helpers-7_IqPdh9.mjs";
|
|
2
|
-
import { sql } from "kysely";
|
|
3
|
-
|
|
4
|
-
//#region src/api/handlers/snapshot.ts
|
|
5
|
-
/**
|
|
6
|
-
* Verify HMAC-SHA256 preview signature using crypto.subtle.
|
|
7
|
-
* Returns true if the signature is valid and not expired.
|
|
8
|
-
*/
|
|
9
|
-
async function verifyPreviewSignature(source, exp, sig, secret) {
|
|
10
|
-
if (exp < Date.now() / 1e3) return false;
|
|
11
|
-
const encoder = new TextEncoder();
|
|
12
|
-
const key = await crypto.subtle.importKey("raw", encoder.encode(secret), {
|
|
13
|
-
name: "HMAC",
|
|
14
|
-
hash: "SHA-256"
|
|
15
|
-
}, false, ["verify"]);
|
|
16
|
-
const sigBytes = new Uint8Array(sig.length / 2);
|
|
17
|
-
for (let i = 0; i < sig.length; i += 2) sigBytes[i / 2] = parseInt(sig.substring(i, i + 2), 16);
|
|
18
|
-
return crypto.subtle.verify("HMAC", key, sigBytes, encoder.encode(`${source}:${exp}`));
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Parse an X-Preview-Signature header value into its components.
|
|
22
|
-
*
|
|
23
|
-
* Format: "source:exp:sig" where source is a URL (contains colons),
|
|
24
|
-
* exp is a unix timestamp, and sig is 64 hex chars.
|
|
25
|
-
*
|
|
26
|
-
* Parses from the right since source URLs contain colons.
|
|
27
|
-
*
|
|
28
|
-
* @returns Parsed components, or null if the format is invalid
|
|
29
|
-
*/
|
|
30
|
-
function parsePreviewSignatureHeader(header) {
|
|
31
|
-
const lastColon = header.lastIndexOf(":");
|
|
32
|
-
if (lastColon <= 0) return null;
|
|
33
|
-
const sig = header.substring(lastColon + 1);
|
|
34
|
-
if (sig.length !== 64) return null;
|
|
35
|
-
const rest = header.substring(0, lastColon);
|
|
36
|
-
const secondLastColon = rest.lastIndexOf(":");
|
|
37
|
-
if (secondLastColon <= 0) return null;
|
|
38
|
-
const source = rest.substring(0, secondLastColon);
|
|
39
|
-
const exp = parseInt(rest.substring(secondLastColon + 1), 10);
|
|
40
|
-
if (isNaN(exp) || source.length === 0) return null;
|
|
41
|
-
return {
|
|
42
|
-
source,
|
|
43
|
-
exp,
|
|
44
|
-
sig
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
const MEDIA_FILE_PREFIX = "/_emdash/api/media/file/";
|
|
48
|
-
const MEDIA_FILE_SUFFIX = /[?#]/;
|
|
49
|
-
const EXTERNAL_OR_ROOT_URL = /^(?:[a-z][a-z0-9+.-]*:|\/)/i;
|
|
50
|
-
/**
|
|
51
|
-
* Parse a JSON string value and inject `src` for local media objects.
|
|
52
|
-
* Returns the original string if it's not a local media value.
|
|
53
|
-
*/
|
|
54
|
-
function injectMediaSrc(jsonStr, origin) {
|
|
55
|
-
try {
|
|
56
|
-
const obj = JSON.parse(jsonStr);
|
|
57
|
-
if (typeof obj !== "object" || obj === null || Array.isArray(obj)) return jsonStr;
|
|
58
|
-
if (injectMediaSrcInto(obj, origin)) return JSON.stringify(obj);
|
|
59
|
-
return jsonStr;
|
|
60
|
-
} catch {
|
|
61
|
-
return jsonStr;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
function isRecord(value) {
|
|
65
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Recursively walk an object and inject `src` into local media values.
|
|
69
|
-
* Returns true if any modifications were made.
|
|
70
|
-
*/
|
|
71
|
-
function injectMediaSrcInto(obj, origin) {
|
|
72
|
-
let modified = false;
|
|
73
|
-
if ((obj.provider === "local" || !obj.provider && obj.id && obj.meta) && !obj.src) {
|
|
74
|
-
const storageKey = (isRecord(obj.meta) ? obj.meta : void 0)?.storageKey ?? obj.id;
|
|
75
|
-
if (typeof storageKey === "string" && storageKey) {
|
|
76
|
-
obj.src = `${origin}${MEDIA_FILE_PREFIX}${storageKey}`;
|
|
77
|
-
modified = true;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
for (const value of Object.values(obj)) if (Array.isArray(value)) {
|
|
81
|
-
for (const item of value) if (isRecord(item)) {
|
|
82
|
-
if (injectMediaSrcInto(item, origin)) modified = true;
|
|
83
|
-
}
|
|
84
|
-
} else if (isRecord(value)) {
|
|
85
|
-
if (injectMediaSrcInto(value, origin)) modified = true;
|
|
86
|
-
}
|
|
87
|
-
return modified;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Safe identifier pattern for snapshot table names.
|
|
91
|
-
* More permissive than validateIdentifier() — allows leading underscores
|
|
92
|
-
* (needed for system tables like _emdash_collections).
|
|
93
|
-
*/
|
|
94
|
-
const SAFE_TABLE_NAME = /^[a-z_][a-z0-9_]*$/;
|
|
95
|
-
/**
|
|
96
|
-
* System tables included in snapshots.
|
|
97
|
-
* Content tables (ec_*) are discovered dynamically.
|
|
98
|
-
*/
|
|
99
|
-
const SYSTEM_TABLES = [
|
|
100
|
-
"_emdash_block_types",
|
|
101
|
-
"_emdash_block_type_versions",
|
|
102
|
-
"_emdash_collections",
|
|
103
|
-
"_emdash_fields",
|
|
104
|
-
"_emdash_taxonomy_defs",
|
|
105
|
-
"_emdash_taxonomy_def_groups",
|
|
106
|
-
"_emdash_menus",
|
|
107
|
-
"_emdash_menu_items",
|
|
108
|
-
"_emdash_sections",
|
|
109
|
-
"_emdash_widget_areas",
|
|
110
|
-
"_emdash_widgets",
|
|
111
|
-
"_emdash_seo",
|
|
112
|
-
"_emdash_migrations",
|
|
113
|
-
"content_taxonomies",
|
|
114
|
-
"taxonomies",
|
|
115
|
-
"options",
|
|
116
|
-
"media",
|
|
117
|
-
"revisions"
|
|
118
|
-
];
|
|
119
|
-
/**
|
|
120
|
-
* Published snapshots are available to preview-signature callers, so every
|
|
121
|
-
* system table must be classified explicitly. Adding a snapshot table without
|
|
122
|
-
* choosing a policy is a type error rather than an accidental data export.
|
|
123
|
-
*/
|
|
124
|
-
const PUBLISHED_TABLE_POLICIES = {
|
|
125
|
-
_emdash_block_types: "full",
|
|
126
|
-
_emdash_block_type_versions: "full",
|
|
127
|
-
_emdash_collections: "full",
|
|
128
|
-
_emdash_fields: "full",
|
|
129
|
-
_emdash_taxonomy_defs: "full",
|
|
130
|
-
_emdash_taxonomy_def_groups: "full",
|
|
131
|
-
_emdash_menus: "full",
|
|
132
|
-
_emdash_menu_items: "content-linked",
|
|
133
|
-
_emdash_sections: "full",
|
|
134
|
-
_emdash_widget_areas: "full",
|
|
135
|
-
_emdash_widgets: "full",
|
|
136
|
-
_emdash_seo: "content-linked",
|
|
137
|
-
_emdash_migrations: "full",
|
|
138
|
-
content_taxonomies: "content-linked",
|
|
139
|
-
taxonomies: "content-linked",
|
|
140
|
-
options: "content-linked",
|
|
141
|
-
media: "content-linked",
|
|
142
|
-
revisions: "omit"
|
|
143
|
-
};
|
|
144
|
-
const SYSTEM_TABLE_SET = new Set(SYSTEM_TABLES);
|
|
145
|
-
function isSystemTable(tableName) {
|
|
146
|
-
return SYSTEM_TABLE_SET.has(tableName);
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Table name prefixes excluded from snapshots (auth/security data).
|
|
150
|
-
*/
|
|
151
|
-
const EXCLUDED_PREFIXES = [
|
|
152
|
-
"_emdash_api_tokens",
|
|
153
|
-
"_emdash_oauth_tokens",
|
|
154
|
-
"_emdash_authorization_codes",
|
|
155
|
-
"_emdash_device_codes",
|
|
156
|
-
"_emdash_migrations_lock",
|
|
157
|
-
"_emdash_transfer_",
|
|
158
|
-
"_plugin_",
|
|
159
|
-
"users",
|
|
160
|
-
"sessions",
|
|
161
|
-
"credentials",
|
|
162
|
-
"challenges"
|
|
163
|
-
];
|
|
164
|
-
/**
|
|
165
|
-
* Options key prefixes safe for inclusion in snapshots.
|
|
166
|
-
*
|
|
167
|
-
* The options table contains plugin secrets (plugin:*), passkey challenges
|
|
168
|
-
* (emdash:passkey_pending:*), and setup state that must not leak to
|
|
169
|
-
* preview databases. Only site-level rendering settings are needed.
|
|
170
|
-
*/
|
|
171
|
-
const SAFE_OPTIONS_PREFIXES = ["site:"];
|
|
172
|
-
function isExcluded(tableName) {
|
|
173
|
-
return EXCLUDED_PREFIXES.some((prefix) => tableName.startsWith(prefix));
|
|
174
|
-
}
|
|
175
|
-
function normalizeColumnType(type) {
|
|
176
|
-
switch (type.toLowerCase()) {
|
|
177
|
-
case "smallint":
|
|
178
|
-
case "integer":
|
|
179
|
-
case "bigint":
|
|
180
|
-
case "boolean": return "INTEGER";
|
|
181
|
-
case "real":
|
|
182
|
-
case "double precision":
|
|
183
|
-
case "numeric":
|
|
184
|
-
case "decimal": return "REAL";
|
|
185
|
-
case "blob":
|
|
186
|
-
case "bytea": return "BLOB";
|
|
187
|
-
case "json":
|
|
188
|
-
case "jsonb": return "JSON";
|
|
189
|
-
default: return "TEXT";
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
function normalizeRows(rows, types) {
|
|
193
|
-
for (const row of rows) for (const [column, type] of Object.entries(types)) {
|
|
194
|
-
const value = row[column];
|
|
195
|
-
if (type === "JSON" && value !== null && value !== void 0 && typeof value !== "string") row[column] = JSON.stringify(value);
|
|
196
|
-
}
|
|
197
|
-
return rows;
|
|
198
|
-
}
|
|
199
|
-
function createPublishedProjection() {
|
|
200
|
-
return {
|
|
201
|
-
content: /* @__PURE__ */ new Map(),
|
|
202
|
-
taxonomyGroups: /* @__PURE__ */ new Set(),
|
|
203
|
-
mediaIds: /* @__PURE__ */ new Set(),
|
|
204
|
-
mediaStorageKeys: /* @__PURE__ */ new Set()
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
function readString(value) {
|
|
208
|
-
return typeof value === "string" && value.length > 0 ? value : null;
|
|
209
|
-
}
|
|
210
|
-
function recordPublishedContent(projection, tableName, rows) {
|
|
211
|
-
const references = {
|
|
212
|
-
ids: /* @__PURE__ */ new Set(),
|
|
213
|
-
translationGroups: /* @__PURE__ */ new Set()
|
|
214
|
-
};
|
|
215
|
-
for (const row of rows) {
|
|
216
|
-
const id = readString(row.id);
|
|
217
|
-
const translationGroup = readString(row.translation_group);
|
|
218
|
-
if (id) references.ids.add(id);
|
|
219
|
-
if (translationGroup) references.translationGroups.add(translationGroup);
|
|
220
|
-
}
|
|
221
|
-
projection.content.set(tableName.slice(3), references);
|
|
222
|
-
}
|
|
223
|
-
function isPublishedContentReference(projection, collection, reference) {
|
|
224
|
-
const collectionName = readString(collection);
|
|
225
|
-
const id = readString(reference);
|
|
226
|
-
if (!collectionName || !id) return false;
|
|
227
|
-
const references = projection.content.get(collectionName);
|
|
228
|
-
return references?.ids.has(id) === true || references?.translationGroups.has(id) === true;
|
|
229
|
-
}
|
|
230
|
-
function collectMediaReferences(value, projection) {
|
|
231
|
-
if (typeof value === "string") {
|
|
232
|
-
if (value.startsWith(MEDIA_FILE_PREFIX)) {
|
|
233
|
-
const storageKey = value.slice(24).split(MEDIA_FILE_SUFFIX, 1)[0];
|
|
234
|
-
if (storageKey) projection.mediaStorageKeys.add(storageKey);
|
|
235
|
-
return;
|
|
236
|
-
}
|
|
237
|
-
const trimmed = value.trimStart();
|
|
238
|
-
if (trimmed.startsWith("{") || trimmed.startsWith("[")) try {
|
|
239
|
-
collectMediaReferences(JSON.parse(value), projection);
|
|
240
|
-
} catch {}
|
|
241
|
-
return;
|
|
242
|
-
}
|
|
243
|
-
if (Array.isArray(value)) {
|
|
244
|
-
for (const item of value) collectMediaReferences(item, projection);
|
|
245
|
-
return;
|
|
246
|
-
}
|
|
247
|
-
if (!isRecord(value)) return;
|
|
248
|
-
const mediaId = readString(value.mediaId);
|
|
249
|
-
if (mediaId) projection.mediaIds.add(mediaId);
|
|
250
|
-
const provider = readString(value.provider);
|
|
251
|
-
const meta = isRecord(value.meta) ? value.meta : null;
|
|
252
|
-
const localMediaId = readString(value.id);
|
|
253
|
-
if ((provider === "local" || !provider && meta) && localMediaId) projection.mediaIds.add(localMediaId);
|
|
254
|
-
const storageKey = readString(value.storageKey) ?? readString(meta?.storageKey);
|
|
255
|
-
if (storageKey) projection.mediaStorageKeys.add(storageKey);
|
|
256
|
-
const assetRef = readString((isRecord(value.asset) ? value.asset : null)?._ref);
|
|
257
|
-
if (assetRef) {
|
|
258
|
-
projection.mediaIds.add(assetRef);
|
|
259
|
-
projection.mediaStorageKeys.add(assetRef);
|
|
260
|
-
}
|
|
261
|
-
for (const child of Object.values(value)) collectMediaReferences(child, projection);
|
|
262
|
-
}
|
|
263
|
-
function projectTaxonomyRows(rows, projection) {
|
|
264
|
-
const includedGroups = new Set(projection.taxonomyGroups);
|
|
265
|
-
const includedIds = new Set(projection.taxonomyGroups);
|
|
266
|
-
let changed = true;
|
|
267
|
-
while (changed) {
|
|
268
|
-
changed = false;
|
|
269
|
-
for (const row of rows) {
|
|
270
|
-
const id = readString(row.id);
|
|
271
|
-
const group = readString(row.translation_group);
|
|
272
|
-
if (!id) continue;
|
|
273
|
-
if (includedIds.has(id) || group && includedGroups.has(group)) {
|
|
274
|
-
if (!includedIds.has(id)) {
|
|
275
|
-
includedIds.add(id);
|
|
276
|
-
changed = true;
|
|
277
|
-
}
|
|
278
|
-
if (group && !includedGroups.has(group)) {
|
|
279
|
-
includedGroups.add(group);
|
|
280
|
-
changed = true;
|
|
281
|
-
}
|
|
282
|
-
const parentId = readString(row.parent_id);
|
|
283
|
-
if (parentId && !includedIds.has(parentId)) {
|
|
284
|
-
includedIds.add(parentId);
|
|
285
|
-
changed = true;
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
return rows.filter((row) => {
|
|
291
|
-
const id = readString(row.id);
|
|
292
|
-
const group = readString(row.translation_group);
|
|
293
|
-
return id && includedIds.has(id) || group && includedGroups.has(group);
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
|
-
function projectPublishedRows(tableName, rows, projection) {
|
|
297
|
-
switch (tableName) {
|
|
298
|
-
case "_emdash_seo": return rows.filter((row) => {
|
|
299
|
-
if (!isPublishedContentReference(projection, row.collection, row.content_id)) return false;
|
|
300
|
-
const image = readString(row.seo_image);
|
|
301
|
-
if (image) {
|
|
302
|
-
collectMediaReferences(image, projection);
|
|
303
|
-
if (!EXTERNAL_OR_ROOT_URL.test(image)) {
|
|
304
|
-
projection.mediaIds.add(image);
|
|
305
|
-
projection.mediaStorageKeys.add(image);
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
return true;
|
|
309
|
-
});
|
|
310
|
-
case "content_taxonomies": return rows.filter((row) => {
|
|
311
|
-
const published = isPublishedContentReference(projection, row.collection, row.entry_id);
|
|
312
|
-
const taxonomyGroup = readString(row.taxonomy_id);
|
|
313
|
-
if (published && taxonomyGroup) projection.taxonomyGroups.add(taxonomyGroup);
|
|
314
|
-
return published;
|
|
315
|
-
});
|
|
316
|
-
case "taxonomies": return projectTaxonomyRows(rows, projection);
|
|
317
|
-
case "_emdash_menu_items": return rows.filter((row) => {
|
|
318
|
-
const type = readString(row.type);
|
|
319
|
-
const referenceId = readString(row.reference_id);
|
|
320
|
-
if (!referenceId || type === "custom") return true;
|
|
321
|
-
if (type === "taxonomy") {
|
|
322
|
-
projection.taxonomyGroups.add(referenceId);
|
|
323
|
-
return true;
|
|
324
|
-
}
|
|
325
|
-
if (type === "collection" && !row.reference_id) return true;
|
|
326
|
-
return isPublishedContentReference(projection, readString(row.reference_collection) ?? (type === "post" || type === "page" ? `${type}s` : null), referenceId);
|
|
327
|
-
});
|
|
328
|
-
case "media": return rows.filter((row) => {
|
|
329
|
-
const id = readString(row.id);
|
|
330
|
-
const storageKey = readString(row.storage_key);
|
|
331
|
-
return id !== null && projection.mediaIds.has(id) || storageKey !== null && projection.mediaStorageKeys.has(storageKey);
|
|
332
|
-
});
|
|
333
|
-
case "options": return rows;
|
|
334
|
-
default: return [];
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
/**
|
|
338
|
-
* Generate a portable database snapshot.
|
|
339
|
-
*
|
|
340
|
-
* Discovers ec_* content tables dynamically, exports system tables
|
|
341
|
-
* needed for rendering, and includes schema info for table recreation.
|
|
342
|
-
*/
|
|
343
|
-
async function generateSnapshot(db, options) {
|
|
344
|
-
const includeDrafts = options?.includeDrafts ?? false;
|
|
345
|
-
const includeTrashed = options?.includeTrashed ?? false;
|
|
346
|
-
const optionPrefixes = options?.optionPrefixes ?? SAFE_OPTIONS_PREFIXES;
|
|
347
|
-
const optionKeys = new Set(options?.optionKeys);
|
|
348
|
-
const publishedOnly = !includeDrafts && !includeTrashed;
|
|
349
|
-
const publishedProjection = createPublishedProjection();
|
|
350
|
-
const allTables = [...await listTablesLike(db, "ec_%"), ...SYSTEM_TABLES];
|
|
351
|
-
const tables = {};
|
|
352
|
-
const schema = {};
|
|
353
|
-
for (const tableName of allTables) {
|
|
354
|
-
if (isExcluded(tableName)) continue;
|
|
355
|
-
if (!SAFE_TABLE_NAME.test(tableName)) continue;
|
|
356
|
-
const columnInfo = await listTableColumns(db, tableName);
|
|
357
|
-
if (columnInfo.length === 0) continue;
|
|
358
|
-
const columns = columnInfo.map((column) => column.name);
|
|
359
|
-
const types = {};
|
|
360
|
-
for (const column of columnInfo) types[column.name] = normalizeColumnType(column.type);
|
|
361
|
-
schema[tableName] = {
|
|
362
|
-
columns,
|
|
363
|
-
types
|
|
364
|
-
};
|
|
365
|
-
let rows;
|
|
366
|
-
if (tableName.startsWith("ec_")) if (includeTrashed) rows = (await sql`
|
|
367
|
-
SELECT * FROM ${sql.ref(tableName)}
|
|
368
|
-
`.execute(db)).rows;
|
|
369
|
-
else if (includeDrafts) rows = (await sql`
|
|
370
|
-
SELECT * FROM ${sql.ref(tableName)}
|
|
371
|
-
WHERE deleted_at IS NULL
|
|
372
|
-
`.execute(db)).rows;
|
|
373
|
-
else rows = (await sql`
|
|
374
|
-
SELECT * FROM ${sql.ref(tableName)}
|
|
375
|
-
WHERE deleted_at IS NULL
|
|
376
|
-
AND status = 'published'
|
|
377
|
-
`.execute(db)).rows;
|
|
378
|
-
else if (publishedOnly && isSystemTable(tableName) && PUBLISHED_TABLE_POLICIES[tableName] === "omit") rows = [];
|
|
379
|
-
else if (tableName === "options") rows = (await sql`
|
|
380
|
-
SELECT * FROM ${sql.ref(tableName)}
|
|
381
|
-
`.execute(db)).rows.filter((row) => {
|
|
382
|
-
const name = typeof row.name === "string" ? row.name : "";
|
|
383
|
-
return optionKeys.has(name) || optionPrefixes.some((prefix) => name.startsWith(prefix));
|
|
384
|
-
});
|
|
385
|
-
else rows = (await sql`
|
|
386
|
-
SELECT * FROM ${sql.ref(tableName)}
|
|
387
|
-
`.execute(db)).rows;
|
|
388
|
-
if (publishedOnly) {
|
|
389
|
-
if (tableName.startsWith("ec_")) recordPublishedContent(publishedProjection, tableName, rows);
|
|
390
|
-
else if (isSystemTable(tableName) && PUBLISHED_TABLE_POLICIES[tableName] === "content-linked") rows = projectPublishedRows(tableName, rows, publishedProjection);
|
|
391
|
-
for (const row of rows) collectMediaReferences(row, publishedProjection);
|
|
392
|
-
}
|
|
393
|
-
if (rows.length > 0) tables[tableName] = normalizeRows(rows, types);
|
|
394
|
-
}
|
|
395
|
-
if (options?.origin) {
|
|
396
|
-
const origin = options.origin;
|
|
397
|
-
for (const [tableName, rows] of Object.entries(tables)) {
|
|
398
|
-
if (!tableName.startsWith("ec_")) continue;
|
|
399
|
-
for (const row of rows) for (const [col, value] of Object.entries(row)) {
|
|
400
|
-
if (typeof value !== "string" || !value.startsWith("{")) continue;
|
|
401
|
-
row[col] = injectMediaSrc(value, origin);
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
return {
|
|
406
|
-
tables,
|
|
407
|
-
schema,
|
|
408
|
-
generatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
409
|
-
};
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
//#endregion
|
|
413
|
-
export { parsePreviewSignatureHeader as n, verifyPreviewSignature as r, generateSnapshot as t };
|
|
414
|
-
//# sourceMappingURL=snapshot-DYsG4uOq.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-DYsG4uOq.mjs","names":[],"sources":["../src/api/handlers/snapshot.ts"],"sourcesContent":["/**\n * Snapshot handler — generates a portable database snapshot.\n *\n * Returns all content tables, schema definitions, and supporting data\n * needed to render content in an isolated preview database.\n *\n * Used by:\n * - DO preview database (EmDashPreviewDB.populateFromSnapshot)\n * - Future: CLI export, backup, site migration\n */\n\nimport type { Kysely } from \"kysely\";\nimport { sql } from \"kysely\";\n\nimport { listTableColumns, listTablesLike } from \"../../database/dialect-helpers.js\";\nimport type { Database } from \"../../database/types.js\";\n\n// ─�� Preview signature verification ──────────────────────────────\n\n/**\n * Verify HMAC-SHA256 preview signature using crypto.subtle.\n * Returns true if the signature is valid and not expired.\n */\nexport async function verifyPreviewSignature(\n\tsource: string,\n\texp: number,\n\tsig: string,\n\tsecret: string,\n): Promise<boolean> {\n\tif (exp < Date.now() / 1000) return false;\n\n\tconst encoder = new TextEncoder();\n\tconst key = await crypto.subtle.importKey(\n\t\t\"raw\",\n\t\tencoder.encode(secret),\n\t\t{ name: \"HMAC\", hash: \"SHA-256\" },\n\t\tfalse,\n\t\t[\"verify\"],\n\t);\n\n\tconst sigBytes = new Uint8Array(sig.length / 2);\n\tfor (let i = 0; i < sig.length; i += 2) {\n\t\tsigBytes[i / 2] = parseInt(sig.substring(i, i + 2), 16);\n\t}\n\n\treturn crypto.subtle.verify(\"HMAC\", key, sigBytes, encoder.encode(`${source}:${exp}`));\n}\n\n/**\n * Parse an X-Preview-Signature header value into its components.\n *\n * Format: \"source:exp:sig\" where source is a URL (contains colons),\n * exp is a unix timestamp, and sig is 64 hex chars.\n *\n * Parses from the right since source URLs contain colons.\n *\n * @returns Parsed components, or null if the format is invalid\n */\nexport function parsePreviewSignatureHeader(\n\theader: string,\n): { source: string; exp: number; sig: string } | null {\n\tconst lastColon = header.lastIndexOf(\":\");\n\tif (lastColon <= 0) return null;\n\n\tconst sig = header.substring(lastColon + 1);\n\tif (sig.length !== 64) return null;\n\n\tconst rest = header.substring(0, lastColon);\n\tconst secondLastColon = rest.lastIndexOf(\":\");\n\tif (secondLastColon <= 0) return null;\n\n\tconst source = rest.substring(0, secondLastColon);\n\tconst exp = parseInt(rest.substring(secondLastColon + 1), 10);\n\n\tif (isNaN(exp) || source.length === 0) return null;\n\n\treturn { source, exp, sig };\n}\n\n// ── Media URL rewriting ─────────────────────────────────────────\n\nconst MEDIA_FILE_PREFIX = \"/_emdash/api/media/file/\";\nconst MEDIA_FILE_SUFFIX = /[?#]/;\nconst EXTERNAL_OR_ROOT_URL = /^(?:[a-z][a-z0-9+.-]*:|\\/)/i;\n\n/**\n * Parse a JSON string value and inject `src` for local media objects.\n * Returns the original string if it's not a local media value.\n */\nfunction injectMediaSrc(jsonStr: string, origin: string): string {\n\ttry {\n\t\tconst obj = JSON.parse(jsonStr);\n\t\tif (typeof obj !== \"object\" || obj === null || Array.isArray(obj)) return jsonStr;\n\t\tif (injectMediaSrcInto(obj, origin)) {\n\t\t\treturn JSON.stringify(obj);\n\t\t}\n\t\treturn jsonStr;\n\t} catch {\n\t\treturn jsonStr;\n\t}\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n/**\n * Recursively walk an object and inject `src` into local media values.\n * Returns true if any modifications were made.\n */\nfunction injectMediaSrcInto(obj: Record<string, unknown>, origin: string): boolean {\n\tlet modified = false;\n\n\t// Check if this object itself is a local media value\n\tif ((obj.provider === \"local\" || (!obj.provider && obj.id && obj.meta)) && !obj.src) {\n\t\tconst meta = isRecord(obj.meta) ? obj.meta : undefined;\n\t\tconst storageKey = meta?.storageKey ?? obj.id;\n\t\tif (typeof storageKey === \"string\" && storageKey) {\n\t\t\tobj.src = `${origin}${MEDIA_FILE_PREFIX}${storageKey}`;\n\t\t\tmodified = true;\n\t\t}\n\t}\n\n\t// Recurse into nested objects/arrays (e.g. Portable Text with image blocks)\n\tfor (const value of Object.values(obj)) {\n\t\tif (Array.isArray(value)) {\n\t\t\tfor (const item of value) {\n\t\t\t\tif (isRecord(item)) {\n\t\t\t\t\tif (injectMediaSrcInto(item, origin)) {\n\t\t\t\t\t\tmodified = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isRecord(value)) {\n\t\t\tif (injectMediaSrcInto(value, origin)) {\n\t\t\t\tmodified = true;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn modified;\n}\n\n// ── Snapshot generation ─────────────────────────────────────────\n\n/**\n * Safe identifier pattern for snapshot table names.\n * More permissive than validateIdentifier() — allows leading underscores\n * (needed for system tables like _emdash_collections).\n */\nconst SAFE_TABLE_NAME = /^[a-z_][a-z0-9_]*$/;\n\n/** Snapshot shape consumed by the DO preview database */\nexport interface Snapshot {\n\ttables: Record<string, Record<string, unknown>[]>;\n\tschema: Record<\n\t\tstring,\n\t\t{\n\t\t\tcolumns: string[];\n\t\t\ttypes?: Record<string, string>;\n\t\t}\n\t>;\n\tgeneratedAt: string;\n}\n\n/**\n * System tables included in snapshots.\n * Content tables (ec_*) are discovered dynamically.\n */\nconst SYSTEM_TABLES = [\n\t\"_emdash_block_types\",\n\t\"_emdash_block_type_versions\",\n\t\"_emdash_collections\",\n\t\"_emdash_fields\",\n\t\"_emdash_taxonomy_defs\",\n\t\"_emdash_taxonomy_def_groups\",\n\t\"_emdash_menus\",\n\t\"_emdash_menu_items\",\n\t\"_emdash_sections\",\n\t\"_emdash_widget_areas\",\n\t\"_emdash_widgets\",\n\t\"_emdash_seo\",\n\t\"_emdash_migrations\",\n\t\"content_taxonomies\",\n\t\"taxonomies\",\n\t\"options\",\n\t\"media\",\n\t\"revisions\",\n] as const;\n\ntype SystemTable = (typeof SYSTEM_TABLES)[number];\ntype PublishedTablePolicy = \"full\" | \"content-linked\" | \"omit\";\n\n/**\n * Published snapshots are available to preview-signature callers, so every\n * system table must be classified explicitly. Adding a snapshot table without\n * choosing a policy is a type error rather than an accidental data export.\n */\nconst PUBLISHED_TABLE_POLICIES: Record<SystemTable, PublishedTablePolicy> = {\n\t_emdash_block_types: \"full\",\n\t_emdash_block_type_versions: \"full\",\n\t_emdash_collections: \"full\",\n\t_emdash_fields: \"full\",\n\t_emdash_taxonomy_defs: \"full\",\n\t_emdash_taxonomy_def_groups: \"full\",\n\t_emdash_menus: \"full\",\n\t_emdash_menu_items: \"content-linked\",\n\t_emdash_sections: \"full\",\n\t_emdash_widget_areas: \"full\",\n\t_emdash_widgets: \"full\",\n\t_emdash_seo: \"content-linked\",\n\t_emdash_migrations: \"full\",\n\tcontent_taxonomies: \"content-linked\",\n\ttaxonomies: \"content-linked\",\n\toptions: \"content-linked\",\n\tmedia: \"content-linked\",\n\trevisions: \"omit\",\n};\n\nconst SYSTEM_TABLE_SET: ReadonlySet<string> = new Set(SYSTEM_TABLES);\n\nfunction isSystemTable(tableName: string): tableName is SystemTable {\n\treturn SYSTEM_TABLE_SET.has(tableName);\n}\n\ninterface PublishedContentReferences {\n\tids: Set<string>;\n\ttranslationGroups: Set<string>;\n}\n\ninterface PublishedProjection {\n\tcontent: Map<string, PublishedContentReferences>;\n\ttaxonomyGroups: Set<string>;\n\tmediaIds: Set<string>;\n\tmediaStorageKeys: Set<string>;\n}\n\n/**\n * Table name prefixes excluded from snapshots (auth/security data).\n */\nconst EXCLUDED_PREFIXES = [\n\t\"_emdash_api_tokens\",\n\t\"_emdash_oauth_tokens\",\n\t\"_emdash_authorization_codes\",\n\t\"_emdash_device_codes\",\n\t\"_emdash_migrations_lock\",\n\t\"_emdash_transfer_\",\n\t\"_plugin_\",\n\t\"users\",\n\t\"sessions\",\n\t\"credentials\",\n\t\"challenges\",\n];\n\n/**\n * Options key prefixes safe for inclusion in snapshots.\n *\n * The options table contains plugin secrets (plugin:*), passkey challenges\n * (emdash:passkey_pending:*), and setup state that must not leak to\n * preview databases. Only site-level rendering settings are needed.\n */\nconst SAFE_OPTIONS_PREFIXES = [\"site:\"];\n\nfunction isExcluded(tableName: string): boolean {\n\treturn EXCLUDED_PREFIXES.some((prefix) => tableName.startsWith(prefix));\n}\n\ntype SnapshotColumnType = \"TEXT\" | \"INTEGER\" | \"REAL\" | \"BLOB\" | \"JSON\";\n\nfunction normalizeColumnType(type: string): SnapshotColumnType {\n\tswitch (type.toLowerCase()) {\n\t\tcase \"smallint\":\n\t\tcase \"integer\":\n\t\tcase \"bigint\":\n\t\tcase \"boolean\":\n\t\t\treturn \"INTEGER\";\n\t\tcase \"real\":\n\t\tcase \"double precision\":\n\t\tcase \"numeric\":\n\t\tcase \"decimal\":\n\t\t\treturn \"REAL\";\n\t\tcase \"blob\":\n\t\tcase \"bytea\":\n\t\t\treturn \"BLOB\";\n\t\tcase \"json\":\n\t\tcase \"jsonb\":\n\t\t\treturn \"JSON\";\n\t\tdefault:\n\t\t\treturn \"TEXT\";\n\t}\n}\n\nfunction normalizeRows(\n\trows: Record<string, unknown>[],\n\ttypes: Record<string, SnapshotColumnType>,\n): Record<string, unknown>[] {\n\tfor (const row of rows) {\n\t\tfor (const [column, type] of Object.entries(types)) {\n\t\t\tconst value = row[column];\n\t\t\tif (type === \"JSON\" && value !== null && value !== undefined && typeof value !== \"string\") {\n\t\t\t\trow[column] = JSON.stringify(value);\n\t\t\t}\n\t\t}\n\t}\n\treturn rows;\n}\n\nfunction createPublishedProjection(): PublishedProjection {\n\treturn {\n\t\tcontent: new Map(),\n\t\ttaxonomyGroups: new Set(),\n\t\tmediaIds: new Set(),\n\t\tmediaStorageKeys: new Set(),\n\t};\n}\n\nfunction readString(value: unknown): string | null {\n\treturn typeof value === \"string\" && value.length > 0 ? value : null;\n}\n\nfunction recordPublishedContent(\n\tprojection: PublishedProjection,\n\ttableName: string,\n\trows: Record<string, unknown>[],\n): void {\n\tconst references: PublishedContentReferences = {\n\t\tids: new Set(),\n\t\ttranslationGroups: new Set(),\n\t};\n\tfor (const row of rows) {\n\t\tconst id = readString(row.id);\n\t\tconst translationGroup = readString(row.translation_group);\n\t\tif (id) references.ids.add(id);\n\t\tif (translationGroup) references.translationGroups.add(translationGroup);\n\t}\n\tprojection.content.set(tableName.slice(\"ec_\".length), references);\n}\n\nfunction isPublishedContentReference(\n\tprojection: PublishedProjection,\n\tcollection: unknown,\n\treference: unknown,\n): boolean {\n\tconst collectionName = readString(collection);\n\tconst id = readString(reference);\n\tif (!collectionName || !id) return false;\n\tconst references = projection.content.get(collectionName);\n\treturn references?.ids.has(id) === true || references?.translationGroups.has(id) === true;\n}\n\nfunction collectMediaReferences(value: unknown, projection: PublishedProjection): void {\n\tif (typeof value === \"string\") {\n\t\tif (value.startsWith(MEDIA_FILE_PREFIX)) {\n\t\t\tconst storageKey = value.slice(MEDIA_FILE_PREFIX.length).split(MEDIA_FILE_SUFFIX, 1)[0];\n\t\t\tif (storageKey) projection.mediaStorageKeys.add(storageKey);\n\t\t\treturn;\n\t\t}\n\t\tconst trimmed = value.trimStart();\n\t\tif (trimmed.startsWith(\"{\") || trimmed.startsWith(\"[\")) {\n\t\t\ttry {\n\t\t\t\tcollectMediaReferences(JSON.parse(value), projection);\n\t\t\t} catch {\n\t\t\t\t// Not structured data.\n\t\t\t}\n\t\t}\n\t\treturn;\n\t}\n\tif (Array.isArray(value)) {\n\t\tfor (const item of value) collectMediaReferences(item, projection);\n\t\treturn;\n\t}\n\tif (!isRecord(value)) return;\n\n\tconst mediaId = readString(value.mediaId);\n\tif (mediaId) projection.mediaIds.add(mediaId);\n\n\tconst provider = readString(value.provider);\n\tconst meta = isRecord(value.meta) ? value.meta : null;\n\tconst localMediaId = readString(value.id);\n\tif ((provider === \"local\" || (!provider && meta)) && localMediaId) {\n\t\tprojection.mediaIds.add(localMediaId);\n\t}\n\tconst storageKey = readString(value.storageKey) ?? readString(meta?.storageKey);\n\tif (storageKey) projection.mediaStorageKeys.add(storageKey);\n\n\tconst asset = isRecord(value.asset) ? value.asset : null;\n\tconst assetRef = readString(asset?._ref);\n\tif (assetRef) {\n\t\tprojection.mediaIds.add(assetRef);\n\t\tprojection.mediaStorageKeys.add(assetRef);\n\t}\n\n\tfor (const child of Object.values(value)) collectMediaReferences(child, projection);\n}\n\nfunction projectTaxonomyRows(\n\trows: Record<string, unknown>[],\n\tprojection: PublishedProjection,\n): Record<string, unknown>[] {\n\tconst includedGroups = new Set(projection.taxonomyGroups);\n\tconst includedIds = new Set(projection.taxonomyGroups);\n\tlet changed = true;\n\twhile (changed) {\n\t\tchanged = false;\n\t\tfor (const row of rows) {\n\t\t\tconst id = readString(row.id);\n\t\t\tconst group = readString(row.translation_group);\n\t\t\tif (!id) continue;\n\t\t\tif (includedIds.has(id) || (group && includedGroups.has(group))) {\n\t\t\t\tif (!includedIds.has(id)) {\n\t\t\t\t\tincludedIds.add(id);\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t\tif (group && !includedGroups.has(group)) {\n\t\t\t\t\tincludedGroups.add(group);\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t\tconst parentId = readString(row.parent_id);\n\t\t\t\tif (parentId && !includedIds.has(parentId)) {\n\t\t\t\t\tincludedIds.add(parentId);\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn rows.filter((row) => {\n\t\tconst id = readString(row.id);\n\t\tconst group = readString(row.translation_group);\n\t\treturn (id && includedIds.has(id)) || (group && includedGroups.has(group));\n\t});\n}\n\nfunction projectPublishedRows(\n\ttableName: SystemTable,\n\trows: Record<string, unknown>[],\n\tprojection: PublishedProjection,\n): Record<string, unknown>[] {\n\tswitch (tableName) {\n\t\tcase \"_emdash_seo\":\n\t\t\treturn rows.filter((row) => {\n\t\t\t\tconst published = isPublishedContentReference(projection, row.collection, row.content_id);\n\t\t\t\tif (!published) return false;\n\t\t\t\tconst image = readString(row.seo_image);\n\t\t\t\tif (image) {\n\t\t\t\t\tcollectMediaReferences(image, projection);\n\t\t\t\t\tif (!EXTERNAL_OR_ROOT_URL.test(image)) {\n\t\t\t\t\t\tprojection.mediaIds.add(image);\n\t\t\t\t\t\tprojection.mediaStorageKeys.add(image);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t});\n\t\tcase \"content_taxonomies\":\n\t\t\treturn rows.filter((row) => {\n\t\t\t\tconst published = isPublishedContentReference(projection, row.collection, row.entry_id);\n\t\t\t\tconst taxonomyGroup = readString(row.taxonomy_id);\n\t\t\t\tif (published && taxonomyGroup) projection.taxonomyGroups.add(taxonomyGroup);\n\t\t\t\treturn published;\n\t\t\t});\n\t\tcase \"taxonomies\":\n\t\t\treturn projectTaxonomyRows(rows, projection);\n\t\tcase \"_emdash_menu_items\":\n\t\t\treturn rows.filter((row) => {\n\t\t\t\tconst type = readString(row.type);\n\t\t\t\tconst referenceId = readString(row.reference_id);\n\t\t\t\tif (!referenceId || type === \"custom\") return true;\n\t\t\t\tif (type === \"taxonomy\") {\n\t\t\t\t\tprojection.taxonomyGroups.add(referenceId);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (type === \"collection\" && !row.reference_id) return true;\n\t\t\t\tconst collection =\n\t\t\t\t\treadString(row.reference_collection) ??\n\t\t\t\t\t(type === \"post\" || type === \"page\" ? `${type}s` : null);\n\t\t\t\treturn isPublishedContentReference(projection, collection, referenceId);\n\t\t\t});\n\t\tcase \"media\":\n\t\t\treturn rows.filter((row) => {\n\t\t\t\tconst id = readString(row.id);\n\t\t\t\tconst storageKey = readString(row.storage_key);\n\t\t\t\treturn (\n\t\t\t\t\t(id !== null && projection.mediaIds.has(id)) ||\n\t\t\t\t\t(storageKey !== null && projection.mediaStorageKeys.has(storageKey))\n\t\t\t\t);\n\t\t\t});\n\t\tcase \"options\":\n\t\t\treturn rows;\n\t\tdefault:\n\t\t\treturn [];\n\t}\n}\n\nexport interface GenerateSnapshotOptions {\n\t/** Include draft and scheduled content (default: false) */\n\tincludeDrafts?: boolean;\n\t/** Include trashed content (deleted_at set). Used by backups (default: false) */\n\tincludeTrashed?: boolean;\n\t/** Origin URL for absolutizing local media URLs (e.g. \"https://mysite.com\") */\n\torigin?: string;\n\t/**\n\t * Allowlist of options-table key prefixes to include (default:\n\t * `SAFE_OPTIONS_PREFIXES`). Callers widening this must never include a\n\t * prefix that matches secrets (`emdash:preview_secret`, `plugin:`,\n\t * `emdash:passkey_pending:`) — the output may be user-downloadable.\n\t */\n\toptionPrefixes?: string[];\n\t/** Exact options-table keys to include in addition to `optionPrefixes`. */\n\toptionKeys?: string[];\n}\n\n/**\n * Generate a portable database snapshot.\n *\n * Discovers ec_* content tables dynamically, exports system tables\n * needed for rendering, and includes schema info for table recreation.\n */\nexport async function generateSnapshot(\n\tdb: Kysely<Database>,\n\toptions?: GenerateSnapshotOptions,\n): Promise<Snapshot> {\n\tconst includeDrafts = options?.includeDrafts ?? false;\n\tconst includeTrashed = options?.includeTrashed ?? false;\n\tconst optionPrefixes = options?.optionPrefixes ?? SAFE_OPTIONS_PREFIXES;\n\tconst optionKeys = new Set(options?.optionKeys);\n\tconst publishedOnly = !includeDrafts && !includeTrashed;\n\tconst publishedProjection = createPublishedProjection();\n\n\tconst contentTables = await listTablesLike(db, \"ec_%\");\n\n\t// Build list of all tables to export\n\tconst allTables = [...contentTables, ...SYSTEM_TABLES];\n\n\tconst tables: Record<string, Record<string, unknown>[]> = {};\n\tconst schema: Record<string, { columns: string[]; types?: Record<string, string> }> = {};\n\n\tfor (const tableName of allTables) {\n\t\tif (isExcluded(tableName)) continue;\n\n\t\t// Content table names come from the database catalog. Validate them\n\t\t// before passing them to sql.ref().\n\t\tif (!SAFE_TABLE_NAME.test(tableName)) continue;\n\n\t\tconst columnInfo = await listTableColumns(db, tableName);\n\t\tif (columnInfo.length === 0) continue;\n\n\t\tconst columns = columnInfo.map((column) => column.name);\n\t\tconst types: Record<string, SnapshotColumnType> = {};\n\t\tfor (const column of columnInfo) {\n\t\t\ttypes[column.name] = normalizeColumnType(column.type);\n\t\t}\n\n\t\tschema[tableName] = { columns, types };\n\n\t\tlet rows: Record<string, unknown>[];\n\n\t\tif (tableName.startsWith(\"ec_\")) {\n\t\t\tif (includeTrashed) {\n\t\t\t\trows = (\n\t\t\t\t\tawait sql<Record<string, unknown>>`\n\t\t\t\t\t\tSELECT * FROM ${sql.ref(tableName)}\n\t\t\t\t\t`.execute(db)\n\t\t\t\t).rows;\n\t\t\t} else if (includeDrafts) {\n\t\t\t\trows = (\n\t\t\t\t\tawait sql<Record<string, unknown>>`\n\t\t\t\t\t\tSELECT * FROM ${sql.ref(tableName)}\n\t\t\t\t\t\tWHERE deleted_at IS NULL\n\t\t\t\t\t`.execute(db)\n\t\t\t\t).rows;\n\t\t\t} else {\n\t\t\t\trows = (\n\t\t\t\t\tawait sql<Record<string, unknown>>`\n\t\t\t\t\t\tSELECT * FROM ${sql.ref(tableName)}\n\t\t\t\t\t\tWHERE deleted_at IS NULL\n\t\t\t\t\t\tAND status = 'published'\n\t\t\t\t\t`.execute(db)\n\t\t\t\t).rows;\n\t\t\t}\n\t\t} else if (\n\t\t\tpublishedOnly &&\n\t\t\tisSystemTable(tableName) &&\n\t\t\tPUBLISHED_TABLE_POLICIES[tableName] === \"omit\"\n\t\t) {\n\t\t\trows = [];\n\t\t} else if (tableName === \"options\") {\n\t\t\trows = (\n\t\t\t\tawait sql<Record<string, unknown>>`\n\t\t\t\t\tSELECT * FROM ${sql.ref(tableName)}\n\t\t\t\t`.execute(db)\n\t\t\t).rows.filter((row) => {\n\t\t\t\tconst name = typeof row.name === \"string\" ? row.name : \"\";\n\t\t\t\treturn optionKeys.has(name) || optionPrefixes.some((prefix) => name.startsWith(prefix));\n\t\t\t});\n\t\t} else {\n\t\t\trows = (\n\t\t\t\tawait sql<Record<string, unknown>>`\n\t\t\t\t\tSELECT * FROM ${sql.ref(tableName)}\n\t\t\t\t`.execute(db)\n\t\t\t).rows;\n\t\t}\n\n\t\tif (publishedOnly) {\n\t\t\tif (tableName.startsWith(\"ec_\")) {\n\t\t\t\trecordPublishedContent(publishedProjection, tableName, rows);\n\t\t\t} else if (\n\t\t\t\tisSystemTable(tableName) &&\n\t\t\t\tPUBLISHED_TABLE_POLICIES[tableName] === \"content-linked\"\n\t\t\t) {\n\t\t\t\trows = projectPublishedRows(tableName, rows, publishedProjection);\n\t\t\t}\n\t\t\tfor (const row of rows) collectMediaReferences(row, publishedProjection);\n\t\t}\n\n\t\tif (rows.length > 0) {\n\t\t\ttables[tableName] = normalizeRows(rows, types);\n\t\t}\n\t}\n\n\t// Absolutize local media URLs in content tables so snapshots are portable.\n\t// Local image fields are stored as JSON with provider:\"local\" and\n\t// meta.storageKey but no src — the URL is derived at render time.\n\t// For snapshots consumed by external preview services, inject src now.\n\tif (options?.origin) {\n\t\tconst origin = options.origin;\n\t\tfor (const [tableName, rows] of Object.entries(tables)) {\n\t\t\tif (!tableName.startsWith(\"ec_\")) continue;\n\t\t\tfor (const row of rows) {\n\t\t\t\tfor (const [col, value] of Object.entries(row)) {\n\t\t\t\t\tif (typeof value !== \"string\" || !value.startsWith(\"{\")) continue;\n\t\t\t\t\trow[col] = injectMediaSrc(value, origin);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\ttables,\n\t\tschema,\n\t\tgeneratedAt: new Date().toISOString(),\n\t};\n}\n"],"mappings":"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"}
|