emdash 0.40.0 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/action-token-CbKDcPJi.mjs +26 -0
- package/dist/action-token-CbKDcPJi.mjs.map +1 -0
- package/dist/activation-PtniBLt9.mjs +382 -0
- package/dist/activation-PtniBLt9.mjs.map +1 -0
- package/dist/adapters-C_Tf5x90.d.mts +171 -0
- package/dist/adapters-C_Tf5x90.d.mts.map +1 -0
- package/dist/allowed-origins-U1z4TdEZ.mjs +116 -0
- package/dist/allowed-origins-U1z4TdEZ.mjs.map +1 -0
- package/dist/api/route-utils.d.mts +4 -4
- package/dist/api/route-utils.mjs +46 -45
- package/dist/api/route-utils.mjs.map +1 -1
- package/dist/api/schemas/index.d.mts +2 -2
- package/dist/api/schemas/index.mjs +10 -10
- package/dist/api-CXwQkV_m.mjs +5122 -0
- package/dist/api-CXwQkV_m.mjs.map +1 -0
- package/dist/api-tokens-89WlohEN.mjs +166 -0
- package/dist/api-tokens-89WlohEN.mjs.map +1 -0
- package/dist/apply-Do3KNnUk.mjs +1659 -0
- package/dist/apply-Do3KNnUk.mjs.map +1 -0
- package/dist/approvals-CAX9Yw33.mjs +460 -0
- package/dist/approvals-CAX9Yw33.mjs.map +1 -0
- package/dist/artifact-fetch-B9W4CEST.mjs +659 -0
- package/dist/artifact-fetch-B9W4CEST.mjs.map +1 -0
- package/dist/astro/index.d.mts +14 -14
- package/dist/astro/index.mjs +26 -30
- 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.mjs +7 -7
- package/dist/astro/middleware/request-context.mjs +3 -3
- 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 +110 -106
- package/dist/astro/middleware.mjs.map +1 -1
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +14 -14
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +14 -14
- 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 +17 -17
- package/dist/astro/routes/api/admin/byline-fields/index.mjs +17 -17
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +17 -17
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +23 -23
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +23 -23
- package/dist/astro/routes/api/admin/bylines/index.mjs +23 -23
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +18 -18
- package/dist/astro/routes/api/admin/comments/_id_.mjs +7 -7
- package/dist/astro/routes/api/admin/comments/bulk.mjs +17 -17
- package/dist/astro/routes/api/admin/comments/counts.mjs +7 -7
- package/dist/astro/routes/api/admin/comments/index.mjs +17 -17
- 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 +20 -20
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +22 -22
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +22 -22
- package/dist/astro/routes/api/admin/media-usage/progress.mjs +25 -25
- package/dist/astro/routes/api/admin/media-usage/repair.mjs +31 -31
- package/dist/astro/routes/api/admin/media-usage/work/index.mjs +22 -22
- package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +22 -22
- 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 +72 -68
- 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 +71 -67
- package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +72 -68
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +82 -78
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/index.mjs +72 -68
- package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +5 -5
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +71 -67
- 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 +81 -77
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +71 -67
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +72 -68
- 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 +83 -79
- 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 +74 -70
- 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 +72 -68
- package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/updates.mjs +71 -67
- 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 +71 -67
- 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 +5 -5
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +71 -67
- 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 +40 -40
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +40 -40
- package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/capabilities.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +43 -43
- package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +43 -43
- package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +43 -43
- package/dist/astro/routes/api/admin/transfer/exports/index.mjs +44 -44
- package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +44 -44
- package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +44 -44
- package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +44 -44
- package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/imports/index.mjs +44 -44
- 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 +15 -15
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
- package/dist/astro/routes/api/admin/users/index.mjs +14 -14
- package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
- package/dist/astro/routes/api/auth/invite/accept.mjs +4 -4
- package/dist/astro/routes/api/auth/invite/complete.mjs +18 -18
- package/dist/astro/routes/api/auth/invite/index.mjs +16 -16
- package/dist/astro/routes/api/auth/invite/register-options.mjs +17 -17
- package/dist/astro/routes/api/auth/logout.mjs +5 -5
- package/dist/astro/routes/api/auth/magic-link/send.mjs +18 -18
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +14 -14
- package/dist/astro/routes/api/auth/me.mjs +15 -15
- package/dist/astro/routes/api/auth/mode.mjs +5 -5
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +3 -3
- package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
- package/dist/astro/routes/api/auth/passkey/_id_.mjs +14 -14
- package/dist/astro/routes/api/auth/passkey/index.mjs +4 -4
- package/dist/astro/routes/api/auth/passkey/options.mjs +19 -19
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +17 -17
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +18 -18
- package/dist/astro/routes/api/auth/passkey/verify.mjs +18 -18
- package/dist/astro/routes/api/auth/signup/complete.mjs +18 -18
- package/dist/astro/routes/api/auth/signup/request.mjs +17 -17
- package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +12 -12
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +18 -18
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +17 -17
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +17 -17
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +11 -11
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +31 -31
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +17 -17
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts +1 -2
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +42 -53
- 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 +34 -29
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +17 -17
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +25 -24
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +17 -17
- package/dist/astro/routes/api/content/_collection_/_id_.d.mts.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +18 -18
- package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/authors.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/index.mjs +15 -15
- package/dist/astro/routes/api/content/_collection_/trash.mjs +15 -15
- package/dist/astro/routes/api/dashboard.mjs +10 -9
- 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/health.mjs +6 -6
- package/dist/astro/routes/api/import/probe.d.mts +3 -3
- package/dist/astro/routes/api/import/probe.mjs +23 -23
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +6 -6
- package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -13
- package/dist/astro/routes/api/import/wordpress/execute.mjs +16 -16
- package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
- package/dist/astro/routes/api/import/wordpress/media.mjs +19 -19
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +18 -18
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +28 -28
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +23 -23
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +34 -34
- package/dist/astro/routes/api/manifest.mjs +6 -6
- package/dist/astro/routes/api/mcp.mjs +98 -118
- package/dist/astro/routes/api/mcp.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_/confirm.mjs +19 -19
- package/dist/astro/routes/api/media/_id_/replace.mjs +16 -16
- package/dist/astro/routes/api/media/_id_/upload.mjs +9 -9
- package/dist/astro/routes/api/media/_id_/usage.mjs +33 -33
- package/dist/astro/routes/api/media/_id_.mjs +31 -31
- package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +6 -6
- package/dist/astro/routes/api/media/file/_...key_.mjs +9 -9
- package/dist/astro/routes/api/media/folders/_id_.mjs +16 -16
- package/dist/astro/routes/api/media/folders/index.mjs +16 -16
- 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 +18 -18
- package/dist/astro/routes/api/media.mjs +35 -35
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +17 -17
- package/dist/astro/routes/api/menus/_name_/items.mjs +17 -17
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +17 -17
- package/dist/astro/routes/api/menus/_name_/translations.mjs +17 -17
- package/dist/astro/routes/api/menus/_name_.mjs +17 -17
- package/dist/astro/routes/api/menus/index.mjs +17 -17
- package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
- package/dist/astro/routes/api/oauth/device/authorize.d.mts +2 -1
- package/dist/astro/routes/api/oauth/device/authorize.d.mts.map +1 -1
- package/dist/astro/routes/api/oauth/device/authorize.mjs +23 -9
- package/dist/astro/routes/api/oauth/device/authorize.mjs.map +1 -1
- 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 +5 -5
- 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 +20 -20
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +11 -11
- package/dist/astro/routes/api/redirects/404s/index.mjs +19 -19
- package/dist/astro/routes/api/redirects/404s/summary.mjs +19 -19
- package/dist/astro/routes/api/redirects/_id_.mjs +19 -19
- package/dist/astro/routes/api/redirects/index.mjs +19 -19
- package/dist/astro/routes/api/relations/_id_/index.mjs +34 -29
- package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/relations/index.mjs +36 -31
- 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 +5 -5
- package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +71 -67
- 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 +71 -67
- 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 +71 -67
- package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +73 -69
- 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 +71 -67
- 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 +71 -67
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +71 -67
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/index.mjs +71 -67
- package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/reorder.mjs +71 -67
- package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/index.mjs +16 -16
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +71 -67
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/schema/orphans/index.mjs +71 -67
- package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
- package/dist/astro/routes/api/search/enable.mjs +19 -19
- package/dist/astro/routes/api/search/index.mjs +18 -18
- package/dist/astro/routes/api/search/rebuild.mjs +19 -19
- package/dist/astro/routes/api/search/stats.mjs +9 -9
- package/dist/astro/routes/api/search/suggest.mjs +18 -18
- package/dist/astro/routes/api/sections/_slug_.mjs +18 -18
- package/dist/astro/routes/api/sections/index.mjs +18 -18
- 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/email.mjs +6 -6
- package/dist/astro/routes/api/settings.mjs +21 -21
- package/dist/astro/routes/api/setup/admin-verify.mjs +19 -19
- package/dist/astro/routes/api/setup/admin.mjs +18 -18
- package/dist/astro/routes/api/setup/dev-bypass.mjs +45 -39
- 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.d.mts.map +1 -1
- package/dist/astro/routes/api/setup/index.mjs +80 -49
- 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/snapshot.mjs +9 -9
- package/dist/astro/routes/api/snapshot.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +23 -23
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +23 -23
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +23 -23
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +23 -23
- package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +22 -22
- package/dist/astro/routes/api/taxonomies/_name_.mjs +23 -23
- package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +36 -35
- package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/index.mjs +23 -23
- package/dist/astro/routes/api/themes/preview.mjs +6 -6
- package/dist/astro/routes/api/typegen.mjs +8 -8
- package/dist/astro/routes/api/visual-editing/action-token.mjs +6 -6
- package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +19 -19
- 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 +16 -16
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +19 -19
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +19 -19
- package/dist/astro/routes/api/widget-areas/_name_.mjs +9 -9
- package/dist/astro/routes/api/widget-areas/index.mjs +19 -19
- package/dist/astro/routes/api/widget-components.mjs +5 -5
- package/dist/astro/routes/robots.txt.mjs +6 -6
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +9 -9
- package/dist/astro/routes/sitemap.xml.mjs +7 -7
- package/dist/astro/types.d.mts +28 -18
- package/dist/astro/types.d.mts.map +1 -1
- package/dist/audit-CrgmE9LE.mjs +127 -0
- package/dist/audit-CrgmE9LE.mjs.map +1 -0
- package/dist/auth/providers/github.d.mts +1 -1
- package/dist/auth/providers/google.d.mts +1 -1
- package/dist/authoritative-records-C2YzIdbu.mjs +5172 -0
- package/dist/authoritative-records-C2YzIdbu.mjs.map +1 -0
- package/dist/authorize-WgdKF8QY.mjs +49 -0
- package/dist/authorize-WgdKF8QY.mjs.map +1 -0
- package/dist/backup-Ck8_lMO3.mjs +246 -0
- package/dist/backup-Ck8_lMO3.mjs.map +1 -0
- package/dist/block-types-BQ90asVI.mjs +132 -0
- package/dist/block-types-BQ90asVI.mjs.map +1 -0
- package/dist/block-values-ACFqgB1D.mjs +175 -0
- package/dist/block-values-ACFqgB1D.mjs.map +1 -0
- package/dist/bundle-Db1iNMv_.mjs +667 -0
- package/dist/bundle-Db1iNMv_.mjs.map +1 -0
- package/dist/byline-BayaYGoj.mjs +909 -0
- package/dist/byline-BayaYGoj.mjs.map +1 -0
- package/dist/byline-fields-B8HH-35f.mjs +254 -0
- package/dist/byline-fields-B8HH-35f.mjs.map +1 -0
- package/dist/byline-fields-hMPjf6Eu.mjs +123 -0
- package/dist/byline-fields-hMPjf6Eu.mjs.map +1 -0
- package/dist/byline-registry-B_EK_TQf.mjs +406 -0
- package/dist/byline-registry-B_EK_TQf.mjs.map +1 -0
- package/dist/bylines-DFAaFXWi.mjs +214 -0
- package/dist/bylines-DFAaFXWi.mjs.map +1 -0
- package/dist/bylines-DkIxUxmr.mjs +232 -0
- package/dist/bylines-DkIxUxmr.mjs.map +1 -0
- package/dist/cache-DkvhQ8XE.mjs +108 -0
- package/dist/cache-DkvhQ8XE.mjs.map +1 -0
- package/dist/canonical-CcSuuTlH.mjs +174 -0
- package/dist/canonical-CcSuuTlH.mjs.map +1 -0
- package/dist/capture-triggers-DJEoOTOq.mjs +362 -0
- package/dist/capture-triggers-DJEoOTOq.mjs.map +1 -0
- package/dist/challenge-store-CvBl81AQ.mjs +51 -0
- package/dist/challenge-store-CvBl81AQ.mjs.map +1 -0
- package/dist/checksum-CClweQzI.mjs +162 -0
- package/dist/checksum-CClweQzI.mjs.map +1 -0
- package/dist/chrome-tags-D5caJwwp.mjs +24 -0
- package/dist/chrome-tags-D5caJwwp.mjs.map +1 -0
- package/dist/chunks-DwBaj8aT.mjs +25 -0
- package/dist/chunks-DwBaj8aT.mjs.map +1 -0
- package/dist/cli/index.mjs +374 -761
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/cf-access.d.mts +1 -1
- package/dist/client/index.d.mts +18 -18
- package/dist/client/index.mjs +2 -2
- package/dist/collection-deletion-CLCdXsnV.mjs +436 -0
- package/dist/collection-deletion-CLCdXsnV.mjs.map +1 -0
- package/dist/collection-deletion-processor-hNw8x01F.mjs +217 -0
- package/dist/collection-deletion-processor-hNw8x01F.mjs.map +1 -0
- package/dist/collection-slugs-cache-CUuiduLq.mjs +85 -0
- package/dist/collection-slugs-cache-CUuiduLq.mjs.map +1 -0
- package/dist/comment-D2uvL63j.mjs +313 -0
- package/dist/comment-D2uvL63j.mjs.map +1 -0
- package/dist/comment-reaction-DevUuzg4.mjs +85 -0
- package/dist/comment-reaction-DevUuzg4.mjs.map +1 -0
- package/dist/comments-Cq0s7_hO.mjs +195 -0
- package/dist/comments-Cq0s7_hO.mjs.map +1 -0
- package/dist/comments-M4EDYAHw.mjs +99 -0
- package/dist/comments-M4EDYAHw.mjs.map +1 -0
- package/dist/components-CuIGwXMs.mjs +108 -0
- package/dist/components-CuIGwXMs.mjs.map +1 -0
- package/dist/config-52Ea5IWt.d.mts +39 -0
- package/dist/config-52Ea5IWt.d.mts.map +1 -0
- package/dist/config-CCz3xOLc.mjs +242 -0
- package/dist/config-CCz3xOLc.mjs.map +1 -0
- package/dist/config-D3d5Qudq.d.mts +6669 -0
- package/dist/config-D3d5Qudq.d.mts.map +1 -0
- package/dist/content-CbnufDsM.mjs +2018 -0
- package/dist/content-CbnufDsM.mjs.map +1 -0
- package/dist/content-list-query-D_7B1FE5.d.mts +26 -0
- package/dist/content-list-query-D_7B1FE5.d.mts.map +1 -0
- package/dist/content-policy-CYu6K1KB.mjs +46 -0
- package/dist/content-policy-CYu6K1KB.mjs.map +1 -0
- package/dist/content-repair-DlDUgFGp.mjs +442 -0
- package/dist/content-repair-DlDUgFGp.mjs.map +1 -0
- package/dist/context-CGQLA1-a.mjs +1922 -0
- package/dist/context-CGQLA1-a.mjs.map +1 -0
- package/dist/cron-c4D5C5Fx.mjs +284 -0
- package/dist/cron-c4D5C5Fx.mjs.map +1 -0
- package/dist/dashboard-CBq9kmOn.mjs +151 -0
- package/dist/dashboard-CBq9kmOn.mjs.map +1 -0
- package/dist/db/index.d.mts +3 -3
- package/dist/db/index.mjs +1 -1
- package/dist/db/libsql-migrations.d.mts +1 -1
- package/dist/db/libsql-migrations.mjs +4 -4
- package/dist/db/libsql.d.mts +1 -1
- package/dist/db/postgres-migrations.d.mts +1 -1
- package/dist/db/postgres-migrations.mjs +4 -4
- package/dist/db/postgres.d.mts +1 -1
- package/dist/db/sqlite-migrations.d.mts +1 -1
- package/dist/db/sqlite-migrations.mjs +4 -4
- package/dist/db/sqlite.d.mts +1 -1
- package/dist/db/sqlite.mjs +1 -1
- package/dist/default-DPsys51U.mjs +81 -0
- package/dist/default-DPsys51U.mjs.map +1 -0
- package/dist/deferred-tasks-CZ7rzBdo.d.mts +9 -0
- package/dist/deferred-tasks-CZ7rzBdo.d.mts.map +1 -0
- package/dist/dev-typegen-HRxwLRcT.mjs +29 -0
- package/dist/dev-typegen-HRxwLRcT.mjs.map +1 -0
- package/dist/device-flow-OcSqE9uY.mjs +521 -0
- package/dist/device-flow-OcSqE9uY.mjs.map +1 -0
- package/dist/digest-DVZ--cE9.mjs +194 -0
- package/dist/digest-DVZ--cE9.mjs.map +1 -0
- package/dist/direct-executor-DyjAqkpT.mjs +104 -0
- package/dist/direct-executor-DyjAqkpT.mjs.map +1 -0
- package/dist/dist-FPR93_xf.mjs +810 -0
- package/dist/dist-FPR93_xf.mjs.map +1 -0
- package/dist/email-console-DyQIgEnz.mjs +50 -0
- package/dist/email-console-DyQIgEnz.mjs.map +1 -0
- package/dist/email-locale-BYb16rVd.mjs +25 -0
- package/dist/email-locale-BYb16rVd.mjs.map +1 -0
- package/dist/emdash-runtime-CrzxJFmF.mjs +4214 -0
- package/dist/emdash-runtime-CrzxJFmF.mjs.map +1 -0
- package/dist/enrich-DBtCncE2.mjs +194 -0
- package/dist/enrich-DBtCncE2.mjs.map +1 -0
- package/dist/entry-lock-BN5y4YbO.d.mts +4481 -0
- package/dist/entry-lock-BN5y4YbO.d.mts.map +1 -0
- package/dist/entry-lock-BaRBHCsH.mjs +1173 -0
- package/dist/entry-lock-BaRBHCsH.mjs.map +1 -0
- package/dist/entry-lock-C6NcnZPV.mjs +163 -0
- package/dist/entry-lock-C6NcnZPV.mjs.map +1 -0
- package/dist/entry-locks-BTyQLdbC.mjs +167 -0
- package/dist/entry-locks-BTyQLdbC.mjs.map +1 -0
- package/dist/error-BfsNNrIE.mjs +90 -0
- package/dist/error-BfsNNrIE.mjs.map +1 -0
- package/dist/errors-BN1QAnEY.mjs +460 -0
- package/dist/errors-BN1QAnEY.mjs.map +1 -0
- package/dist/errors-Bt3goF8I.mjs +120 -0
- package/dist/errors-Bt3goF8I.mjs.map +1 -0
- package/dist/escape-BveidMa2.mjs +9 -0
- package/dist/escape-BveidMa2.mjs.map +1 -0
- package/dist/fence-Bb_IbCxI.mjs +162 -0
- package/dist/fence-Bb_IbCxI.mjs.map +1 -0
- package/dist/field-defs-cache-CsZctvbu.mjs +77 -0
- package/dist/field-defs-cache-CsZctvbu.mjs.map +1 -0
- package/dist/field-map-6m9rF49t.mjs +83 -0
- package/dist/field-map-6m9rF49t.mjs.map +1 -0
- package/dist/focal-point-CZ3d1wK5.mjs +23 -0
- package/dist/focal-point-CZ3d1wK5.mjs.map +1 -0
- package/dist/fts-manager-CCaZTp8y.mjs +443 -0
- package/dist/fts-manager-CCaZTp8y.mjs.map +1 -0
- package/dist/gc-xowRjczI.mjs +75 -0
- package/dist/gc-xowRjczI.mjs.map +1 -0
- package/dist/hash-COVK27Pc.mjs +37 -0
- package/dist/hash-COVK27Pc.mjs.map +1 -0
- package/dist/hook-result-CYSk0XFe.d.mts +31 -0
- package/dist/hook-result-CYSk0XFe.d.mts.map +1 -0
- package/dist/hreflang-CChPV7jx.mjs +105 -0
- package/dist/hreflang-CChPV7jx.mjs.map +1 -0
- package/dist/hreflang-DRslq3QI.d.mts +50 -0
- package/dist/hreflang-DRslq3QI.d.mts.map +1 -0
- package/dist/http-route-dispatch-CAdp2onn.mjs +339 -0
- package/dist/http-route-dispatch-CAdp2onn.mjs.map +1 -0
- package/dist/identity-NVTOOQyq.mjs +35 -0
- package/dist/identity-NVTOOQyq.mjs.map +1 -0
- package/dist/import-wpSO2N0x.mjs +2020 -0
- package/dist/import-wpSO2N0x.mjs.map +1 -0
- package/dist/index-CDs2wq4X.d.mts +623 -0
- package/dist/index-CDs2wq4X.d.mts.map +1 -0
- package/dist/index.d.mts +24 -24
- package/dist/index.mjs +103 -101
- package/dist/install-finalization-D9R9R-W8.mjs +58 -0
- package/dist/install-finalization-D9R9R-W8.mjs.map +1 -0
- package/dist/keys-Bck6LBfF.mjs +61 -0
- package/dist/keys-Bck6LBfF.mjs.map +1 -0
- package/dist/kinds-CYmRESWj.mjs +974 -0
- package/dist/kinds-CYmRESWj.mjs.map +1 -0
- package/dist/lifecycle-C815ZQfV.mjs +25 -0
- package/dist/lifecycle-C815ZQfV.mjs.map +1 -0
- package/dist/load-D99axixL.mjs +28 -0
- package/dist/load-D99axixL.mjs.map +1 -0
- package/dist/loader-CrRPfkHS.mjs +1197 -0
- package/dist/loader-CrRPfkHS.mjs.map +1 -0
- package/dist/loops-DMKlygqX.mjs +203 -0
- package/dist/loops-DMKlygqX.mjs.map +1 -0
- package/dist/manifest-builder-BQzCHNgB.mjs +189 -0
- package/dist/manifest-builder-BQzCHNgB.mjs.map +1 -0
- package/dist/manifest-schema-Ci2gmd0u.mjs +492 -0
- package/dist/manifest-schema-Ci2gmd0u.mjs.map +1 -0
- package/dist/media/image-endpoint.mjs +1 -1
- package/dist/media/index.d.mts +1 -1
- package/dist/media/index.mjs +4 -4
- package/dist/media/local-runtime.d.mts +14 -14
- package/dist/media/local-runtime.mjs +6 -6
- package/dist/media-BUQePMxP.mjs +373 -0
- package/dist/media-BUQePMxP.mjs.map +1 -0
- package/dist/media-DH8ibNlY.mjs +294 -0
- package/dist/media-DH8ibNlY.mjs.map +1 -0
- package/dist/media-OEIQ3bVc.mjs +408 -0
- package/dist/media-OEIQ3bVc.mjs.map +1 -0
- package/dist/media-allowlist-pYtaBA95.mjs +44 -0
- package/dist/media-allowlist-pYtaBA95.mjs.map +1 -0
- package/dist/media-folders-Bf8_s4de.mjs +210 -0
- package/dist/media-folders-Bf8_s4de.mjs.map +1 -0
- package/dist/media-url-C6klEuNd.mjs +43 -0
- package/dist/media-url-C6klEuNd.mjs.map +1 -0
- package/dist/media-usage-D7Y64m6v.mjs +1629 -0
- package/dist/media-usage-D7Y64m6v.mjs.map +1 -0
- package/dist/media-usage-activation-DrqbmgLA.mjs +78 -0
- package/dist/media-usage-activation-DrqbmgLA.mjs.map +1 -0
- package/dist/media-usage-work-DommYhYA.mjs +152 -0
- package/dist/media-usage-work-DommYhYA.mjs.map +1 -0
- package/dist/media-usage-work-HU63hNDu.mjs +586 -0
- package/dist/media-usage-work-HU63hNDu.mjs.map +1 -0
- package/dist/menus-BQfusWEC.mjs +3608 -0
- package/dist/menus-BQfusWEC.mjs.map +1 -0
- package/dist/menus-BtwjQt5s.mjs +753 -0
- package/dist/menus-BtwjQt5s.mjs.map +1 -0
- package/dist/menus-p_M1V7J_.mjs +139 -0
- package/dist/menus-p_M1V7J_.mjs.map +1 -0
- package/dist/migrations/index.d.mts +1 -1
- package/dist/migrations/index.mjs +3 -3
- package/dist/mime-C94qBG-P.mjs +36 -0
- package/dist/mime-C94qBG-P.mjs.map +1 -0
- package/dist/mode-DpYW3w6U.mjs +23 -0
- package/dist/mode-DpYW3w6U.mjs.map +1 -0
- package/dist/node-sqlite-compat-pWFw0lcc.mjs +46 -0
- package/dist/node-sqlite-compat-pWFw0lcc.mjs.map +1 -0
- package/dist/normalize-DduyxBjf.mjs +191 -0
- package/dist/normalize-DduyxBjf.mjs.map +1 -0
- package/dist/oauth-authorization-DAXsH1H9.mjs +274 -0
- package/dist/oauth-authorization-DAXsH1H9.mjs.map +1 -0
- package/dist/oauth-clients-DENiDQri.mjs +266 -0
- package/dist/oauth-clients-DENiDQri.mjs.map +1 -0
- package/dist/oauth-state-store-y8mEYVq9.mjs +50 -0
- package/dist/oauth-state-store-y8mEYVq9.mjs.map +1 -0
- package/dist/oauth-user-lookup-CtTYAy-O.mjs +26 -0
- package/dist/oauth-user-lookup-CtTYAy-O.mjs.map +1 -0
- package/dist/object-cache/memory.d.mts +1 -1
- package/dist/options-BYa1FgIM.d.mts +81 -0
- package/dist/options-BYa1FgIM.d.mts.map +1 -0
- package/dist/page/index.d.mts +2 -2
- package/dist/page/index.mjs +5 -5
- package/dist/parse-CORGGhHf.mjs +81 -0
- package/dist/parse-CORGGhHf.mjs.map +1 -0
- package/dist/parse-avNM1xWV.d.mts +168 -0
- package/dist/parse-avNM1xWV.d.mts.map +1 -0
- package/dist/passkey-config-Dih5YeIS.mjs +46 -0
- package/dist/passkey-config-Dih5YeIS.mjs.map +1 -0
- package/dist/paths-d51RFm8M.mjs +77 -0
- package/dist/paths-d51RFm8M.mjs.map +1 -0
- package/dist/patterns-CoqlXUvk.mjs +145 -0
- package/dist/patterns-CoqlXUvk.mjs.map +1 -0
- package/dist/placeholder-D2aksPMF.d.mts +306 -0
- package/dist/placeholder-D2aksPMF.d.mts.map +1 -0
- package/dist/plan-DqeZKuaR.mjs +135 -0
- package/dist/plan-DqeZKuaR.mjs.map +1 -0
- package/dist/plugin-test-runtime.d.mts +14 -14
- package/dist/plugin-test-runtime.mjs +110 -107
- 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 +3 -3
- package/dist/plugins/host.d.mts +5 -5
- package/dist/plugins/host.mjs +42 -41
- package/dist/plugins-Bb7oqjQA.mjs +277 -0
- package/dist/plugins-Bb7oqjQA.mjs.map +1 -0
- package/dist/policy-BcEqut3n.mjs +45 -0
- package/dist/policy-BcEqut3n.mjs.map +1 -0
- package/dist/portable-text-DXE8ymtD.mjs +307 -0
- package/dist/portable-text-DXE8ymtD.mjs.map +1 -0
- package/dist/preview-DEDWbwA_.mjs +107 -0
- package/dist/preview-DEDWbwA_.mjs.map +1 -0
- package/dist/protocol-BJbTzvwl.d.mts +61 -0
- package/dist/protocol-BJbTzvwl.d.mts.map +1 -0
- package/dist/public-submission-D9c9S14m.mjs +250 -0
- package/dist/public-submission-D9c9S14m.mjs.map +1 -0
- package/dist/public-url-CIRe-2T6.mjs +101 -0
- package/dist/public-url-CIRe-2T6.mjs.map +1 -0
- package/dist/query-BzifXlPS.mjs +1156 -0
- package/dist/query-BzifXlPS.mjs.map +1 -0
- package/dist/query-OzMJ6vJP.mjs +41 -0
- package/dist/query-OzMJ6vJP.mjs.map +1 -0
- package/dist/rate-limit-Csp60Vik.mjs +120 -0
- package/dist/rate-limit-Csp60Vik.mjs.map +1 -0
- package/dist/receipt-B-aU4hpJ.mjs +43 -0
- package/dist/receipt-B-aU4hpJ.mjs.map +1 -0
- package/dist/redirect-CDSw1sU3.mjs +17 -0
- package/dist/redirect-CDSw1sU3.mjs.map +1 -0
- package/dist/redirect-D1ArbO85.mjs +411 -0
- package/dist/redirect-D1ArbO85.mjs.map +1 -0
- package/dist/redirects-BjTwDTsV.mjs +148 -0
- package/dist/redirects-BjTwDTsV.mjs.map +1 -0
- package/dist/redirects-Ck50kH3n.mjs +446 -0
- package/dist/redirects-Ck50kH3n.mjs.map +1 -0
- package/dist/registry/testing.mjs +3 -3
- package/dist/registry-CFcNCayZ.mjs +6754 -0
- package/dist/registry-CFcNCayZ.mjs.map +1 -0
- package/dist/relations-Cfaa1fDl.mjs +776 -0
- package/dist/relations-Cfaa1fDl.mjs.map +1 -0
- package/dist/request-cache-iHRlHx1d.mjs +104 -0
- package/dist/request-cache-iHRlHx1d.mjs.map +1 -0
- package/dist/request-context.d.mts +1 -1
- package/dist/request-meta-D47mqyev.mjs +141 -0
- package/dist/request-meta-D47mqyev.mjs.map +1 -0
- package/dist/resolve-BPE8sMvx.mjs +99 -0
- package/dist/resolve-BPE8sMvx.mjs.map +1 -0
- package/dist/resolve-C0s1E_fH.mjs +199 -0
- package/dist/resolve-C0s1E_fH.mjs.map +1 -0
- package/dist/revision-j1p4-bOj.mjs +302 -0
- package/dist/revision-j1p4-bOj.mjs.map +1 -0
- package/dist/route-wire-C9PJV9aL.mjs +197 -0
- package/dist/route-wire-C9PJV9aL.mjs.map +1 -0
- package/dist/routes-lyYw0mMf.mjs +272 -0
- package/dist/routes-lyYw0mMf.mjs.map +1 -0
- package/dist/runner-B3eyB9Gb.mjs +6121 -0
- package/dist/runner-B3eyB9Gb.mjs.map +1 -0
- package/dist/runner-DoYH2Jcu.d.mts +68 -0
- package/dist/runner-DoYH2Jcu.d.mts.map +1 -0
- package/dist/runtime.d.mts +13 -13
- package/dist/runtime.mjs +3 -3
- package/dist/schema-BAayK46S.mjs +13 -0
- package/dist/schema-BAayK46S.mjs.map +1 -0
- package/dist/schema-Gqcl-8G4.mjs +815 -0
- package/dist/schema-Gqcl-8G4.mjs.map +1 -0
- package/dist/scopes-BqPOKoKf.mjs +34 -0
- package/dist/scopes-BqPOKoKf.mjs.map +1 -0
- package/dist/search-YJKPIEV6.mjs +448 -0
- package/dist/search-YJKPIEV6.mjs.map +1 -0
- package/dist/sections-BR_e-wK5.mjs +346 -0
- package/dist/sections-BR_e-wK5.mjs.map +1 -0
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +37 -31
- package/dist/seo/index.d.mts +3 -3
- package/dist/seo/index.mjs +22 -21
- package/dist/seo/index.mjs.map +1 -1
- package/dist/seo-Dsj8hy3j.mjs +114 -0
- package/dist/seo-Dsj8hy3j.mjs.map +1 -0
- package/dist/seo-XvH4LNNp.mjs +133 -0
- package/dist/seo-XvH4LNNp.mjs.map +1 -0
- package/dist/service-BsVG05gS.mjs +150 -0
- package/dist/service-BsVG05gS.mjs.map +1 -0
- package/dist/session-user-DgKbYrlj.mjs +51 -0
- package/dist/session-user-DgKbYrlj.mjs.map +1 -0
- package/dist/settings-CNPUntkh.mjs +51 -0
- package/dist/settings-CNPUntkh.mjs.map +1 -0
- package/dist/settings-D5EHi0Tk.mjs +439 -0
- package/dist/settings-D5EHi0Tk.mjs.map +1 -0
- package/dist/settings-DSfE7wOa.mjs +61 -0
- package/dist/settings-DSfE7wOa.mjs.map +1 -0
- package/dist/setup-complete-B8W8sJ9v.mjs +26 -0
- package/dist/setup-complete-B8W8sJ9v.mjs.map +1 -0
- package/dist/setup-nonce-DnSBP260.mjs +25 -0
- package/dist/setup-nonce-DnSBP260.mjs.map +1 -0
- package/dist/site-settings-NGzdrt7O.mjs +50 -0
- package/dist/site-settings-NGzdrt7O.mjs.map +1 -0
- package/dist/site-url-D6JB7tLW.mjs +16 -0
- package/dist/site-url-D6JB7tLW.mjs.map +1 -0
- package/dist/snapshot-CdcwwWAf.mjs +414 -0
- package/dist/snapshot-CdcwwWAf.mjs.map +1 -0
- package/dist/ssrf-Dv0_tRpo.mjs +406 -0
- package/dist/ssrf-Dv0_tRpo.mjs.map +1 -0
- package/dist/stage-CUjhED3P.mjs +662 -0
- package/dist/stage-CUjhED3P.mjs.map +1 -0
- package/dist/staged-C36IWXff.mjs +659 -0
- package/dist/staged-C36IWXff.mjs.map +1 -0
- package/dist/state-CKouMCSY.mjs +153 -0
- package/dist/state-CKouMCSY.mjs.map +1 -0
- package/dist/status-lzyj4Uu7.mjs +30 -0
- package/dist/status-lzyj4Uu7.mjs.map +1 -0
- package/dist/storage/local.d.mts +1 -1
- package/dist/storage/local.mjs +1 -1
- package/dist/storage/s3.d.mts +1 -1
- package/dist/storage/s3.mjs +1 -1
- package/dist/storage-query-B-cWcTjJ.d.mts +1594 -0
- package/dist/storage-query-B-cWcTjJ.d.mts.map +1 -0
- package/dist/tar-DsTXX6ch.mjs +449 -0
- package/dist/tar-DsTXX6ch.mjs.map +1 -0
- package/dist/target-DLQCwp_Z.mjs +27 -0
- package/dist/target-DLQCwp_Z.mjs.map +1 -0
- package/dist/taxonomies-BlAjr4BL.mjs +697 -0
- package/dist/taxonomies-BlAjr4BL.mjs.map +1 -0
- package/dist/taxonomies-Byyo7LOZ.mjs +939 -0
- package/dist/taxonomies-Byyo7LOZ.mjs.map +1 -0
- package/dist/taxonomy-CKDwM61Y.mjs +525 -0
- package/dist/taxonomy-CKDwM61Y.mjs.map +1 -0
- package/dist/tokens-BojXlk49.mjs +171 -0
- package/dist/tokens-BojXlk49.mjs.map +1 -0
- package/dist/transaction-DLPQWik1.mjs +29 -0
- package/dist/transaction-DLPQWik1.mjs.map +1 -0
- package/dist/transfer-XSTh2BCr.mjs +8706 -0
- package/dist/transfer-XSTh2BCr.mjs.map +1 -0
- package/dist/transfer-download-DkoCDA9d.mjs +33 -0
- package/dist/transfer-download-DkoCDA9d.mjs.map +1 -0
- package/dist/transfer-iQ26J-RT.mjs +166 -0
- package/dist/transfer-iQ26J-RT.mjs.map +1 -0
- package/dist/transformations-C7RQabKQ.mjs +196 -0
- package/dist/transformations-C7RQabKQ.mjs.map +1 -0
- package/dist/transport-D3RulfD6.mjs +136 -0
- package/dist/transport-D3RulfD6.mjs.map +1 -0
- package/dist/transport-DhlZlf4D.d.mts +42 -0
- package/dist/transport-DhlZlf4D.d.mts.map +1 -0
- package/dist/trusted-proxy-B6ECOZJc.mjs +51 -0
- package/dist/trusted-proxy-B6ECOZJc.mjs.map +1 -0
- package/dist/turnstile-lqUiY7lP.mjs +53 -0
- package/dist/turnstile-lqUiY7lP.mjs.map +1 -0
- package/dist/types-4Dn9bZhu.mjs +77 -0
- package/dist/types-4Dn9bZhu.mjs.map +1 -0
- package/dist/types-5LSo7PPx.d.mts +85 -0
- package/dist/types-5LSo7PPx.d.mts.map +1 -0
- package/dist/types-BQ3hwYJT.d.mts +896 -0
- package/dist/types-BQ3hwYJT.d.mts.map +1 -0
- package/dist/types-BYEk7qo3.d.mts +198 -0
- package/dist/types-BYEk7qo3.d.mts.map +1 -0
- package/dist/types-CJKsWVFR.mjs +199 -0
- package/dist/types-CJKsWVFR.mjs.map +1 -0
- package/dist/types-Ca_w8mmY.d.mts +363 -0
- package/dist/types-Ca_w8mmY.d.mts.map +1 -0
- package/dist/types-CkE41ZAG.mjs +18 -0
- package/dist/types-CkE41ZAG.mjs.map +1 -0
- package/dist/types-D0aJW2uR.d.mts +1641 -0
- package/dist/types-D0aJW2uR.d.mts.map +1 -0
- package/dist/types-DbpN4Qto.d.mts +372 -0
- package/dist/types-DbpN4Qto.d.mts.map +1 -0
- package/dist/types-ILDI1sdY.mjs +16 -0
- package/dist/types-ILDI1sdY.mjs.map +1 -0
- package/dist/types-OC5c-edM.mjs +22 -0
- package/dist/types-OC5c-edM.mjs.map +1 -0
- package/dist/types-aOOxRSx6.mjs +103 -0
- package/dist/types-aOOxRSx6.mjs.map +1 -0
- package/dist/types-m1WbUffD.d.mts +198 -0
- package/dist/types-m1WbUffD.d.mts.map +1 -0
- package/dist/types-uxLoPBio.d.mts +124 -0
- package/dist/types-uxLoPBio.d.mts.map +1 -0
- package/dist/types-we5uR-tV.d.mts +287 -0
- package/dist/types-we5uR-tV.d.mts.map +1 -0
- package/dist/upload-attempts-DduMy6B0.mjs +32 -0
- package/dist/upload-attempts-DduMy6B0.mjs.map +1 -0
- package/dist/url-pattern-B3EwxAAk.mjs +33 -0
- package/dist/url-pattern-B3EwxAAk.mjs.map +1 -0
- package/dist/user-ElwQjTQT.mjs +171 -0
- package/dist/user-ElwQjTQT.mjs.map +1 -0
- package/dist/utils-BlAXmfOG.mjs +439 -0
- package/dist/utils-BlAXmfOG.mjs.map +1 -0
- package/dist/validate-CH0X5b2c.d.mts +468 -0
- package/dist/validate-CH0X5b2c.d.mts.map +1 -0
- package/dist/validate-CfgRpcjA.mjs +492 -0
- package/dist/validate-CfgRpcjA.mjs.map +1 -0
- package/dist/validation-DvYJtv4k.mjs +218 -0
- package/dist/validation-DvYJtv4k.mjs.map +1 -0
- package/dist/version-DgYjhTud.mjs +9 -0
- package/dist/version-DgYjhTud.mjs.map +1 -0
- package/dist/version-Dq71scUb.mjs +7 -0
- package/dist/version-Dq71scUb.mjs.map +1 -0
- package/dist/widgets-ChFIj0be.mjs +126 -0
- package/dist/widgets-ChFIj0be.mjs.map +1 -0
- package/dist/wxr-taxonomies-CBZMp2YX.mjs +372 -0
- package/dist/wxr-taxonomies-CBZMp2YX.mjs.map +1 -0
- package/dist/wxr-taxonomies-DlKDpWN1.d.mts +34 -0
- package/dist/wxr-taxonomies-DlKDpWN1.d.mts.map +1 -0
- package/dist/zod-generator-DmTKI-Ig.mjs +426 -0
- package/dist/zod-generator-DmTKI-Ig.mjs.map +1 -0
- package/package.json +7 -6
- package/src/api/handlers/content.ts +593 -16
- package/src/api/handlers/device-flow.ts +74 -21
- package/src/api/handlers/index.ts +1 -0
- package/src/api/handlers/manifest.ts +79 -5
- package/src/api/handlers/media-upload.ts +17 -71
- package/src/api/handlers/media.ts +97 -3
- package/src/api/handlers/relations.ts +638 -157
- package/src/api/handlers/revision.ts +30 -0
- package/src/api/handlers/schema.ts +403 -1
- package/src/api/handlers/snapshot.ts +257 -3
- package/src/api/handlers/staged-references.ts +142 -0
- package/src/api/handlers/validate-references.ts +146 -0
- package/src/api/schemas/content.ts +13 -0
- package/src/api/schemas/relations.ts +54 -44
- package/src/api/schemas/schema.ts +14 -0
- package/src/astro/integration/routes.ts +15 -19
- package/src/astro/integration/vite-config.ts +10 -4
- package/src/astro/middleware.ts +1 -0
- package/src/astro/routes/api/content/[collection]/[id]/references/[relation]/children.ts +11 -54
- package/src/astro/routes/api/content/[collection]/[id].ts +3 -1
- package/src/astro/routes/api/oauth/device/authorize.ts +33 -4
- package/src/astro/routes/api/relations/index.ts +4 -4
- package/src/astro/routes/api/schema/collections/[slug]/fields/[fieldSlug].ts +6 -2
- package/src/astro/routes/api/setup/index.ts +66 -23
- package/src/astro/routes/api/snapshot.ts +2 -1
- package/src/astro/types.ts +10 -0
- package/src/cleanup.ts +10 -0
- package/src/cli/commands/export-seed.ts +510 -89
- package/src/components/Columns.astro +3 -1
- package/src/components/Cover.astro +3 -1
- package/src/components/WidgetArea.astro +3 -2
- package/src/database/migrations/086_relations_structural.ts +197 -0
- package/src/database/migrations/087_reference_field_relations.ts +407 -0
- package/src/database/migrations/runner.ts +4 -0
- package/src/database/reference-backfill.ts +141 -0
- package/src/database/repositories/content.ts +43 -8
- package/src/database/repositories/media.ts +40 -1
- package/src/database/repositories/redirect.ts +17 -34
- package/src/database/repositories/relation.ts +620 -208
- package/src/database/repositories/revision.ts +16 -0
- package/src/database/repositories/types.ts +38 -0
- package/src/database/transaction.ts +12 -1
- package/src/database/types.ts +14 -5
- package/src/emdash-runtime.ts +114 -11
- package/src/index.ts +11 -0
- package/src/loader.ts +169 -22
- package/src/mcp/server.ts +13 -48
- package/src/query.ts +455 -25
- package/src/references/field-map.ts +115 -0
- package/src/references/resolve.ts +160 -0
- package/src/references/staged.ts +117 -0
- package/src/references/types.ts +16 -0
- package/src/registry/artifact-fetch.ts +45 -271
- package/src/schema/registry.ts +99 -24
- package/src/schema/types.ts +58 -0
- package/src/schema/zod-generator.ts +67 -1
- package/src/seed/apply.ts +841 -103
- package/src/seed/types.ts +36 -2
- package/src/seed/validate.ts +78 -2
- package/src/transfer/analyze/unique-keys.ts +3 -12
- package/src/transfer/analyze/validate.ts +65 -39
- package/src/transfer/analyze/values.ts +12 -1
- package/src/transfer/export/readers.ts +12 -8
- package/src/transfer/format/columns.ts +26 -6
- package/src/transfer/format/kinds.ts +21 -5
- package/src/transfer/import/context.ts +8 -1
- package/src/transfer/ops/package-index.ts +1 -1
- package/dist/action-token-DYwe4Pk0.mjs +0 -26
- package/dist/action-token-DYwe4Pk0.mjs.map +0 -1
- package/dist/activation-LOkDM5WT.mjs +0 -382
- package/dist/activation-LOkDM5WT.mjs.map +0 -1
- package/dist/adapters-B64LbYcB.d.mts +0 -171
- package/dist/adapters-B64LbYcB.d.mts.map +0 -1
- package/dist/allowed-origins-CHB8oZNM.mjs +0 -116
- package/dist/allowed-origins-CHB8oZNM.mjs.map +0 -1
- package/dist/api-cFFZpyS0.mjs +0 -4718
- package/dist/api-cFFZpyS0.mjs.map +0 -1
- package/dist/api-tokens-s4i4aUp_.mjs +0 -166
- package/dist/api-tokens-s4i4aUp_.mjs.map +0 -1
- package/dist/apply-CoT603H3.mjs +0 -1163
- package/dist/apply-CoT603H3.mjs.map +0 -1
- package/dist/approvals-CqMfNxak.mjs +0 -460
- package/dist/approvals-CqMfNxak.mjs.map +0 -1
- package/dist/artifact-fetch-DZMOGZ3-.mjs +0 -818
- package/dist/artifact-fetch-DZMOGZ3-.mjs.map +0 -1
- package/dist/astro/routes/api/relations/_id_/translations.d.mts +0 -8
- package/dist/astro/routes/api/relations/_id_/translations.d.mts.map +0 -1
- package/dist/astro/routes/api/relations/_id_/translations.mjs +0 -47
- package/dist/astro/routes/api/relations/_id_/translations.mjs.map +0 -1
- package/dist/audit-RfCugiSB.mjs +0 -127
- package/dist/audit-RfCugiSB.mjs.map +0 -1
- package/dist/authoritative-records-CoJvBXAD.mjs +0 -5172
- package/dist/authoritative-records-CoJvBXAD.mjs.map +0 -1
- package/dist/authorize-seCifOMJ.mjs +0 -49
- package/dist/authorize-seCifOMJ.mjs.map +0 -1
- package/dist/backup-CBu0LrXf.mjs +0 -246
- package/dist/backup-CBu0LrXf.mjs.map +0 -1
- package/dist/block-type-registry-DUI_3KxT.mjs +0 -6709
- package/dist/block-type-registry-DUI_3KxT.mjs.map +0 -1
- package/dist/block-types-BmZmLmAD.mjs +0 -132
- package/dist/block-types-BmZmLmAD.mjs.map +0 -1
- package/dist/block-values-C_VIPr5t.mjs +0 -175
- package/dist/block-values-C_VIPr5t.mjs.map +0 -1
- package/dist/byline-DYmkXqvo.mjs +0 -909
- package/dist/byline-DYmkXqvo.mjs.map +0 -1
- package/dist/byline-fields-D28AT-Fh.mjs +0 -123
- package/dist/byline-fields-D28AT-Fh.mjs.map +0 -1
- package/dist/byline-registry-gnKscbQX.mjs +0 -406
- package/dist/byline-registry-gnKscbQX.mjs.map +0 -1
- package/dist/bylines-BPwJqoYH.mjs +0 -232
- package/dist/bylines-BPwJqoYH.mjs.map +0 -1
- package/dist/bylines-ukLaYpVZ.mjs +0 -214
- package/dist/bylines-ukLaYpVZ.mjs.map +0 -1
- package/dist/cache-m7UEkRFV.mjs +0 -108
- package/dist/cache-m7UEkRFV.mjs.map +0 -1
- package/dist/canonical-YhEQezjg.mjs +0 -174
- package/dist/canonical-YhEQezjg.mjs.map +0 -1
- package/dist/capture-triggers-kJyl_yyM.mjs +0 -362
- package/dist/capture-triggers-kJyl_yyM.mjs.map +0 -1
- package/dist/challenge-store-ppU6Uv13.mjs +0 -51
- package/dist/challenge-store-ppU6Uv13.mjs.map +0 -1
- package/dist/checksum-B2IINIlN.mjs +0 -162
- package/dist/checksum-B2IINIlN.mjs.map +0 -1
- package/dist/chrome-tags-DApCQSIk.mjs +0 -24
- package/dist/chrome-tags-DApCQSIk.mjs.map +0 -1
- package/dist/chunks-Dms7Uxbt.mjs +0 -25
- package/dist/chunks-Dms7Uxbt.mjs.map +0 -1
- package/dist/collection-deletion-BIm28mo3.mjs +0 -436
- package/dist/collection-deletion-BIm28mo3.mjs.map +0 -1
- package/dist/collection-deletion-processor-Br6rxs3u.mjs +0 -217
- package/dist/collection-deletion-processor-Br6rxs3u.mjs.map +0 -1
- package/dist/collection-slugs-cache-CjGk__zp.mjs +0 -85
- package/dist/collection-slugs-cache-CjGk__zp.mjs.map +0 -1
- package/dist/comment-CrBl22OF.mjs +0 -313
- package/dist/comment-CrBl22OF.mjs.map +0 -1
- package/dist/comment-reaction-JEQ2Fpd8.mjs +0 -85
- package/dist/comment-reaction-JEQ2Fpd8.mjs.map +0 -1
- package/dist/comments-2ah9du9y.mjs +0 -195
- package/dist/comments-2ah9du9y.mjs.map +0 -1
- package/dist/comments-fHZ8ON9O.mjs +0 -99
- package/dist/comments-fHZ8ON9O.mjs.map +0 -1
- package/dist/components-CXbq7CSM.mjs +0 -108
- package/dist/components-CXbq7CSM.mjs.map +0 -1
- package/dist/config-5ii2haYu.d.mts +0 -6528
- package/dist/config-5ii2haYu.d.mts.map +0 -1
- package/dist/config-IhybvkIQ.mjs +0 -242
- package/dist/config-IhybvkIQ.mjs.map +0 -1
- package/dist/config-Py43JK9r.d.mts +0 -39
- package/dist/config-Py43JK9r.d.mts.map +0 -1
- package/dist/content-DFaIEDj9.mjs +0 -2281
- package/dist/content-DFaIEDj9.mjs.map +0 -1
- package/dist/content-list-query-Dra4Dalc.d.mts +0 -26
- package/dist/content-list-query-Dra4Dalc.d.mts.map +0 -1
- package/dist/content-policy-DFNw91-d.mjs +0 -46
- package/dist/content-policy-DFNw91-d.mjs.map +0 -1
- package/dist/content-repair-Q8IUrpLL.mjs +0 -442
- package/dist/content-repair-Q8IUrpLL.mjs.map +0 -1
- package/dist/context-BeGccdUX.mjs +0 -1921
- package/dist/context-BeGccdUX.mjs.map +0 -1
- package/dist/cron-7DCJwPXq.mjs +0 -284
- package/dist/cron-7DCJwPXq.mjs.map +0 -1
- package/dist/dashboard-DjrB-xxZ.mjs +0 -151
- package/dist/dashboard-DjrB-xxZ.mjs.map +0 -1
- package/dist/default-DQ6vsviu.mjs +0 -81
- package/dist/default-DQ6vsviu.mjs.map +0 -1
- package/dist/deferred-tasks-BPxXUB4x.d.mts +0 -9
- package/dist/deferred-tasks-BPxXUB4x.d.mts.map +0 -1
- package/dist/dev-typegen-CZaPLl3V.mjs +0 -29
- package/dist/dev-typegen-CZaPLl3V.mjs.map +0 -1
- package/dist/device-flow-CRd6DXmW.mjs +0 -466
- package/dist/device-flow-CRd6DXmW.mjs.map +0 -1
- package/dist/digest-BarSh-pN.mjs +0 -194
- package/dist/digest-BarSh-pN.mjs.map +0 -1
- package/dist/direct-executor-BmuFJJZV.mjs +0 -104
- package/dist/direct-executor-BmuFJJZV.mjs.map +0 -1
- package/dist/dist-BNwANFJR.mjs +0 -810
- package/dist/dist-BNwANFJR.mjs.map +0 -1
- package/dist/email-console-bJn3ctqA.mjs +0 -50
- package/dist/email-console-bJn3ctqA.mjs.map +0 -1
- package/dist/email-locale-CN6WAMx0.mjs +0 -25
- package/dist/email-locale-CN6WAMx0.mjs.map +0 -1
- package/dist/emdash-runtime-DAjghyEG.mjs +0 -4186
- package/dist/emdash-runtime-DAjghyEG.mjs.map +0 -1
- package/dist/enrich-Dl3kZ-lP.mjs +0 -194
- package/dist/enrich-Dl3kZ-lP.mjs.map +0 -1
- package/dist/entry-lock-BJYdBfXb.mjs +0 -1097
- package/dist/entry-lock-BJYdBfXb.mjs.map +0 -1
- package/dist/entry-lock-DHQOxN7R.mjs +0 -163
- package/dist/entry-lock-DHQOxN7R.mjs.map +0 -1
- package/dist/entry-lock-DVhCt49A.d.mts +0 -4368
- package/dist/entry-lock-DVhCt49A.d.mts.map +0 -1
- package/dist/entry-locks-D0foLdjQ.mjs +0 -167
- package/dist/entry-locks-D0foLdjQ.mjs.map +0 -1
- package/dist/error-CfvOHP0M.mjs +0 -90
- package/dist/error-CfvOHP0M.mjs.map +0 -1
- package/dist/errors-BF0_LFhW.mjs +0 -460
- package/dist/errors-BF0_LFhW.mjs.map +0 -1
- package/dist/errors-DgE1zJGG.mjs +0 -120
- package/dist/errors-DgE1zJGG.mjs.map +0 -1
- package/dist/escape-CuaZhZvL.mjs +0 -9
- package/dist/escape-CuaZhZvL.mjs.map +0 -1
- package/dist/fence-CMDXJYc_.mjs +0 -162
- package/dist/fence-CMDXJYc_.mjs.map +0 -1
- package/dist/field-defs-cache-HIgBbqZZ.mjs +0 -77
- package/dist/field-defs-cache-HIgBbqZZ.mjs.map +0 -1
- package/dist/focal-point-Gr34o-4o.mjs +0 -23
- package/dist/focal-point-Gr34o-4o.mjs.map +0 -1
- package/dist/fts-manager-S-K0laoS.mjs +0 -443
- package/dist/fts-manager-S-K0laoS.mjs.map +0 -1
- package/dist/gc-DjKY0Ay1.mjs +0 -75
- package/dist/gc-DjKY0Ay1.mjs.map +0 -1
- package/dist/hash-SDAW6zC-.mjs +0 -37
- package/dist/hash-SDAW6zC-.mjs.map +0 -1
- package/dist/hook-result-B5bXDgS2.d.mts +0 -31
- package/dist/hook-result-B5bXDgS2.d.mts.map +0 -1
- package/dist/hreflang-D5uNnsGJ.d.mts +0 -50
- package/dist/hreflang-D5uNnsGJ.d.mts.map +0 -1
- package/dist/hreflang-DMFBL2eb.mjs +0 -105
- package/dist/hreflang-DMFBL2eb.mjs.map +0 -1
- package/dist/http-route-dispatch-BitqzwMy.mjs +0 -339
- package/dist/http-route-dispatch-BitqzwMy.mjs.map +0 -1
- package/dist/identity-IyNWwXr6.mjs +0 -35
- package/dist/identity-IyNWwXr6.mjs.map +0 -1
- package/dist/import-C3JZplWq.mjs +0 -2020
- package/dist/import-C3JZplWq.mjs.map +0 -1
- package/dist/index-D-hdtLe8.d.mts +0 -623
- package/dist/index-D-hdtLe8.d.mts.map +0 -1
- package/dist/install-finalization-DfM1fj5x.mjs +0 -58
- package/dist/install-finalization-DfM1fj5x.mjs.map +0 -1
- package/dist/keys-yxLm5l35.mjs +0 -61
- package/dist/keys-yxLm5l35.mjs.map +0 -1
- package/dist/kinds-CRu_T5T5.mjs +0 -961
- package/dist/kinds-CRu_T5T5.mjs.map +0 -1
- package/dist/lifecycle-BzeGPeQ-.mjs +0 -25
- package/dist/lifecycle-BzeGPeQ-.mjs.map +0 -1
- package/dist/load-XgJiE6_3.mjs +0 -28
- package/dist/load-XgJiE6_3.mjs.map +0 -1
- package/dist/loader-BzqeR1ZN.mjs +0 -1086
- package/dist/loader-BzqeR1ZN.mjs.map +0 -1
- package/dist/loops-BQSzv5Zn.mjs +0 -203
- package/dist/loops-BQSzv5Zn.mjs.map +0 -1
- package/dist/manifest-builder-B8zR-73J.mjs +0 -189
- package/dist/manifest-builder-B8zR-73J.mjs.map +0 -1
- package/dist/manifest-schema-CY3zng_M.mjs +0 -492
- package/dist/manifest-schema-CY3zng_M.mjs.map +0 -1
- package/dist/media-Pu1L6xir.mjs +0 -408
- package/dist/media-Pu1L6xir.mjs.map +0 -1
- package/dist/media-Qp5S3eH3.mjs +0 -355
- package/dist/media-Qp5S3eH3.mjs.map +0 -1
- package/dist/media-allowlist-BSoa9Vvm.mjs +0 -44
- package/dist/media-allowlist-BSoa9Vvm.mjs.map +0 -1
- package/dist/media-folders-BE0oo2eX.mjs +0 -210
- package/dist/media-folders-BE0oo2eX.mjs.map +0 -1
- package/dist/media-h7tOiDLj.mjs +0 -221
- package/dist/media-h7tOiDLj.mjs.map +0 -1
- package/dist/media-url-jArBpzIG.mjs +0 -43
- package/dist/media-url-jArBpzIG.mjs.map +0 -1
- package/dist/media-usage-My-Vi-ex.mjs +0 -1629
- package/dist/media-usage-My-Vi-ex.mjs.map +0 -1
- package/dist/media-usage-activation-HKp7zk7W.mjs +0 -78
- package/dist/media-usage-activation-HKp7zk7W.mjs.map +0 -1
- package/dist/media-usage-work-C2OZLCAd.mjs +0 -586
- package/dist/media-usage-work-C2OZLCAd.mjs.map +0 -1
- package/dist/media-usage-work-DwUNbgvS.mjs +0 -152
- package/dist/media-usage-work-DwUNbgvS.mjs.map +0 -1
- package/dist/menus-BM7BPLOb.mjs +0 -139
- package/dist/menus-BM7BPLOb.mjs.map +0 -1
- package/dist/menus-ITeAbcIF.mjs +0 -753
- package/dist/menus-ITeAbcIF.mjs.map +0 -1
- package/dist/menus-TsSGmSR4.mjs +0 -3608
- package/dist/menus-TsSGmSR4.mjs.map +0 -1
- package/dist/mime-ChLqYwDk.mjs +0 -36
- package/dist/mime-ChLqYwDk.mjs.map +0 -1
- package/dist/mode-CCuKXUci.mjs +0 -23
- package/dist/mode-CCuKXUci.mjs.map +0 -1
- package/dist/node-sqlite-compat-CONMsl-x.mjs +0 -46
- package/dist/node-sqlite-compat-CONMsl-x.mjs.map +0 -1
- package/dist/normalize-CO2P8-iE.mjs +0 -191
- package/dist/normalize-CO2P8-iE.mjs.map +0 -1
- package/dist/oauth-authorization-DlMIL5_h.mjs +0 -274
- package/dist/oauth-authorization-DlMIL5_h.mjs.map +0 -1
- package/dist/oauth-clients-Djq9r_KP.mjs +0 -266
- package/dist/oauth-clients-Djq9r_KP.mjs.map +0 -1
- package/dist/oauth-state-store-BbjnZXNC.mjs +0 -50
- package/dist/oauth-state-store-BbjnZXNC.mjs.map +0 -1
- package/dist/oauth-user-lookup-vue9a64A.mjs +0 -26
- package/dist/oauth-user-lookup-vue9a64A.mjs.map +0 -1
- package/dist/options-SQCHQCPH.d.mts +0 -81
- package/dist/options-SQCHQCPH.d.mts.map +0 -1
- package/dist/parse-CVgO-Qai.d.mts +0 -168
- package/dist/parse-CVgO-Qai.d.mts.map +0 -1
- package/dist/parse-DY6OD1j_.mjs +0 -81
- package/dist/parse-DY6OD1j_.mjs.map +0 -1
- package/dist/passkey-config-X_H8128a.mjs +0 -46
- package/dist/passkey-config-X_H8128a.mjs.map +0 -1
- package/dist/paths-JxokKIbr.mjs +0 -77
- package/dist/paths-JxokKIbr.mjs.map +0 -1
- package/dist/patterns-BhAvqO0S.mjs +0 -145
- package/dist/patterns-BhAvqO0S.mjs.map +0 -1
- package/dist/placeholder-MSEd8gty.d.mts +0 -306
- package/dist/placeholder-MSEd8gty.d.mts.map +0 -1
- package/dist/plan-xjcWrAah.mjs +0 -135
- package/dist/plan-xjcWrAah.mjs.map +0 -1
- package/dist/plugins-DUXUt8B9.mjs +0 -277
- package/dist/plugins-DUXUt8B9.mjs.map +0 -1
- package/dist/policy-CUvwAARc.mjs +0 -45
- package/dist/policy-CUvwAARc.mjs.map +0 -1
- package/dist/portable-text-5O_ZGUjB.mjs +0 -307
- package/dist/portable-text-5O_ZGUjB.mjs.map +0 -1
- package/dist/preview-CIUcPYr6.mjs +0 -107
- package/dist/preview-CIUcPYr6.mjs.map +0 -1
- package/dist/protocol-B97DZaFr.d.mts +0 -61
- package/dist/protocol-B97DZaFr.d.mts.map +0 -1
- package/dist/public-submission-BFBUrqst.mjs +0 -250
- package/dist/public-submission-BFBUrqst.mjs.map +0 -1
- package/dist/public-url-Bn7U0D7-.mjs +0 -101
- package/dist/public-url-Bn7U0D7-.mjs.map +0 -1
- package/dist/query-B48peoRT.mjs +0 -890
- package/dist/query-B48peoRT.mjs.map +0 -1
- package/dist/query-C4IH0uhR.mjs +0 -41
- package/dist/query-C4IH0uhR.mjs.map +0 -1
- package/dist/rate-limit-BZ6nybgc.mjs +0 -120
- package/dist/rate-limit-BZ6nybgc.mjs.map +0 -1
- package/dist/receipt-B4wJj5Jq.mjs +0 -43
- package/dist/receipt-B4wJj5Jq.mjs.map +0 -1
- package/dist/redirect-Cd1E7VUt.mjs +0 -17
- package/dist/redirect-Cd1E7VUt.mjs.map +0 -1
- package/dist/redirect-iJf5fltD.mjs +0 -415
- package/dist/redirect-iJf5fltD.mjs.map +0 -1
- package/dist/redirects-CYu1u1aK.mjs +0 -446
- package/dist/redirects-CYu1u1aK.mjs.map +0 -1
- package/dist/redirects-Cv9apQKj.mjs +0 -148
- package/dist/redirects-Cv9apQKj.mjs.map +0 -1
- package/dist/relation-M4NUCb0b.mjs +0 -334
- package/dist/relation-M4NUCb0b.mjs.map +0 -1
- package/dist/relations-CCif47Oq.mjs +0 -403
- package/dist/relations-CCif47Oq.mjs.map +0 -1
- package/dist/relations-CK9CYUyr.mjs +0 -310
- package/dist/relations-CK9CYUyr.mjs.map +0 -1
- package/dist/request-cache-DzLYKm_x.mjs +0 -104
- package/dist/request-cache-DzLYKm_x.mjs.map +0 -1
- package/dist/request-meta-sZXt3sRo.mjs +0 -141
- package/dist/request-meta-sZXt3sRo.mjs.map +0 -1
- package/dist/resolve-2WbQsCvT.mjs +0 -199
- package/dist/resolve-2WbQsCvT.mjs.map +0 -1
- package/dist/route-wire--1hLuACz.mjs +0 -197
- package/dist/route-wire--1hLuACz.mjs.map +0 -1
- package/dist/routes-CUsM40Cc.mjs +0 -272
- package/dist/routes-CUsM40Cc.mjs.map +0 -1
- package/dist/runner-1y4J9fJB.mjs +0 -5742
- package/dist/runner-1y4J9fJB.mjs.map +0 -1
- package/dist/runner-D5_LzKXI.d.mts +0 -68
- package/dist/runner-D5_LzKXI.d.mts.map +0 -1
- package/dist/schema-BABiRdsH.mjs +0 -13
- package/dist/schema-BABiRdsH.mjs.map +0 -1
- package/dist/schema-Du3MzCG0.mjs +0 -446
- package/dist/schema-Du3MzCG0.mjs.map +0 -1
- package/dist/scopes-Dbk-ElhT.mjs +0 -34
- package/dist/scopes-Dbk-ElhT.mjs.map +0 -1
- package/dist/search-Bt1PL1jf.mjs +0 -448
- package/dist/search-Bt1PL1jf.mjs.map +0 -1
- package/dist/sections-Ddptx_o9.mjs +0 -346
- package/dist/sections-Ddptx_o9.mjs.map +0 -1
- package/dist/seo-CZT2oLtT.mjs +0 -114
- package/dist/seo-CZT2oLtT.mjs.map +0 -1
- package/dist/seo-D5w3-Azy.mjs +0 -133
- package/dist/seo-D5w3-Azy.mjs.map +0 -1
- package/dist/service-DuykXPyW.mjs +0 -150
- package/dist/service-DuykXPyW.mjs.map +0 -1
- package/dist/session-user-BhaVp8w0.mjs +0 -51
- package/dist/session-user-BhaVp8w0.mjs.map +0 -1
- package/dist/settings-2xNYr90o.mjs +0 -51
- package/dist/settings-2xNYr90o.mjs.map +0 -1
- package/dist/settings-CgjRWGW9.mjs +0 -439
- package/dist/settings-CgjRWGW9.mjs.map +0 -1
- package/dist/settings-DYidIB26.mjs +0 -61
- package/dist/settings-DYidIB26.mjs.map +0 -1
- package/dist/setup-complete-bOogcHWG.mjs +0 -26
- package/dist/setup-complete-bOogcHWG.mjs.map +0 -1
- package/dist/setup-nonce-0EGuKM4s.mjs +0 -25
- package/dist/setup-nonce-0EGuKM4s.mjs.map +0 -1
- package/dist/site-settings-DOgRUoFX.mjs +0 -50
- package/dist/site-settings-DOgRUoFX.mjs.map +0 -1
- package/dist/site-url-BU_bbxwj.mjs +0 -16
- package/dist/site-url-BU_bbxwj.mjs.map +0 -1
- package/dist/snapshot-CugwUqKQ.mjs +0 -237
- package/dist/snapshot-CugwUqKQ.mjs.map +0 -1
- package/dist/ssrf-CJUnJymJ.mjs +0 -406
- package/dist/ssrf-CJUnJymJ.mjs.map +0 -1
- package/dist/stage-DgrBz_du.mjs +0 -662
- package/dist/stage-DgrBz_du.mjs.map +0 -1
- package/dist/state-DDiPySSG.mjs +0 -153
- package/dist/state-DDiPySSG.mjs.map +0 -1
- package/dist/status-DZKIG4a9.mjs +0 -30
- package/dist/status-DZKIG4a9.mjs.map +0 -1
- package/dist/storage-query-Bdv7A62k.d.mts +0 -1576
- package/dist/storage-query-Bdv7A62k.d.mts.map +0 -1
- package/dist/tar-_1AgTYFu.mjs +0 -449
- package/dist/tar-_1AgTYFu.mjs.map +0 -1
- package/dist/target-_7pn2Gbg.mjs +0 -27
- package/dist/target-_7pn2Gbg.mjs.map +0 -1
- package/dist/taxonomies-C1IwNe8Q.mjs +0 -697
- package/dist/taxonomies-C1IwNe8Q.mjs.map +0 -1
- package/dist/taxonomies-C_XMoRcX.mjs +0 -939
- package/dist/taxonomies-C_XMoRcX.mjs.map +0 -1
- package/dist/taxonomy-C3Fu1YeH.mjs +0 -525
- package/dist/taxonomy-C3Fu1YeH.mjs.map +0 -1
- package/dist/tokens-u78jETkX.mjs +0 -171
- package/dist/tokens-u78jETkX.mjs.map +0 -1
- package/dist/transaction-BcJO4Tmc.mjs +0 -29
- package/dist/transaction-BcJO4Tmc.mjs.map +0 -1
- package/dist/transfer-BhUCrgDc.mjs +0 -8675
- package/dist/transfer-BhUCrgDc.mjs.map +0 -1
- package/dist/transfer-DIGvR9Af.mjs +0 -166
- package/dist/transfer-DIGvR9Af.mjs.map +0 -1
- package/dist/transfer-download-Pml7RMio.mjs +0 -33
- package/dist/transfer-download-Pml7RMio.mjs.map +0 -1
- package/dist/transformations-9gfpwY65.mjs +0 -196
- package/dist/transformations-9gfpwY65.mjs.map +0 -1
- package/dist/transport-BIfH7_hx.d.mts +0 -42
- package/dist/transport-BIfH7_hx.d.mts.map +0 -1
- package/dist/transport-DKWIq53q.mjs +0 -136
- package/dist/transport-DKWIq53q.mjs.map +0 -1
- package/dist/trusted-proxy-tKiVtyTD.mjs +0 -51
- package/dist/trusted-proxy-tKiVtyTD.mjs.map +0 -1
- package/dist/turnstile-DpsoyOfg.mjs +0 -53
- package/dist/turnstile-DpsoyOfg.mjs.map +0 -1
- package/dist/types-B4sUC2p1.d.mts +0 -198
- package/dist/types-B4sUC2p1.d.mts.map +0 -1
- package/dist/types-B7Lmsh1E.d.mts +0 -887
- package/dist/types-B7Lmsh1E.d.mts.map +0 -1
- package/dist/types-BZakh7Ym.mjs +0 -22
- package/dist/types-BZakh7Ym.mjs.map +0 -1
- package/dist/types-B_CppEmv.d.mts +0 -264
- package/dist/types-B_CppEmv.d.mts.map +0 -1
- package/dist/types-BcrBrE6-.mjs +0 -159
- package/dist/types-BcrBrE6-.mjs.map +0 -1
- package/dist/types-BkUg2yHx.mjs +0 -92
- package/dist/types-BkUg2yHx.mjs.map +0 -1
- package/dist/types-CAZgq9fO.d.mts +0 -124
- package/dist/types-CAZgq9fO.d.mts.map +0 -1
- package/dist/types-Cd-O03VG.d.mts +0 -363
- package/dist/types-Cd-O03VG.d.mts.map +0 -1
- package/dist/types-Cr-Kg-3D.d.mts +0 -1641
- package/dist/types-Cr-Kg-3D.d.mts.map +0 -1
- package/dist/types-D2fvWd1i.d.mts +0 -359
- package/dist/types-D2fvWd1i.d.mts.map +0 -1
- package/dist/types-D7HUsguf.mjs +0 -77
- package/dist/types-D7HUsguf.mjs.map +0 -1
- package/dist/types-DA1Te3Oy.d.mts +0 -198
- package/dist/types-DA1Te3Oy.d.mts.map +0 -1
- package/dist/types-DhV6Q5bP.mjs +0 -18
- package/dist/types-DhV6Q5bP.mjs.map +0 -1
- package/dist/types-DnnVSl6Y.d.mts +0 -85
- package/dist/types-DnnVSl6Y.d.mts.map +0 -1
- package/dist/types-VT4-BugW.mjs +0 -16
- package/dist/types-VT4-BugW.mjs.map +0 -1
- package/dist/upload-attempts-B68ZGNu9.mjs +0 -32
- package/dist/upload-attempts-B68ZGNu9.mjs.map +0 -1
- package/dist/url-pattern-CCeZMGOh.mjs +0 -33
- package/dist/url-pattern-CCeZMGOh.mjs.map +0 -1
- package/dist/user-DDSL-sGw.mjs +0 -171
- package/dist/user-DDSL-sGw.mjs.map +0 -1
- package/dist/utils-DdhmO9w9.mjs +0 -439
- package/dist/utils-DdhmO9w9.mjs.map +0 -1
- package/dist/validate-CHosPEhs.mjs +0 -453
- package/dist/validate-CHosPEhs.mjs.map +0 -1
- package/dist/validate-CM79QXYE.d.mts +0 -432
- package/dist/validate-CM79QXYE.d.mts.map +0 -1
- package/dist/validation-BFecQczG.mjs +0 -218
- package/dist/validation-BFecQczG.mjs.map +0 -1
- package/dist/version-BRZXVifl.mjs +0 -9
- package/dist/version-BRZXVifl.mjs.map +0 -1
- package/dist/version-DUQDHgrf.mjs +0 -7
- package/dist/version-DUQDHgrf.mjs.map +0 -1
- package/dist/widgets-WdV72brA.mjs +0 -126
- package/dist/widgets-WdV72brA.mjs.map +0 -1
- package/dist/wxr-taxonomies-BHTdqkmZ.d.mts +0 -34
- package/dist/wxr-taxonomies-BHTdqkmZ.d.mts.map +0 -1
- package/dist/wxr-taxonomies-DP6ESgMN.mjs +0 -372
- package/dist/wxr-taxonomies-DP6ESgMN.mjs.map +0 -1
- package/dist/zod-generator-D6uE4WiS.mjs +0 -389
- package/dist/zod-generator-D6uE4WiS.mjs.map +0 -1
- package/src/astro/routes/api/relations/[id]/translations.ts +0 -33
- /package/dist/{api-tokens-CE1ECIg0.mjs → api-tokens-FaG1zPsj.mjs} +0 -0
- /package/dist/{ssrf-DpBH7aOt.mjs → ssrf-DZOt8Qof.mjs} +0 -0
package/dist/query-B48peoRT.mjs
DELETED
|
@@ -1,890 +0,0 @@
|
|
|
1
|
-
import { u as __exportAll } from "./runner-1y4J9fJB.mjs";
|
|
2
|
-
import { n as isMissingTableError } from "./db-errors-CBD5yMro.mjs";
|
|
3
|
-
import { i as isI18nEnabled, n as getFallbackChain, r as getI18nConfig } from "./config-CvmjJcVw.mjs";
|
|
4
|
-
import { getRequestContext } from "./request-context.mjs";
|
|
5
|
-
import { n as cachedQuery, o as contentNamespaces, p as invalidateSchemaObjectCache } from "./object-cache-CqWNY5uP.mjs";
|
|
6
|
-
import { s as encodeCursor } from "./types-BkUg2yHx.mjs";
|
|
7
|
-
import { r as requestCached } from "./request-cache-DzLYKm_x.mjs";
|
|
8
|
-
import { a as creditsFromFoldedBylines, i as FOLDED_TERMS, n as FOLDED_BYLINES, r as FOLDED_BYLINES_EXIST, t as CURSOR_RAW_VALUES, u as primeSeoPanel } from "./loader-BzqeR1ZN.mjs";
|
|
9
|
-
import { i as resetRegisteredCollectionsCache } from "./collection-slugs-cache-CjGk__zp.mjs";
|
|
10
|
-
import { t as compileUrlPattern } from "./url-pattern-CCeZMGOh.mjs";
|
|
11
|
-
|
|
12
|
-
//#region src/visual-editing/editable.ts
|
|
13
|
-
/**
|
|
14
|
-
* Create an editable proxy for an entry.
|
|
15
|
-
*
|
|
16
|
-
* Usage:
|
|
17
|
-
* - `{...entry.edit}` - entry-level annotation (includes status/hasDraft)
|
|
18
|
-
* - `{...entry.edit.title}` - field-level annotation
|
|
19
|
-
* - `{...entry.edit['nested.field']}` - nested field (bracket notation)
|
|
20
|
-
*/
|
|
21
|
-
function createEditable(collection, id, options) {
|
|
22
|
-
const base = {
|
|
23
|
-
collection,
|
|
24
|
-
id,
|
|
25
|
-
...options?.status && { status: options.status },
|
|
26
|
-
...options?.hasDraft && { hasDraft: true }
|
|
27
|
-
};
|
|
28
|
-
return new Proxy({}, {
|
|
29
|
-
get(_, prop) {
|
|
30
|
-
if (prop === "toJSON") return () => ({ "data-emdash-ref": JSON.stringify(base) });
|
|
31
|
-
if (typeof prop === "symbol") return void 0;
|
|
32
|
-
if (prop === "data-emdash-ref") return JSON.stringify(base);
|
|
33
|
-
return { "data-emdash-ref": JSON.stringify({
|
|
34
|
-
...base,
|
|
35
|
-
field: String(prop)
|
|
36
|
-
}) };
|
|
37
|
-
},
|
|
38
|
-
ownKeys() {
|
|
39
|
-
return ["data-emdash-ref"];
|
|
40
|
-
},
|
|
41
|
-
getOwnPropertyDescriptor(_, prop) {
|
|
42
|
-
if (prop === "data-emdash-ref") return {
|
|
43
|
-
configurable: true,
|
|
44
|
-
enumerable: true,
|
|
45
|
-
value: JSON.stringify(base)
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Create a noop proxy for production mode.
|
|
52
|
-
* Spreading this produces no attributes.
|
|
53
|
-
*/
|
|
54
|
-
function createNoop() {
|
|
55
|
-
return new Proxy({}, {
|
|
56
|
-
get(_, prop) {
|
|
57
|
-
if (typeof prop === "symbol") return void 0;
|
|
58
|
-
},
|
|
59
|
-
ownKeys() {
|
|
60
|
-
return [];
|
|
61
|
-
},
|
|
62
|
-
getOwnPropertyDescriptor() {}
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
//#endregion
|
|
67
|
-
//#region src/query.ts
|
|
68
|
-
/**
|
|
69
|
-
* Query functions for EmDash content
|
|
70
|
-
*
|
|
71
|
-
* These wrap Astro's getLiveCollection/getLiveEntry with type filtering.
|
|
72
|
-
* Use these instead of calling Astro's functions directly.
|
|
73
|
-
*
|
|
74
|
-
* Error handling follows Astro's pattern - returns { entries/entry, error }
|
|
75
|
-
* so callers can gracefully handle errors (including 404s).
|
|
76
|
-
*
|
|
77
|
-
* Preview mode is handled implicitly via ALS request context —
|
|
78
|
-
* no parameters needed. The middleware verifies the preview token
|
|
79
|
-
* and sets the context; query functions read it automatically.
|
|
80
|
-
*
|
|
81
|
-
* The triple-slash directive above pulls in the ambient declaration for
|
|
82
|
-
* `astro:content` (used by the dynamic imports below) so this source
|
|
83
|
-
* file typechecks even when reached transitively by a sibling package
|
|
84
|
-
* whose tsconfig doesn't list `astro/client` in `compilerOptions.types`.
|
|
85
|
-
*
|
|
86
|
-
* Note: the directive is stripped from the compiled output (`dist/*`)
|
|
87
|
-
* by tsdown, so it does not propagate to downstream consumers of the
|
|
88
|
-
* published package. Consumers are Astro sites and already provide their
|
|
89
|
-
* own `astro/client` ambient surface anyway, so the runtime dynamic
|
|
90
|
-
* import resolves there at typecheck time without our help.
|
|
91
|
-
*/
|
|
92
|
-
var query_exports = /* @__PURE__ */ __exportAll({
|
|
93
|
-
bucketFilter: () => bucketFilter,
|
|
94
|
-
getEditMeta: () => getEditMeta,
|
|
95
|
-
getEmDashCollection: () => getEmDashCollection,
|
|
96
|
-
getEmDashEntry: () => getEmDashEntry,
|
|
97
|
-
getTranslations: () => getTranslations,
|
|
98
|
-
invalidateUrlPatternCache: () => invalidateUrlPatternCache,
|
|
99
|
-
resolveEmDashPath: () => resolveEmDashPath,
|
|
100
|
-
sliceCollectionResult: () => sliceCollectionResult
|
|
101
|
-
});
|
|
102
|
-
const COLLECTION_NAME = "_emdash";
|
|
103
|
-
/** Symbol key for edit metadata on PT arrays — avoids collision with user data */
|
|
104
|
-
const EMDASH_EDIT = Symbol.for("__emdash");
|
|
105
|
-
/** Type guard for EditFieldMeta */
|
|
106
|
-
function isEditFieldMeta(value) {
|
|
107
|
-
if (typeof value !== "object" || value === null) return false;
|
|
108
|
-
if (!("collection" in value) || !("id" in value) || !("field" in value)) return false;
|
|
109
|
-
const { collection, id, field } = value;
|
|
110
|
-
return typeof collection === "string" && typeof id === "string" && typeof field === "string";
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Read edit metadata from a value (returns undefined if not tagged).
|
|
114
|
-
* Uses Object.getOwnPropertyDescriptor to access Symbol-keyed property
|
|
115
|
-
* without an unsafe type assertion.
|
|
116
|
-
*/
|
|
117
|
-
function getEditMeta(value) {
|
|
118
|
-
if (value && typeof value === "object") {
|
|
119
|
-
const meta = Object.getOwnPropertyDescriptor(value, EMDASH_EDIT)?.value;
|
|
120
|
-
if (isEditFieldMeta(meta)) return meta;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Tag PT-like arrays in entry data with edit metadata (non-enumerable).
|
|
125
|
-
* A PT array is identified by: is an array, first element has _type property.
|
|
126
|
-
*/
|
|
127
|
-
function tagEditableFields(data, collection, id) {
|
|
128
|
-
for (const [field, value] of Object.entries(data)) if (Array.isArray(value) && value.length > 0 && value[0] && typeof value[0] === "object" && "_type" in value[0]) Object.defineProperty(value, EMDASH_EDIT, {
|
|
129
|
-
value: {
|
|
130
|
-
collection,
|
|
131
|
-
id,
|
|
132
|
-
field
|
|
133
|
-
},
|
|
134
|
-
enumerable: false,
|
|
135
|
-
configurable: true
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
/** Safely read a string field from a Record, with optional fallback */
|
|
139
|
-
function dataStr(data, key, fallback = "") {
|
|
140
|
-
const val = data[key];
|
|
141
|
-
return typeof val === "string" ? val : fallback;
|
|
142
|
-
}
|
|
143
|
-
/** Type guard for Record<string, unknown> */
|
|
144
|
-
function isRecord(value) {
|
|
145
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
146
|
-
}
|
|
147
|
-
/** Extract data as Record from an Astro entry (which is any-typed) */
|
|
148
|
-
function entryData(entry) {
|
|
149
|
-
return isRecord(entry.data) ? entry.data : {};
|
|
150
|
-
}
|
|
151
|
-
/** Extract the database ID from entry data (data.id is the ULID, entry.id is the slug) */
|
|
152
|
-
function entryDatabaseId(entry) {
|
|
153
|
-
return dataStr(entryData(entry), "id") || entry.id;
|
|
154
|
-
}
|
|
155
|
-
/** Extract edit options from entry data for the proxy */
|
|
156
|
-
function entryEditOptions(entry) {
|
|
157
|
-
const data = entryData(entry);
|
|
158
|
-
const status = dataStr(data, "status", "draft");
|
|
159
|
-
const draftRevisionId = dataStr(data, "draftRevisionId") || void 0;
|
|
160
|
-
const liveRevisionId = dataStr(data, "liveRevisionId") || void 0;
|
|
161
|
-
return {
|
|
162
|
-
status,
|
|
163
|
-
hasDraft: !!draftRevisionId && draftRevisionId !== liveRevisionId
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
function stripRevisionMetadata(entry) {
|
|
167
|
-
const data = entryData(entry);
|
|
168
|
-
delete data.draftRevisionId;
|
|
169
|
-
delete data.liveRevisionId;
|
|
170
|
-
}
|
|
171
|
-
function canExposeRevisionMetadata(entry, collection) {
|
|
172
|
-
const ctx = getRequestContext();
|
|
173
|
-
if (ctx?.editMode) return true;
|
|
174
|
-
if (ctx?.preview?.collection !== collection) return false;
|
|
175
|
-
const dbId = entryDatabaseId(entry);
|
|
176
|
-
return ctx.preview.id === dbId || ctx.preview.id === entry.id;
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Get all entries of a content type
|
|
180
|
-
*
|
|
181
|
-
* Returns { entries, error } for graceful error handling.
|
|
182
|
-
*
|
|
183
|
-
* When emdash-env.d.ts is generated, the collection name will be
|
|
184
|
-
* type-checked and the return type will be inferred automatically.
|
|
185
|
-
*
|
|
186
|
-
* @example
|
|
187
|
-
* ```ts
|
|
188
|
-
* import { getEmDashCollection } from "emdash";
|
|
189
|
-
*
|
|
190
|
-
* const { entries: posts, error } = await getEmDashCollection("posts");
|
|
191
|
-
* if (error) {
|
|
192
|
-
* console.error("Failed to load posts:", error);
|
|
193
|
-
* return;
|
|
194
|
-
* }
|
|
195
|
-
* // posts[0].data.title is typed (if emdash-env.d.ts exists)
|
|
196
|
-
*
|
|
197
|
-
* // With filters
|
|
198
|
-
* const { entries: drafts } = await getEmDashCollection("posts", { status: "draft" });
|
|
199
|
-
* ```
|
|
200
|
-
*/
|
|
201
|
-
async function getEmDashCollection(type, filter) {
|
|
202
|
-
const bucketed = bucketFilter(filter);
|
|
203
|
-
const ctx = getRequestContext();
|
|
204
|
-
const serveDrafts = ctx?.editMode === true || ctx?.preview !== void 0;
|
|
205
|
-
const cached = await requestCached(collectionCacheKey(type, bucketed.fetchFilter), () => serveDrafts ? getEmDashCollectionUncached(type, bucketed.fetchFilter) : loadCollectionCached(type, bucketed.fetchFilter));
|
|
206
|
-
return bucketed.requestedLimit === void 0 ? cached : sliceCollectionResult(cached, bucketed.requestedLimit, filter?.orderBy);
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Distributed (L2) read-through around {@link getEmDashCollectionUncached}.
|
|
210
|
-
*
|
|
211
|
-
* Caches a JSON-safe snapshot keyed by collection + filter + effective locale,
|
|
212
|
-
* folding the shared `bylines`/`taxonomies` epochs into the key so renaming an
|
|
213
|
-
* author or term invalidates affected lists. Errors are never cached.
|
|
214
|
-
*/
|
|
215
|
-
async function loadCollectionCached(type, filter) {
|
|
216
|
-
const snapshot = await cachedQuery({
|
|
217
|
-
namespace: contentNamespaces(type),
|
|
218
|
-
key: `collection:${collectionCacheKey(type, filter)}|loc=${effectiveLocaleKey(filter)}`,
|
|
219
|
-
load: async () => {
|
|
220
|
-
const result = await getEmDashCollectionUncached(type, filter);
|
|
221
|
-
if (result.error) return {
|
|
222
|
-
ok: false,
|
|
223
|
-
error: result.error,
|
|
224
|
-
cacheHint: result.cacheHint
|
|
225
|
-
};
|
|
226
|
-
return {
|
|
227
|
-
ok: true,
|
|
228
|
-
value: {
|
|
229
|
-
entries: result.entries.map(entrySnapshot),
|
|
230
|
-
nextCursor: result.nextCursor,
|
|
231
|
-
hasMore: result.hasMore,
|
|
232
|
-
cacheHint: result.cacheHint
|
|
233
|
-
}
|
|
234
|
-
};
|
|
235
|
-
},
|
|
236
|
-
cacheable: (snap) => snap.ok
|
|
237
|
-
});
|
|
238
|
-
if (!snapshot.ok) return {
|
|
239
|
-
entries: [],
|
|
240
|
-
error: snapshot.error,
|
|
241
|
-
cacheHint: snapshot.cacheHint
|
|
242
|
-
};
|
|
243
|
-
return {
|
|
244
|
-
entries: snapshot.value.entries.map((entry) => {
|
|
245
|
-
const revived = reviveEntry(entry);
|
|
246
|
-
if (!canExposeRevisionMetadata(revived, type)) stripRevisionMetadata(revived);
|
|
247
|
-
return revived;
|
|
248
|
-
}),
|
|
249
|
-
nextCursor: snapshot.value.nextCursor,
|
|
250
|
-
hasMore: snapshot.value.hasMore,
|
|
251
|
-
cacheHint: snapshot.value.cacheHint
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Threshold for limit bucketing. Page templates routinely render small
|
|
256
|
-
* "recent posts" widgets at limits 3-8; rounding those up to a single
|
|
257
|
-
* shared bucket lets one fetch satisfy several widgets within a request.
|
|
258
|
-
* Above this, the requested limit is honoured exactly — bucketing limit:50
|
|
259
|
-
* to limit:64 would waste hydration work for callers fetching real pages.
|
|
260
|
-
*/
|
|
261
|
-
const BUCKET_LIMIT_THRESHOLD = 10;
|
|
262
|
-
/** @internal exported for unit tests; not part of the public API. */
|
|
263
|
-
function bucketFilter(filter) {
|
|
264
|
-
const limit = filter?.limit;
|
|
265
|
-
if (limit === void 0 || limit >= BUCKET_LIMIT_THRESHOLD || limit <= 0 || filter?.cursor !== void 0 || filter?.offset !== void 0) return {
|
|
266
|
-
fetchFilter: filter,
|
|
267
|
-
requestedLimit: void 0
|
|
268
|
-
};
|
|
269
|
-
return {
|
|
270
|
-
fetchFilter: {
|
|
271
|
-
...filter,
|
|
272
|
-
limit: BUCKET_LIMIT_THRESHOLD
|
|
273
|
-
},
|
|
274
|
-
requestedLimit: limit
|
|
275
|
-
};
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Slice a cached bucketed result down to the originally-requested limit
|
|
279
|
-
* and recompute `nextCursor` from the row that would have been the
|
|
280
|
-
* over-fetch detector for that limit. When truncation is needed, returns
|
|
281
|
-
* a shallow-copied result with a new `entries` array; otherwise returns
|
|
282
|
-
* the cached result unchanged (including error results and results
|
|
283
|
-
* already within the requested limit).
|
|
284
|
-
*/
|
|
285
|
-
/** @internal exported for unit tests; not part of the public API. */
|
|
286
|
-
function sliceCollectionResult(cached, limit, orderBy) {
|
|
287
|
-
if (cached.error) return cached;
|
|
288
|
-
if (cached.entries.length <= limit) return cached;
|
|
289
|
-
const sliced = cached.entries.slice(0, limit);
|
|
290
|
-
const lastEntry = sliced.at(-1);
|
|
291
|
-
const nextCursor = lastEntry ? encodeEntryCursor(lastEntry, orderBy) : void 0;
|
|
292
|
-
return {
|
|
293
|
-
...cached,
|
|
294
|
-
entries: sliced,
|
|
295
|
-
nextCursor,
|
|
296
|
-
hasMore: true
|
|
297
|
-
};
|
|
298
|
-
}
|
|
299
|
-
/** Map of database column names to camelCase keys present on entry.data. */
|
|
300
|
-
const ENTRY_DATA_KEY_MAP = {
|
|
301
|
-
created_at: "createdAt",
|
|
302
|
-
updated_at: "updatedAt",
|
|
303
|
-
published_at: "publishedAt",
|
|
304
|
-
scheduled_at: "scheduledAt",
|
|
305
|
-
author_id: "authorId",
|
|
306
|
-
primary_byline_id: "primaryBylineId"
|
|
307
|
-
};
|
|
308
|
-
const FIELD_NAME_PATTERN = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
|
|
309
|
-
/**
|
|
310
|
-
* Encode a `nextCursor` from a content entry, mirroring the loader's
|
|
311
|
-
* encoding scheme: `(orderValue, id)` where `orderValue` is the primary
|
|
312
|
-
* sort field's stringified value. For date columns, reads the raw DB
|
|
313
|
-
* string the loader stashed via CURSOR_RAW_VALUES — round-tripping the
|
|
314
|
-
* parsed Date through `toISOString()` would lose precision for stored
|
|
315
|
-
* values that aren't already ISO-with-milliseconds.
|
|
316
|
-
*/
|
|
317
|
-
function encodeEntryCursor(entry, orderBy) {
|
|
318
|
-
const data = entryData(entry);
|
|
319
|
-
const id = dataStr(data, "id");
|
|
320
|
-
if (!id) return void 0;
|
|
321
|
-
let dbField = "created_at";
|
|
322
|
-
if (orderBy) {
|
|
323
|
-
for (const field of Object.keys(orderBy)) if (FIELD_NAME_PATTERN.test(field)) {
|
|
324
|
-
dbField = field;
|
|
325
|
-
break;
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
const rawDateValuesRaw = Reflect.get(data, CURSOR_RAW_VALUES);
|
|
329
|
-
if (rawDateValuesRaw !== null && typeof rawDateValuesRaw === "object") {
|
|
330
|
-
const raw = Reflect.get(rawDateValuesRaw, dbField);
|
|
331
|
-
if (typeof raw === "string") return encodeCursor(raw, id);
|
|
332
|
-
}
|
|
333
|
-
const value = data[ENTRY_DATA_KEY_MAP[dbField] ?? dbField];
|
|
334
|
-
let orderValue;
|
|
335
|
-
if (value instanceof Date) orderValue = value.toISOString();
|
|
336
|
-
else if (typeof value === "string" || typeof value === "number") orderValue = String(value);
|
|
337
|
-
else orderValue = "";
|
|
338
|
-
return encodeCursor(orderValue, id);
|
|
339
|
-
}
|
|
340
|
-
/**
|
|
341
|
-
* Build a canonical cache key for `getEmDashCollection`.
|
|
342
|
-
*
|
|
343
|
-
* `JSON.stringify` is insertion-order-sensitive, so two callers passing
|
|
344
|
-
* semantically identical filters with different key orders would miss
|
|
345
|
-
* the cache. We fix the top-level field order and sort `where` keys
|
|
346
|
-
* (order there is irrelevant), while preserving `orderBy` key order
|
|
347
|
-
* because that's the sort priority.
|
|
348
|
-
*/
|
|
349
|
-
function collectionCacheKey(type, filter) {
|
|
350
|
-
if (!filter) return `collection:${type}:`;
|
|
351
|
-
return `collection:${type}:${[
|
|
352
|
-
filter.status ?? "",
|
|
353
|
-
filter.limit ?? "",
|
|
354
|
-
filter.cursor ?? "",
|
|
355
|
-
filter.offset ?? "",
|
|
356
|
-
filter.where ? stableStringify(filter.where) : "",
|
|
357
|
-
filter.orderBy ? JSON.stringify(filter.orderBy) : "",
|
|
358
|
-
filter.locale ?? ""
|
|
359
|
-
].join("|")}`;
|
|
360
|
-
}
|
|
361
|
-
function stableStringify(value) {
|
|
362
|
-
return JSON.stringify(stableOrder(value));
|
|
363
|
-
}
|
|
364
|
-
function stableOrder(value) {
|
|
365
|
-
const keys = Object.keys(value).toSorted();
|
|
366
|
-
const ordered = {};
|
|
367
|
-
for (const k of keys) {
|
|
368
|
-
const v = value[k];
|
|
369
|
-
if (isRecord(v)) ordered[k] = stableOrder(v);
|
|
370
|
-
else ordered[k] = v;
|
|
371
|
-
}
|
|
372
|
-
return ordered;
|
|
373
|
-
}
|
|
374
|
-
/** Enumerable field carrying the {@link CURSOR_RAW_VALUES} payload in snapshots. */
|
|
375
|
-
const CURSOR_RAW_FIELD = "__emdashCursorRaw";
|
|
376
|
-
function entrySnapshot(entry) {
|
|
377
|
-
const data = entryData(entry);
|
|
378
|
-
const rawCursor = Reflect.get(data, CURSOR_RAW_VALUES);
|
|
379
|
-
const { edit: _edit, ...rest } = entry;
|
|
380
|
-
return {
|
|
381
|
-
...rest,
|
|
382
|
-
data: {
|
|
383
|
-
...data,
|
|
384
|
-
[CURSOR_RAW_FIELD]: rawCursor ?? {}
|
|
385
|
-
}
|
|
386
|
-
};
|
|
387
|
-
}
|
|
388
|
-
function reviveEntry(raw) {
|
|
389
|
-
const entry = raw;
|
|
390
|
-
const data = { ...entry.data };
|
|
391
|
-
const rawCursor = data[CURSOR_RAW_FIELD] ?? {};
|
|
392
|
-
delete data[CURSOR_RAW_FIELD];
|
|
393
|
-
Object.defineProperty(data, CURSOR_RAW_VALUES, {
|
|
394
|
-
value: rawCursor,
|
|
395
|
-
enumerable: false,
|
|
396
|
-
configurable: false,
|
|
397
|
-
writable: false
|
|
398
|
-
});
|
|
399
|
-
return {
|
|
400
|
-
...entry,
|
|
401
|
-
data,
|
|
402
|
-
edit: createNoop()
|
|
403
|
-
};
|
|
404
|
-
}
|
|
405
|
-
/** Resolve the effective locale used by content reads, for the L2 cache key. */
|
|
406
|
-
function effectiveLocaleKey(filter) {
|
|
407
|
-
const ctx = getRequestContext();
|
|
408
|
-
const i18nConfig = getI18nConfig();
|
|
409
|
-
return filter?.locale ?? ctx?.locale ?? (isI18nEnabled() ? i18nConfig.defaultLocale : void 0) ?? "";
|
|
410
|
-
}
|
|
411
|
-
async function getEmDashCollectionUncached(type, filter) {
|
|
412
|
-
const { getLiveCollection } = await import("astro:content");
|
|
413
|
-
const ctx = getRequestContext();
|
|
414
|
-
const i18nConfig = getI18nConfig();
|
|
415
|
-
const resolvedLocale = filter?.locale ?? ctx?.locale ?? (isI18nEnabled() ? i18nConfig.defaultLocale : void 0);
|
|
416
|
-
const requestedLimit = filter?.limit;
|
|
417
|
-
const pageParam = filter?.cursor !== void 0 ? { cursor: filter.cursor } : filter?.offset !== void 0 ? { offset: filter.offset } : {};
|
|
418
|
-
const { entries, error, cacheHint } = await getLiveCollection(COLLECTION_NAME, {
|
|
419
|
-
type,
|
|
420
|
-
status: filter?.status,
|
|
421
|
-
limit: requestedLimit && requestedLimit > 0 ? requestedLimit + 1 : filter?.limit,
|
|
422
|
-
...pageParam,
|
|
423
|
-
where: filter?.where,
|
|
424
|
-
orderBy: filter?.orderBy,
|
|
425
|
-
locale: resolvedLocale
|
|
426
|
-
});
|
|
427
|
-
if (error) return {
|
|
428
|
-
entries: [],
|
|
429
|
-
error,
|
|
430
|
-
cacheHint: {}
|
|
431
|
-
};
|
|
432
|
-
const hasMore = requestedLimit != null && requestedLimit > 0 && entries.length > requestedLimit;
|
|
433
|
-
const pageEntries = hasMore ? entries.slice(0, requestedLimit) : entries;
|
|
434
|
-
const nextCursor = hasMore ? encodeEntryCursor(pageEntries.at(-1), filter?.orderBy) : void 0;
|
|
435
|
-
const hasMoreResult = requestedLimit != null && requestedLimit > 0 ? hasMore : void 0;
|
|
436
|
-
const isEditMode = ctx?.editMode ?? false;
|
|
437
|
-
const entriesWithEdit = pageEntries.map((entry) => {
|
|
438
|
-
const dbId = entryDatabaseId(entry);
|
|
439
|
-
if (isEditMode) tagEditableFields(entryData(entry), type, dbId);
|
|
440
|
-
if (!canExposeRevisionMetadata(entry, type)) stripRevisionMetadata(entry);
|
|
441
|
-
return {
|
|
442
|
-
...entry,
|
|
443
|
-
edit: isEditMode ? createEditable(type, dbId, entryEditOptions(entry)) : createNoop()
|
|
444
|
-
};
|
|
445
|
-
});
|
|
446
|
-
await Promise.all([hydrateEntryBylines(type, entriesWithEdit), hydrateEntryTerms(type, entriesWithEdit, resolvedLocale)]);
|
|
447
|
-
return {
|
|
448
|
-
entries: entriesWithEdit,
|
|
449
|
-
nextCursor,
|
|
450
|
-
hasMore: hasMoreResult,
|
|
451
|
-
cacheHint: cacheHint ?? {}
|
|
452
|
-
};
|
|
453
|
-
}
|
|
454
|
-
/**
|
|
455
|
-
* Get a single entry by type and ID/slug
|
|
456
|
-
*
|
|
457
|
-
* Returns { entry, error, isPreview } for graceful error handling.
|
|
458
|
-
* - entry is null if not found (not an error)
|
|
459
|
-
* - error is set only for actual errors (db issues, etc.)
|
|
460
|
-
*
|
|
461
|
-
* Preview mode is detected automatically from request context (ALS).
|
|
462
|
-
* When the URL has a valid `_preview` token, the middleware sets preview
|
|
463
|
-
* context and this function serves draft revision data if available.
|
|
464
|
-
*
|
|
465
|
-
* @example
|
|
466
|
-
* ```ts
|
|
467
|
-
* import { getEmDashEntry } from "emdash";
|
|
468
|
-
*
|
|
469
|
-
* // Simple usage — preview just works via middleware
|
|
470
|
-
* const { entry: post, isPreview, error } = await getEmDashEntry("posts", "my-slug");
|
|
471
|
-
* if (!post) return Astro.redirect("/404");
|
|
472
|
-
* ```
|
|
473
|
-
*/
|
|
474
|
-
async function getEmDashEntry(type, id, options) {
|
|
475
|
-
const { getLiveEntry } = await import("astro:content");
|
|
476
|
-
const ctx = getRequestContext();
|
|
477
|
-
const preview = ctx?.preview;
|
|
478
|
-
const isEditMode = ctx?.editMode ?? false;
|
|
479
|
-
const isPreviewMode = !!preview && preview.collection === type;
|
|
480
|
-
const serveDrafts = isPreviewMode || isEditMode;
|
|
481
|
-
const requestedLocale = options?.locale ?? ctx?.locale;
|
|
482
|
-
/** Wrap a raw Astro entry with edit proxy, tagging editable fields if needed */
|
|
483
|
-
function wrapEntry(raw) {
|
|
484
|
-
const dbId = entryDatabaseId(raw);
|
|
485
|
-
if (isEditMode) tagEditableFields(entryData(raw), type, dbId);
|
|
486
|
-
return {
|
|
487
|
-
...raw,
|
|
488
|
-
edit: isEditMode ? createEditable(type, dbId, entryEditOptions(raw)) : createNoop()
|
|
489
|
-
};
|
|
490
|
-
}
|
|
491
|
-
/** Check if an entry has completed publication. */
|
|
492
|
-
function isVisible(entry) {
|
|
493
|
-
return dataStr(entryData(entry), "status") === "published";
|
|
494
|
-
}
|
|
495
|
-
const localeChain = requestedLocale && isI18nEnabled() ? getFallbackChain(requestedLocale) : [requestedLocale];
|
|
496
|
-
/** Return a successful EntryResult with bylines and taxonomy terms hydrated */
|
|
497
|
-
async function successResult(wrapped, opts) {
|
|
498
|
-
if (!opts.isPreview) stripRevisionMetadata(wrapped);
|
|
499
|
-
const termLocale = isI18nEnabled() ? dataStr(entryData(wrapped), "locale") || void 0 : void 0;
|
|
500
|
-
await Promise.all([hydrateEntryBylines(type, [wrapped]), hydrateEntryTerms(type, [wrapped], termLocale)]);
|
|
501
|
-
return {
|
|
502
|
-
entry: wrapped,
|
|
503
|
-
isPreview: opts.isPreview,
|
|
504
|
-
fallbackLocale: opts.fallbackLocale,
|
|
505
|
-
cacheHint: opts.cacheHint
|
|
506
|
-
};
|
|
507
|
-
}
|
|
508
|
-
if (serveDrafts) {
|
|
509
|
-
for (let i = 0; i < localeChain.length; i++) {
|
|
510
|
-
const locale = localeChain[i];
|
|
511
|
-
const fallbackLocale = i > 0 ? locale : void 0;
|
|
512
|
-
const { entry: baseEntry, error: baseError, cacheHint } = await getLiveEntry(COLLECTION_NAME, {
|
|
513
|
-
type,
|
|
514
|
-
id,
|
|
515
|
-
locale
|
|
516
|
-
});
|
|
517
|
-
if (baseError) return {
|
|
518
|
-
entry: null,
|
|
519
|
-
error: baseError,
|
|
520
|
-
isPreview: serveDrafts,
|
|
521
|
-
cacheHint: {}
|
|
522
|
-
};
|
|
523
|
-
if (!baseEntry) continue;
|
|
524
|
-
if (isPreviewMode && !isEditMode) {
|
|
525
|
-
const dbId = entryDatabaseId(baseEntry);
|
|
526
|
-
if (preview.id !== dbId && preview.id !== id) {
|
|
527
|
-
if (isVisible(baseEntry)) return successResult(wrapEntry(baseEntry), {
|
|
528
|
-
isPreview: false,
|
|
529
|
-
fallbackLocale,
|
|
530
|
-
cacheHint: cacheHint ?? {}
|
|
531
|
-
});
|
|
532
|
-
continue;
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
const draftRevisionId = dataStr(entryData(baseEntry), "draftRevisionId") || void 0;
|
|
536
|
-
if (draftRevisionId) {
|
|
537
|
-
const { entry: draftEntry, error: draftError } = await getLiveEntry(COLLECTION_NAME, {
|
|
538
|
-
type,
|
|
539
|
-
id,
|
|
540
|
-
revisionId: draftRevisionId,
|
|
541
|
-
locale
|
|
542
|
-
});
|
|
543
|
-
if (!draftError && draftEntry) return successResult(wrapEntry(draftEntry), {
|
|
544
|
-
isPreview: serveDrafts,
|
|
545
|
-
fallbackLocale,
|
|
546
|
-
cacheHint: cacheHint ?? {}
|
|
547
|
-
});
|
|
548
|
-
}
|
|
549
|
-
return successResult(wrapEntry(baseEntry), {
|
|
550
|
-
isPreview: serveDrafts,
|
|
551
|
-
fallbackLocale,
|
|
552
|
-
cacheHint: cacheHint ?? {}
|
|
553
|
-
});
|
|
554
|
-
}
|
|
555
|
-
return {
|
|
556
|
-
entry: null,
|
|
557
|
-
isPreview: serveDrafts,
|
|
558
|
-
cacheHint: {}
|
|
559
|
-
};
|
|
560
|
-
}
|
|
561
|
-
const resolveNormal = async () => {
|
|
562
|
-
for (let i = 0; i < localeChain.length; i++) {
|
|
563
|
-
const locale = localeChain[i];
|
|
564
|
-
const fallbackLocale = i > 0 ? locale : void 0;
|
|
565
|
-
const { entry, error, cacheHint } = await getLiveEntry(COLLECTION_NAME, {
|
|
566
|
-
type,
|
|
567
|
-
id,
|
|
568
|
-
locale
|
|
569
|
-
});
|
|
570
|
-
if (error) return {
|
|
571
|
-
entry: null,
|
|
572
|
-
error,
|
|
573
|
-
isPreview: false,
|
|
574
|
-
cacheHint: {}
|
|
575
|
-
};
|
|
576
|
-
if (entry && isVisible(entry)) return successResult(wrapEntry(entry), {
|
|
577
|
-
isPreview: false,
|
|
578
|
-
fallbackLocale,
|
|
579
|
-
cacheHint: cacheHint ?? {}
|
|
580
|
-
});
|
|
581
|
-
}
|
|
582
|
-
return {
|
|
583
|
-
entry: null,
|
|
584
|
-
isPreview: false,
|
|
585
|
-
cacheHint: {}
|
|
586
|
-
};
|
|
587
|
-
};
|
|
588
|
-
const snapshot = await cachedQuery({
|
|
589
|
-
namespace: contentNamespaces(type),
|
|
590
|
-
key: `entry:${id}|loc=${requestedLocale ?? ""}`,
|
|
591
|
-
load: async () => {
|
|
592
|
-
const result = await resolveNormal();
|
|
593
|
-
if (result.error) return {
|
|
594
|
-
ok: false,
|
|
595
|
-
error: result.error,
|
|
596
|
-
cacheHint: result.cacheHint
|
|
597
|
-
};
|
|
598
|
-
return {
|
|
599
|
-
ok: true,
|
|
600
|
-
value: {
|
|
601
|
-
entry: result.entry ? entrySnapshot(result.entry) : null,
|
|
602
|
-
isPreview: result.isPreview,
|
|
603
|
-
fallbackLocale: result.fallbackLocale,
|
|
604
|
-
cacheHint: result.cacheHint
|
|
605
|
-
}
|
|
606
|
-
};
|
|
607
|
-
},
|
|
608
|
-
cacheable: (snap) => snap.ok
|
|
609
|
-
});
|
|
610
|
-
if (!snapshot.ok) return {
|
|
611
|
-
entry: null,
|
|
612
|
-
error: snapshot.error,
|
|
613
|
-
isPreview: false,
|
|
614
|
-
cacheHint: snapshot.cacheHint
|
|
615
|
-
};
|
|
616
|
-
const revived = snapshot.value.entry ? reviveEntry(snapshot.value.entry) : null;
|
|
617
|
-
if (revived && !canExposeRevisionMetadata(revived, type)) stripRevisionMetadata(revived);
|
|
618
|
-
if (revived) {
|
|
619
|
-
const { id: rowId, seo } = revived.data;
|
|
620
|
-
if (seo && typeof rowId === "string") primeSeoPanel(type, rowId, seo);
|
|
621
|
-
}
|
|
622
|
-
return {
|
|
623
|
-
entry: revived,
|
|
624
|
-
isPreview: snapshot.value.isPreview,
|
|
625
|
-
fallbackLocale: snapshot.value.fallbackLocale,
|
|
626
|
-
cacheHint: snapshot.value.cacheHint
|
|
627
|
-
};
|
|
628
|
-
}
|
|
629
|
-
/**
|
|
630
|
-
* Eagerly hydrate byline data onto entry.data for one or more entries.
|
|
631
|
-
*
|
|
632
|
-
* Attaches `bylines` (array of ContentBylineCredit) and `byline`
|
|
633
|
-
* (primary BylineSummary or null) to each entry's data object.
|
|
634
|
-
* Uses batch queries to avoid N+1.
|
|
635
|
-
*
|
|
636
|
-
* Fails silently if the byline tables don't exist yet (pre-migration).
|
|
637
|
-
*/
|
|
638
|
-
async function hydrateEntryBylines(type, entries) {
|
|
639
|
-
if (entries.length === 0) return;
|
|
640
|
-
if (entries.every((e) => FOLDED_BYLINES in entryData(e))) {
|
|
641
|
-
const parsed = entries.map((entry) => {
|
|
642
|
-
const data = entryData(entry);
|
|
643
|
-
const folded = Reflect.get(data, FOLDED_BYLINES);
|
|
644
|
-
return {
|
|
645
|
-
data,
|
|
646
|
-
credits: creditsFromFoldedBylines(Array.isArray(folded) ? folded : [])
|
|
647
|
-
};
|
|
648
|
-
});
|
|
649
|
-
const knownEmpty = entries.every((e) => Reflect.get(entryData(e), FOLDED_BYLINES_EXIST) === false);
|
|
650
|
-
let needsQueryPath = !knownEmpty && parsed.some((p) => p.credits.length === 0 && (dataStr(p.data, "authorId") !== "" || dataStr(p.data, "primaryBylineId") !== ""));
|
|
651
|
-
let hasCustomFields = false;
|
|
652
|
-
if (!needsQueryPath && !knownEmpty) try {
|
|
653
|
-
const { getDb } = await import("./loader-BzqeR1ZN.mjs").then((n) => n.c);
|
|
654
|
-
const db = await getDb();
|
|
655
|
-
const { getBylineFieldDefs } = await import("./field-defs-cache-HIgBbqZZ.mjs").then((n) => n.t);
|
|
656
|
-
hasCustomFields = (await getBylineFieldDefs(db)).length > 0;
|
|
657
|
-
} catch (error) {
|
|
658
|
-
if (!isMissingTableError(error)) needsQueryPath = true;
|
|
659
|
-
}
|
|
660
|
-
if (!needsQueryPath && !hasCustomFields) {
|
|
661
|
-
for (const p of parsed) {
|
|
662
|
-
p.data.bylines = p.credits;
|
|
663
|
-
p.data.byline = p.credits[0]?.byline ?? null;
|
|
664
|
-
}
|
|
665
|
-
return;
|
|
666
|
-
}
|
|
667
|
-
}
|
|
668
|
-
try {
|
|
669
|
-
const { getBylinesForEntries } = await import("./bylines-BPwJqoYH.mjs").then((n) => n.t);
|
|
670
|
-
const refs = entries.map((e) => {
|
|
671
|
-
const data = entryData(e);
|
|
672
|
-
const id = dataStr(data, "id");
|
|
673
|
-
if (!id) return null;
|
|
674
|
-
return {
|
|
675
|
-
id,
|
|
676
|
-
authorId: dataStr(data, "authorId") || null,
|
|
677
|
-
primaryBylineId: dataStr(data, "primaryBylineId") || null,
|
|
678
|
-
locale: dataStr(data, "locale") || null
|
|
679
|
-
};
|
|
680
|
-
}).filter((r) => r !== null);
|
|
681
|
-
if (refs.length === 0) return;
|
|
682
|
-
const bylinesMap = await getBylinesForEntries(type, refs);
|
|
683
|
-
for (const entry of entries) {
|
|
684
|
-
const data = entryData(entry);
|
|
685
|
-
const dbId = dataStr(data, "id");
|
|
686
|
-
if (!dbId) continue;
|
|
687
|
-
const credits = bylinesMap.get(dbId) ?? [];
|
|
688
|
-
data.bylines = credits;
|
|
689
|
-
data.byline = credits[0]?.byline ?? null;
|
|
690
|
-
}
|
|
691
|
-
} catch (err) {
|
|
692
|
-
if (!isMissingTableError(err)) {
|
|
693
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
694
|
-
console.warn("[emdash] Failed to hydrate bylines:", msg);
|
|
695
|
-
}
|
|
696
|
-
}
|
|
697
|
-
}
|
|
698
|
-
/**
|
|
699
|
-
* Eagerly hydrate taxonomy term data onto entry.data for one or more entries.
|
|
700
|
-
*
|
|
701
|
-
* Attaches `terms` (Record keyed by taxonomy name with an array of TaxonomyTerm
|
|
702
|
-
* values) to each entry's data object. Uses a single batched JOIN query across
|
|
703
|
-
* all taxonomies so the cost is O(1) regardless of the number of entries or
|
|
704
|
-
* taxonomies on the site.
|
|
705
|
-
*
|
|
706
|
-
* This eliminates the common N+1 pattern where templates loop over list
|
|
707
|
-
* results and call getEntryTerms() per entry. With hydration, the list page
|
|
708
|
-
* stays at a single round-trip for term data.
|
|
709
|
-
*
|
|
710
|
-
* `locale` is the preferred locale the entries were resolved to. Each assigned
|
|
711
|
-
* group resolves that variant first, then the configured default. When it is
|
|
712
|
-
* omitted, the stored locale of each content row is preferred.
|
|
713
|
-
*
|
|
714
|
-
* Fails silently if the taxonomy tables don't exist yet (pre-migration).
|
|
715
|
-
*/
|
|
716
|
-
async function hydrateEntryTerms(type, entries, locale) {
|
|
717
|
-
if (entries.length === 0) return;
|
|
718
|
-
if (entries.every((e) => FOLDED_TERMS in entryData(e))) {
|
|
719
|
-
const perEntry = [];
|
|
720
|
-
for (const entry of entries) {
|
|
721
|
-
const data = entryData(entry);
|
|
722
|
-
const folded = Reflect.get(data, FOLDED_TERMS);
|
|
723
|
-
const rows = Array.isArray(folded) ? folded : [];
|
|
724
|
-
const grouped = {};
|
|
725
|
-
for (const r of rows) {
|
|
726
|
-
const name = String(r?.name);
|
|
727
|
-
(grouped[name] ??= []).push({
|
|
728
|
-
id: r?.id,
|
|
729
|
-
name,
|
|
730
|
-
slug: r?.slug,
|
|
731
|
-
label: r?.label,
|
|
732
|
-
parentId: r?.parent_id ?? void 0,
|
|
733
|
-
children: [],
|
|
734
|
-
locale: r?.locale,
|
|
735
|
-
translationGroup: r?.translation_group
|
|
736
|
-
});
|
|
737
|
-
}
|
|
738
|
-
for (const [name, arr] of Object.entries(grouped)) grouped[name] = arr.toSorted((a, b) => String(a.label).localeCompare(String(b.label)));
|
|
739
|
-
data.terms = grouped;
|
|
740
|
-
const entryId = dataStr(data, "id");
|
|
741
|
-
if (entryId) perEntry.push({
|
|
742
|
-
entryId,
|
|
743
|
-
byTaxonomy: grouped
|
|
744
|
-
});
|
|
745
|
-
}
|
|
746
|
-
const { primeFoldedEntryTerms } = await import("./taxonomies-C1IwNe8Q.mjs").then((n) => n.f);
|
|
747
|
-
primeFoldedEntryTerms(type, perEntry, { locale });
|
|
748
|
-
return;
|
|
749
|
-
}
|
|
750
|
-
try {
|
|
751
|
-
const { getAllTermsForEntries } = await import("./taxonomies-C1IwNe8Q.mjs").then((n) => n.f);
|
|
752
|
-
const ids = entries.map((e) => dataStr(entryData(e), "id")).filter(Boolean);
|
|
753
|
-
if (ids.length === 0) return;
|
|
754
|
-
const termsMap = await getAllTermsForEntries(type, ids, { locale });
|
|
755
|
-
for (const entry of entries) {
|
|
756
|
-
const data = entryData(entry);
|
|
757
|
-
const dbId = dataStr(data, "id");
|
|
758
|
-
if (!dbId) continue;
|
|
759
|
-
data.terms = termsMap.get(dbId) ?? {};
|
|
760
|
-
}
|
|
761
|
-
} catch (err) {
|
|
762
|
-
if (!isMissingTableError(err)) {
|
|
763
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
764
|
-
console.warn("[emdash] Failed to hydrate terms:", msg);
|
|
765
|
-
}
|
|
766
|
-
}
|
|
767
|
-
}
|
|
768
|
-
/**
|
|
769
|
-
* Get all translations of a content item.
|
|
770
|
-
*
|
|
771
|
-
* Given a content entry, returns all locale variants that share the same
|
|
772
|
-
* translation group. This is useful for building language switcher UI.
|
|
773
|
-
*
|
|
774
|
-
* @example
|
|
775
|
-
* ```ts
|
|
776
|
-
* import { getEmDashEntry, getTranslations } from "emdash";
|
|
777
|
-
*
|
|
778
|
-
* const { entry: post } = await getEmDashEntry("posts", "hello-world", { locale: "en" });
|
|
779
|
-
* const { translations } = await getTranslations("posts", post.data.id);
|
|
780
|
-
* // translations = [{ id: "...", locale: "en", slug: "hello-world", status: "published" }, ...]
|
|
781
|
-
* ```
|
|
782
|
-
*/
|
|
783
|
-
async function getTranslations(type, id) {
|
|
784
|
-
try {
|
|
785
|
-
const db = (await import("./loader-BzqeR1ZN.mjs").then((n) => n.c)).getDb;
|
|
786
|
-
const dbInstance = await db();
|
|
787
|
-
const { ContentRepository } = await import("./content-DFaIEDj9.mjs").then((n) => n.n);
|
|
788
|
-
const repo = new ContentRepository(dbInstance);
|
|
789
|
-
const item = await repo.findByIdOrSlug(type, id);
|
|
790
|
-
if (!item) return {
|
|
791
|
-
translationGroup: "",
|
|
792
|
-
translations: [],
|
|
793
|
-
error: /* @__PURE__ */ new Error(`Content item not found: ${id}`)
|
|
794
|
-
};
|
|
795
|
-
const group = item.translationGroup || item.id;
|
|
796
|
-
return {
|
|
797
|
-
translationGroup: group,
|
|
798
|
-
translations: (await repo.findTranslations(type, group)).map((t) => ({
|
|
799
|
-
id: t.id,
|
|
800
|
-
locale: t.locale || "en",
|
|
801
|
-
slug: t.slug,
|
|
802
|
-
status: t.status
|
|
803
|
-
}))
|
|
804
|
-
};
|
|
805
|
-
} catch (error) {
|
|
806
|
-
return {
|
|
807
|
-
translationGroup: "",
|
|
808
|
-
translations: [],
|
|
809
|
-
error: error instanceof Error ? error : new Error(String(error))
|
|
810
|
-
};
|
|
811
|
-
}
|
|
812
|
-
}
|
|
813
|
-
const URL_PATTERN_CACHE_KEY = Symbol.for("emdash:url-pattern-cache");
|
|
814
|
-
const queryGlobal = globalThis;
|
|
815
|
-
const urlPatternCache = queryGlobal[URL_PATTERN_CACHE_KEY] ?? (() => {
|
|
816
|
-
const cache = { patterns: null };
|
|
817
|
-
queryGlobal[URL_PATTERN_CACHE_KEY] = cache;
|
|
818
|
-
return cache;
|
|
819
|
-
})();
|
|
820
|
-
/**
|
|
821
|
-
* Invalidate the cached URL patterns used by resolveEmDashPath.
|
|
822
|
-
* Call when collection URL patterns change (schema updates).
|
|
823
|
-
*
|
|
824
|
-
* Also busts the distributed schema cache (collection metadata such as
|
|
825
|
-
* `commentsEnabled`, `supports`, fields read by `getCollectionInfo`) and the
|
|
826
|
-
* per-isolate registered-collection-slugs cache used by term counting, since
|
|
827
|
-
* every schema-mutation path already routes through here.
|
|
828
|
-
*/
|
|
829
|
-
function invalidateUrlPatternCache() {
|
|
830
|
-
urlPatternCache.patterns = null;
|
|
831
|
-
resetRegisteredCollectionsCache();
|
|
832
|
-
invalidateSchemaObjectCache();
|
|
833
|
-
}
|
|
834
|
-
/**
|
|
835
|
-
* Resolve a URL path to a content entry by matching against collection URL patterns.
|
|
836
|
-
*
|
|
837
|
-
* Loads all collections with a `urlPattern` set, converts each pattern to a regex,
|
|
838
|
-
* and tests the given path. On match, extracts the slug and fetches the entry.
|
|
839
|
-
*
|
|
840
|
-
* @example
|
|
841
|
-
* ```ts
|
|
842
|
-
* import { resolveEmDashPath } from "emdash";
|
|
843
|
-
*
|
|
844
|
-
* // Given pages with urlPattern "/{slug}" and posts with "/blog/{slug}":
|
|
845
|
-
* const result = await resolveEmDashPath("/blog/hello-world");
|
|
846
|
-
* if (result) {
|
|
847
|
-
* console.log(result.collection); // "posts"
|
|
848
|
-
* console.log(result.params.slug); // "hello-world"
|
|
849
|
-
* console.log(result.entry.data); // post data
|
|
850
|
-
* }
|
|
851
|
-
* ```
|
|
852
|
-
*/
|
|
853
|
-
async function resolveEmDashPath(path) {
|
|
854
|
-
let cachedUrlPatterns = urlPatternCache.patterns;
|
|
855
|
-
if (!cachedUrlPatterns) {
|
|
856
|
-
const { getDb } = await import("./loader-BzqeR1ZN.mjs").then((n) => n.c);
|
|
857
|
-
const { SchemaRegistry } = await import("./block-type-registry-DUI_3KxT.mjs").then((n) => n.o);
|
|
858
|
-
const collections = await new SchemaRegistry(await getDb()).listCollections();
|
|
859
|
-
cachedUrlPatterns = [];
|
|
860
|
-
for (const collection of collections) {
|
|
861
|
-
if (!collection.urlPattern) continue;
|
|
862
|
-
const { regex, paramNames } = compileUrlPattern(collection.urlPattern);
|
|
863
|
-
cachedUrlPatterns.push({
|
|
864
|
-
slug: collection.slug,
|
|
865
|
-
regex,
|
|
866
|
-
paramNames
|
|
867
|
-
});
|
|
868
|
-
}
|
|
869
|
-
urlPatternCache.patterns = cachedUrlPatterns;
|
|
870
|
-
}
|
|
871
|
-
for (const pattern of cachedUrlPatterns) {
|
|
872
|
-
const match = path.match(pattern.regex);
|
|
873
|
-
if (!match) continue;
|
|
874
|
-
const params = {};
|
|
875
|
-
for (let i = 0; i < pattern.paramNames.length; i++) params[pattern.paramNames[i]] = match[i + 1];
|
|
876
|
-
const slug = params.slug;
|
|
877
|
-
if (!slug) continue;
|
|
878
|
-
const { entry } = await getEmDashEntry(pattern.slug, slug);
|
|
879
|
-
if (entry) return {
|
|
880
|
-
entry,
|
|
881
|
-
collection: pattern.slug,
|
|
882
|
-
params
|
|
883
|
-
};
|
|
884
|
-
}
|
|
885
|
-
return null;
|
|
886
|
-
}
|
|
887
|
-
|
|
888
|
-
//#endregion
|
|
889
|
-
export { invalidateUrlPatternCache as a, createEditable as c, getTranslations as i, createNoop as l, getEmDashCollection as n, query_exports as o, getEmDashEntry as r, resolveEmDashPath as s, getEditMeta as t };
|
|
890
|
-
//# sourceMappingURL=query-B48peoRT.mjs.map
|