emdash 0.40.1 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/action-token-CbKDcPJi.mjs +26 -0
- package/dist/action-token-CbKDcPJi.mjs.map +1 -0
- package/dist/activation-PtniBLt9.mjs +382 -0
- package/dist/activation-PtniBLt9.mjs.map +1 -0
- package/dist/adapters-C_Tf5x90.d.mts +171 -0
- package/dist/adapters-C_Tf5x90.d.mts.map +1 -0
- package/dist/allowed-origins-U1z4TdEZ.mjs +116 -0
- package/dist/allowed-origins-U1z4TdEZ.mjs.map +1 -0
- package/dist/api/route-utils.d.mts +4 -4
- package/dist/api/route-utils.mjs +46 -45
- package/dist/api/route-utils.mjs.map +1 -1
- package/dist/api/schemas/index.d.mts +2 -2
- package/dist/api/schemas/index.mjs +10 -10
- package/dist/api-CXwQkV_m.mjs +5122 -0
- package/dist/api-CXwQkV_m.mjs.map +1 -0
- package/dist/api-tokens-89WlohEN.mjs +166 -0
- package/dist/api-tokens-89WlohEN.mjs.map +1 -0
- package/dist/apply-Do3KNnUk.mjs +1659 -0
- package/dist/apply-Do3KNnUk.mjs.map +1 -0
- package/dist/approvals-CAX9Yw33.mjs +460 -0
- package/dist/approvals-CAX9Yw33.mjs.map +1 -0
- package/dist/artifact-fetch-B9W4CEST.mjs +659 -0
- package/dist/artifact-fetch-B9W4CEST.mjs.map +1 -0
- package/dist/astro/index.d.mts +14 -14
- package/dist/astro/index.mjs +20 -24
- package/dist/astro/index.mjs.map +1 -1
- package/dist/astro/middleware/auth.d.mts +12 -12
- package/dist/astro/middleware/auth.mjs +10 -10
- package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
- package/dist/astro/middleware/redirect.mjs +7 -7
- package/dist/astro/middleware/request-context.mjs +3 -3
- package/dist/astro/middleware/setup.mjs +1 -1
- package/dist/astro/middleware.d.mts +12 -12
- package/dist/astro/middleware.mjs +109 -106
- package/dist/astro/middleware.mjs.map +1 -1
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +14 -14
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +14 -14
- package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +6 -6
- package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -7
- package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +7 -7
- package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +17 -17
- package/dist/astro/routes/api/admin/byline-fields/index.mjs +17 -17
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +17 -17
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +23 -23
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +23 -23
- package/dist/astro/routes/api/admin/bylines/index.mjs +23 -23
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +18 -18
- package/dist/astro/routes/api/admin/comments/_id_.mjs +7 -7
- package/dist/astro/routes/api/admin/comments/bulk.mjs +17 -17
- package/dist/astro/routes/api/admin/comments/counts.mjs +7 -7
- package/dist/astro/routes/api/admin/comments/index.mjs +17 -17
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
- package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
- package/dist/astro/routes/api/admin/media-usage/activation.mjs +20 -20
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +22 -22
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +22 -22
- package/dist/astro/routes/api/admin/media-usage/progress.mjs +25 -25
- package/dist/astro/routes/api/admin/media-usage/repair.mjs +31 -31
- package/dist/astro/routes/api/admin/media-usage/work/index.mjs +22 -22
- package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +22 -22
- package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +8 -8
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +8 -8
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +72 -68
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +7 -7
- package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +71 -67
- package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +72 -68
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +82 -78
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/index.mjs +72 -68
- package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +5 -5
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +71 -67
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +81 -77
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +71 -67
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +72 -68
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +83 -79
- package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +9 -9
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs +74 -70
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +7 -7
- package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +72 -68
- package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/updates.mjs +71 -67
- package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
- package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +6 -6
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +71 -67
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +5 -5
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +71 -67
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/_...path_.mjs +4 -4
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +40 -40
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +40 -40
- package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/capabilities.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +43 -43
- package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +43 -43
- package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +43 -43
- package/dist/astro/routes/api/admin/transfer/exports/index.mjs +44 -44
- package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +44 -44
- package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +44 -44
- package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +44 -44
- package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +42 -42
- package/dist/astro/routes/api/admin/transfer/imports/index.mjs +44 -44
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs +5 -5
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs +4 -4
- package/dist/astro/routes/api/admin/users/_id_/index.mjs +15 -15
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
- package/dist/astro/routes/api/admin/users/index.mjs +14 -14
- package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
- package/dist/astro/routes/api/auth/invite/accept.mjs +4 -4
- package/dist/astro/routes/api/auth/invite/complete.mjs +18 -18
- package/dist/astro/routes/api/auth/invite/index.mjs +16 -16
- package/dist/astro/routes/api/auth/invite/register-options.mjs +17 -17
- package/dist/astro/routes/api/auth/logout.mjs +5 -5
- package/dist/astro/routes/api/auth/magic-link/send.mjs +18 -18
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +14 -14
- package/dist/astro/routes/api/auth/me.mjs +15 -15
- package/dist/astro/routes/api/auth/mode.mjs +5 -5
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +3 -3
- package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
- package/dist/astro/routes/api/auth/passkey/_id_.mjs +14 -14
- package/dist/astro/routes/api/auth/passkey/index.mjs +4 -4
- package/dist/astro/routes/api/auth/passkey/options.mjs +19 -19
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +17 -17
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +18 -18
- package/dist/astro/routes/api/auth/passkey/verify.mjs +18 -18
- package/dist/astro/routes/api/auth/signup/complete.mjs +18 -18
- package/dist/astro/routes/api/auth/signup/request.mjs +17 -17
- package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +12 -12
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +18 -18
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +17 -17
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +17 -17
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +11 -11
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +31 -31
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +17 -17
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts +1 -2
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +42 -53
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +34 -29
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +17 -17
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +25 -24
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +17 -17
- package/dist/astro/routes/api/content/_collection_/_id_.d.mts.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +18 -18
- package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/authors.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/index.mjs +15 -15
- package/dist/astro/routes/api/content/_collection_/trash.mjs +15 -15
- package/dist/astro/routes/api/dashboard.mjs +10 -9
- package/dist/astro/routes/api/dashboard.mjs.map +1 -1
- package/dist/astro/routes/api/dev/emails.mjs +5 -5
- package/dist/astro/routes/api/health.mjs +6 -6
- package/dist/astro/routes/api/import/probe.d.mts +3 -3
- package/dist/astro/routes/api/import/probe.mjs +23 -23
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +6 -6
- package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -13
- package/dist/astro/routes/api/import/wordpress/execute.mjs +16 -16
- package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
- package/dist/astro/routes/api/import/wordpress/media.mjs +19 -19
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +18 -18
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +28 -28
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +23 -23
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +34 -34
- package/dist/astro/routes/api/manifest.mjs +6 -6
- package/dist/astro/routes/api/mcp.mjs +91 -91
- package/dist/astro/routes/api/media/_id_/confirm.mjs +19 -19
- package/dist/astro/routes/api/media/_id_/replace.mjs +16 -16
- package/dist/astro/routes/api/media/_id_/upload.mjs +9 -9
- package/dist/astro/routes/api/media/_id_/usage.mjs +33 -33
- package/dist/astro/routes/api/media/_id_.mjs +31 -31
- package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +6 -6
- package/dist/astro/routes/api/media/file/_...key_.mjs +9 -9
- package/dist/astro/routes/api/media/folders/_id_.mjs +16 -16
- package/dist/astro/routes/api/media/folders/index.mjs +16 -16
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +5 -5
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +5 -5
- package/dist/astro/routes/api/media/providers/index.mjs +5 -5
- package/dist/astro/routes/api/media/upload-url.mjs +18 -18
- package/dist/astro/routes/api/media.mjs +35 -35
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +17 -17
- package/dist/astro/routes/api/menus/_name_/items.mjs +17 -17
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +17 -17
- package/dist/astro/routes/api/menus/_name_/translations.mjs +17 -17
- package/dist/astro/routes/api/menus/_name_.mjs +17 -17
- package/dist/astro/routes/api/menus/index.mjs +17 -17
- package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
- package/dist/astro/routes/api/oauth/device/authorize.d.mts +2 -1
- package/dist/astro/routes/api/oauth/device/authorize.d.mts.map +1 -1
- package/dist/astro/routes/api/oauth/device/authorize.mjs +23 -9
- package/dist/astro/routes/api/oauth/device/authorize.mjs.map +1 -1
- package/dist/astro/routes/api/oauth/device/code.mjs +11 -11
- package/dist/astro/routes/api/oauth/device/token.mjs +10 -10
- package/dist/astro/routes/api/oauth/register.mjs +5 -5
- package/dist/astro/routes/api/oauth/token/refresh.mjs +8 -8
- package/dist/astro/routes/api/oauth/token/revoke.mjs +8 -8
- package/dist/astro/routes/api/oauth/token.mjs +8 -8
- package/dist/astro/routes/api/openapi.json.mjs +20 -20
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +11 -11
- package/dist/astro/routes/api/redirects/404s/index.mjs +19 -19
- package/dist/astro/routes/api/redirects/404s/summary.mjs +19 -19
- package/dist/astro/routes/api/redirects/_id_.mjs +19 -19
- package/dist/astro/routes/api/redirects/index.mjs +19 -19
- package/dist/astro/routes/api/relations/_id_/index.mjs +34 -29
- package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/relations/index.mjs +36 -31
- package/dist/astro/routes/api/relations/index.mjs.map +1 -1
- package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +5 -5
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +5 -5
- package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +71 -67
- package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +71 -67
- package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
- package/dist/astro/routes/api/schema/block-types/index.mjs +71 -67
- package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +73 -69
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +71 -67
- package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +71 -67
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +71 -67
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/index.mjs +71 -67
- package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/reorder.mjs +71 -67
- package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/index.mjs +16 -16
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +71 -67
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/schema/orphans/index.mjs +71 -67
- package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
- package/dist/astro/routes/api/search/enable.mjs +19 -19
- package/dist/astro/routes/api/search/index.mjs +18 -18
- package/dist/astro/routes/api/search/rebuild.mjs +19 -19
- package/dist/astro/routes/api/search/stats.mjs +9 -9
- package/dist/astro/routes/api/search/suggest.mjs +18 -18
- package/dist/astro/routes/api/sections/_slug_.mjs +18 -18
- package/dist/astro/routes/api/sections/index.mjs +18 -18
- package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
- package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
- package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
- package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
- package/dist/astro/routes/api/settings/email.mjs +6 -6
- package/dist/astro/routes/api/settings.mjs +21 -21
- package/dist/astro/routes/api/setup/admin-verify.mjs +19 -19
- package/dist/astro/routes/api/setup/admin.mjs +18 -18
- package/dist/astro/routes/api/setup/dev-bypass.mjs +45 -39
- package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
- package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
- package/dist/astro/routes/api/setup/index.mjs +50 -44
- package/dist/astro/routes/api/setup/index.mjs.map +1 -1
- package/dist/astro/routes/api/setup/status.mjs +6 -6
- package/dist/astro/routes/api/snapshot.mjs +8 -8
- package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +23 -23
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +23 -23
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +23 -23
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +23 -23
- package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +22 -22
- package/dist/astro/routes/api/taxonomies/_name_.mjs +23 -23
- package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +36 -35
- package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/index.mjs +23 -23
- package/dist/astro/routes/api/themes/preview.mjs +6 -6
- package/dist/astro/routes/api/typegen.mjs +8 -8
- package/dist/astro/routes/api/visual-editing/action-token.mjs +6 -6
- package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +19 -19
- package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +4 -4
- package/dist/astro/routes/api/well-known/auth.mjs +1 -1
- package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
- package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +16 -16
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +19 -19
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +19 -19
- package/dist/astro/routes/api/widget-areas/_name_.mjs +9 -9
- package/dist/astro/routes/api/widget-areas/index.mjs +19 -19
- package/dist/astro/routes/api/widget-components.mjs +5 -5
- package/dist/astro/routes/robots.txt.mjs +6 -6
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +9 -9
- package/dist/astro/routes/sitemap.xml.mjs +7 -7
- package/dist/astro/types.d.mts +24 -18
- package/dist/astro/types.d.mts.map +1 -1
- package/dist/audit-CrgmE9LE.mjs +127 -0
- package/dist/audit-CrgmE9LE.mjs.map +1 -0
- package/dist/auth/providers/github.d.mts +1 -1
- package/dist/auth/providers/google.d.mts +1 -1
- package/dist/authoritative-records-C2YzIdbu.mjs +5172 -0
- package/dist/authoritative-records-C2YzIdbu.mjs.map +1 -0
- package/dist/authorize-WgdKF8QY.mjs +49 -0
- package/dist/authorize-WgdKF8QY.mjs.map +1 -0
- package/dist/backup-Ck8_lMO3.mjs +246 -0
- package/dist/backup-Ck8_lMO3.mjs.map +1 -0
- package/dist/block-types-BQ90asVI.mjs +132 -0
- package/dist/block-types-BQ90asVI.mjs.map +1 -0
- package/dist/block-values-ACFqgB1D.mjs +175 -0
- package/dist/block-values-ACFqgB1D.mjs.map +1 -0
- package/dist/bundle-Db1iNMv_.mjs +667 -0
- package/dist/bundle-Db1iNMv_.mjs.map +1 -0
- package/dist/byline-BayaYGoj.mjs +909 -0
- package/dist/byline-BayaYGoj.mjs.map +1 -0
- package/dist/byline-fields-B8HH-35f.mjs +254 -0
- package/dist/byline-fields-B8HH-35f.mjs.map +1 -0
- package/dist/byline-fields-hMPjf6Eu.mjs +123 -0
- package/dist/byline-fields-hMPjf6Eu.mjs.map +1 -0
- package/dist/byline-registry-B_EK_TQf.mjs +406 -0
- package/dist/byline-registry-B_EK_TQf.mjs.map +1 -0
- package/dist/bylines-DFAaFXWi.mjs +214 -0
- package/dist/bylines-DFAaFXWi.mjs.map +1 -0
- package/dist/bylines-DkIxUxmr.mjs +232 -0
- package/dist/bylines-DkIxUxmr.mjs.map +1 -0
- package/dist/cache-DkvhQ8XE.mjs +108 -0
- package/dist/cache-DkvhQ8XE.mjs.map +1 -0
- package/dist/canonical-CcSuuTlH.mjs +174 -0
- package/dist/canonical-CcSuuTlH.mjs.map +1 -0
- package/dist/capture-triggers-DJEoOTOq.mjs +362 -0
- package/dist/capture-triggers-DJEoOTOq.mjs.map +1 -0
- package/dist/challenge-store-CvBl81AQ.mjs +51 -0
- package/dist/challenge-store-CvBl81AQ.mjs.map +1 -0
- package/dist/checksum-CClweQzI.mjs +162 -0
- package/dist/checksum-CClweQzI.mjs.map +1 -0
- package/dist/chrome-tags-D5caJwwp.mjs +24 -0
- package/dist/chrome-tags-D5caJwwp.mjs.map +1 -0
- package/dist/chunks-DwBaj8aT.mjs +25 -0
- package/dist/chunks-DwBaj8aT.mjs.map +1 -0
- package/dist/cli/index.mjs +374 -761
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/cf-access.d.mts +1 -1
- package/dist/client/index.d.mts +32 -32
- package/dist/client/index.mjs +2 -2
- package/dist/collection-deletion-CLCdXsnV.mjs +436 -0
- package/dist/collection-deletion-CLCdXsnV.mjs.map +1 -0
- package/dist/collection-deletion-processor-hNw8x01F.mjs +217 -0
- package/dist/collection-deletion-processor-hNw8x01F.mjs.map +1 -0
- package/dist/collection-slugs-cache-CUuiduLq.mjs +85 -0
- package/dist/collection-slugs-cache-CUuiduLq.mjs.map +1 -0
- package/dist/comment-D2uvL63j.mjs +313 -0
- package/dist/comment-D2uvL63j.mjs.map +1 -0
- package/dist/comment-reaction-DevUuzg4.mjs +85 -0
- package/dist/comment-reaction-DevUuzg4.mjs.map +1 -0
- package/dist/comments-Cq0s7_hO.mjs +195 -0
- package/dist/comments-Cq0s7_hO.mjs.map +1 -0
- package/dist/comments-M4EDYAHw.mjs +99 -0
- package/dist/comments-M4EDYAHw.mjs.map +1 -0
- package/dist/components-CuIGwXMs.mjs +108 -0
- package/dist/components-CuIGwXMs.mjs.map +1 -0
- package/dist/config-52Ea5IWt.d.mts +39 -0
- package/dist/config-52Ea5IWt.d.mts.map +1 -0
- package/dist/config-CCz3xOLc.mjs +242 -0
- package/dist/config-CCz3xOLc.mjs.map +1 -0
- package/dist/config-D3d5Qudq.d.mts +6669 -0
- package/dist/config-D3d5Qudq.d.mts.map +1 -0
- package/dist/content-CbnufDsM.mjs +2018 -0
- package/dist/content-CbnufDsM.mjs.map +1 -0
- package/dist/content-list-query-D_7B1FE5.d.mts +26 -0
- package/dist/content-list-query-D_7B1FE5.d.mts.map +1 -0
- package/dist/content-policy-CYu6K1KB.mjs +46 -0
- package/dist/content-policy-CYu6K1KB.mjs.map +1 -0
- package/dist/content-repair-DlDUgFGp.mjs +442 -0
- package/dist/content-repair-DlDUgFGp.mjs.map +1 -0
- package/dist/context-CGQLA1-a.mjs +1922 -0
- package/dist/context-CGQLA1-a.mjs.map +1 -0
- package/dist/cron-c4D5C5Fx.mjs +284 -0
- package/dist/cron-c4D5C5Fx.mjs.map +1 -0
- package/dist/dashboard-CBq9kmOn.mjs +151 -0
- package/dist/dashboard-CBq9kmOn.mjs.map +1 -0
- package/dist/db/index.d.mts +3 -3
- package/dist/db/index.mjs +1 -1
- package/dist/db/libsql-migrations.d.mts +1 -1
- package/dist/db/libsql-migrations.mjs +4 -4
- package/dist/db/libsql.d.mts +1 -1
- package/dist/db/postgres-migrations.d.mts +1 -1
- package/dist/db/postgres-migrations.mjs +4 -4
- package/dist/db/postgres.d.mts +1 -1
- package/dist/db/sqlite-migrations.d.mts +1 -1
- package/dist/db/sqlite-migrations.mjs +4 -4
- package/dist/db/sqlite.d.mts +1 -1
- package/dist/db/sqlite.mjs +1 -1
- package/dist/default-DPsys51U.mjs +81 -0
- package/dist/default-DPsys51U.mjs.map +1 -0
- package/dist/deferred-tasks-CZ7rzBdo.d.mts +9 -0
- package/dist/deferred-tasks-CZ7rzBdo.d.mts.map +1 -0
- package/dist/dev-typegen-HRxwLRcT.mjs +29 -0
- package/dist/dev-typegen-HRxwLRcT.mjs.map +1 -0
- package/dist/device-flow-OcSqE9uY.mjs +521 -0
- package/dist/device-flow-OcSqE9uY.mjs.map +1 -0
- package/dist/digest-DVZ--cE9.mjs +194 -0
- package/dist/digest-DVZ--cE9.mjs.map +1 -0
- package/dist/direct-executor-DyjAqkpT.mjs +104 -0
- package/dist/direct-executor-DyjAqkpT.mjs.map +1 -0
- package/dist/dist-FPR93_xf.mjs +810 -0
- package/dist/dist-FPR93_xf.mjs.map +1 -0
- package/dist/email-console-DyQIgEnz.mjs +50 -0
- package/dist/email-console-DyQIgEnz.mjs.map +1 -0
- package/dist/email-locale-BYb16rVd.mjs +25 -0
- package/dist/email-locale-BYb16rVd.mjs.map +1 -0
- package/dist/emdash-runtime-CrzxJFmF.mjs +4214 -0
- package/dist/emdash-runtime-CrzxJFmF.mjs.map +1 -0
- package/dist/enrich-DBtCncE2.mjs +194 -0
- package/dist/enrich-DBtCncE2.mjs.map +1 -0
- package/dist/entry-lock-BN5y4YbO.d.mts +4481 -0
- package/dist/entry-lock-BN5y4YbO.d.mts.map +1 -0
- package/dist/entry-lock-BaRBHCsH.mjs +1173 -0
- package/dist/entry-lock-BaRBHCsH.mjs.map +1 -0
- package/dist/entry-lock-C6NcnZPV.mjs +163 -0
- package/dist/entry-lock-C6NcnZPV.mjs.map +1 -0
- package/dist/entry-locks-BTyQLdbC.mjs +167 -0
- package/dist/entry-locks-BTyQLdbC.mjs.map +1 -0
- package/dist/error-BfsNNrIE.mjs +90 -0
- package/dist/error-BfsNNrIE.mjs.map +1 -0
- package/dist/errors-BN1QAnEY.mjs +460 -0
- package/dist/errors-BN1QAnEY.mjs.map +1 -0
- package/dist/errors-Bt3goF8I.mjs +120 -0
- package/dist/errors-Bt3goF8I.mjs.map +1 -0
- package/dist/escape-BveidMa2.mjs +9 -0
- package/dist/escape-BveidMa2.mjs.map +1 -0
- package/dist/fence-Bb_IbCxI.mjs +162 -0
- package/dist/fence-Bb_IbCxI.mjs.map +1 -0
- package/dist/field-defs-cache-CsZctvbu.mjs +77 -0
- package/dist/field-defs-cache-CsZctvbu.mjs.map +1 -0
- package/dist/field-map-6m9rF49t.mjs +83 -0
- package/dist/field-map-6m9rF49t.mjs.map +1 -0
- package/dist/focal-point-CZ3d1wK5.mjs +23 -0
- package/dist/focal-point-CZ3d1wK5.mjs.map +1 -0
- package/dist/fts-manager-CCaZTp8y.mjs +443 -0
- package/dist/fts-manager-CCaZTp8y.mjs.map +1 -0
- package/dist/gc-xowRjczI.mjs +75 -0
- package/dist/gc-xowRjczI.mjs.map +1 -0
- package/dist/hash-COVK27Pc.mjs +37 -0
- package/dist/hash-COVK27Pc.mjs.map +1 -0
- package/dist/hook-result-CYSk0XFe.d.mts +31 -0
- package/dist/hook-result-CYSk0XFe.d.mts.map +1 -0
- package/dist/hreflang-CChPV7jx.mjs +105 -0
- package/dist/hreflang-CChPV7jx.mjs.map +1 -0
- package/dist/hreflang-DRslq3QI.d.mts +50 -0
- package/dist/hreflang-DRslq3QI.d.mts.map +1 -0
- package/dist/http-route-dispatch-CAdp2onn.mjs +339 -0
- package/dist/http-route-dispatch-CAdp2onn.mjs.map +1 -0
- package/dist/identity-NVTOOQyq.mjs +35 -0
- package/dist/identity-NVTOOQyq.mjs.map +1 -0
- package/dist/import-wpSO2N0x.mjs +2020 -0
- package/dist/import-wpSO2N0x.mjs.map +1 -0
- package/dist/index-CDs2wq4X.d.mts +623 -0
- package/dist/index-CDs2wq4X.d.mts.map +1 -0
- package/dist/index.d.mts +24 -24
- package/dist/index.mjs +103 -101
- package/dist/install-finalization-D9R9R-W8.mjs +58 -0
- package/dist/install-finalization-D9R9R-W8.mjs.map +1 -0
- package/dist/keys-Bck6LBfF.mjs +61 -0
- package/dist/keys-Bck6LBfF.mjs.map +1 -0
- package/dist/kinds-CYmRESWj.mjs +974 -0
- package/dist/kinds-CYmRESWj.mjs.map +1 -0
- package/dist/lifecycle-C815ZQfV.mjs +25 -0
- package/dist/lifecycle-C815ZQfV.mjs.map +1 -0
- package/dist/load-D99axixL.mjs +28 -0
- package/dist/load-D99axixL.mjs.map +1 -0
- package/dist/loader-CrRPfkHS.mjs +1197 -0
- package/dist/loader-CrRPfkHS.mjs.map +1 -0
- package/dist/loops-DMKlygqX.mjs +203 -0
- package/dist/loops-DMKlygqX.mjs.map +1 -0
- package/dist/manifest-builder-BQzCHNgB.mjs +189 -0
- package/dist/manifest-builder-BQzCHNgB.mjs.map +1 -0
- package/dist/manifest-schema-Ci2gmd0u.mjs +492 -0
- package/dist/manifest-schema-Ci2gmd0u.mjs.map +1 -0
- package/dist/media/image-endpoint.mjs +1 -1
- package/dist/media/index.d.mts +1 -1
- package/dist/media/index.mjs +4 -4
- package/dist/media/local-runtime.d.mts +14 -14
- package/dist/media/local-runtime.mjs +6 -6
- package/dist/media-BUQePMxP.mjs +373 -0
- package/dist/media-BUQePMxP.mjs.map +1 -0
- package/dist/media-DH8ibNlY.mjs +294 -0
- package/dist/media-DH8ibNlY.mjs.map +1 -0
- package/dist/media-OEIQ3bVc.mjs +408 -0
- package/dist/media-OEIQ3bVc.mjs.map +1 -0
- package/dist/media-allowlist-pYtaBA95.mjs +44 -0
- package/dist/media-allowlist-pYtaBA95.mjs.map +1 -0
- package/dist/media-folders-Bf8_s4de.mjs +210 -0
- package/dist/media-folders-Bf8_s4de.mjs.map +1 -0
- package/dist/media-url-C6klEuNd.mjs +43 -0
- package/dist/media-url-C6klEuNd.mjs.map +1 -0
- package/dist/media-usage-D7Y64m6v.mjs +1629 -0
- package/dist/media-usage-D7Y64m6v.mjs.map +1 -0
- package/dist/media-usage-activation-DrqbmgLA.mjs +78 -0
- package/dist/media-usage-activation-DrqbmgLA.mjs.map +1 -0
- package/dist/media-usage-work-DommYhYA.mjs +152 -0
- package/dist/media-usage-work-DommYhYA.mjs.map +1 -0
- package/dist/media-usage-work-HU63hNDu.mjs +586 -0
- package/dist/media-usage-work-HU63hNDu.mjs.map +1 -0
- package/dist/menus-BQfusWEC.mjs +3608 -0
- package/dist/menus-BQfusWEC.mjs.map +1 -0
- package/dist/menus-BtwjQt5s.mjs +753 -0
- package/dist/menus-BtwjQt5s.mjs.map +1 -0
- package/dist/menus-p_M1V7J_.mjs +139 -0
- package/dist/menus-p_M1V7J_.mjs.map +1 -0
- package/dist/migrations/index.d.mts +1 -1
- package/dist/migrations/index.mjs +3 -3
- package/dist/mime-C94qBG-P.mjs +36 -0
- package/dist/mime-C94qBG-P.mjs.map +1 -0
- package/dist/mode-DpYW3w6U.mjs +23 -0
- package/dist/mode-DpYW3w6U.mjs.map +1 -0
- package/dist/node-sqlite-compat-pWFw0lcc.mjs +46 -0
- package/dist/node-sqlite-compat-pWFw0lcc.mjs.map +1 -0
- package/dist/normalize-DduyxBjf.mjs +191 -0
- package/dist/normalize-DduyxBjf.mjs.map +1 -0
- package/dist/oauth-authorization-DAXsH1H9.mjs +274 -0
- package/dist/oauth-authorization-DAXsH1H9.mjs.map +1 -0
- package/dist/oauth-clients-DENiDQri.mjs +266 -0
- package/dist/oauth-clients-DENiDQri.mjs.map +1 -0
- package/dist/oauth-state-store-y8mEYVq9.mjs +50 -0
- package/dist/oauth-state-store-y8mEYVq9.mjs.map +1 -0
- package/dist/oauth-user-lookup-CtTYAy-O.mjs +26 -0
- package/dist/oauth-user-lookup-CtTYAy-O.mjs.map +1 -0
- package/dist/object-cache/memory.d.mts +1 -1
- package/dist/options-BYa1FgIM.d.mts +81 -0
- package/dist/options-BYa1FgIM.d.mts.map +1 -0
- package/dist/page/index.d.mts +2 -2
- package/dist/page/index.mjs +5 -5
- package/dist/parse-CORGGhHf.mjs +81 -0
- package/dist/parse-CORGGhHf.mjs.map +1 -0
- package/dist/parse-avNM1xWV.d.mts +168 -0
- package/dist/parse-avNM1xWV.d.mts.map +1 -0
- package/dist/passkey-config-Dih5YeIS.mjs +46 -0
- package/dist/passkey-config-Dih5YeIS.mjs.map +1 -0
- package/dist/paths-d51RFm8M.mjs +77 -0
- package/dist/paths-d51RFm8M.mjs.map +1 -0
- package/dist/patterns-CoqlXUvk.mjs +145 -0
- package/dist/patterns-CoqlXUvk.mjs.map +1 -0
- package/dist/placeholder-D2aksPMF.d.mts +306 -0
- package/dist/placeholder-D2aksPMF.d.mts.map +1 -0
- package/dist/plan-DqeZKuaR.mjs +135 -0
- package/dist/plan-DqeZKuaR.mjs.map +1 -0
- package/dist/plugin-test-runtime.d.mts +14 -14
- package/dist/plugin-test-runtime.mjs +110 -107
- package/dist/plugin-types.d.mts +2 -2
- package/dist/plugin-utils.d.mts +12 -12
- package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
- package/dist/plugins/adapt-sandbox-entry.mjs +3 -3
- package/dist/plugins/host.d.mts +5 -5
- package/dist/plugins/host.mjs +42 -41
- package/dist/plugins-Bb7oqjQA.mjs +277 -0
- package/dist/plugins-Bb7oqjQA.mjs.map +1 -0
- package/dist/policy-BcEqut3n.mjs +45 -0
- package/dist/policy-BcEqut3n.mjs.map +1 -0
- package/dist/portable-text-DXE8ymtD.mjs +307 -0
- package/dist/portable-text-DXE8ymtD.mjs.map +1 -0
- package/dist/preview-DEDWbwA_.mjs +107 -0
- package/dist/preview-DEDWbwA_.mjs.map +1 -0
- package/dist/protocol-BJbTzvwl.d.mts +61 -0
- package/dist/protocol-BJbTzvwl.d.mts.map +1 -0
- package/dist/public-submission-D9c9S14m.mjs +250 -0
- package/dist/public-submission-D9c9S14m.mjs.map +1 -0
- package/dist/public-url-CIRe-2T6.mjs +101 -0
- package/dist/public-url-CIRe-2T6.mjs.map +1 -0
- package/dist/query-BzifXlPS.mjs +1156 -0
- package/dist/query-BzifXlPS.mjs.map +1 -0
- package/dist/query-OzMJ6vJP.mjs +41 -0
- package/dist/query-OzMJ6vJP.mjs.map +1 -0
- package/dist/rate-limit-Csp60Vik.mjs +120 -0
- package/dist/rate-limit-Csp60Vik.mjs.map +1 -0
- package/dist/receipt-B-aU4hpJ.mjs +43 -0
- package/dist/receipt-B-aU4hpJ.mjs.map +1 -0
- package/dist/redirect-CDSw1sU3.mjs +17 -0
- package/dist/redirect-CDSw1sU3.mjs.map +1 -0
- package/dist/redirect-D1ArbO85.mjs +411 -0
- package/dist/redirect-D1ArbO85.mjs.map +1 -0
- package/dist/redirects-BjTwDTsV.mjs +148 -0
- package/dist/redirects-BjTwDTsV.mjs.map +1 -0
- package/dist/redirects-Ck50kH3n.mjs +446 -0
- package/dist/redirects-Ck50kH3n.mjs.map +1 -0
- package/dist/registry/testing.mjs +3 -3
- package/dist/registry-CFcNCayZ.mjs +6754 -0
- package/dist/registry-CFcNCayZ.mjs.map +1 -0
- package/dist/relations-Cfaa1fDl.mjs +776 -0
- package/dist/relations-Cfaa1fDl.mjs.map +1 -0
- package/dist/request-cache-iHRlHx1d.mjs +104 -0
- package/dist/request-cache-iHRlHx1d.mjs.map +1 -0
- package/dist/request-context.d.mts +1 -1
- package/dist/request-meta-D47mqyev.mjs +141 -0
- package/dist/request-meta-D47mqyev.mjs.map +1 -0
- package/dist/resolve-BPE8sMvx.mjs +99 -0
- package/dist/resolve-BPE8sMvx.mjs.map +1 -0
- package/dist/resolve-C0s1E_fH.mjs +199 -0
- package/dist/resolve-C0s1E_fH.mjs.map +1 -0
- package/dist/revision-j1p4-bOj.mjs +302 -0
- package/dist/revision-j1p4-bOj.mjs.map +1 -0
- package/dist/route-wire-C9PJV9aL.mjs +197 -0
- package/dist/route-wire-C9PJV9aL.mjs.map +1 -0
- package/dist/routes-lyYw0mMf.mjs +272 -0
- package/dist/routes-lyYw0mMf.mjs.map +1 -0
- package/dist/runner-B3eyB9Gb.mjs +6121 -0
- package/dist/runner-B3eyB9Gb.mjs.map +1 -0
- package/dist/runner-DoYH2Jcu.d.mts +68 -0
- package/dist/runner-DoYH2Jcu.d.mts.map +1 -0
- package/dist/runtime.d.mts +13 -13
- package/dist/runtime.mjs +3 -3
- package/dist/schema-BAayK46S.mjs +13 -0
- package/dist/schema-BAayK46S.mjs.map +1 -0
- package/dist/schema-Gqcl-8G4.mjs +815 -0
- package/dist/schema-Gqcl-8G4.mjs.map +1 -0
- package/dist/scopes-BqPOKoKf.mjs +34 -0
- package/dist/scopes-BqPOKoKf.mjs.map +1 -0
- package/dist/search-YJKPIEV6.mjs +448 -0
- package/dist/search-YJKPIEV6.mjs.map +1 -0
- package/dist/sections-BR_e-wK5.mjs +346 -0
- package/dist/sections-BR_e-wK5.mjs.map +1 -0
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +37 -31
- package/dist/seo/index.d.mts +3 -3
- package/dist/seo/index.mjs +22 -21
- package/dist/seo/index.mjs.map +1 -1
- package/dist/seo-Dsj8hy3j.mjs +114 -0
- package/dist/seo-Dsj8hy3j.mjs.map +1 -0
- package/dist/seo-XvH4LNNp.mjs +133 -0
- package/dist/seo-XvH4LNNp.mjs.map +1 -0
- package/dist/service-BsVG05gS.mjs +150 -0
- package/dist/service-BsVG05gS.mjs.map +1 -0
- package/dist/session-user-DgKbYrlj.mjs +51 -0
- package/dist/session-user-DgKbYrlj.mjs.map +1 -0
- package/dist/settings-CNPUntkh.mjs +51 -0
- package/dist/settings-CNPUntkh.mjs.map +1 -0
- package/dist/settings-D5EHi0Tk.mjs +439 -0
- package/dist/settings-D5EHi0Tk.mjs.map +1 -0
- package/dist/settings-DSfE7wOa.mjs +61 -0
- package/dist/settings-DSfE7wOa.mjs.map +1 -0
- package/dist/setup-complete-B8W8sJ9v.mjs +26 -0
- package/dist/setup-complete-B8W8sJ9v.mjs.map +1 -0
- package/dist/setup-nonce-DnSBP260.mjs +25 -0
- package/dist/setup-nonce-DnSBP260.mjs.map +1 -0
- package/dist/site-settings-NGzdrt7O.mjs +50 -0
- package/dist/site-settings-NGzdrt7O.mjs.map +1 -0
- package/dist/site-url-D6JB7tLW.mjs +16 -0
- package/dist/site-url-D6JB7tLW.mjs.map +1 -0
- package/dist/snapshot-CdcwwWAf.mjs +414 -0
- package/dist/snapshot-CdcwwWAf.mjs.map +1 -0
- package/dist/ssrf-Dv0_tRpo.mjs +406 -0
- package/dist/ssrf-Dv0_tRpo.mjs.map +1 -0
- package/dist/stage-CUjhED3P.mjs +662 -0
- package/dist/stage-CUjhED3P.mjs.map +1 -0
- package/dist/staged-C36IWXff.mjs +659 -0
- package/dist/staged-C36IWXff.mjs.map +1 -0
- package/dist/state-CKouMCSY.mjs +153 -0
- package/dist/state-CKouMCSY.mjs.map +1 -0
- package/dist/status-lzyj4Uu7.mjs +30 -0
- package/dist/status-lzyj4Uu7.mjs.map +1 -0
- package/dist/storage/local.d.mts +1 -1
- package/dist/storage/local.mjs +1 -1
- package/dist/storage/s3.d.mts +1 -1
- package/dist/storage/s3.mjs +1 -1
- package/dist/storage-query-B-cWcTjJ.d.mts +1594 -0
- package/dist/storage-query-B-cWcTjJ.d.mts.map +1 -0
- package/dist/tar-DsTXX6ch.mjs +449 -0
- package/dist/tar-DsTXX6ch.mjs.map +1 -0
- package/dist/target-DLQCwp_Z.mjs +27 -0
- package/dist/target-DLQCwp_Z.mjs.map +1 -0
- package/dist/taxonomies-BlAjr4BL.mjs +697 -0
- package/dist/taxonomies-BlAjr4BL.mjs.map +1 -0
- package/dist/taxonomies-Byyo7LOZ.mjs +939 -0
- package/dist/taxonomies-Byyo7LOZ.mjs.map +1 -0
- package/dist/taxonomy-CKDwM61Y.mjs +525 -0
- package/dist/taxonomy-CKDwM61Y.mjs.map +1 -0
- package/dist/tokens-BojXlk49.mjs +171 -0
- package/dist/tokens-BojXlk49.mjs.map +1 -0
- package/dist/transaction-DLPQWik1.mjs +29 -0
- package/dist/transaction-DLPQWik1.mjs.map +1 -0
- package/dist/transfer-XSTh2BCr.mjs +8706 -0
- package/dist/transfer-XSTh2BCr.mjs.map +1 -0
- package/dist/transfer-download-DkoCDA9d.mjs +33 -0
- package/dist/transfer-download-DkoCDA9d.mjs.map +1 -0
- package/dist/transfer-iQ26J-RT.mjs +166 -0
- package/dist/transfer-iQ26J-RT.mjs.map +1 -0
- package/dist/transformations-C7RQabKQ.mjs +196 -0
- package/dist/transformations-C7RQabKQ.mjs.map +1 -0
- package/dist/transport-D3RulfD6.mjs +136 -0
- package/dist/transport-D3RulfD6.mjs.map +1 -0
- package/dist/transport-DhlZlf4D.d.mts +42 -0
- package/dist/transport-DhlZlf4D.d.mts.map +1 -0
- package/dist/trusted-proxy-B6ECOZJc.mjs +51 -0
- package/dist/trusted-proxy-B6ECOZJc.mjs.map +1 -0
- package/dist/turnstile-lqUiY7lP.mjs +53 -0
- package/dist/turnstile-lqUiY7lP.mjs.map +1 -0
- package/dist/types-4Dn9bZhu.mjs +77 -0
- package/dist/types-4Dn9bZhu.mjs.map +1 -0
- package/dist/types-5LSo7PPx.d.mts +85 -0
- package/dist/types-5LSo7PPx.d.mts.map +1 -0
- package/dist/types-BQ3hwYJT.d.mts +896 -0
- package/dist/types-BQ3hwYJT.d.mts.map +1 -0
- package/dist/types-BYEk7qo3.d.mts +198 -0
- package/dist/types-BYEk7qo3.d.mts.map +1 -0
- package/dist/types-CJKsWVFR.mjs +199 -0
- package/dist/types-CJKsWVFR.mjs.map +1 -0
- package/dist/types-Ca_w8mmY.d.mts +363 -0
- package/dist/types-Ca_w8mmY.d.mts.map +1 -0
- package/dist/types-CkE41ZAG.mjs +18 -0
- package/dist/types-CkE41ZAG.mjs.map +1 -0
- package/dist/types-D0aJW2uR.d.mts +1641 -0
- package/dist/types-D0aJW2uR.d.mts.map +1 -0
- package/dist/types-DbpN4Qto.d.mts +372 -0
- package/dist/types-DbpN4Qto.d.mts.map +1 -0
- package/dist/types-ILDI1sdY.mjs +16 -0
- package/dist/types-ILDI1sdY.mjs.map +1 -0
- package/dist/types-OC5c-edM.mjs +22 -0
- package/dist/types-OC5c-edM.mjs.map +1 -0
- package/dist/types-aOOxRSx6.mjs +103 -0
- package/dist/types-aOOxRSx6.mjs.map +1 -0
- package/dist/types-m1WbUffD.d.mts +198 -0
- package/dist/types-m1WbUffD.d.mts.map +1 -0
- package/dist/types-uxLoPBio.d.mts +124 -0
- package/dist/types-uxLoPBio.d.mts.map +1 -0
- package/dist/types-we5uR-tV.d.mts +287 -0
- package/dist/types-we5uR-tV.d.mts.map +1 -0
- package/dist/upload-attempts-DduMy6B0.mjs +32 -0
- package/dist/upload-attempts-DduMy6B0.mjs.map +1 -0
- package/dist/url-pattern-B3EwxAAk.mjs +33 -0
- package/dist/url-pattern-B3EwxAAk.mjs.map +1 -0
- package/dist/user-ElwQjTQT.mjs +171 -0
- package/dist/user-ElwQjTQT.mjs.map +1 -0
- package/dist/utils-BlAXmfOG.mjs +439 -0
- package/dist/utils-BlAXmfOG.mjs.map +1 -0
- package/dist/validate-CH0X5b2c.d.mts +468 -0
- package/dist/validate-CH0X5b2c.d.mts.map +1 -0
- package/dist/validate-CfgRpcjA.mjs +492 -0
- package/dist/validate-CfgRpcjA.mjs.map +1 -0
- package/dist/validation-DvYJtv4k.mjs +218 -0
- package/dist/validation-DvYJtv4k.mjs.map +1 -0
- package/dist/version-DgYjhTud.mjs +9 -0
- package/dist/version-DgYjhTud.mjs.map +1 -0
- package/dist/version-Dq71scUb.mjs +7 -0
- package/dist/version-Dq71scUb.mjs.map +1 -0
- package/dist/widgets-ChFIj0be.mjs +126 -0
- package/dist/widgets-ChFIj0be.mjs.map +1 -0
- package/dist/wxr-taxonomies-CBZMp2YX.mjs +372 -0
- package/dist/wxr-taxonomies-CBZMp2YX.mjs.map +1 -0
- package/dist/wxr-taxonomies-DlKDpWN1.d.mts +34 -0
- package/dist/wxr-taxonomies-DlKDpWN1.d.mts.map +1 -0
- package/dist/zod-generator-DmTKI-Ig.mjs +426 -0
- package/dist/zod-generator-DmTKI-Ig.mjs.map +1 -0
- package/package.json +7 -6
- package/src/api/handlers/content.ts +593 -16
- package/src/api/handlers/device-flow.ts +74 -21
- package/src/api/handlers/manifest.ts +79 -5
- package/src/api/handlers/relations.ts +638 -157
- package/src/api/handlers/revision.ts +30 -0
- package/src/api/handlers/schema.ts +403 -1
- package/src/api/handlers/staged-references.ts +142 -0
- package/src/api/handlers/validate-references.ts +146 -0
- package/src/api/schemas/content.ts +13 -0
- package/src/api/schemas/relations.ts +54 -44
- package/src/api/schemas/schema.ts +14 -0
- package/src/astro/integration/routes.ts +15 -19
- package/src/astro/routes/api/content/[collection]/[id]/references/[relation]/children.ts +11 -54
- package/src/astro/routes/api/content/[collection]/[id].ts +3 -1
- package/src/astro/routes/api/oauth/device/authorize.ts +33 -4
- package/src/astro/routes/api/relations/index.ts +4 -4
- package/src/astro/routes/api/schema/collections/[slug]/fields/[fieldSlug].ts +6 -2
- package/src/astro/types.ts +5 -0
- package/src/cli/commands/export-seed.ts +510 -89
- package/src/components/WidgetArea.astro +3 -2
- package/src/database/migrations/086_relations_structural.ts +197 -0
- package/src/database/migrations/087_reference_field_relations.ts +407 -0
- package/src/database/migrations/runner.ts +4 -0
- package/src/database/reference-backfill.ts +141 -0
- package/src/database/repositories/content.ts +43 -8
- package/src/database/repositories/relation.ts +620 -208
- package/src/database/repositories/revision.ts +16 -0
- package/src/database/repositories/types.ts +38 -0
- package/src/database/transaction.ts +12 -1
- package/src/database/types.ts +14 -5
- package/src/emdash-runtime.ts +86 -11
- package/src/index.ts +10 -0
- package/src/loader.ts +169 -22
- package/src/query.ts +455 -25
- package/src/references/field-map.ts +115 -0
- package/src/references/resolve.ts +160 -0
- package/src/references/staged.ts +117 -0
- package/src/references/types.ts +16 -0
- package/src/registry/artifact-fetch.ts +45 -271
- package/src/schema/registry.ts +99 -24
- package/src/schema/types.ts +58 -0
- package/src/schema/zod-generator.ts +67 -1
- package/src/seed/apply.ts +519 -62
- package/src/seed/types.ts +36 -2
- package/src/seed/validate.ts +78 -2
- package/src/transfer/analyze/unique-keys.ts +3 -12
- package/src/transfer/analyze/validate.ts +65 -39
- package/src/transfer/analyze/values.ts +12 -1
- package/src/transfer/export/readers.ts +12 -8
- package/src/transfer/format/columns.ts +26 -6
- package/src/transfer/format/kinds.ts +21 -5
- package/src/transfer/import/context.ts +8 -1
- package/src/transfer/ops/package-index.ts +1 -1
- package/dist/action-token-DYwe4Pk0.mjs +0 -26
- package/dist/action-token-DYwe4Pk0.mjs.map +0 -1
- package/dist/activation-LOkDM5WT.mjs +0 -382
- package/dist/activation-LOkDM5WT.mjs.map +0 -1
- package/dist/adapters-B64LbYcB.d.mts +0 -171
- package/dist/adapters-B64LbYcB.d.mts.map +0 -1
- package/dist/allowed-origins-CHB8oZNM.mjs +0 -116
- package/dist/allowed-origins-CHB8oZNM.mjs.map +0 -1
- package/dist/api-CuyNEHZG.mjs +0 -4718
- package/dist/api-CuyNEHZG.mjs.map +0 -1
- package/dist/api-tokens-s4i4aUp_.mjs +0 -166
- package/dist/api-tokens-s4i4aUp_.mjs.map +0 -1
- package/dist/apply-npY1TAhG.mjs +0 -1366
- package/dist/apply-npY1TAhG.mjs.map +0 -1
- package/dist/approvals-CqMfNxak.mjs +0 -460
- package/dist/approvals-CqMfNxak.mjs.map +0 -1
- package/dist/artifact-fetch-DZMOGZ3-.mjs +0 -818
- package/dist/artifact-fetch-DZMOGZ3-.mjs.map +0 -1
- package/dist/astro/routes/api/relations/_id_/translations.d.mts +0 -8
- package/dist/astro/routes/api/relations/_id_/translations.d.mts.map +0 -1
- package/dist/astro/routes/api/relations/_id_/translations.mjs +0 -47
- package/dist/astro/routes/api/relations/_id_/translations.mjs.map +0 -1
- package/dist/audit-RfCugiSB.mjs +0 -127
- package/dist/audit-RfCugiSB.mjs.map +0 -1
- package/dist/authoritative-records-CoJvBXAD.mjs +0 -5172
- package/dist/authoritative-records-CoJvBXAD.mjs.map +0 -1
- package/dist/authorize-seCifOMJ.mjs +0 -49
- package/dist/authorize-seCifOMJ.mjs.map +0 -1
- package/dist/backup-BQRj3afm.mjs +0 -246
- package/dist/backup-BQRj3afm.mjs.map +0 -1
- package/dist/block-type-registry-DUI_3KxT.mjs +0 -6709
- package/dist/block-type-registry-DUI_3KxT.mjs.map +0 -1
- package/dist/block-types-BmZmLmAD.mjs +0 -132
- package/dist/block-types-BmZmLmAD.mjs.map +0 -1
- package/dist/block-values-C_VIPr5t.mjs +0 -175
- package/dist/block-values-C_VIPr5t.mjs.map +0 -1
- package/dist/byline-DYmkXqvo.mjs +0 -909
- package/dist/byline-DYmkXqvo.mjs.map +0 -1
- package/dist/byline-fields-D28AT-Fh.mjs +0 -123
- package/dist/byline-fields-D28AT-Fh.mjs.map +0 -1
- package/dist/byline-registry-gnKscbQX.mjs +0 -406
- package/dist/byline-registry-gnKscbQX.mjs.map +0 -1
- package/dist/bylines-BPwJqoYH.mjs +0 -232
- package/dist/bylines-BPwJqoYH.mjs.map +0 -1
- package/dist/bylines-ukLaYpVZ.mjs +0 -214
- package/dist/bylines-ukLaYpVZ.mjs.map +0 -1
- package/dist/cache-m7UEkRFV.mjs +0 -108
- package/dist/cache-m7UEkRFV.mjs.map +0 -1
- package/dist/canonical-YhEQezjg.mjs +0 -174
- package/dist/canonical-YhEQezjg.mjs.map +0 -1
- package/dist/capture-triggers-kJyl_yyM.mjs +0 -362
- package/dist/capture-triggers-kJyl_yyM.mjs.map +0 -1
- package/dist/challenge-store-ppU6Uv13.mjs +0 -51
- package/dist/challenge-store-ppU6Uv13.mjs.map +0 -1
- package/dist/checksum-B2IINIlN.mjs +0 -162
- package/dist/checksum-B2IINIlN.mjs.map +0 -1
- package/dist/chrome-tags-DApCQSIk.mjs +0 -24
- package/dist/chrome-tags-DApCQSIk.mjs.map +0 -1
- package/dist/chunks-Dms7Uxbt.mjs +0 -25
- package/dist/chunks-Dms7Uxbt.mjs.map +0 -1
- package/dist/collection-deletion-BIm28mo3.mjs +0 -436
- package/dist/collection-deletion-BIm28mo3.mjs.map +0 -1
- package/dist/collection-deletion-processor-Br6rxs3u.mjs +0 -217
- package/dist/collection-deletion-processor-Br6rxs3u.mjs.map +0 -1
- package/dist/collection-slugs-cache-CjGk__zp.mjs +0 -85
- package/dist/collection-slugs-cache-CjGk__zp.mjs.map +0 -1
- package/dist/comment-CrBl22OF.mjs +0 -313
- package/dist/comment-CrBl22OF.mjs.map +0 -1
- package/dist/comment-reaction-JEQ2Fpd8.mjs +0 -85
- package/dist/comment-reaction-JEQ2Fpd8.mjs.map +0 -1
- package/dist/comments-2ah9du9y.mjs +0 -195
- package/dist/comments-2ah9du9y.mjs.map +0 -1
- package/dist/comments-fHZ8ON9O.mjs +0 -99
- package/dist/comments-fHZ8ON9O.mjs.map +0 -1
- package/dist/components-CXbq7CSM.mjs +0 -108
- package/dist/components-CXbq7CSM.mjs.map +0 -1
- package/dist/config-BjEm_3xL.d.mts +0 -6537
- package/dist/config-BjEm_3xL.d.mts.map +0 -1
- package/dist/config-IhybvkIQ.mjs +0 -242
- package/dist/config-IhybvkIQ.mjs.map +0 -1
- package/dist/config-Py43JK9r.d.mts +0 -39
- package/dist/config-Py43JK9r.d.mts.map +0 -1
- package/dist/content-DFaIEDj9.mjs +0 -2281
- package/dist/content-DFaIEDj9.mjs.map +0 -1
- package/dist/content-list-query-Dra4Dalc.d.mts +0 -26
- package/dist/content-list-query-Dra4Dalc.d.mts.map +0 -1
- package/dist/content-policy-DFNw91-d.mjs +0 -46
- package/dist/content-policy-DFNw91-d.mjs.map +0 -1
- package/dist/content-repair-Q8IUrpLL.mjs +0 -442
- package/dist/content-repair-Q8IUrpLL.mjs.map +0 -1
- package/dist/context-BV_7t-Ua.mjs +0 -1921
- package/dist/context-BV_7t-Ua.mjs.map +0 -1
- package/dist/cron-7DCJwPXq.mjs +0 -284
- package/dist/cron-7DCJwPXq.mjs.map +0 -1
- package/dist/dashboard-BP-iJqpd.mjs +0 -151
- package/dist/dashboard-BP-iJqpd.mjs.map +0 -1
- package/dist/default-DQ6vsviu.mjs +0 -81
- package/dist/default-DQ6vsviu.mjs.map +0 -1
- package/dist/deferred-tasks-BPxXUB4x.d.mts +0 -9
- package/dist/deferred-tasks-BPxXUB4x.d.mts.map +0 -1
- package/dist/dev-typegen-CZaPLl3V.mjs +0 -29
- package/dist/dev-typegen-CZaPLl3V.mjs.map +0 -1
- package/dist/device-flow-CRd6DXmW.mjs +0 -466
- package/dist/device-flow-CRd6DXmW.mjs.map +0 -1
- package/dist/digest-BarSh-pN.mjs +0 -194
- package/dist/digest-BarSh-pN.mjs.map +0 -1
- package/dist/direct-executor-D2lNadwo.mjs +0 -104
- package/dist/direct-executor-D2lNadwo.mjs.map +0 -1
- package/dist/dist-BNwANFJR.mjs +0 -810
- package/dist/dist-BNwANFJR.mjs.map +0 -1
- package/dist/email-console-bJn3ctqA.mjs +0 -50
- package/dist/email-console-bJn3ctqA.mjs.map +0 -1
- package/dist/email-locale-CN6WAMx0.mjs +0 -25
- package/dist/email-locale-CN6WAMx0.mjs.map +0 -1
- package/dist/emdash-runtime-CtfnZmPi.mjs +0 -4186
- package/dist/emdash-runtime-CtfnZmPi.mjs.map +0 -1
- package/dist/enrich-Dl3kZ-lP.mjs +0 -194
- package/dist/enrich-Dl3kZ-lP.mjs.map +0 -1
- package/dist/entry-lock-BJYdBfXb.mjs +0 -1097
- package/dist/entry-lock-BJYdBfXb.mjs.map +0 -1
- package/dist/entry-lock-Cf5OoIgN.d.mts +0 -4368
- package/dist/entry-lock-Cf5OoIgN.d.mts.map +0 -1
- package/dist/entry-lock-DHQOxN7R.mjs +0 -163
- package/dist/entry-lock-DHQOxN7R.mjs.map +0 -1
- package/dist/entry-locks-D0foLdjQ.mjs +0 -167
- package/dist/entry-locks-D0foLdjQ.mjs.map +0 -1
- package/dist/error-CfvOHP0M.mjs +0 -90
- package/dist/error-CfvOHP0M.mjs.map +0 -1
- package/dist/errors-BF0_LFhW.mjs +0 -460
- package/dist/errors-BF0_LFhW.mjs.map +0 -1
- package/dist/errors-DgE1zJGG.mjs +0 -120
- package/dist/errors-DgE1zJGG.mjs.map +0 -1
- package/dist/escape-CuaZhZvL.mjs +0 -9
- package/dist/escape-CuaZhZvL.mjs.map +0 -1
- package/dist/fence-CMDXJYc_.mjs +0 -162
- package/dist/fence-CMDXJYc_.mjs.map +0 -1
- package/dist/field-defs-cache-HIgBbqZZ.mjs +0 -77
- package/dist/field-defs-cache-HIgBbqZZ.mjs.map +0 -1
- package/dist/focal-point-Gr34o-4o.mjs +0 -23
- package/dist/focal-point-Gr34o-4o.mjs.map +0 -1
- package/dist/fts-manager-S-K0laoS.mjs +0 -443
- package/dist/fts-manager-S-K0laoS.mjs.map +0 -1
- package/dist/gc-DjKY0Ay1.mjs +0 -75
- package/dist/gc-DjKY0Ay1.mjs.map +0 -1
- package/dist/hash-SDAW6zC-.mjs +0 -37
- package/dist/hash-SDAW6zC-.mjs.map +0 -1
- package/dist/hook-result-B5bXDgS2.d.mts +0 -31
- package/dist/hook-result-B5bXDgS2.d.mts.map +0 -1
- package/dist/hreflang-CbVI4paR.mjs +0 -105
- package/dist/hreflang-CbVI4paR.mjs.map +0 -1
- package/dist/hreflang-D5uNnsGJ.d.mts +0 -50
- package/dist/hreflang-D5uNnsGJ.d.mts.map +0 -1
- package/dist/http-route-dispatch-BitqzwMy.mjs +0 -339
- package/dist/http-route-dispatch-BitqzwMy.mjs.map +0 -1
- package/dist/identity-Be5kzutJ.mjs +0 -35
- package/dist/identity-Be5kzutJ.mjs.map +0 -1
- package/dist/import-YzfKCaco.mjs +0 -2020
- package/dist/import-YzfKCaco.mjs.map +0 -1
- package/dist/index-D-hdtLe8.d.mts +0 -623
- package/dist/index-D-hdtLe8.d.mts.map +0 -1
- package/dist/install-finalization-DfM1fj5x.mjs +0 -58
- package/dist/install-finalization-DfM1fj5x.mjs.map +0 -1
- package/dist/keys-yxLm5l35.mjs +0 -61
- package/dist/keys-yxLm5l35.mjs.map +0 -1
- package/dist/kinds-CRu_T5T5.mjs +0 -961
- package/dist/kinds-CRu_T5T5.mjs.map +0 -1
- package/dist/lifecycle-BzeGPeQ-.mjs +0 -25
- package/dist/lifecycle-BzeGPeQ-.mjs.map +0 -1
- package/dist/load-XgJiE6_3.mjs +0 -28
- package/dist/load-XgJiE6_3.mjs.map +0 -1
- package/dist/loader-BzqeR1ZN.mjs +0 -1086
- package/dist/loader-BzqeR1ZN.mjs.map +0 -1
- package/dist/loops-BQSzv5Zn.mjs +0 -203
- package/dist/loops-BQSzv5Zn.mjs.map +0 -1
- package/dist/manifest-builder-BmSAOOEF.mjs +0 -189
- package/dist/manifest-builder-BmSAOOEF.mjs.map +0 -1
- package/dist/manifest-schema-CY3zng_M.mjs +0 -492
- package/dist/manifest-schema-CY3zng_M.mjs.map +0 -1
- package/dist/media-CPXTbb1R.mjs +0 -373
- package/dist/media-CPXTbb1R.mjs.map +0 -1
- package/dist/media-JXRWDhw3.mjs +0 -294
- package/dist/media-JXRWDhw3.mjs.map +0 -1
- package/dist/media-Pu1L6xir.mjs +0 -408
- package/dist/media-Pu1L6xir.mjs.map +0 -1
- package/dist/media-allowlist-BSoa9Vvm.mjs +0 -44
- package/dist/media-allowlist-BSoa9Vvm.mjs.map +0 -1
- package/dist/media-folders-BE0oo2eX.mjs +0 -210
- package/dist/media-folders-BE0oo2eX.mjs.map +0 -1
- package/dist/media-url-jArBpzIG.mjs +0 -43
- package/dist/media-url-jArBpzIG.mjs.map +0 -1
- package/dist/media-usage-De-zeR9E.mjs +0 -1629
- package/dist/media-usage-De-zeR9E.mjs.map +0 -1
- package/dist/media-usage-activation-HKp7zk7W.mjs +0 -78
- package/dist/media-usage-activation-HKp7zk7W.mjs.map +0 -1
- package/dist/media-usage-work-C2OZLCAd.mjs +0 -586
- package/dist/media-usage-work-C2OZLCAd.mjs.map +0 -1
- package/dist/media-usage-work-DwUNbgvS.mjs +0 -152
- package/dist/media-usage-work-DwUNbgvS.mjs.map +0 -1
- package/dist/menus-BM7BPLOb.mjs +0 -139
- package/dist/menus-BM7BPLOb.mjs.map +0 -1
- package/dist/menus-Cm68rsAq.mjs +0 -3608
- package/dist/menus-Cm68rsAq.mjs.map +0 -1
- package/dist/menus-ITeAbcIF.mjs +0 -753
- package/dist/menus-ITeAbcIF.mjs.map +0 -1
- package/dist/mime-ChLqYwDk.mjs +0 -36
- package/dist/mime-ChLqYwDk.mjs.map +0 -1
- package/dist/mode-CCuKXUci.mjs +0 -23
- package/dist/mode-CCuKXUci.mjs.map +0 -1
- package/dist/node-sqlite-compat-CONMsl-x.mjs +0 -46
- package/dist/node-sqlite-compat-CONMsl-x.mjs.map +0 -1
- package/dist/normalize-CO2P8-iE.mjs +0 -191
- package/dist/normalize-CO2P8-iE.mjs.map +0 -1
- package/dist/oauth-authorization-DlMIL5_h.mjs +0 -274
- package/dist/oauth-authorization-DlMIL5_h.mjs.map +0 -1
- package/dist/oauth-clients-Djq9r_KP.mjs +0 -266
- package/dist/oauth-clients-Djq9r_KP.mjs.map +0 -1
- package/dist/oauth-state-store-BbjnZXNC.mjs +0 -50
- package/dist/oauth-state-store-BbjnZXNC.mjs.map +0 -1
- package/dist/oauth-user-lookup-vue9a64A.mjs +0 -26
- package/dist/oauth-user-lookup-vue9a64A.mjs.map +0 -1
- package/dist/options-SQCHQCPH.d.mts +0 -81
- package/dist/options-SQCHQCPH.d.mts.map +0 -1
- package/dist/parse-CVgO-Qai.d.mts +0 -168
- package/dist/parse-CVgO-Qai.d.mts.map +0 -1
- package/dist/parse-DY6OD1j_.mjs +0 -81
- package/dist/parse-DY6OD1j_.mjs.map +0 -1
- package/dist/passkey-config-X_H8128a.mjs +0 -46
- package/dist/passkey-config-X_H8128a.mjs.map +0 -1
- package/dist/paths-JxokKIbr.mjs +0 -77
- package/dist/paths-JxokKIbr.mjs.map +0 -1
- package/dist/patterns-BhAvqO0S.mjs +0 -145
- package/dist/patterns-BhAvqO0S.mjs.map +0 -1
- package/dist/placeholder-MSEd8gty.d.mts +0 -306
- package/dist/placeholder-MSEd8gty.d.mts.map +0 -1
- package/dist/plan-xjcWrAah.mjs +0 -135
- package/dist/plan-xjcWrAah.mjs.map +0 -1
- package/dist/plugins-DUXUt8B9.mjs +0 -277
- package/dist/plugins-DUXUt8B9.mjs.map +0 -1
- package/dist/policy-CUvwAARc.mjs +0 -45
- package/dist/policy-CUvwAARc.mjs.map +0 -1
- package/dist/portable-text-5O_ZGUjB.mjs +0 -307
- package/dist/portable-text-5O_ZGUjB.mjs.map +0 -1
- package/dist/preview-CIUcPYr6.mjs +0 -107
- package/dist/preview-CIUcPYr6.mjs.map +0 -1
- package/dist/protocol-B97DZaFr.d.mts +0 -61
- package/dist/protocol-B97DZaFr.d.mts.map +0 -1
- package/dist/public-submission-BFBUrqst.mjs +0 -250
- package/dist/public-submission-BFBUrqst.mjs.map +0 -1
- package/dist/public-url-Bn7U0D7-.mjs +0 -101
- package/dist/public-url-Bn7U0D7-.mjs.map +0 -1
- package/dist/query-B48peoRT.mjs +0 -890
- package/dist/query-B48peoRT.mjs.map +0 -1
- package/dist/query-C4IH0uhR.mjs +0 -41
- package/dist/query-C4IH0uhR.mjs.map +0 -1
- package/dist/rate-limit-BZ6nybgc.mjs +0 -120
- package/dist/rate-limit-BZ6nybgc.mjs.map +0 -1
- package/dist/receipt-B4wJj5Jq.mjs +0 -43
- package/dist/receipt-B4wJj5Jq.mjs.map +0 -1
- package/dist/redirect-B29UjdUn.mjs +0 -411
- package/dist/redirect-B29UjdUn.mjs.map +0 -1
- package/dist/redirect-Cd1E7VUt.mjs +0 -17
- package/dist/redirect-Cd1E7VUt.mjs.map +0 -1
- package/dist/redirects-Ca2MPfEG.mjs +0 -446
- package/dist/redirects-Ca2MPfEG.mjs.map +0 -1
- package/dist/redirects-Cv9apQKj.mjs +0 -148
- package/dist/redirects-Cv9apQKj.mjs.map +0 -1
- package/dist/relation-M4NUCb0b.mjs +0 -334
- package/dist/relation-M4NUCb0b.mjs.map +0 -1
- package/dist/relations-CCif47Oq.mjs +0 -403
- package/dist/relations-CCif47Oq.mjs.map +0 -1
- package/dist/relations-CK9CYUyr.mjs +0 -310
- package/dist/relations-CK9CYUyr.mjs.map +0 -1
- package/dist/request-cache-DzLYKm_x.mjs +0 -104
- package/dist/request-cache-DzLYKm_x.mjs.map +0 -1
- package/dist/request-meta-sZXt3sRo.mjs +0 -141
- package/dist/request-meta-sZXt3sRo.mjs.map +0 -1
- package/dist/resolve-2WbQsCvT.mjs +0 -199
- package/dist/resolve-2WbQsCvT.mjs.map +0 -1
- package/dist/route-wire--1hLuACz.mjs +0 -197
- package/dist/route-wire--1hLuACz.mjs.map +0 -1
- package/dist/routes-vrR95WR6.mjs +0 -272
- package/dist/routes-vrR95WR6.mjs.map +0 -1
- package/dist/runner-1y4J9fJB.mjs +0 -5742
- package/dist/runner-1y4J9fJB.mjs.map +0 -1
- package/dist/runner-D5_LzKXI.d.mts +0 -68
- package/dist/runner-D5_LzKXI.d.mts.map +0 -1
- package/dist/schema-BABiRdsH.mjs +0 -13
- package/dist/schema-BABiRdsH.mjs.map +0 -1
- package/dist/schema-Du3MzCG0.mjs +0 -446
- package/dist/schema-Du3MzCG0.mjs.map +0 -1
- package/dist/scopes-Dbk-ElhT.mjs +0 -34
- package/dist/scopes-Dbk-ElhT.mjs.map +0 -1
- package/dist/search-Bt1PL1jf.mjs +0 -448
- package/dist/search-Bt1PL1jf.mjs.map +0 -1
- package/dist/sections-Ddptx_o9.mjs +0 -346
- package/dist/sections-Ddptx_o9.mjs.map +0 -1
- package/dist/seo-CZT2oLtT.mjs +0 -114
- package/dist/seo-CZT2oLtT.mjs.map +0 -1
- package/dist/seo-D5w3-Azy.mjs +0 -133
- package/dist/seo-D5w3-Azy.mjs.map +0 -1
- package/dist/service-DuykXPyW.mjs +0 -150
- package/dist/service-DuykXPyW.mjs.map +0 -1
- package/dist/session-user-BhaVp8w0.mjs +0 -51
- package/dist/session-user-BhaVp8w0.mjs.map +0 -1
- package/dist/settings-B4vDl1fK.mjs +0 -439
- package/dist/settings-B4vDl1fK.mjs.map +0 -1
- package/dist/settings-DYidIB26.mjs +0 -61
- package/dist/settings-DYidIB26.mjs.map +0 -1
- package/dist/settings-Dyj6v8C4.mjs +0 -51
- package/dist/settings-Dyj6v8C4.mjs.map +0 -1
- package/dist/setup-complete-bOogcHWG.mjs +0 -26
- package/dist/setup-complete-bOogcHWG.mjs.map +0 -1
- package/dist/setup-nonce-0EGuKM4s.mjs +0 -25
- package/dist/setup-nonce-0EGuKM4s.mjs.map +0 -1
- package/dist/site-settings-DOgRUoFX.mjs +0 -50
- package/dist/site-settings-DOgRUoFX.mjs.map +0 -1
- package/dist/site-url-BU_bbxwj.mjs +0 -16
- package/dist/site-url-BU_bbxwj.mjs.map +0 -1
- package/dist/snapshot-PawoX-WG.mjs +0 -414
- package/dist/snapshot-PawoX-WG.mjs.map +0 -1
- package/dist/ssrf-CJUnJymJ.mjs +0 -406
- package/dist/ssrf-CJUnJymJ.mjs.map +0 -1
- package/dist/stage-DgrBz_du.mjs +0 -662
- package/dist/stage-DgrBz_du.mjs.map +0 -1
- package/dist/state-DDiPySSG.mjs +0 -153
- package/dist/state-DDiPySSG.mjs.map +0 -1
- package/dist/status-DZKIG4a9.mjs +0 -30
- package/dist/status-DZKIG4a9.mjs.map +0 -1
- package/dist/storage-query-FXJH5pI8.d.mts +0 -1581
- package/dist/storage-query-FXJH5pI8.d.mts.map +0 -1
- package/dist/tar-_1AgTYFu.mjs +0 -449
- package/dist/tar-_1AgTYFu.mjs.map +0 -1
- package/dist/target-_7pn2Gbg.mjs +0 -27
- package/dist/target-_7pn2Gbg.mjs.map +0 -1
- package/dist/taxonomies-C1IwNe8Q.mjs +0 -697
- package/dist/taxonomies-C1IwNe8Q.mjs.map +0 -1
- package/dist/taxonomies-C_XMoRcX.mjs +0 -939
- package/dist/taxonomies-C_XMoRcX.mjs.map +0 -1
- package/dist/taxonomy-C3Fu1YeH.mjs +0 -525
- package/dist/taxonomy-C3Fu1YeH.mjs.map +0 -1
- package/dist/tokens-u78jETkX.mjs +0 -171
- package/dist/tokens-u78jETkX.mjs.map +0 -1
- package/dist/transaction-BcJO4Tmc.mjs +0 -29
- package/dist/transaction-BcJO4Tmc.mjs.map +0 -1
- package/dist/transfer-DIGvR9Af.mjs +0 -166
- package/dist/transfer-DIGvR9Af.mjs.map +0 -1
- package/dist/transfer-DgeCvHnj.mjs +0 -8675
- package/dist/transfer-DgeCvHnj.mjs.map +0 -1
- package/dist/transfer-download-Pml7RMio.mjs +0 -33
- package/dist/transfer-download-Pml7RMio.mjs.map +0 -1
- package/dist/transformations-9gfpwY65.mjs +0 -196
- package/dist/transformations-9gfpwY65.mjs.map +0 -1
- package/dist/transport-BIfH7_hx.d.mts +0 -42
- package/dist/transport-BIfH7_hx.d.mts.map +0 -1
- package/dist/transport-DKWIq53q.mjs +0 -136
- package/dist/transport-DKWIq53q.mjs.map +0 -1
- package/dist/trusted-proxy-tKiVtyTD.mjs +0 -51
- package/dist/trusted-proxy-tKiVtyTD.mjs.map +0 -1
- package/dist/turnstile-DpsoyOfg.mjs +0 -53
- package/dist/turnstile-DpsoyOfg.mjs.map +0 -1
- package/dist/types-B4sUC2p1.d.mts +0 -198
- package/dist/types-B4sUC2p1.d.mts.map +0 -1
- package/dist/types-B7Lmsh1E.d.mts +0 -887
- package/dist/types-B7Lmsh1E.d.mts.map +0 -1
- package/dist/types-BZakh7Ym.mjs +0 -22
- package/dist/types-BZakh7Ym.mjs.map +0 -1
- package/dist/types-B_CppEmv.d.mts +0 -264
- package/dist/types-B_CppEmv.d.mts.map +0 -1
- package/dist/types-BcrBrE6-.mjs +0 -159
- package/dist/types-BcrBrE6-.mjs.map +0 -1
- package/dist/types-BkUg2yHx.mjs +0 -92
- package/dist/types-BkUg2yHx.mjs.map +0 -1
- package/dist/types-CAZgq9fO.d.mts +0 -124
- package/dist/types-CAZgq9fO.d.mts.map +0 -1
- package/dist/types-Cd-O03VG.d.mts +0 -363
- package/dist/types-Cd-O03VG.d.mts.map +0 -1
- package/dist/types-Cr-Kg-3D.d.mts +0 -1641
- package/dist/types-Cr-Kg-3D.d.mts.map +0 -1
- package/dist/types-D2fvWd1i.d.mts +0 -359
- package/dist/types-D2fvWd1i.d.mts.map +0 -1
- package/dist/types-D7HUsguf.mjs +0 -77
- package/dist/types-D7HUsguf.mjs.map +0 -1
- package/dist/types-DA1Te3Oy.d.mts +0 -198
- package/dist/types-DA1Te3Oy.d.mts.map +0 -1
- package/dist/types-DhV6Q5bP.mjs +0 -18
- package/dist/types-DhV6Q5bP.mjs.map +0 -1
- package/dist/types-DnnVSl6Y.d.mts +0 -85
- package/dist/types-DnnVSl6Y.d.mts.map +0 -1
- package/dist/types-VT4-BugW.mjs +0 -16
- package/dist/types-VT4-BugW.mjs.map +0 -1
- package/dist/upload-attempts-B68ZGNu9.mjs +0 -32
- package/dist/upload-attempts-B68ZGNu9.mjs.map +0 -1
- package/dist/url-pattern-CCeZMGOh.mjs +0 -33
- package/dist/url-pattern-CCeZMGOh.mjs.map +0 -1
- package/dist/user-DDSL-sGw.mjs +0 -171
- package/dist/user-DDSL-sGw.mjs.map +0 -1
- package/dist/utils-DdhmO9w9.mjs +0 -439
- package/dist/utils-DdhmO9w9.mjs.map +0 -1
- package/dist/validate-CHosPEhs.mjs +0 -453
- package/dist/validate-CHosPEhs.mjs.map +0 -1
- package/dist/validate-CM79QXYE.d.mts +0 -432
- package/dist/validate-CM79QXYE.d.mts.map +0 -1
- package/dist/validation-BFecQczG.mjs +0 -218
- package/dist/validation-BFecQczG.mjs.map +0 -1
- package/dist/version-BRZXVifl.mjs +0 -9
- package/dist/version-BRZXVifl.mjs.map +0 -1
- package/dist/version-DXsxRrob.mjs +0 -7
- package/dist/version-DXsxRrob.mjs.map +0 -1
- package/dist/widgets-WdV72brA.mjs +0 -126
- package/dist/widgets-WdV72brA.mjs.map +0 -1
- package/dist/wxr-taxonomies-BHTdqkmZ.d.mts +0 -34
- package/dist/wxr-taxonomies-BHTdqkmZ.d.mts.map +0 -1
- package/dist/wxr-taxonomies-DP6ESgMN.mjs +0 -372
- package/dist/wxr-taxonomies-DP6ESgMN.mjs.map +0 -1
- package/dist/zod-generator-D6uE4WiS.mjs +0 -389
- package/dist/zod-generator-D6uE4WiS.mjs.map +0 -1
- package/src/astro/routes/api/relations/[id]/translations.ts +0 -33
- /package/dist/{api-tokens-CE1ECIg0.mjs → api-tokens-FaG1zPsj.mjs} +0 -0
- /package/dist/{ssrf-DpBH7aOt.mjs → ssrf-DZOt8Qof.mjs} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle-Db1iNMv_.mjs","names":["capabilitiesToDeclaredAccess","declaredAccessToCapabilities"],"sources":["../src/cli/commands/bundle-utils.ts","../src/cli/commands/bundle.ts"],"sourcesContent":["/**\n * Bundle utility functions\n *\n * Shared logic extracted from the bundle command so it can be tested\n * without the CLI harness and tsdown dependency.\n */\n\nimport { createWriteStream } from \"node:fs\";\nimport { readdir, stat, access } from \"node:fs/promises\";\nimport { resolve, join } from \"node:path\";\nimport { pipeline } from \"node:stream/promises\";\nimport { pathToFileURL } from \"node:url\";\n\nimport { extractManifestRoute, isJsonPostRouteContract } from \"@emdash-cms/plugin-types\";\nimport { imageSize } from \"image-size\";\nimport { packTar } from \"modern-tar/fs\";\nimport { z } from \"zod\";\n\nimport { capabilitiesToDeclaredAccess, declaredAccessToCapabilities } from \"../../plugins/types.js\";\nimport type {\n\tPluginManifest,\n\tResolvedPlugin,\n\tHookName,\n\tManifestHookEntry,\n\tManifestMcpTool,\n\tManifestRouteEntry,\n} from \"../../plugins/types.js\";\n\n// ── Constants ────────────────────────────────────────────────────────────────\n\n// Bundle size caps per RFC 0001 §\"Bundle size limits\". These are decompressed\n// sizes; the gzipped tarball is typically a fraction of MAX_BUNDLE_SIZE.\nexport const MAX_BUNDLE_SIZE = 256 * 1024;\nexport const MAX_FILE_SIZE = 128 * 1024;\nexport const MAX_FILE_COUNT = 20;\n\nexport const MAX_SCREENSHOTS = 5;\nexport const MAX_SCREENSHOT_WIDTH = 1920;\nexport const MAX_SCREENSHOT_HEIGHT = 1080;\nexport const ICON_SIZE = 256;\nconst MCP_TOOL_NAME_PATTERN = /^[a-zA-Z0-9_-]+$/;\n\n// ── Regex patterns (module-scope to avoid re-compilation) ────────────────────\n\n/**\n * Matches Node.js built-in imports in bundled output:\n * - require(\"node:xxx\") / require(\"xxx\")\n * - import(\"node:xxx\") / import(\"xxx\")\n * - import X from \"node:xxx\" / import { X } from \"node:xxx\"\n * - import * as X from \"node:xxx\"\n * - export { X } from \"node:xxx\"\n * Captures the base module name (e.g. \"fs\" from \"node:fs/promises\").\n */\nconst NODE_BUILTIN_IMPORT_RE =\n\t/(?:import|export|require)\\s*(?:\\(|[^(]*?\\bfrom\\s+)[\"'](?:node:)?([a-z_]+)(?:\\/[^\"']*)?\\s*[\"']\\)?/g;\nconst LEADING_DOT_SLASH_RE = /^\\.\\//;\nconst DIST_PREFIX_RE = /^dist\\//;\nconst MJS_EXT_RE = /\\.m?js$/;\nconst TS_TO_TSX_RE = /\\.ts$/;\n\n/** Node.js built-in modules that shouldn't appear in sandbox code */\nconst NODE_BUILTINS = new Set([\n\t\"assert\",\n\t\"buffer\",\n\t\"child_process\",\n\t\"cluster\",\n\t\"crypto\",\n\t\"dgram\",\n\t\"dns\",\n\t\"domain\",\n\t\"events\",\n\t\"fs\",\n\t\"http\",\n\t\"http2\",\n\t\"https\",\n\t\"inspector\",\n\t\"module\",\n\t\"net\",\n\t\"os\",\n\t\"path\",\n\t\"perf_hooks\",\n\t\"process\",\n\t\"punycode\",\n\t\"querystring\",\n\t\"readline\",\n\t\"repl\",\n\t\"stream\",\n\t\"string_decoder\",\n\t\"sys\",\n\t\"timers\",\n\t\"tls\",\n\t\"trace_events\",\n\t\"tty\",\n\t\"url\",\n\t\"util\",\n\t\"v8\",\n\t\"vm\",\n\t\"wasi\",\n\t\"worker_threads\",\n\t\"zlib\",\n]);\n\n// ── File helpers ─────────────────────────────────────────────────────────────\n\nexport async function fileExists(path: string): Promise<boolean> {\n\ttry {\n\t\tawait access(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\n/** Convert an absolute build artifact path into a portable ESM import specifier. */\nexport function toFileImportSpecifier(path: string): string {\n\treturn pathToFileURL(path).href;\n}\n\n// ── Image dimension readers ──────────────────────────────────────────────────\n\n/**\n * Read image dimensions from a buffer.\n * Returns [width, height] or null if the format is unrecognized.\n */\nexport function readImageDimensions(buf: Uint8Array): [number, number] | null {\n\ttry {\n\t\tconst result = imageSize(buf);\n\t\tif (result.width != null && result.height != null) {\n\t\t\treturn [result.width, result.height];\n\t\t}\n\t\treturn null;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\n// ── Manifest extraction ──────────────────────────────────────────────────────\n\n/**\n * Extract manifest metadata from a ResolvedPlugin.\n * Strips functions (hooks, route handlers) and keeps only serializable metadata.\n */\nexport function extractManifest(plugin: ResolvedPlugin): PluginManifest {\n\tif ((plugin.admin.pages?.length ?? 0) > 0 || (plugin.admin.widgets?.length ?? 0) > 0) {\n\t\tconst adminRoute = plugin.routes.admin;\n\t\tif (adminRoute && (adminRoute.public === true || !isJsonPostRouteContract(adminRoute))) {\n\t\t\tthrow new Error(\"Block Kit admin route must accept POST JSON requests and return JSON\");\n\t\t}\n\t}\n\tconst declaredAccess = capabilitiesToDeclaredAccess(plugin.capabilities, plugin.allowedHosts);\n\tconst enforcedAccess = declaredAccessToCapabilities(declaredAccess);\n\t// Build hook entries preserving exclusive/priority/timeout metadata.\n\t// Plain HookName strings are emitted for hooks with default settings;\n\t// structured ManifestHookEntry objects are emitted when metadata differs.\n\tconst hooks: Array<ManifestHookEntry | HookName> = [];\n\tfor (const [name, resolved] of Object.entries(plugin.hooks)) {\n\t\tif (!resolved) continue;\n\t\tconst hasMetadata =\n\t\t\tresolved.exclusive || resolved.priority !== 100 || resolved.timeout !== 5000;\n\t\tif (hasMetadata) {\n\t\t\tconst entry: ManifestHookEntry = { name };\n\t\t\tif (resolved.exclusive) entry.exclusive = true;\n\t\t\tif (resolved.priority !== 100) entry.priority = resolved.priority;\n\t\t\tif (resolved.timeout !== 5000) entry.timeout = resolved.timeout;\n\t\t\thooks.push(entry);\n\t\t} else {\n\t\t\thooks.push(name as HookName);\n\t\t}\n\t}\n\n\tconst routes: Array<ManifestRouteEntry | string> = Object.entries(plugin.routes).map(\n\t\t([name, route]) => extractManifestRoute(name, route),\n\t);\n\tconst tools: ManifestMcpTool[] = Object.entries(plugin.mcp?.tools ?? {}).map(([name, tool]) => {\n\t\tif (!MCP_TOOL_NAME_PATTERN.test(name)) throw new Error(`Invalid MCP tool name \"${name}\"`);\n\t\tconst route = plugin.routes[tool.route];\n\t\tif (!route?.permission || route.public || route.response === \"raw\") {\n\t\t\tthrow new Error(`MCP tool \"${name}\" must reference a private route with a permission`);\n\t\t}\n\t\tif (!isJsonPostRouteContract(route)) {\n\t\t\tthrow new Error(`MCP tool \"${name}\" must reference a POST-compatible JSON route`);\n\t\t}\n\t\treturn {\n\t\t\tname,\n\t\t\tdescription: tool.description,\n\t\t\troute: tool.route,\n\t\t\tpermission: route.permission,\n\t\t\tdestructive: tool.destructive ?? false,\n\t\t\tinputSchema: z.toJSONSchema(tool.input, { target: \"draft-7\" }),\n\t\t\t...(tool.output\n\t\t\t\t? {\n\t\t\t\t\t\toutputSchema: z.toJSONSchema(tool.output, { target: \"draft-7\" }),\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t};\n\t});\n\n\treturn {\n\t\tid: plugin.id,\n\t\tversion: plugin.version,\n\t\tdeclaredAccess,\n\t\tcapabilities: enforcedAccess.capabilities,\n\t\tallowedHosts: plugin.allowedHosts,\n\t\tstorage: plugin.storage,\n\t\thooks,\n\t\troutes,\n\t\t...(tools.length > 0 ? { mcp: { tools } } : {}),\n\t\tadmin: {\n\t\t\t// Omit entry (it's a module specifier for the host, not relevant in bundles)\n\t\t\tsettingsSchema: plugin.admin.settingsSchema,\n\t\t\tpages: plugin.admin.pages,\n\t\t\twidgets: plugin.admin.widgets,\n\t\t\teditorPanels: plugin.admin.editorPanels,\n\t\t\teditorActions: plugin.admin.editorActions,\n\t\t},\n\t};\n}\n\n// ── Node.js built-in detection ───────────────────────────────────────────────\n\n/**\n * Scan bundled code for Node.js built-in imports.\n * Matches require(\"node:xxx\"), require(\"xxx\"), import(\"node:xxx\") — the patterns\n * that appear in bundled ESM/CJS output (not source-level named imports).\n * Returns deduplicated array of built-in module names found.\n */\nexport function findNodeBuiltinImports(code: string): string[] {\n\tconst found: string[] = [];\n\tNODE_BUILTIN_IMPORT_RE.lastIndex = 0;\n\tlet match;\n\twhile ((match = NODE_BUILTIN_IMPORT_RE.exec(code)) !== null) {\n\t\tconst mod = match[1];\n\t\tif (NODE_BUILTINS.has(mod)) {\n\t\t\tfound.push(mod);\n\t\t}\n\t}\n\treturn [...new Set(found)];\n}\n\n// ── Path resolution ──────────────────────────────────────────────────────────\n\n/**\n * Find a build output file by base name, checking common extensions.\n * tsdown may output .mjs, .js, or .cjs depending on format and config.\n */\nexport async function findBuildOutput(dir: string, baseName: string): Promise<string | undefined> {\n\tfor (const ext of [\".mjs\", \".js\", \".cjs\"]) {\n\t\tconst candidate = join(dir, `${baseName}${ext}`);\n\t\tif (await fileExists(candidate)) return candidate;\n\t}\n\treturn undefined;\n}\n\n/**\n * Resolve a dist/built path back to its source .ts/.tsx equivalent.\n * E.g., \"./dist/index.mjs\" → \"src/index.ts\"\n */\nexport async function resolveSourceEntry(\n\tpluginDir: string,\n\tdistPath: string,\n): Promise<string | undefined> {\n\tconst cleaned = distPath.replace(LEADING_DOT_SLASH_RE, \"\");\n\n\t// Prefer source over dist — dist/foo.mjs → src/foo.ts\n\tconst srcPath = cleaned.replace(DIST_PREFIX_RE, \"src/\").replace(MJS_EXT_RE, \".ts\");\n\tconst srcFull = resolve(pluginDir, srcPath);\n\tif (await fileExists(srcFull)) return srcFull;\n\n\t// Try .tsx\n\tconst tsxPath = srcPath.replace(TS_TO_TSX_RE, \".tsx\");\n\tconst tsxFull = resolve(pluginDir, tsxPath);\n\tif (await fileExists(tsxFull)) return tsxFull;\n\n\t// Fall back to direct path (might be source already, or pre-compiled plugin)\n\tconst direct = resolve(pluginDir, cleaned);\n\tif (await fileExists(direct)) return direct;\n\n\treturn undefined;\n}\n\n// ── Export validation ───────────────────────────────────────────────────────\n\nconst TS_SOURCE_EXPORT_RE = /\\.(?:ts|tsx|mts|cts|jsx)$/;\n\n/**\n * Find package.json exports that point to source files instead of built output.\n * Returns an array of `{ exportPath, resolvedPath }` for each offending export.\n */\nexport function findSourceExports(\n\texports: Record<string, unknown>,\n): Array<{ exportPath: string; resolvedPath: string }> {\n\tconst issues: Array<{ exportPath: string; resolvedPath: string }> = [];\n\tfor (const [exportPath, exportValue] of Object.entries(exports)) {\n\t\tconst resolved =\n\t\t\ttypeof exportValue === \"string\"\n\t\t\t\t? exportValue\n\t\t\t\t: exportValue && typeof exportValue === \"object\" && \"import\" in exportValue\n\t\t\t\t\t? (exportValue as { import: string }).import\n\t\t\t\t\t: null;\n\t\tif (resolved && TS_SOURCE_EXPORT_RE.test(resolved)) {\n\t\t\tissues.push({ exportPath, resolvedPath: resolved });\n\t\t}\n\t}\n\treturn issues;\n}\n\n// ── Directory helpers ────────────────────────────────────────────────────────\n\n/**\n * One file in a bundle: a tarball-relative path and its byte length.\n * Produced by `collectBundleEntries` (from a staging dir) or by the publish\n * flow (from tarball entries); consumed by `validateBundleSize`.\n */\nexport interface BundleFileEntry {\n\tname: string;\n\tbytes: number;\n}\n\n/**\n * Recursively walk a staging directory and return a flat list of all files\n * with sizes. Names are relative to `dir` so they match what would appear\n * as the tarball entry name.\n */\nexport async function collectBundleEntries(dir: string): Promise<BundleFileEntry[]> {\n\tconst entries: BundleFileEntry[] = [];\n\tawait walkBundle(dir, \"\", entries);\n\treturn entries;\n}\n\nasync function walkBundle(dir: string, prefix: string, into: BundleFileEntry[]): Promise<void> {\n\tconst items = await readdir(dir, { withFileTypes: true });\n\tfor (const item of items) {\n\t\tconst fullPath = join(dir, item.name);\n\t\tconst relPath = prefix ? `${prefix}/${item.name}` : item.name;\n\t\tif (item.isFile()) {\n\t\t\tconst s = await stat(fullPath);\n\t\t\tinto.push({ name: relPath, bytes: s.size });\n\t\t} else if (item.isDirectory()) {\n\t\t\tawait walkBundle(fullPath, relPath, into);\n\t\t}\n\t}\n}\n\n/**\n * Sum the byte sizes of all entries.\n */\nexport function totalBundleBytes(entries: readonly BundleFileEntry[]): number {\n\tlet total = 0;\n\tfor (const e of entries) total += e.bytes;\n\treturn total;\n}\n\n/**\n * Check a bundle against the three size caps from RFC 0001:\n * - total decompressed ≤ MAX_BUNDLE_SIZE\n * - per-file decompressed ≤ MAX_FILE_SIZE\n * - file count ≤ MAX_FILE_COUNT\n *\n * Returns a list of violation messages (empty if the bundle is within all\n * caps). Messages are deterministic per input — the total/count violations\n * come first, then oversized files in alphabetical order — so the same\n * bundle always produces the same error text.\n */\nexport function validateBundleSize(entries: readonly BundleFileEntry[]): string[] {\n\tconst violations: string[] = [];\n\tconst total = totalBundleBytes(entries);\n\tif (total > MAX_BUNDLE_SIZE) {\n\t\tviolations.push(\n\t\t\t`Bundle size ${formatBytes(total)} exceeds maximum of ${formatBytes(MAX_BUNDLE_SIZE)}.`,\n\t\t);\n\t}\n\tif (entries.length > MAX_FILE_COUNT) {\n\t\tviolations.push(\n\t\t\t`Bundle contains ${entries.length} files, exceeds maximum of ${MAX_FILE_COUNT}.`,\n\t\t);\n\t}\n\tconst oversized = entries\n\t\t.filter((e) => e.bytes > MAX_FILE_SIZE)\n\t\t.toSorted((a, b) => a.name.localeCompare(b.name));\n\tfor (const e of oversized) {\n\t\tviolations.push(\n\t\t\t`File ${e.name} is ${formatBytes(e.bytes)}, exceeds per-file maximum of ${formatBytes(MAX_FILE_SIZE)}.`,\n\t\t);\n\t}\n\treturn violations;\n}\n\n/**\n * Render a byte count as a human-friendly string (e.g. \"256.0 KB\").\n */\nexport function formatBytes(n: number): string {\n\tif (n < 1024) return `${n} B`;\n\tif (n < 1024 * 1024) return `${(n / 1024).toFixed(1)} KB`;\n\treturn `${(n / 1024 / 1024).toFixed(2)} MB`;\n}\n\n// ── Tarball creation ─────────────────────────────────────────────────────────\n\n/**\n * Create a gzipped tarball from a directory.\n */\nexport async function createTarball(sourceDir: string, outputPath: string): Promise<void> {\n\tconst { createGzip } = await import(\"node:zlib\");\n\tconst tarStream = packTar(sourceDir);\n\tconst gzip = createGzip({ level: 9 });\n\tconst out = createWriteStream(outputPath);\n\tawait pipeline(tarStream, gzip, out);\n}\n","/**\n * emdash plugin bundle\n *\n * Produces a publishable plugin tarball from a plugin source directory.\n *\n * Steps:\n * 1. Resolve plugin entrypoint (finds definePlugin() export)\n * 2. Bundle backend code with tsdown → backend.js (single ES module, tree-shaken)\n * 3. Bundle admin code if present → admin.js\n * 4. Extract manifest from definePlugin() → manifest.json\n * 5. Collect assets (README.md, icon.png, screenshots/)\n * 6. Validate bundle (manifest schema, size limits, no Node.js builtins)\n * 7. Create tarball ({id}-{version}.tar.gz)\n */\n\nimport { createHash } from \"node:crypto\";\nimport { readFile, stat, mkdir, writeFile, rm, copyFile, symlink, readdir } from \"node:fs/promises\";\nimport { resolve, join, extname, basename } from \"node:path\";\n\nimport { extractRouteOptions } from \"@emdash-cms/plugin-types\";\nimport { defineCommand } from \"citty\";\nimport consola from \"consola\";\n\nimport { CAPABILITY_RENAMES, isDeprecatedCapability } from \"../../plugins/types.js\";\nimport type { ResolvedPlugin } from \"../../plugins/types.js\";\nimport {\n\tcollectBundleEntries,\n\tcreateTarball,\n\textractManifest,\n\tfileExists,\n\tfindBuildOutput,\n\tfindNodeBuiltinImports,\n\tfindSourceExports,\n\tformatBytes,\n\tICON_SIZE,\n\tMAX_SCREENSHOTS,\n\tMAX_SCREENSHOT_WIDTH,\n\tMAX_SCREENSHOT_HEIGHT,\n\treadImageDimensions,\n\tresolveSourceEntry,\n\ttoFileImportSpecifier,\n\ttotalBundleBytes,\n\tvalidateBundleSize,\n} from \"./bundle-utils.js\";\n\nconst TS_EXT_RE = /\\.(tsx?|[mc]?js)$/;\nconst SLASH_RE = /\\//g;\nconst LEADING_AT_RE = /^@/;\nconst emdash_SCOPE_RE = /^@emdash-cms\\//;\n\nexport const bundleCommand = defineCommand({\n\tmeta: {\n\t\tname: \"bundle\",\n\t\tdescription: \"Bundle a plugin for marketplace distribution\",\n\t},\n\targs: {\n\t\tdir: {\n\t\t\ttype: \"string\",\n\t\t\tdescription: \"Plugin directory (default: current directory)\",\n\t\t\tdefault: process.cwd(),\n\t\t},\n\t\toutDir: {\n\t\t\ttype: \"string\",\n\t\t\talias: \"o\",\n\t\t\tdescription: \"Output directory for the tarball (default: ./dist)\",\n\t\t\tdefault: \"dist\",\n\t\t},\n\t\tvalidateOnly: {\n\t\t\ttype: \"boolean\",\n\t\t\tdescription: \"Run validation only, skip tarball creation\",\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tasync run({ args }) {\n\t\tconst pluginDir = resolve(args.dir);\n\t\tconst outDir = resolve(pluginDir, args.outDir);\n\t\tconst validateOnly = args.validateOnly;\n\n\t\tconsola.start(validateOnly ? \"Validating plugin...\" : \"Bundling plugin...\");\n\n\t\t// ── Step 1: Read package.json and resolve entrypoints ──\n\n\t\tconst pkgPath = join(pluginDir, \"package.json\");\n\t\tif (!(await fileExists(pkgPath))) {\n\t\t\tconsola.error(\"No package.json found in\", pluginDir);\n\t\t\tprocess.exit(1);\n\t\t}\n\n\t\tconst pkg = JSON.parse(await readFile(pkgPath, \"utf-8\")) as {\n\t\t\tname?: string;\n\t\t\tmain?: string;\n\t\t\texports?: Record<string, unknown>;\n\t\t};\n\n\t\t// Find the sandbox entrypoint — look for ./sandbox export first, then main\n\t\tlet backendEntry: string | undefined;\n\t\tlet adminEntry: string | undefined;\n\n\t\tif (pkg.exports) {\n\t\t\t// Check for explicit sandbox export\n\t\t\tconst sandboxExport = pkg.exports[\"./sandbox\"];\n\t\t\tif (typeof sandboxExport === \"string\") {\n\t\t\t\tbackendEntry = await resolveSourceEntry(pluginDir, sandboxExport);\n\t\t\t} else if (sandboxExport && typeof sandboxExport === \"object\" && \"import\" in sandboxExport) {\n\t\t\t\tbackendEntry = await resolveSourceEntry(\n\t\t\t\t\tpluginDir,\n\t\t\t\t\t(sandboxExport as { import: string }).import,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Check for admin export\n\t\t\tconst adminExport = pkg.exports[\"./admin\"];\n\t\t\tif (typeof adminExport === \"string\") {\n\t\t\t\tadminEntry = await resolveSourceEntry(pluginDir, adminExport);\n\t\t\t} else if (adminExport && typeof adminExport === \"object\" && \"import\" in adminExport) {\n\t\t\t\tadminEntry = await resolveSourceEntry(\n\t\t\t\t\tpluginDir,\n\t\t\t\t\t(adminExport as { import: string }).import,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// If no sandbox export, look for src/sandbox-entry.ts\n\t\tif (!backendEntry) {\n\t\t\tconst defaultSandbox = join(pluginDir, \"src/sandbox-entry.ts\");\n\t\t\tif (await fileExists(defaultSandbox)) {\n\t\t\t\tbackendEntry = defaultSandbox;\n\t\t\t}\n\t\t}\n\n\t\t// Find the main entry for manifest extraction\n\t\tlet mainEntry: string | undefined;\n\t\tif (pkg.exports?.[\".\"] !== undefined) {\n\t\t\tconst mainExport = pkg.exports[\".\"];\n\t\t\tif (typeof mainExport === \"string\") {\n\t\t\t\tmainEntry = await resolveSourceEntry(pluginDir, mainExport);\n\t\t\t} else if (mainExport && typeof mainExport === \"object\" && \"import\" in mainExport) {\n\t\t\t\tmainEntry = await resolveSourceEntry(pluginDir, (mainExport as { import: string }).import);\n\t\t\t}\n\t\t}\n\t\tif (!mainEntry && pkg.main) {\n\t\t\tmainEntry = await resolveSourceEntry(pluginDir, pkg.main);\n\t\t}\n\t\tif (!mainEntry) {\n\t\t\tconst defaultMain = join(pluginDir, \"src/index.ts\");\n\t\t\tif (await fileExists(defaultMain)) {\n\t\t\t\tmainEntry = defaultMain;\n\t\t\t}\n\t\t}\n\n\t\tif (!mainEntry) {\n\t\t\tconsola.error(\n\t\t\t\t\"Cannot find plugin entrypoint. Expected src/index.ts or main/exports in package.json\",\n\t\t\t);\n\t\t\tprocess.exit(1);\n\t\t}\n\n\t\tconsola.info(`Main entry: ${mainEntry}`);\n\t\tif (backendEntry) consola.info(`Backend entry: ${backendEntry}`);\n\t\tif (adminEntry) consola.info(`Admin entry: ${adminEntry}`);\n\n\t\t// ── Step 2: Extract manifest by importing the plugin ──\n\n\t\tconsola.start(\"Extracting plugin manifest...\");\n\n\t\t// Build the main entry first so we can import it\n\t\tconst { build } = await import(\"tsdown\");\n\t\tconst tmpDir = join(pluginDir, \".emdash-bundle-tmp\");\n\n\t\ttry {\n\t\t\t// Clean up any stale temp directory from a previous failed run\n\t\t\tawait rm(tmpDir, { recursive: true, force: true });\n\t\t\tawait mkdir(tmpDir, { recursive: true });\n\n\t\t\t// Build main entry to extract manifest.\n\t\t\t// Externalize emdash and sibling packages — they'll resolve\n\t\t\t// via the symlinked node_modules below.\n\t\t\tconst mainOutDir = join(tmpDir, \"main\");\n\t\t\tawait build({\n\t\t\t\tconfig: false,\n\t\t\t\tentry: [mainEntry],\n\t\t\t\tformat: \"esm\",\n\t\t\t\toutDir: mainOutDir,\n\t\t\t\tdts: false,\n\t\t\t\tplatform: \"node\",\n\t\t\t\texternal: [\"emdash\", emdash_SCOPE_RE],\n\t\t\t});\n\n\t\t\t// Symlink plugin's node_modules so the built module can resolve\n\t\t\t// external dependencies (emdash, @emdash-cms/*, etc.)\n\t\t\tconst pluginNodeModules = join(pluginDir, \"node_modules\");\n\t\t\tconst tmpNodeModules = join(mainOutDir, \"node_modules\");\n\t\t\tif (await fileExists(pluginNodeModules)) {\n\t\t\t\tawait symlink(pluginNodeModules, tmpNodeModules, \"junction\");\n\t\t\t}\n\n\t\t\t// Import the built module to get the resolved plugin\n\t\t\tconst mainBaseName = basename(mainEntry).replace(TS_EXT_RE, \"\");\n\t\t\tconst mainOutputPath = await findBuildOutput(mainOutDir, mainBaseName);\n\n\t\t\tif (!mainOutputPath) {\n\t\t\t\tconsola.error(\"Failed to build main entry — no output found in\", mainOutDir);\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\n\t\t\t// Dynamic import of the built plugin\n\t\t\tconst pluginModule = (await import(toFileImportSpecifier(mainOutputPath))) as Record<\n\t\t\t\tstring,\n\t\t\t\tunknown\n\t\t\t>;\n\n\t\t\t// Extract manifest from the imported module.\n\t\t\t// Supports three patterns:\n\t\t\t// 1. Native: createPlugin() export -> ResolvedPlugin\n\t\t\t// 2. Native: default export that is/returns a ResolvedPlugin (has id+version)\n\t\t\t// 3. Standard: descriptor factory function (returns { id, version, ... })\n\t\t\tlet resolvedPlugin: ResolvedPlugin | undefined;\n\n\t\t\tif (typeof pluginModule.createPlugin === \"function\") {\n\t\t\t\tresolvedPlugin = pluginModule.createPlugin() as ResolvedPlugin;\n\t\t\t} else if (typeof pluginModule.default === \"function\") {\n\t\t\t\tresolvedPlugin = pluginModule.default() as ResolvedPlugin;\n\t\t\t} else if (typeof pluginModule.default === \"object\" && pluginModule.default !== null) {\n\t\t\t\tconst defaultExport = pluginModule.default as Record<string, unknown>;\n\t\t\t\tif (\"id\" in defaultExport && \"version\" in defaultExport) {\n\t\t\t\t\tresolvedPlugin = defaultExport as unknown as ResolvedPlugin;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Standard format: no createPlugin, no default with id/version.\n\t\t\t// Look for a descriptor factory -- any named export function that\n\t\t\t// returns an object with { id, version }.\n\t\t\tif (!resolvedPlugin) {\n\t\t\t\tfor (const [key, value] of Object.entries(pluginModule)) {\n\t\t\t\t\tif (key === \"default\" || typeof value !== \"function\") continue;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst result = (value as () => unknown)() as Record<string, unknown> | null;\n\t\t\t\t\t\tif (result && typeof result === \"object\" && \"id\" in result && \"version\" in result) {\n\t\t\t\t\t\t\tresolvedPlugin = {\n\t\t\t\t\t\t\t\tid: result.id,\n\t\t\t\t\t\t\t\tversion: result.version,\n\t\t\t\t\t\t\t\tcapabilities: result.capabilities ?? [],\n\t\t\t\t\t\t\t\tallowedHosts: result.allowedHosts ?? [],\n\t\t\t\t\t\t\t\tstorage: result.storage ?? {},\n\t\t\t\t\t\t\t\thooks: {},\n\t\t\t\t\t\t\t\troutes: {},\n\t\t\t\t\t\t\t\tadmin: {\n\t\t\t\t\t\t\t\t\tpages: result.adminPages,\n\t\t\t\t\t\t\t\t\twidgets: result.adminWidgets,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} as ResolvedPlugin;\n\n\t\t\t\t\t\t\t// If there's a sandbox entry, build and import it\n\t\t\t\t\t\t\t// to get hook/route names for the manifest.\n\t\t\t\t\t\t\tif (backendEntry) {\n\t\t\t\t\t\t\t\tconst backendProbeDir = join(tmpDir, \"backend-probe\");\n\t\t\t\t\t\t\t\tconst probeShimDir = join(tmpDir, \"probe-shims\");\n\t\t\t\t\t\t\t\tawait mkdir(probeShimDir, { recursive: true });\n\t\t\t\t\t\t\t\tawait writeFile(\n\t\t\t\t\t\t\t\t\tjoin(probeShimDir, \"emdash.mjs\"),\n\t\t\t\t\t\t\t\t\t\"export const definePlugin = (d) => d;\\n\",\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tawait build({\n\t\t\t\t\t\t\t\t\tconfig: false,\n\t\t\t\t\t\t\t\t\tentry: [backendEntry],\n\t\t\t\t\t\t\t\t\tformat: \"esm\",\n\t\t\t\t\t\t\t\t\toutDir: backendProbeDir,\n\t\t\t\t\t\t\t\t\tdts: false,\n\t\t\t\t\t\t\t\t\tplatform: \"neutral\",\n\t\t\t\t\t\t\t\t\texternal: [],\n\t\t\t\t\t\t\t\t\talias: { emdash: join(probeShimDir, \"emdash.mjs\") },\n\t\t\t\t\t\t\t\t\ttreeshake: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tconst backendBaseName = basename(backendEntry).replace(TS_EXT_RE, \"\");\n\t\t\t\t\t\t\t\tconst backendProbePath = await findBuildOutput(backendProbeDir, backendBaseName);\n\t\t\t\t\t\t\t\tif (backendProbePath) {\n\t\t\t\t\t\t\t\t\tconst backendModule = (await import(\n\t\t\t\t\t\t\t\t\t\ttoFileImportSpecifier(backendProbePath)\n\t\t\t\t\t\t\t\t\t)) as Record<string, unknown>;\n\t\t\t\t\t\t\t\t\tconst standardDef = (backendModule.default ?? {}) as Record<string, unknown>;\n\t\t\t\t\t\t\t\t\tconst hooks = standardDef.hooks as Record<string, unknown> | undefined;\n\t\t\t\t\t\t\t\t\tconst routes = standardDef.routes as Record<string, unknown> | undefined;\n\t\t\t\t\t\t\t\t\tif (hooks) {\n\t\t\t\t\t\t\t\t\t\tfor (const hookName of Object.keys(hooks)) {\n\t\t\t\t\t\t\t\t\t\t\tconst hookEntry = hooks[hookName];\n\t\t\t\t\t\t\t\t\t\t\tconst isConfig =\n\t\t\t\t\t\t\t\t\t\t\t\ttypeof hookEntry === \"object\" &&\n\t\t\t\t\t\t\t\t\t\t\t\thookEntry !== null &&\n\t\t\t\t\t\t\t\t\t\t\t\t\"handler\" in hookEntry;\n\t\t\t\t\t\t\t\t\t\t\tconst config = isConfig ? (hookEntry as Record<string, unknown>) : {};\n\t\t\t\t\t\t\t\t\t\t\t(resolvedPlugin.hooks as Record<string, unknown>)[hookName] = {\n\t\t\t\t\t\t\t\t\t\t\t\thandler: isConfig\n\t\t\t\t\t\t\t\t\t\t\t\t\t? (hookEntry as Record<string, unknown>).handler\n\t\t\t\t\t\t\t\t\t\t\t\t\t: hookEntry,\n\t\t\t\t\t\t\t\t\t\t\t\tpriority: (config.priority as number) ?? 100,\n\t\t\t\t\t\t\t\t\t\t\t\ttimeout: (config.timeout as number) ?? 5000,\n\t\t\t\t\t\t\t\t\t\t\t\tdependencies: (config.dependencies as string[]) ?? [],\n\t\t\t\t\t\t\t\t\t\t\t\terrorPolicy: (config.errorPolicy as string) ?? \"abort\",\n\t\t\t\t\t\t\t\t\t\t\t\texclusive: (config.exclusive as boolean) ?? false,\n\t\t\t\t\t\t\t\t\t\t\t\tpluginId: result.id,\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (routes) {\n\t\t\t\t\t\t\t\t\t\tfor (const [name, route] of Object.entries(routes)) {\n\t\t\t\t\t\t\t\t\t\t\tconst routeObj =\n\t\t\t\t\t\t\t\t\t\t\t\ttypeof route === \"object\" && route !== null\n\t\t\t\t\t\t\t\t\t\t\t\t\t? (route as Record<string, unknown>)\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {};\n\t\t\t\t\t\t\t\t\t\t\t(resolvedPlugin.routes as Record<string, unknown>)[name] = {\n\t\t\t\t\t\t\t\t\t\t\t\thandler: typeof route === \"function\" ? route : routeObj.handler,\n\t\t\t\t\t\t\t\t\t\t\t\t...extractRouteOptions(route),\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (resolvedPlugin) throw error;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!resolvedPlugin?.id || !resolvedPlugin?.version) {\n\t\t\t\tconsola.error(\n\t\t\t\t\t\"Could not extract plugin definition. Expected one of:\\n\" +\n\t\t\t\t\t\t\" - createPlugin() export (native format)\\n\" +\n\t\t\t\t\t\t\" - Descriptor factory function returning { id, version, ... } (standard format)\",\n\t\t\t\t);\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\n\t\t\tconst manifest = extractManifest(resolvedPlugin);\n\n\t\t\t// Validate format consistency: bundled plugins are for the marketplace\n\t\t\t// (sandboxed), so they must be standard format without trusted-only features.\n\t\t\tif (resolvedPlugin.admin?.entry) {\n\t\t\t\tconsola.error(\n\t\t\t\t\t`Plugin declares adminEntry — React admin components require native/trusted mode. ` +\n\t\t\t\t\t\t`Use Block Kit for sandboxed admin pages, or remove adminEntry.`,\n\t\t\t\t);\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\t\t\tif (\n\t\t\t\tresolvedPlugin.admin?.portableTextBlocks &&\n\t\t\t\tresolvedPlugin.admin.portableTextBlocks.length > 0\n\t\t\t) {\n\t\t\t\tconsola.error(\n\t\t\t\t\t`Plugin declares portableTextBlocks — these require native/trusted mode ` +\n\t\t\t\t\t\t`and cannot be bundled for the marketplace.`,\n\t\t\t\t);\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\n\t\t\tconsola.success(`Plugin: ${manifest.id}@${manifest.version}`);\n\t\t\tconsola.info(\n\t\t\t\t` Capabilities: ${manifest.capabilities.length > 0 ? manifest.capabilities.join(\", \") : \"(none)\"}`,\n\t\t\t);\n\t\t\tconsola.info(\n\t\t\t\t` Hooks: ${manifest.hooks.length > 0 ? manifest.hooks.map((h) => (typeof h === \"string\" ? h : h.name)).join(\", \") : \"(none)\"}`,\n\t\t\t);\n\t\t\tconsola.info(\n\t\t\t\t` Routes: ${manifest.routes.length > 0 ? manifest.routes.map((r) => (typeof r === \"string\" ? r : r.name)).join(\", \") : \"(none)\"}`,\n\t\t\t);\n\n\t\t\t// ── Step 3: Bundle backend.js ──\n\n\t\t\tconst bundleDir = join(tmpDir, \"bundle\");\n\t\t\tawait mkdir(bundleDir, { recursive: true });\n\n\t\t\tif (backendEntry) {\n\t\t\t\tconsola.start(\"Bundling backend...\");\n\n\t\t\t\t// Create a shim for emdash so the sandbox entry doesn't pull in the\n\t\t\t\t// entire core package. definePlugin is an identity function for standard\n\t\t\t\t// format, and PluginContext is a type-only import that disappears.\n\t\t\t\tconst shimDir = join(tmpDir, \"shims\");\n\t\t\t\tawait mkdir(shimDir, { recursive: true });\n\t\t\t\tawait writeFile(join(shimDir, \"emdash.mjs\"), \"export const definePlugin = (d) => d;\\n\");\n\n\t\t\t\tawait build({\n\t\t\t\t\tconfig: false,\n\t\t\t\t\tentry: [backendEntry],\n\t\t\t\t\tformat: \"esm\",\n\t\t\t\t\toutDir: join(tmpDir, \"backend\"),\n\t\t\t\t\tdts: false,\n\t\t\t\t\tplatform: \"neutral\",\n\t\t\t\t\t// Bundle everything for a self-contained sandbox file,\n\t\t\t\t\t// but alias emdash to our shim so we don't pull in the core.\n\t\t\t\t\texternal: [],\n\t\t\t\t\talias: { emdash: join(shimDir, \"emdash.mjs\") },\n\t\t\t\t\tminify: true,\n\t\t\t\t\ttreeshake: true,\n\t\t\t\t});\n\n\t\t\t\tconst backendBaseName = basename(backendEntry).replace(TS_EXT_RE, \"\");\n\t\t\t\tconst backendOutputPath = await findBuildOutput(join(tmpDir, \"backend\"), backendBaseName);\n\n\t\t\t\tif (backendOutputPath) {\n\t\t\t\t\tawait copyFile(backendOutputPath, join(bundleDir, \"backend.js\"));\n\t\t\t\t\tconsola.success(\"Built backend.js\");\n\t\t\t\t} else {\n\t\t\t\t\tconsola.error(\"Backend build produced no output\");\n\t\t\t\t\tprocess.exit(1);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsola.warn(\"No sandbox entry found — bundle will have no backend.js\");\n\t\t\t\tconsola.warn(' Add a \"sandbox-entry.ts\" in src/ or a \"./sandbox\" export in package.json');\n\t\t\t}\n\n\t\t\t// ── Step 4: Bundle admin.js ──\n\n\t\t\tif (adminEntry) {\n\t\t\t\tconsola.start(\"Bundling admin...\");\n\t\t\t\tawait build({\n\t\t\t\t\tconfig: false,\n\t\t\t\t\tentry: [adminEntry],\n\t\t\t\t\tformat: \"esm\",\n\t\t\t\t\toutDir: join(tmpDir, \"admin\"),\n\t\t\t\t\tdts: false,\n\t\t\t\t\tplatform: \"neutral\",\n\t\t\t\t\texternal: [],\n\t\t\t\t\tminify: true,\n\t\t\t\t\ttreeshake: true,\n\t\t\t\t});\n\n\t\t\t\tconst adminBaseName = basename(adminEntry).replace(TS_EXT_RE, \"\");\n\t\t\t\tconst adminOutputPath = await findBuildOutput(join(tmpDir, \"admin\"), adminBaseName);\n\n\t\t\t\tif (adminOutputPath) {\n\t\t\t\t\tawait copyFile(adminOutputPath, join(bundleDir, \"admin.js\"));\n\t\t\t\t\tconsola.success(\"Built admin.js\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// ── Step 5: Write manifest.json ──\n\n\t\t\tawait writeFile(join(bundleDir, \"manifest.json\"), JSON.stringify(manifest, null, 2));\n\n\t\t\t// ── Step 6: Collect assets ──\n\n\t\t\tconsola.start(\"Collecting assets...\");\n\n\t\t\t// README.md\n\t\t\tconst readmePath = join(pluginDir, \"README.md\");\n\t\t\tif (await fileExists(readmePath)) {\n\t\t\t\tawait copyFile(readmePath, join(bundleDir, \"README.md\"));\n\t\t\t\tconsola.success(\"Included README.md\");\n\t\t\t}\n\n\t\t\t// icon.png\n\t\t\tconst iconPath = join(pluginDir, \"icon.png\");\n\t\t\tif (await fileExists(iconPath)) {\n\t\t\t\tconst iconBuf = await readFile(iconPath);\n\t\t\t\tconst dims = readImageDimensions(iconBuf);\n\t\t\t\tif (!dims) {\n\t\t\t\t\tconsola.warn(\"icon.png is not a valid PNG — skipping\");\n\t\t\t\t} else if (dims[0] !== ICON_SIZE || dims[1] !== ICON_SIZE) {\n\t\t\t\t\tconsola.warn(\n\t\t\t\t\t\t`icon.png is ${dims[0]}x${dims[1]}, expected ${ICON_SIZE}x${ICON_SIZE} — including anyway`,\n\t\t\t\t\t);\n\t\t\t\t\tawait copyFile(iconPath, join(bundleDir, \"icon.png\"));\n\t\t\t\t} else {\n\t\t\t\t\tawait copyFile(iconPath, join(bundleDir, \"icon.png\"));\n\t\t\t\t\tconsola.success(\"Included icon.png\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// screenshots/\n\t\t\tconst screenshotsDir = join(pluginDir, \"screenshots\");\n\t\t\tif (await fileExists(screenshotsDir)) {\n\t\t\t\tconst screenshotFiles = (await readdir(screenshotsDir))\n\t\t\t\t\t.filter((f) => {\n\t\t\t\t\t\tconst ext = extname(f).toLowerCase();\n\t\t\t\t\t\treturn ext === \".png\" || ext === \".jpg\" || ext === \".jpeg\";\n\t\t\t\t\t})\n\t\t\t\t\t.toSorted()\n\t\t\t\t\t.slice(0, MAX_SCREENSHOTS);\n\n\t\t\t\tif (screenshotFiles.length > 0) {\n\t\t\t\t\tawait mkdir(join(bundleDir, \"screenshots\"), { recursive: true });\n\n\t\t\t\t\tfor (const file of screenshotFiles) {\n\t\t\t\t\t\tconst filePath = join(screenshotsDir, file);\n\t\t\t\t\t\tconst buf = await readFile(filePath);\n\n\t\t\t\t\t\tconst dims = readImageDimensions(buf);\n\n\t\t\t\t\t\tif (!dims) {\n\t\t\t\t\t\t\tconsola.warn(`screenshots/${file} — cannot read dimensions, skipping`);\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (dims[0] > MAX_SCREENSHOT_WIDTH || dims[1] > MAX_SCREENSHOT_HEIGHT) {\n\t\t\t\t\t\t\tconsola.warn(\n\t\t\t\t\t\t\t\t`screenshots/${file} is ${dims[0]}x${dims[1]}, max ${MAX_SCREENSHOT_WIDTH}x${MAX_SCREENSHOT_HEIGHT} — including anyway`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tawait copyFile(filePath, join(bundleDir, \"screenshots\", file));\n\t\t\t\t\t}\n\n\t\t\t\t\tconsola.success(`Included ${screenshotFiles.length} screenshot(s)`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// ── Step 7: Validation ──\n\n\t\t\tconsola.start(\"Validating bundle...\");\n\t\t\tlet hasErrors = false;\n\n\t\t\t// Check that package.json exports point to built files, not source.\n\t\t\t// Plugins published to npm with source exports will break site builds\n\t\t\t// because the sandbox module generator embeds the resolved file as-is.\n\t\t\tif (pkg.exports) {\n\t\t\t\tfor (const issue of findSourceExports(pkg.exports)) {\n\t\t\t\t\tconsola.error(\n\t\t\t\t\t\t`Export \"${issue.exportPath}\" points to source (${issue.resolvedPath}). ` +\n\t\t\t\t\t\t\t`Package exports must point to built files (e.g. dist/*.mjs). ` +\n\t\t\t\t\t\t\t`Add a build step and update the exports map.`,\n\t\t\t\t\t);\n\t\t\t\t\thasErrors = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check for Node.js builtins in backend.js\n\t\t\tconst backendPath = join(bundleDir, \"backend.js\");\n\t\t\tif (await fileExists(backendPath)) {\n\t\t\t\tconst backendCode = await readFile(backendPath, \"utf-8\");\n\t\t\t\tconst builtins = findNodeBuiltinImports(backendCode);\n\t\t\t\tif (builtins.length > 0) {\n\t\t\t\t\tconsola.error(`backend.js imports Node.js built-in modules: ${builtins.join(\", \")}`);\n\t\t\t\t\tconsola.error(\"Sandboxed plugins cannot use Node.js APIs\");\n\t\t\t\t\thasErrors = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check capabilities warnings — use canonical names. Deprecated\n\t\t\t// names are accepted (and warned about separately below) so we\n\t\t\t// also check the legacy aliases here for the duration of the\n\t\t\t// deprecation window.\n\t\t\tconst declaresUnrestricted =\n\t\t\t\tmanifest.capabilities.includes(\"network:request:unrestricted\") ||\n\t\t\t\tmanifest.capabilities.includes(\"network:fetch:any\");\n\t\t\tconst declaresHostRestricted =\n\t\t\t\tmanifest.capabilities.includes(\"network:request\") ||\n\t\t\t\tmanifest.capabilities.includes(\"network:fetch\");\n\t\t\tif (declaresUnrestricted) {\n\t\t\t\tconsola.warn(\n\t\t\t\t\t\"Plugin declares unrestricted network access (network:request:unrestricted) — it can make requests to any host\",\n\t\t\t\t);\n\t\t\t} else if (declaresHostRestricted && manifest.allowedHosts.length === 0) {\n\t\t\t\tconsola.warn(\n\t\t\t\t\t\"Plugin declares network:request capability but no allowedHosts — all requests will be blocked\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Warn for each deprecated capability used. The warning points\n\t\t\t// to the new name so the fix is mechanical. We continue (not\n\t\t\t// error) here — the hard fail lives in `publish` so authors\n\t\t\t// can still build and test locally.\n\t\t\tconst deprecatedCaps = manifest.capabilities.filter(isDeprecatedCapability);\n\t\t\tif (deprecatedCaps.length > 0) {\n\t\t\t\tconsola.warn(\"Plugin uses deprecated capability names. Rename them before publishing:\");\n\t\t\t\tfor (const cap of deprecatedCaps) {\n\t\t\t\t\tconst replacement = CAPABILITY_RENAMES[cap];\n\t\t\t\t\tconsola.warn(` ${cap} → ${replacement}`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check for features that won't work in sandboxed mode\n\t\t\tif (\n\t\t\t\tresolvedPlugin.admin?.portableTextBlocks &&\n\t\t\t\tresolvedPlugin.admin.portableTextBlocks.length > 0\n\t\t\t) {\n\t\t\t\tconsola.warn(\n\t\t\t\t\t\"Plugin declares portableTextBlocks — these require trusted mode and will be ignored in sandboxed plugins\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (resolvedPlugin.admin?.entry) {\n\t\t\t\tconsola.warn(\n\t\t\t\t\t\"Plugin declares admin.entry — custom React components require trusted mode. Use Block Kit for sandboxed admin pages\",\n\t\t\t\t);\n\t\t\t}\n\t\t\t// Check for page:fragments hook — trusted-only, not allowed in sandbox\n\t\t\tif (resolvedPlugin.hooks[\"page:fragments\"]) {\n\t\t\t\tconsola.warn(\n\t\t\t\t\t\"Plugin declares page:fragments hook — this is trusted-only and will not work in sandboxed mode\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Check: if plugin declares admin pages or widgets, it must have an \"admin\" route\n\t\t\tconst hasAdminPages = (manifest.admin?.pages?.length ?? 0) > 0;\n\t\t\tconst hasAdminWidgets = (manifest.admin?.widgets?.length ?? 0) > 0;\n\t\t\tif (hasAdminPages || hasAdminWidgets) {\n\t\t\t\tconst routeNames = manifest.routes.map((r: string | { name: string }) =>\n\t\t\t\t\ttypeof r === \"string\" ? r : r.name,\n\t\t\t\t);\n\t\t\t\tif (!routeNames.includes(\"admin\")) {\n\t\t\t\t\tconsola.error(\n\t\t\t\t\t\t`Plugin declares ${hasAdminPages ? \"adminPages\" : \"\"}${hasAdminPages && hasAdminWidgets ? \" and \" : \"\"}${hasAdminWidgets ? \"adminWidgets\" : \"\"} ` +\n\t\t\t\t\t\t\t`but the sandbox entry has no \"admin\" route. ` +\n\t\t\t\t\t\t\t`Add an admin route handler to serve Block Kit pages.`,\n\t\t\t\t\t);\n\t\t\t\t\thasErrors = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Bundle size caps (RFC 0001 §\"Bundle size limits\").\n\t\t\tconst bundleEntries = await collectBundleEntries(bundleDir);\n\t\t\tconst sizeViolations = validateBundleSize(bundleEntries);\n\t\t\tif (sizeViolations.length > 0) {\n\t\t\t\tfor (const v of sizeViolations) consola.error(v);\n\t\t\t\thasErrors = true;\n\t\t\t} else {\n\t\t\t\tconsola.info(\n\t\t\t\t\t`Bundle size: ${formatBytes(totalBundleBytes(bundleEntries))} across ${bundleEntries.length} file${bundleEntries.length === 1 ? \"\" : \"s\"}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (hasErrors) {\n\t\t\t\tconsola.error(\"Bundle validation failed\");\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\n\t\t\tconsola.success(\"Validation passed\");\n\n\t\t\tif (validateOnly) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// ── Step 8: Create tarball ──\n\n\t\t\tawait mkdir(outDir, { recursive: true });\n\t\t\tconst tarballName = `${manifest.id.replace(SLASH_RE, \"-\").replace(LEADING_AT_RE, \"\")}-${manifest.version}.tar.gz`;\n\t\t\tconst tarballPath = join(outDir, tarballName);\n\n\t\t\tconsola.start(\"Creating tarball...\");\n\t\t\tawait createTarball(bundleDir, tarballPath);\n\n\t\t\tconst tarballStat = await stat(tarballPath);\n\t\t\tconst tarballSizeKB = (tarballStat.size / 1024).toFixed(1);\n\n\t\t\t// Calculate checksum\n\t\t\tconst tarballBuf = await readFile(tarballPath);\n\t\t\tconst checksum = createHash(\"sha256\").update(tarballBuf).digest(\"hex\");\n\n\t\t\tconsola.success(`Created ${tarballName} (${tarballSizeKB}KB)`);\n\t\t\tconsola.info(` SHA-256: ${checksum}`);\n\t\t\tconsola.info(` Path: ${tarballPath}`);\n\t\t} finally {\n\t\t\tif (tmpDir.endsWith(\".emdash-bundle-tmp\")) {\n\t\t\t\tawait rm(tmpDir, { recursive: true, force: true });\n\t\t\t}\n\t\t}\n\t},\n});\n"],"mappings":"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"}
|