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
|
@@ -1,697 +0,0 @@
|
|
|
1
|
-
import { u as __exportAll } from "./runner-1y4J9fJB.mjs";
|
|
2
|
-
import { n as isMissingTableError } from "./db-errors-CBD5yMro.mjs";
|
|
3
|
-
import { t as validateIdentifier } from "./validate-DANX1-Qi.mjs";
|
|
4
|
-
import { i as compoundSelectLimit, n as buildStatusCondition } from "./dialect-helpers-7_IqPdh9.mjs";
|
|
5
|
-
import { r as getI18nConfig } from "./config-CvmjJcVw.mjs";
|
|
6
|
-
import { getRequestContext } from "./request-context.mjs";
|
|
7
|
-
import { h as isObjectCacheActive, i as contentCacheNamespaces, m as invalidateTaxonomyObjectCache, n as cachedQuery, t as CacheNamespace } from "./object-cache-CqWNY5uP.mjs";
|
|
8
|
-
import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-Dms7Uxbt.mjs";
|
|
9
|
-
import { i as resolveLocaleChain, r as resolveLocale } from "./resolve-2WbQsCvT.mjs";
|
|
10
|
-
import { i as setRequestCacheEntry, n as peekRequestCache, r as requestCached } from "./request-cache-DzLYKm_x.mjs";
|
|
11
|
-
import { r as taxonomyTag } from "./chrome-tags-DApCQSIk.mjs";
|
|
12
|
-
import { f as parseTaxonomyCollections, l as resetTaxonomyNamesCache, m as selectTaxonomyDefs, s as getDb } from "./loader-BzqeR1ZN.mjs";
|
|
13
|
-
import { n as noteStaleRegisteredCollections, t as filterToRegisteredCollections } from "./collection-slugs-cache-CjGk__zp.mjs";
|
|
14
|
-
import { sql } from "kysely";
|
|
15
|
-
|
|
16
|
-
//#region src/taxonomies/term-counts.ts
|
|
17
|
-
/**
|
|
18
|
-
* Per-collection count branch. `taxonomy_id` stores the term's
|
|
19
|
-
* translation_group, so results are keyed by group (locale-independent) and
|
|
20
|
-
* each assignment is counted once per content translation group. When a
|
|
21
|
-
* locale is provided, only that group's matching content row contributes.
|
|
22
|
-
*
|
|
23
|
-
* Scoping to the taxonomy uses `translation_group IN (...)` rather than a
|
|
24
|
-
* join on `taxonomies.id` — the anchor row (id == group) can be deleted while
|
|
25
|
-
* sibling translations survive, and a plain join on `translation_group` would
|
|
26
|
-
* multiply counts by the number of locales.
|
|
27
|
-
*
|
|
28
|
-
* CROSS JOIN with the join predicate in WHERE keeps stats-blind SQLite/D1 from
|
|
29
|
-
* reordering content_taxonomies out of the outer position; it touches ec_* only
|
|
30
|
-
* through the translation-group index. Postgres treats this as an ordinary
|
|
31
|
-
* inner join and plans freely.
|
|
32
|
-
*/
|
|
33
|
-
function collectionBranch(db, taxonomyName, collection, locale) {
|
|
34
|
-
return sql`
|
|
35
|
-
SELECT ct.taxonomy_id AS taxonomy_id, COUNT(DISTINCT e.translation_group) AS count
|
|
36
|
-
FROM content_taxonomies AS ct
|
|
37
|
-
CROSS JOIN ${sql.ref(`ec_${collection}`)} AS e
|
|
38
|
-
WHERE e.translation_group = ct.entry_id
|
|
39
|
-
AND ct.collection = ${collection}
|
|
40
|
-
AND ct.taxonomy_id IN (SELECT translation_group FROM taxonomies WHERE name = ${taxonomyName})
|
|
41
|
-
${locale ? sql`AND e.locale = ${locale}` : sql``}
|
|
42
|
-
AND ${buildStatusCondition(db, "published", "e")}
|
|
43
|
-
AND e.deleted_at IS NULL
|
|
44
|
-
GROUP BY ct.taxonomy_id`;
|
|
45
|
-
}
|
|
46
|
-
async function runCounts(db, taxonomyName, collections, locale) {
|
|
47
|
-
const branches = collections.map((collection) => collectionBranch(db, taxonomyName, collection, locale));
|
|
48
|
-
const result = await sql`
|
|
49
|
-
SELECT taxonomy_id, SUM(count) AS count
|
|
50
|
-
FROM (${sql.join(branches, sql` UNION ALL `)}) AS per_collection
|
|
51
|
-
GROUP BY taxonomy_id`.execute(db);
|
|
52
|
-
const counts = /* @__PURE__ */ new Map();
|
|
53
|
-
for (const row of result.rows) counts.set(row.taxonomy_id, Number(row.count));
|
|
54
|
-
return counts;
|
|
55
|
-
}
|
|
56
|
-
function addCounts(into, from) {
|
|
57
|
-
for (const [group, count] of from) into.set(group, (into.get(group) ?? 0) + count);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Counts for one batch of collections, degrading to a query per collection
|
|
61
|
-
* when a declared collection has no ec_* table so the rest still contribute.
|
|
62
|
-
*/
|
|
63
|
-
async function runBatch(db, taxonomyName, collections, locale) {
|
|
64
|
-
try {
|
|
65
|
-
return await runCounts(db, taxonomyName, collections, locale);
|
|
66
|
-
} catch (error) {
|
|
67
|
-
if (!isMissingTableError(error)) throw error;
|
|
68
|
-
noteStaleRegisteredCollections();
|
|
69
|
-
}
|
|
70
|
-
const counts = /* @__PURE__ */ new Map();
|
|
71
|
-
for (const collection of collections) try {
|
|
72
|
-
addCounts(counts, await runCounts(db, taxonomyName, [collection], locale));
|
|
73
|
-
} catch (error) {
|
|
74
|
-
if (!isMissingTableError(error)) throw error;
|
|
75
|
-
}
|
|
76
|
-
return counts;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Count publicly-visible term assignments for one taxonomy, keyed by the
|
|
80
|
-
* term's translation_group (what `content_taxonomies.taxonomy_id` stores).
|
|
81
|
-
* When `locale` is provided, only entries in that locale contribute. Omitting
|
|
82
|
-
* it preserves the locale-agnostic API used by legacy callers.
|
|
83
|
-
*
|
|
84
|
-
* Counts are scoped to the taxonomy's declared collections — pass
|
|
85
|
-
* `TaxonomyDef.collections` (`_emdash_taxonomy_defs.collections`). Declared
|
|
86
|
-
* collections without a `_emdash_collections` row (the migration-seeded
|
|
87
|
-
* defaults declare `posts` unconditionally) are filtered out before any SQL
|
|
88
|
-
* is built, so no statement referencing a missing `ec_*` table is sent — a
|
|
89
|
-
* failed statement is logged by the database even when the caller recovers,
|
|
90
|
-
* flooding D1 observability with phantom errors. The missing-table guards in
|
|
91
|
-
* `runBatch` stay as the backstop for registry/table drift (e.g. a partially
|
|
92
|
-
* applied D1 create) and for a table dropped mid-flight, yielding a
|
|
93
|
-
* partial-but-correct count rather than a throw.
|
|
94
|
-
*
|
|
95
|
-
* One database round-trip for the whole taxonomy (UNION ALL across
|
|
96
|
-
* collections). On a backend that caps compound-SELECT terms — D1 allows five
|
|
97
|
-
* — the branches are split into one statement per batch, since a taxonomy
|
|
98
|
-
* declaring more collections than that would otherwise take down every path
|
|
99
|
-
* that shows counts. Per-collection sums are commutative, so batching cannot
|
|
100
|
-
* change the total.
|
|
101
|
-
*
|
|
102
|
-
* Callers on the public render path should go through the request-cached
|
|
103
|
-
* wrapper in `taxonomies/index.ts` so a page rendering both the widget and a
|
|
104
|
-
* term detail shares one computation.
|
|
105
|
-
*/
|
|
106
|
-
async function fetchVisibleTermCounts(db, taxonomyName, collections, locale) {
|
|
107
|
-
const unique = [...new Set(collections)];
|
|
108
|
-
for (const collection of unique) validateIdentifier(collection, "collection slug");
|
|
109
|
-
if (unique.length === 0) return /* @__PURE__ */ new Map();
|
|
110
|
-
const present = await filterToRegisteredCollections(db, unique);
|
|
111
|
-
if (present.length === 0) return /* @__PURE__ */ new Map();
|
|
112
|
-
const limit = compoundSelectLimit(db);
|
|
113
|
-
const batched = limit === null ? [present] : chunks(present, limit);
|
|
114
|
-
const batches = await Promise.all(batched.map((batch) => runBatch(db, taxonomyName, batch, locale)));
|
|
115
|
-
const counts = /* @__PURE__ */ new Map();
|
|
116
|
-
for (const batch of batches) addCounts(counts, batch);
|
|
117
|
-
return counts;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
//#endregion
|
|
121
|
-
//#region src/taxonomies/index.ts
|
|
122
|
-
/**
|
|
123
|
-
* Runtime API for taxonomies.
|
|
124
|
-
*
|
|
125
|
-
* All helpers are locale-aware. When a locale is not passed explicitly we fall
|
|
126
|
-
* back to the request context or the configured `defaultLocale` (see
|
|
127
|
-
* `i18n/resolve.ts`).
|
|
128
|
-
*
|
|
129
|
-
* Because `content_taxonomies.taxonomy_id` stores the translation_group (not a
|
|
130
|
-
* specific term id), and `entry_id` stores the content translation_group, one
|
|
131
|
-
* assignment resolves to the requested locale on both sides.
|
|
132
|
-
*/
|
|
133
|
-
var taxonomies_exports = /* @__PURE__ */ __exportAll({
|
|
134
|
-
getAllTermsForEntries: () => getAllTermsForEntries,
|
|
135
|
-
getEntriesByTerm: () => getEntriesByTerm,
|
|
136
|
-
getEntryTerms: () => getEntryTerms,
|
|
137
|
-
getTaxonomyDef: () => getTaxonomyDef,
|
|
138
|
-
getTaxonomyDefs: () => getTaxonomyDefs,
|
|
139
|
-
getTaxonomyTerms: () => getTaxonomyTerms,
|
|
140
|
-
getTaxonomyTermsWithCacheHint: () => getTaxonomyTermsWithCacheHint,
|
|
141
|
-
getTerm: () => getTerm,
|
|
142
|
-
getTermsForEntries: () => getTermsForEntries,
|
|
143
|
-
invalidateTaxonomyDefsCache: () => invalidateTaxonomyDefsCache,
|
|
144
|
-
invalidateTermCache: () => invalidateTermCache,
|
|
145
|
-
primeFoldedEntryTerms: () => primeFoldedEntryTerms
|
|
146
|
-
});
|
|
147
|
-
async function selectEntryTermRows(db, collection, entryIds, taxonomyName, locale) {
|
|
148
|
-
validateIdentifier(collection, "collection slug");
|
|
149
|
-
const tableName = `ec_${collection}`;
|
|
150
|
-
const preferredLocale = locale ? sql`${locale}` : sql`content.locale`;
|
|
151
|
-
const defaultLocale = getI18nConfig()?.defaultLocale ?? "en";
|
|
152
|
-
return (await sql`
|
|
153
|
-
SELECT content.id AS entry_id,
|
|
154
|
-
coalesce(exact_term.id, default_term.id) AS id,
|
|
155
|
-
coalesce(exact_term.name, default_term.name) AS name,
|
|
156
|
-
coalesce(exact_term.slug, default_term.slug) AS slug,
|
|
157
|
-
coalesce(exact_term.label, default_term.label) AS label,
|
|
158
|
-
coalesce(exact_term.parent_id, default_term.parent_id) AS parent_id,
|
|
159
|
-
coalesce(exact_term.locale, default_term.locale) AS locale,
|
|
160
|
-
coalesce(exact_term.translation_group, default_term.translation_group) AS translation_group
|
|
161
|
-
FROM ${sql.ref(tableName)} AS content
|
|
162
|
-
INNER JOIN content_taxonomies AS pivot
|
|
163
|
-
ON pivot.entry_id = content.translation_group
|
|
164
|
-
AND pivot.collection = ${collection}
|
|
165
|
-
LEFT JOIN taxonomies AS exact_term
|
|
166
|
-
ON exact_term.translation_group = pivot.taxonomy_id
|
|
167
|
-
AND exact_term.locale = ${preferredLocale}
|
|
168
|
-
LEFT JOIN taxonomies AS default_term
|
|
169
|
-
ON default_term.translation_group = pivot.taxonomy_id
|
|
170
|
-
AND default_term.locale = ${defaultLocale}
|
|
171
|
-
WHERE content.id IN (${sql.join(entryIds.map((id) => sql`${id}`))})
|
|
172
|
-
AND coalesce(exact_term.id, default_term.id) IS NOT NULL
|
|
173
|
-
${taxonomyName ? sql`AND coalesce(exact_term.name, default_term.name) = ${taxonomyName}` : sql``}
|
|
174
|
-
ORDER BY coalesce(exact_term.label, default_term.label) ASC
|
|
175
|
-
`.execute(db)).rows;
|
|
176
|
-
}
|
|
177
|
-
/** Invalidate cached taxonomy term data and any content that hydrates terms. */
|
|
178
|
-
function invalidateTermCache() {
|
|
179
|
-
invalidateTaxonomyObjectCache();
|
|
180
|
-
}
|
|
181
|
-
const TAXONOMY_DEFS_CACHE_KEY = Symbol.for("emdash:taxonomy-defs");
|
|
182
|
-
const taxonomyDefsStore = globalThis;
|
|
183
|
-
const defsHolder = taxonomyDefsStore[TAXONOMY_DEFS_CACHE_KEY] ?? (() => {
|
|
184
|
-
const h = {
|
|
185
|
-
version: 0,
|
|
186
|
-
cache: /* @__PURE__ */ new Map()
|
|
187
|
-
};
|
|
188
|
-
taxonomyDefsStore[TAXONOMY_DEFS_CACHE_KEY] = h;
|
|
189
|
-
return h;
|
|
190
|
-
})();
|
|
191
|
-
/**
|
|
192
|
-
* Invalidate the isolate-wide taxonomy-definitions cache (and the related
|
|
193
|
-
* loader taxonomy-names cache). Called from every taxonomy-def write path
|
|
194
|
-
* (`handleTaxonomyCreate`/`Update`/`Delete`, seed application). Other isolates
|
|
195
|
-
* refresh on their next recycle — staleness bounded by isolate lifetime.
|
|
196
|
-
*/
|
|
197
|
-
function invalidateTaxonomyDefsCache() {
|
|
198
|
-
defsHolder.version++;
|
|
199
|
-
defsHolder.cache.clear();
|
|
200
|
-
resetTaxonomyNamesCache();
|
|
201
|
-
invalidateTaxonomyObjectCache();
|
|
202
|
-
}
|
|
203
|
-
/** Every locale's definition rows, straight from the database (no caching). */
|
|
204
|
-
async function fetchTaxonomyDefRows() {
|
|
205
|
-
return (await selectTaxonomyDefs(await getDb()).orderBy("d.name", "asc").orderBy("d.locale", "asc").execute()).map(rowToTaxonomyDef);
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Resolve the definition rows through the isolate fallback cache, bypassing it
|
|
209
|
-
* for isolated databases. The returned promise is cached (not the resolved
|
|
210
|
-
* value) so concurrent cold-isolate readers share one in-flight query; a
|
|
211
|
-
* rejection evicts the entry so the next caller retries.
|
|
212
|
-
*/
|
|
213
|
-
function loadTaxonomyDefRows() {
|
|
214
|
-
if (getRequestContext()?.dbIsIsolated === true) return fetchTaxonomyDefRows();
|
|
215
|
-
const existing = defsHolder.cache.get("all");
|
|
216
|
-
if (existing && existing.version === defsHolder.version) return existing.promise;
|
|
217
|
-
const version = defsHolder.version;
|
|
218
|
-
const promise = fetchTaxonomyDefRows().catch((error) => {
|
|
219
|
-
const current = defsHolder.cache.get("all");
|
|
220
|
-
if (current && current.promise === promise) defsHolder.cache.delete("all");
|
|
221
|
-
throw error;
|
|
222
|
-
});
|
|
223
|
-
defsHolder.cache.set("all", {
|
|
224
|
-
version,
|
|
225
|
-
promise
|
|
226
|
-
});
|
|
227
|
-
return promise;
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Every locale's definition rows. Two-tier cache: per-request via
|
|
231
|
-
* `requestCached`, then the object cache when configured, else the isolate
|
|
232
|
-
* holder, so warm renders issue zero queries whatever locale they ask for.
|
|
233
|
-
*/
|
|
234
|
-
function getTaxonomyDefRows() {
|
|
235
|
-
return requestCached("taxonomy-def-rows", async () => {
|
|
236
|
-
if (await isObjectCacheActive()) return cachedQuery({
|
|
237
|
-
namespace: CacheNamespace.TAXONOMIES,
|
|
238
|
-
key: "defRows",
|
|
239
|
-
load: fetchTaxonomyDefRows
|
|
240
|
-
});
|
|
241
|
-
return loadTaxonomyDefRows();
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
* One definition per taxonomy, in the first locale of `chain` that has one.
|
|
246
|
-
* A taxonomy with no definition anywhere on the chain still resolves, to its
|
|
247
|
-
* default-locale row or else its lowest locale: its structure is the same in
|
|
248
|
-
* every locale, and only the label falls back.
|
|
249
|
-
*/
|
|
250
|
-
function resolveDefs(rows, chain) {
|
|
251
|
-
const defaultLocale = getI18nConfig()?.defaultLocale;
|
|
252
|
-
const preference = defaultLocale === void 0 ? chain : [...chain, defaultLocale];
|
|
253
|
-
const byName = /* @__PURE__ */ new Map();
|
|
254
|
-
for (const row of rows) {
|
|
255
|
-
const current = byName.get(row.name);
|
|
256
|
-
if (!current || rank(row.locale) < rank(current.locale)) byName.set(row.name, row);
|
|
257
|
-
}
|
|
258
|
-
return [...byName.values()];
|
|
259
|
-
function rank(locale) {
|
|
260
|
-
const index = preference.indexOf(locale);
|
|
261
|
-
return index === -1 ? preference.length : index;
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* Get every taxonomy definition, one per taxonomy, labelled for the active
|
|
266
|
-
* locale (see `resolveDefs` for the fallback).
|
|
267
|
-
*/
|
|
268
|
-
async function getTaxonomyDefs(options = {}) {
|
|
269
|
-
const chain = resolveLocaleChain(options.locale);
|
|
270
|
-
return requestCached(`taxonomy-defs:${chain.join(",")}`, async () => resolveDefs(await getTaxonomyDefRows(), chain));
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Get a single taxonomy definition by name, labelled for the active locale.
|
|
274
|
-
* Resolves whenever the taxonomy is defined in any locale (see `resolveDefs`).
|
|
275
|
-
*/
|
|
276
|
-
async function getTaxonomyDef(name, options = {}) {
|
|
277
|
-
return (await getTaxonomyDefs(options)).find((def) => def.name === name) ?? null;
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Object-cache namespaces for values that embed visible term counts: the
|
|
281
|
-
* taxonomy epoch (term/assignment writes) plus each counted collection's
|
|
282
|
-
* content epoch, so publishing, unpublishing, or trashing an entry
|
|
283
|
-
* invalidates the cached count promptly. Both content namespace generations
|
|
284
|
-
* participate so rolling deployments preserve invalidation in either direction.
|
|
285
|
-
*/
|
|
286
|
-
function termCountNamespaces(collections) {
|
|
287
|
-
return [...[...new Set(collections)].flatMap((collection) => contentCacheNamespaces(collection)), CacheNamespace.TAXONOMIES];
|
|
288
|
-
}
|
|
289
|
-
/**
|
|
290
|
-
* All terms of a taxonomy in a specific locale (flat for non-hierarchical,
|
|
291
|
-
* tree for hierarchical).
|
|
292
|
-
*
|
|
293
|
-
* The term list and the visible-entry counts are loaded and cached separately:
|
|
294
|
-
* the list depends only on the taxonomy epoch, while the counts additionally
|
|
295
|
-
* depend on every counted collection's content epoch and cost an aggregate over
|
|
296
|
-
* the whole assignment pivot. Callers that don't render counts pass
|
|
297
|
-
* `includeCounts: false` and skip that aggregate entirely, while still sharing
|
|
298
|
-
* the term list with callers that do.
|
|
299
|
-
*/
|
|
300
|
-
async function getTaxonomyTerms(taxonomyName, options = {}) {
|
|
301
|
-
const locale = resolveLocale(options.locale);
|
|
302
|
-
const def = await getTaxonomyDef(taxonomyName, options);
|
|
303
|
-
if (!def) return [];
|
|
304
|
-
if (options.includeCounts === false) return getTermList(def, locale);
|
|
305
|
-
const [terms, counts] = await Promise.all([getTermList(def, locale), getVisibleTermCounts(def.name, def.collections, locale)]);
|
|
306
|
-
return withCounts(terms, counts);
|
|
307
|
-
}
|
|
308
|
-
/**
|
|
309
|
-
* Get all terms of a taxonomy with a Workers edge-cache hint.
|
|
310
|
-
*
|
|
311
|
-
* Use the returned `cacheHint` with `Astro.cache.set()` so pages that render
|
|
312
|
-
* a taxonomy facet can be purged automatically when taxonomy terms change.
|
|
313
|
-
*/
|
|
314
|
-
async function getTaxonomyTermsWithCacheHint(taxonomyName, options = {}) {
|
|
315
|
-
return {
|
|
316
|
-
data: await getTaxonomyTerms(taxonomyName, options),
|
|
317
|
-
cacheHint: { tags: [taxonomyTag(taxonomyName)] }
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
/** Terms without counts, under the cache keys the layout prefetch warms. */
|
|
321
|
-
function getTermList(def, locale) {
|
|
322
|
-
const localeKey = locale ?? "*";
|
|
323
|
-
return requestCached(`taxonomy-terms:${def.name}:${localeKey}`, () => cachedQuery({
|
|
324
|
-
namespace: CacheNamespace.TAXONOMIES,
|
|
325
|
-
key: `termList:${def.name}:${localeKey}`,
|
|
326
|
-
load: () => loadTaxonomyTerms(def, locale)
|
|
327
|
-
}));
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* Copy a term list with counts attached. Counts are keyed by translation_group
|
|
331
|
-
* (what the pivot stores) and are locale-independent. Rebuilds every node so
|
|
332
|
-
* the shared, cached count-free list is never mutated.
|
|
333
|
-
*/
|
|
334
|
-
function withCounts(terms, counts) {
|
|
335
|
-
return terms.map((term) => ({
|
|
336
|
-
...term,
|
|
337
|
-
count: counts.get(term.translationGroup ?? term.id) ?? 0,
|
|
338
|
-
children: withCounts(term.children, counts)
|
|
339
|
-
}));
|
|
340
|
-
}
|
|
341
|
-
async function loadTaxonomyTerms(def, locale) {
|
|
342
|
-
let termsQuery = (await getDb()).selectFrom("taxonomies").selectAll().where("name", "=", def.name).orderBy("sort_order", "asc").orderBy("label", "asc");
|
|
343
|
-
if (locale !== void 0) termsQuery = termsQuery.where("locale", "=", locale);
|
|
344
|
-
const flatTerms = (await termsQuery.execute()).map((row) => ({
|
|
345
|
-
id: row.id,
|
|
346
|
-
name: row.name,
|
|
347
|
-
slug: row.slug,
|
|
348
|
-
label: row.label,
|
|
349
|
-
parent_id: row.parent_id,
|
|
350
|
-
data: row.data,
|
|
351
|
-
locale: row.locale,
|
|
352
|
-
translation_group: row.translation_group
|
|
353
|
-
}));
|
|
354
|
-
if (def.hierarchical) return buildTree(flatTerms);
|
|
355
|
-
return flatTerms.map((term) => ({
|
|
356
|
-
id: term.id,
|
|
357
|
-
name: term.name,
|
|
358
|
-
slug: term.slug,
|
|
359
|
-
label: term.label,
|
|
360
|
-
description: term.data ? JSON.parse(term.data).description : void 0,
|
|
361
|
-
children: [],
|
|
362
|
-
locale: term.locale,
|
|
363
|
-
translationGroup: term.translation_group
|
|
364
|
-
}));
|
|
365
|
-
}
|
|
366
|
-
/**
|
|
367
|
-
* Per-translation-group visible-usage counts for one taxonomy, in a single
|
|
368
|
-
* round-trip (see `fetchVisibleTermCounts`). The pivot identity is the
|
|
369
|
-
* translation group, while entry rows are scoped to the resolved locale.
|
|
370
|
-
* Request and object cache keys include that locale so translated views never
|
|
371
|
-
* reuse each other's visible counts.
|
|
372
|
-
*/
|
|
373
|
-
function getVisibleTermCounts(taxonomyName, collections, locale) {
|
|
374
|
-
const scope = [...new Set(collections)].toSorted().join(",");
|
|
375
|
-
const localeScope = locale ?? "*";
|
|
376
|
-
return requestCached(`taxonomy-term-counts:${taxonomyName}:${scope}:${localeScope}`, async () => {
|
|
377
|
-
const entries = await cachedQuery({
|
|
378
|
-
namespace: termCountNamespaces(collections),
|
|
379
|
-
key: `termCounts:${taxonomyName}:${scope}:${localeScope}`,
|
|
380
|
-
load: async () => {
|
|
381
|
-
return [...await fetchVisibleTermCounts(await getDb(), taxonomyName, collections, locale)];
|
|
382
|
-
}
|
|
383
|
-
});
|
|
384
|
-
return new Map(entries);
|
|
385
|
-
});
|
|
386
|
-
}
|
|
387
|
-
/**
|
|
388
|
-
* Get a single term by (taxonomy, slug). Honours the fallback chain — if the
|
|
389
|
-
* slug exists in a fallback locale, we return that row (useful for deep-linking
|
|
390
|
-
* to a term page when the translation is missing).
|
|
391
|
-
*
|
|
392
|
-
* The term row and its visible-entry count are loaded and cached separately: the
|
|
393
|
-
* row depends only on the taxonomy epoch, while the count adds an aggregate over
|
|
394
|
-
* the whole assignment pivot and every counted collection's content epoch. A
|
|
395
|
-
* caller that renders no count passes `includeCounts: false` and skips it.
|
|
396
|
-
*/
|
|
397
|
-
async function getTerm(taxonomyName, slug, options = {}) {
|
|
398
|
-
const chain = resolveLocaleChain(options.locale);
|
|
399
|
-
const term = await getTermRow(taxonomyName, slug, chain);
|
|
400
|
-
if (!term) return null;
|
|
401
|
-
if (options.includeCounts === false) return term;
|
|
402
|
-
const counts = await getVisibleTermCounts(taxonomyName, (await getTaxonomyDef(taxonomyName, options))?.collections ?? [], chain[0] ?? term.locale);
|
|
403
|
-
return {
|
|
404
|
-
...term,
|
|
405
|
-
count: counts.get(term.translationGroup ?? term.id) ?? 0
|
|
406
|
-
};
|
|
407
|
-
}
|
|
408
|
-
/** A single term with its children, without counts, under the taxonomy epoch. */
|
|
409
|
-
function getTermRow(taxonomyName, slug, chain) {
|
|
410
|
-
return cachedQuery({
|
|
411
|
-
namespace: CacheNamespace.TAXONOMIES,
|
|
412
|
-
key: `term:${taxonomyName}:${slug}:${chain.join(",")}`,
|
|
413
|
-
load: () => loadTerm(taxonomyName, slug, chain)
|
|
414
|
-
});
|
|
415
|
-
}
|
|
416
|
-
async function loadTerm(taxonomyName, slug, chain) {
|
|
417
|
-
const db = await getDb();
|
|
418
|
-
let row;
|
|
419
|
-
const selectTerm = () => db.selectFrom("taxonomies").selectAll().where("name", "=", taxonomyName).where("slug", "=", slug);
|
|
420
|
-
if (chain.length === 0) row = await selectTerm().orderBy("locale", "asc").executeTakeFirst();
|
|
421
|
-
else {
|
|
422
|
-
row = void 0;
|
|
423
|
-
for (const locale of chain) {
|
|
424
|
-
row = await selectTerm().where("locale", "=", locale).executeTakeFirst();
|
|
425
|
-
if (row) break;
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
if (!row) return null;
|
|
429
|
-
let childrenQuery = db.selectFrom("taxonomies").selectAll().where("parent_id", "=", row.translation_group ?? row.id).orderBy("sort_order", "asc").orderBy("label", "asc");
|
|
430
|
-
const termLocale = row.locale;
|
|
431
|
-
if (termLocale) childrenQuery = childrenQuery.where("locale", "=", termLocale);
|
|
432
|
-
const children = (await childrenQuery.execute()).map((child) => ({
|
|
433
|
-
id: child.id,
|
|
434
|
-
name: child.name,
|
|
435
|
-
slug: child.slug,
|
|
436
|
-
label: child.label,
|
|
437
|
-
parentId: child.parent_id ?? void 0,
|
|
438
|
-
children: [],
|
|
439
|
-
locale: child.locale,
|
|
440
|
-
translationGroup: child.translation_group
|
|
441
|
-
}));
|
|
442
|
-
return {
|
|
443
|
-
id: row.id,
|
|
444
|
-
name: row.name,
|
|
445
|
-
slug: row.slug,
|
|
446
|
-
label: row.label,
|
|
447
|
-
parentId: row.parent_id ?? void 0,
|
|
448
|
-
description: row.data ? JSON.parse(row.data).description : void 0,
|
|
449
|
-
children,
|
|
450
|
-
locale: row.locale,
|
|
451
|
-
translationGroup: row.translation_group
|
|
452
|
-
};
|
|
453
|
-
}
|
|
454
|
-
/**
|
|
455
|
-
* Terms assigned to a content entry, resolved into the active locale and then
|
|
456
|
-
* the configured default locale.
|
|
457
|
-
*/
|
|
458
|
-
function getEntryTerms(collection, entryId, taxonomyName, options = {}) {
|
|
459
|
-
const locale = resolveLocale(options.locale);
|
|
460
|
-
return requestCached(`terms:${collection}:${entryId}:${taxonomyName ?? "*"}:${locale ?? "*"}`, () => cachedQuery({
|
|
461
|
-
namespace: [...contentCacheNamespaces(collection), CacheNamespace.TAXONOMIES],
|
|
462
|
-
key: `entryTerms:${collection}:${entryId}:${taxonomyName ?? "*"}:${locale ?? "*"}`,
|
|
463
|
-
load: async () => {
|
|
464
|
-
return (await selectEntryTermRows(await getDb(), collection, [entryId], taxonomyName, locale)).map((row) => ({
|
|
465
|
-
id: row.id,
|
|
466
|
-
name: row.name,
|
|
467
|
-
slug: row.slug,
|
|
468
|
-
label: row.label,
|
|
469
|
-
parentId: row.parent_id ?? void 0,
|
|
470
|
-
children: [],
|
|
471
|
-
locale: row.locale,
|
|
472
|
-
translationGroup: row.translation_group
|
|
473
|
-
}));
|
|
474
|
-
}
|
|
475
|
-
}));
|
|
476
|
-
}
|
|
477
|
-
/**
|
|
478
|
-
* Terms for multiple entries of one taxonomy, single query.
|
|
479
|
-
*/
|
|
480
|
-
async function getTermsForEntries(collection, entryIds, taxonomyName, options = {}) {
|
|
481
|
-
const uniqueIds = [...new Set(entryIds)];
|
|
482
|
-
if (uniqueIds.length === 0) return /* @__PURE__ */ new Map();
|
|
483
|
-
const locale = resolveLocale(options.locale);
|
|
484
|
-
const localeKey = locale ?? "*";
|
|
485
|
-
const load = async () => {
|
|
486
|
-
const result = /* @__PURE__ */ new Map();
|
|
487
|
-
for (const id of uniqueIds) result.set(id, []);
|
|
488
|
-
const missedIds = [];
|
|
489
|
-
const cacheReads = [];
|
|
490
|
-
for (const id of uniqueIds) {
|
|
491
|
-
const cached = peekRequestCache(`terms:${collection}:${id}:${taxonomyName}:${localeKey}`);
|
|
492
|
-
if (cached) cacheReads.push(cached.then((terms) => ({
|
|
493
|
-
id,
|
|
494
|
-
terms
|
|
495
|
-
}), () => ({
|
|
496
|
-
id,
|
|
497
|
-
miss: true
|
|
498
|
-
})));
|
|
499
|
-
else missedIds.push(id);
|
|
500
|
-
}
|
|
501
|
-
for (const read of await Promise.all(cacheReads)) {
|
|
502
|
-
if ("miss" in read) {
|
|
503
|
-
missedIds.push(read.id);
|
|
504
|
-
continue;
|
|
505
|
-
}
|
|
506
|
-
result.set(read.id, read.terms.map((t) => ({
|
|
507
|
-
...t,
|
|
508
|
-
children: [...t.children]
|
|
509
|
-
})));
|
|
510
|
-
}
|
|
511
|
-
if (missedIds.length === 0) return [...result.entries()];
|
|
512
|
-
const db = await getDb();
|
|
513
|
-
for (const chunk of chunks(missedIds, SQL_BATCH_SIZE)) {
|
|
514
|
-
let rows;
|
|
515
|
-
try {
|
|
516
|
-
rows = await selectEntryTermRows(db, collection, chunk, taxonomyName, locale);
|
|
517
|
-
} catch (error) {
|
|
518
|
-
if (isMissingTableError(error)) return [...result.entries()];
|
|
519
|
-
throw error;
|
|
520
|
-
}
|
|
521
|
-
for (const row of rows) {
|
|
522
|
-
const term = {
|
|
523
|
-
id: row.id,
|
|
524
|
-
name: row.name,
|
|
525
|
-
slug: row.slug,
|
|
526
|
-
label: row.label,
|
|
527
|
-
parentId: row.parent_id ?? void 0,
|
|
528
|
-
children: [],
|
|
529
|
-
locale: row.locale,
|
|
530
|
-
translationGroup: row.translation_group
|
|
531
|
-
};
|
|
532
|
-
const terms = result.get(row.entry_id);
|
|
533
|
-
if (terms) terms.push(term);
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
return [...result.entries()];
|
|
537
|
-
};
|
|
538
|
-
const idKey = uniqueIds.toSorted().join(",");
|
|
539
|
-
const pairs = idKey.length <= 256 ? await cachedQuery({
|
|
540
|
-
namespace: [...contentCacheNamespaces(collection), CacheNamespace.TAXONOMIES],
|
|
541
|
-
key: `termsForEntries:${collection}:${taxonomyName}:${locale ?? "*"}:${idKey}`,
|
|
542
|
-
load
|
|
543
|
-
}) : await load();
|
|
544
|
-
return new Map(pairs);
|
|
545
|
-
}
|
|
546
|
-
/**
|
|
547
|
-
* Batch-fetch terms for multiple entries across ALL taxonomies in one query.
|
|
548
|
-
* Primes the request-cache for subsequent per-entry calls to `getEntryTerms`.
|
|
549
|
-
*/
|
|
550
|
-
async function getAllTermsForEntries(collection, entryIds, options = {}) {
|
|
551
|
-
const result = /* @__PURE__ */ new Map();
|
|
552
|
-
const uniqueIds = [...new Set(entryIds)];
|
|
553
|
-
for (const id of uniqueIds) result.set(id, {});
|
|
554
|
-
if (uniqueIds.length === 0) return result;
|
|
555
|
-
const db = await getDb();
|
|
556
|
-
const locale = resolveLocale(options.locale);
|
|
557
|
-
const applicableTaxonomyNames = await getCollectionTaxonomyNames(collection, { locale });
|
|
558
|
-
for (const chunk of chunks(uniqueIds, SQL_BATCH_SIZE)) {
|
|
559
|
-
let rows;
|
|
560
|
-
try {
|
|
561
|
-
rows = await selectEntryTermRows(db, collection, chunk, void 0, locale);
|
|
562
|
-
} catch (error) {
|
|
563
|
-
if (isMissingTableError(error)) {
|
|
564
|
-
for (const id of uniqueIds) primeEntryTermsCache(collection, id, {}, applicableTaxonomyNames, locale);
|
|
565
|
-
return result;
|
|
566
|
-
}
|
|
567
|
-
throw error;
|
|
568
|
-
}
|
|
569
|
-
for (const row of rows) {
|
|
570
|
-
const term = {
|
|
571
|
-
id: row.id,
|
|
572
|
-
name: row.name,
|
|
573
|
-
slug: row.slug,
|
|
574
|
-
label: row.label,
|
|
575
|
-
parentId: row.parent_id ?? void 0,
|
|
576
|
-
children: [],
|
|
577
|
-
locale: row.locale,
|
|
578
|
-
translationGroup: row.translation_group
|
|
579
|
-
};
|
|
580
|
-
const byTaxonomy = result.get(row.entry_id);
|
|
581
|
-
if (!byTaxonomy) continue;
|
|
582
|
-
const existing = byTaxonomy[row.name];
|
|
583
|
-
if (existing) existing.push(term);
|
|
584
|
-
else byTaxonomy[row.name] = [term];
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
for (const [entryId, byTaxonomy] of result) primeEntryTermsCache(collection, entryId, byTaxonomy, applicableTaxonomyNames, locale);
|
|
588
|
-
return result;
|
|
589
|
-
}
|
|
590
|
-
/**
|
|
591
|
-
* Return the list of taxonomy names applicable to a collection, request-
|
|
592
|
-
* cached so a page render only pays for it once.
|
|
593
|
-
*
|
|
594
|
-
* Returns an empty list when taxonomies haven't been defined yet.
|
|
595
|
-
*/
|
|
596
|
-
async function getCollectionTaxonomyNames(collection, options) {
|
|
597
|
-
try {
|
|
598
|
-
return (await getTaxonomyDefs(options)).filter((d) => d.collections.includes(collection)).map((d) => d.name);
|
|
599
|
-
} catch (error) {
|
|
600
|
-
if (isMissingTableError(error)) return [];
|
|
601
|
-
throw error;
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
/**
|
|
605
|
-
* Pre-populate the request-cache for every getEntryTerms call-shape that
|
|
606
|
-
* could hit this entry:
|
|
607
|
-
*
|
|
608
|
-
* getEntryTerms(collection, entryId) -> key `terms:C:E:*`
|
|
609
|
-
* getEntryTerms(collection, entryId, "tag") -> key `terms:C:E:tag`
|
|
610
|
-
* getEntryTerms(collection, entryId, "category") -> key `terms:C:E:category`
|
|
611
|
-
* ...one per taxonomy that applies to this collection
|
|
612
|
-
*
|
|
613
|
-
* Taxonomies with no rows on this entry are seeded with `[]` so legacy
|
|
614
|
-
* callers short-circuit to the cached empty array instead of re-querying.
|
|
615
|
-
*/
|
|
616
|
-
function primeEntryTermsCache(collection, entryId, byTaxonomy, applicableTaxonomyNames, locale) {
|
|
617
|
-
const localeKey = locale ?? "*";
|
|
618
|
-
for (const name of applicableTaxonomyNames) setRequestCacheEntry(`terms:${collection}:${entryId}:${name}:${localeKey}`, byTaxonomy[name] ?? []);
|
|
619
|
-
for (const [name, terms] of Object.entries(byTaxonomy)) setRequestCacheEntry(`terms:${collection}:${entryId}:${name}:${localeKey}`, terms);
|
|
620
|
-
const allTerms = Object.values(byTaxonomy).flat();
|
|
621
|
-
setRequestCacheEntry(`terms:${collection}:${entryId}:*:${localeKey}`, allTerms);
|
|
622
|
-
}
|
|
623
|
-
/**
|
|
624
|
-
* Prime the per-entry request cache from terms that were folded into the
|
|
625
|
-
* content query (query.ts `hydrateEntryTerms` fast path), so subsequent
|
|
626
|
-
* `getEntryTerms` calls in the same render hit the cache instead of issuing an
|
|
627
|
-
* N+1 query. Seeds the wildcard key and one key per taxonomy present on the
|
|
628
|
-
* entry — purely from the folded data, with no DB lookup.
|
|
629
|
-
*
|
|
630
|
-
* Unlike `getAllTermsForEntries`, this deliberately does NOT seed `[]` for
|
|
631
|
-
* taxonomies that apply to the collection but have no rows on the entry: doing
|
|
632
|
-
* so would require a `getTaxonomyDefs` query, adding a round trip to every fold
|
|
633
|
-
* render to serve the rarer `getEntryTerms(id, absentTaxonomy)` case from cache.
|
|
634
|
-
* That call simply falls through to its own cached query. Keeping the key shape
|
|
635
|
-
* here (rather than in query.ts) prevents the two from drifting.
|
|
636
|
-
*/
|
|
637
|
-
function primeFoldedEntryTerms(collection, perEntry, options = {}) {
|
|
638
|
-
if (perEntry.length === 0) return;
|
|
639
|
-
const locale = resolveLocale(options.locale);
|
|
640
|
-
for (const { entryId, byTaxonomy } of perEntry) primeEntryTermsCache(collection, entryId, byTaxonomy, [], locale);
|
|
641
|
-
}
|
|
642
|
-
/**
|
|
643
|
-
* Get entries by term. Both the lookup (term slug in the active locale) and
|
|
644
|
-
* the content query respect the active locale.
|
|
645
|
-
*/
|
|
646
|
-
async function getEntriesByTerm(collection, taxonomyName, termSlug, options = {}) {
|
|
647
|
-
const { getEmDashCollection } = await import("./query-B48peoRT.mjs").then((n) => n.o);
|
|
648
|
-
const queryOptions = { where: { [taxonomyName]: termSlug } };
|
|
649
|
-
if (options.locale !== void 0) queryOptions.locale = options.locale;
|
|
650
|
-
const { entries } = await getEmDashCollection(collection, queryOptions);
|
|
651
|
-
return entries;
|
|
652
|
-
}
|
|
653
|
-
function rowToTaxonomyDef(row) {
|
|
654
|
-
return {
|
|
655
|
-
id: row.id,
|
|
656
|
-
name: row.name,
|
|
657
|
-
label: row.label,
|
|
658
|
-
labelSingular: row.label_singular ?? void 0,
|
|
659
|
-
hierarchical: row.hierarchical === 1,
|
|
660
|
-
collections: parseTaxonomyCollections(row.collections),
|
|
661
|
-
locale: row.locale,
|
|
662
|
-
translationGroup: row.translation_group
|
|
663
|
-
};
|
|
664
|
-
}
|
|
665
|
-
/**
|
|
666
|
-
* Build tree structure from flat terms
|
|
667
|
-
*/
|
|
668
|
-
function buildTree(flatTerms) {
|
|
669
|
-
const byLocaleGroup = /* @__PURE__ */ new Map();
|
|
670
|
-
const nodes = [];
|
|
671
|
-
const roots = [];
|
|
672
|
-
for (const term of flatTerms) {
|
|
673
|
-
const node = {
|
|
674
|
-
id: term.id,
|
|
675
|
-
name: term.name,
|
|
676
|
-
slug: term.slug,
|
|
677
|
-
label: term.label,
|
|
678
|
-
parentId: term.parent_id ?? void 0,
|
|
679
|
-
description: term.data ? JSON.parse(term.data).description : void 0,
|
|
680
|
-
children: [],
|
|
681
|
-
locale: term.locale,
|
|
682
|
-
translationGroup: term.translation_group
|
|
683
|
-
};
|
|
684
|
-
byLocaleGroup.set(`${term.locale}::${term.translation_group ?? term.id}`, node);
|
|
685
|
-
nodes.push(node);
|
|
686
|
-
}
|
|
687
|
-
for (const node of nodes) {
|
|
688
|
-
const parent = node.parentId ? byLocaleGroup.get(`${node.locale}::${node.parentId}`) : void 0;
|
|
689
|
-
if (parent) parent.children.push(node);
|
|
690
|
-
else roots.push(node);
|
|
691
|
-
}
|
|
692
|
-
return roots;
|
|
693
|
-
}
|
|
694
|
-
|
|
695
|
-
//#endregion
|
|
696
|
-
export { getTaxonomyDefs as a, getTerm as c, invalidateTermCache as d, taxonomies_exports as f, getTaxonomyDef as i, getTermsForEntries as l, getEntriesByTerm as n, getTaxonomyTerms as o, fetchVisibleTermCounts as p, getEntryTerms as r, getTaxonomyTermsWithCacheHint as s, getAllTermsForEntries as t, invalidateTaxonomyDefsCache as u };
|
|
697
|
-
//# sourceMappingURL=taxonomies-C1IwNe8Q.mjs.map
|