emdash 1.3.1 → 1.4.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-SK8zyN7w.mjs +26 -0
- package/dist/action-token-SK8zyN7w.mjs.map +1 -0
- package/dist/activation-CGlyigmg.mjs +387 -0
- package/dist/activation-CGlyigmg.mjs.map +1 -0
- package/dist/adapters-D9a1PfqH.d.mts +173 -0
- package/dist/adapters-D9a1PfqH.d.mts.map +1 -0
- package/dist/after-32yNRvd2.mjs +99 -0
- package/dist/after-32yNRvd2.mjs.map +1 -0
- package/dist/allowed-origins-CEug-p0t.mjs +116 -0
- package/dist/allowed-origins-CEug-p0t.mjs.map +1 -0
- package/dist/api/route-utils.d.mts +4 -4
- package/dist/api/route-utils.mjs +52 -53
- package/dist/api/route-utils.mjs.map +1 -1
- package/dist/api/schemas/index.d.mts +1 -1
- package/dist/api/schemas/index.mjs +9 -9
- package/dist/api--PYoyeTo.mjs +5098 -0
- package/dist/api--PYoyeTo.mjs.map +1 -0
- package/dist/api-tokens-DqSlkDVI.mjs +9 -0
- package/dist/api-tokens-DqSlkDVI.mjs.map +1 -0
- package/dist/api-tokens-GNCsIegW.mjs +173 -0
- package/dist/api-tokens-GNCsIegW.mjs.map +1 -0
- package/dist/apply-DVnupNeS.mjs +1760 -0
- package/dist/apply-DVnupNeS.mjs.map +1 -0
- package/dist/approvals-DTtYSB27.mjs +460 -0
- package/dist/approvals-DTtYSB27.mjs.map +1 -0
- package/dist/artifact-fetch-DIh7iyOV.mjs +659 -0
- package/dist/artifact-fetch-DIh7iyOV.mjs.map +1 -0
- package/dist/artifacts-Dvdp2KK-.mjs +323 -0
- package/dist/artifacts-Dvdp2KK-.mjs.map +1 -0
- package/dist/astro/index.d.mts +14 -13
- package/dist/astro/index.d.mts.map +1 -1
- package/dist/astro/index.mjs +52 -12
- package/dist/astro/index.mjs.map +1 -1
- package/dist/astro/middleware/auth.d.mts +12 -11
- package/dist/astro/middleware/auth.d.mts.map +1 -1
- package/dist/astro/middleware/auth.mjs +13 -11
- package/dist/astro/middleware/auth.mjs.map +1 -1
- package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
- package/dist/astro/middleware/redirect.mjs +17 -17
- package/dist/astro/middleware/request-context.mjs +12 -7
- package/dist/astro/middleware/request-context.mjs.map +1 -1
- package/dist/astro/middleware/setup.mjs +1 -1
- package/dist/astro/middleware.d.mts +12 -11
- package/dist/astro/middleware.d.mts.map +1 -1
- package/dist/astro/middleware.mjs +116 -116
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +13 -13
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +13 -13
- 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 +5 -5
- package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +15 -15
- package/dist/astro/routes/api/admin/byline-fields/index.mjs +15 -15
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +15 -15
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +23 -24
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +23 -24
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/admin/bylines/index.mjs +23 -24
- package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +19 -19
- package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -8
- package/dist/astro/routes/api/admin/comments/bulk.mjs +18 -18
- package/dist/astro/routes/api/admin/comments/counts.mjs +8 -8
- package/dist/astro/routes/api/admin/comments/index.mjs +18 -18
- package/dist/astro/routes/api/admin/core-update.mjs +7 -7
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +5 -5
- package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +4 -4
- package/dist/astro/routes/api/admin/media-usage/activation.mjs +20 -20
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +21 -21
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +21 -21
- package/dist/astro/routes/api/admin/media-usage/progress.mjs +24 -24
- package/dist/astro/routes/api/admin/media-usage/repair.mjs +30 -30
- package/dist/astro/routes/api/admin/media-usage/work/index.mjs +21 -21
- package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +21 -21
- package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +5 -5
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs +5 -5
- 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 +74 -75
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +6 -6
- package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +73 -74
- package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +73 -74
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +84 -85
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/index.mjs +74 -75
- package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +6 -6
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +73 -74
- 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 +83 -84
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +73 -74
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +73 -74
- 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 +85 -86
- package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +8 -8
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs +75 -76
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +6 -6
- package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +74 -75
- package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/updates.mjs +73 -74
- package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
- package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +5 -5
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +73 -74
- 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 +6 -6
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +73 -74
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/_...path_.mjs +3 -3
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +40 -41
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +40 -41
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +42 -43
- package/dist/astro/routes/api/admin/transfer/approvals/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/capabilities.mjs +42 -43
- package/dist/astro/routes/api/admin/transfer/capabilities.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +42 -43
- package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +43 -44
- package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +43 -44
- package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +42 -43
- package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +43 -44
- package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/index.mjs +44 -45
- package/dist/astro/routes/api/admin/transfer/exports/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +42 -43
- package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +42 -43
- package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +44 -45
- package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +42 -43
- package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +44 -45
- package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +42 -43
- package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +42 -43
- package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +44 -45
- package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +42 -43
- package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +42 -43
- package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/index.mjs +44 -45
- package/dist/astro/routes/api/admin/transfer/imports/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs +3 -3
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs +3 -3
- package/dist/astro/routes/api/admin/users/_id_/index.mjs +13 -13
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +5 -5
- package/dist/astro/routes/api/admin/users/index.mjs +13 -13
- package/dist/astro/routes/api/auth/dev-bypass.mjs +5 -5
- package/dist/astro/routes/api/auth/handover.mjs +6 -6
- package/dist/astro/routes/api/auth/invite/accept.mjs +3 -3
- package/dist/astro/routes/api/auth/invite/complete.mjs +19 -19
- package/dist/astro/routes/api/auth/invite/index.mjs +15 -15
- package/dist/astro/routes/api/auth/invite/register-options.mjs +16 -16
- package/dist/astro/routes/api/auth/logout.mjs +4 -4
- package/dist/astro/routes/api/auth/magic-link/send.mjs +18 -18
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +15 -15
- package/dist/astro/routes/api/auth/me.mjs +14 -14
- package/dist/astro/routes/api/auth/mode.mjs +4 -4
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +9 -9
- package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
- package/dist/astro/routes/api/auth/passkey/_id_.mjs +13 -13
- package/dist/astro/routes/api/auth/passkey/index.mjs +3 -3
- package/dist/astro/routes/api/auth/passkey/options.mjs +19 -19
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +16 -16
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +17 -17
- package/dist/astro/routes/api/auth/passkey/verify.mjs +19 -19
- package/dist/astro/routes/api/auth/signup/complete.mjs +19 -19
- package/dist/astro/routes/api/auth/signup/request.mjs +17 -17
- package/dist/astro/routes/api/auth/signup/verify.mjs +3 -3
- package/dist/astro/routes/api/calendar.mjs +14 -14
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +14 -14
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +20 -20
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +18 -18
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +4 -4
- 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 +10 -10
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +33 -33
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +18 -18
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +35 -35
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +35 -35
- package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +18 -18
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +26 -26
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +18 -18
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +18 -18
- package/dist/astro/routes/api/content/_collection_/authors.mjs +4 -4
- package/dist/astro/routes/api/content/_collection_/index.mjs +14 -14
- package/dist/astro/routes/api/content/_collection_/trash.mjs +14 -14
- package/dist/astro/routes/api/dashboard.mjs +11 -11
- package/dist/astro/routes/api/dev/emails.mjs +4 -4
- package/dist/astro/routes/api/dev/scheduled-tasks.mjs +112 -112
- package/dist/astro/routes/api/health.mjs +5 -5
- package/dist/astro/routes/api/import/probe.d.mts +3 -2
- package/dist/astro/routes/api/import/probe.d.mts.map +1 -1
- package/dist/astro/routes/api/import/probe.mjs +28 -28
- package/dist/astro/routes/api/import/wordpress/analyze.d.mts +4 -3
- package/dist/astro/routes/api/import/wordpress/analyze.d.mts.map +1 -1
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +6 -28
- package/dist/astro/routes/api/import/wordpress/analyze.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/execute.d.mts +12 -11
- package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -1
- package/dist/astro/routes/api/import/wordpress/execute.mjs +26 -27
- package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -11
- package/dist/astro/routes/api/import/wordpress/media.d.mts.map +1 -1
- package/dist/astro/routes/api/import/wordpress/media.mjs +18 -18
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +19 -19
- package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -12
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts.map +1 -1
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +29 -29
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +28 -28
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +12 -11
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts.map +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +38 -39
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
- package/dist/astro/routes/api/manifest.mjs +5 -5
- package/dist/astro/routes/api/mcp.mjs +96 -97
- 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 +15 -15
- package/dist/astro/routes/api/media/_id_/upload.mjs +8 -8
- package/dist/astro/routes/api/media/_id_/usage.mjs +32 -32
- package/dist/astro/routes/api/media/_id_.mjs +30 -30
- package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +5 -5
- package/dist/astro/routes/api/media/file/_...key_.d.mts.map +1 -1
- package/dist/astro/routes/api/media/file/_...key_.mjs +57 -11
- package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
- package/dist/astro/routes/api/media/folders/_id_.mjs +15 -15
- package/dist/astro/routes/api/media/folders/index.mjs +15 -15
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +4 -4
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +4 -4
- package/dist/astro/routes/api/media/providers/index.mjs +4 -4
- package/dist/astro/routes/api/media/upload-url.mjs +17 -17
- package/dist/astro/routes/api/media.mjs +34 -34
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +20 -19
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/items.mjs +20 -19
- package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +20 -19
- package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/translations.mjs +20 -19
- package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_.mjs +20 -19
- package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/menus/index.mjs +20 -19
- package/dist/astro/routes/api/menus/index.mjs.map +1 -1
- package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
- package/dist/astro/routes/api/oauth/device/authorize.mjs +7 -7
- package/dist/astro/routes/api/oauth/device/code.mjs +11 -11
- package/dist/astro/routes/api/oauth/device/token.mjs +10 -10
- package/dist/astro/routes/api/oauth/register.mjs +7 -7
- package/dist/astro/routes/api/oauth/token/refresh.mjs +7 -7
- package/dist/astro/routes/api/oauth/token/revoke.mjs +7 -7
- package/dist/astro/routes/api/oauth/token.d.mts.map +1 -1
- package/dist/astro/routes/api/oauth/token.mjs +8 -8
- package/dist/astro/routes/api/oauth/token.mjs.map +1 -1
- package/dist/astro/routes/api/openapi.json.mjs +20 -20
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +10 -10
- package/dist/astro/routes/api/redirects/404s/index.mjs +21 -21
- package/dist/astro/routes/api/redirects/404s/summary.mjs +21 -21
- package/dist/astro/routes/api/redirects/_id_.mjs +22 -22
- package/dist/astro/routes/api/redirects/index.mjs +22 -22
- package/dist/astro/routes/api/relations/_id_/index.mjs +35 -35
- package/dist/astro/routes/api/relations/index.mjs +35 -35
- package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +4 -4
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +17 -17
- package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +73 -74
- 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 +73 -74
- 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 +73 -74
- 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 -74
- 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 +73 -74
- 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 +73 -74
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +73 -74
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/index.mjs +73 -74
- package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/reorder.mjs +73 -74
- package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/index.mjs +17 -17
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +73 -74
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/schema/orphans/index.mjs +73 -74
- package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
- package/dist/astro/routes/api/search/enable.mjs +20 -19
- package/dist/astro/routes/api/search/enable.mjs.map +1 -1
- package/dist/astro/routes/api/search/index.mjs +19 -18
- package/dist/astro/routes/api/search/index.mjs.map +1 -1
- package/dist/astro/routes/api/search/rebuild.mjs +20 -19
- package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
- package/dist/astro/routes/api/search/stats.mjs +10 -9
- package/dist/astro/routes/api/search/stats.mjs.map +1 -1
- package/dist/astro/routes/api/search/suggest.mjs +19 -18
- package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
- package/dist/astro/routes/api/sections/_slug_.mjs +19 -18
- package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/sections/index.mjs +19 -18
- package/dist/astro/routes/api/sections/index.mjs.map +1 -1
- package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
- package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
- package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
- package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
- package/dist/astro/routes/api/settings/domain-notify.mjs +9 -9
- package/dist/astro/routes/api/settings/domain.mjs +21 -21
- package/dist/astro/routes/api/settings/email.mjs +5 -5
- package/dist/astro/routes/api/settings.mjs +27 -27
- package/dist/astro/routes/api/setup/admin-verify.mjs +22 -22
- package/dist/astro/routes/api/setup/admin.mjs +17 -17
- package/dist/astro/routes/api/setup/dev-bypass.mjs +45 -46
- package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
- package/dist/astro/routes/api/setup/dev-reset.mjs +3 -3
- package/dist/astro/routes/api/setup/index.mjs +51 -52
- package/dist/astro/routes/api/setup/index.mjs.map +1 -1
- package/dist/astro/routes/api/setup/status.mjs +5 -5
- package/dist/astro/routes/api/site/domain-proof.mjs +15 -15
- package/dist/astro/routes/api/snapshot.mjs +10 -10
- package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +25 -25
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +25 -25
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +25 -25
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +25 -25
- package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +23 -23
- package/dist/astro/routes/api/taxonomies/_name_.mjs +25 -25
- package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +36 -36
- package/dist/astro/routes/api/taxonomies/index.mjs +25 -25
- package/dist/astro/routes/api/themes/preview.mjs +7 -7
- package/dist/astro/routes/api/typegen.mjs +5 -5
- package/dist/astro/routes/api/visual-editing/action-token.mjs +7 -7
- package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +21 -21
- package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +3 -3
- 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.d.mts.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +28 -17
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.d.mts.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +24 -20
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +23 -20
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_.mjs +13 -10
- package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/index.mjs +23 -20
- package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
- package/dist/astro/routes/api/widget-components.mjs +4 -4
- package/dist/astro/routes/robots.txt.mjs +14 -14
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +17 -17
- package/dist/astro/routes/sitemap.xml.mjs +15 -15
- package/dist/astro/types.d.mts +21 -19
- package/dist/astro/types.d.mts.map +1 -1
- package/dist/auth/providers/github.d.mts +1 -1
- package/dist/auth/providers/google.d.mts +1 -1
- package/dist/auth/providers/microsoft.d.mts +1 -1
- package/dist/authoritative-records-CQlB3JzE.mjs +5183 -0
- package/dist/authoritative-records-CQlB3JzE.mjs.map +1 -0
- package/dist/authorize-NJgp8kLI.mjs +74 -0
- package/dist/authorize-NJgp8kLI.mjs.map +1 -0
- package/dist/backup-8rPSJ28a.mjs +246 -0
- package/dist/backup-8rPSJ28a.mjs.map +1 -0
- package/dist/block-types-BbOrfnWs.mjs +132 -0
- package/dist/block-types-BbOrfnWs.mjs.map +1 -0
- package/dist/block-values-Dg0-8PPS.mjs +215 -0
- package/dist/block-values-Dg0-8PPS.mjs.map +1 -0
- package/dist/byline-DHJS-GGb.mjs +994 -0
- package/dist/byline-DHJS-GGb.mjs.map +1 -0
- package/dist/byline-fields-CiR8FvvF.mjs +280 -0
- package/dist/byline-fields-CiR8FvvF.mjs.map +1 -0
- package/dist/byline-fields-D6KYsEa7.mjs +123 -0
- package/dist/byline-fields-D6KYsEa7.mjs.map +1 -0
- package/dist/bylines-Bsg5cH4S.mjs +234 -0
- package/dist/bylines-Bsg5cH4S.mjs.map +1 -0
- package/dist/bylines-f_ZEc6Sn.mjs +150 -0
- package/dist/bylines-f_ZEc6Sn.mjs.map +1 -0
- package/dist/cache-5DHbpEWu.mjs +151 -0
- package/dist/cache-5DHbpEWu.mjs.map +1 -0
- package/dist/canonical-BudtH-Fx.mjs +174 -0
- package/dist/canonical-BudtH-Fx.mjs.map +1 -0
- package/dist/capture-triggers-BezAvWcB.mjs +362 -0
- package/dist/capture-triggers-BezAvWcB.mjs.map +1 -0
- package/dist/challenge-store-B1C0V4b3.mjs +51 -0
- package/dist/challenge-store-B1C0V4b3.mjs.map +1 -0
- package/dist/checksum-CEqvfxGX.mjs +162 -0
- package/dist/checksum-CEqvfxGX.mjs.map +1 -0
- package/dist/chrome-tags-BIKBMZYO.mjs +24 -0
- package/dist/chrome-tags-BIKBMZYO.mjs.map +1 -0
- package/dist/chunks-DiW8VMwz.mjs +25 -0
- package/dist/chunks-DiW8VMwz.mjs.map +1 -0
- package/dist/cli/index.mjs +52 -53
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/index.d.mts +46 -46
- package/dist/client/index.mjs +2 -2
- package/dist/collection-slugs-cache-DIrLjqH-.mjs +91 -0
- package/dist/collection-slugs-cache-DIrLjqH-.mjs.map +1 -0
- package/dist/comment-DB74Zpa4.mjs +335 -0
- package/dist/comment-DB74Zpa4.mjs.map +1 -0
- package/dist/comment-reaction-BScxIWUn.mjs +85 -0
- package/dist/comment-reaction-BScxIWUn.mjs.map +1 -0
- package/dist/comments-Cor_zKml.mjs +195 -0
- package/dist/comments-Cor_zKml.mjs.map +1 -0
- package/dist/comments-yiRFx3w5.mjs +99 -0
- package/dist/comments-yiRFx3w5.mjs.map +1 -0
- package/dist/components-Brp__9xo.mjs +112 -0
- package/dist/components-Brp__9xo.mjs.map +1 -0
- package/dist/config-D44_8G9J.d.mts +41 -0
- package/dist/config-D44_8G9J.d.mts.map +1 -0
- package/dist/config-DBU6iUQB.mjs +228 -0
- package/dist/config-DBU6iUQB.mjs.map +1 -0
- package/dist/config-sDhZvkLR.d.mts +6835 -0
- package/dist/config-sDhZvkLR.d.mts.map +1 -0
- package/dist/connection-BtEN_lP9.mjs +36 -0
- package/dist/connection-BtEN_lP9.mjs.map +1 -0
- package/dist/content-BKHUVsE5.mjs +2112 -0
- package/dist/content-BKHUVsE5.mjs.map +1 -0
- package/dist/content-list-query-ByP4jRpZ.d.mts +26 -0
- package/dist/content-list-query-ByP4jRpZ.d.mts.map +1 -0
- package/dist/content-policy-BmE0MPZY.mjs +46 -0
- package/dist/content-policy-BmE0MPZY.mjs.map +1 -0
- package/dist/content-repair-Ukdxoq-R.mjs +442 -0
- package/dist/content-repair-Ukdxoq-R.mjs.map +1 -0
- package/dist/context-CzjejcsE.mjs +2089 -0
- package/dist/context-CzjejcsE.mjs.map +1 -0
- package/dist/credits-BKREepht.mjs +110 -0
- package/dist/credits-BKREepht.mjs.map +1 -0
- package/dist/cron-D7obTIfk.mjs +306 -0
- package/dist/cron-D7obTIfk.mjs.map +1 -0
- package/dist/dashboard-ynr1qJWM.mjs +168 -0
- package/dist/dashboard-ynr1qJWM.mjs.map +1 -0
- package/dist/db/index.d.mts +3 -3
- package/dist/db/index.mjs +2 -2
- package/dist/db/libsql-migrations.d.mts +1 -1
- package/dist/db/libsql-migrations.mjs +5 -5
- package/dist/db/libsql.d.mts +1 -1
- package/dist/db/postgres-migrations.d.mts +1 -1
- package/dist/db/postgres-migrations.mjs +5 -5
- package/dist/db/postgres.d.mts +1 -1
- package/dist/db/sqlite-migrations.d.mts +1 -1
- package/dist/db/sqlite-migrations.mjs +5 -5
- package/dist/db/sqlite.d.mts +1 -1
- package/dist/db/sqlite.mjs +1 -1
- package/dist/default-C0W-PhAp.mjs +81 -0
- package/dist/default-C0W-PhAp.mjs.map +1 -0
- package/dist/deferred-tasks-wlMFJL95.d.mts +10 -0
- package/dist/deferred-tasks-wlMFJL95.d.mts.map +1 -0
- package/dist/dev-typegen-EBni_pOQ.mjs +29 -0
- package/dist/dev-typegen-EBni_pOQ.mjs.map +1 -0
- package/dist/device-flow-D1U392GC.mjs +519 -0
- package/dist/device-flow-D1U392GC.mjs.map +1 -0
- package/dist/dialect-helpers-B1XN2HGB.mjs +314 -0
- package/dist/dialect-helpers-B1XN2HGB.mjs.map +1 -0
- package/dist/digest-DJ1tHCgy.mjs +194 -0
- package/dist/digest-DJ1tHCgy.mjs.map +1 -0
- package/dist/direct-executor-Bs2g0ake.mjs +117 -0
- package/dist/direct-executor-Bs2g0ake.mjs.map +1 -0
- package/dist/dist-BUmWMTbN.mjs +810 -0
- package/dist/dist-BUmWMTbN.mjs.map +1 -0
- package/dist/email-console-FFVJWb9N.mjs +50 -0
- package/dist/email-console-FFVJWb9N.mjs.map +1 -0
- package/dist/email-locale-Bs3HFdnq.mjs +25 -0
- package/dist/email-locale-Bs3HFdnq.mjs.map +1 -0
- package/dist/emdash-runtime-C8T-pZpS.mjs +4425 -0
- package/dist/emdash-runtime-C8T-pZpS.mjs.map +1 -0
- package/dist/enrich-DFlfnd3u.mjs +194 -0
- package/dist/enrich-DFlfnd3u.mjs.map +1 -0
- package/dist/entry-lock-BulbgPBX.d.mts +4568 -0
- package/dist/entry-lock-BulbgPBX.d.mts.map +1 -0
- package/dist/entry-lock-CRVmruM0.mjs +1211 -0
- package/dist/entry-lock-CRVmruM0.mjs.map +1 -0
- package/dist/entry-lock-D-zJQ4q6.mjs +163 -0
- package/dist/entry-lock-D-zJQ4q6.mjs.map +1 -0
- package/dist/entry-locks-CJ9uhqg1.mjs +167 -0
- package/dist/entry-locks-CJ9uhqg1.mjs.map +1 -0
- package/dist/env-types-BE3bCvfP.mjs +38 -0
- package/dist/env-types-BE3bCvfP.mjs.map +1 -0
- package/dist/error-BCMgPxdn.mjs +90 -0
- package/dist/error-BCMgPxdn.mjs.map +1 -0
- package/dist/errors-8gJqv-XV.mjs +492 -0
- package/dist/errors-8gJqv-XV.mjs.map +1 -0
- package/dist/errors-B4f4It-2.mjs +120 -0
- package/dist/errors-B4f4It-2.mjs.map +1 -0
- package/dist/escape-lsNq38PP.mjs +9 -0
- package/dist/escape-lsNq38PP.mjs.map +1 -0
- package/dist/fence-Dagicj14.mjs +162 -0
- package/dist/fence-Dagicj14.mjs.map +1 -0
- package/dist/field-map-BSXdNGt5.mjs +84 -0
- package/dist/field-map-BSXdNGt5.mjs.map +1 -0
- package/dist/fts-manager-6861qcwk.mjs +489 -0
- package/dist/fts-manager-6861qcwk.mjs.map +1 -0
- package/dist/gc-CNkXB3mE.mjs +75 -0
- package/dist/gc-CNkXB3mE.mjs.map +1 -0
- package/dist/hash-BJaeek87.mjs +37 -0
- package/dist/hash-BJaeek87.mjs.map +1 -0
- package/dist/hreflang-8dUOJAPJ.d.mts +50 -0
- package/dist/hreflang-8dUOJAPJ.d.mts.map +1 -0
- package/dist/hreflang-BW5A4FLK.mjs +105 -0
- package/dist/hreflang-BW5A4FLK.mjs.map +1 -0
- package/dist/http-route-dispatch-rXKvTNm9.mjs +342 -0
- package/dist/http-route-dispatch-rXKvTNm9.mjs.map +1 -0
- package/dist/identity-CPRRSovU.mjs +35 -0
- package/dist/identity-CPRRSovU.mjs.map +1 -0
- package/dist/import-yVbfPyfd.mjs +2126 -0
- package/dist/import-yVbfPyfd.mjs.map +1 -0
- package/dist/index-VM7Fzxwe.d.mts +260 -0
- package/dist/index-VM7Fzxwe.d.mts.map +1 -0
- package/dist/index.d.mts +23 -22
- package/dist/index.mjs +104 -105
- package/dist/install-finalization-RU6VrHOX.mjs +58 -0
- package/dist/install-finalization-RU6VrHOX.mjs.map +1 -0
- package/dist/json-recordset-D0WhN2UA.mjs +12 -0
- package/dist/json-recordset-D0WhN2UA.mjs.map +1 -0
- package/dist/json-schema-v_D_pPNG.mjs +15 -0
- package/dist/json-schema-v_D_pPNG.mjs.map +1 -0
- package/dist/keys-CifIkT0N.mjs +61 -0
- package/dist/keys-CifIkT0N.mjs.map +1 -0
- package/dist/kinds-B_Qcl5pz.mjs +974 -0
- package/dist/kinds-B_Qcl5pz.mjs.map +1 -0
- package/dist/lifecycle-B8d7Rdqx.mjs +25 -0
- package/dist/lifecycle-B8d7Rdqx.mjs.map +1 -0
- package/dist/load-D4xtzm6h.mjs +28 -0
- package/dist/load-D4xtzm6h.mjs.map +1 -0
- package/dist/loader-DhnedqY4.mjs +1478 -0
- package/dist/loader-DhnedqY4.mjs.map +1 -0
- package/dist/loops-B2YS-Zzr.mjs +205 -0
- package/dist/loops-B2YS-Zzr.mjs.map +1 -0
- package/dist/manifest-builder-g1FLviel.mjs +196 -0
- package/dist/manifest-builder-g1FLviel.mjs.map +1 -0
- package/dist/manifest-schema-DNb4XmTS.mjs +497 -0
- package/dist/manifest-schema-DNb4XmTS.mjs.map +1 -0
- package/dist/marketplace-CqbgeIa7.mjs +257 -0
- package/dist/marketplace-CqbgeIa7.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 +3 -3
- package/dist/media/local-runtime.d.mts +14 -13
- package/dist/media/local-runtime.d.mts.map +1 -1
- package/dist/media/local-runtime.mjs +14 -14
- package/dist/media-BR4_t-Wd.mjs +416 -0
- package/dist/media-BR4_t-Wd.mjs.map +1 -0
- package/dist/media-CikS-q6E.mjs +294 -0
- package/dist/media-CikS-q6E.mjs.map +1 -0
- package/dist/media-DepNLhPq.mjs +383 -0
- package/dist/media-DepNLhPq.mjs.map +1 -0
- package/dist/media-allowlist-BMBLqyWh.mjs +45 -0
- package/dist/media-allowlist-BMBLqyWh.mjs.map +1 -0
- package/dist/media-folders-CI0Wydfo.mjs +210 -0
- package/dist/media-folders-CI0Wydfo.mjs.map +1 -0
- package/dist/media-url-BQgKvpQ5.mjs +43 -0
- package/dist/media-url-BQgKvpQ5.mjs.map +1 -0
- package/dist/media-usage-X1_20MY-.mjs +282 -0
- package/dist/media-usage-X1_20MY-.mjs.map +1 -0
- package/dist/media-usage-activation-bWusy3M2.mjs +78 -0
- package/dist/media-usage-activation-bWusy3M2.mjs.map +1 -0
- package/dist/media-usage-work-B2RaoJIa.mjs +151 -0
- package/dist/media-usage-work-B2RaoJIa.mjs.map +1 -0
- package/dist/media-usage-work-BCK2J-v_.mjs +1036 -0
- package/dist/media-usage-work-BCK2J-v_.mjs.map +1 -0
- package/dist/menus-B0Qqv_cS.mjs +837 -0
- package/dist/menus-B0Qqv_cS.mjs.map +1 -0
- package/dist/menus-oypxT1pI.mjs +3802 -0
- package/dist/menus-oypxT1pI.mjs.map +1 -0
- package/dist/menus-uEAxWAm1.mjs +92 -0
- package/dist/menus-uEAxWAm1.mjs.map +1 -0
- package/dist/migrations/index.d.mts +1 -1
- package/dist/migrations/index.mjs +4 -4
- package/dist/mime-D1We9jUx.mjs +81 -0
- package/dist/mime-D1We9jUx.mjs.map +1 -0
- package/dist/mode-C-D3qICy.mjs +23 -0
- package/dist/mode-C-D3qICy.mjs.map +1 -0
- package/dist/node-sqlite-compat-CrKzRr0J.mjs +63 -0
- package/dist/node-sqlite-compat-CrKzRr0J.mjs.map +1 -0
- package/dist/normalize-Cx-bNwhP.mjs +220 -0
- package/dist/normalize-Cx-bNwhP.mjs.map +1 -0
- package/dist/oauth-authorization-CPLgBrdo.mjs +287 -0
- package/dist/oauth-authorization-CPLgBrdo.mjs.map +1 -0
- package/dist/oauth-clients-BT0Pg-MO.mjs +266 -0
- package/dist/oauth-clients-BT0Pg-MO.mjs.map +1 -0
- package/dist/oauth-state-store-BndCfRum.mjs +50 -0
- package/dist/oauth-state-store-BndCfRum.mjs.map +1 -0
- package/dist/oauth-user-lookup-BDgF6IVG.mjs +26 -0
- package/dist/oauth-user-lookup-BDgF6IVG.mjs.map +1 -0
- package/dist/object-cache/memory.d.mts +1 -1
- package/dist/object-cache-DmKr09La.mjs +603 -0
- package/dist/object-cache-DmKr09La.mjs.map +1 -0
- package/dist/options-BUUgroHg.d.mts +81 -0
- package/dist/options-BUUgroHg.d.mts.map +1 -0
- package/dist/ownership-MiyA7qKO.mjs +12 -0
- package/dist/ownership-MiyA7qKO.mjs.map +1 -0
- package/dist/page/index.d.mts +2 -2
- package/dist/page/index.mjs +13 -13
- package/dist/parse-B_b6gZxG.mjs +81 -0
- package/dist/parse-B_b6gZxG.mjs.map +1 -0
- package/dist/parse-Dndx1QmN.d.mts +176 -0
- package/dist/parse-Dndx1QmN.d.mts.map +1 -0
- package/dist/passkey-config-D2Lua5__.mjs +46 -0
- package/dist/passkey-config-D2Lua5__.mjs.map +1 -0
- package/dist/paths-biDzFTY2.mjs +77 -0
- package/dist/paths-biDzFTY2.mjs.map +1 -0
- package/dist/placeholder-CSKu5OkD.d.mts +314 -0
- package/dist/placeholder-CSKu5OkD.d.mts.map +1 -0
- package/dist/plan-CCoqxNoU.mjs +135 -0
- package/dist/plan-CCoqxNoU.mjs.map +1 -0
- package/dist/plugin-test-runtime.d.mts +16 -14
- package/dist/plugin-test-runtime.d.mts.map +1 -1
- package/dist/plugin-test-runtime.mjs +114 -115
- package/dist/plugin-tool-name-DDUgN_0p.mjs +27 -0
- package/dist/plugin-tool-name-DDUgN_0p.mjs.map +1 -0
- package/dist/plugin-types.d.mts +1 -1
- package/dist/plugin-utils.d.mts +12 -11
- package/dist/plugin-utils.d.mts.map +1 -1
- package/dist/plugins/adapt-sandbox-entry.d.mts +12 -11
- package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
- package/dist/plugins/adapt-sandbox-entry.mjs +4 -4
- package/dist/plugins/host.d.mts +5 -5
- package/dist/plugins/host.mjs +50 -51
- package/dist/plugins-COJ2L49n.mjs +261 -0
- package/dist/plugins-COJ2L49n.mjs.map +1 -0
- package/dist/policy-BPugqmeV.mjs +53 -0
- package/dist/policy-BPugqmeV.mjs.map +1 -0
- package/dist/portable-text-BH4zgkSm.mjs +311 -0
- package/dist/portable-text-BH4zgkSm.mjs.map +1 -0
- package/dist/preview-DLexxwp3.mjs +107 -0
- package/dist/preview-DLexxwp3.mjs.map +1 -0
- package/dist/protocol-PoAfD_9W.d.mts +65 -0
- package/dist/protocol-PoAfD_9W.d.mts.map +1 -0
- package/dist/public-plugin-api-routes-CMljrTby.mjs +316 -0
- package/dist/public-plugin-api-routes-CMljrTby.mjs.map +1 -0
- package/dist/public-submission-ayqoyee4.mjs +251 -0
- package/dist/public-submission-ayqoyee4.mjs.map +1 -0
- package/dist/public-url-Bt98vysr.mjs +101 -0
- package/dist/public-url-Bt98vysr.mjs.map +1 -0
- package/dist/query-D62NntCZ.mjs +1146 -0
- package/dist/query-D62NntCZ.mjs.map +1 -0
- package/dist/query-LmPY2y0C.mjs +41 -0
- package/dist/query-LmPY2y0C.mjs.map +1 -0
- package/dist/range-CYfeXgGK.mjs +51 -0
- package/dist/range-CYfeXgGK.mjs.map +1 -0
- package/dist/rate-limit-C04Llsoc.mjs +127 -0
- package/dist/rate-limit-C04Llsoc.mjs.map +1 -0
- package/dist/receipt-BUsQCOeM.mjs +43 -0
- package/dist/receipt-BUsQCOeM.mjs.map +1 -0
- package/dist/redirect-CQAV7mCo.mjs +19 -0
- package/dist/redirect-CQAV7mCo.mjs.map +1 -0
- package/dist/redirect-DjLdw427.mjs +423 -0
- package/dist/redirect-DjLdw427.mjs.map +1 -0
- package/dist/redirect-paths-DOaVBp6E.mjs +36 -0
- package/dist/redirect-paths-DOaVBp6E.mjs.map +1 -0
- package/dist/redirects-Cpq1catN.mjs +446 -0
- package/dist/redirects-Cpq1catN.mjs.map +1 -0
- package/dist/redirects-CyvvZrCJ.mjs +148 -0
- package/dist/redirects-CyvvZrCJ.mjs.map +1 -0
- package/dist/registry/testing.mjs +3 -3
- package/dist/registry-B0-O575m.mjs +8374 -0
- package/dist/registry-B0-O575m.mjs.map +1 -0
- package/dist/relations-WIOojTL4.mjs +789 -0
- package/dist/relations-WIOojTL4.mjs.map +1 -0
- package/dist/request-context.d.mts +2 -2
- package/dist/request-meta-bwZ_NsvU.mjs +141 -0
- package/dist/request-meta-bwZ_NsvU.mjs.map +1 -0
- package/dist/resolve-BNnm8EkB.mjs +102 -0
- package/dist/resolve-BNnm8EkB.mjs.map +1 -0
- package/dist/route-cache-QSOyDEw0.mjs +20 -0
- package/dist/route-cache-QSOyDEw0.mjs.map +1 -0
- package/dist/route-wire-Ca_HWCZ5.mjs +197 -0
- package/dist/route-wire-Ca_HWCZ5.mjs.map +1 -0
- package/dist/routes-avqgc-8r.mjs +272 -0
- package/dist/routes-avqgc-8r.mjs.map +1 -0
- package/dist/runner-Bkkfk4O8.mjs +6669 -0
- package/dist/runner-Bkkfk4O8.mjs.map +1 -0
- package/dist/runner-Dfgp6-S_.d.mts +73 -0
- package/dist/runner-Dfgp6-S_.d.mts.map +1 -0
- package/dist/runtime.d.mts +13 -12
- package/dist/runtime.d.mts.map +1 -1
- package/dist/runtime.mjs +4 -3
- package/dist/runtime.mjs.map +1 -1
- package/dist/schema/project-env-types.mjs +42 -43
- package/dist/schema/project-env-types.mjs.map +1 -1
- package/dist/schema-B-3rntlX.mjs +815 -0
- package/dist/schema-B-3rntlX.mjs.map +1 -0
- package/dist/schema-BqBlUZtb.mjs +13 -0
- package/dist/schema-BqBlUZtb.mjs.map +1 -0
- package/dist/scopes-DNaY7Ey0.mjs +34 -0
- package/dist/scopes-DNaY7Ey0.mjs.map +1 -0
- package/dist/search-BPWTnpnD.mjs +450 -0
- package/dist/search-BPWTnpnD.mjs.map +1 -0
- package/dist/secrets-Dswzrz3k.mjs +369 -0
- package/dist/secrets-Dswzrz3k.mjs.map +1 -0
- package/dist/sections-rSao6rBG.mjs +346 -0
- package/dist/sections-rSao6rBG.mjs.map +1 -0
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +40 -41
- package/dist/seo/index.d.mts +3 -3
- package/dist/seo/index.mjs +27 -27
- package/dist/seo-B_H_pqOd.mjs +133 -0
- package/dist/seo-B_H_pqOd.mjs.map +1 -0
- package/dist/seo-ClB-dw9w.mjs +188 -0
- package/dist/seo-ClB-dw9w.mjs.map +1 -0
- package/dist/service-DpiUQVpp.mjs +150 -0
- package/dist/service-DpiUQVpp.mjs.map +1 -0
- package/dist/session-user-DiE4JKPP.mjs +61 -0
- package/dist/session-user-DiE4JKPP.mjs.map +1 -0
- package/dist/settings--XlUdUaI.mjs +66 -0
- package/dist/settings--XlUdUaI.mjs.map +1 -0
- package/dist/settings-D932YP2-.mjs +519 -0
- package/dist/settings-D932YP2-.mjs.map +1 -0
- package/dist/settings-Dd1uivmQ.mjs +73 -0
- package/dist/settings-Dd1uivmQ.mjs.map +1 -0
- package/dist/setup-complete-qsJYWutC.mjs +65 -0
- package/dist/setup-complete-qsJYWutC.mjs.map +1 -0
- package/dist/setup-nonce-CBFgUFXw.mjs +25 -0
- package/dist/setup-nonce-CBFgUFXw.mjs.map +1 -0
- package/dist/site-domain-oRGS_JfA.mjs +131 -0
- package/dist/site-domain-oRGS_JfA.mjs.map +1 -0
- package/dist/site-settings-DRHfX7bq.mjs +50 -0
- package/dist/site-settings-DRHfX7bq.mjs.map +1 -0
- package/dist/site-url-MB685I5X.mjs +45 -0
- package/dist/site-url-MB685I5X.mjs.map +1 -0
- package/dist/sitemap-name-B8QP8wud.mjs +26 -0
- package/dist/sitemap-name-B8QP8wud.mjs.map +1 -0
- package/dist/slug-aVnUV4SL.mjs +16 -0
- package/dist/slug-aVnUV4SL.mjs.map +1 -0
- package/dist/snapshot-BjaXDZQ5.mjs +414 -0
- package/dist/snapshot-BjaXDZQ5.mjs.map +1 -0
- package/dist/ssrf-BcYjyM4M.mjs +406 -0
- package/dist/ssrf-BcYjyM4M.mjs.map +1 -0
- package/dist/stage-CZQnXM_G.mjs +662 -0
- package/dist/stage-CZQnXM_G.mjs.map +1 -0
- package/dist/staged-ByBmPFtX.mjs +686 -0
- package/dist/staged-ByBmPFtX.mjs.map +1 -0
- package/dist/state-CFbGZziM.mjs +178 -0
- package/dist/state-CFbGZziM.mjs.map +1 -0
- package/dist/status-BFNdxzKc.mjs +30 -0
- package/dist/status-BFNdxzKc.mjs.map +1 -0
- package/dist/storage/local.d.mts +1 -1
- package/dist/storage/local.mjs +2 -2
- package/dist/storage/s3.d.mts +1 -1
- package/dist/storage/s3.mjs +1 -1
- package/dist/storage-query-BFp06Y0s.d.mts +1627 -0
- package/dist/storage-query-BFp06Y0s.d.mts.map +1 -0
- package/dist/tar-DFjExb9X.mjs +449 -0
- package/dist/tar-DFjExb9X.mjs.map +1 -0
- package/dist/target-CWZs2-o6.mjs +27 -0
- package/dist/target-CWZs2-o6.mjs.map +1 -0
- package/dist/taxonomies-5SR76j11.mjs +937 -0
- package/dist/taxonomies-5SR76j11.mjs.map +1 -0
- package/dist/taxonomies-B__VmCKQ.mjs +703 -0
- package/dist/taxonomies-B__VmCKQ.mjs.map +1 -0
- package/dist/taxonomy-CMI5fczd.mjs +563 -0
- package/dist/taxonomy-CMI5fczd.mjs.map +1 -0
- package/dist/tokens-BnhSnGwJ.mjs +171 -0
- package/dist/tokens-BnhSnGwJ.mjs.map +1 -0
- package/dist/transfer-BbKfufJ4.mjs +166 -0
- package/dist/transfer-BbKfufJ4.mjs.map +1 -0
- package/dist/transfer-DTGblAj2.mjs +8910 -0
- package/dist/transfer-DTGblAj2.mjs.map +1 -0
- package/dist/transfer-download-D9LQEDX0.mjs +33 -0
- package/dist/transfer-download-D9LQEDX0.mjs.map +1 -0
- package/dist/transformations-Bx4lYY0Y.mjs +196 -0
- package/dist/transformations-Bx4lYY0Y.mjs.map +1 -0
- package/dist/transport-Dzpn5b3i.mjs +137 -0
- package/dist/transport-Dzpn5b3i.mjs.map +1 -0
- package/dist/trusted-proxy-BU3Nx9g1.mjs +51 -0
- package/dist/trusted-proxy-BU3Nx9g1.mjs.map +1 -0
- package/dist/turnstile-Cs2wfkJG.mjs +58 -0
- package/dist/turnstile-Cs2wfkJG.mjs.map +1 -0
- package/dist/types-BAsCk5KU.d.mts +87 -0
- package/dist/types-BAsCk5KU.d.mts.map +1 -0
- package/dist/types-BuvSwT9Y.d.mts +375 -0
- package/dist/types-BuvSwT9Y.d.mts.map +1 -0
- package/dist/types-C4KT3Md2.d.mts +293 -0
- package/dist/types-C4KT3Md2.d.mts.map +1 -0
- package/dist/types-CVXHwIBB.d.mts +125 -0
- package/dist/types-CVXHwIBB.d.mts.map +1 -0
- package/dist/types-C_asjp1J.mjs.map +1 -1
- package/dist/types-CgfFGfO5.mjs +16 -0
- package/dist/types-CgfFGfO5.mjs.map +1 -0
- package/dist/types-Cj0_yZkn.mjs +18 -0
- package/dist/types-Cj0_yZkn.mjs.map +1 -0
- package/dist/types-CjftrmZR.d.mts +1741 -0
- package/dist/types-CjftrmZR.d.mts.map +1 -0
- package/dist/types-DKwRUA-x.d.mts +916 -0
- package/dist/types-DKwRUA-x.d.mts.map +1 -0
- package/dist/types-DwhEvIVb.mjs.map +1 -1
- package/dist/types-GwAyS5SH.d.mts +227 -0
- package/dist/types-GwAyS5SH.d.mts.map +1 -0
- package/dist/types-qHVygneX.mjs +77 -0
- package/dist/types-qHVygneX.mjs.map +1 -0
- package/dist/types-sUHaH7lC.mjs +37 -0
- package/dist/types-sUHaH7lC.mjs.map +1 -0
- package/dist/types-uU2YNYSt.d.mts +209 -0
- package/dist/types-uU2YNYSt.d.mts.map +1 -0
- package/dist/update-check-ABBJgg6M.mjs +161 -0
- package/dist/update-check-ABBJgg6M.mjs.map +1 -0
- package/dist/upload-attempts-DPFC4COv.mjs +32 -0
- package/dist/upload-attempts-DPFC4COv.mjs.map +1 -0
- package/dist/url-pattern-QATUE_rv.mjs +41 -0
- package/dist/url-pattern-QATUE_rv.mjs.map +1 -0
- package/dist/user-By8SzQxS.mjs +171 -0
- package/dist/user-By8SzQxS.mjs.map +1 -0
- package/dist/utils-D5uOi6WS.mjs +450 -0
- package/dist/utils-D5uOi6WS.mjs.map +1 -0
- package/dist/utils-Szp4iBQB.d.mts +376 -0
- package/dist/utils-Szp4iBQB.d.mts.map +1 -0
- package/dist/validate-DDvxy6qG.d.mts +468 -0
- package/dist/validate-DDvxy6qG.d.mts.map +1 -0
- package/dist/validate-Dz-TIOFB.mjs +524 -0
- package/dist/validate-Dz-TIOFB.mjs.map +1 -0
- package/dist/validation-Fc9ZSUS_.mjs +221 -0
- package/dist/validation-Fc9ZSUS_.mjs.map +1 -0
- package/dist/version-BZj18Q7G.mjs +9 -0
- package/dist/version-BZj18Q7G.mjs.map +1 -0
- package/dist/version-Bu6Nlbb5.mjs +7 -0
- package/dist/version-Bu6Nlbb5.mjs.map +1 -0
- package/dist/version-DqB7LIO7.mjs +49 -0
- package/dist/version-DqB7LIO7.mjs.map +1 -0
- package/dist/video-DytCnw3L.mjs +54 -0
- package/dist/video-DytCnw3L.mjs.map +1 -0
- package/dist/virtual-modules-DO954n7P.mjs +515 -0
- package/dist/virtual-modules-DO954n7P.mjs.map +1 -0
- package/dist/widgets-BUx_Mf2q.mjs +134 -0
- package/dist/widgets-BUx_Mf2q.mjs.map +1 -0
- package/dist/wxr-taxonomies-DbJtWrWM.mjs +454 -0
- package/dist/wxr-taxonomies-DbJtWrWM.mjs.map +1 -0
- package/dist/zod-generator--nlM0930.mjs +425 -0
- package/dist/zod-generator--nlM0930.mjs.map +1 -0
- package/package.json +5 -5
- package/src/api/handlers/content.ts +49 -18
- package/src/api/handlers/device-flow.ts +1 -3
- package/src/api/handlers/menus.ts +3 -3
- package/src/api/handlers/oauth-authorization.ts +1 -3
- package/src/astro/integration/admin-nav.ts +52 -0
- package/src/astro/integration/index.ts +7 -0
- package/src/astro/integration/runtime.ts +14 -0
- package/src/astro/integration/shims/use-sync-external-store-with-selector.js +2 -0
- package/src/astro/integration/shims/use-sync-external-store.js +4 -1
- package/src/astro/middleware/auth.ts +9 -2
- package/src/astro/routes/api/import/wordpress/analyze.ts +5 -29
- package/src/astro/routes/api/import/wordpress-plugin/execute.ts +3 -3
- package/src/astro/routes/api/media/file/[...key].ts +18 -4
- package/src/astro/routes/api/oauth/token.ts +5 -1
- package/src/astro/routes/api/widget-areas/[name]/reorder.ts +7 -1
- package/src/astro/routes/api/widget-areas/[name]/widgets/[id].ts +3 -1
- package/src/astro/routes/api/widget-areas/[name]/widgets.ts +2 -1
- package/src/astro/routes/api/widget-areas/[name].ts +2 -1
- package/src/astro/routes/api/widget-areas/index.ts +2 -1
- package/src/astro/types.ts +4 -3
- package/src/auth/api-tokens.ts +3 -0
- package/src/cleanup.ts +44 -0
- package/src/components/inline-bubble-menu.tsx +109 -95
- package/src/components/inline-image.tsx +54 -48
- package/src/database/dialect-helpers.ts +10 -3
- package/src/database/repositories/byline.ts +22 -14
- package/src/database/repositories/content.ts +17 -4
- package/src/database/repositories/media.ts +17 -0
- package/src/database/repositories/menu.ts +163 -132
- package/src/database/repositories/types.ts +3 -3
- package/src/database/types.ts +1 -1
- package/src/emdash-runtime.ts +23 -7
- package/src/import/utils.ts +15 -2
- package/src/index.ts +1 -0
- package/src/loader.ts +106 -95
- package/src/media/content-disposition.ts +56 -0
- package/src/media/normalize.ts +2 -0
- package/src/media/usage/content-fields.ts +2 -1
- package/src/menus/index.ts +137 -25
- package/src/object-cache/index.ts +22 -0
- package/src/plugin-test-runtime.ts +1 -0
- package/src/query.ts +44 -40
- package/src/schema/types.ts +7 -6
- package/src/search/fts-manager.ts +5 -3
- package/src/seed/apply.ts +52 -44
- package/src/seed/types.ts +3 -3
- package/src/taxonomies/index.ts +22 -51
- package/src/transfer/import/advance.ts +12 -1
- package/src/transfer/import/scaffold.ts +7 -1
- package/src/transfer/import/stages.ts +53 -2
- package/src/utils/revalidating-cache.ts +85 -0
- package/src/visual-editing/toolbar.ts +7 -2
- package/src/widgets/index.ts +27 -13
- package/dist/action-token-B1ds4laA.mjs +0 -26
- package/dist/action-token-B1ds4laA.mjs.map +0 -1
- package/dist/activation-sGF9br3X.mjs +0 -387
- package/dist/activation-sGF9br3X.mjs.map +0 -1
- package/dist/adapters-BOMSX9PU.d.mts +0 -173
- package/dist/adapters-BOMSX9PU.d.mts.map +0 -1
- package/dist/after-PcEvMY_6.mjs +0 -96
- package/dist/after-PcEvMY_6.mjs.map +0 -1
- package/dist/allowed-origins-CovsTkm3.mjs +0 -116
- package/dist/allowed-origins-CovsTkm3.mjs.map +0 -1
- package/dist/api-C_LxFnOm.mjs +0 -5077
- package/dist/api-C_LxFnOm.mjs.map +0 -1
- package/dist/api-tokens-C7l0GUAF.mjs +0 -3
- package/dist/api-tokens-DQ9Ee-vP.mjs +0 -173
- package/dist/api-tokens-DQ9Ee-vP.mjs.map +0 -1
- package/dist/apply-CLjfxvyH.mjs +0 -1758
- package/dist/apply-CLjfxvyH.mjs.map +0 -1
- package/dist/approvals-ocK89i4H.mjs +0 -460
- package/dist/approvals-ocK89i4H.mjs.map +0 -1
- package/dist/artifact-fetch-CgvvpoWQ.mjs +0 -659
- package/dist/artifact-fetch-CgvvpoWQ.mjs.map +0 -1
- package/dist/artifacts-DwOYYBQm.mjs +0 -323
- package/dist/artifacts-DwOYYBQm.mjs.map +0 -1
- package/dist/authoritative-records-LPtrIGOY.mjs +0 -5183
- package/dist/authoritative-records-LPtrIGOY.mjs.map +0 -1
- package/dist/authorize-CoDsRRp5.mjs +0 -74
- package/dist/authorize-CoDsRRp5.mjs.map +0 -1
- package/dist/backup-2Wj-hTCN.mjs +0 -246
- package/dist/backup-2Wj-hTCN.mjs.map +0 -1
- package/dist/block-types-C3gJEe7l.mjs +0 -132
- package/dist/block-types-C3gJEe7l.mjs.map +0 -1
- package/dist/block-values-CgbMtSGU.mjs +0 -215
- package/dist/block-values-CgbMtSGU.mjs.map +0 -1
- package/dist/byline-CzGZC2Zs.mjs +0 -922
- package/dist/byline-CzGZC2Zs.mjs.map +0 -1
- package/dist/byline-fields-B1qHvRps.mjs +0 -280
- package/dist/byline-fields-B1qHvRps.mjs.map +0 -1
- package/dist/byline-fields-vYd_4Q1e.mjs +0 -123
- package/dist/byline-fields-vYd_4Q1e.mjs.map +0 -1
- package/dist/bylines-BF555iIz.mjs +0 -150
- package/dist/bylines-BF555iIz.mjs.map +0 -1
- package/dist/bylines-DJx6IWWi.mjs +0 -234
- package/dist/bylines-DJx6IWWi.mjs.map +0 -1
- package/dist/cache-BWzswWB-.mjs +0 -151
- package/dist/cache-BWzswWB-.mjs.map +0 -1
- package/dist/canonical-DjF_z6GI.mjs +0 -174
- package/dist/canonical-DjF_z6GI.mjs.map +0 -1
- package/dist/capture-triggers-D7g3fOZj.mjs +0 -362
- package/dist/capture-triggers-D7g3fOZj.mjs.map +0 -1
- package/dist/challenge-store-Cfjdvw86.mjs +0 -51
- package/dist/challenge-store-Cfjdvw86.mjs.map +0 -1
- package/dist/checksum-BF4acJwn.mjs +0 -162
- package/dist/checksum-BF4acJwn.mjs.map +0 -1
- package/dist/chrome-tags-BDs29G3g.mjs +0 -24
- package/dist/chrome-tags-BDs29G3g.mjs.map +0 -1
- package/dist/chunks-CYBOL-zn.mjs +0 -25
- package/dist/chunks-CYBOL-zn.mjs.map +0 -1
- package/dist/collection-slugs-cache-B2J5aESO.mjs +0 -91
- package/dist/collection-slugs-cache-B2J5aESO.mjs.map +0 -1
- package/dist/comment-DV7dybcs.mjs +0 -335
- package/dist/comment-DV7dybcs.mjs.map +0 -1
- package/dist/comment-reaction-CWwqiT6x.mjs +0 -85
- package/dist/comment-reaction-CWwqiT6x.mjs.map +0 -1
- package/dist/comments-DVjWJm8X.mjs +0 -99
- package/dist/comments-DVjWJm8X.mjs.map +0 -1
- package/dist/comments-Q-ILHCEI.mjs +0 -195
- package/dist/comments-Q-ILHCEI.mjs.map +0 -1
- package/dist/components-DnOmvvgg.mjs +0 -112
- package/dist/components-DnOmvvgg.mjs.map +0 -1
- package/dist/config-9IzA83_U.d.mts +0 -6811
- package/dist/config-9IzA83_U.d.mts.map +0 -1
- package/dist/config-BdQzFtmR.mjs +0 -228
- package/dist/config-BdQzFtmR.mjs.map +0 -1
- package/dist/config-Cs2RBkJ6.d.mts +0 -41
- package/dist/config-Cs2RBkJ6.d.mts.map +0 -1
- package/dist/connection-CiXgZyCY.mjs +0 -36
- package/dist/connection-CiXgZyCY.mjs.map +0 -1
- package/dist/content-Dt0Os_WQ.mjs +0 -2109
- package/dist/content-Dt0Os_WQ.mjs.map +0 -1
- package/dist/content-list-query-BK26u9Ly.d.mts +0 -26
- package/dist/content-list-query-BK26u9Ly.d.mts.map +0 -1
- package/dist/content-policy-BLDbNJOb.mjs +0 -46
- package/dist/content-policy-BLDbNJOb.mjs.map +0 -1
- package/dist/content-repair-CjwbLy4m.mjs +0 -442
- package/dist/content-repair-CjwbLy4m.mjs.map +0 -1
- package/dist/context-ErV7UdQY.mjs +0 -2089
- package/dist/context-ErV7UdQY.mjs.map +0 -1
- package/dist/credits-BRyjafiF.mjs +0 -110
- package/dist/credits-BRyjafiF.mjs.map +0 -1
- package/dist/cron-Bm5xa7tv.mjs +0 -306
- package/dist/cron-Bm5xa7tv.mjs.map +0 -1
- package/dist/dashboard-DVxQ5XiI.mjs +0 -168
- package/dist/dashboard-DVxQ5XiI.mjs.map +0 -1
- package/dist/default-B9Tf2n94.mjs +0 -81
- package/dist/default-B9Tf2n94.mjs.map +0 -1
- package/dist/deferred-tasks-CpPEqsga.d.mts +0 -9
- package/dist/deferred-tasks-CpPEqsga.d.mts.map +0 -1
- package/dist/dev-typegen-ZeWYV8Jp.mjs +0 -29
- package/dist/dev-typegen-ZeWYV8Jp.mjs.map +0 -1
- package/dist/device-flow-BbYNZ9Xi.mjs +0 -521
- package/dist/device-flow-BbYNZ9Xi.mjs.map +0 -1
- package/dist/dialect-helpers-7_IqPdh9.mjs +0 -307
- package/dist/dialect-helpers-7_IqPdh9.mjs.map +0 -1
- package/dist/digest-DlBa7kJl.mjs +0 -194
- package/dist/digest-DlBa7kJl.mjs.map +0 -1
- package/dist/direct-executor-5T8gkhvA.mjs +0 -117
- package/dist/direct-executor-5T8gkhvA.mjs.map +0 -1
- package/dist/dist-DY0aOmAP.mjs +0 -810
- package/dist/dist-DY0aOmAP.mjs.map +0 -1
- package/dist/email-console-v3OM8It-.mjs +0 -50
- package/dist/email-console-v3OM8It-.mjs.map +0 -1
- package/dist/email-locale-CoZo-oZx.mjs +0 -25
- package/dist/email-locale-CoZo-oZx.mjs.map +0 -1
- package/dist/emdash-runtime-DwezbIqQ.mjs +0 -4392
- package/dist/emdash-runtime-DwezbIqQ.mjs.map +0 -1
- package/dist/enrich-C3XIJi0O.mjs +0 -194
- package/dist/enrich-C3XIJi0O.mjs.map +0 -1
- package/dist/entry-lock-CY7XpdSw.d.mts +0 -4568
- package/dist/entry-lock-CY7XpdSw.d.mts.map +0 -1
- package/dist/entry-lock-DDuWaAiP.mjs +0 -1211
- package/dist/entry-lock-DDuWaAiP.mjs.map +0 -1
- package/dist/entry-lock-D_Og9Gy3.mjs +0 -163
- package/dist/entry-lock-D_Og9Gy3.mjs.map +0 -1
- package/dist/entry-locks-Cp8_BcQQ.mjs +0 -167
- package/dist/entry-locks-Cp8_BcQQ.mjs.map +0 -1
- package/dist/env-types-Br8uywYA.mjs +0 -38
- package/dist/env-types-Br8uywYA.mjs.map +0 -1
- package/dist/error-CT2SsX5S.mjs +0 -90
- package/dist/error-CT2SsX5S.mjs.map +0 -1
- package/dist/errors-BMaCpLeS.mjs +0 -479
- package/dist/errors-BMaCpLeS.mjs.map +0 -1
- package/dist/errors-DlJwot7q.mjs +0 -120
- package/dist/errors-DlJwot7q.mjs.map +0 -1
- package/dist/escape-BfbDyuQ-.mjs +0 -9
- package/dist/escape-BfbDyuQ-.mjs.map +0 -1
- package/dist/fence-BOD3SxZG.mjs +0 -162
- package/dist/fence-BOD3SxZG.mjs.map +0 -1
- package/dist/field-defs-cache-C7sR7ZeU.mjs +0 -77
- package/dist/field-defs-cache-C7sR7ZeU.mjs.map +0 -1
- package/dist/field-map-C_rDXfdJ.mjs +0 -84
- package/dist/field-map-C_rDXfdJ.mjs.map +0 -1
- package/dist/fts-manager-BzFo0xx6.mjs +0 -483
- package/dist/fts-manager-BzFo0xx6.mjs.map +0 -1
- package/dist/gc-B_c3DPpi.mjs +0 -75
- package/dist/gc-B_c3DPpi.mjs.map +0 -1
- package/dist/hash-A-o2ZX8O.mjs +0 -37
- package/dist/hash-A-o2ZX8O.mjs.map +0 -1
- package/dist/hreflang-BpUK9Lcu.mjs +0 -105
- package/dist/hreflang-BpUK9Lcu.mjs.map +0 -1
- package/dist/hreflang-D07R-RbI.d.mts +0 -50
- package/dist/hreflang-D07R-RbI.d.mts.map +0 -1
- package/dist/http-route-dispatch-C2Ep2Uf6.mjs +0 -342
- package/dist/http-route-dispatch-C2Ep2Uf6.mjs.map +0 -1
- package/dist/identity-BivQ8wkV.mjs +0 -35
- package/dist/identity-BivQ8wkV.mjs.map +0 -1
- package/dist/import-B4UvHNJz.mjs +0 -2126
- package/dist/import-B4UvHNJz.mjs.map +0 -1
- package/dist/index-C37Ty40w.d.mts +0 -623
- package/dist/index-C37Ty40w.d.mts.map +0 -1
- package/dist/install-finalization-BbYaB4wj.mjs +0 -58
- package/dist/install-finalization-BbYaB4wj.mjs.map +0 -1
- package/dist/json-recordset-BjYIWFkV.mjs +0 -12
- package/dist/json-recordset-BjYIWFkV.mjs.map +0 -1
- package/dist/json-schema-Cde7le0s.mjs +0 -15
- package/dist/json-schema-Cde7le0s.mjs.map +0 -1
- package/dist/keys-CusTXpw-.mjs +0 -61
- package/dist/keys-CusTXpw-.mjs.map +0 -1
- package/dist/kinds-DogmNB6n.mjs +0 -974
- package/dist/kinds-DogmNB6n.mjs.map +0 -1
- package/dist/lifecycle-BLCoCz4T.mjs +0 -25
- package/dist/lifecycle-BLCoCz4T.mjs.map +0 -1
- package/dist/load-Dds3KhXr.mjs +0 -28
- package/dist/load-Dds3KhXr.mjs.map +0 -1
- package/dist/loader-D4w4XE7q.mjs +0 -1420
- package/dist/loader-D4w4XE7q.mjs.map +0 -1
- package/dist/loops-IYgzQdQu.mjs +0 -205
- package/dist/loops-IYgzQdQu.mjs.map +0 -1
- package/dist/manifest-builder-CGF5kujD.mjs +0 -196
- package/dist/manifest-builder-CGF5kujD.mjs.map +0 -1
- package/dist/manifest-schema-B0BxPSjB.mjs +0 -497
- package/dist/manifest-schema-B0BxPSjB.mjs.map +0 -1
- package/dist/marketplace-DNvEGLqU.mjs +0 -257
- package/dist/marketplace-DNvEGLqU.mjs.map +0 -1
- package/dist/media-BL9MRrSG.mjs +0 -294
- package/dist/media-BL9MRrSG.mjs.map +0 -1
- package/dist/media-B_x5B9EA.mjs +0 -373
- package/dist/media-B_x5B9EA.mjs.map +0 -1
- package/dist/media-allowlist-CpmqBbIQ.mjs +0 -45
- package/dist/media-allowlist-CpmqBbIQ.mjs.map +0 -1
- package/dist/media-folders-CNs_A_B-.mjs +0 -210
- package/dist/media-folders-CNs_A_B-.mjs.map +0 -1
- package/dist/media-qTTHVkls.mjs +0 -416
- package/dist/media-qTTHVkls.mjs.map +0 -1
- package/dist/media-url-GJboA1fl.mjs +0 -43
- package/dist/media-url-GJboA1fl.mjs.map +0 -1
- package/dist/media-usage-ClWgrX0d.mjs +0 -282
- package/dist/media-usage-ClWgrX0d.mjs.map +0 -1
- package/dist/media-usage-activation-B8Fjtq0h.mjs +0 -78
- package/dist/media-usage-activation-B8Fjtq0h.mjs.map +0 -1
- package/dist/media-usage-work-L8-Au4j-.mjs +0 -1036
- package/dist/media-usage-work-L8-Au4j-.mjs.map +0 -1
- package/dist/media-usage-work-LXgze5j9.mjs +0 -151
- package/dist/media-usage-work-LXgze5j9.mjs.map +0 -1
- package/dist/menus-BAxcbsbv.mjs +0 -818
- package/dist/menus-BAxcbsbv.mjs.map +0 -1
- package/dist/menus-BI6oBXco.mjs +0 -92
- package/dist/menus-BI6oBXco.mjs.map +0 -1
- package/dist/menus-fvGFd4m6.mjs +0 -3725
- package/dist/menus-fvGFd4m6.mjs.map +0 -1
- package/dist/mime-DwhtRyUt.mjs +0 -81
- package/dist/mime-DwhtRyUt.mjs.map +0 -1
- package/dist/mode-DIDSUwuN.mjs +0 -23
- package/dist/mode-DIDSUwuN.mjs.map +0 -1
- package/dist/node-sqlite-compat-Ddr_mlR9.mjs +0 -63
- package/dist/node-sqlite-compat-Ddr_mlR9.mjs.map +0 -1
- package/dist/normalize-Ip_hFAm8.mjs +0 -216
- package/dist/normalize-Ip_hFAm8.mjs.map +0 -1
- package/dist/oauth-authorization-CcMgeT8R.mjs +0 -274
- package/dist/oauth-authorization-CcMgeT8R.mjs.map +0 -1
- package/dist/oauth-clients-C_osi0PU.mjs +0 -266
- package/dist/oauth-clients-C_osi0PU.mjs.map +0 -1
- package/dist/oauth-state-store-DGLP-6CK.mjs +0 -50
- package/dist/oauth-state-store-DGLP-6CK.mjs.map +0 -1
- package/dist/oauth-user-lookup-z77Ee0Hm.mjs +0 -26
- package/dist/oauth-user-lookup-z77Ee0Hm.mjs.map +0 -1
- package/dist/object-cache-EjasjtoQ.mjs +0 -586
- package/dist/object-cache-EjasjtoQ.mjs.map +0 -1
- package/dist/options-CmUpkyKW.d.mts +0 -81
- package/dist/options-CmUpkyKW.d.mts.map +0 -1
- package/dist/ownership-DCk5NutQ.mjs +0 -12
- package/dist/ownership-DCk5NutQ.mjs.map +0 -1
- package/dist/parse-2W-E2f7w.mjs +0 -81
- package/dist/parse-2W-E2f7w.mjs.map +0 -1
- package/dist/parse-6pN8Xqg5.d.mts +0 -176
- package/dist/parse-6pN8Xqg5.d.mts.map +0 -1
- package/dist/passkey-config-DTTZB6EI.mjs +0 -46
- package/dist/passkey-config-DTTZB6EI.mjs.map +0 -1
- package/dist/paths-CQA62503.mjs +0 -77
- package/dist/paths-CQA62503.mjs.map +0 -1
- package/dist/placeholder-BlfXkucE.d.mts +0 -313
- package/dist/placeholder-BlfXkucE.d.mts.map +0 -1
- package/dist/plan-B95eiwnF.mjs +0 -135
- package/dist/plan-B95eiwnF.mjs.map +0 -1
- package/dist/plugin-tool-name-BDA7m4Xa.mjs +0 -27
- package/dist/plugin-tool-name-BDA7m4Xa.mjs.map +0 -1
- package/dist/plugins-BhxLJ008.mjs +0 -261
- package/dist/plugins-BhxLJ008.mjs.map +0 -1
- package/dist/policy-DOJ2sPqB.mjs +0 -53
- package/dist/policy-DOJ2sPqB.mjs.map +0 -1
- package/dist/portable-text-RCMpCj47.mjs +0 -311
- package/dist/portable-text-RCMpCj47.mjs.map +0 -1
- package/dist/preview-DFwL5APO.mjs +0 -107
- package/dist/preview-DFwL5APO.mjs.map +0 -1
- package/dist/protocol-B-ztxp_y.d.mts +0 -65
- package/dist/protocol-B-ztxp_y.d.mts.map +0 -1
- package/dist/public-plugin-api-routes-ik4fPZMv.mjs +0 -316
- package/dist/public-plugin-api-routes-ik4fPZMv.mjs.map +0 -1
- package/dist/public-submission-C5JZIykp.mjs +0 -251
- package/dist/public-submission-C5JZIykp.mjs.map +0 -1
- package/dist/public-url-CQwzRljH.mjs +0 -101
- package/dist/public-url-CQwzRljH.mjs.map +0 -1
- package/dist/query-DuwyFr5Z.mjs +0 -41
- package/dist/query-DuwyFr5Z.mjs.map +0 -1
- package/dist/query-eR_Nz70M.mjs +0 -1157
- package/dist/query-eR_Nz70M.mjs.map +0 -1
- package/dist/range-BQWPjWgQ.mjs +0 -51
- package/dist/range-BQWPjWgQ.mjs.map +0 -1
- package/dist/rate-limit-mPKeQ3sm.mjs +0 -127
- package/dist/rate-limit-mPKeQ3sm.mjs.map +0 -1
- package/dist/receipt-CmUpyuW5.mjs +0 -43
- package/dist/receipt-CmUpyuW5.mjs.map +0 -1
- package/dist/redirect-BtiMkehU.mjs +0 -19
- package/dist/redirect-BtiMkehU.mjs.map +0 -1
- package/dist/redirect-DcmNMvOs.mjs +0 -423
- package/dist/redirect-DcmNMvOs.mjs.map +0 -1
- package/dist/redirect-paths-K5i3xYfR.mjs +0 -36
- package/dist/redirect-paths-K5i3xYfR.mjs.map +0 -1
- package/dist/redirects-BA_TvtuH.mjs +0 -148
- package/dist/redirects-BA_TvtuH.mjs.map +0 -1
- package/dist/redirects-BIrRvgn4.mjs +0 -446
- package/dist/redirects-BIrRvgn4.mjs.map +0 -1
- package/dist/registry-DymfZkAN.mjs +0 -8374
- package/dist/registry-DymfZkAN.mjs.map +0 -1
- package/dist/relations-DrEs3Sc1.mjs +0 -789
- package/dist/relations-DrEs3Sc1.mjs.map +0 -1
- package/dist/request-meta-o8RIf9pa.mjs +0 -141
- package/dist/request-meta-o8RIf9pa.mjs.map +0 -1
- package/dist/resolve-CVy9xgy_.mjs +0 -102
- package/dist/resolve-CVy9xgy_.mjs.map +0 -1
- package/dist/route-cache-DAG5dPhh.mjs +0 -20
- package/dist/route-cache-DAG5dPhh.mjs.map +0 -1
- package/dist/route-wire-Xbsu8Vih.mjs +0 -197
- package/dist/route-wire-Xbsu8Vih.mjs.map +0 -1
- package/dist/routes-YQkSOsws.mjs +0 -272
- package/dist/routes-YQkSOsws.mjs.map +0 -1
- package/dist/runner-CLorw5vo.mjs +0 -6669
- package/dist/runner-CLorw5vo.mjs.map +0 -1
- package/dist/runner-g1A9P-wD.d.mts +0 -73
- package/dist/runner-g1A9P-wD.d.mts.map +0 -1
- package/dist/schema-Bss8qImF.mjs +0 -13
- package/dist/schema-Bss8qImF.mjs.map +0 -1
- package/dist/schema-C036pqEw.mjs +0 -815
- package/dist/schema-C036pqEw.mjs.map +0 -1
- package/dist/scopes-C_SoYl9x.mjs +0 -34
- package/dist/scopes-C_SoYl9x.mjs.map +0 -1
- package/dist/search-uNqCgePJ.mjs +0 -450
- package/dist/search-uNqCgePJ.mjs.map +0 -1
- package/dist/secrets-Cc_O3Kp-.mjs +0 -369
- package/dist/secrets-Cc_O3Kp-.mjs.map +0 -1
- package/dist/sections-BLusMa96.mjs +0 -346
- package/dist/sections-BLusMa96.mjs.map +0 -1
- package/dist/seo-BodxIpws.mjs +0 -188
- package/dist/seo-BodxIpws.mjs.map +0 -1
- package/dist/seo-DaMYIQY8.mjs +0 -133
- package/dist/seo-DaMYIQY8.mjs.map +0 -1
- package/dist/service-BuM1BRsA.mjs +0 -150
- package/dist/service-BuM1BRsA.mjs.map +0 -1
- package/dist/session-user-2DpQDMKw.mjs +0 -61
- package/dist/session-user-2DpQDMKw.mjs.map +0 -1
- package/dist/settings-B3ZmPF_8.mjs +0 -73
- package/dist/settings-B3ZmPF_8.mjs.map +0 -1
- package/dist/settings-P5hwPX6_.mjs +0 -66
- package/dist/settings-P5hwPX6_.mjs.map +0 -1
- package/dist/settings-yIqoN-Ok.mjs +0 -519
- package/dist/settings-yIqoN-Ok.mjs.map +0 -1
- package/dist/setup-complete-eu6MUQnt.mjs +0 -65
- package/dist/setup-complete-eu6MUQnt.mjs.map +0 -1
- package/dist/setup-nonce-CyPOapqY.mjs +0 -25
- package/dist/setup-nonce-CyPOapqY.mjs.map +0 -1
- package/dist/site-domain-8lEJl_0U.mjs +0 -131
- package/dist/site-domain-8lEJl_0U.mjs.map +0 -1
- package/dist/site-settings-uPkW0e6o.mjs +0 -50
- package/dist/site-settings-uPkW0e6o.mjs.map +0 -1
- package/dist/site-url-25SGVXwL.mjs +0 -45
- package/dist/site-url-25SGVXwL.mjs.map +0 -1
- package/dist/sitemap-name-DTK7CYnY.mjs +0 -26
- package/dist/sitemap-name-DTK7CYnY.mjs.map +0 -1
- package/dist/slug-BEDl2IJY.mjs +0 -16
- package/dist/slug-BEDl2IJY.mjs.map +0 -1
- package/dist/snapshot-CvkIBRLY.mjs +0 -414
- package/dist/snapshot-CvkIBRLY.mjs.map +0 -1
- package/dist/ssrf-mcCKMH6B.mjs +0 -406
- package/dist/ssrf-mcCKMH6B.mjs.map +0 -1
- package/dist/stage-BQfGzGOy.mjs +0 -662
- package/dist/stage-BQfGzGOy.mjs.map +0 -1
- package/dist/staged-B5vQGeSf.mjs +0 -686
- package/dist/staged-B5vQGeSf.mjs.map +0 -1
- package/dist/state-dO6t6OxV.mjs +0 -178
- package/dist/state-dO6t6OxV.mjs.map +0 -1
- package/dist/status-DSURZwKS.mjs +0 -30
- package/dist/status-DSURZwKS.mjs.map +0 -1
- package/dist/storage-query-Cy0SZ8iG.d.mts +0 -1619
- package/dist/storage-query-Cy0SZ8iG.d.mts.map +0 -1
- package/dist/tar-DWzcUZ_Q.mjs +0 -449
- package/dist/tar-DWzcUZ_Q.mjs.map +0 -1
- package/dist/target-C9htUbrT.mjs +0 -27
- package/dist/target-C9htUbrT.mjs.map +0 -1
- package/dist/taxonomies-By2aGvq2.mjs +0 -729
- package/dist/taxonomies-By2aGvq2.mjs.map +0 -1
- package/dist/taxonomies-CVRd_jz0.mjs +0 -937
- package/dist/taxonomies-CVRd_jz0.mjs.map +0 -1
- package/dist/taxonomy-BG_xu2Qf.mjs +0 -563
- package/dist/taxonomy-BG_xu2Qf.mjs.map +0 -1
- package/dist/tokens-U5vzgSrM.mjs +0 -171
- package/dist/tokens-U5vzgSrM.mjs.map +0 -1
- package/dist/transfer-DA0OSfaT.mjs +0 -8873
- package/dist/transfer-DA0OSfaT.mjs.map +0 -1
- package/dist/transfer-Pyf3d7ka.mjs +0 -166
- package/dist/transfer-Pyf3d7ka.mjs.map +0 -1
- package/dist/transfer-download-cX7SuWEy.mjs +0 -33
- package/dist/transfer-download-cX7SuWEy.mjs.map +0 -1
- package/dist/transformations-DczubD4j.mjs +0 -196
- package/dist/transformations-DczubD4j.mjs.map +0 -1
- package/dist/transport-DtIrjEFO.mjs +0 -137
- package/dist/transport-DtIrjEFO.mjs.map +0 -1
- package/dist/trusted-proxy-CDRd5Kmw.mjs +0 -51
- package/dist/trusted-proxy-CDRd5Kmw.mjs.map +0 -1
- package/dist/turnstile-Ct5YuFNY.mjs +0 -58
- package/dist/turnstile-Ct5YuFNY.mjs.map +0 -1
- package/dist/types-Bgujop4S.d.mts +0 -374
- package/dist/types-Bgujop4S.d.mts.map +0 -1
- package/dist/types-BirHUEXt.mjs +0 -18
- package/dist/types-BirHUEXt.mjs.map +0 -1
- package/dist/types-BqJgTL_y.d.mts +0 -293
- package/dist/types-BqJgTL_y.d.mts.map +0 -1
- package/dist/types-C-lrOt9T.d.mts +0 -87
- package/dist/types-C-lrOt9T.d.mts.map +0 -1
- package/dist/types-CCEHAhOv.d.mts +0 -916
- package/dist/types-CCEHAhOv.d.mts.map +0 -1
- package/dist/types-CLVwYRBr.d.mts +0 -227
- package/dist/types-CLVwYRBr.d.mts.map +0 -1
- package/dist/types-DVbTb4Hk.mjs +0 -77
- package/dist/types-DVbTb4Hk.mjs.map +0 -1
- package/dist/types-Ddku19Zw.d.mts +0 -209
- package/dist/types-Ddku19Zw.d.mts.map +0 -1
- package/dist/types-FIiGQ3PE.mjs +0 -16
- package/dist/types-FIiGQ3PE.mjs.map +0 -1
- package/dist/types-OauzCOY0.mjs +0 -37
- package/dist/types-OauzCOY0.mjs.map +0 -1
- package/dist/types-mQGTpP-4.d.mts +0 -1741
- package/dist/types-mQGTpP-4.d.mts.map +0 -1
- package/dist/types-nbjz3Mgm.d.mts +0 -125
- package/dist/types-nbjz3Mgm.d.mts.map +0 -1
- package/dist/update-check-hW32-0pf.mjs +0 -161
- package/dist/update-check-hW32-0pf.mjs.map +0 -1
- package/dist/upload-attempts-Bpik1TLF.mjs +0 -32
- package/dist/upload-attempts-Bpik1TLF.mjs.map +0 -1
- package/dist/url-pattern-CJeCyNij.mjs +0 -41
- package/dist/url-pattern-CJeCyNij.mjs.map +0 -1
- package/dist/user-nQInBZbE.mjs +0 -171
- package/dist/user-nQInBZbE.mjs.map +0 -1
- package/dist/utils-govudc_U.mjs +0 -442
- package/dist/utils-govudc_U.mjs.map +0 -1
- package/dist/validate-BxLvcDYh.mjs +0 -524
- package/dist/validate-BxLvcDYh.mjs.map +0 -1
- package/dist/validate-mnoVfASU.d.mts +0 -468
- package/dist/validate-mnoVfASU.d.mts.map +0 -1
- package/dist/validation-DQDEvh87.mjs +0 -221
- package/dist/validation-DQDEvh87.mjs.map +0 -1
- package/dist/version-BOFfLiVT.mjs +0 -49
- package/dist/version-BOFfLiVT.mjs.map +0 -1
- package/dist/version-Dcvx_C9g.mjs +0 -7
- package/dist/version-Dcvx_C9g.mjs.map +0 -1
- package/dist/version-DzTJ3gD7.mjs +0 -9
- package/dist/version-DzTJ3gD7.mjs.map +0 -1
- package/dist/video-BX7AI5nJ.mjs +0 -54
- package/dist/video-BX7AI5nJ.mjs.map +0 -1
- package/dist/virtual-modules-CU29aip9.mjs +0 -515
- package/dist/virtual-modules-CU29aip9.mjs.map +0 -1
- package/dist/widgets-HIeFmZxt.mjs +0 -121
- package/dist/widgets-HIeFmZxt.mjs.map +0 -1
- package/dist/wxr-taxonomies-DyOGhl8W.mjs +0 -454
- package/dist/wxr-taxonomies-DyOGhl8W.mjs.map +0 -1
- package/dist/zod-generator-VxCPVDpo.mjs +0 -425
- package/dist/zod-generator-VxCPVDpo.mjs.map +0 -1
- /package/dist/{ssrf-BBXcxG-f.mjs → ssrf-DM0E-D_8.mjs} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors-8gJqv-XV.mjs","names":[],"sources":["../src/api/errors.ts"],"sourcesContent":["/**\n * Typed error codes and status mapping for the EmDash REST API.\n *\n * All handler-level and route-level error codes are defined here.\n * Routes and handlers should import error codes from this module\n * instead of using ad-hoc strings.\n */\n\nimport { TransferErrorCode, transferErrorStatus } from \"../transfer/errors.js\";\n\nexport const ErrorCode = {\n\t// Shared (used across domains)\n\tNOT_FOUND: \"NOT_FOUND\",\n\tVALIDATION_ERROR: \"VALIDATION_ERROR\",\n\tUNSUPPORTED_FIELD_TYPE: \"UNSUPPORTED_FIELD_TYPE\",\n\tINVALID_INPUT: \"INVALID_INPUT\",\n\tINVALID_JSON: \"INVALID_JSON\",\n\tINVALID_CURSOR: \"INVALID_CURSOR\",\n\tCONFLICT: \"CONFLICT\",\n\tSLUG_CONFLICT: \"SLUG_CONFLICT\",\n\tNOT_CONFIGURED: \"NOT_CONFIGURED\",\n\tBINDING_NOT_FOUND: \"BINDING_NOT_FOUND\",\n\tCONFIGURATION_ERROR: \"CONFIGURATION_ERROR\",\n\tUNAUTHORIZED: \"UNAUTHORIZED\",\n\tFORBIDDEN: \"FORBIDDEN\",\n\tRATE_LIMITED: \"RATE_LIMITED\",\n\tNOT_AUTHENTICATED: \"NOT_AUTHENTICATED\",\n\tNOT_IMPLEMENTED: \"NOT_IMPLEMENTED\",\n\tNOT_SUPPORTED: \"NOT_SUPPORTED\",\n\tMISSING_PARAM: \"MISSING_PARAM\",\n\tDOMAIN_CHECK_FAILED: \"DOMAIN_CHECK_FAILED\",\n\tCSRF_REJECTED: \"CSRF_REJECTED\",\n\n\t// Content\n\tCONTENT_CREATE_ERROR: \"CONTENT_CREATE_ERROR\",\n\tCONTENT_UPDATE_ERROR: \"CONTENT_UPDATE_ERROR\",\n\tSAVE_REJECTED: \"SAVE_REJECTED\",\n\tPUBLISH_REJECTED: \"PUBLISH_REJECTED\",\n\tSCHEDULE_REJECTED: \"SCHEDULE_REJECTED\",\n\tUNPUBLISH_REJECTED: \"UNPUBLISH_REJECTED\",\n\tCONTENT_HOOK_ERROR: \"CONTENT_HOOK_ERROR\",\n\tCONTENT_DELETE_ERROR: \"CONTENT_DELETE_ERROR\",\n\tCONTENT_LIST_ERROR: \"CONTENT_LIST_ERROR\",\n\tCONTENT_GET_ERROR: \"CONTENT_GET_ERROR\",\n\tCONTENT_DUPLICATE_ERROR: \"CONTENT_DUPLICATE_ERROR\",\n\tCONTENT_RESTORE_ERROR: \"CONTENT_RESTORE_ERROR\",\n\tCONTENT_PUBLISH_ERROR: \"CONTENT_PUBLISH_ERROR\",\n\tCONTENT_UNPUBLISH_ERROR: \"CONTENT_UNPUBLISH_ERROR\",\n\tCONTENT_SCHEDULE_ERROR: \"CONTENT_SCHEDULE_ERROR\",\n\tCONTENT_UNSCHEDULE_ERROR: \"CONTENT_UNSCHEDULE_ERROR\",\n\tCONTENT_DISCARD_DRAFT_ERROR: \"CONTENT_DISCARD_DRAFT_ERROR\",\n\tCONTENT_COMPARE_ERROR: \"CONTENT_COMPARE_ERROR\",\n\tCONTENT_TRANSLATIONS_ERROR: \"CONTENT_TRANSLATIONS_ERROR\",\n\tCONTENT_COUNT_ERROR: \"CONTENT_COUNT_ERROR\",\n\n\t// Revisions\n\tREVISION_LIST_ERROR: \"REVISION_LIST_ERROR\",\n\tREVISION_GET_ERROR: \"REVISION_GET_ERROR\",\n\tREVISION_RESTORE_ERROR: \"REVISION_RESTORE_ERROR\",\n\tINVALID_REVISION: \"INVALID_REVISION\",\n\n\t// Schema\n\tSCHEMA_LIST_ERROR: \"SCHEMA_LIST_ERROR\",\n\tSCHEMA_GET_ERROR: \"SCHEMA_GET_ERROR\",\n\tSCHEMA_CREATE_ERROR: \"SCHEMA_CREATE_ERROR\",\n\tSCHEMA_UPDATE_ERROR: \"SCHEMA_UPDATE_ERROR\",\n\tSCHEMA_DELETE_ERROR: \"SCHEMA_DELETE_ERROR\",\n\tSCHEMA_EXPORT_ERROR: \"SCHEMA_EXPORT_ERROR\",\n\tSCHEMA_FIELD_LIST_ERROR: \"SCHEMA_FIELD_LIST_ERROR\",\n\tSCHEMA_FIELD_GET_ERROR: \"SCHEMA_FIELD_GET_ERROR\",\n\tSCHEMA_FIELD_CREATE_ERROR: \"SCHEMA_FIELD_CREATE_ERROR\",\n\tSCHEMA_FIELD_UPDATE_ERROR: \"SCHEMA_FIELD_UPDATE_ERROR\",\n\tSCHEMA_FIELD_DELETE_ERROR: \"SCHEMA_FIELD_DELETE_ERROR\",\n\tSCHEMA_FIELD_REORDER_ERROR: \"SCHEMA_FIELD_REORDER_ERROR\",\n\tBLOCK_TYPE_NOT_FOUND: \"BLOCK_TYPE_NOT_FOUND\",\n\tBLOCK_TYPE_EXISTS: \"BLOCK_TYPE_EXISTS\",\n\tBLOCK_TYPE_BREAKING_CHANGE: \"BLOCK_TYPE_BREAKING_CHANGE\",\n\tBLOCK_TYPE_VERSION_CONFLICT: \"BLOCK_TYPE_VERSION_CONFLICT\",\n\t// Byline schema (Discussion #1174). Reuses RESERVED_SLUG, INVALID_SLUG,\n\t// INVALID_TYPE, FIELD_EXISTS, NOT_FOUND, VALIDATION_ERROR where the\n\t// semantics match; the two below are byline-domain specific:\n\tTRANSLATABLE_LOCKED: \"TRANSLATABLE_LOCKED\",\n\tREORDER_MISMATCH: \"REORDER_MISMATCH\",\n\tORPHAN_LIST_ERROR: \"ORPHAN_LIST_ERROR\",\n\tORPHAN_REGISTER_ERROR: \"ORPHAN_REGISTER_ERROR\",\n\tCOLLECTION_EXISTS: \"COLLECTION_EXISTS\",\n\tCOLLECTION_NOT_FOUND: \"COLLECTION_NOT_FOUND\",\n\tCOLLECTION_SCHEMA_MISMATCH: \"COLLECTION_SCHEMA_MISMATCH\",\n\tCOLLECTION_TABLE_ORPHANED: \"COLLECTION_TABLE_ORPHANED\",\n\tTABLE_NOT_FOUND: \"TABLE_NOT_FOUND\",\n\tFIELD_EXISTS: \"FIELD_EXISTS\",\n\tFIELD_TYPE_COLUMN_CHANGE: \"FIELD_TYPE_COLUMN_CHANGE\",\n\tRESERVED_SLUG: \"RESERVED_SLUG\",\n\tINVALID_SLUG: \"INVALID_SLUG\",\n\tCREATE_FAILED: \"CREATE_FAILED\",\n\tUPDATE_FAILED: \"UPDATE_FAILED\",\n\tREGISTER_FAILED: \"REGISTER_FAILED\",\n\n\t// Media\n\tMEDIA_LIST_ERROR: \"MEDIA_LIST_ERROR\",\n\tMEDIA_GET_ERROR: \"MEDIA_GET_ERROR\",\n\tMEDIA_CREATE_ERROR: \"MEDIA_CREATE_ERROR\",\n\tMEDIA_UPDATE_ERROR: \"MEDIA_UPDATE_ERROR\",\n\tMEDIA_REPLACE_ERROR: \"MEDIA_REPLACE_ERROR\",\n\tMEDIA_REPLACE_METADATA_ERROR: \"MEDIA_REPLACE_METADATA_ERROR\",\n\tMEDIA_DELETE_ERROR: \"MEDIA_DELETE_ERROR\",\n\tMEDIA_FOLDER_LIST_ERROR: \"MEDIA_FOLDER_LIST_ERROR\",\n\tMEDIA_FOLDER_GET_ERROR: \"MEDIA_FOLDER_GET_ERROR\",\n\tMEDIA_FOLDER_CREATE_ERROR: \"MEDIA_FOLDER_CREATE_ERROR\",\n\tMEDIA_FOLDER_UPDATE_ERROR: \"MEDIA_FOLDER_UPDATE_ERROR\",\n\tMEDIA_FOLDER_DELETE_ERROR: \"MEDIA_FOLDER_DELETE_ERROR\",\n\tMEDIA_USAGE_READ_ERROR: \"MEDIA_USAGE_READ_ERROR\",\n\tMEDIA_USAGE_REPAIR_ERROR: \"MEDIA_USAGE_REPAIR_ERROR\",\n\tMEDIA_USAGE_PROGRESS_READ_ERROR: \"MEDIA_USAGE_PROGRESS_READ_ERROR\",\n\tMEDIA_USAGE_PROGRESS_ADVANCE_ERROR: \"MEDIA_USAGE_PROGRESS_ADVANCE_ERROR\",\n\tMEDIA_USAGE_PROGRESS_NOT_ACTIVE: \"MEDIA_USAGE_PROGRESS_NOT_ACTIVE\",\n\tMEDIA_USAGE_WORK_LIST_ERROR: \"MEDIA_USAGE_WORK_LIST_ERROR\",\n\tMEDIA_USAGE_WORK_RETRY_ERROR: \"MEDIA_USAGE_WORK_RETRY_ERROR\",\n\tMEDIA_USAGE_COLLECTION_DELETION_LIST_ERROR: \"MEDIA_USAGE_COLLECTION_DELETION_LIST_ERROR\",\n\tMEDIA_USAGE_COLLECTION_DELETION_RETRY_ERROR: \"MEDIA_USAGE_COLLECTION_DELETION_RETRY_ERROR\",\n\tMEDIA_USAGE_ACTIVATION_VERSION_MISMATCH: \"MEDIA_USAGE_ACTIVATION_VERSION_MISMATCH\",\n\tMEDIA_USAGE_ACTIVATION_READ_ERROR: \"MEDIA_USAGE_ACTIVATION_READ_ERROR\",\n\tMEDIA_USAGE_ACTIVATION_BUSY: \"MEDIA_USAGE_ACTIVATION_BUSY\",\n\tMEDIA_USAGE_ACTIVATION_CONFLICT: \"MEDIA_USAGE_ACTIVATION_CONFLICT\",\n\tMEDIA_USAGE_ACTIVATION_ADVANCE_ERROR: \"MEDIA_USAGE_ACTIVATION_ADVANCE_ERROR\",\n\tWORK_LEASE_ACTIVE: \"WORK_LEASE_ACTIVE\",\n\tWORK_CHANGED: \"WORK_CHANGED\",\n\tENTRY_LOCKED: \"ENTRY_LOCKED\",\n\tENTRY_LOCK_ERROR: \"ENTRY_LOCK_ERROR\",\n\tNO_STORAGE: \"NO_STORAGE\",\n\tNO_FILE: \"NO_FILE\",\n\tINVALID_TYPE: \"INVALID_TYPE\",\n\tUPLOAD_ERROR: \"UPLOAD_ERROR\",\n\tUPLOAD_URL_ERROR: \"UPLOAD_URL_ERROR\",\n\tCONFIRM_ERROR: \"CONFIRM_ERROR\",\n\tCONFIRM_FAILED: \"CONFIRM_FAILED\",\n\tFILE_NOT_FOUND: \"FILE_NOT_FOUND\",\n\tINVALID_STATE: \"INVALID_STATE\",\n\tFILE_SERVE_ERROR: \"FILE_SERVE_ERROR\",\n\tSTORAGE_NOT_CONFIGURED: \"STORAGE_NOT_CONFIGURED\",\n\tPROVIDER_LIST_ERROR: \"PROVIDER_LIST_ERROR\",\n\tPROVIDER_UPLOAD_ERROR: \"PROVIDER_UPLOAD_ERROR\",\n\tPROVIDER_GET_ERROR: \"PROVIDER_GET_ERROR\",\n\tPROVIDER_DELETE_ERROR: \"PROVIDER_DELETE_ERROR\",\n\n\t// Comments\n\tCOMMENT_LIST_ERROR: \"COMMENT_LIST_ERROR\",\n\tCOMMENT_GET_ERROR: \"COMMENT_GET_ERROR\",\n\tCOMMENT_STATUS_ERROR: \"COMMENT_STATUS_ERROR\",\n\tCOMMENT_DELETE_ERROR: \"COMMENT_DELETE_ERROR\",\n\tCOMMENT_BULK_ERROR: \"COMMENT_BULK_ERROR\",\n\tCOMMENT_INBOX_ERROR: \"COMMENT_INBOX_ERROR\",\n\tCOMMENT_COUNTS_ERROR: \"COMMENT_COUNTS_ERROR\",\n\tCOMMENT_CREATE_ERROR: \"COMMENT_CREATE_ERROR\",\n\tCOMMENTS_DISABLED: \"COMMENTS_DISABLED\",\n\tCOMMENTS_CLOSED: \"COMMENTS_CLOSED\",\n\tCOMMENT_REJECTED: \"COMMENT_REJECTED\",\n\n\t// Auth\n\tACCOUNT_DISABLED: \"ACCOUNT_DISABLED\",\n\tADMIN_EXISTS: \"ADMIN_EXISTS\",\n\tSETUP_COMPLETE: \"SETUP_COMPLETE\",\n\tCREDENTIAL_EXISTS: \"CREDENTIAL_EXISTS\",\n\tCHALLENGE_EXPIRED: \"CHALLENGE_EXPIRED\",\n\tPASSKEY_REGISTER_ERROR: \"PASSKEY_REGISTER_ERROR\",\n\tPASSKEY_REGISTER_OPTIONS_ERROR: \"PASSKEY_REGISTER_OPTIONS_ERROR\",\n\tPASSKEY_OPTIONS_ERROR: \"PASSKEY_OPTIONS_ERROR\",\n\tPASSKEY_VERIFY_ERROR: \"PASSKEY_VERIFY_ERROR\",\n\tPASSKEY_LIST_ERROR: \"PASSKEY_LIST_ERROR\",\n\tPASSKEY_RENAME_ERROR: \"PASSKEY_RENAME_ERROR\",\n\tPASSKEY_DELETE_ERROR: \"PASSKEY_DELETE_ERROR\",\n\tPASSKEY_LIMIT: \"PASSKEY_LIMIT\",\n\tLAST_PASSKEY: \"LAST_PASSKEY\",\n\tLOGOUT_ERROR: \"LOGOUT_ERROR\",\n\tSELF_ROLE_CHANGE: \"SELF_ROLE_CHANGE\",\n\tEMAIL_IN_USE: \"EMAIL_IN_USE\",\n\tEMAIL_NOT_CONFIGURED: \"EMAIL_NOT_CONFIGURED\",\n\tUSER_EXISTS: \"USER_EXISTS\",\n\tINVALID_TOKEN: \"INVALID_TOKEN\",\n\tTOKEN_EXPIRED: \"TOKEN_EXPIRED\",\n\tSESSION_UNAVAILABLE: \"SESSION_UNAVAILABLE\",\n\tDOMAIN_NOT_ALLOWED: \"DOMAIN_NOT_ALLOWED\",\n\tINVITE_CREATE_ERROR: \"INVITE_CREATE_ERROR\",\n\tINVITE_VALIDATE_ERROR: \"INVITE_VALIDATE_ERROR\",\n\tINVITE_COMPLETE_ERROR: \"INVITE_COMPLETE_ERROR\",\n\tSIGNUP_VERIFY_ERROR: \"SIGNUP_VERIFY_ERROR\",\n\tSIGNUP_COMPLETE_ERROR: \"SIGNUP_COMPLETE_ERROR\",\n\tRECOVERY_SEND_ERROR: \"RECOVERY_SEND_ERROR\",\n\tMAGIC_LINK_VERIFY_ERROR: \"MAGIC_LINK_VERIFY_ERROR\",\n\tNO_SITE_URL: \"NO_SITE_URL\",\n\tSIGN_IN_HANDOVER_ERROR: \"SIGN_IN_HANDOVER_ERROR\",\n\tUSER_LIST_ERROR: \"USER_LIST_ERROR\",\n\tUSER_DETAIL_ERROR: \"USER_DETAIL_ERROR\",\n\tUSER_UPDATE_ERROR: \"USER_UPDATE_ERROR\",\n\tUSER_DISABLE_ERROR: \"USER_DISABLE_ERROR\",\n\tUSER_ENABLE_ERROR: \"USER_ENABLE_ERROR\",\n\n\t// OAuth (internal codes -- distinct from RFC OAuthErrorCode)\n\tUNSUPPORTED_RESPONSE_TYPE: \"UNSUPPORTED_RESPONSE_TYPE\",\n\tINVALID_REDIRECT_URI: \"INVALID_REDIRECT_URI\",\n\tINVALID_CLIENT: \"INVALID_CLIENT\",\n\tINVALID_SCOPE: \"INVALID_SCOPE\",\n\tAUTHORIZATION_ERROR: \"AUTHORIZATION_ERROR\",\n\tINVALID_GRANT: \"INVALID_GRANT\",\n\tUNSUPPORTED_GRANT_TYPE: \"UNSUPPORTED_GRANT_TYPE\",\n\tINVALID_CODE: \"INVALID_CODE\",\n\tEXPIRED_CODE: \"EXPIRED_CODE\",\n\tINSUFFICIENT_ROLE: \"INSUFFICIENT_ROLE\",\n\tINSUFFICIENT_SCOPE: \"INSUFFICIENT_SCOPE\",\n\tINSUFFICIENT_PERMISSIONS: \"INSUFFICIENT_PERMISSIONS\",\n\tTOKEN_EXCHANGE_ERROR: \"TOKEN_EXCHANGE_ERROR\",\n\tTOKEN_REFRESH_ERROR: \"TOKEN_REFRESH_ERROR\",\n\tTOKEN_REVOKE_ERROR: \"TOKEN_REVOKE_ERROR\",\n\tTOKEN_CREATE_ERROR: \"TOKEN_CREATE_ERROR\",\n\tTOKEN_LIST_ERROR: \"TOKEN_LIST_ERROR\",\n\tTOKEN_ERROR: \"TOKEN_ERROR\",\n\tDEVICE_CODE_ERROR: \"DEVICE_CODE_ERROR\",\n\tAUTHORIZE_ERROR: \"AUTHORIZE_ERROR\",\n\tCLIENT_LIST_ERROR: \"CLIENT_LIST_ERROR\",\n\tCLIENT_GET_ERROR: \"CLIENT_GET_ERROR\",\n\tCLIENT_CREATE_ERROR: \"CLIENT_CREATE_ERROR\",\n\tCLIENT_UPDATE_ERROR: \"CLIENT_UPDATE_ERROR\",\n\tCLIENT_DELETE_ERROR: \"CLIENT_DELETE_ERROR\",\n\n\t// Allowed domains\n\tDOMAIN_LIST_ERROR: \"DOMAIN_LIST_ERROR\",\n\tDOMAIN_CREATE_ERROR: \"DOMAIN_CREATE_ERROR\",\n\tDOMAIN_UPDATE_ERROR: \"DOMAIN_UPDATE_ERROR\",\n\tDOMAIN_DELETE_ERROR: \"DOMAIN_DELETE_ERROR\",\n\n\t// Core update check\n\tUPDATE_CHECK_ERROR: \"UPDATE_CHECK_ERROR\",\n\n\t// Plugins / Marketplace\n\tPLUGIN_LIST_ERROR: \"PLUGIN_LIST_ERROR\",\n\tPLUGIN_GET_ERROR: \"PLUGIN_GET_ERROR\",\n\tPLUGIN_ENABLE_ERROR: \"PLUGIN_ENABLE_ERROR\",\n\tPLUGIN_DISABLE_ERROR: \"PLUGIN_DISABLE_ERROR\",\n\tPLUGIN_ID_CONFLICT: \"PLUGIN_ID_CONFLICT\",\n\tPLUGIN_SETTINGS_READ_ERROR: \"PLUGIN_SETTINGS_READ_ERROR\",\n\tPLUGIN_SETTINGS_UPDATE_ERROR: \"PLUGIN_SETTINGS_UPDATE_ERROR\",\n\tPLUGIN_SETTING_ENCRYPTION_KEY_MISSING: \"PLUGIN_SETTING_ENCRYPTION_KEY_MISSING\",\n\tPLUGIN_SETTING_ENCRYPTION_KEY_INVALID: \"PLUGIN_SETTING_ENCRYPTION_KEY_INVALID\",\n\tPLUGIN_SETTING_ENCRYPTION_KEY_UNKNOWN: \"PLUGIN_SETTING_ENCRYPTION_KEY_UNKNOWN\",\n\tPLUGIN_SETTING_ENCRYPTION_FAILED: \"PLUGIN_SETTING_ENCRYPTION_FAILED\",\n\tPLUGIN_SETTING_DECRYPTION_FAILED: \"PLUGIN_SETTING_DECRYPTION_FAILED\",\n\tMARKETPLACE_NOT_CONFIGURED: \"MARKETPLACE_NOT_CONFIGURED\",\n\tMARKETPLACE_UNAVAILABLE: \"MARKETPLACE_UNAVAILABLE\",\n\tMARKETPLACE_ERROR: \"MARKETPLACE_ERROR\",\n\tSANDBOX_NOT_AVAILABLE: \"SANDBOX_NOT_AVAILABLE\",\n\tALREADY_INSTALLED: \"ALREADY_INSTALLED\",\n\tALREADY_UP_TO_DATE: \"ALREADY_UP_TO_DATE\",\n\tNO_VERSION: \"NO_VERSION\",\n\tINVALID_VERSION: \"INVALID_VERSION\",\n\tDOWNGRADE_NOT_ALLOWED: \"DOWNGRADE_NOT_ALLOWED\",\n\tMANIFEST_MISMATCH: \"MANIFEST_MISMATCH\",\n\tMANIFEST_VERSION_MISMATCH: \"MANIFEST_VERSION_MISMATCH\",\n\tAUDIT_FAILED: \"AUDIT_FAILED\",\n\tCHECKSUM_MISMATCH: \"CHECKSUM_MISMATCH\",\n\tINVALID_BUNDLE: \"INVALID_BUNDLE\",\n\tBUNDLE_EXTRACT_FAILED: \"BUNDLE_EXTRACT_FAILED\",\n\tBUNDLE_DOWNLOAD_FAILED: \"BUNDLE_DOWNLOAD_FAILED\",\n\tAGGREGATOR_RESPONSE_INVALID: \"AGGREGATOR_RESPONSE_INVALID\",\n\tAGGREGATOR_HTTP_ERROR: \"AGGREGATOR_HTTP_ERROR\",\n\tAGGREGATOR_NOT_FOUND: \"AGGREGATOR_NOT_FOUND\",\n\tCAPABILITY_ESCALATION: \"CAPABILITY_ESCALATION\",\n\tROUTE_VISIBILITY_ESCALATION: \"ROUTE_VISIBILITY_ESCALATION\",\n\tENV_INCOMPATIBLE: \"ENV_INCOMPATIBLE\",\n\tINSTALL_FAILED: \"INSTALL_FAILED\",\n\tUNINSTALL_FAILED: \"UNINSTALL_FAILED\",\n\tSEARCH_FAILED: \"SEARCH_FAILED\",\n\tGET_PLUGIN_FAILED: \"GET_PLUGIN_FAILED\",\n\tGET_THEME_FAILED: \"GET_THEME_FAILED\",\n\tTHEME_SEARCH_FAILED: \"THEME_SEARCH_FAILED\",\n\tUPDATE_CHECK_FAILED: \"UPDATE_CHECK_FAILED\",\n\tEXCLUSIVE_HOOKS_LIST_ERROR: \"EXCLUSIVE_HOOKS_LIST_ERROR\",\n\tEXCLUSIVE_HOOK_SET_ERROR: \"EXCLUSIVE_HOOK_SET_ERROR\",\n\n\t// Menus\n\tMENU_LIST_ERROR: \"MENU_LIST_ERROR\",\n\tMENU_CREATE_ERROR: \"MENU_CREATE_ERROR\",\n\tMENU_GET_ERROR: \"MENU_GET_ERROR\",\n\tMENU_UPDATE_ERROR: \"MENU_UPDATE_ERROR\",\n\tMENU_DELETE_ERROR: \"MENU_DELETE_ERROR\",\n\tMENU_ITEM_CREATE_ERROR: \"MENU_ITEM_CREATE_ERROR\",\n\tMENU_ITEM_UPDATE_ERROR: \"MENU_ITEM_UPDATE_ERROR\",\n\tMENU_ITEM_DELETE_ERROR: \"MENU_ITEM_DELETE_ERROR\",\n\tMENU_REORDER_ERROR: \"MENU_REORDER_ERROR\",\n\t// Returned when a menu name resolves to multiple locale variants and\n\t// the caller did not pass `locale` to disambiguate. (name, locale) is\n\t// unique, so this only fires for omitted-locale lookups.\n\tAMBIGUOUS_LOCALE: \"AMBIGUOUS_LOCALE\",\n\n\t// Taxonomies\n\tTAXONOMY_LIST_ERROR: \"TAXONOMY_LIST_ERROR\",\n\tTAXONOMY_CREATE_ERROR: \"TAXONOMY_CREATE_ERROR\",\n\tTAXONOMY_GET_ERROR: \"TAXONOMY_GET_ERROR\",\n\tTAXONOMY_UPDATE_ERROR: \"TAXONOMY_UPDATE_ERROR\",\n\tTAXONOMY_DELETE_ERROR: \"TAXONOMY_DELETE_ERROR\",\n\tTAXONOMY_TRANSLATIONS_ERROR: \"TAXONOMY_TRANSLATIONS_ERROR\",\n\tTERM_LIST_ERROR: \"TERM_LIST_ERROR\",\n\tTERM_CREATE_ERROR: \"TERM_CREATE_ERROR\",\n\tTERM_GET_ERROR: \"TERM_GET_ERROR\",\n\tTERM_UPDATE_ERROR: \"TERM_UPDATE_ERROR\",\n\tTERM_DELETE_ERROR: \"TERM_DELETE_ERROR\",\n\tTERM_REORDER_ERROR: \"TERM_REORDER_ERROR\",\n\tTERMS_GET_ERROR: \"TERMS_GET_ERROR\",\n\tTERMS_SET_ERROR: \"TERMS_SET_ERROR\",\n\n\t// Relations (content references)\n\tRELATION_LIST_ERROR: \"RELATION_LIST_ERROR\",\n\tRELATION_CREATE_ERROR: \"RELATION_CREATE_ERROR\",\n\tRELATION_GET_ERROR: \"RELATION_GET_ERROR\",\n\tRELATION_UPDATE_ERROR: \"RELATION_UPDATE_ERROR\",\n\tRELATION_DELETE_ERROR: \"RELATION_DELETE_ERROR\",\n\tRELATION_TRANSLATIONS_ERROR: \"RELATION_TRANSLATIONS_ERROR\",\n\tREFERENCES_GET_ERROR: \"REFERENCES_GET_ERROR\",\n\tREFERENCES_SET_ERROR: \"REFERENCES_SET_ERROR\",\n\n\t// Sections\n\tSECTION_LIST_ERROR: \"SECTION_LIST_ERROR\",\n\tSECTION_CREATE_ERROR: \"SECTION_CREATE_ERROR\",\n\tSECTION_GET_ERROR: \"SECTION_GET_ERROR\",\n\tSECTION_UPDATE_ERROR: \"SECTION_UPDATE_ERROR\",\n\tSECTION_DELETE_ERROR: \"SECTION_DELETE_ERROR\",\n\n\t// Redirects\n\tREDIRECT_LIST_ERROR: \"REDIRECT_LIST_ERROR\",\n\tREDIRECT_CREATE_ERROR: \"REDIRECT_CREATE_ERROR\",\n\tREDIRECT_GET_ERROR: \"REDIRECT_GET_ERROR\",\n\tREDIRECT_UPDATE_ERROR: \"REDIRECT_UPDATE_ERROR\",\n\tREDIRECT_DELETE_ERROR: \"REDIRECT_DELETE_ERROR\",\n\tNOT_FOUND_LIST_ERROR: \"NOT_FOUND_LIST_ERROR\",\n\tNOT_FOUND_SUMMARY_ERROR: \"NOT_FOUND_SUMMARY_ERROR\",\n\tNOT_FOUND_CLEAR_ERROR: \"NOT_FOUND_CLEAR_ERROR\",\n\tNOT_FOUND_PRUNE_ERROR: \"NOT_FOUND_PRUNE_ERROR\",\n\n\t// Widgets\n\tWIDGET_AREA_LIST_ERROR: \"WIDGET_AREA_LIST_ERROR\",\n\tWIDGET_AREA_CREATE_ERROR: \"WIDGET_AREA_CREATE_ERROR\",\n\tWIDGET_AREA_GET_ERROR: \"WIDGET_AREA_GET_ERROR\",\n\tWIDGET_AREA_DELETE_ERROR: \"WIDGET_AREA_DELETE_ERROR\",\n\tWIDGET_CREATE_ERROR: \"WIDGET_CREATE_ERROR\",\n\tWIDGET_UPDATE_ERROR: \"WIDGET_UPDATE_ERROR\",\n\tWIDGET_DELETE_ERROR: \"WIDGET_DELETE_ERROR\",\n\tWIDGET_REORDER_ERROR: \"WIDGET_REORDER_ERROR\",\n\tWIDGET_COMPONENTS_ERROR: \"WIDGET_COMPONENTS_ERROR\",\n\n\t// Setup\n\tALREADY_CONFIGURED: \"ALREADY_CONFIGURED\",\n\tINVALID_SEED: \"INVALID_SEED\",\n\tINVALID_REDIRECT: \"INVALID_REDIRECT\",\n\tSETUP_ERROR: \"SETUP_ERROR\",\n\tSETUP_STATUS_ERROR: \"SETUP_STATUS_ERROR\",\n\tSETUP_ADMIN_ERROR: \"SETUP_ADMIN_ERROR\",\n\tSETUP_VERIFY_ERROR: \"SETUP_VERIFY_ERROR\",\n\tDEV_BYPASS_ERROR: \"DEV_BYPASS_ERROR\",\n\tDEV_RESET_ERROR: \"DEV_RESET_ERROR\",\n\tMIGRATION_ERROR: \"MIGRATION_ERROR\",\n\tSEED_ERROR: \"SEED_ERROR\",\n\n\t// Settings\n\tSETTINGS_READ_ERROR: \"SETTINGS_READ_ERROR\",\n\tSETTINGS_UPDATE_ERROR: \"SETTINGS_UPDATE_ERROR\",\n\tEMAIL_SETTINGS_READ_ERROR: \"EMAIL_SETTINGS_READ_ERROR\",\n\tEMAIL_TEST_ERROR: \"EMAIL_TEST_ERROR\",\n\tSITE_DOMAIN_ERROR: \"SITE_DOMAIN_ERROR\",\n\tDOMAIN_PROOF_ERROR: \"DOMAIN_PROOF_ERROR\",\n\tDOMAIN_MOVE_NOTICE_ERROR: \"DOMAIN_MOVE_NOTICE_ERROR\",\n\n\t// Backups\n\tBACKUP_SETTINGS_READ_ERROR: \"BACKUP_SETTINGS_READ_ERROR\",\n\tBACKUP_SETTINGS_ERROR: \"BACKUP_SETTINGS_ERROR\",\n\tBACKUP_EXPORT_ERROR: \"BACKUP_EXPORT_ERROR\",\n\tBACKUP_LIST_ERROR: \"BACKUP_LIST_ERROR\",\n\tBACKUP_CREATE_ERROR: \"BACKUP_CREATE_ERROR\",\n\tBACKUP_DELETE_ERROR: \"BACKUP_DELETE_ERROR\",\n\tBACKUP_DOWNLOAD_ERROR: \"BACKUP_DOWNLOAD_ERROR\",\n\n\t// Search\n\tSEARCH_ERROR: \"SEARCH_ERROR\",\n\tSTATS_ERROR: \"STATS_ERROR\",\n\tSUGGESTION_ERROR: \"SUGGESTION_ERROR\",\n\tREBUILD_ERROR: \"REBUILD_ERROR\",\n\n\t// Import\n\tWXR_ANALYZE_ERROR: \"WXR_ANALYZE_ERROR\",\n\tWXR_PREPARE_ERROR: \"WXR_PREPARE_ERROR\",\n\tWXR_IMPORT_ERROR: \"WXR_IMPORT_ERROR\",\n\tIMPORT_ERROR: \"IMPORT_ERROR\",\n\tREWRITE_ERROR: \"REWRITE_ERROR\",\n\tWP_PLUGIN_ANALYZE_ERROR: \"WP_PLUGIN_ANALYZE_ERROR\",\n\tWP_PLUGIN_IMPORT_ERROR: \"WP_PLUGIN_IMPORT_ERROR\",\n\tSSRF_BLOCKED: \"SSRF_BLOCKED\",\n\tPROBE_ERROR: \"PROBE_ERROR\",\n\n\t// Dashboard\n\tDASHBOARD_ERROR: \"DASHBOARD_ERROR\",\n\tDASHBOARD_STATS_ERROR: \"DASHBOARD_STATS_ERROR\",\n\n\t// Calendar\n\tCALENDAR_ERROR: \"CALENDAR_ERROR\",\n\n\t// Misc\n\tSNAPSHOT_ERROR: \"SNAPSHOT_ERROR\",\n\tTYPEGEN_ERROR: \"TYPEGEN_ERROR\",\n\tSITEMAP_ERROR: \"SITEMAP_ERROR\",\n\tNO_DB: \"NO_DB\",\n\tINVALID_REQUEST: \"INVALID_REQUEST\",\n\tUNKNOWN_ACTION: \"UNKNOWN_ACTION\",\n\n\t// Site transfer\n\t...TransferErrorCode,\n} as const;\n\nexport type ErrorCode = (typeof ErrorCode)[keyof typeof ErrorCode];\n\n/**\n * OAuth RFC 6749 error codes.\n *\n * These MUST be lowercase per the RFC spec. Used only by OAuth token endpoints.\n * Separate from ErrorCode to prevent mixing conventions.\n */\nexport const OAuthErrorCode = {\n\tINVALID_GRANT: \"invalid_grant\",\n\tUNSUPPORTED_GRANT_TYPE: \"unsupported_grant_type\",\n\tEXPIRED_TOKEN: \"expired_token\",\n\tACCESS_DENIED: \"access_denied\",\n\tAUTHORIZATION_PENDING: \"authorization_pending\",\n} as const;\n\nexport type OAuthErrorCode = (typeof OAuthErrorCode)[keyof typeof OAuthErrorCode];\n\n/**\n * Map a handler error code to an HTTP status code.\n *\n * Shared codes have explicit mappings. Domain-specific `*_ERROR` codes\n * (used in catch blocks via handleError) default to 500. Everything else\n * defaults to 400 (client error).\n */\nexport function mapErrorStatus(code: string | undefined): number {\n\tconst transferStatus = transferErrorStatus(code);\n\tif (transferStatus !== undefined) return transferStatus;\n\n\tswitch (code) {\n\t\t// 400 Bad Request\n\t\tcase ErrorCode.VALIDATION_ERROR:\n\t\tcase ErrorCode.INVALID_INPUT:\n\t\tcase ErrorCode.INVALID_JSON:\n\t\tcase ErrorCode.INVALID_CURSOR:\n\t\tcase ErrorCode.MISSING_PARAM:\n\t\tcase ErrorCode.INVALID_REQUEST:\n\t\tcase ErrorCode.NOT_SUPPORTED:\n\t\tcase ErrorCode.INVALID_SLUG:\n\t\tcase ErrorCode.RESERVED_SLUG:\n\t\tcase ErrorCode.INVALID_TYPE:\n\t\tcase ErrorCode.NO_FILE:\n\t\tcase ErrorCode.INVALID_STATE:\n\t\tcase ErrorCode.INVALID_SEED:\n\t\tcase ErrorCode.INVALID_REDIRECT:\n\t\tcase ErrorCode.INVALID_TOKEN:\n\t\tcase ErrorCode.INVALID_REVISION:\n\t\tcase ErrorCode.INVALID_CODE:\n\t\tcase ErrorCode.CHALLENGE_EXPIRED:\n\t\tcase ErrorCode.EXPIRED_CODE:\n\t\tcase ErrorCode.LAST_PASSKEY:\n\t\tcase ErrorCode.PASSKEY_LIMIT:\n\t\tcase ErrorCode.ADMIN_EXISTS:\n\t\tcase ErrorCode.SETUP_COMPLETE:\n\t\tcase ErrorCode.SELF_ROLE_CHANGE:\n\t\tcase ErrorCode.SSRF_BLOCKED:\n\t\tcase ErrorCode.UNKNOWN_ACTION:\n\t\tcase ErrorCode.AMBIGUOUS_LOCALE:\n\t\tcase ErrorCode.REORDER_MISMATCH:\n\t\tcase ErrorCode.INVALID_VERSION:\n\t\tcase ErrorCode.DOWNGRADE_NOT_ALLOWED:\n\t\t\treturn 400;\n\n\t\t// 409 Conflict\n\t\tcase ErrorCode.UNSUPPORTED_FIELD_TYPE:\n\t\t\treturn 409;\n\n\t\t// 401 Unauthorized\n\t\tcase ErrorCode.UNAUTHORIZED:\n\t\tcase ErrorCode.NOT_AUTHENTICATED:\n\t\t\treturn 401;\n\n\t\t// 403 Forbidden\n\t\tcase ErrorCode.FORBIDDEN:\n\t\tcase ErrorCode.CSRF_REJECTED:\n\t\tcase ErrorCode.ACCOUNT_DISABLED:\n\t\tcase ErrorCode.COMMENTS_DISABLED:\n\t\tcase ErrorCode.COMMENTS_CLOSED:\n\t\tcase ErrorCode.COMMENT_REJECTED:\n\t\tcase ErrorCode.DOMAIN_NOT_ALLOWED:\n\t\tcase ErrorCode.INSUFFICIENT_ROLE:\n\t\tcase ErrorCode.INSUFFICIENT_SCOPE:\n\t\tcase ErrorCode.INSUFFICIENT_PERMISSIONS:\n\t\tcase ErrorCode.CAPABILITY_ESCALATION:\n\t\tcase ErrorCode.ROUTE_VISIBILITY_ESCALATION:\n\t\tcase ErrorCode.AUDIT_FAILED:\n\t\t\treturn 403;\n\n\t\t// 404 Not Found\n\t\tcase ErrorCode.NOT_FOUND:\n\t\tcase ErrorCode.TABLE_NOT_FOUND:\n\t\tcase ErrorCode.COLLECTION_NOT_FOUND:\n\t\tcase ErrorCode.FILE_NOT_FOUND:\n\t\tcase ErrorCode.NO_VERSION:\n\t\tcase ErrorCode.AGGREGATOR_NOT_FOUND:\n\t\tcase ErrorCode.BLOCK_TYPE_NOT_FOUND:\n\t\t\treturn 404;\n\n\t\t// 409 Conflict\n\t\tcase ErrorCode.CONFLICT:\n\t\tcase ErrorCode.SLUG_CONFLICT:\n\t\tcase ErrorCode.COLLECTION_EXISTS:\n\t\tcase ErrorCode.COLLECTION_TABLE_ORPHANED:\n\t\tcase ErrorCode.FIELD_EXISTS:\n\t\tcase ErrorCode.CREDENTIAL_EXISTS:\n\t\tcase ErrorCode.EMAIL_IN_USE:\n\t\tcase ErrorCode.USER_EXISTS:\n\t\tcase ErrorCode.NO_SITE_URL:\n\t\tcase ErrorCode.PLUGIN_ID_CONFLICT:\n\t\tcase ErrorCode.ALREADY_INSTALLED:\n\t\tcase ErrorCode.ALREADY_CONFIGURED:\n\t\tcase ErrorCode.ALREADY_UP_TO_DATE:\n\t\tcase ErrorCode.TRANSLATABLE_LOCKED:\n\t\tcase ErrorCode.ENV_INCOMPATIBLE:\n\t\tcase ErrorCode.WORK_LEASE_ACTIVE:\n\t\tcase ErrorCode.WORK_CHANGED:\n\t\tcase ErrorCode.ENTRY_LOCKED:\n\t\tcase ErrorCode.BLOCK_TYPE_EXISTS:\n\t\tcase ErrorCode.BLOCK_TYPE_BREAKING_CHANGE:\n\t\tcase ErrorCode.BLOCK_TYPE_VERSION_CONFLICT:\n\t\tcase ErrorCode.MEDIA_USAGE_ACTIVATION_VERSION_MISMATCH:\n\t\tcase ErrorCode.MEDIA_USAGE_ACTIVATION_BUSY:\n\t\tcase ErrorCode.MEDIA_USAGE_ACTIVATION_CONFLICT:\n\t\tcase ErrorCode.MEDIA_USAGE_PROGRESS_NOT_ACTIVE:\n\t\t\treturn 409;\n\n\t\t// 410 Gone\n\t\tcase ErrorCode.TOKEN_EXPIRED:\n\t\t\treturn 410;\n\n\t\t// 422 Unprocessable Entity\n\t\tcase ErrorCode.SAVE_REJECTED:\n\t\tcase ErrorCode.PUBLISH_REJECTED:\n\t\tcase ErrorCode.SCHEDULE_REJECTED:\n\t\tcase ErrorCode.UNPUBLISH_REJECTED:\n\t\tcase ErrorCode.CHECKSUM_MISMATCH:\n\t\tcase ErrorCode.INVALID_BUNDLE:\n\t\tcase ErrorCode.BUNDLE_EXTRACT_FAILED:\n\t\tcase ErrorCode.DOMAIN_CHECK_FAILED:\n\t\t\treturn 422;\n\n\t\t// 429 Too Many Requests\n\t\tcase ErrorCode.RATE_LIMITED:\n\t\t\treturn 429;\n\n\t\t// 500 Internal Server Error\n\t\tcase ErrorCode.NOT_CONFIGURED:\n\t\tcase ErrorCode.BINDING_NOT_FOUND:\n\t\tcase ErrorCode.CONFIGURATION_ERROR:\n\t\tcase ErrorCode.NO_STORAGE:\n\t\tcase ErrorCode.NO_DB:\n\t\tcase ErrorCode.STORAGE_NOT_CONFIGURED:\n\t\tcase ErrorCode.EMAIL_NOT_CONFIGURED:\n\t\tcase ErrorCode.SESSION_UNAVAILABLE:\n\t\tcase ErrorCode.COLLECTION_SCHEMA_MISMATCH:\n\t\t\treturn 500;\n\n\t\t// 501 Not Implemented\n\t\tcase ErrorCode.NOT_IMPLEMENTED:\n\t\t\treturn 501;\n\n\t\t// 502 Bad Gateway\n\t\tcase ErrorCode.BUNDLE_DOWNLOAD_FAILED:\n\t\tcase ErrorCode.AGGREGATOR_RESPONSE_INVALID:\n\t\tcase ErrorCode.AGGREGATOR_HTTP_ERROR:\n\t\t\treturn 502;\n\n\t\t// 503 Service Unavailable\n\t\tcase ErrorCode.MARKETPLACE_UNAVAILABLE:\n\t\tcase ErrorCode.MARKETPLACE_NOT_CONFIGURED:\n\t\tcase ErrorCode.SANDBOX_NOT_AVAILABLE:\n\t\t\treturn 503;\n\n\t\t// Domain-specific *_ERROR codes are catch-block codes -- always 500.\n\t\t// WARNING: If adding a new code that ends in _ERROR but represents a\n\t\t// client error (4xx), add it to an explicit case above or it will\n\t\t// be incorrectly mapped to 500.\n\t\tdefault:\n\t\t\treturn code?.endsWith(\"_ERROR\") ? 500 : 400;\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/transfer/errors.ts
|
|
4
|
+
/**
|
|
5
|
+
* Stable error codes for site transfer (export, analysis, import).
|
|
6
|
+
*
|
|
7
|
+
* Every code is `SCREAMING_SNAKE_CASE` with the `TRANSFER_` prefix and has a
|
|
8
|
+
* fixed HTTP status. `mapErrorStatus` in `api/errors.ts` consults
|
|
9
|
+
* {@link transferErrorStatus} first, so handlers can return these codes in an
|
|
10
|
+
* `ApiResult` and `unwrapResult` picks the right status.
|
|
11
|
+
*/
|
|
12
|
+
const TransferErrorCode = {
|
|
13
|
+
TRANSFER_IMPORT_IN_PROGRESS: "TRANSFER_IMPORT_IN_PROGRESS",
|
|
14
|
+
TRANSFER_FENCE_CHECK_FAILED: "TRANSFER_FENCE_CHECK_FAILED",
|
|
15
|
+
TRANSFER_EXPORT_CONCURRENT_WRITES: "TRANSFER_EXPORT_CONCURRENT_WRITES",
|
|
16
|
+
TRANSFER_OPERATION_NOT_FOUND: "TRANSFER_OPERATION_NOT_FOUND",
|
|
17
|
+
TRANSFER_INVALID_STATE: "TRANSFER_INVALID_STATE",
|
|
18
|
+
TRANSFER_LEASE_ACTIVE: "TRANSFER_LEASE_ACTIVE",
|
|
19
|
+
TRANSFER_LEASE_LOST: "TRANSFER_LEASE_LOST",
|
|
20
|
+
TRANSFER_RUNTIME_MISMATCH: "TRANSFER_RUNTIME_MISMATCH",
|
|
21
|
+
TRANSFER_IDEMPOTENCY_CONFLICT: "TRANSFER_IDEMPOTENCY_CONFLICT",
|
|
22
|
+
TRANSFER_TARGET_NOT_EMPTY: "TRANSFER_TARGET_NOT_EMPTY",
|
|
23
|
+
TRANSFER_EXPIRED: "TRANSFER_EXPIRED",
|
|
24
|
+
TRANSFER_MANIFEST_INVALID: "TRANSFER_MANIFEST_INVALID",
|
|
25
|
+
TRANSFER_UNSUPPORTED_FORMAT: "TRANSFER_UNSUPPORTED_FORMAT",
|
|
26
|
+
TRANSFER_UNSUPPORTED_FEATURE: "TRANSFER_UNSUPPORTED_FEATURE",
|
|
27
|
+
TRANSFER_PATH_INVALID: "TRANSFER_PATH_INVALID",
|
|
28
|
+
TRANSFER_FILE_NOT_DECLARED: "TRANSFER_FILE_NOT_DECLARED",
|
|
29
|
+
TRANSFER_FILE_MISSING: "TRANSFER_FILE_MISSING",
|
|
30
|
+
TRANSFER_FILE_SIZE_MISMATCH: "TRANSFER_FILE_SIZE_MISMATCH",
|
|
31
|
+
TRANSFER_FILE_DIGEST_MISMATCH: "TRANSFER_FILE_DIGEST_MISMATCH",
|
|
32
|
+
TRANSFER_CONTAINER_INVALID: "TRANSFER_CONTAINER_INVALID",
|
|
33
|
+
TRANSFER_LIMIT_EXCEEDED: "TRANSFER_LIMIT_EXCEEDED",
|
|
34
|
+
TRANSFER_RECORD_INVALID: "TRANSFER_RECORD_INVALID",
|
|
35
|
+
TRANSFER_REFERENCE_INVALID: "TRANSFER_REFERENCE_INVALID",
|
|
36
|
+
TRANSFER_MEDIA_REF_INVALID: "TRANSFER_MEDIA_REF_INVALID",
|
|
37
|
+
TRANSFER_MEDIA_BLOB_MISSING: "TRANSFER_MEDIA_BLOB_MISSING",
|
|
38
|
+
TRANSFER_SCHEMA_UNCLASSIFIED: "TRANSFER_SCHEMA_UNCLASSIFIED",
|
|
39
|
+
TRANSFER_PACKAGE_DIGEST_MISMATCH: "TRANSFER_PACKAGE_DIGEST_MISMATCH",
|
|
40
|
+
TRANSFER_PLAN_DIGEST_MISMATCH: "TRANSFER_PLAN_DIGEST_MISMATCH",
|
|
41
|
+
TRANSFER_PLAN_BLOCKED: "TRANSFER_PLAN_BLOCKED",
|
|
42
|
+
TRANSFER_DECISIONS_INVALID: "TRANSFER_DECISIONS_INVALID",
|
|
43
|
+
TRANSFER_VERIFICATION_FAILED: "TRANSFER_VERIFICATION_FAILED",
|
|
44
|
+
TRANSFER_APPROVAL_REQUIRED: "TRANSFER_APPROVAL_REQUIRED",
|
|
45
|
+
TRANSFER_APPROVAL_INVALID: "TRANSFER_APPROVAL_INVALID",
|
|
46
|
+
TRANSFER_STORAGE_ERROR: "TRANSFER_STORAGE_ERROR",
|
|
47
|
+
TRANSFER_EXPORT_ERROR: "TRANSFER_EXPORT_ERROR",
|
|
48
|
+
TRANSFER_ANALYZE_ERROR: "TRANSFER_ANALYZE_ERROR",
|
|
49
|
+
TRANSFER_IMPORT_ERROR: "TRANSFER_IMPORT_ERROR"
|
|
50
|
+
};
|
|
51
|
+
const TRANSFER_ERROR_STATUS = Object.freeze({
|
|
52
|
+
TRANSFER_IMPORT_IN_PROGRESS: 503,
|
|
53
|
+
TRANSFER_FENCE_CHECK_FAILED: 503,
|
|
54
|
+
TRANSFER_EXPORT_CONCURRENT_WRITES: 409,
|
|
55
|
+
TRANSFER_OPERATION_NOT_FOUND: 404,
|
|
56
|
+
TRANSFER_INVALID_STATE: 409,
|
|
57
|
+
TRANSFER_LEASE_ACTIVE: 409,
|
|
58
|
+
TRANSFER_LEASE_LOST: 409,
|
|
59
|
+
TRANSFER_RUNTIME_MISMATCH: 409,
|
|
60
|
+
TRANSFER_IDEMPOTENCY_CONFLICT: 409,
|
|
61
|
+
TRANSFER_TARGET_NOT_EMPTY: 409,
|
|
62
|
+
TRANSFER_EXPIRED: 410,
|
|
63
|
+
TRANSFER_MANIFEST_INVALID: 422,
|
|
64
|
+
TRANSFER_UNSUPPORTED_FORMAT: 422,
|
|
65
|
+
TRANSFER_UNSUPPORTED_FEATURE: 422,
|
|
66
|
+
TRANSFER_PATH_INVALID: 422,
|
|
67
|
+
TRANSFER_FILE_NOT_DECLARED: 422,
|
|
68
|
+
TRANSFER_FILE_MISSING: 422,
|
|
69
|
+
TRANSFER_FILE_SIZE_MISMATCH: 422,
|
|
70
|
+
TRANSFER_FILE_DIGEST_MISMATCH: 422,
|
|
71
|
+
TRANSFER_CONTAINER_INVALID: 422,
|
|
72
|
+
TRANSFER_LIMIT_EXCEEDED: 413,
|
|
73
|
+
TRANSFER_RECORD_INVALID: 422,
|
|
74
|
+
TRANSFER_REFERENCE_INVALID: 422,
|
|
75
|
+
TRANSFER_MEDIA_REF_INVALID: 422,
|
|
76
|
+
TRANSFER_MEDIA_BLOB_MISSING: 422,
|
|
77
|
+
TRANSFER_SCHEMA_UNCLASSIFIED: 500,
|
|
78
|
+
TRANSFER_PACKAGE_DIGEST_MISMATCH: 409,
|
|
79
|
+
TRANSFER_PLAN_DIGEST_MISMATCH: 409,
|
|
80
|
+
TRANSFER_PLAN_BLOCKED: 409,
|
|
81
|
+
TRANSFER_DECISIONS_INVALID: 422,
|
|
82
|
+
TRANSFER_VERIFICATION_FAILED: 422,
|
|
83
|
+
TRANSFER_APPROVAL_REQUIRED: 403,
|
|
84
|
+
TRANSFER_APPROVAL_INVALID: 403,
|
|
85
|
+
TRANSFER_STORAGE_ERROR: 500,
|
|
86
|
+
TRANSFER_EXPORT_ERROR: 500,
|
|
87
|
+
TRANSFER_ANALYZE_ERROR: 500,
|
|
88
|
+
TRANSFER_IMPORT_ERROR: 500
|
|
89
|
+
});
|
|
90
|
+
function isTransferErrorCode(code) {
|
|
91
|
+
return code !== void 0 && Object.hasOwn(TRANSFER_ERROR_STATUS, code);
|
|
92
|
+
}
|
|
93
|
+
function transferErrorStatus(code) {
|
|
94
|
+
return isTransferErrorCode(code) ? TRANSFER_ERROR_STATUS[code] : void 0;
|
|
95
|
+
}
|
|
96
|
+
const transferErrorDetailSchema = z.record(z.string(), z.union([
|
|
97
|
+
z.string(),
|
|
98
|
+
z.number(),
|
|
99
|
+
z.boolean(),
|
|
100
|
+
z.null()
|
|
101
|
+
]));
|
|
102
|
+
var TransferError = class extends Error {
|
|
103
|
+
code;
|
|
104
|
+
status;
|
|
105
|
+
detail;
|
|
106
|
+
constructor(code, message, options = {}) {
|
|
107
|
+
super(message, options.cause === void 0 ? void 0 : { cause: options.cause });
|
|
108
|
+
this.name = "TransferError";
|
|
109
|
+
this.code = code;
|
|
110
|
+
this.status = TRANSFER_ERROR_STATUS[code];
|
|
111
|
+
this.detail = options.detail;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
function isTransferError(error) {
|
|
115
|
+
return error instanceof TransferError;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
//#endregion
|
|
119
|
+
export { transferErrorStatus as a, transferErrorDetailSchema as i, TransferErrorCode as n, isTransferError as r, TransferError as t };
|
|
120
|
+
//# sourceMappingURL=errors-B4f4It-2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors-B4f4It-2.mjs","names":[],"sources":["../src/transfer/errors.ts"],"sourcesContent":["/**\n * Stable error codes for site transfer (export, analysis, import).\n *\n * Every code is `SCREAMING_SNAKE_CASE` with the `TRANSFER_` prefix and has a\n * fixed HTTP status. `mapErrorStatus` in `api/errors.ts` consults\n * {@link transferErrorStatus} first, so handlers can return these codes in an\n * `ApiResult` and `unwrapResult` picks the right status.\n */\n\nimport { z } from \"zod\";\n\nexport const TransferErrorCode = {\n\tTRANSFER_IMPORT_IN_PROGRESS: \"TRANSFER_IMPORT_IN_PROGRESS\",\n\tTRANSFER_FENCE_CHECK_FAILED: \"TRANSFER_FENCE_CHECK_FAILED\",\n\tTRANSFER_EXPORT_CONCURRENT_WRITES: \"TRANSFER_EXPORT_CONCURRENT_WRITES\",\n\tTRANSFER_OPERATION_NOT_FOUND: \"TRANSFER_OPERATION_NOT_FOUND\",\n\tTRANSFER_INVALID_STATE: \"TRANSFER_INVALID_STATE\",\n\tTRANSFER_LEASE_ACTIVE: \"TRANSFER_LEASE_ACTIVE\",\n\tTRANSFER_LEASE_LOST: \"TRANSFER_LEASE_LOST\",\n\tTRANSFER_RUNTIME_MISMATCH: \"TRANSFER_RUNTIME_MISMATCH\",\n\tTRANSFER_IDEMPOTENCY_CONFLICT: \"TRANSFER_IDEMPOTENCY_CONFLICT\",\n\tTRANSFER_TARGET_NOT_EMPTY: \"TRANSFER_TARGET_NOT_EMPTY\",\n\tTRANSFER_EXPIRED: \"TRANSFER_EXPIRED\",\n\tTRANSFER_MANIFEST_INVALID: \"TRANSFER_MANIFEST_INVALID\",\n\tTRANSFER_UNSUPPORTED_FORMAT: \"TRANSFER_UNSUPPORTED_FORMAT\",\n\tTRANSFER_UNSUPPORTED_FEATURE: \"TRANSFER_UNSUPPORTED_FEATURE\",\n\tTRANSFER_PATH_INVALID: \"TRANSFER_PATH_INVALID\",\n\tTRANSFER_FILE_NOT_DECLARED: \"TRANSFER_FILE_NOT_DECLARED\",\n\tTRANSFER_FILE_MISSING: \"TRANSFER_FILE_MISSING\",\n\tTRANSFER_FILE_SIZE_MISMATCH: \"TRANSFER_FILE_SIZE_MISMATCH\",\n\tTRANSFER_FILE_DIGEST_MISMATCH: \"TRANSFER_FILE_DIGEST_MISMATCH\",\n\tTRANSFER_CONTAINER_INVALID: \"TRANSFER_CONTAINER_INVALID\",\n\tTRANSFER_LIMIT_EXCEEDED: \"TRANSFER_LIMIT_EXCEEDED\",\n\tTRANSFER_RECORD_INVALID: \"TRANSFER_RECORD_INVALID\",\n\tTRANSFER_REFERENCE_INVALID: \"TRANSFER_REFERENCE_INVALID\",\n\tTRANSFER_MEDIA_REF_INVALID: \"TRANSFER_MEDIA_REF_INVALID\",\n\tTRANSFER_MEDIA_BLOB_MISSING: \"TRANSFER_MEDIA_BLOB_MISSING\",\n\tTRANSFER_SCHEMA_UNCLASSIFIED: \"TRANSFER_SCHEMA_UNCLASSIFIED\",\n\tTRANSFER_PACKAGE_DIGEST_MISMATCH: \"TRANSFER_PACKAGE_DIGEST_MISMATCH\",\n\tTRANSFER_PLAN_DIGEST_MISMATCH: \"TRANSFER_PLAN_DIGEST_MISMATCH\",\n\tTRANSFER_PLAN_BLOCKED: \"TRANSFER_PLAN_BLOCKED\",\n\tTRANSFER_DECISIONS_INVALID: \"TRANSFER_DECISIONS_INVALID\",\n\tTRANSFER_VERIFICATION_FAILED: \"TRANSFER_VERIFICATION_FAILED\",\n\tTRANSFER_APPROVAL_REQUIRED: \"TRANSFER_APPROVAL_REQUIRED\",\n\tTRANSFER_APPROVAL_INVALID: \"TRANSFER_APPROVAL_INVALID\",\n\tTRANSFER_STORAGE_ERROR: \"TRANSFER_STORAGE_ERROR\",\n\tTRANSFER_EXPORT_ERROR: \"TRANSFER_EXPORT_ERROR\",\n\tTRANSFER_ANALYZE_ERROR: \"TRANSFER_ANALYZE_ERROR\",\n\tTRANSFER_IMPORT_ERROR: \"TRANSFER_IMPORT_ERROR\",\n} as const;\n\nexport type TransferErrorCode = (typeof TransferErrorCode)[keyof typeof TransferErrorCode];\n\nexport const TRANSFER_ERROR_STATUS: Readonly<Record<TransferErrorCode, number>> = Object.freeze({\n\tTRANSFER_IMPORT_IN_PROGRESS: 503,\n\tTRANSFER_FENCE_CHECK_FAILED: 503,\n\tTRANSFER_EXPORT_CONCURRENT_WRITES: 409,\n\tTRANSFER_OPERATION_NOT_FOUND: 404,\n\tTRANSFER_INVALID_STATE: 409,\n\tTRANSFER_LEASE_ACTIVE: 409,\n\tTRANSFER_LEASE_LOST: 409,\n\tTRANSFER_RUNTIME_MISMATCH: 409,\n\tTRANSFER_IDEMPOTENCY_CONFLICT: 409,\n\tTRANSFER_TARGET_NOT_EMPTY: 409,\n\tTRANSFER_EXPIRED: 410,\n\tTRANSFER_MANIFEST_INVALID: 422,\n\tTRANSFER_UNSUPPORTED_FORMAT: 422,\n\tTRANSFER_UNSUPPORTED_FEATURE: 422,\n\tTRANSFER_PATH_INVALID: 422,\n\tTRANSFER_FILE_NOT_DECLARED: 422,\n\tTRANSFER_FILE_MISSING: 422,\n\tTRANSFER_FILE_SIZE_MISMATCH: 422,\n\tTRANSFER_FILE_DIGEST_MISMATCH: 422,\n\tTRANSFER_CONTAINER_INVALID: 422,\n\tTRANSFER_LIMIT_EXCEEDED: 413,\n\tTRANSFER_RECORD_INVALID: 422,\n\tTRANSFER_REFERENCE_INVALID: 422,\n\tTRANSFER_MEDIA_REF_INVALID: 422,\n\tTRANSFER_MEDIA_BLOB_MISSING: 422,\n\tTRANSFER_SCHEMA_UNCLASSIFIED: 500,\n\tTRANSFER_PACKAGE_DIGEST_MISMATCH: 409,\n\tTRANSFER_PLAN_DIGEST_MISMATCH: 409,\n\tTRANSFER_PLAN_BLOCKED: 409,\n\tTRANSFER_DECISIONS_INVALID: 422,\n\tTRANSFER_VERIFICATION_FAILED: 422,\n\tTRANSFER_APPROVAL_REQUIRED: 403,\n\tTRANSFER_APPROVAL_INVALID: 403,\n\tTRANSFER_STORAGE_ERROR: 500,\n\tTRANSFER_EXPORT_ERROR: 500,\n\tTRANSFER_ANALYZE_ERROR: 500,\n\tTRANSFER_IMPORT_ERROR: 500,\n});\n\nexport function isTransferErrorCode(code: string | undefined): code is TransferErrorCode {\n\treturn code !== undefined && Object.hasOwn(TRANSFER_ERROR_STATUS, code);\n}\n\nexport function transferErrorStatus(code: string | undefined): number | undefined {\n\treturn isTransferErrorCode(code) ? TRANSFER_ERROR_STATUS[code] : undefined;\n}\n\n/**\n * JSON-safe, bounded detail attached to a transfer error. Never put record\n * contents, credentials, or storage keys here: details reach API clients and\n * operation rows.\n */\nexport type TransferErrorDetail = Readonly<Record<string, string | number | boolean | null>>;\n\nexport const transferErrorDetailSchema = z.record(\n\tz.string(),\n\tz.union([z.string(), z.number(), z.boolean(), z.null()]),\n);\n\nexport class TransferError extends Error {\n\treadonly code: TransferErrorCode;\n\treadonly status: number;\n\treadonly detail: TransferErrorDetail | undefined;\n\n\tconstructor(\n\t\tcode: TransferErrorCode,\n\t\tmessage: string,\n\t\toptions: { detail?: TransferErrorDetail; cause?: unknown } = {},\n\t) {\n\t\tsuper(message, options.cause === undefined ? undefined : { cause: options.cause });\n\t\tthis.name = \"TransferError\";\n\t\tthis.code = code;\n\t\tthis.status = TRANSFER_ERROR_STATUS[code];\n\t\tthis.detail = options.detail;\n\t}\n}\n\nexport function isTransferError(error: unknown): error is TransferError {\n\treturn error instanceof TransferError;\n}\n"],"mappings":";;;;;;;;;;;AAWA,MAAa,oBAAoB;CAChC,6BAA6B;CAC7B,6BAA6B;CAC7B,mCAAmC;CACnC,8BAA8B;CAC9B,wBAAwB;CACxB,uBAAuB;CACvB,qBAAqB;CACrB,2BAA2B;CAC3B,+BAA+B;CAC/B,2BAA2B;CAC3B,kBAAkB;CAClB,2BAA2B;CAC3B,6BAA6B;CAC7B,8BAA8B;CAC9B,uBAAuB;CACvB,4BAA4B;CAC5B,uBAAuB;CACvB,6BAA6B;CAC7B,+BAA+B;CAC/B,4BAA4B;CAC5B,yBAAyB;CACzB,yBAAyB;CACzB,4BAA4B;CAC5B,4BAA4B;CAC5B,6BAA6B;CAC7B,8BAA8B;CAC9B,kCAAkC;CAClC,+BAA+B;CAC/B,uBAAuB;CACvB,4BAA4B;CAC5B,8BAA8B;CAC9B,4BAA4B;CAC5B,2BAA2B;CAC3B,wBAAwB;CACxB,uBAAuB;CACvB,wBAAwB;CACxB,uBAAuB;CACvB;AAID,MAAa,wBAAqE,OAAO,OAAO;CAC/F,6BAA6B;CAC7B,6BAA6B;CAC7B,mCAAmC;CACnC,8BAA8B;CAC9B,wBAAwB;CACxB,uBAAuB;CACvB,qBAAqB;CACrB,2BAA2B;CAC3B,+BAA+B;CAC/B,2BAA2B;CAC3B,kBAAkB;CAClB,2BAA2B;CAC3B,6BAA6B;CAC7B,8BAA8B;CAC9B,uBAAuB;CACvB,4BAA4B;CAC5B,uBAAuB;CACvB,6BAA6B;CAC7B,+BAA+B;CAC/B,4BAA4B;CAC5B,yBAAyB;CACzB,yBAAyB;CACzB,4BAA4B;CAC5B,4BAA4B;CAC5B,6BAA6B;CAC7B,8BAA8B;CAC9B,kCAAkC;CAClC,+BAA+B;CAC/B,uBAAuB;CACvB,4BAA4B;CAC5B,8BAA8B;CAC9B,4BAA4B;CAC5B,2BAA2B;CAC3B,wBAAwB;CACxB,uBAAuB;CACvB,wBAAwB;CACxB,uBAAuB;CACvB,CAAC;AAEF,SAAgB,oBAAoB,MAAqD;AACxF,QAAO,SAAS,UAAa,OAAO,OAAO,uBAAuB,KAAK;;AAGxE,SAAgB,oBAAoB,MAA8C;AACjF,QAAO,oBAAoB,KAAK,GAAG,sBAAsB,QAAQ;;AAUlE,MAAa,4BAA4B,EAAE,OAC1C,EAAE,QAAQ,EACV,EAAE,MAAM;CAAC,EAAE,QAAQ;CAAE,EAAE,QAAQ;CAAE,EAAE,SAAS;CAAE,EAAE,MAAM;CAAC,CAAC,CACxD;AAED,IAAa,gBAAb,cAAmC,MAAM;CACxC,AAAS;CACT,AAAS;CACT,AAAS;CAET,YACC,MACA,SACA,UAA6D,EAAE,EAC9D;AACD,QAAM,SAAS,QAAQ,UAAU,SAAY,SAAY,EAAE,OAAO,QAAQ,OAAO,CAAC;AAClF,OAAK,OAAO;AACZ,OAAK,OAAO;AACZ,OAAK,SAAS,sBAAsB;AACpC,OAAK,SAAS,QAAQ;;;AAIxB,SAAgB,gBAAgB,OAAwC;AACvE,QAAO,iBAAiB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region src/api/escape.ts
|
|
2
|
+
/** HTML-escape a string to prevent XSS when interpolated into HTML/JS */
|
|
3
|
+
function escapeHtml(str) {
|
|
4
|
+
return str.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """).replaceAll("'", "'");
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
//#endregion
|
|
8
|
+
export { escapeHtml as t };
|
|
9
|
+
//# sourceMappingURL=escape-lsNq38PP.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escape-lsNq38PP.mjs","names":[],"sources":["../src/api/escape.ts"],"sourcesContent":["/** HTML-escape a string to prevent XSS when interpolated into HTML/JS */\nexport function escapeHtml(str: string): string {\n\treturn str\n\t\t.replaceAll(\"&\", \"&\")\n\t\t.replaceAll(\"<\", \"<\")\n\t\t.replaceAll(\">\", \">\")\n\t\t.replaceAll('\"', \""\")\n\t\t.replaceAll(\"'\", \"'\");\n}\n"],"mappings":";;AACA,SAAgB,WAAW,KAAqB;AAC/C,QAAO,IACL,WAAW,KAAK,QAAQ,CACxB,WAAW,KAAK,OAAO,CACvB,WAAW,KAAK,OAAO,CACvB,WAAW,MAAK,SAAS,CACzB,WAAW,KAAK,SAAS"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { r as isMissingTableError } from "./db-errors-unnO6yiZ.mjs";
|
|
2
|
+
import { b as tableExists } from "./dialect-helpers-B1XN2HGB.mjs";
|
|
3
|
+
import { t as apiError } from "./error-BCMgPxdn.mjs";
|
|
4
|
+
import { sql } from "kysely";
|
|
5
|
+
|
|
6
|
+
//#region src/api/media-usage-write-fence.ts
|
|
7
|
+
/**
|
|
8
|
+
* The media usage activation fence alone. Write paths use the unified site
|
|
9
|
+
* write fence in `transfer/fence.ts`, which falls back to this before the
|
|
10
|
+
* transfer tables exist.
|
|
11
|
+
*/
|
|
12
|
+
async function findMediaUsageActivationWriteFenceError(db) {
|
|
13
|
+
if (!await tableExists(db, "_emdash_media_usage_activation")) return null;
|
|
14
|
+
try {
|
|
15
|
+
if ((await db.selectFrom("_emdash_media_usage_activation").select("state").where("task_key", "=", "incremental_capture").executeTakeFirst())?.state === "activating") return {
|
|
16
|
+
code: "MEDIA_USAGE_ACTIVATION_IN_PROGRESS",
|
|
17
|
+
message: "Media usage activation is in progress",
|
|
18
|
+
status: 503
|
|
19
|
+
};
|
|
20
|
+
} catch (error) {
|
|
21
|
+
console.error("[media-usage] Failed to check the activation write fence:", error);
|
|
22
|
+
return {
|
|
23
|
+
code: "MEDIA_USAGE_ACTIVATION_CHECK_FAILED",
|
|
24
|
+
message: "Unable to verify media usage activation state",
|
|
25
|
+
status: 503
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
//#endregion
|
|
32
|
+
//#region src/transfer/fence.ts
|
|
33
|
+
/**
|
|
34
|
+
* Unified site write fence: media-usage activation and transfer imports.
|
|
35
|
+
*
|
|
36
|
+
* One query answers both questions, so a fenced write path pays a single
|
|
37
|
+
* round trip. A transfer import fences writes while it executes and, after a
|
|
38
|
+
* failure or cancellation once writing started, until it is abandoned. The
|
|
39
|
+
* same query reports whether an export is running, so a fenced write can
|
|
40
|
+
* bump the export's write epoch without an extra query when none is.
|
|
41
|
+
*/
|
|
42
|
+
var SiteWriteBlockedError = class extends Error {
|
|
43
|
+
code;
|
|
44
|
+
status;
|
|
45
|
+
operationId;
|
|
46
|
+
constructor(error) {
|
|
47
|
+
super(error.message);
|
|
48
|
+
this.name = error.code;
|
|
49
|
+
this.code = error.code;
|
|
50
|
+
this.status = error.status;
|
|
51
|
+
this.operationId = error.operationId;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const CHECK_FAILED = {
|
|
55
|
+
code: "TRANSFER_FENCE_CHECK_FAILED",
|
|
56
|
+
message: "Unable to verify whether site writes are allowed",
|
|
57
|
+
status: 503
|
|
58
|
+
};
|
|
59
|
+
/** Read both fences and the running-export flag with one query. */
|
|
60
|
+
async function readSiteWriteFence(db, scope = {}) {
|
|
61
|
+
const mediaUsage = scope.mediaUsage !== false;
|
|
62
|
+
const transfer = scope.transfer !== false;
|
|
63
|
+
let row;
|
|
64
|
+
try {
|
|
65
|
+
row = (await sql`
|
|
66
|
+
SELECT
|
|
67
|
+
(
|
|
68
|
+
SELECT state FROM _emdash_media_usage_activation
|
|
69
|
+
WHERE task_key = 'incremental_capture'
|
|
70
|
+
) AS media_state,
|
|
71
|
+
(
|
|
72
|
+
SELECT id FROM _emdash_transfer_operations
|
|
73
|
+
WHERE kind = 'import'
|
|
74
|
+
AND (
|
|
75
|
+
state IN ('running', 'verifying')
|
|
76
|
+
OR (state IN ('failed', 'cancelled') AND mutation_started_at IS NOT NULL)
|
|
77
|
+
)
|
|
78
|
+
LIMIT 1
|
|
79
|
+
) AS import_id,
|
|
80
|
+
(
|
|
81
|
+
SELECT id FROM _emdash_transfer_operations
|
|
82
|
+
WHERE kind = 'export' AND state = 'running'
|
|
83
|
+
LIMIT 1
|
|
84
|
+
) AS export_id
|
|
85
|
+
`.execute(db)).rows[0];
|
|
86
|
+
} catch (error) {
|
|
87
|
+
if (isMissingTableError(error)) return {
|
|
88
|
+
error: mediaUsage ? await findMediaUsageActivationWriteFenceError(db) : null,
|
|
89
|
+
exportRunning: false
|
|
90
|
+
};
|
|
91
|
+
console.error("[transfer] Failed to check the site write fence:", error);
|
|
92
|
+
return {
|
|
93
|
+
error: CHECK_FAILED,
|
|
94
|
+
exportRunning: false
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
const exportRunning = Boolean(row?.export_id);
|
|
98
|
+
if (transfer && row?.import_id) return {
|
|
99
|
+
error: {
|
|
100
|
+
code: "TRANSFER_IMPORT_IN_PROGRESS",
|
|
101
|
+
message: "A site import is in progress or incomplete; writes are disabled",
|
|
102
|
+
status: 503,
|
|
103
|
+
operationId: row.import_id
|
|
104
|
+
},
|
|
105
|
+
exportRunning
|
|
106
|
+
};
|
|
107
|
+
if (mediaUsage && row?.media_state === "activating") return {
|
|
108
|
+
error: {
|
|
109
|
+
code: "MEDIA_USAGE_ACTIVATION_IN_PROGRESS",
|
|
110
|
+
message: "Media usage activation is in progress",
|
|
111
|
+
status: 503
|
|
112
|
+
},
|
|
113
|
+
exportRunning
|
|
114
|
+
};
|
|
115
|
+
return {
|
|
116
|
+
error: null,
|
|
117
|
+
exportRunning
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Tell running exports that a fenced write happened, so their consistency
|
|
122
|
+
* fence restarts them. Failures are logged, not thrown: the write itself is
|
|
123
|
+
* allowed either way.
|
|
124
|
+
*/
|
|
125
|
+
async function recordSiteWrite(db) {
|
|
126
|
+
try {
|
|
127
|
+
await bumpRunningExportWriteEpochs(db);
|
|
128
|
+
} catch (error) {
|
|
129
|
+
console.error("[transfer] Failed to record a write for running exports:", error);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/** Increments the write epoch of every running export; returns how many there were. */
|
|
133
|
+
async function bumpRunningExportWriteEpochs(db) {
|
|
134
|
+
const result = await db.updateTable("_emdash_transfer_operations").set({ write_epoch: sql`write_epoch + 1` }).where("kind", "=", "export").where("state", "=", "running").executeTakeFirst();
|
|
135
|
+
return Number(result.numUpdatedRows ?? 0n);
|
|
136
|
+
}
|
|
137
|
+
const NOTHING_TO_RECORD = async () => {};
|
|
138
|
+
/**
|
|
139
|
+
* Throw {@link SiteWriteBlockedError} when a fence blocks writes. Call it
|
|
140
|
+
* immediately before the write, and call the returned function once the
|
|
141
|
+
* write has succeeded: recording it afterwards means an export whose fence
|
|
142
|
+
* was captured while the write ran still sees it.
|
|
143
|
+
*/
|
|
144
|
+
async function assertSiteWriteAllowed(db) {
|
|
145
|
+
const status = await readSiteWriteFence(db);
|
|
146
|
+
if (status.error) throw new SiteWriteBlockedError(status.error);
|
|
147
|
+
return status.exportRunning ? () => recordSiteWrite(db) : NOTHING_TO_RECORD;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* The fence as an API error response, or null when writes are allowed.
|
|
151
|
+
* Records nothing: for the plugin lifecycle routes that call it, the fence
|
|
152
|
+
* middleware records a successful response's write.
|
|
153
|
+
*/
|
|
154
|
+
async function checkSiteWriteFence(db) {
|
|
155
|
+
const status = await readSiteWriteFence(db);
|
|
156
|
+
if (status.error) return apiError(status.error.code, status.error.message, status.error.status);
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
//#endregion
|
|
161
|
+
export { readSiteWriteFence as a, checkSiteWriteFence as i, assertSiteWriteAllowed as n, recordSiteWrite as o, bumpRunningExportWriteEpochs as r, SiteWriteBlockedError as t };
|
|
162
|
+
//# sourceMappingURL=fence-Dagicj14.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fence-Dagicj14.mjs","names":[],"sources":["../src/api/media-usage-write-fence.ts","../src/transfer/fence.ts"],"sourcesContent":["import type { Kysely } from \"kysely\";\n\nimport { tableExists } from \"../database/dialect-helpers.js\";\nimport type { Database } from \"../database/types.js\";\n\nexport interface MediaUsageActivationWriteFenceError {\n\tcode: \"MEDIA_USAGE_ACTIVATION_IN_PROGRESS\" | \"MEDIA_USAGE_ACTIVATION_CHECK_FAILED\";\n\tmessage: string;\n\tstatus: 503;\n}\n\n/**\n * The media usage activation fence alone. Write paths use the unified site\n * write fence in `transfer/fence.ts`, which falls back to this before the\n * transfer tables exist.\n */\nexport async function findMediaUsageActivationWriteFenceError(\n\tdb: Kysely<Database>,\n): Promise<MediaUsageActivationWriteFenceError | null> {\n\tif (!(await tableExists(db, \"_emdash_media_usage_activation\"))) return null;\n\ttry {\n\t\tconst row = await db\n\t\t\t.selectFrom(\"_emdash_media_usage_activation\")\n\t\t\t.select(\"state\")\n\t\t\t.where(\"task_key\", \"=\", \"incremental_capture\")\n\t\t\t.executeTakeFirst();\n\t\tif (row?.state === \"activating\") {\n\t\t\treturn {\n\t\t\t\tcode: \"MEDIA_USAGE_ACTIVATION_IN_PROGRESS\",\n\t\t\t\tmessage: \"Media usage activation is in progress\",\n\t\t\t\tstatus: 503,\n\t\t\t};\n\t\t}\n\t} catch (error) {\n\t\tconsole.error(\"[media-usage] Failed to check the activation write fence:\", error);\n\t\treturn {\n\t\t\tcode: \"MEDIA_USAGE_ACTIVATION_CHECK_FAILED\",\n\t\t\tmessage: \"Unable to verify media usage activation state\",\n\t\t\tstatus: 503,\n\t\t};\n\t}\n\treturn null;\n}\n","/**\n * Unified site write fence: media-usage activation and transfer imports.\n *\n * One query answers both questions, so a fenced write path pays a single\n * round trip. A transfer import fences writes while it executes and, after a\n * failure or cancellation once writing started, until it is abandoned. The\n * same query reports whether an export is running, so a fenced write can\n * bump the export's write epoch without an extra query when none is.\n */\n\nimport { sql, type Kysely } from \"kysely\";\n\nimport { apiError } from \"../api/error.js\";\nimport { findMediaUsageActivationWriteFenceError } from \"../api/media-usage-write-fence.js\";\nimport type { Database } from \"../database/types.js\";\nimport { isMissingTableError } from \"../utils/db-errors.js\";\n\nexport type SiteWriteFenceCode =\n\t| \"MEDIA_USAGE_ACTIVATION_IN_PROGRESS\"\n\t| \"MEDIA_USAGE_ACTIVATION_CHECK_FAILED\"\n\t| \"TRANSFER_IMPORT_IN_PROGRESS\"\n\t| \"TRANSFER_FENCE_CHECK_FAILED\";\n\nexport interface SiteWriteFenceError {\n\tcode: SiteWriteFenceCode;\n\tmessage: string;\n\tstatus: 503;\n\t/** The fencing import, when the fence is a transfer import. */\n\toperationId?: string;\n}\n\nexport class SiteWriteBlockedError extends Error {\n\treadonly code: SiteWriteFenceCode;\n\treadonly status: 503;\n\treadonly operationId: string | undefined;\n\n\tconstructor(error: SiteWriteFenceError) {\n\t\tsuper(error.message);\n\t\tthis.name = error.code;\n\t\tthis.code = error.code;\n\t\tthis.status = error.status;\n\t\tthis.operationId = error.operationId;\n\t}\n}\n\n/** Which fences apply to a write. Both apply unless one is turned off. */\nexport interface SiteWriteFenceScope {\n\tmediaUsage?: boolean;\n\ttransfer?: boolean;\n}\n\nexport interface SiteWriteFenceStatus {\n\terror: SiteWriteFenceError | null;\n\t/** Whether an export was running when the fence was read. */\n\texportRunning: boolean;\n}\n\nconst CHECK_FAILED: SiteWriteFenceError = {\n\tcode: \"TRANSFER_FENCE_CHECK_FAILED\",\n\tmessage: \"Unable to verify whether site writes are allowed\",\n\tstatus: 503,\n};\n\n/** Read both fences and the running-export flag with one query. */\nexport async function readSiteWriteFence(\n\tdb: Kysely<Database>,\n\tscope: SiteWriteFenceScope = {},\n): Promise<SiteWriteFenceStatus> {\n\tconst mediaUsage = scope.mediaUsage !== false;\n\tconst transfer = scope.transfer !== false;\n\tlet row:\n\t\t| { media_state: string | null; import_id: string | null; export_id: string | null }\n\t\t| undefined;\n\ttry {\n\t\tconst result = await sql<{\n\t\t\tmedia_state: string | null;\n\t\t\timport_id: string | null;\n\t\t\texport_id: string | null;\n\t\t}>`\n\t\t\tSELECT\n\t\t\t\t(\n\t\t\t\t\tSELECT state FROM _emdash_media_usage_activation\n\t\t\t\t\tWHERE task_key = 'incremental_capture'\n\t\t\t\t) AS media_state,\n\t\t\t\t(\n\t\t\t\t\tSELECT id FROM _emdash_transfer_operations\n\t\t\t\t\tWHERE kind = 'import'\n\t\t\t\t\t\tAND (\n\t\t\t\t\t\t\tstate IN ('running', 'verifying')\n\t\t\t\t\t\t\tOR (state IN ('failed', 'cancelled') AND mutation_started_at IS NOT NULL)\n\t\t\t\t\t\t)\n\t\t\t\t\tLIMIT 1\n\t\t\t\t) AS import_id,\n\t\t\t\t(\n\t\t\t\t\tSELECT id FROM _emdash_transfer_operations\n\t\t\t\t\tWHERE kind = 'export' AND state = 'running'\n\t\t\t\t\tLIMIT 1\n\t\t\t\t) AS export_id\n\t\t`.execute(db);\n\t\trow = result.rows[0];\n\t} catch (error) {\n\t\tif (isMissingTableError(error)) {\n\t\t\treturn {\n\t\t\t\terror: mediaUsage ? await findMediaUsageActivationWriteFenceError(db) : null,\n\t\t\t\texportRunning: false,\n\t\t\t};\n\t\t}\n\t\tconsole.error(\"[transfer] Failed to check the site write fence:\", error);\n\t\treturn { error: CHECK_FAILED, exportRunning: false };\n\t}\n\n\tconst exportRunning = Boolean(row?.export_id);\n\tif (transfer && row?.import_id) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: \"TRANSFER_IMPORT_IN_PROGRESS\",\n\t\t\t\tmessage: \"A site import is in progress or incomplete; writes are disabled\",\n\t\t\t\tstatus: 503,\n\t\t\t\toperationId: row.import_id,\n\t\t\t},\n\t\t\texportRunning,\n\t\t};\n\t}\n\tif (mediaUsage && row?.media_state === \"activating\") {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: \"MEDIA_USAGE_ACTIVATION_IN_PROGRESS\",\n\t\t\t\tmessage: \"Media usage activation is in progress\",\n\t\t\t\tstatus: 503,\n\t\t\t},\n\t\t\texportRunning,\n\t\t};\n\t}\n\treturn { error: null, exportRunning };\n}\n\nexport async function findSiteWriteFenceError(\n\tdb: Kysely<Database>,\n): Promise<SiteWriteFenceError | null> {\n\treturn (await readSiteWriteFence(db)).error;\n}\n\n/**\n * Tell running exports that a fenced write happened, so their consistency\n * fence restarts them. Failures are logged, not thrown: the write itself is\n * allowed either way.\n */\nexport async function recordSiteWrite(db: Kysely<Database>): Promise<void> {\n\ttry {\n\t\tawait bumpRunningExportWriteEpochs(db);\n\t} catch (error) {\n\t\tconsole.error(\"[transfer] Failed to record a write for running exports:\", error);\n\t}\n}\n\n/** Increments the write epoch of every running export; returns how many there were. */\nexport async function bumpRunningExportWriteEpochs(db: Kysely<Database>): Promise<number> {\n\tconst result = await db\n\t\t.updateTable(\"_emdash_transfer_operations\")\n\t\t.set({ write_epoch: sql<number>`write_epoch + 1` })\n\t\t.where(\"kind\", \"=\", \"export\")\n\t\t.where(\"state\", \"=\", \"running\")\n\t\t.executeTakeFirst();\n\treturn Number(result.numUpdatedRows ?? 0n);\n}\n\n/** Records a completed write for running exports; a no-op when none was running. */\nexport type RecordSiteWrite = () => Promise<void>;\n\nconst NOTHING_TO_RECORD: RecordSiteWrite = async () => {};\n\n/**\n * Throw {@link SiteWriteBlockedError} when a fence blocks writes. Call it\n * immediately before the write, and call the returned function once the\n * write has succeeded: recording it afterwards means an export whose fence\n * was captured while the write ran still sees it.\n */\nexport async function assertSiteWriteAllowed(db: Kysely<Database>): Promise<RecordSiteWrite> {\n\tconst status = await readSiteWriteFence(db);\n\tif (status.error) throw new SiteWriteBlockedError(status.error);\n\treturn status.exportRunning ? () => recordSiteWrite(db) : NOTHING_TO_RECORD;\n}\n\n/**\n * The fence as an API error response, or null when writes are allowed.\n * Records nothing: for the plugin lifecycle routes that call it, the fence\n * middleware records a successful response's write.\n */\nexport async function checkSiteWriteFence(db: Kysely<Database>): Promise<Response | null> {\n\tconst status = await readSiteWriteFence(db);\n\tif (status.error) return apiError(status.error.code, status.error.message, status.error.status);\n\treturn null;\n}\n"],"mappings":";;;;;;;;;;;AAgBA,eAAsB,wCACrB,IACsD;AACtD,KAAI,CAAE,MAAM,YAAY,IAAI,iCAAiC,CAAG,QAAO;AACvE,KAAI;AAMH,OALY,MAAM,GAChB,WAAW,iCAAiC,CAC5C,OAAO,QAAQ,CACf,MAAM,YAAY,KAAK,sBAAsB,CAC7C,kBAAkB,GACX,UAAU,aAClB,QAAO;GACN,MAAM;GACN,SAAS;GACT,QAAQ;GACR;UAEM,OAAO;AACf,UAAQ,MAAM,6DAA6D,MAAM;AACjF,SAAO;GACN,MAAM;GACN,SAAS;GACT,QAAQ;GACR;;AAEF,QAAO;;;;;;;;;;;;;;ACVR,IAAa,wBAAb,cAA2C,MAAM;CAChD,AAAS;CACT,AAAS;CACT,AAAS;CAET,YAAY,OAA4B;AACvC,QAAM,MAAM,QAAQ;AACpB,OAAK,OAAO,MAAM;AAClB,OAAK,OAAO,MAAM;AAClB,OAAK,SAAS,MAAM;AACpB,OAAK,cAAc,MAAM;;;AAgB3B,MAAM,eAAoC;CACzC,MAAM;CACN,SAAS;CACT,QAAQ;CACR;;AAGD,eAAsB,mBACrB,IACA,QAA6B,EAAE,EACC;CAChC,MAAM,aAAa,MAAM,eAAe;CACxC,MAAM,WAAW,MAAM,aAAa;CACpC,IAAI;AAGJ,KAAI;AA0BH,SAzBe,MAAM,GAInB;;;;;;;;;;;;;;;;;;;;IAoBA,QAAQ,GAAG,EACA,KAAK;UACV,OAAO;AACf,MAAI,oBAAoB,MAAM,CAC7B,QAAO;GACN,OAAO,aAAa,MAAM,wCAAwC,GAAG,GAAG;GACxE,eAAe;GACf;AAEF,UAAQ,MAAM,oDAAoD,MAAM;AACxE,SAAO;GAAE,OAAO;GAAc,eAAe;GAAO;;CAGrD,MAAM,gBAAgB,QAAQ,KAAK,UAAU;AAC7C,KAAI,YAAY,KAAK,UACpB,QAAO;EACN,OAAO;GACN,MAAM;GACN,SAAS;GACT,QAAQ;GACR,aAAa,IAAI;GACjB;EACD;EACA;AAEF,KAAI,cAAc,KAAK,gBAAgB,aACtC,QAAO;EACN,OAAO;GACN,MAAM;GACN,SAAS;GACT,QAAQ;GACR;EACD;EACA;AAEF,QAAO;EAAE,OAAO;EAAM;EAAe;;;;;;;AActC,eAAsB,gBAAgB,IAAqC;AAC1E,KAAI;AACH,QAAM,6BAA6B,GAAG;UAC9B,OAAO;AACf,UAAQ,MAAM,4DAA4D,MAAM;;;;AAKlF,eAAsB,6BAA6B,IAAuC;CACzF,MAAM,SAAS,MAAM,GACnB,YAAY,8BAA8B,CAC1C,IAAI,EAAE,aAAa,GAAW,mBAAmB,CAAC,CAClD,MAAM,QAAQ,KAAK,SAAS,CAC5B,MAAM,SAAS,KAAK,UAAU,CAC9B,kBAAkB;AACpB,QAAO,OAAO,OAAO,kBAAkB,GAAG;;AAM3C,MAAM,oBAAqC,YAAY;;;;;;;AAQvD,eAAsB,uBAAuB,IAAgD;CAC5F,MAAM,SAAS,MAAM,mBAAmB,GAAG;AAC3C,KAAI,OAAO,MAAO,OAAM,IAAI,sBAAsB,OAAO,MAAM;AAC/D,QAAO,OAAO,sBAAsB,gBAAgB,GAAG,GAAG;;;;;;;AAQ3D,eAAsB,oBAAoB,IAAgD;CACzF,MAAM,SAAS,MAAM,mBAAmB,GAAG;AAC3C,KAAI,OAAO,MAAO,QAAO,SAAS,OAAO,MAAM,MAAM,OAAO,MAAM,SAAS,OAAO,MAAM,OAAO;AAC/F,QAAO"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { f as __exportAll } from "./runner-Bkkfk4O8.mjs";
|
|
2
|
+
import { n as isMissingColumnError, r as isMissingTableError } from "./db-errors-unnO6yiZ.mjs";
|
|
3
|
+
import { f as jsonExtractExpr } from "./dialect-helpers-B1XN2HGB.mjs";
|
|
4
|
+
import { n as cachedQuery, t as CacheNamespace } from "./object-cache-DmKr09La.mjs";
|
|
5
|
+
import { r as requestCached } from "./request-cache-5z2WzWmh.mjs";
|
|
6
|
+
import { u as getDb } from "./loader-DhnedqY4.mjs";
|
|
7
|
+
import { sql } from "kysely";
|
|
8
|
+
|
|
9
|
+
//#region src/references/field-map.ts
|
|
10
|
+
/**
|
|
11
|
+
* The reference fields a collection carries, for the public query path.
|
|
12
|
+
*
|
|
13
|
+
* `referenceFieldConstraints` (api/handlers) answers the write question — how
|
|
14
|
+
* many entries may a field select, and is it required. Rendering asks a
|
|
15
|
+
* different one: which collection do I load, and which end of the relation am I
|
|
16
|
+
* standing on. Both read the same rows; keeping them apart keeps the render
|
|
17
|
+
* path off the relation table, which the constraints map has to read for its
|
|
18
|
+
* limits.
|
|
19
|
+
*/
|
|
20
|
+
var field_map_exports = /* @__PURE__ */ __exportAll({ getReferenceFieldMap: () => getReferenceFieldMap });
|
|
21
|
+
function isRecord(value) {
|
|
22
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
23
|
+
}
|
|
24
|
+
async function loadBindings(db, collection) {
|
|
25
|
+
const relationSlug = jsonExtractExpr(db, "validation", "relation");
|
|
26
|
+
let rows;
|
|
27
|
+
try {
|
|
28
|
+
rows = (await sql`
|
|
29
|
+
SELECT f.slug AS slug, f.validation AS validation, r.id AS relation_id
|
|
30
|
+
FROM ${sql.ref("_emdash_fields")} AS f
|
|
31
|
+
INNER JOIN ${sql.ref("_emdash_collections")} AS c ON c.id = f.collection_id
|
|
32
|
+
LEFT JOIN ${sql.ref("_emdash_relations")} AS r ON r.slug = ${sql.raw(relationSlug)}
|
|
33
|
+
WHERE c.slug = ${collection} AND f.type = 'reference'
|
|
34
|
+
`.execute(db)).rows;
|
|
35
|
+
} catch (error) {
|
|
36
|
+
if (isMissingTableError(error) || isMissingColumnError(error)) return null;
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
const bindings = [];
|
|
40
|
+
for (const row of rows) {
|
|
41
|
+
if (!row.validation) continue;
|
|
42
|
+
let parsed;
|
|
43
|
+
try {
|
|
44
|
+
parsed = JSON.parse(row.validation);
|
|
45
|
+
} catch {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (!isRecord(parsed)) continue;
|
|
49
|
+
const { relation, targetCollection } = parsed;
|
|
50
|
+
if (typeof relation !== "string" || typeof targetCollection !== "string") continue;
|
|
51
|
+
if (!row.relation_id) continue;
|
|
52
|
+
bindings.push({
|
|
53
|
+
slug: row.slug,
|
|
54
|
+
relation,
|
|
55
|
+
relationId: row.relation_id,
|
|
56
|
+
targetCollection,
|
|
57
|
+
side: parsed.relationSide === "child" ? "child" : "parent"
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return bindings;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Every bound reference field on `collection`, by field slug.
|
|
64
|
+
*
|
|
65
|
+
* Cached twice over: once per request, and once in the schema object-cache
|
|
66
|
+
* namespace, which a schema edit already bumps. A render that asks for
|
|
67
|
+
* references therefore pays for this lookup at most once per isolate between
|
|
68
|
+
* schema changes, and a render that asks for none never issues it.
|
|
69
|
+
*/
|
|
70
|
+
function getReferenceFieldMap(collection) {
|
|
71
|
+
return requestCached(`reference-field-map:${collection}`, async () => {
|
|
72
|
+
const bindings = await cachedQuery({
|
|
73
|
+
namespace: CacheNamespace.SCHEMA,
|
|
74
|
+
key: `reference-field-map:${collection}`,
|
|
75
|
+
load: async () => loadBindings(await getDb(), collection),
|
|
76
|
+
cacheable: (value) => value !== null
|
|
77
|
+
});
|
|
78
|
+
return new Map((bindings ?? []).map((binding) => [binding.slug, binding]));
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
//#endregion
|
|
83
|
+
export { getReferenceFieldMap as n, field_map_exports as t };
|
|
84
|
+
//# sourceMappingURL=field-map-BSXdNGt5.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-map-BSXdNGt5.mjs","names":[],"sources":["../src/references/field-map.ts"],"sourcesContent":["/**\n * The reference fields a collection carries, for the public query path.\n *\n * `referenceFieldConstraints` (api/handlers) answers the write question — how\n * many entries may a field select, and is it required. Rendering asks a\n * different one: which collection do I load, and which end of the relation am I\n * standing on. Both read the same rows; keeping them apart keeps the render\n * path off the relation table, which the constraints map has to read for its\n * limits.\n */\n\nimport { sql, type Kysely } from \"kysely\";\n\nimport { jsonExtractExpr } from \"../database/dialect-helpers.js\";\nimport type { Database } from \"../database/types.js\";\nimport { getDb } from \"../loader.js\";\nimport { cachedQuery, CacheNamespace } from \"../object-cache/index.js\";\nimport { requestCached } from \"../request-cache.js\";\nimport { isMissingColumnError, isMissingTableError } from \"../utils/db-errors.js\";\n\n/** One reference field, as a render needs it. */\nexport interface ReferenceFieldBinding {\n\t/** Field slug — the key a caller names a selection under. */\n\tslug: string;\n\t/** Relation slug the field binds to. */\n\trelation: string;\n\t/**\n\t * The relation's id, read in the same statement as the binding. Rendering\n\t * pages the link table by id, so carrying it here is what keeps a field's\n\t * cost at one link read rather than a slug lookup and then the read.\n\t */\n\trelationId: string;\n\t/** Which end of the relation this field's own collection sits on. */\n\tside: \"parent\" | \"child\";\n\t/** The collection at the other end. */\n\ttargetCollection: string;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nasync function loadBindings(\n\tdb: Kysely<Database>,\n\tcollection: string,\n): Promise<ReferenceFieldBinding[] | null> {\n\t// The relation's id joins in here rather than being looked up per field at\n\t// render time: the field stores a slug, but the link table is keyed by id.\n\tconst relationSlug = jsonExtractExpr(db, \"validation\", \"relation\");\n\tlet rows: { slug: string; validation: string | null; relation_id: string | null }[];\n\ttry {\n\t\tconst result = await sql<{\n\t\t\tslug: string;\n\t\t\tvalidation: string | null;\n\t\t\trelation_id: string | null;\n\t\t}>`\n\t\t\tSELECT f.slug AS slug, f.validation AS validation, r.id AS relation_id\n\t\t\tFROM ${sql.ref(\"_emdash_fields\")} AS f\n\t\t\tINNER JOIN ${sql.ref(\"_emdash_collections\")} AS c ON c.id = f.collection_id\n\t\t\tLEFT JOIN ${sql.ref(\"_emdash_relations\")} AS r ON r.slug = ${sql.raw(relationSlug)}\n\t\t\tWHERE c.slug = ${collection} AND f.type = 'reference'\n\t\t`.execute(db);\n\t\trows = result.rows;\n\t} catch (error) {\n\t\t// A partial schema is transient; don't retain its degraded result in cache.\n\t\tif (isMissingTableError(error) || isMissingColumnError(error)) return null;\n\t\tthrow error;\n\t}\n\n\tconst bindings: ReferenceFieldBinding[] = [];\n\tfor (const row of rows) {\n\t\tif (!row.validation) continue;\n\t\tlet parsed: unknown;\n\t\ttry {\n\t\t\tparsed = JSON.parse(row.validation);\n\t\t} catch {\n\t\t\tcontinue;\n\t\t}\n\t\tif (!isRecord(parsed)) continue;\n\t\tconst { relation, targetCollection } = parsed;\n\t\t// A field with neither is unbound: it keeps its own column, and its value\n\t\t// is already in `data`. There is nothing to resolve. Nor is there when the\n\t\t// named relation is gone — the join leaves no id to page by.\n\t\tif (typeof relation !== \"string\" || typeof targetCollection !== \"string\") continue;\n\t\tif (!row.relation_id) continue;\n\t\tbindings.push({\n\t\t\tslug: row.slug,\n\t\t\trelation,\n\t\t\trelationId: row.relation_id,\n\t\t\ttargetCollection,\n\t\t\tside: parsed.relationSide === \"child\" ? \"child\" : \"parent\",\n\t\t});\n\t}\n\treturn bindings;\n}\n\n/**\n * Every bound reference field on `collection`, by field slug.\n *\n * Cached twice over: once per request, and once in the schema object-cache\n * namespace, which a schema edit already bumps. A render that asks for\n * references therefore pays for this lookup at most once per isolate between\n * schema changes, and a render that asks for none never issues it.\n */\nexport function getReferenceFieldMap(\n\tcollection: string,\n): Promise<Map<string, ReferenceFieldBinding>> {\n\treturn requestCached(`reference-field-map:${collection}`, async () => {\n\t\tconst bindings = await cachedQuery({\n\t\t\tnamespace: CacheNamespace.SCHEMA,\n\t\t\tkey: `reference-field-map:${collection}`,\n\t\t\tload: async () => loadBindings(await getDb(), collection),\n\t\t\tcacheable: (value) => value !== null,\n\t\t});\n\t\treturn new Map((bindings ?? []).map((binding) => [binding.slug, binding]));\n\t});\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAsCA,SAAS,SAAS,OAAkD;AACnE,QAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,MAAM;;AAG5E,eAAe,aACd,IACA,YAC0C;CAG1C,MAAM,eAAe,gBAAgB,IAAI,cAAc,WAAW;CAClE,IAAI;AACJ,KAAI;AAYH,UAXe,MAAM,GAInB;;UAEM,IAAI,IAAI,iBAAiB,CAAC;gBACpB,IAAI,IAAI,sBAAsB,CAAC;eAChC,IAAI,IAAI,oBAAoB,CAAC,oBAAoB,IAAI,IAAI,aAAa,CAAC;oBAClE,WAAW;IAC3B,QAAQ,GAAG,EACC;UACN,OAAO;AAEf,MAAI,oBAAoB,MAAM,IAAI,qBAAqB,MAAM,CAAE,QAAO;AACtE,QAAM;;CAGP,MAAM,WAAoC,EAAE;AAC5C,MAAK,MAAM,OAAO,MAAM;AACvB,MAAI,CAAC,IAAI,WAAY;EACrB,IAAI;AACJ,MAAI;AACH,YAAS,KAAK,MAAM,IAAI,WAAW;UAC5B;AACP;;AAED,MAAI,CAAC,SAAS,OAAO,CAAE;EACvB,MAAM,EAAE,UAAU,qBAAqB;AAIvC,MAAI,OAAO,aAAa,YAAY,OAAO,qBAAqB,SAAU;AAC1E,MAAI,CAAC,IAAI,YAAa;AACtB,WAAS,KAAK;GACb,MAAM,IAAI;GACV;GACA,YAAY,IAAI;GAChB;GACA,MAAM,OAAO,iBAAiB,UAAU,UAAU;GAClD,CAAC;;AAEH,QAAO;;;;;;;;;;AAWR,SAAgB,qBACf,YAC8C;AAC9C,QAAO,cAAc,uBAAuB,cAAc,YAAY;EACrE,MAAM,WAAW,MAAM,YAAY;GAClC,WAAW,eAAe;GAC1B,KAAK,uBAAuB;GAC5B,MAAM,YAAY,aAAa,MAAM,OAAO,EAAE,WAAW;GACzD,YAAY,UAAU,UAAU;GAChC,CAAC;AACF,SAAO,IAAI,KAAK,YAAY,EAAE,EAAE,KAAK,YAAY,CAAC,QAAQ,MAAM,QAAQ,CAAC,CAAC;GACzE"}
|