emdash 0.41.0 → 0.42.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-DBki7IT4.mjs +26 -0
- package/dist/action-token-DBki7IT4.mjs.map +1 -0
- package/dist/activation-DDuqAat2.mjs +387 -0
- package/dist/activation-DDuqAat2.mjs.map +1 -0
- package/dist/adapters-BrZxU6vM.d.mts +171 -0
- package/dist/adapters-BrZxU6vM.d.mts.map +1 -0
- package/dist/allowed-origins-CFtudhyw.mjs +116 -0
- package/dist/allowed-origins-CFtudhyw.mjs.map +1 -0
- package/dist/api/route-utils.d.mts +5 -4
- package/dist/api/route-utils.d.mts.map +1 -1
- package/dist/api/route-utils.mjs +52 -47
- package/dist/api/route-utils.mjs.map +1 -1
- package/dist/api/schemas/index.d.mts +2 -2
- package/dist/api/schemas/index.mjs +11 -10
- package/dist/api-CFQn8VLR.mjs +4973 -0
- package/dist/api-CFQn8VLR.mjs.map +1 -0
- package/dist/api-tokens-P3mAaQgr.mjs +166 -0
- package/dist/api-tokens-P3mAaQgr.mjs.map +1 -0
- package/dist/apply-C1kq5l7p.mjs +1672 -0
- package/dist/apply-C1kq5l7p.mjs.map +1 -0
- package/dist/approvals-l9sGqPmL.mjs +460 -0
- package/dist/approvals-l9sGqPmL.mjs.map +1 -0
- package/dist/artifact-fetch-CWxyELVI.mjs +659 -0
- package/dist/artifact-fetch-CWxyELVI.mjs.map +1 -0
- package/dist/astro/index.d.mts +14 -14
- package/dist/astro/index.d.mts.map +1 -1
- package/dist/astro/index.mjs +96 -546
- package/dist/astro/index.mjs.map +1 -1
- package/dist/astro/middleware/auth.d.mts +12 -12
- package/dist/astro/middleware/auth.mjs +10 -10
- package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
- package/dist/astro/middleware/redirect.d.mts.map +1 -1
- package/dist/astro/middleware/redirect.mjs +19 -9
- package/dist/astro/middleware/redirect.mjs.map +1 -1
- package/dist/astro/middleware/request-context.d.mts +2 -1
- package/dist/astro/middleware/request-context.d.mts.map +1 -1
- package/dist/astro/middleware/request-context.mjs +15 -6
- package/dist/astro/middleware/request-context.mjs.map +1 -1
- package/dist/astro/middleware/setup.mjs +1 -1
- package/dist/astro/middleware.d.mts +12 -12
- package/dist/astro/middleware.mjs +114 -110
- package/dist/astro/middleware.mjs.map +1 -1
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +15 -14
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +15 -14
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs.map +1 -1
- 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 +18 -17
- package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/byline-fields/index.mjs +18 -17
- package/dist/astro/routes/api/admin/byline-fields/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +18 -17
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/admin/bylines/_id_/index.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +36 -27
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/bylines/_id_/translations.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +32 -26
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/admin/bylines/index.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/bylines/index.mjs +32 -26
- package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +20 -19
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -8
- package/dist/astro/routes/api/admin/comments/bulk.mjs +19 -18
- package/dist/astro/routes/api/admin/comments/bulk.mjs.map +1 -1
- package/dist/astro/routes/api/admin/comments/counts.mjs +8 -8
- package/dist/astro/routes/api/admin/comments/index.mjs +19 -18
- package/dist/astro/routes/api/admin/comments/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/core-update.d.mts +8 -0
- package/dist/astro/routes/api/admin/core-update.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/core-update.mjs +28 -0
- package/dist/astro/routes/api/admin/core-update.mjs.map +1 -0
- 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 +21 -20
- package/dist/astro/routes/api/admin/media-usage/activation.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +23 -22
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +23 -22
- package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/progress.mjs +26 -25
- package/dist/astro/routes/api/admin/media-usage/progress.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/repair.mjs +32 -31
- package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/work/index.mjs +23 -22
- package/dist/astro/routes/api/admin/media-usage/work/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +23 -22
- package/dist/astro/routes/api/admin/media-usage/work/retry.mjs.map +1 -1
- 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 +75 -73
- 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 +74 -72
- package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +75 -73
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +86 -83
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/index.mjs +75 -73
- package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +10 -7
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +74 -72
- 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 +85 -82
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +74 -72
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +75 -73
- 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 +87 -84
- 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 +77 -75
- 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 +75 -73
- package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
- package/dist/astro/routes/api/admin/plugins/updates.mjs +74 -72
- 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 +74 -72
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.d.mts.map +1 -1
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +10 -7
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs.map +1 -1
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +74 -72
- 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 +42 -41
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +42 -41
- package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +44 -43
- package/dist/astro/routes/api/admin/transfer/approvals/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/capabilities.mjs +44 -43
- package/dist/astro/routes/api/admin/transfer/capabilities.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +44 -43
- package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +45 -44
- package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +45 -44
- package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +44 -43
- package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +45 -44
- package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/exports/index.mjs +46 -45
- package/dist/astro/routes/api/admin/transfer/exports/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +44 -43
- package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +44 -43
- package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +46 -45
- package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +44 -43
- package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +46 -45
- package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +44 -43
- package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +44 -43
- package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +46 -45
- package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +44 -43
- package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +44 -43
- package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs.map +1 -1
- package/dist/astro/routes/api/admin/transfer/imports/index.mjs +46 -45
- package/dist/astro/routes/api/admin/transfer/imports/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs +5 -5
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs +4 -4
- package/dist/astro/routes/api/admin/users/_id_/index.mjs +16 -15
- package/dist/astro/routes/api/admin/users/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
- package/dist/astro/routes/api/admin/users/index.mjs +15 -14
- package/dist/astro/routes/api/admin/users/index.mjs.map +1 -1
- 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.d.mts.map +1 -1
- package/dist/astro/routes/api/auth/invite/complete.mjs +23 -19
- package/dist/astro/routes/api/auth/invite/complete.mjs.map +1 -1
- package/dist/astro/routes/api/auth/invite/index.mjs +17 -16
- package/dist/astro/routes/api/auth/invite/index.mjs.map +1 -1
- package/dist/astro/routes/api/auth/invite/register-options.mjs +18 -17
- package/dist/astro/routes/api/auth/invite/register-options.mjs.map +1 -1
- package/dist/astro/routes/api/auth/logout.mjs +5 -5
- package/dist/astro/routes/api/auth/magic-link/send.mjs +19 -18
- package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
- package/dist/astro/routes/api/auth/magic-link/verify.d.mts.map +1 -1
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +19 -15
- package/dist/astro/routes/api/auth/magic-link/verify.mjs.map +1 -1
- package/dist/astro/routes/api/auth/me.mjs +16 -15
- package/dist/astro/routes/api/auth/me.mjs.map +1 -1
- package/dist/astro/routes/api/auth/mode.mjs +5 -5
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.d.mts.map +1 -1
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +13 -4
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs.map +1 -1
- package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
- package/dist/astro/routes/api/auth/passkey/_id_.mjs +15 -14
- package/dist/astro/routes/api/auth/passkey/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/auth/passkey/index.mjs +4 -4
- package/dist/astro/routes/api/auth/passkey/options.mjs +20 -19
- package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +18 -17
- package/dist/astro/routes/api/auth/passkey/register/options.mjs.map +1 -1
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +19 -18
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs.map +1 -1
- package/dist/astro/routes/api/auth/passkey/verify.d.mts.map +1 -1
- package/dist/astro/routes/api/auth/passkey/verify.mjs +23 -19
- package/dist/astro/routes/api/auth/passkey/verify.mjs.map +1 -1
- package/dist/astro/routes/api/auth/signup/complete.d.mts.map +1 -1
- package/dist/astro/routes/api/auth/signup/complete.mjs +23 -19
- package/dist/astro/routes/api/auth/signup/complete.mjs.map +1 -1
- package/dist/astro/routes/api/auth/signup/request.mjs +18 -17
- package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
- package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +13 -13
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +20 -19
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +18 -17
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +18 -17
- package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs.map +1 -1
- 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 +12 -11
- package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +33 -32
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +18 -17
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +36 -35
- 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 +36 -35
- 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 +18 -17
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +27 -26
- 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 +18 -17
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +18 -17
- 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 +16 -15
- package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
- package/dist/astro/routes/api/content/_collection_/trash.mjs +16 -15
- package/dist/astro/routes/api/content/_collection_/trash.mjs.map +1 -1
- package/dist/astro/routes/api/dashboard.mjs +13 -11
- 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 +25 -24
- package/dist/astro/routes/api/import/probe.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +6 -6
- package/dist/astro/routes/api/import/wordpress/execute.d.mts +14 -14
- package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -1
- package/dist/astro/routes/api/import/wordpress/execute.mjs +167 -21
- package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
- package/dist/astro/routes/api/import/wordpress/media.mjs +20 -19
- package/dist/astro/routes/api/import/wordpress/media.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +19 -18
- package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +29 -28
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +25 -24
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +36 -35
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
- package/dist/astro/routes/api/manifest.mjs +6 -6
- package/dist/astro/routes/api/mcp.mjs +167 -110
- package/dist/astro/routes/api/mcp.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_/confirm.mjs +20 -19
- package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_/replace.mjs +17 -16
- package/dist/astro/routes/api/media/_id_/replace.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_/upload.mjs +9 -9
- package/dist/astro/routes/api/media/_id_/usage.mjs +34 -33
- package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
- package/dist/astro/routes/api/media/_id_.mjs +32 -31
- package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +6 -6
- package/dist/astro/routes/api/media/file/_...key_.mjs +9 -9
- package/dist/astro/routes/api/media/folders/_id_.mjs +17 -16
- package/dist/astro/routes/api/media/folders/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/media/folders/index.mjs +17 -16
- package/dist/astro/routes/api/media/folders/index.mjs.map +1 -1
- 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 +19 -18
- package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
- package/dist/astro/routes/api/media.mjs +36 -35
- package/dist/astro/routes/api/media.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +19 -18
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/items.mjs +19 -18
- package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +19 -18
- package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_/translations.mjs +19 -18
- package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/menus/_name_.mjs +19 -18
- package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/menus/index.mjs +19 -18
- package/dist/astro/routes/api/menus/index.mjs.map +1 -1
- package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
- package/dist/astro/routes/api/oauth/device/authorize.mjs +8 -8
- package/dist/astro/routes/api/oauth/device/code.mjs +11 -11
- package/dist/astro/routes/api/oauth/device/token.mjs +10 -10
- package/dist/astro/routes/api/oauth/register.d.mts.map +1 -1
- package/dist/astro/routes/api/oauth/register.mjs +15 -7
- package/dist/astro/routes/api/oauth/register.mjs.map +1 -1
- 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 +21 -20
- package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +12 -11
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/404s/index.mjs +20 -19
- package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/404s/summary.mjs +20 -19
- package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/_id_.mjs +20 -19
- package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/redirects/index.mjs +20 -19
- package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
- package/dist/astro/routes/api/relations/_id_/index.mjs +36 -35
- package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
- package/dist/astro/routes/api/relations/index.mjs +36 -35
- 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.d.mts.map +1 -1
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +26 -6
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs.map +1 -1
- package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +74 -72
- 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 +74 -72
- 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 +74 -72
- package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +74 -72
- 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 +74 -72
- 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 +74 -72
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +74 -72
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/index.mjs +74 -72
- package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/collections/reorder.mjs +74 -72
- package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/schema/index.mjs +17 -16
- package/dist/astro/routes/api/schema/index.mjs.map +1 -1
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +74 -72
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/schema/orphans/index.mjs +74 -72
- package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
- package/dist/astro/routes/api/search/enable.mjs +20 -19
- package/dist/astro/routes/api/search/enable.mjs.map +1 -1
- package/dist/astro/routes/api/search/index.mjs +19 -18
- package/dist/astro/routes/api/search/index.mjs.map +1 -1
- package/dist/astro/routes/api/search/rebuild.mjs +20 -19
- package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
- package/dist/astro/routes/api/search/stats.mjs +9 -9
- package/dist/astro/routes/api/search/suggest.mjs +19 -18
- package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
- package/dist/astro/routes/api/sections/_slug_.mjs +19 -18
- package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/sections/index.mjs +19 -18
- package/dist/astro/routes/api/sections/index.mjs.map +1 -1
- package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
- package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
- package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
- package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
- package/dist/astro/routes/api/settings/email.mjs +6 -6
- package/dist/astro/routes/api/settings.mjs +23 -22
- package/dist/astro/routes/api/settings.mjs.map +1 -1
- package/dist/astro/routes/api/setup/admin-verify.d.mts.map +1 -1
- package/dist/astro/routes/api/setup/admin-verify.mjs +26 -24
- package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
- package/dist/astro/routes/api/setup/admin.mjs +19 -18
- package/dist/astro/routes/api/setup/admin.mjs.map +1 -1
- package/dist/astro/routes/api/setup/dev-bypass.mjs +47 -46
- 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 +52 -51
- 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 +25 -24
- package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +25 -24
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +25 -24
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +25 -24
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +24 -23
- package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/_name_.mjs +25 -24
- package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +42 -41
- package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -1
- package/dist/astro/routes/api/taxonomies/index.mjs +25 -24
- package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
- package/dist/astro/routes/api/themes/preview.mjs +6 -6
- package/dist/astro/routes/api/typegen.d.mts.map +1 -1
- package/dist/astro/routes/api/typegen.mjs +8 -39
- package/dist/astro/routes/api/typegen.mjs.map +1 -1
- package/dist/astro/routes/api/visual-editing/action-token.mjs +6 -6
- package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +20 -19
- package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs.map +1 -1
- 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 +17 -16
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +20 -19
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +20 -19
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
- package/dist/astro/routes/api/widget-areas/_name_.mjs +9 -9
- package/dist/astro/routes/api/widget-areas/index.mjs +20 -19
- package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
- package/dist/astro/routes/api/widget-components.mjs +5 -5
- package/dist/astro/routes/robots.txt.mjs +7 -7
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +10 -10
- package/dist/astro/routes/sitemap.xml.mjs +8 -8
- package/dist/astro/types.d.mts +23 -17
- package/dist/astro/types.d.mts.map +1 -1
- package/dist/audit-BszbE_BP.mjs +127 -0
- package/dist/audit-BszbE_BP.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-dSvXCfzb.mjs +5172 -0
- package/dist/authoritative-records-dSvXCfzb.mjs.map +1 -0
- package/dist/authorize-soZXK7U0.mjs +49 -0
- package/dist/authorize-soZXK7U0.mjs.map +1 -0
- package/dist/backup-DQ3CABsO.mjs +246 -0
- package/dist/backup-DQ3CABsO.mjs.map +1 -0
- package/dist/block-types-DIG_KZwi.mjs +132 -0
- package/dist/block-types-DIG_KZwi.mjs.map +1 -0
- package/dist/block-values-BrTrtA-v.mjs +175 -0
- package/dist/block-values-BrTrtA-v.mjs.map +1 -0
- package/dist/byline-02tu_Uc-.mjs +909 -0
- package/dist/byline-02tu_Uc-.mjs.map +1 -0
- package/dist/byline-fields-B01Txzyx.mjs +123 -0
- package/dist/byline-fields-B01Txzyx.mjs.map +1 -0
- package/dist/byline-fields-DHJs0Mja.mjs +280 -0
- package/dist/byline-fields-DHJs0Mja.mjs.map +1 -0
- package/dist/byline-registry-dvt4N3xV.mjs +406 -0
- package/dist/byline-registry-dvt4N3xV.mjs.map +1 -0
- package/dist/bylines-COTwmMBF.mjs +150 -0
- package/dist/bylines-COTwmMBF.mjs.map +1 -0
- package/dist/bylines-D_S8UKRX.mjs +214 -0
- package/dist/bylines-D_S8UKRX.mjs.map +1 -0
- package/dist/cache-CPanL9IO.mjs +114 -0
- package/dist/cache-CPanL9IO.mjs.map +1 -0
- package/dist/canonical-CAecl1UQ.mjs +174 -0
- package/dist/canonical-CAecl1UQ.mjs.map +1 -0
- package/dist/capture-triggers-CdZfvHtF.mjs +362 -0
- package/dist/capture-triggers-CdZfvHtF.mjs.map +1 -0
- package/dist/challenge-store-CxZxPqaw.mjs +51 -0
- package/dist/challenge-store-CxZxPqaw.mjs.map +1 -0
- package/dist/checksum-DtH6m5uk.mjs +162 -0
- package/dist/checksum-DtH6m5uk.mjs.map +1 -0
- package/dist/chrome-tags-CKELm-bo.mjs +24 -0
- package/dist/chrome-tags-CKELm-bo.mjs.map +1 -0
- package/dist/chunks-DBmkKmBH.mjs +25 -0
- package/dist/chunks-DBmkKmBH.mjs.map +1 -0
- package/dist/cli/index.mjs +58 -911
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/cf-access.d.mts +1 -1
- package/dist/client/index.d.mts +39 -34
- package/dist/client/index.d.mts.map +1 -1
- package/dist/client/index.mjs +8 -3
- package/dist/client/index.mjs.map +1 -1
- package/dist/collection-deletion-JecE26cS.mjs +436 -0
- package/dist/collection-deletion-JecE26cS.mjs.map +1 -0
- package/dist/collection-deletion-processor-DgCfF3a1.mjs +217 -0
- package/dist/collection-deletion-processor-DgCfF3a1.mjs.map +1 -0
- package/dist/collection-slugs-cache-BNRAPNiu.mjs +85 -0
- package/dist/collection-slugs-cache-BNRAPNiu.mjs.map +1 -0
- package/dist/comment-Cq1UYN8_.mjs +313 -0
- package/dist/comment-Cq1UYN8_.mjs.map +1 -0
- package/dist/comment-reaction-DPeGAfjd.mjs +85 -0
- package/dist/comment-reaction-DPeGAfjd.mjs.map +1 -0
- package/dist/comments-BRtp992B.mjs +99 -0
- package/dist/comments-BRtp992B.mjs.map +1 -0
- package/dist/comments-Bi2j9IoX.mjs +195 -0
- package/dist/comments-Bi2j9IoX.mjs.map +1 -0
- package/dist/components-CQY-Sgm-.mjs +108 -0
- package/dist/components-CQY-Sgm-.mjs.map +1 -0
- package/dist/config-BnuORwSP.mjs +242 -0
- package/dist/config-BnuORwSP.mjs.map +1 -0
- package/dist/config-CDmPF4p7.d.mts +39 -0
- package/dist/config-CDmPF4p7.d.mts.map +1 -0
- package/dist/config-DHsDMpXc.d.mts +6707 -0
- package/dist/config-DHsDMpXc.d.mts.map +1 -0
- package/dist/connection-B9pIasFd.mjs +36 -0
- package/dist/connection-B9pIasFd.mjs.map +1 -0
- package/dist/content-RzEXY3QX.mjs +2020 -0
- package/dist/content-RzEXY3QX.mjs.map +1 -0
- package/dist/content-list-query-CnXfe1Nu.d.mts +26 -0
- package/dist/content-list-query-CnXfe1Nu.d.mts.map +1 -0
- package/dist/content-policy-Dm32n9C6.mjs +46 -0
- package/dist/content-policy-Dm32n9C6.mjs.map +1 -0
- package/dist/content-repair-B-k5JrVN.mjs +442 -0
- package/dist/content-repair-B-k5JrVN.mjs.map +1 -0
- package/dist/context-CtRvoSAj.mjs +2026 -0
- package/dist/context-CtRvoSAj.mjs.map +1 -0
- package/dist/credits-CAFPFhuk.mjs +110 -0
- package/dist/credits-CAFPFhuk.mjs.map +1 -0
- package/dist/cron-xe5XKqA-.mjs +306 -0
- package/dist/cron-xe5XKqA-.mjs.map +1 -0
- package/dist/dashboard-BoV4pwPP.mjs +151 -0
- package/dist/dashboard-BoV4pwPP.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-DaoYyFRS.mjs +81 -0
- package/dist/default-DaoYyFRS.mjs.map +1 -0
- package/dist/deferred-tasks-OBADxoFf.d.mts +9 -0
- package/dist/deferred-tasks-OBADxoFf.d.mts.map +1 -0
- package/dist/destination-r2zIAZ2S.mjs +18 -0
- package/dist/destination-r2zIAZ2S.mjs.map +1 -0
- package/dist/dev-typegen-8JlYYFno.mjs +29 -0
- package/dist/dev-typegen-8JlYYFno.mjs.map +1 -0
- package/dist/device-flow-CzKi6tID.mjs +521 -0
- package/dist/device-flow-CzKi6tID.mjs.map +1 -0
- package/dist/digest-DiYAoZpf.mjs +194 -0
- package/dist/digest-DiYAoZpf.mjs.map +1 -0
- package/dist/direct-executor-CsEmH_2m.mjs +104 -0
- package/dist/direct-executor-CsEmH_2m.mjs.map +1 -0
- package/dist/dist-Cfu8mMBs.mjs +810 -0
- package/dist/dist-Cfu8mMBs.mjs.map +1 -0
- package/dist/email-console-DmqVF5J_.mjs +50 -0
- package/dist/email-console-DmqVF5J_.mjs.map +1 -0
- package/dist/email-locale-B5OjmAj_.mjs +25 -0
- package/dist/email-locale-B5OjmAj_.mjs.map +1 -0
- package/dist/emdash-runtime-CMdYH2Of.mjs +4229 -0
- package/dist/emdash-runtime-CMdYH2Of.mjs.map +1 -0
- package/dist/enrich-BDdVNeDK.mjs +194 -0
- package/dist/enrich-BDdVNeDK.mjs.map +1 -0
- package/dist/entry-lock-B-1bUDxX.d.mts +4544 -0
- package/dist/entry-lock-B-1bUDxX.d.mts.map +1 -0
- package/dist/entry-lock-B5eaZEZP.mjs +163 -0
- package/dist/entry-lock-B5eaZEZP.mjs.map +1 -0
- package/dist/entry-lock-PP1JCXBB.mjs +1180 -0
- package/dist/entry-lock-PP1JCXBB.mjs.map +1 -0
- package/dist/entry-locks-DJAqVweV.mjs +167 -0
- package/dist/entry-locks-DJAqVweV.mjs.map +1 -0
- package/dist/env-types-BaTCgn-y.mjs +38 -0
- package/dist/env-types-BaTCgn-y.mjs.map +1 -0
- package/dist/error-CEdm_AWU.mjs +90 -0
- package/dist/error-CEdm_AWU.mjs.map +1 -0
- package/dist/errors-CNvATh_7.mjs +469 -0
- package/dist/errors-CNvATh_7.mjs.map +1 -0
- package/dist/errors-CjXd1LgH.mjs +120 -0
- package/dist/errors-CjXd1LgH.mjs.map +1 -0
- package/dist/escape-nJW7dR0s.mjs +9 -0
- package/dist/escape-nJW7dR0s.mjs.map +1 -0
- package/dist/fence-BrnQffdY.mjs +162 -0
- package/dist/fence-BrnQffdY.mjs.map +1 -0
- package/dist/field-defs-cache-DEkFYCDE.mjs +77 -0
- package/dist/field-defs-cache-DEkFYCDE.mjs.map +1 -0
- package/dist/field-map-Cp5hDSRU.mjs +83 -0
- package/dist/field-map-Cp5hDSRU.mjs.map +1 -0
- package/dist/focal-point-JX8kcOTQ.mjs +23 -0
- package/dist/focal-point-JX8kcOTQ.mjs.map +1 -0
- package/dist/fts-manager-DU03MxWu.mjs +443 -0
- package/dist/fts-manager-DU03MxWu.mjs.map +1 -0
- package/dist/gc-Gf9LOF42.mjs +75 -0
- package/dist/gc-Gf9LOF42.mjs.map +1 -0
- package/dist/hash-CY4QdeMJ.mjs +37 -0
- package/dist/hash-CY4QdeMJ.mjs.map +1 -0
- package/dist/hook-result-DjdVwWpw.d.mts +31 -0
- package/dist/hook-result-DjdVwWpw.d.mts.map +1 -0
- package/dist/hreflang-Bq0ahAd4.mjs +105 -0
- package/dist/hreflang-Bq0ahAd4.mjs.map +1 -0
- package/dist/hreflang-C7ETs0Tv.d.mts +50 -0
- package/dist/hreflang-C7ETs0Tv.d.mts.map +1 -0
- package/dist/http-route-dispatch-B2G7_OOm.mjs +339 -0
- package/dist/http-route-dispatch-B2G7_OOm.mjs.map +1 -0
- package/dist/identity-u3KgtUC9.mjs +35 -0
- package/dist/identity-u3KgtUC9.mjs.map +1 -0
- package/dist/import-CzP9ffo0.mjs +2020 -0
- package/dist/import-CzP9ffo0.mjs.map +1 -0
- package/dist/index-D1_ykO2u.d.mts +623 -0
- package/dist/index-D1_ykO2u.d.mts.map +1 -0
- package/dist/index.d.mts +24 -24
- package/dist/index.mjs +108 -104
- package/dist/install-finalization-TbcQozrV.mjs +58 -0
- package/dist/install-finalization-TbcQozrV.mjs.map +1 -0
- package/dist/keys-r08WvAng.mjs +61 -0
- package/dist/keys-r08WvAng.mjs.map +1 -0
- package/dist/kinds-CXY-fwQ6.mjs +974 -0
- package/dist/kinds-CXY-fwQ6.mjs.map +1 -0
- package/dist/lifecycle-CpebZNAA.mjs +25 -0
- package/dist/lifecycle-CpebZNAA.mjs.map +1 -0
- package/dist/load-dHcR5yh9.mjs +28 -0
- package/dist/load-dHcR5yh9.mjs.map +1 -0
- package/dist/loader-B_bcoE1h.mjs +1197 -0
- package/dist/loader-B_bcoE1h.mjs.map +1 -0
- package/dist/loops-Dn1i16FP.mjs +205 -0
- package/dist/loops-Dn1i16FP.mjs.map +1 -0
- package/dist/manifest-builder-D7Y8iirE.mjs +189 -0
- package/dist/manifest-builder-D7Y8iirE.mjs.map +1 -0
- package/dist/manifest-schema-gy37bD_D.mjs +496 -0
- package/dist/manifest-schema-gy37bD_D.mjs.map +1 -0
- package/dist/marketplace-tHWSsCUo.mjs +257 -0
- package/dist/marketplace-tHWSsCUo.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 +7 -7
- package/dist/media-3v7mqAVX.mjs +294 -0
- package/dist/media-3v7mqAVX.mjs.map +1 -0
- package/dist/media-CputjGE1.mjs +373 -0
- package/dist/media-CputjGE1.mjs.map +1 -0
- package/dist/media-D1z_jisb.mjs +408 -0
- package/dist/media-D1z_jisb.mjs.map +1 -0
- package/dist/media-allowlist-D5a4d-RA.mjs +44 -0
- package/dist/media-allowlist-D5a4d-RA.mjs.map +1 -0
- package/dist/media-folders-D2VdVBf6.mjs +210 -0
- package/dist/media-folders-D2VdVBf6.mjs.map +1 -0
- package/dist/media-url-DloW2xrP.mjs +43 -0
- package/dist/media-url-DloW2xrP.mjs.map +1 -0
- package/dist/media-usage-B8q0owWQ.mjs +1629 -0
- package/dist/media-usage-B8q0owWQ.mjs.map +1 -0
- package/dist/media-usage-activation-CQWOOTJi.mjs +78 -0
- package/dist/media-usage-activation-CQWOOTJi.mjs.map +1 -0
- package/dist/media-usage-work-BC0qpkMD.mjs +152 -0
- package/dist/media-usage-work-BC0qpkMD.mjs.map +1 -0
- package/dist/media-usage-work-BlMjwPg8.mjs +586 -0
- package/dist/media-usage-work-BlMjwPg8.mjs.map +1 -0
- package/dist/menus-BQKqf0Up.mjs +92 -0
- package/dist/menus-BQKqf0Up.mjs.map +1 -0
- package/dist/menus-DiuhXKWf.mjs +3646 -0
- package/dist/menus-DiuhXKWf.mjs.map +1 -0
- package/dist/menus-trvc6_fW.mjs +753 -0
- package/dist/menus-trvc6_fW.mjs.map +1 -0
- package/dist/migrations/index.d.mts +1 -1
- package/dist/migrations/index.mjs +3 -3
- package/dist/mime-IZf-LHIS.mjs +36 -0
- package/dist/mime-IZf-LHIS.mjs.map +1 -0
- package/dist/mode-nh0ppSX5.mjs +23 -0
- package/dist/mode-nh0ppSX5.mjs.map +1 -0
- package/dist/node-sqlite-compat-CDOEcc97.mjs +63 -0
- package/dist/node-sqlite-compat-CDOEcc97.mjs.map +1 -0
- package/dist/normalize-BuWa0lvd.mjs +191 -0
- package/dist/normalize-BuWa0lvd.mjs.map +1 -0
- package/dist/oauth-authorization-BcRdGojQ.mjs +274 -0
- package/dist/oauth-authorization-BcRdGojQ.mjs.map +1 -0
- package/dist/oauth-clients-C-8WDTqj.mjs +266 -0
- package/dist/oauth-clients-C-8WDTqj.mjs.map +1 -0
- package/dist/oauth-state-store-CM5ZEYQS.mjs +50 -0
- package/dist/oauth-state-store-CM5ZEYQS.mjs.map +1 -0
- package/dist/oauth-user-lookup-DrrqvTZC.mjs +26 -0
- package/dist/oauth-user-lookup-DrrqvTZC.mjs.map +1 -0
- package/dist/object-cache/memory.d.mts +1 -1
- package/dist/object-cache-Bo6DGaC9.mjs +586 -0
- package/dist/object-cache-Bo6DGaC9.mjs.map +1 -0
- package/dist/options-C2IDQnD2.d.mts +81 -0
- package/dist/options-C2IDQnD2.d.mts.map +1 -0
- package/dist/ownership-DoeAIuTg.mjs +12 -0
- package/dist/ownership-DoeAIuTg.mjs.map +1 -0
- package/dist/page/index.d.mts +2 -2
- package/dist/page/index.mjs +6 -6
- package/dist/parse-D5Sw9wAI.d.mts +172 -0
- package/dist/parse-D5Sw9wAI.d.mts.map +1 -0
- package/dist/parse-Gt2l4Sld.mjs +81 -0
- package/dist/parse-Gt2l4Sld.mjs.map +1 -0
- package/dist/passkey-config-CkQsrcU-.mjs +46 -0
- package/dist/passkey-config-CkQsrcU-.mjs.map +1 -0
- package/dist/paths-DiENGBx5.mjs +77 -0
- package/dist/paths-DiENGBx5.mjs.map +1 -0
- package/dist/patterns-DyZJ67I7.mjs +140 -0
- package/dist/patterns-DyZJ67I7.mjs.map +1 -0
- package/dist/placeholder-Cq5wLDCX.d.mts +306 -0
- package/dist/placeholder-Cq5wLDCX.d.mts.map +1 -0
- package/dist/plan-BxCS1tl5.mjs +135 -0
- package/dist/plan-BxCS1tl5.mjs.map +1 -0
- package/dist/plugin-test-runtime.d.mts +14 -14
- package/dist/plugin-test-runtime.mjs +115 -111
- package/dist/plugin-types.d.mts +5 -3
- package/dist/plugin-types.d.mts.map +1 -1
- package/dist/plugin-types.mjs.map +1 -1
- package/dist/plugin-utils.d.mts +12 -12
- package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
- package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
- package/dist/plugins/adapt-sandbox-entry.mjs +48 -10
- package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
- package/dist/plugins/host.d.mts +6 -6
- package/dist/plugins/host.mjs +49 -44
- package/dist/plugins-BpLkXA1S.mjs +277 -0
- package/dist/plugins-BpLkXA1S.mjs.map +1 -0
- package/dist/policy-C1qpNxrr.mjs +45 -0
- package/dist/policy-C1qpNxrr.mjs.map +1 -0
- package/dist/portable-text-BnRuiR1-.mjs +307 -0
- package/dist/portable-text-BnRuiR1-.mjs.map +1 -0
- package/dist/preview-DU5rwz_m.mjs +107 -0
- package/dist/preview-DU5rwz_m.mjs.map +1 -0
- package/dist/protocol-B9GEhEyi.d.mts +61 -0
- package/dist/protocol-B9GEhEyi.d.mts.map +1 -0
- package/dist/public-submission-yZaTTfsC.mjs +250 -0
- package/dist/public-submission-yZaTTfsC.mjs.map +1 -0
- package/dist/public-url-B5a0QAh6.mjs +101 -0
- package/dist/public-url-B5a0QAh6.mjs.map +1 -0
- package/dist/query-6e2CQxUv.mjs +1161 -0
- package/dist/query-6e2CQxUv.mjs.map +1 -0
- package/dist/query-DC3bv__4.mjs +41 -0
- package/dist/query-DC3bv__4.mjs.map +1 -0
- package/dist/rate-limit-BXx3Ecp9.mjs +120 -0
- package/dist/rate-limit-BXx3Ecp9.mjs.map +1 -0
- package/dist/receipt-q1VK9jhj.mjs +43 -0
- package/dist/receipt-q1VK9jhj.mjs.map +1 -0
- package/dist/redirect-BvFKh8Sz.mjs +416 -0
- package/dist/redirect-BvFKh8Sz.mjs.map +1 -0
- package/dist/redirect-D1AmADlk.mjs +19 -0
- package/dist/redirect-D1AmADlk.mjs.map +1 -0
- package/dist/redirects-CWQMKYOS.mjs +446 -0
- package/dist/redirects-CWQMKYOS.mjs.map +1 -0
- package/dist/redirects-D4EWeXAo.mjs +148 -0
- package/dist/redirects-D4EWeXAo.mjs.map +1 -0
- package/dist/registry/testing.d.mts +16 -4
- package/dist/registry/testing.d.mts.map +1 -1
- package/dist/registry/testing.mjs +20 -10
- package/dist/registry/testing.mjs.map +1 -1
- package/dist/registry-CtHRqVe-.mjs +6771 -0
- package/dist/registry-CtHRqVe-.mjs.map +1 -0
- package/dist/relations-CVI2nbrn.mjs +776 -0
- package/dist/relations-CVI2nbrn.mjs.map +1 -0
- package/dist/request-cache-C4CIo5ad.mjs +104 -0
- package/dist/request-cache-C4CIo5ad.mjs.map +1 -0
- package/dist/request-context.d.mts +9 -1
- package/dist/request-context.d.mts.map +1 -1
- package/dist/request-context.mjs.map +1 -1
- package/dist/request-meta-B6blULFY.mjs +141 -0
- package/dist/request-meta-B6blULFY.mjs.map +1 -0
- package/dist/resolve-Cx0Pwz0-.mjs +100 -0
- package/dist/resolve-Cx0Pwz0-.mjs.map +1 -0
- package/dist/resolve-D-kqyKns.mjs +199 -0
- package/dist/resolve-D-kqyKns.mjs.map +1 -0
- package/dist/revision-CGkQA0e5.mjs +366 -0
- package/dist/revision-CGkQA0e5.mjs.map +1 -0
- package/dist/route-wire-DK600v4u.mjs +197 -0
- package/dist/route-wire-DK600v4u.mjs.map +1 -0
- package/dist/routes-DTduBPzX.mjs +272 -0
- package/dist/routes-DTduBPzX.mjs.map +1 -0
- package/dist/runner-CLpxmhl8.mjs +6197 -0
- package/dist/runner-CLpxmhl8.mjs.map +1 -0
- package/dist/runner-Ji7qyH2A.d.mts +68 -0
- package/dist/runner-Ji7qyH2A.d.mts.map +1 -0
- package/dist/runtime.d.mts +13 -13
- package/dist/runtime.mjs +3 -3
- package/dist/schema/project-env-types.d.mts +12 -0
- package/dist/schema/project-env-types.d.mts.map +1 -0
- package/dist/schema/project-env-types.mjs +86 -0
- package/dist/schema/project-env-types.mjs.map +1 -0
- package/dist/schema-BZPj3kwZ.mjs +13 -0
- package/dist/schema-BZPj3kwZ.mjs.map +1 -0
- package/dist/schema-Berj5VQx.mjs +815 -0
- package/dist/schema-Berj5VQx.mjs.map +1 -0
- package/dist/scopes-C1HJaIyf.mjs +34 -0
- package/dist/scopes-C1HJaIyf.mjs.map +1 -0
- package/dist/search-thYf8j9F.mjs +448 -0
- package/dist/search-thYf8j9F.mjs.map +1 -0
- package/dist/sections-2k1uIgJ0.mjs +346 -0
- package/dist/sections-2k1uIgJ0.mjs.map +1 -0
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +39 -38
- package/dist/seo/index.d.mts +3 -3
- package/dist/seo/index.mjs +24 -23
- package/dist/seo/index.mjs.map +1 -1
- package/dist/seo-C61bnPuV.mjs +114 -0
- package/dist/seo-C61bnPuV.mjs.map +1 -0
- package/dist/seo-DpYxmGaL.mjs +133 -0
- package/dist/seo-DpYxmGaL.mjs.map +1 -0
- package/dist/service-BFUImckH.mjs +150 -0
- package/dist/service-BFUImckH.mjs.map +1 -0
- package/dist/session-user-DVcHsFD5.mjs +61 -0
- package/dist/session-user-DVcHsFD5.mjs.map +1 -0
- package/dist/settings-B0zQj_Tj.mjs +61 -0
- package/dist/settings-B0zQj_Tj.mjs.map +1 -0
- package/dist/settings-BJjK_X7x.mjs +51 -0
- package/dist/settings-BJjK_X7x.mjs.map +1 -0
- package/dist/settings-BbVRRGDp.mjs +439 -0
- package/dist/settings-BbVRRGDp.mjs.map +1 -0
- package/dist/setup-complete-CuLcTDTU.mjs +65 -0
- package/dist/setup-complete-CuLcTDTU.mjs.map +1 -0
- package/dist/setup-nonce-CAQoY5PC.mjs +25 -0
- package/dist/setup-nonce-CAQoY5PC.mjs.map +1 -0
- package/dist/site-settings-AYFvhwQn.mjs +50 -0
- package/dist/site-settings-AYFvhwQn.mjs.map +1 -0
- package/dist/site-url-Ceq_AUK0.mjs +16 -0
- package/dist/site-url-Ceq_AUK0.mjs.map +1 -0
- package/dist/snapshot-Dzsn3NZa.mjs +414 -0
- package/dist/snapshot-Dzsn3NZa.mjs.map +1 -0
- package/dist/ssrf-DsmvZB80.mjs +406 -0
- package/dist/ssrf-DsmvZB80.mjs.map +1 -0
- package/dist/stage-Cf9PqdUB.mjs +662 -0
- package/dist/stage-Cf9PqdUB.mjs.map +1 -0
- package/dist/staged-Bw5eHbKS.mjs +686 -0
- package/dist/staged-Bw5eHbKS.mjs.map +1 -0
- package/dist/state-kGdOMQRY.mjs +153 -0
- package/dist/state-kGdOMQRY.mjs.map +1 -0
- package/dist/status-D39Fpy8R.mjs +30 -0
- package/dist/status-D39Fpy8R.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-C9bK0Dg6.d.mts +1614 -0
- package/dist/storage-query-C9bK0Dg6.d.mts.map +1 -0
- package/dist/tar-lDI_fzLD.mjs +449 -0
- package/dist/tar-lDI_fzLD.mjs.map +1 -0
- package/dist/target-DOFs5oUC.mjs +27 -0
- package/dist/target-DOFs5oUC.mjs.map +1 -0
- package/dist/taxonomies-DQGomz9p.mjs +939 -0
- package/dist/taxonomies-DQGomz9p.mjs.map +1 -0
- package/dist/taxonomies-DWv-OYT0.mjs +697 -0
- package/dist/taxonomies-DWv-OYT0.mjs.map +1 -0
- package/dist/taxonomy-BesdHIwi.mjs +525 -0
- package/dist/taxonomy-BesdHIwi.mjs.map +1 -0
- package/dist/tokens-BIGxi8sP.mjs +171 -0
- package/dist/tokens-BIGxi8sP.mjs.map +1 -0
- package/dist/transaction-BVYIo_yu.mjs +29 -0
- package/dist/transaction-BVYIo_yu.mjs.map +1 -0
- package/dist/transfer-BtzoaXLk.mjs +166 -0
- package/dist/transfer-BtzoaXLk.mjs.map +1 -0
- package/dist/transfer-DLu_6AXL.mjs +8856 -0
- package/dist/transfer-DLu_6AXL.mjs.map +1 -0
- package/dist/transfer-download-b_PCrqJJ.mjs +33 -0
- package/dist/transfer-download-b_PCrqJJ.mjs.map +1 -0
- package/dist/transformations-DdnpSdeC.mjs +196 -0
- package/dist/transformations-DdnpSdeC.mjs.map +1 -0
- package/dist/transport-flR-Zmds.d.mts +42 -0
- package/dist/transport-flR-Zmds.d.mts.map +1 -0
- package/dist/transport-umzEbgYO.mjs +136 -0
- package/dist/transport-umzEbgYO.mjs.map +1 -0
- package/dist/trusted-proxy-BqfQFs6a.mjs +51 -0
- package/dist/trusted-proxy-BqfQFs6a.mjs.map +1 -0
- package/dist/turnstile-IvQp2uyD.mjs +53 -0
- package/dist/turnstile-IvQp2uyD.mjs.map +1 -0
- package/dist/types-2V_MVPYy.d.mts +125 -0
- package/dist/types-2V_MVPYy.d.mts.map +1 -0
- package/dist/types-B-WCvzdi.d.mts +198 -0
- package/dist/types-B-WCvzdi.d.mts.map +1 -0
- package/dist/types-BGmQ0uXs.mjs +201 -0
- package/dist/types-BGmQ0uXs.mjs.map +1 -0
- package/dist/types-CVsmpTcU.mjs +18 -0
- package/dist/types-CVsmpTcU.mjs.map +1 -0
- package/dist/types-C_V-_vMS.d.mts +198 -0
- package/dist/types-C_V-_vMS.d.mts.map +1 -0
- package/dist/types-CdEMurNh.mjs +77 -0
- package/dist/types-CdEMurNh.mjs.map +1 -0
- package/dist/types-CsmwbOwa.mjs +22 -0
- package/dist/types-CsmwbOwa.mjs.map +1 -0
- package/dist/types-Cw-1it3n.d.mts +287 -0
- package/dist/types-Cw-1it3n.d.mts.map +1 -0
- package/dist/types-D7B20WFC.d.mts +374 -0
- package/dist/types-D7B20WFC.d.mts.map +1 -0
- package/dist/types-DGw8KMX_.mjs +16 -0
- package/dist/types-DGw8KMX_.mjs.map +1 -0
- package/dist/types-DZeDpzMc.d.mts +896 -0
- package/dist/types-DZeDpzMc.d.mts.map +1 -0
- package/dist/types-DuQAIPA-.d.mts +363 -0
- package/dist/types-DuQAIPA-.d.mts.map +1 -0
- package/dist/types-edRPQchz.d.mts +85 -0
- package/dist/types-edRPQchz.d.mts.map +1 -0
- package/dist/types-j6MBDjlZ.mjs +103 -0
- package/dist/types-j6MBDjlZ.mjs.map +1 -0
- package/dist/types-pOLeFKGq.d.mts +1720 -0
- package/dist/types-pOLeFKGq.d.mts.map +1 -0
- package/dist/update-check-CaZyFHZC.mjs +161 -0
- package/dist/update-check-CaZyFHZC.mjs.map +1 -0
- package/dist/upload-attempts-BodUoFBu.mjs +32 -0
- package/dist/upload-attempts-BodUoFBu.mjs.map +1 -0
- package/dist/url-Dn3IStq8.mjs +104 -0
- package/dist/url-Dn3IStq8.mjs.map +1 -0
- package/dist/url-pattern-DGAG6ZP2.mjs +41 -0
- package/dist/url-pattern-DGAG6ZP2.mjs.map +1 -0
- package/dist/user-BOvuF1sQ.mjs +171 -0
- package/dist/user-BOvuF1sQ.mjs.map +1 -0
- package/dist/utils-CoV-PYhg.mjs +439 -0
- package/dist/utils-CoV-PYhg.mjs.map +1 -0
- package/dist/validate-WkjGwBSO.mjs +516 -0
- package/dist/validate-WkjGwBSO.mjs.map +1 -0
- package/dist/validate-dK97qe7F.d.mts +468 -0
- package/dist/validate-dK97qe7F.d.mts.map +1 -0
- package/dist/validation-D-ICq_tY.mjs +219 -0
- package/dist/validation-D-ICq_tY.mjs.map +1 -0
- package/dist/version-DbT04wbH.mjs +9 -0
- package/dist/version-DbT04wbH.mjs.map +1 -0
- package/dist/version-IneBU54o.mjs +7 -0
- package/dist/version-IneBU54o.mjs.map +1 -0
- package/dist/virtual-modules-Brh6mRVe.mjs +516 -0
- package/dist/virtual-modules-Brh6mRVe.mjs.map +1 -0
- package/dist/widgets-D8T0xBYs.mjs +126 -0
- package/dist/widgets-D8T0xBYs.mjs.map +1 -0
- package/dist/wxr-taxonomies-B6iE8m9I.d.mts +34 -0
- package/dist/wxr-taxonomies-B6iE8m9I.d.mts.map +1 -0
- package/dist/wxr-taxonomies-DEzR9N7e.mjs +453 -0
- package/dist/wxr-taxonomies-DEzR9N7e.mjs.map +1 -0
- package/dist/zod-generator-DnfG5sGQ.mjs +424 -0
- package/dist/zod-generator-DnfG5sGQ.mjs.map +1 -0
- package/package.json +13 -14
- package/src/api/errors.ts +11 -0
- package/src/api/handlers/bulk-tag.ts +4 -4
- package/src/api/handlers/content.ts +39 -17
- package/src/api/handlers/index.ts +3 -0
- package/src/api/handlers/manifest.ts +2 -0
- package/src/api/handlers/media-upload.ts +3 -0
- package/src/api/handlers/media.ts +2 -2
- package/src/api/handlers/registry.ts +123 -70
- package/src/api/handlers/revision.ts +10 -2
- package/src/api/handlers/staged-references.ts +72 -6
- package/src/api/handlers/update-check.ts +236 -0
- package/src/api/redirect.ts +9 -1
- package/src/api/schemas/content.ts +4 -0
- package/src/api/schemas/import.ts +50 -14
- package/src/api/schemas/schema.ts +12 -6
- package/src/api/setup-complete.ts +49 -1
- package/src/api/types.ts +4 -0
- package/src/astro/dev-typegen.ts +15 -22
- package/src/astro/integration/dev-typegen.ts +32 -3
- package/src/astro/integration/index.ts +88 -22
- package/src/astro/integration/routes.ts +6 -0
- package/src/astro/integration/runtime.ts +33 -7
- package/src/astro/integration/virtual-modules.ts +1 -0
- package/src/astro/integration/vite-config.ts +16 -8
- package/src/astro/middleware/redirect.ts +15 -2
- package/src/astro/middleware/request-context.ts +13 -6
- package/src/astro/routes/api/admin/bylines/[id]/index.ts +11 -1
- package/src/astro/routes/api/admin/bylines/[id]/translations.ts +7 -1
- package/src/astro/routes/api/admin/bylines/index.ts +6 -1
- package/src/astro/routes/api/admin/core-update.ts +34 -0
- package/src/astro/routes/api/admin/plugins/marketplace/[id]/icon.ts +6 -2
- package/src/astro/routes/api/admin/themes/marketplace/[id]/thumbnail.ts +6 -2
- package/src/astro/routes/api/auth/invite/complete.ts +4 -4
- package/src/astro/routes/api/auth/magic-link/verify.ts +4 -1
- package/src/astro/routes/api/auth/oauth/[provider]/callback.ts +9 -4
- package/src/astro/routes/api/auth/passkey/verify.ts +4 -4
- package/src/astro/routes/api/auth/signup/complete.ts +4 -4
- package/src/astro/routes/api/import/wordpress/execute.ts +252 -6
- package/src/astro/routes/api/import/wordpress/prepare.ts +1 -2
- package/src/astro/routes/api/oauth/register.ts +22 -2
- package/src/astro/routes/api/revisions/[revisionId]/restore.ts +17 -1
- package/src/astro/routes/api/setup/admin-verify.ts +6 -5
- package/src/astro/routes/api/typegen.ts +4 -46
- package/src/astro/session-user.ts +14 -0
- package/src/astro/types.ts +6 -0
- package/src/bylines/credits.ts +149 -0
- package/src/bylines/index.ts +4 -142
- package/src/cli/commands/seed.ts +2 -0
- package/src/cli/credentials.ts +1 -60
- package/src/cli/index.ts +0 -2
- package/src/client/index.ts +8 -2
- package/src/components/Image.astro +24 -13
- package/src/components/InlinePortableTextEditor.tsx +25 -8
- package/src/content/converters/portable-text-to-prosemirror.ts +23 -17
- package/src/content/converters/prosemirror-to-portable-text.ts +16 -5
- package/src/content/converters/types.ts +1 -0
- package/src/database/content-datetime.ts +111 -23
- package/src/database/migrations/036_i18n_menus_and_taxonomies.ts +132 -92
- package/src/database/migrations/088_cron_oneshot_utc.ts +39 -0
- package/src/database/migrations/089_auto_seed_completion.ts +13 -0
- package/src/database/migrations/runner.ts +4 -0
- package/src/database/repositories/comment.ts +2 -2
- package/src/database/repositories/content.ts +15 -8
- package/src/database/repositories/plugin-storage.ts +1 -1
- package/src/database/repositories/redirect.ts +7 -2
- package/src/database/repositories/relation.ts +2 -2
- package/src/database/types.ts +1 -1
- package/src/db/node-sqlite-compat.ts +63 -37
- package/src/emdash-runtime.ts +63 -35
- package/src/import/wxr-taxonomies.ts +163 -88
- package/src/index.ts +10 -0
- package/src/loader.ts +8 -1
- package/src/mcp/server.ts +90 -8
- package/src/media/usage/activation.ts +18 -9
- package/src/migrations/config-loader.ts +5 -0
- package/src/object-cache/index.ts +19 -7
- package/src/object-cache/types.ts +3 -2
- package/src/plugin-types.ts +7 -0
- package/src/plugins/adapt-sandbox-entry.ts +47 -12
- package/src/plugins/byline-access.ts +158 -0
- package/src/plugins/context.ts +7 -1
- package/src/plugins/cron.ts +27 -4
- package/src/plugins/hooks.ts +47 -0
- package/src/plugins/host.ts +1 -0
- package/src/plugins/index.ts +10 -1
- package/src/plugins/manifest-schema.ts +5 -1
- package/src/plugins/marketplace.ts +48 -36
- package/src/plugins/sandbox/proxy.ts +1 -0
- package/src/plugins/types.ts +95 -0
- package/src/query.ts +9 -2
- package/src/redirects/cache.ts +11 -1
- package/src/redirects/destination.ts +20 -0
- package/src/redirects/loops.ts +10 -6
- package/src/redirects/patterns.ts +12 -30
- package/src/references/staged.ts +40 -0
- package/src/registry/testing.ts +59 -14
- package/src/request-context.ts +8 -0
- package/src/schema/block-type-registry.ts +1 -1
- package/src/schema/env-types.ts +37 -0
- package/src/schema/project-env-types.ts +41 -0
- package/src/schema/registry.ts +33 -2
- package/src/schema/types.ts +5 -0
- package/src/schema/url-pattern.ts +10 -0
- package/src/schema/zod-generator.ts +11 -1
- package/src/seed/apply.ts +34 -1
- package/src/seed/ownership.ts +15 -0
- package/src/seed/validate.ts +45 -2
- package/src/transfer/analyze/validate.ts +113 -1
- package/src/transfer/analyze/values.ts +104 -1
- package/src/transfer/analyze/write-rules.ts +8 -0
- package/src/utils/url.ts +58 -3
- package/src/virtual-modules.d.ts +3 -0
- package/dist/action-token-CbKDcPJi.mjs +0 -26
- package/dist/action-token-CbKDcPJi.mjs.map +0 -1
- package/dist/activation-PtniBLt9.mjs +0 -382
- package/dist/activation-PtniBLt9.mjs.map +0 -1
- package/dist/adapters-C_Tf5x90.d.mts +0 -171
- package/dist/adapters-C_Tf5x90.d.mts.map +0 -1
- package/dist/allowed-origins-U1z4TdEZ.mjs +0 -116
- package/dist/allowed-origins-U1z4TdEZ.mjs.map +0 -1
- package/dist/api-CXwQkV_m.mjs +0 -5122
- package/dist/api-CXwQkV_m.mjs.map +0 -1
- package/dist/api-tokens-89WlohEN.mjs +0 -166
- package/dist/api-tokens-89WlohEN.mjs.map +0 -1
- package/dist/apply-Do3KNnUk.mjs +0 -1659
- package/dist/apply-Do3KNnUk.mjs.map +0 -1
- package/dist/approvals-CAX9Yw33.mjs +0 -460
- package/dist/approvals-CAX9Yw33.mjs.map +0 -1
- package/dist/artifact-fetch-B9W4CEST.mjs +0 -659
- package/dist/artifact-fetch-B9W4CEST.mjs.map +0 -1
- package/dist/audit-CrgmE9LE.mjs +0 -127
- package/dist/audit-CrgmE9LE.mjs.map +0 -1
- package/dist/authoritative-records-C2YzIdbu.mjs +0 -5172
- package/dist/authoritative-records-C2YzIdbu.mjs.map +0 -1
- package/dist/authorize-WgdKF8QY.mjs +0 -49
- package/dist/authorize-WgdKF8QY.mjs.map +0 -1
- package/dist/backup-Ck8_lMO3.mjs +0 -246
- package/dist/backup-Ck8_lMO3.mjs.map +0 -1
- package/dist/block-types-BQ90asVI.mjs +0 -132
- package/dist/block-types-BQ90asVI.mjs.map +0 -1
- package/dist/block-values-ACFqgB1D.mjs +0 -175
- package/dist/block-values-ACFqgB1D.mjs.map +0 -1
- package/dist/bundle-Db1iNMv_.mjs +0 -667
- package/dist/bundle-Db1iNMv_.mjs.map +0 -1
- package/dist/byline-BayaYGoj.mjs +0 -909
- package/dist/byline-BayaYGoj.mjs.map +0 -1
- package/dist/byline-fields-B8HH-35f.mjs +0 -254
- package/dist/byline-fields-B8HH-35f.mjs.map +0 -1
- package/dist/byline-fields-hMPjf6Eu.mjs +0 -123
- package/dist/byline-fields-hMPjf6Eu.mjs.map +0 -1
- package/dist/byline-registry-B_EK_TQf.mjs +0 -406
- package/dist/byline-registry-B_EK_TQf.mjs.map +0 -1
- package/dist/bylines-DFAaFXWi.mjs +0 -214
- package/dist/bylines-DFAaFXWi.mjs.map +0 -1
- package/dist/bylines-DkIxUxmr.mjs +0 -232
- package/dist/bylines-DkIxUxmr.mjs.map +0 -1
- package/dist/cache-DkvhQ8XE.mjs +0 -108
- package/dist/cache-DkvhQ8XE.mjs.map +0 -1
- package/dist/canonical-CcSuuTlH.mjs +0 -174
- package/dist/canonical-CcSuuTlH.mjs.map +0 -1
- package/dist/capture-triggers-DJEoOTOq.mjs +0 -362
- package/dist/capture-triggers-DJEoOTOq.mjs.map +0 -1
- package/dist/challenge-store-CvBl81AQ.mjs +0 -51
- package/dist/challenge-store-CvBl81AQ.mjs.map +0 -1
- package/dist/checksum-CClweQzI.mjs +0 -162
- package/dist/checksum-CClweQzI.mjs.map +0 -1
- package/dist/chrome-tags-D5caJwwp.mjs +0 -24
- package/dist/chrome-tags-D5caJwwp.mjs.map +0 -1
- package/dist/chunks-DwBaj8aT.mjs +0 -25
- package/dist/chunks-DwBaj8aT.mjs.map +0 -1
- package/dist/collection-deletion-CLCdXsnV.mjs +0 -436
- package/dist/collection-deletion-CLCdXsnV.mjs.map +0 -1
- package/dist/collection-deletion-processor-hNw8x01F.mjs +0 -217
- package/dist/collection-deletion-processor-hNw8x01F.mjs.map +0 -1
- package/dist/collection-slugs-cache-CUuiduLq.mjs +0 -85
- package/dist/collection-slugs-cache-CUuiduLq.mjs.map +0 -1
- package/dist/comment-D2uvL63j.mjs +0 -313
- package/dist/comment-D2uvL63j.mjs.map +0 -1
- package/dist/comment-reaction-DevUuzg4.mjs +0 -85
- package/dist/comment-reaction-DevUuzg4.mjs.map +0 -1
- package/dist/comments-Cq0s7_hO.mjs +0 -195
- package/dist/comments-Cq0s7_hO.mjs.map +0 -1
- package/dist/comments-M4EDYAHw.mjs +0 -99
- package/dist/comments-M4EDYAHw.mjs.map +0 -1
- package/dist/components-CuIGwXMs.mjs +0 -108
- package/dist/components-CuIGwXMs.mjs.map +0 -1
- package/dist/config-52Ea5IWt.d.mts +0 -39
- package/dist/config-52Ea5IWt.d.mts.map +0 -1
- package/dist/config-CCz3xOLc.mjs +0 -242
- package/dist/config-CCz3xOLc.mjs.map +0 -1
- package/dist/config-D3d5Qudq.d.mts +0 -6669
- package/dist/config-D3d5Qudq.d.mts.map +0 -1
- package/dist/content-CbnufDsM.mjs +0 -2018
- package/dist/content-CbnufDsM.mjs.map +0 -1
- package/dist/content-list-query-D_7B1FE5.d.mts +0 -26
- package/dist/content-list-query-D_7B1FE5.d.mts.map +0 -1
- package/dist/content-policy-CYu6K1KB.mjs +0 -46
- package/dist/content-policy-CYu6K1KB.mjs.map +0 -1
- package/dist/content-repair-DlDUgFGp.mjs +0 -442
- package/dist/content-repair-DlDUgFGp.mjs.map +0 -1
- package/dist/context-CGQLA1-a.mjs +0 -1922
- package/dist/context-CGQLA1-a.mjs.map +0 -1
- package/dist/cron-c4D5C5Fx.mjs +0 -284
- package/dist/cron-c4D5C5Fx.mjs.map +0 -1
- package/dist/dashboard-CBq9kmOn.mjs +0 -151
- package/dist/dashboard-CBq9kmOn.mjs.map +0 -1
- package/dist/default-DPsys51U.mjs +0 -81
- package/dist/default-DPsys51U.mjs.map +0 -1
- package/dist/deferred-tasks-CZ7rzBdo.d.mts +0 -9
- package/dist/deferred-tasks-CZ7rzBdo.d.mts.map +0 -1
- package/dist/dev-typegen-HRxwLRcT.mjs +0 -29
- package/dist/dev-typegen-HRxwLRcT.mjs.map +0 -1
- package/dist/device-flow-OcSqE9uY.mjs +0 -521
- package/dist/device-flow-OcSqE9uY.mjs.map +0 -1
- package/dist/digest-DVZ--cE9.mjs +0 -194
- package/dist/digest-DVZ--cE9.mjs.map +0 -1
- package/dist/direct-executor-DyjAqkpT.mjs +0 -104
- package/dist/direct-executor-DyjAqkpT.mjs.map +0 -1
- package/dist/dist-FPR93_xf.mjs +0 -810
- package/dist/dist-FPR93_xf.mjs.map +0 -1
- package/dist/email-console-DyQIgEnz.mjs +0 -50
- package/dist/email-console-DyQIgEnz.mjs.map +0 -1
- package/dist/email-locale-BYb16rVd.mjs +0 -25
- package/dist/email-locale-BYb16rVd.mjs.map +0 -1
- package/dist/emdash-runtime-CrzxJFmF.mjs +0 -4214
- package/dist/emdash-runtime-CrzxJFmF.mjs.map +0 -1
- package/dist/enrich-DBtCncE2.mjs +0 -194
- package/dist/enrich-DBtCncE2.mjs.map +0 -1
- package/dist/entry-lock-BN5y4YbO.d.mts +0 -4481
- package/dist/entry-lock-BN5y4YbO.d.mts.map +0 -1
- package/dist/entry-lock-BaRBHCsH.mjs +0 -1173
- package/dist/entry-lock-BaRBHCsH.mjs.map +0 -1
- package/dist/entry-lock-C6NcnZPV.mjs +0 -163
- package/dist/entry-lock-C6NcnZPV.mjs.map +0 -1
- package/dist/entry-locks-BTyQLdbC.mjs +0 -167
- package/dist/entry-locks-BTyQLdbC.mjs.map +0 -1
- package/dist/error-BfsNNrIE.mjs +0 -90
- package/dist/error-BfsNNrIE.mjs.map +0 -1
- package/dist/errors-BN1QAnEY.mjs +0 -460
- package/dist/errors-BN1QAnEY.mjs.map +0 -1
- package/dist/errors-Bt3goF8I.mjs +0 -120
- package/dist/errors-Bt3goF8I.mjs.map +0 -1
- package/dist/escape-BveidMa2.mjs +0 -9
- package/dist/escape-BveidMa2.mjs.map +0 -1
- package/dist/fence-Bb_IbCxI.mjs +0 -162
- package/dist/fence-Bb_IbCxI.mjs.map +0 -1
- package/dist/field-defs-cache-CsZctvbu.mjs +0 -77
- package/dist/field-defs-cache-CsZctvbu.mjs.map +0 -1
- package/dist/field-map-6m9rF49t.mjs +0 -83
- package/dist/field-map-6m9rF49t.mjs.map +0 -1
- package/dist/focal-point-CZ3d1wK5.mjs +0 -23
- package/dist/focal-point-CZ3d1wK5.mjs.map +0 -1
- package/dist/fts-manager-CCaZTp8y.mjs +0 -443
- package/dist/fts-manager-CCaZTp8y.mjs.map +0 -1
- package/dist/gc-xowRjczI.mjs +0 -75
- package/dist/gc-xowRjczI.mjs.map +0 -1
- package/dist/hash-COVK27Pc.mjs +0 -37
- package/dist/hash-COVK27Pc.mjs.map +0 -1
- package/dist/hook-result-CYSk0XFe.d.mts +0 -31
- package/dist/hook-result-CYSk0XFe.d.mts.map +0 -1
- package/dist/hreflang-CChPV7jx.mjs +0 -105
- package/dist/hreflang-CChPV7jx.mjs.map +0 -1
- package/dist/hreflang-DRslq3QI.d.mts +0 -50
- package/dist/hreflang-DRslq3QI.d.mts.map +0 -1
- package/dist/http-route-dispatch-CAdp2onn.mjs +0 -339
- package/dist/http-route-dispatch-CAdp2onn.mjs.map +0 -1
- package/dist/identity-NVTOOQyq.mjs +0 -35
- package/dist/identity-NVTOOQyq.mjs.map +0 -1
- package/dist/import-wpSO2N0x.mjs +0 -2020
- package/dist/import-wpSO2N0x.mjs.map +0 -1
- package/dist/index-CDs2wq4X.d.mts +0 -623
- package/dist/index-CDs2wq4X.d.mts.map +0 -1
- package/dist/install-finalization-D9R9R-W8.mjs +0 -58
- package/dist/install-finalization-D9R9R-W8.mjs.map +0 -1
- package/dist/keys-Bck6LBfF.mjs +0 -61
- package/dist/keys-Bck6LBfF.mjs.map +0 -1
- package/dist/kinds-CYmRESWj.mjs +0 -974
- package/dist/kinds-CYmRESWj.mjs.map +0 -1
- package/dist/lifecycle-C815ZQfV.mjs +0 -25
- package/dist/lifecycle-C815ZQfV.mjs.map +0 -1
- package/dist/load-D99axixL.mjs +0 -28
- package/dist/load-D99axixL.mjs.map +0 -1
- package/dist/loader-CrRPfkHS.mjs +0 -1197
- package/dist/loader-CrRPfkHS.mjs.map +0 -1
- package/dist/loops-DMKlygqX.mjs +0 -203
- package/dist/loops-DMKlygqX.mjs.map +0 -1
- package/dist/manifest-builder-BQzCHNgB.mjs +0 -189
- package/dist/manifest-builder-BQzCHNgB.mjs.map +0 -1
- package/dist/manifest-schema-Ci2gmd0u.mjs +0 -492
- package/dist/manifest-schema-Ci2gmd0u.mjs.map +0 -1
- package/dist/media-BUQePMxP.mjs +0 -373
- package/dist/media-BUQePMxP.mjs.map +0 -1
- package/dist/media-DH8ibNlY.mjs +0 -294
- package/dist/media-DH8ibNlY.mjs.map +0 -1
- package/dist/media-OEIQ3bVc.mjs +0 -408
- package/dist/media-OEIQ3bVc.mjs.map +0 -1
- package/dist/media-allowlist-pYtaBA95.mjs +0 -44
- package/dist/media-allowlist-pYtaBA95.mjs.map +0 -1
- package/dist/media-folders-Bf8_s4de.mjs +0 -210
- package/dist/media-folders-Bf8_s4de.mjs.map +0 -1
- package/dist/media-url-C6klEuNd.mjs +0 -43
- package/dist/media-url-C6klEuNd.mjs.map +0 -1
- package/dist/media-usage-D7Y64m6v.mjs +0 -1629
- package/dist/media-usage-D7Y64m6v.mjs.map +0 -1
- package/dist/media-usage-activation-DrqbmgLA.mjs +0 -78
- package/dist/media-usage-activation-DrqbmgLA.mjs.map +0 -1
- package/dist/media-usage-work-DommYhYA.mjs +0 -152
- package/dist/media-usage-work-DommYhYA.mjs.map +0 -1
- package/dist/media-usage-work-HU63hNDu.mjs +0 -586
- package/dist/media-usage-work-HU63hNDu.mjs.map +0 -1
- package/dist/menus-BQfusWEC.mjs +0 -3608
- package/dist/menus-BQfusWEC.mjs.map +0 -1
- package/dist/menus-BtwjQt5s.mjs +0 -753
- package/dist/menus-BtwjQt5s.mjs.map +0 -1
- package/dist/menus-p_M1V7J_.mjs +0 -139
- package/dist/menus-p_M1V7J_.mjs.map +0 -1
- package/dist/mime-C94qBG-P.mjs +0 -36
- package/dist/mime-C94qBG-P.mjs.map +0 -1
- package/dist/mode-DpYW3w6U.mjs +0 -23
- package/dist/mode-DpYW3w6U.mjs.map +0 -1
- package/dist/node-sqlite-compat-pWFw0lcc.mjs +0 -46
- package/dist/node-sqlite-compat-pWFw0lcc.mjs.map +0 -1
- package/dist/normalize-DduyxBjf.mjs +0 -191
- package/dist/normalize-DduyxBjf.mjs.map +0 -1
- package/dist/oauth-authorization-DAXsH1H9.mjs +0 -274
- package/dist/oauth-authorization-DAXsH1H9.mjs.map +0 -1
- package/dist/oauth-clients-DENiDQri.mjs +0 -266
- package/dist/oauth-clients-DENiDQri.mjs.map +0 -1
- package/dist/oauth-state-store-y8mEYVq9.mjs +0 -50
- package/dist/oauth-state-store-y8mEYVq9.mjs.map +0 -1
- package/dist/oauth-user-lookup-CtTYAy-O.mjs +0 -26
- package/dist/oauth-user-lookup-CtTYAy-O.mjs.map +0 -1
- package/dist/object-cache-CqWNY5uP.mjs +0 -582
- package/dist/object-cache-CqWNY5uP.mjs.map +0 -1
- package/dist/options-BYa1FgIM.d.mts +0 -81
- package/dist/options-BYa1FgIM.d.mts.map +0 -1
- package/dist/parse-CORGGhHf.mjs +0 -81
- package/dist/parse-CORGGhHf.mjs.map +0 -1
- package/dist/parse-avNM1xWV.d.mts +0 -168
- package/dist/parse-avNM1xWV.d.mts.map +0 -1
- package/dist/passkey-config-Dih5YeIS.mjs +0 -46
- package/dist/passkey-config-Dih5YeIS.mjs.map +0 -1
- package/dist/paths-d51RFm8M.mjs +0 -77
- package/dist/paths-d51RFm8M.mjs.map +0 -1
- package/dist/patterns-CoqlXUvk.mjs +0 -145
- package/dist/patterns-CoqlXUvk.mjs.map +0 -1
- package/dist/placeholder-D2aksPMF.d.mts +0 -306
- package/dist/placeholder-D2aksPMF.d.mts.map +0 -1
- package/dist/plan-DqeZKuaR.mjs +0 -135
- package/dist/plan-DqeZKuaR.mjs.map +0 -1
- package/dist/plugins-Bb7oqjQA.mjs +0 -277
- package/dist/plugins-Bb7oqjQA.mjs.map +0 -1
- package/dist/policy-BcEqut3n.mjs +0 -45
- package/dist/policy-BcEqut3n.mjs.map +0 -1
- package/dist/portable-text-DXE8ymtD.mjs +0 -307
- package/dist/portable-text-DXE8ymtD.mjs.map +0 -1
- package/dist/preview-DEDWbwA_.mjs +0 -107
- package/dist/preview-DEDWbwA_.mjs.map +0 -1
- package/dist/protocol-BJbTzvwl.d.mts +0 -61
- package/dist/protocol-BJbTzvwl.d.mts.map +0 -1
- package/dist/public-submission-D9c9S14m.mjs +0 -250
- package/dist/public-submission-D9c9S14m.mjs.map +0 -1
- package/dist/public-url-CIRe-2T6.mjs +0 -101
- package/dist/public-url-CIRe-2T6.mjs.map +0 -1
- package/dist/query-BzifXlPS.mjs +0 -1156
- package/dist/query-BzifXlPS.mjs.map +0 -1
- package/dist/query-OzMJ6vJP.mjs +0 -41
- package/dist/query-OzMJ6vJP.mjs.map +0 -1
- package/dist/rate-limit-Csp60Vik.mjs +0 -120
- package/dist/rate-limit-Csp60Vik.mjs.map +0 -1
- package/dist/receipt-B-aU4hpJ.mjs +0 -43
- package/dist/receipt-B-aU4hpJ.mjs.map +0 -1
- package/dist/redirect-CDSw1sU3.mjs +0 -17
- package/dist/redirect-CDSw1sU3.mjs.map +0 -1
- package/dist/redirect-D1ArbO85.mjs +0 -411
- package/dist/redirect-D1ArbO85.mjs.map +0 -1
- package/dist/redirects-BjTwDTsV.mjs +0 -148
- package/dist/redirects-BjTwDTsV.mjs.map +0 -1
- package/dist/redirects-Ck50kH3n.mjs +0 -446
- package/dist/redirects-Ck50kH3n.mjs.map +0 -1
- package/dist/registry-CFcNCayZ.mjs +0 -6754
- package/dist/registry-CFcNCayZ.mjs.map +0 -1
- package/dist/relations-Cfaa1fDl.mjs +0 -776
- package/dist/relations-Cfaa1fDl.mjs.map +0 -1
- package/dist/request-cache-iHRlHx1d.mjs +0 -104
- package/dist/request-cache-iHRlHx1d.mjs.map +0 -1
- package/dist/request-meta-D47mqyev.mjs +0 -141
- package/dist/request-meta-D47mqyev.mjs.map +0 -1
- package/dist/resolve-BPE8sMvx.mjs +0 -99
- package/dist/resolve-BPE8sMvx.mjs.map +0 -1
- package/dist/resolve-C0s1E_fH.mjs +0 -199
- package/dist/resolve-C0s1E_fH.mjs.map +0 -1
- package/dist/revision-j1p4-bOj.mjs +0 -302
- package/dist/revision-j1p4-bOj.mjs.map +0 -1
- package/dist/route-wire-C9PJV9aL.mjs +0 -197
- package/dist/route-wire-C9PJV9aL.mjs.map +0 -1
- package/dist/routes-lyYw0mMf.mjs +0 -272
- package/dist/routes-lyYw0mMf.mjs.map +0 -1
- package/dist/runner-B3eyB9Gb.mjs +0 -6121
- package/dist/runner-B3eyB9Gb.mjs.map +0 -1
- package/dist/runner-DoYH2Jcu.d.mts +0 -68
- package/dist/runner-DoYH2Jcu.d.mts.map +0 -1
- package/dist/schema-BAayK46S.mjs +0 -13
- package/dist/schema-BAayK46S.mjs.map +0 -1
- package/dist/schema-Gqcl-8G4.mjs +0 -815
- package/dist/schema-Gqcl-8G4.mjs.map +0 -1
- package/dist/scopes-BqPOKoKf.mjs +0 -34
- package/dist/scopes-BqPOKoKf.mjs.map +0 -1
- package/dist/search-YJKPIEV6.mjs +0 -448
- package/dist/search-YJKPIEV6.mjs.map +0 -1
- package/dist/sections-BR_e-wK5.mjs +0 -346
- package/dist/sections-BR_e-wK5.mjs.map +0 -1
- package/dist/seo-Dsj8hy3j.mjs +0 -114
- package/dist/seo-Dsj8hy3j.mjs.map +0 -1
- package/dist/seo-XvH4LNNp.mjs +0 -133
- package/dist/seo-XvH4LNNp.mjs.map +0 -1
- package/dist/service-BsVG05gS.mjs +0 -150
- package/dist/service-BsVG05gS.mjs.map +0 -1
- package/dist/session-user-DgKbYrlj.mjs +0 -51
- package/dist/session-user-DgKbYrlj.mjs.map +0 -1
- package/dist/settings-CNPUntkh.mjs +0 -51
- package/dist/settings-CNPUntkh.mjs.map +0 -1
- package/dist/settings-D5EHi0Tk.mjs +0 -439
- package/dist/settings-D5EHi0Tk.mjs.map +0 -1
- package/dist/settings-DSfE7wOa.mjs +0 -61
- package/dist/settings-DSfE7wOa.mjs.map +0 -1
- package/dist/setup-complete-B8W8sJ9v.mjs +0 -26
- package/dist/setup-complete-B8W8sJ9v.mjs.map +0 -1
- package/dist/setup-nonce-DnSBP260.mjs +0 -25
- package/dist/setup-nonce-DnSBP260.mjs.map +0 -1
- package/dist/site-settings-NGzdrt7O.mjs +0 -50
- package/dist/site-settings-NGzdrt7O.mjs.map +0 -1
- package/dist/site-url-D6JB7tLW.mjs +0 -16
- package/dist/site-url-D6JB7tLW.mjs.map +0 -1
- package/dist/snapshot-CdcwwWAf.mjs +0 -414
- package/dist/snapshot-CdcwwWAf.mjs.map +0 -1
- package/dist/ssrf-Dv0_tRpo.mjs +0 -406
- package/dist/ssrf-Dv0_tRpo.mjs.map +0 -1
- package/dist/stage-CUjhED3P.mjs +0 -662
- package/dist/stage-CUjhED3P.mjs.map +0 -1
- package/dist/staged-C36IWXff.mjs +0 -659
- package/dist/staged-C36IWXff.mjs.map +0 -1
- package/dist/state-CKouMCSY.mjs +0 -153
- package/dist/state-CKouMCSY.mjs.map +0 -1
- package/dist/status-lzyj4Uu7.mjs +0 -30
- package/dist/status-lzyj4Uu7.mjs.map +0 -1
- package/dist/storage-query-B-cWcTjJ.d.mts +0 -1594
- package/dist/storage-query-B-cWcTjJ.d.mts.map +0 -1
- package/dist/tar-DsTXX6ch.mjs +0 -449
- package/dist/tar-DsTXX6ch.mjs.map +0 -1
- package/dist/target-DLQCwp_Z.mjs +0 -27
- package/dist/target-DLQCwp_Z.mjs.map +0 -1
- package/dist/taxonomies-BlAjr4BL.mjs +0 -697
- package/dist/taxonomies-BlAjr4BL.mjs.map +0 -1
- package/dist/taxonomies-Byyo7LOZ.mjs +0 -939
- package/dist/taxonomies-Byyo7LOZ.mjs.map +0 -1
- package/dist/taxonomy-CKDwM61Y.mjs +0 -525
- package/dist/taxonomy-CKDwM61Y.mjs.map +0 -1
- package/dist/tokens-BojXlk49.mjs +0 -171
- package/dist/tokens-BojXlk49.mjs.map +0 -1
- package/dist/transaction-DLPQWik1.mjs +0 -29
- package/dist/transaction-DLPQWik1.mjs.map +0 -1
- package/dist/transfer-XSTh2BCr.mjs +0 -8706
- package/dist/transfer-XSTh2BCr.mjs.map +0 -1
- package/dist/transfer-download-DkoCDA9d.mjs +0 -33
- package/dist/transfer-download-DkoCDA9d.mjs.map +0 -1
- package/dist/transfer-iQ26J-RT.mjs +0 -166
- package/dist/transfer-iQ26J-RT.mjs.map +0 -1
- package/dist/transformations-C7RQabKQ.mjs +0 -196
- package/dist/transformations-C7RQabKQ.mjs.map +0 -1
- package/dist/transport-D3RulfD6.mjs +0 -136
- package/dist/transport-D3RulfD6.mjs.map +0 -1
- package/dist/transport-DhlZlf4D.d.mts +0 -42
- package/dist/transport-DhlZlf4D.d.mts.map +0 -1
- package/dist/trusted-proxy-B6ECOZJc.mjs +0 -51
- package/dist/trusted-proxy-B6ECOZJc.mjs.map +0 -1
- package/dist/turnstile-lqUiY7lP.mjs +0 -53
- package/dist/turnstile-lqUiY7lP.mjs.map +0 -1
- package/dist/types-4Dn9bZhu.mjs +0 -77
- package/dist/types-4Dn9bZhu.mjs.map +0 -1
- package/dist/types-5LSo7PPx.d.mts +0 -85
- package/dist/types-5LSo7PPx.d.mts.map +0 -1
- package/dist/types-BQ3hwYJT.d.mts +0 -896
- package/dist/types-BQ3hwYJT.d.mts.map +0 -1
- package/dist/types-BYEk7qo3.d.mts +0 -198
- package/dist/types-BYEk7qo3.d.mts.map +0 -1
- package/dist/types-CJKsWVFR.mjs +0 -199
- package/dist/types-CJKsWVFR.mjs.map +0 -1
- package/dist/types-Ca_w8mmY.d.mts +0 -363
- package/dist/types-Ca_w8mmY.d.mts.map +0 -1
- package/dist/types-CkE41ZAG.mjs +0 -18
- package/dist/types-CkE41ZAG.mjs.map +0 -1
- package/dist/types-D0aJW2uR.d.mts +0 -1641
- package/dist/types-D0aJW2uR.d.mts.map +0 -1
- package/dist/types-DbpN4Qto.d.mts +0 -372
- package/dist/types-DbpN4Qto.d.mts.map +0 -1
- package/dist/types-ILDI1sdY.mjs +0 -16
- package/dist/types-ILDI1sdY.mjs.map +0 -1
- package/dist/types-OC5c-edM.mjs +0 -22
- package/dist/types-OC5c-edM.mjs.map +0 -1
- package/dist/types-aOOxRSx6.mjs +0 -103
- package/dist/types-aOOxRSx6.mjs.map +0 -1
- package/dist/types-m1WbUffD.d.mts +0 -198
- package/dist/types-m1WbUffD.d.mts.map +0 -1
- package/dist/types-uxLoPBio.d.mts +0 -124
- package/dist/types-uxLoPBio.d.mts.map +0 -1
- package/dist/types-we5uR-tV.d.mts +0 -287
- package/dist/types-we5uR-tV.d.mts.map +0 -1
- package/dist/upload-attempts-DduMy6B0.mjs +0 -32
- package/dist/upload-attempts-DduMy6B0.mjs.map +0 -1
- package/dist/url-pattern-B3EwxAAk.mjs +0 -33
- package/dist/url-pattern-B3EwxAAk.mjs.map +0 -1
- package/dist/user-ElwQjTQT.mjs +0 -171
- package/dist/user-ElwQjTQT.mjs.map +0 -1
- package/dist/utils-BlAXmfOG.mjs +0 -439
- package/dist/utils-BlAXmfOG.mjs.map +0 -1
- package/dist/validate-CH0X5b2c.d.mts +0 -468
- package/dist/validate-CH0X5b2c.d.mts.map +0 -1
- package/dist/validate-CfgRpcjA.mjs +0 -492
- package/dist/validate-CfgRpcjA.mjs.map +0 -1
- package/dist/validation-DvYJtv4k.mjs +0 -218
- package/dist/validation-DvYJtv4k.mjs.map +0 -1
- package/dist/version-DgYjhTud.mjs +0 -9
- package/dist/version-DgYjhTud.mjs.map +0 -1
- package/dist/version-Dq71scUb.mjs +0 -7
- package/dist/version-Dq71scUb.mjs.map +0 -1
- package/dist/widgets-ChFIj0be.mjs +0 -126
- package/dist/widgets-ChFIj0be.mjs.map +0 -1
- package/dist/wxr-taxonomies-CBZMp2YX.mjs +0 -372
- package/dist/wxr-taxonomies-CBZMp2YX.mjs.map +0 -1
- package/dist/wxr-taxonomies-DlKDpWN1.d.mts +0 -34
- package/dist/wxr-taxonomies-DlKDpWN1.d.mts.map +0 -1
- package/dist/zod-generator-DmTKI-Ig.mjs +0 -426
- package/dist/zod-generator-DmTKI-Ig.mjs.map +0 -1
- package/src/cli/commands/bundle-utils.ts +0 -408
- package/src/cli/commands/bundle.ts +0 -659
- package/src/cli/commands/plugin-init.ts +0 -417
- package/src/cli/commands/plugin-validate.ts +0 -31
- package/src/cli/commands/plugin.ts +0 -33
- package/src/cli/commands/publish.ts +0 -721
- /package/dist/{api-tokens-FaG1zPsj.mjs → api-tokens-BLz2MtQs.mjs} +0 -0
- /package/dist/{ssrf-DZOt8Qof.mjs → ssrf-tA45vIPX.mjs} +0 -0
|
@@ -4,29 +4,30 @@ import "../../../after-PcEvMY_6.mjs";
|
|
|
4
4
|
import "../../../options-DhrI7eMv.mjs";
|
|
5
5
|
import "../../../base64-DvnNgP7e.mjs";
|
|
6
6
|
import "../../../secrets-CIi0nFiR.mjs";
|
|
7
|
-
import "../../../object-cache-
|
|
8
|
-
import "../../../
|
|
9
|
-
import "../../../
|
|
10
|
-
import "../../../
|
|
11
|
-
import
|
|
12
|
-
import "../../../
|
|
13
|
-
import "../../../
|
|
14
|
-
import "../../../
|
|
15
|
-
import "../../../
|
|
16
|
-
import "../../../
|
|
17
|
-
import "../../../settings-
|
|
18
|
-
import
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import "../../../
|
|
22
|
-
import
|
|
23
|
-
import "../../../
|
|
24
|
-
import "../../../
|
|
25
|
-
import "../../../
|
|
26
|
-
import "../../../
|
|
27
|
-
import "../../../
|
|
7
|
+
import "../../../object-cache-Bo6DGaC9.mjs";
|
|
8
|
+
import "../../../request-cache-C4CIo5ad.mjs";
|
|
9
|
+
import "../../../url-Dn3IStq8.mjs";
|
|
10
|
+
import "../../../types-j6MBDjlZ.mjs";
|
|
11
|
+
import "../../../media-CputjGE1.mjs";
|
|
12
|
+
import { n as siteSettingsTag } from "../../../chrome-tags-CKELm-bo.mjs";
|
|
13
|
+
import "../../../loader-B_bcoE1h.mjs";
|
|
14
|
+
import "../../../errors-CjXd1LgH.mjs";
|
|
15
|
+
import "../../../errors-CNvATh_7.mjs";
|
|
16
|
+
import "../../../settings-B0zQj_Tj.mjs";
|
|
17
|
+
import "../../../site-settings-AYFvhwQn.mjs";
|
|
18
|
+
import "../../../settings-BbVRRGDp.mjs";
|
|
19
|
+
import { n as handleSettingsUpdate, t as handleSettingsGet } from "../../../settings-BJjK_X7x.mjs";
|
|
20
|
+
import { a as unwrapResult, r as handleError, t as apiError } from "../../../error-CEdm_AWU.mjs";
|
|
21
|
+
import { n as parseBody, t as isParseError } from "../../../parse-Gt2l4Sld.mjs";
|
|
22
|
+
import "../../../redirects-D4EWeXAo.mjs";
|
|
23
|
+
import { O as settingsUpdateBody } from "../../../entry-lock-PP1JCXBB.mjs";
|
|
24
|
+
import "../../../media-D1z_jisb.mjs";
|
|
25
|
+
import "../../../comments-BRtp992B.mjs";
|
|
26
|
+
import "../../../byline-fields-DHJs0Mja.mjs";
|
|
27
|
+
import "../../../menus-BQKqf0Up.mjs";
|
|
28
|
+
import "../../../status-D39Fpy8R.mjs";
|
|
28
29
|
import "../../../api/schemas/index.mjs";
|
|
29
|
-
import { i as requirePerm } from "../../../authorize-
|
|
30
|
+
import { i as requirePerm } from "../../../authorize-soZXK7U0.mjs";
|
|
30
31
|
|
|
31
32
|
//#region src/astro/routes/api/settings.ts
|
|
32
33
|
const prerender = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.mjs","names":[],"sources":["../../../../src/astro/routes/api/settings.ts"],"sourcesContent":["/**\n * Site Settings API endpoint\n *\n * GET /_emdash/api/settings - Get all site settings\n * POST /_emdash/api/settings - Update site settings\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, handleError, unwrapResult } from \"#api/error.js\";\nimport { handleSettingsGet, handleSettingsUpdate } from \"#api/handlers/settings.js\";\nimport { isParseError, parseBody } from \"#api/parse.js\";\nimport { settingsUpdateBody } from \"#api/schemas.js\";\nimport { siteSettingsTag } from \"#cache/chrome-tags.js\";\n\nexport const prerender = false;\n\n/**\n * GET /_emdash/api/settings\n *\n * Returns all site settings as a JSON object.\n * Unset values are undefined. Media references include resolved URLs.\n */\nexport const GET: APIRoute = async ({ locals }) => {\n\tconst { emdash, user } = locals;\n\n\tif (!emdash?.db) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\tconst denied = requirePerm(user, \"settings:read\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst result = await handleSettingsGet(emdash.db, emdash.storage);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to get settings\", \"SETTINGS_READ_ERROR\");\n\t}\n};\n\n/**\n * POST /_emdash/api/settings\n *\n * Updates site settings. Accepts a partial settings object.\n * Merges with existing settings and returns the updated settings.\n */\nexport const POST: APIRoute = async ({ request, locals, cache }) => {\n\tconst { emdash, user } = locals;\n\n\tif (!emdash?.db) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\tconst denied = requirePerm(user, \"settings:manage\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst body = await parseBody(request, settingsUpdateBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst result = await handleSettingsUpdate(emdash.db, emdash.storage, body);\n\t\tif (!result.success) return unwrapResult(result);\n\t\tif (cache?.enabled) await cache.invalidate({ tags: [siteSettingsTag()] });\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to update settings\", \"SETTINGS_UPDATE_ERROR\");\n\t}\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"settings.mjs","names":[],"sources":["../../../../src/astro/routes/api/settings.ts"],"sourcesContent":["/**\n * Site Settings API endpoint\n *\n * GET /_emdash/api/settings - Get all site settings\n * POST /_emdash/api/settings - Update site settings\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, handleError, unwrapResult } from \"#api/error.js\";\nimport { handleSettingsGet, handleSettingsUpdate } from \"#api/handlers/settings.js\";\nimport { isParseError, parseBody } from \"#api/parse.js\";\nimport { settingsUpdateBody } from \"#api/schemas.js\";\nimport { siteSettingsTag } from \"#cache/chrome-tags.js\";\n\nexport const prerender = false;\n\n/**\n * GET /_emdash/api/settings\n *\n * Returns all site settings as a JSON object.\n * Unset values are undefined. Media references include resolved URLs.\n */\nexport const GET: APIRoute = async ({ locals }) => {\n\tconst { emdash, user } = locals;\n\n\tif (!emdash?.db) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\tconst denied = requirePerm(user, \"settings:read\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst result = await handleSettingsGet(emdash.db, emdash.storage);\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to get settings\", \"SETTINGS_READ_ERROR\");\n\t}\n};\n\n/**\n * POST /_emdash/api/settings\n *\n * Updates site settings. Accepts a partial settings object.\n * Merges with existing settings and returns the updated settings.\n */\nexport const POST: APIRoute = async ({ request, locals, cache }) => {\n\tconst { emdash, user } = locals;\n\n\tif (!emdash?.db) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\tconst denied = requirePerm(user, \"settings:manage\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst body = await parseBody(request, settingsUpdateBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst result = await handleSettingsUpdate(emdash.db, emdash.storage, body);\n\t\tif (!result.success) return unwrapResult(result);\n\t\tif (cache?.enabled) await cache.invalidate({ tags: [siteSettingsTag()] });\n\t\treturn unwrapResult(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to update settings\", \"SETTINGS_UPDATE_ERROR\");\n\t}\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAa,YAAY;;;;;;;AAQzB,MAAa,MAAgB,OAAO,EAAE,aAAa;CAClD,MAAM,EAAE,QAAQ,SAAS;AAEzB,KAAI,CAAC,QAAQ,GACZ,QAAO,SAAS,kBAAkB,6BAA6B,IAAI;CAGpE,MAAM,SAAS,YAAY,MAAM,gBAAgB;AACjD,KAAI,OAAQ,QAAO;AAEnB,KAAI;AAEH,SAAO,aADQ,MAAM,kBAAkB,OAAO,IAAI,OAAO,QAAQ,CACtC;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,0BAA0B,sBAAsB;;;;;;;;;AAU5E,MAAa,OAAiB,OAAO,EAAE,SAAS,QAAQ,YAAY;CACnE,MAAM,EAAE,QAAQ,SAAS;AAEzB,KAAI,CAAC,QAAQ,GACZ,QAAO,SAAS,kBAAkB,6BAA6B,IAAI;CAGpE,MAAM,SAAS,YAAY,MAAM,kBAAkB;AACnD,KAAI,OAAQ,QAAO;AAEnB,KAAI;EACH,MAAM,OAAO,MAAM,UAAU,SAAS,mBAAmB;AACzD,MAAI,aAAa,KAAK,CAAE,QAAO;EAE/B,MAAM,SAAS,MAAM,qBAAqB,OAAO,IAAI,OAAO,SAAS,KAAK;AAC1E,MAAI,CAAC,OAAO,QAAS,QAAO,aAAa,OAAO;AAChD,MAAI,OAAO,QAAS,OAAM,MAAM,WAAW,EAAE,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;AACzE,SAAO,aAAa,OAAO;UACnB,OAAO;AACf,SAAO,YAAY,OAAO,6BAA6B,wBAAwB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-verify.d.mts","names":[],"sources":["../../../../../src/astro/routes/api/setup/admin-verify.ts"],"mappings":";;;cAQa,SAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"admin-verify.d.mts","names":[],"sources":["../../../../../src/astro/routes/api/setup/admin-verify.ts"],"mappings":";;;cAQa,SAAA;AAAA,cAiBA,IAAA,EAAM,QAAA"}
|
|
@@ -1,27 +1,30 @@
|
|
|
1
|
+
import "../../../../dialect-helpers-7_IqPdh9.mjs";
|
|
1
2
|
import "../../../../config-CvmjJcVw.mjs";
|
|
2
3
|
import { t as OptionsRepository } from "../../../../options-DhrI7eMv.mjs";
|
|
3
4
|
import "../../../../base64-DvnNgP7e.mjs";
|
|
4
|
-
import "../../../../
|
|
5
|
-
import "../../../../
|
|
6
|
-
import "../../../../
|
|
7
|
-
import "../../../../
|
|
8
|
-
import "../../../../
|
|
9
|
-
import
|
|
10
|
-
import { n as
|
|
11
|
-
import "../../../../
|
|
12
|
-
import "../../../../
|
|
13
|
-
import "../../../../
|
|
14
|
-
import "../../../../
|
|
15
|
-
import
|
|
16
|
-
import "../../../../
|
|
17
|
-
import "../../../../
|
|
5
|
+
import "../../../../url-Dn3IStq8.mjs";
|
|
6
|
+
import "../../../../types-j6MBDjlZ.mjs";
|
|
7
|
+
import "../../../../errors-CjXd1LgH.mjs";
|
|
8
|
+
import "../../../../errors-CNvATh_7.mjs";
|
|
9
|
+
import "../../../../settings-B0zQj_Tj.mjs";
|
|
10
|
+
import "../../../../site-settings-AYFvhwQn.mjs";
|
|
11
|
+
import { n as apiSuccess, r as handleError, t as apiError } from "../../../../error-CEdm_AWU.mjs";
|
|
12
|
+
import { n as parseBody, t as isParseError } from "../../../../parse-Gt2l4Sld.mjs";
|
|
13
|
+
import "../../../../redirects-D4EWeXAo.mjs";
|
|
14
|
+
import "../../../../entry-lock-PP1JCXBB.mjs";
|
|
15
|
+
import "../../../../media-D1z_jisb.mjs";
|
|
16
|
+
import "../../../../comments-BRtp992B.mjs";
|
|
17
|
+
import { l as setupAdminVerifyBody } from "../../../../byline-fields-DHJs0Mja.mjs";
|
|
18
|
+
import "../../../../menus-BQKqf0Up.mjs";
|
|
19
|
+
import "../../../../status-D39Fpy8R.mjs";
|
|
18
20
|
import "../../../../api/schemas/index.mjs";
|
|
19
|
-
import { r as getPublicOrigin } from "../../../../public-url-
|
|
20
|
-
import { n as validateAllowedOrigins, t as getConfiguredAllowedOrigins } from "../../../../allowed-origins-
|
|
21
|
-
import { n as createChallengeStore } from "../../../../challenge-store-
|
|
22
|
-
import { t as
|
|
23
|
-
import { t as
|
|
24
|
-
import {
|
|
21
|
+
import { r as getPublicOrigin } from "../../../../public-url-B5a0QAh6.mjs";
|
|
22
|
+
import { n as validateAllowedOrigins, t as getConfiguredAllowedOrigins } from "../../../../allowed-origins-CFtudhyw.mjs";
|
|
23
|
+
import { n as createChallengeStore } from "../../../../challenge-store-CxZxPqaw.mjs";
|
|
24
|
+
import { t as createFirstAdmin } from "../../../../setup-complete-CuLcTDTU.mjs";
|
|
25
|
+
import { t as getPasskeyConfig } from "../../../../passkey-config-CkQsrcU-.mjs";
|
|
26
|
+
import { t as SETUP_NONCE_COOKIE } from "../../../../setup-nonce-CAQoY5PC.mjs";
|
|
27
|
+
import { secureCompare } from "@emdash-cms/auth";
|
|
25
28
|
import { createKyselyAdapter } from "@emdash-cms/auth/adapters/kysely";
|
|
26
29
|
import { registerPasskey, verifyRegistrationResponse } from "@emdash-cms/auth/passkey";
|
|
27
30
|
|
|
@@ -52,12 +55,11 @@ const POST = async ({ cookies, request, locals }) => {
|
|
|
52
55
|
const passkeyConfig = getPasskeyConfig(url, siteName, siteUrl, validateAllowedOrigins(siteUrl, getConfiguredAllowedOrigins(emdash?.config)));
|
|
53
56
|
const challengeStore = createChallengeStore(emdash.db);
|
|
54
57
|
const verified = await verifyRegistrationResponse(passkeyConfig, body.credential, challengeStore);
|
|
55
|
-
const user = await
|
|
58
|
+
const user = await createFirstAdmin(emdash.db, {
|
|
56
59
|
email: setupState.email,
|
|
57
|
-
name: setupState.name ?? null
|
|
58
|
-
role: Role.ADMIN,
|
|
59
|
-
emailVerified: false
|
|
60
|
+
name: setupState.name ?? null
|
|
60
61
|
});
|
|
62
|
+
if (!user) return apiError("ADMIN_EXISTS", "Admin user already exists", 400);
|
|
61
63
|
await registerPasskey(adapter, user.id, verified, "Setup passkey");
|
|
62
64
|
await options.set("emdash:setup_complete", true);
|
|
63
65
|
await options.delete("emdash:setup_state");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-verify.mjs","names":[],"sources":["../../../../../src/astro/routes/api/setup/admin-verify.ts"],"sourcesContent":["/**\n * POST /_emdash/api/setup/admin/verify\n *\n * Complete admin creation by verifying the passkey registration\n */\n\nimport type { APIRoute } from \"astro\";\n\nexport const prerender = false;\n\nimport {
|
|
1
|
+
{"version":3,"file":"admin-verify.mjs","names":[],"sources":["../../../../../src/astro/routes/api/setup/admin-verify.ts"],"sourcesContent":["/**\n * POST /_emdash/api/setup/admin/verify\n *\n * Complete admin creation by verifying the passkey registration\n */\n\nimport type { APIRoute } from \"astro\";\n\nexport const prerender = false;\n\nimport { secureCompare } from \"@emdash-cms/auth\";\nimport { createKyselyAdapter } from \"@emdash-cms/auth/adapters/kysely\";\nimport { verifyRegistrationResponse, registerPasskey } from \"@emdash-cms/auth/passkey\";\n\nimport { apiError, apiSuccess, handleError } from \"#api/error.js\";\nimport { isParseError, parseBody } from \"#api/parse.js\";\nimport { getPublicOrigin } from \"#api/public-url.js\";\nimport { setupAdminVerifyBody } from \"#api/schemas.js\";\nimport { createFirstAdmin } from \"#api/setup-complete.js\";\nimport { getConfiguredAllowedOrigins, validateAllowedOrigins } from \"#auth/allowed-origins.js\";\nimport { createChallengeStore } from \"#auth/challenge-store.js\";\nimport { getPasskeyConfig } from \"#auth/passkey-config.js\";\nimport { SETUP_NONCE_COOKIE } from \"#auth/setup-nonce.js\";\nimport { OptionsRepository } from \"#db/repositories/options.js\";\n\nexport const POST: APIRoute = async ({ cookies, request, locals }) => {\n\tconst { emdash } = locals;\n\n\tif (!emdash?.db) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\ttry {\n\t\t// Check if setup is already complete\n\t\tconst options = new OptionsRepository(emdash.db);\n\t\tconst setupComplete = await options.get(\"emdash:setup_complete\");\n\t\tconst isComplete = setupComplete === true || setupComplete === \"true\";\n\n\t\t// Check if any users exist\n\t\tconst adapter = createKyselyAdapter(emdash.db);\n\t\tconst userCount = await adapter.countUsers();\n\n\t\tif (userCount > 0) {\n\t\t\tif (isComplete) {\n\t\t\t\treturn apiError(\"SETUP_COMPLETE\", \"Setup already complete\", 400);\n\t\t\t}\n\t\t\treturn apiError(\"ADMIN_EXISTS\", \"Admin user already exists\", 400);\n\t\t}\n\n\t\t// `setup_complete` with ZERO users is a recoverable half-state —\n\t\t// see the matching guard in ./admin.ts. The verify step must\n\t\t// accept it too, or the wizard dies between its two calls.\n\n\t\t// Get setup state\n\t\tconst setupState = await options.get<{\n\t\t\tstep?: string;\n\t\t\temail?: string;\n\t\t\tname?: string | null;\n\t\t\tnonce?: string;\n\t\t}>(\"emdash:setup_state\");\n\n\t\tif (!setupState || setupState.step !== \"admin\") {\n\t\t\treturn apiError(\"INVALID_STATE\", \"Invalid setup state. Please restart setup.\", 400);\n\t\t}\n\n\t\t// Verify the session nonce. The cookie was minted by POST /setup/admin\n\t\t// and stored alongside setup_state; presenting a matching cookie is\n\t\t// proof that this verify call comes from the same browser that\n\t\t// started the admin step. Constant-time compare to avoid leaking the\n\t\t// stored value through timing.\n\t\tconst cookieNonce = cookies.get(SETUP_NONCE_COOKIE)?.value;\n\t\tif (!setupState.nonce || !cookieNonce || !secureCompare(cookieNonce, setupState.nonce)) {\n\t\t\treturn apiError(\n\t\t\t\t\"INVALID_STATE\",\n\t\t\t\t\"Setup session expired or tampered with. Please restart the admin step.\",\n\t\t\t\t400,\n\t\t\t);\n\t\t}\n\n\t\tif (!setupState.email) {\n\t\t\treturn apiError(\"INVALID_STATE\", \"Invalid setup state. Please restart setup.\", 400);\n\t\t}\n\n\t\t// Parse request body\n\t\tconst body = await parseBody(request, setupAdminVerifyBody);\n\t\tif (isParseError(body)) return body;\n\n\t\t// Get passkey config\n\t\tconst url = new URL(request.url);\n\t\tconst siteName = (await options.get<string>(\"emdash:site_title\")) ?? undefined;\n\t\tconst siteUrl = getPublicOrigin(url, emdash?.config);\n\t\tconst allowedOrigins = validateAllowedOrigins(\n\t\t\tsiteUrl,\n\t\t\tgetConfiguredAllowedOrigins(emdash?.config),\n\t\t);\n\t\tconst passkeyConfig = getPasskeyConfig(url, siteName, siteUrl, allowedOrigins);\n\n\t\t// Verify the registration response\n\t\tconst challengeStore = createChallengeStore(emdash.db);\n\n\t\tconst verified = await verifyRegistrationResponse(\n\t\t\tpasskeyConfig,\n\t\t\tbody.credential,\n\t\t\tchallengeStore,\n\t\t);\n\n\t\tconst user = await createFirstAdmin(emdash.db, {\n\t\t\temail: setupState.email,\n\t\t\tname: setupState.name ?? null,\n\t\t});\n\t\tif (!user) {\n\t\t\treturn apiError(\"ADMIN_EXISTS\", \"Admin user already exists\", 400);\n\t\t}\n\n\t\t// Register the passkey\n\t\tawait registerPasskey(adapter, user.id, verified, \"Setup passkey\");\n\n\t\t// Mark setup as complete\n\t\tawait options.set(\"emdash:setup_complete\", true);\n\n\t\t// Clean up setup state and the session nonce cookie\n\t\tawait options.delete(\"emdash:setup_state\");\n\t\tcookies.delete(SETUP_NONCE_COOKIE, { path: \"/_emdash/\" });\n\n\t\treturn apiSuccess({\n\t\t\tsuccess: true,\n\t\t\tuser: {\n\t\t\t\tid: user.id,\n\t\t\t\temail: user.email,\n\t\t\t\tname: user.name,\n\t\t\t\trole: user.role,\n\t\t\t},\n\t\t});\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to verify admin setup\", \"SETUP_VERIFY_ERROR\");\n\t}\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAa,YAAY;AAiBzB,MAAa,OAAiB,OAAO,EAAE,SAAS,SAAS,aAAa;CACrE,MAAM,EAAE,WAAW;AAEnB,KAAI,CAAC,QAAQ,GACZ,QAAO,SAAS,kBAAkB,6BAA6B,IAAI;AAGpE,KAAI;EAEH,MAAM,UAAU,IAAI,kBAAkB,OAAO,GAAG;EAChD,MAAM,gBAAgB,MAAM,QAAQ,IAAI,wBAAwB;EAChE,MAAM,aAAa,kBAAkB,QAAQ,kBAAkB;EAG/D,MAAM,UAAU,oBAAoB,OAAO,GAAG;AAG9C,MAFkB,MAAM,QAAQ,YAAY,GAE5B,GAAG;AAClB,OAAI,WACH,QAAO,SAAS,kBAAkB,0BAA0B,IAAI;AAEjE,UAAO,SAAS,gBAAgB,6BAA6B,IAAI;;EAQlE,MAAM,aAAa,MAAM,QAAQ,IAK9B,qBAAqB;AAExB,MAAI,CAAC,cAAc,WAAW,SAAS,QACtC,QAAO,SAAS,iBAAiB,8CAA8C,IAAI;EAQpF,MAAM,cAAc,QAAQ,IAAI,mBAAmB,EAAE;AACrD,MAAI,CAAC,WAAW,SAAS,CAAC,eAAe,CAAC,cAAc,aAAa,WAAW,MAAM,CACrF,QAAO,SACN,iBACA,0EACA,IACA;AAGF,MAAI,CAAC,WAAW,MACf,QAAO,SAAS,iBAAiB,8CAA8C,IAAI;EAIpF,MAAM,OAAO,MAAM,UAAU,SAAS,qBAAqB;AAC3D,MAAI,aAAa,KAAK,CAAE,QAAO;EAG/B,MAAM,MAAM,IAAI,IAAI,QAAQ,IAAI;EAChC,MAAM,WAAY,MAAM,QAAQ,IAAY,oBAAoB,IAAK;EACrE,MAAM,UAAU,gBAAgB,KAAK,QAAQ,OAAO;EAKpD,MAAM,gBAAgB,iBAAiB,KAAK,UAAU,SAJ/B,uBACtB,SACA,4BAA4B,QAAQ,OAAO,CAC3C,CAC6E;EAG9E,MAAM,iBAAiB,qBAAqB,OAAO,GAAG;EAEtD,MAAM,WAAW,MAAM,2BACtB,eACA,KAAK,YACL,eACA;EAED,MAAM,OAAO,MAAM,iBAAiB,OAAO,IAAI;GAC9C,OAAO,WAAW;GAClB,MAAM,WAAW,QAAQ;GACzB,CAAC;AACF,MAAI,CAAC,KACJ,QAAO,SAAS,gBAAgB,6BAA6B,IAAI;AAIlE,QAAM,gBAAgB,SAAS,KAAK,IAAI,UAAU,gBAAgB;AAGlE,QAAM,QAAQ,IAAI,yBAAyB,KAAK;AAGhD,QAAM,QAAQ,OAAO,qBAAqB;AAC1C,UAAQ,OAAO,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEzD,SAAO,WAAW;GACjB,SAAS;GACT,MAAM;IACL,IAAI,KAAK;IACT,OAAO,KAAK;IACZ,MAAM,KAAK;IACX,MAAM,KAAK;IACX;GACD,CAAC;UACM,OAAO;AACf,SAAO,YAAY,OAAO,gCAAgC,qBAAqB"}
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
import "../../../../config-CvmjJcVw.mjs";
|
|
2
2
|
import { t as OptionsRepository } from "../../../../options-DhrI7eMv.mjs";
|
|
3
3
|
import "../../../../base64-DvnNgP7e.mjs";
|
|
4
|
-
import "../../../../
|
|
5
|
-
import "../../../../
|
|
6
|
-
import "../../../../
|
|
7
|
-
import "../../../../
|
|
8
|
-
import "../../../../
|
|
9
|
-
import
|
|
10
|
-
import { n as
|
|
11
|
-
import "../../../../
|
|
12
|
-
import "../../../../
|
|
13
|
-
import "../../../../
|
|
14
|
-
import "../../../../
|
|
15
|
-
import
|
|
16
|
-
import "../../../../
|
|
17
|
-
import "../../../../
|
|
4
|
+
import "../../../../url-Dn3IStq8.mjs";
|
|
5
|
+
import "../../../../types-j6MBDjlZ.mjs";
|
|
6
|
+
import "../../../../errors-CjXd1LgH.mjs";
|
|
7
|
+
import "../../../../errors-CNvATh_7.mjs";
|
|
8
|
+
import "../../../../settings-B0zQj_Tj.mjs";
|
|
9
|
+
import "../../../../site-settings-AYFvhwQn.mjs";
|
|
10
|
+
import { n as apiSuccess, r as handleError, t as apiError } from "../../../../error-CEdm_AWU.mjs";
|
|
11
|
+
import { n as parseBody, t as isParseError } from "../../../../parse-Gt2l4Sld.mjs";
|
|
12
|
+
import "../../../../redirects-D4EWeXAo.mjs";
|
|
13
|
+
import "../../../../entry-lock-PP1JCXBB.mjs";
|
|
14
|
+
import "../../../../media-D1z_jisb.mjs";
|
|
15
|
+
import "../../../../comments-BRtp992B.mjs";
|
|
16
|
+
import { c as setupAdminBody } from "../../../../byline-fields-DHJs0Mja.mjs";
|
|
17
|
+
import "../../../../menus-BQKqf0Up.mjs";
|
|
18
|
+
import "../../../../status-D39Fpy8R.mjs";
|
|
18
19
|
import "../../../../api/schemas/index.mjs";
|
|
19
|
-
import { r as getPublicOrigin } from "../../../../public-url-
|
|
20
|
-
import { n as createChallengeStore } from "../../../../challenge-store-
|
|
21
|
-
import { t as getPasskeyConfig } from "../../../../passkey-config-
|
|
22
|
-
import { n as SETUP_NONCE_MAX_AGE_SECONDS, t as SETUP_NONCE_COOKIE } from "../../../../setup-nonce-
|
|
20
|
+
import { r as getPublicOrigin } from "../../../../public-url-B5a0QAh6.mjs";
|
|
21
|
+
import { n as createChallengeStore } from "../../../../challenge-store-CxZxPqaw.mjs";
|
|
22
|
+
import { t as getPasskeyConfig } from "../../../../passkey-config-CkQsrcU-.mjs";
|
|
23
|
+
import { n as SETUP_NONCE_MAX_AGE_SECONDS, t as SETUP_NONCE_COOKIE } from "../../../../setup-nonce-CAQoY5PC.mjs";
|
|
23
24
|
import { generateToken } from "@emdash-cms/auth";
|
|
24
25
|
import { createKyselyAdapter } from "@emdash-cms/auth/adapters/kysely";
|
|
25
26
|
import { generateRegistrationOptions } from "@emdash-cms/auth/passkey";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.mjs","names":[],"sources":["../../../../../src/astro/routes/api/setup/admin.ts"],"sourcesContent":["/**\n * POST /_emdash/api/setup/admin\n *\n * Step 3 of setup: Start admin creation by returning passkey registration options\n */\n\nimport type { APIRoute } from \"astro\";\n\nexport const prerender = false;\n\nimport { generateToken } from \"@emdash-cms/auth\";\nimport { createKyselyAdapter } from \"@emdash-cms/auth/adapters/kysely\";\nimport { generateRegistrationOptions } from \"@emdash-cms/auth/passkey\";\n\nimport { apiError, apiSuccess, handleError } from \"#api/error.js\";\nimport { isParseError, parseBody } from \"#api/parse.js\";\nimport { getPublicOrigin } from \"#api/public-url.js\";\nimport { setupAdminBody } from \"#api/schemas.js\";\nimport { createChallengeStore } from \"#auth/challenge-store.js\";\nimport { getPasskeyConfig } from \"#auth/passkey-config.js\";\nimport { SETUP_NONCE_COOKIE, SETUP_NONCE_MAX_AGE_SECONDS } from \"#auth/setup-nonce.js\";\nimport { OptionsRepository } from \"#db/repositories/options.js\";\n\nexport const POST: APIRoute = async ({ cookies, request, locals }) => {\n\tconst { emdash } = locals;\n\n\tif (!emdash?.db) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\ttry {\n\t\t// Check if setup is already complete\n\t\tconst options = new OptionsRepository(emdash.db);\n\t\tconst setupComplete = await options.get(\"emdash:setup_complete\");\n\t\tconst isComplete = setupComplete === true || setupComplete === \"true\";\n\n\t\t// Check if any users exist\n\t\tconst adapter = createKyselyAdapter(emdash.db);\n\t\tconst userCount = await adapter.countUsers();\n\n\t\tif (userCount > 0) {\n\t\t\tif (isComplete) {\n\t\t\t\treturn apiError(\"SETUP_COMPLETE\", \"Setup already complete\", 400);\n\t\t\t}\n\t\t\treturn apiError(\"ADMIN_EXISTS\", \"Admin user already exists\", 400);\n\t\t}\n\n\t\t// `setup_complete` with ZERO users is a recoverable half-state (a\n\t\t// wiped/sanitised users table — e.g. a DB copied between\n\t\t// environments). /api/setup/status already resumes the wizard at\n\t\t// the admin step for exactly this state, so admin creation must be\n\t\t// allowed here too — rejecting on the stale flag alone leaves the\n\t\t// instance with no UI path to an admin account.\n\n\t\t// Parse request body\n\t\tconst body = await parseBody(request, setupAdminBody);\n\t\tif (isParseError(body)) return body;\n\n\t\t// Preserve title/tagline from step 1 by reading existing setup state\n\t\t// before we overwrite it below.\n\t\tconst existingState = await options.get<Record<string, unknown>>(\"emdash:setup_state\");\n\n\t\t// Mint a fresh session nonce. This binds the follow-up\n\t\t// /setup/admin/verify call to the same browser that made this\n\t\t// request, so an unauthenticated attacker on another host cannot\n\t\t// substitute their own email into the setup state during the\n\t\t// setup window. Rotates on every call so a legitimate retry\n\t\t// always gets a working session.\n\t\tconst nonce = generateToken();\n\n\t\t// Get passkey config\n\t\tconst url = new URL(request.url);\n\t\tconst siteName = (await options.get<string>(\"emdash:site_title\")) ?? undefined;\n\t\tconst siteUrl = getPublicOrigin(url, emdash?.config);\n\t\tconst passkeyConfig = getPasskeyConfig(url, siteName, siteUrl);\n\n\t\t// Generate registration options\n\t\tconst challengeStore = createChallengeStore(emdash.db);\n\n\t\t// Create a temporary user object for registration options\n\t\t// (not persisted until passkey is verified)\n\t\tconst tempUser = {\n\t\t\tid: `setup-${Date.now()}`, // Temporary ID\n\t\t\temail: body.email.toLowerCase(),\n\t\t\tname: body.name || null,\n\t\t};\n\n\t\tconst registrationOptions = await generateRegistrationOptions(\n\t\t\tpasskeyConfig,\n\t\t\ttempUser,\n\t\t\t[], // No existing credentials\n\t\t\tchallengeStore,\n\t\t);\n\n\t\t// Store the nonce alongside the rest of the setup state, preserving\n\t\t// title/tagline from step 1. The verify endpoint will constant-time\n\t\t// compare the nonce with the incoming cookie.\n\t\tawait options.set(\"emdash:setup_state\", {\n\t\t\t...existingState,\n\t\t\tstep: \"admin\",\n\t\t\temail: body.email.toLowerCase(),\n\t\t\tname: body.name || null,\n\t\t\ttempUserId: tempUser.id,\n\t\t\tnonce,\n\t\t});\n\n\t\t// HttpOnly + SameSite=Strict + path-scoped. The cookie must not be\n\t\t// accessible to JS (nothing in the admin UI needs to read it) and\n\t\t// must not be sent on cross-site navigations. The /_emdash/ path\n\t\t// scope keeps it away from user-authored frontend code.\n\t\t//\n\t\t// Derive `secure` from the public origin, not the internal request\n\t\t// URL. Behind a TLS-terminating reverse proxy the internal hop is\n\t\t// often `http:` while the browser-facing origin is `https:` —\n\t\t// using `url.protocol` there would drop the Secure flag on a\n\t\t// sensitive cookie over the public HTTPS connection.\n\t\tconst publicOrigin = new URL(siteUrl);\n\t\tcookies.set(SETUP_NONCE_COOKIE, nonce, {\n\t\t\tpath: \"/_emdash/\",\n\t\t\thttpOnly: true,\n\t\t\tsameSite: \"strict\",\n\t\t\tsecure: publicOrigin.protocol === \"https:\",\n\t\t\tmaxAge: SETUP_NONCE_MAX_AGE_SECONDS,\n\t\t});\n\n\t\treturn apiSuccess({\n\t\t\tsuccess: true,\n\t\t\toptions: registrationOptions,\n\t\t});\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to create admin\", \"SETUP_ADMIN_ERROR\");\n\t}\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"admin.mjs","names":[],"sources":["../../../../../src/astro/routes/api/setup/admin.ts"],"sourcesContent":["/**\n * POST /_emdash/api/setup/admin\n *\n * Step 3 of setup: Start admin creation by returning passkey registration options\n */\n\nimport type { APIRoute } from \"astro\";\n\nexport const prerender = false;\n\nimport { generateToken } from \"@emdash-cms/auth\";\nimport { createKyselyAdapter } from \"@emdash-cms/auth/adapters/kysely\";\nimport { generateRegistrationOptions } from \"@emdash-cms/auth/passkey\";\n\nimport { apiError, apiSuccess, handleError } from \"#api/error.js\";\nimport { isParseError, parseBody } from \"#api/parse.js\";\nimport { getPublicOrigin } from \"#api/public-url.js\";\nimport { setupAdminBody } from \"#api/schemas.js\";\nimport { createChallengeStore } from \"#auth/challenge-store.js\";\nimport { getPasskeyConfig } from \"#auth/passkey-config.js\";\nimport { SETUP_NONCE_COOKIE, SETUP_NONCE_MAX_AGE_SECONDS } from \"#auth/setup-nonce.js\";\nimport { OptionsRepository } from \"#db/repositories/options.js\";\n\nexport const POST: APIRoute = async ({ cookies, request, locals }) => {\n\tconst { emdash } = locals;\n\n\tif (!emdash?.db) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\ttry {\n\t\t// Check if setup is already complete\n\t\tconst options = new OptionsRepository(emdash.db);\n\t\tconst setupComplete = await options.get(\"emdash:setup_complete\");\n\t\tconst isComplete = setupComplete === true || setupComplete === \"true\";\n\n\t\t// Check if any users exist\n\t\tconst adapter = createKyselyAdapter(emdash.db);\n\t\tconst userCount = await adapter.countUsers();\n\n\t\tif (userCount > 0) {\n\t\t\tif (isComplete) {\n\t\t\t\treturn apiError(\"SETUP_COMPLETE\", \"Setup already complete\", 400);\n\t\t\t}\n\t\t\treturn apiError(\"ADMIN_EXISTS\", \"Admin user already exists\", 400);\n\t\t}\n\n\t\t// `setup_complete` with ZERO users is a recoverable half-state (a\n\t\t// wiped/sanitised users table — e.g. a DB copied between\n\t\t// environments). /api/setup/status already resumes the wizard at\n\t\t// the admin step for exactly this state, so admin creation must be\n\t\t// allowed here too — rejecting on the stale flag alone leaves the\n\t\t// instance with no UI path to an admin account.\n\n\t\t// Parse request body\n\t\tconst body = await parseBody(request, setupAdminBody);\n\t\tif (isParseError(body)) return body;\n\n\t\t// Preserve title/tagline from step 1 by reading existing setup state\n\t\t// before we overwrite it below.\n\t\tconst existingState = await options.get<Record<string, unknown>>(\"emdash:setup_state\");\n\n\t\t// Mint a fresh session nonce. This binds the follow-up\n\t\t// /setup/admin/verify call to the same browser that made this\n\t\t// request, so an unauthenticated attacker on another host cannot\n\t\t// substitute their own email into the setup state during the\n\t\t// setup window. Rotates on every call so a legitimate retry\n\t\t// always gets a working session.\n\t\tconst nonce = generateToken();\n\n\t\t// Get passkey config\n\t\tconst url = new URL(request.url);\n\t\tconst siteName = (await options.get<string>(\"emdash:site_title\")) ?? undefined;\n\t\tconst siteUrl = getPublicOrigin(url, emdash?.config);\n\t\tconst passkeyConfig = getPasskeyConfig(url, siteName, siteUrl);\n\n\t\t// Generate registration options\n\t\tconst challengeStore = createChallengeStore(emdash.db);\n\n\t\t// Create a temporary user object for registration options\n\t\t// (not persisted until passkey is verified)\n\t\tconst tempUser = {\n\t\t\tid: `setup-${Date.now()}`, // Temporary ID\n\t\t\temail: body.email.toLowerCase(),\n\t\t\tname: body.name || null,\n\t\t};\n\n\t\tconst registrationOptions = await generateRegistrationOptions(\n\t\t\tpasskeyConfig,\n\t\t\ttempUser,\n\t\t\t[], // No existing credentials\n\t\t\tchallengeStore,\n\t\t);\n\n\t\t// Store the nonce alongside the rest of the setup state, preserving\n\t\t// title/tagline from step 1. The verify endpoint will constant-time\n\t\t// compare the nonce with the incoming cookie.\n\t\tawait options.set(\"emdash:setup_state\", {\n\t\t\t...existingState,\n\t\t\tstep: \"admin\",\n\t\t\temail: body.email.toLowerCase(),\n\t\t\tname: body.name || null,\n\t\t\ttempUserId: tempUser.id,\n\t\t\tnonce,\n\t\t});\n\n\t\t// HttpOnly + SameSite=Strict + path-scoped. The cookie must not be\n\t\t// accessible to JS (nothing in the admin UI needs to read it) and\n\t\t// must not be sent on cross-site navigations. The /_emdash/ path\n\t\t// scope keeps it away from user-authored frontend code.\n\t\t//\n\t\t// Derive `secure` from the public origin, not the internal request\n\t\t// URL. Behind a TLS-terminating reverse proxy the internal hop is\n\t\t// often `http:` while the browser-facing origin is `https:` —\n\t\t// using `url.protocol` there would drop the Secure flag on a\n\t\t// sensitive cookie over the public HTTPS connection.\n\t\tconst publicOrigin = new URL(siteUrl);\n\t\tcookies.set(SETUP_NONCE_COOKIE, nonce, {\n\t\t\tpath: \"/_emdash/\",\n\t\t\thttpOnly: true,\n\t\t\tsameSite: \"strict\",\n\t\t\tsecure: publicOrigin.protocol === \"https:\",\n\t\t\tmaxAge: SETUP_NONCE_MAX_AGE_SECONDS,\n\t\t});\n\n\t\treturn apiSuccess({\n\t\t\tsuccess: true,\n\t\t\toptions: registrationOptions,\n\t\t});\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to create admin\", \"SETUP_ADMIN_ERROR\");\n\t}\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAa,YAAY;AAezB,MAAa,OAAiB,OAAO,EAAE,SAAS,SAAS,aAAa;CACrE,MAAM,EAAE,WAAW;AAEnB,KAAI,CAAC,QAAQ,GACZ,QAAO,SAAS,kBAAkB,6BAA6B,IAAI;AAGpE,KAAI;EAEH,MAAM,UAAU,IAAI,kBAAkB,OAAO,GAAG;EAChD,MAAM,gBAAgB,MAAM,QAAQ,IAAI,wBAAwB;EAChE,MAAM,aAAa,kBAAkB,QAAQ,kBAAkB;AAM/D,MAFkB,MADF,oBAAoB,OAAO,GAAG,CACd,YAAY,GAE5B,GAAG;AAClB,OAAI,WACH,QAAO,SAAS,kBAAkB,0BAA0B,IAAI;AAEjE,UAAO,SAAS,gBAAgB,6BAA6B,IAAI;;EAWlE,MAAM,OAAO,MAAM,UAAU,SAAS,eAAe;AACrD,MAAI,aAAa,KAAK,CAAE,QAAO;EAI/B,MAAM,gBAAgB,MAAM,QAAQ,IAA6B,qBAAqB;EAQtF,MAAM,QAAQ,eAAe;EAG7B,MAAM,MAAM,IAAI,IAAI,QAAQ,IAAI;EAChC,MAAM,WAAY,MAAM,QAAQ,IAAY,oBAAoB,IAAK;EACrE,MAAM,UAAU,gBAAgB,KAAK,QAAQ,OAAO;EACpD,MAAM,gBAAgB,iBAAiB,KAAK,UAAU,QAAQ;EAG9D,MAAM,iBAAiB,qBAAqB,OAAO,GAAG;EAItD,MAAM,WAAW;GAChB,IAAI,SAAS,KAAK,KAAK;GACvB,OAAO,KAAK,MAAM,aAAa;GAC/B,MAAM,KAAK,QAAQ;GACnB;EAED,MAAM,sBAAsB,MAAM,4BACjC,eACA,UACA,EAAE,EACF,eACA;AAKD,QAAM,QAAQ,IAAI,sBAAsB;GACvC,GAAG;GACH,MAAM;GACN,OAAO,KAAK,MAAM,aAAa;GAC/B,MAAM,KAAK,QAAQ;GACnB,YAAY,SAAS;GACrB;GACA,CAAC;EAYF,MAAM,eAAe,IAAI,IAAI,QAAQ;AACrC,UAAQ,IAAI,oBAAoB,OAAO;GACtC,MAAM;GACN,UAAU;GACV,UAAU;GACV,QAAQ,aAAa,aAAa;GAClC,QAAQ;GACR,CAAC;AAEF,SAAO,WAAW;GACjB,SAAS;GACT,SAAS;GACT,CAAC;UACM,OAAO;AACf,SAAO,YAAY,OAAO,0BAA0B,oBAAoB"}
|
|
@@ -5,53 +5,54 @@ import "../../../../after-PcEvMY_6.mjs";
|
|
|
5
5
|
import { t as OptionsRepository } from "../../../../options-DhrI7eMv.mjs";
|
|
6
6
|
import "../../../../base64-DvnNgP7e.mjs";
|
|
7
7
|
import "../../../../secrets-CIi0nFiR.mjs";
|
|
8
|
-
import "../../../../content-
|
|
9
|
-
import "../../../../object-cache-
|
|
8
|
+
import "../../../../content-RzEXY3QX.mjs";
|
|
9
|
+
import "../../../../object-cache-Bo6DGaC9.mjs";
|
|
10
10
|
import "../../../../slugify-T5GHH42D.mjs";
|
|
11
|
-
import "../../../../
|
|
12
|
-
import "../../../../
|
|
13
|
-
import "../../../../
|
|
14
|
-
import "../../../../
|
|
15
|
-
import "../../../../
|
|
16
|
-
import "../../../../
|
|
17
|
-
import "../../../../
|
|
18
|
-
import "../../../../
|
|
19
|
-
import "../../../../
|
|
20
|
-
import "../../../../
|
|
21
|
-
import "../../../../
|
|
22
|
-
import "../../../../
|
|
23
|
-
import "../../../../
|
|
24
|
-
import "../../../../
|
|
25
|
-
import "../../../../
|
|
26
|
-
import "../../../../
|
|
27
|
-
import "../../../../
|
|
28
|
-
import "../../../../
|
|
29
|
-
import "../../../../
|
|
30
|
-
import "../../../../
|
|
31
|
-
import "../../../../
|
|
32
|
-
import "../../../../
|
|
33
|
-
import "../../../../
|
|
34
|
-
import "../../../../
|
|
35
|
-
import "../../../../
|
|
36
|
-
import "../../../../
|
|
37
|
-
import "../../../../
|
|
38
|
-
import "../../../../
|
|
39
|
-
import "../../../../
|
|
40
|
-
import
|
|
41
|
-
import "../../../../
|
|
42
|
-
import "../../../../
|
|
43
|
-
import "../../../../
|
|
44
|
-
import "../../../../
|
|
45
|
-
import
|
|
46
|
-
import { t as
|
|
47
|
-
import "../../../../
|
|
48
|
-
import
|
|
49
|
-
import {
|
|
50
|
-
import {
|
|
51
|
-
import {
|
|
52
|
-
import "../../../../
|
|
53
|
-
import
|
|
54
|
-
import { t as
|
|
11
|
+
import "../../../../request-cache-C4CIo5ad.mjs";
|
|
12
|
+
import "../../../../url-Dn3IStq8.mjs";
|
|
13
|
+
import "../../../../types-j6MBDjlZ.mjs";
|
|
14
|
+
import "../../../../revision-CGkQA0e5.mjs";
|
|
15
|
+
import "../../../../media-CputjGE1.mjs";
|
|
16
|
+
import "../../../../taxonomy-BesdHIwi.mjs";
|
|
17
|
+
import "../../../../resolve-D-kqyKns.mjs";
|
|
18
|
+
import "../../../../redirect-BvFKh8Sz.mjs";
|
|
19
|
+
import "../../../../byline-registry-dvt4N3xV.mjs";
|
|
20
|
+
import "../../../../field-defs-cache-DEkFYCDE.mjs";
|
|
21
|
+
import "../../../../byline-02tu_Uc-.mjs";
|
|
22
|
+
import "../../../../staged-Bw5eHbKS.mjs";
|
|
23
|
+
import "../../../../dist-Cfu8mMBs.mjs";
|
|
24
|
+
import "../../../../fts-manager-DU03MxWu.mjs";
|
|
25
|
+
import "../../../../loader-B_bcoE1h.mjs";
|
|
26
|
+
import "../../../../collection-slugs-cache-BNRAPNiu.mjs";
|
|
27
|
+
import "../../../../capture-triggers-CdZfvHtF.mjs";
|
|
28
|
+
import "../../../../activation-DDuqAat2.mjs";
|
|
29
|
+
import "../../../../collection-deletion-JecE26cS.mjs";
|
|
30
|
+
import "../../../../registry-CtHRqVe-.mjs";
|
|
31
|
+
import "../../../../hash-CY4QdeMJ.mjs";
|
|
32
|
+
import "../../../../zod-generator-DnfG5sGQ.mjs";
|
|
33
|
+
import "../../../../errors-CjXd1LgH.mjs";
|
|
34
|
+
import "../../../../canonical-CAecl1UQ.mjs";
|
|
35
|
+
import "../../../../digest-DiYAoZpf.mjs";
|
|
36
|
+
import "../../../../block-values-BrTrtA-v.mjs";
|
|
37
|
+
import "../../../../query-DC3bv__4.mjs";
|
|
38
|
+
import "../../../../schema-BZPj3kwZ.mjs";
|
|
39
|
+
import "../../../../relations-CVI2nbrn.mjs";
|
|
40
|
+
import "../../../../errors-CNvATh_7.mjs";
|
|
41
|
+
import "../../../../media-usage-work-BlMjwPg8.mjs";
|
|
42
|
+
import { n as repairContentMediaUsageCollection } from "../../../../content-repair-B-k5JrVN.mjs";
|
|
43
|
+
import "../../../../schema-Berj5VQx.mjs";
|
|
44
|
+
import "../../../../settings-BbVRRGDp.mjs";
|
|
45
|
+
import "../../../../ssrf-DsmvZB80.mjs";
|
|
46
|
+
import { n as apiSuccess, r as handleError, t as apiError } from "../../../../error-CEdm_AWU.mjs";
|
|
47
|
+
import { t as applySeed } from "../../../../apply-C1kq5l7p.mjs";
|
|
48
|
+
import "../../../../ssrf-tA45vIPX.mjs";
|
|
49
|
+
import { n as validateSeed } from "../../../../validate-WkjGwBSO.mjs";
|
|
50
|
+
import { t as loadSeed } from "../../../../load-dHcR5yh9.mjs";
|
|
51
|
+
import { r as getPublicOrigin } from "../../../../public-url-B5a0QAh6.mjs";
|
|
52
|
+
import { t as escapeHtml } from "../../../../escape-nJW7dR0s.mjs";
|
|
53
|
+
import "../../../../api-tokens-BLz2MtQs.mjs";
|
|
54
|
+
import { n as handleApiTokenCreate, t as deleteApiTokensByName } from "../../../../api-tokens-P3mAaQgr.mjs";
|
|
55
|
+
import { t as isSafeRedirect } from "../../../../redirect-D1AmADlk.mjs";
|
|
55
56
|
import { ulid } from "ulidx";
|
|
56
57
|
|
|
57
58
|
//#region src/astro/routes/api/setup/dev-bypass.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-bypass.mjs","names":[],"sources":["../../../../../src/astro/routes/api/setup/dev-bypass.ts"],"sourcesContent":["/**\n * POST /_emdash/api/setup/dev-bypass\n * GET /_emdash/api/setup/dev-bypass\n *\n * Development-only endpoint to bypass the setup wizard.\n * Creates a dev admin user and marks setup complete after runtime initialization.\n * Newly applied sample content has its Media Usage index prepared before redirecting.\n *\n * ONLY available when import.meta.env.DEV is true.\n *\n * Usage:\n * - GET with redirect: /_emdash/api/setup/dev-bypass?redirect=/_emdash/admin\n * - POST for API: Returns JSON with setup info\n * - ?content=0 (or ?content=false): apply schema/structure only, skipping\n * sample content entries, bylines, and taxonomy terms\n *\n * For agent/browser testing, navigate to:\n * /_emdash/api/setup/dev-bypass?redirect=/_emdash/admin\n */\n\nimport type { APIRoute } from \"astro\";\n\nexport const prerender = false;\n\nimport { ulid } from \"ulidx\";\n\nimport { apiError, apiSuccess, handleError } from \"#api/error.js\";\nimport { escapeHtml } from \"#api/escape.js\";\nimport { deleteApiTokensByName, handleApiTokenCreate } from \"#api/handlers/api-tokens.js\";\nimport { getPublicOrigin } from \"#api/public-url.js\";\nimport { isSafeRedirect } from \"#api/redirect.js\";\nimport { OptionsRepository } from \"#db/repositories/options.js\";\nimport { repairContentMediaUsageCollection } from \"#media/usage/content-repair.js\";\nimport { applySeed } from \"#seed/apply.js\";\nimport { loadSeed } from \"#seed/load.js\";\nimport { validateSeed } from \"#seed/validate.js\";\n\n// RBAC role levels (matching @emdash-cms/auth)\nconst ROLE_ADMIN = 50;\n\nconst DEV_USER_EMAIL = \"dev@emdash.local\";\nconst DEV_USER_NAME = \"Dev Admin\";\nconst DEV_SITE_TITLE = \"EmDash Dev Site\";\n\nasync function handleDevBypass(context: Parameters<APIRoute>[0]): Promise<Response> {\n\t// CRITICAL: Only allow in development mode\n\tif (!import.meta.env.DEV) {\n\t\treturn apiError(\"FORBIDDEN\", \"Dev bypass is only available in development mode\", 403);\n\t}\n\n\tconst { locals, url, session } = context;\n\tconst { emdash } = locals;\n\n\tif (!emdash?.db) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\ttry {\n\t\t// Apply seed (user seed or built-in default). `?content=0` (or `false`)\n\t\t// applies schema/structure only — no sample content, bylines, or terms.\n\t\tconst contentParam = url.searchParams.get(\"content\");\n\t\tconst includeContent = contentParam !== \"0\" && contentParam !== \"false\";\n\t\tconst seed = await loadSeed();\n\t\tconst validation = validateSeed(seed);\n\t\tif (validation.valid) {\n\t\t\tconst seedResult = await applySeed(emdash.db, seed, {\n\t\t\t\tincludeContent,\n\t\t\t\tonConflict: \"skip\",\n\t\t\t\tstorage: emdash.storage ?? undefined,\n\t\t\t});\n\t\t\tconsole.log(\n\t\t\t\t`[setup-dev-bypass] Seed applied: ${seedResult.collections.created} collections, ${seedResult.fields.created} fields`,\n\t\t\t);\n\t\t\tif (includeContent && seedResult.content.created + seedResult.content.updated > 0) {\n\t\t\t\tfor (const collectionSlug of Object.keys(seed.content ?? {})) {\n\t\t\t\t\tconst repair = await repairContentMediaUsageCollection(emdash.db, {\n\t\t\t\t\t\tcollectionSlug,\n\t\t\t\t\t});\n\t\t\t\t\tif (repair.status !== \"complete\") {\n\t\t\t\t\t\tthrow new Error(`Seeded Media Usage indexing failed for ${collectionSlug}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst options = new OptionsRepository(emdash.db);\n\n\t\t// Find or create dev user (direct DB access to avoid @emdash-cms/auth import issues in dev)\n\t\tconst existingUser = await emdash.db\n\t\t\t.selectFrom(\"users\")\n\t\t\t.selectAll()\n\t\t\t.where(\"email\", \"=\", DEV_USER_EMAIL)\n\t\t\t.executeTakeFirst();\n\n\t\tlet user: { id: string; email: string; name: string; role: number };\n\t\tlet userCreated = false;\n\n\t\tif (!existingUser) {\n\t\t\tconst now = new Date().toISOString();\n\t\t\tconst newUser = {\n\t\t\t\tid: ulid(),\n\t\t\t\temail: DEV_USER_EMAIL,\n\t\t\t\tname: DEV_USER_NAME,\n\t\t\t\trole: ROLE_ADMIN,\n\t\t\t\temail_verified: 1,\n\t\t\t\tcreated_at: now,\n\t\t\t\tupdated_at: now,\n\t\t\t};\n\n\t\t\tawait emdash.db.insertInto(\"users\").values(newUser).execute();\n\n\t\t\tuser = {\n\t\t\t\tid: newUser.id,\n\t\t\t\temail: newUser.email,\n\t\t\t\tname: newUser.name,\n\t\t\t\trole: newUser.role,\n\t\t\t};\n\t\t\tuserCreated = true;\n\t\t\tconsole.log(\"[setup-dev-bypass] Created dev admin user:\", user.email);\n\t\t} else {\n\t\t\tuser = {\n\t\t\t\tid: existingUser.id,\n\t\t\t\temail: existingUser.email,\n\t\t\t\tname: existingUser.name || DEV_USER_NAME,\n\t\t\t\trole: existingUser.role,\n\t\t\t};\n\t\t}\n\n\t\t// Set site title if not already set\n\t\tconst existingTitle = await options.get(\"emdash:site_title\");\n\t\tif (!existingTitle) {\n\t\t\tawait options.set(\"emdash:site_title\", DEV_SITE_TITLE);\n\t\t}\n\n\t\t// Store canonical site URL (used by magic-link/recovery emails)\n\t\tawait options.set(\"emdash:site_url\", getPublicOrigin(url, emdash?.config));\n\n\t\t// Mark setup complete\n\t\tawait options.set(\"emdash:setup_complete\", true);\n\n\t\t// Create session\n\t\tif (session) {\n\t\t\tsession.set(\"user\", { id: user.id });\n\t\t}\n\n\t\t// Optionally create a PAT token (?token=1) for headless/CLI testing.\n\t\tlet token: string | undefined;\n\t\tif (url.searchParams.has(\"token\")) {\n\t\t\t// Idempotent by name: a prior reset can leave a stale dev-bypass-token,\n\t\t\t// and the raw token is only available at creation, so drop any existing\n\t\t\t// one and mint a fresh, usable PAT rather than accumulating duplicates.\n\t\t\tawait deleteApiTokensByName(emdash.db, user.id, \"dev-bypass-token\");\n\t\t\tconst result = await handleApiTokenCreate(emdash.db, user.id, {\n\t\t\t\tname: \"dev-bypass-token\",\n\t\t\t\tscopes: [\n\t\t\t\t\t\"content:read\",\n\t\t\t\t\t\"content:write\",\n\t\t\t\t\t\"media:read\",\n\t\t\t\t\t\"media:write\",\n\t\t\t\t\t\"schema:read\",\n\t\t\t\t\t\"schema:write\",\n\t\t\t\t\t\"admin\",\n\t\t\t\t],\n\t\t\t});\n\t\t\tif (result.success) {\n\t\t\t\ttoken = result.data.token;\n\t\t\t}\n\t\t}\n\n\t\t// Check for redirect parameter\n\t\tconst redirect = url.searchParams.get(\"redirect\");\n\n\t\tif (redirect) {\n\t\t\t// Validate redirect is a safe local path (prevent open redirect via //evil.com or /\\evil.com)\n\t\t\tif (!isSafeRedirect(redirect)) {\n\t\t\t\treturn apiError(\"INVALID_REDIRECT\", \"Redirect must be a local path\", 400);\n\t\t\t}\n\n\t\t\t// Return an HTML page with meta-refresh redirect\n\t\t\t// This ensures the session is fully saved before redirect\n\t\t\tconst safeRedirect = escapeHtml(redirect);\n\t\t\tconst html = `<!DOCTYPE html>\n<html>\n<head>\n\t<meta http-equiv=\"refresh\" content=\"0;url=${safeRedirect}\">\n</head>\n<body>Redirecting...</body>\n</html>`;\n\t\t\treturn new Response(html, {\n\t\t\t\tstatus: 200,\n\t\t\t\theaders: { \"Content-Type\": \"text/html\" },\n\t\t\t});\n\t\t}\n\n\t\t// Return JSON response\n\t\treturn apiSuccess({\n\t\t\tsuccess: true,\n\t\t\tmessage: \"Dev setup complete\",\n\t\t\tmigrations: [],\n\t\t\tuserCreated,\n\t\t\tuser: {\n\t\t\t\tid: user.id,\n\t\t\t\temail: user.email,\n\t\t\t\tname: user.name,\n\t\t\t\trole: user.role,\n\t\t\t},\n\t\t\t...(token ? { token } : {}),\n\t\t});\n\t} catch (error) {\n\t\treturn handleError(error, \"Dev bypass failed\", \"DEV_BYPASS_ERROR\");\n\t}\n}\n\n// Support both GET and POST\nexport const GET: APIRoute = handleDevBypass;\nexport const POST: APIRoute = handleDevBypass;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev-bypass.mjs","names":[],"sources":["../../../../../src/astro/routes/api/setup/dev-bypass.ts"],"sourcesContent":["/**\n * POST /_emdash/api/setup/dev-bypass\n * GET /_emdash/api/setup/dev-bypass\n *\n * Development-only endpoint to bypass the setup wizard.\n * Creates a dev admin user and marks setup complete after runtime initialization.\n * Newly applied sample content has its Media Usage index prepared before redirecting.\n *\n * ONLY available when import.meta.env.DEV is true.\n *\n * Usage:\n * - GET with redirect: /_emdash/api/setup/dev-bypass?redirect=/_emdash/admin\n * - POST for API: Returns JSON with setup info\n * - ?content=0 (or ?content=false): apply schema/structure only, skipping\n * sample content entries, bylines, and taxonomy terms\n *\n * For agent/browser testing, navigate to:\n * /_emdash/api/setup/dev-bypass?redirect=/_emdash/admin\n */\n\nimport type { APIRoute } from \"astro\";\n\nexport const prerender = false;\n\nimport { ulid } from \"ulidx\";\n\nimport { apiError, apiSuccess, handleError } from \"#api/error.js\";\nimport { escapeHtml } from \"#api/escape.js\";\nimport { deleteApiTokensByName, handleApiTokenCreate } from \"#api/handlers/api-tokens.js\";\nimport { getPublicOrigin } from \"#api/public-url.js\";\nimport { isSafeRedirect } from \"#api/redirect.js\";\nimport { OptionsRepository } from \"#db/repositories/options.js\";\nimport { repairContentMediaUsageCollection } from \"#media/usage/content-repair.js\";\nimport { applySeed } from \"#seed/apply.js\";\nimport { loadSeed } from \"#seed/load.js\";\nimport { validateSeed } from \"#seed/validate.js\";\n\n// RBAC role levels (matching @emdash-cms/auth)\nconst ROLE_ADMIN = 50;\n\nconst DEV_USER_EMAIL = \"dev@emdash.local\";\nconst DEV_USER_NAME = \"Dev Admin\";\nconst DEV_SITE_TITLE = \"EmDash Dev Site\";\n\nasync function handleDevBypass(context: Parameters<APIRoute>[0]): Promise<Response> {\n\t// CRITICAL: Only allow in development mode\n\tif (!import.meta.env.DEV) {\n\t\treturn apiError(\"FORBIDDEN\", \"Dev bypass is only available in development mode\", 403);\n\t}\n\n\tconst { locals, url, session } = context;\n\tconst { emdash } = locals;\n\n\tif (!emdash?.db) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\ttry {\n\t\t// Apply seed (user seed or built-in default). `?content=0` (or `false`)\n\t\t// applies schema/structure only — no sample content, bylines, or terms.\n\t\tconst contentParam = url.searchParams.get(\"content\");\n\t\tconst includeContent = contentParam !== \"0\" && contentParam !== \"false\";\n\t\tconst seed = await loadSeed();\n\t\tconst validation = validateSeed(seed);\n\t\tif (validation.valid) {\n\t\t\tconst seedResult = await applySeed(emdash.db, seed, {\n\t\t\t\tincludeContent,\n\t\t\t\tonConflict: \"skip\",\n\t\t\t\tstorage: emdash.storage ?? undefined,\n\t\t\t});\n\t\t\tconsole.log(\n\t\t\t\t`[setup-dev-bypass] Seed applied: ${seedResult.collections.created} collections, ${seedResult.fields.created} fields`,\n\t\t\t);\n\t\t\tif (includeContent && seedResult.content.created + seedResult.content.updated > 0) {\n\t\t\t\tfor (const collectionSlug of Object.keys(seed.content ?? {})) {\n\t\t\t\t\tconst repair = await repairContentMediaUsageCollection(emdash.db, {\n\t\t\t\t\t\tcollectionSlug,\n\t\t\t\t\t});\n\t\t\t\t\tif (repair.status !== \"complete\") {\n\t\t\t\t\t\tthrow new Error(`Seeded Media Usage indexing failed for ${collectionSlug}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst options = new OptionsRepository(emdash.db);\n\n\t\t// Find or create dev user (direct DB access to avoid @emdash-cms/auth import issues in dev)\n\t\tconst existingUser = await emdash.db\n\t\t\t.selectFrom(\"users\")\n\t\t\t.selectAll()\n\t\t\t.where(\"email\", \"=\", DEV_USER_EMAIL)\n\t\t\t.executeTakeFirst();\n\n\t\tlet user: { id: string; email: string; name: string; role: number };\n\t\tlet userCreated = false;\n\n\t\tif (!existingUser) {\n\t\t\tconst now = new Date().toISOString();\n\t\t\tconst newUser = {\n\t\t\t\tid: ulid(),\n\t\t\t\temail: DEV_USER_EMAIL,\n\t\t\t\tname: DEV_USER_NAME,\n\t\t\t\trole: ROLE_ADMIN,\n\t\t\t\temail_verified: 1,\n\t\t\t\tcreated_at: now,\n\t\t\t\tupdated_at: now,\n\t\t\t};\n\n\t\t\tawait emdash.db.insertInto(\"users\").values(newUser).execute();\n\n\t\t\tuser = {\n\t\t\t\tid: newUser.id,\n\t\t\t\temail: newUser.email,\n\t\t\t\tname: newUser.name,\n\t\t\t\trole: newUser.role,\n\t\t\t};\n\t\t\tuserCreated = true;\n\t\t\tconsole.log(\"[setup-dev-bypass] Created dev admin user:\", user.email);\n\t\t} else {\n\t\t\tuser = {\n\t\t\t\tid: existingUser.id,\n\t\t\t\temail: existingUser.email,\n\t\t\t\tname: existingUser.name || DEV_USER_NAME,\n\t\t\t\trole: existingUser.role,\n\t\t\t};\n\t\t}\n\n\t\t// Set site title if not already set\n\t\tconst existingTitle = await options.get(\"emdash:site_title\");\n\t\tif (!existingTitle) {\n\t\t\tawait options.set(\"emdash:site_title\", DEV_SITE_TITLE);\n\t\t}\n\n\t\t// Store canonical site URL (used by magic-link/recovery emails)\n\t\tawait options.set(\"emdash:site_url\", getPublicOrigin(url, emdash?.config));\n\n\t\t// Mark setup complete\n\t\tawait options.set(\"emdash:setup_complete\", true);\n\n\t\t// Create session\n\t\tif (session) {\n\t\t\tsession.set(\"user\", { id: user.id });\n\t\t}\n\n\t\t// Optionally create a PAT token (?token=1) for headless/CLI testing.\n\t\tlet token: string | undefined;\n\t\tif (url.searchParams.has(\"token\")) {\n\t\t\t// Idempotent by name: a prior reset can leave a stale dev-bypass-token,\n\t\t\t// and the raw token is only available at creation, so drop any existing\n\t\t\t// one and mint a fresh, usable PAT rather than accumulating duplicates.\n\t\t\tawait deleteApiTokensByName(emdash.db, user.id, \"dev-bypass-token\");\n\t\t\tconst result = await handleApiTokenCreate(emdash.db, user.id, {\n\t\t\t\tname: \"dev-bypass-token\",\n\t\t\t\tscopes: [\n\t\t\t\t\t\"content:read\",\n\t\t\t\t\t\"content:write\",\n\t\t\t\t\t\"media:read\",\n\t\t\t\t\t\"media:write\",\n\t\t\t\t\t\"schema:read\",\n\t\t\t\t\t\"schema:write\",\n\t\t\t\t\t\"admin\",\n\t\t\t\t],\n\t\t\t});\n\t\t\tif (result.success) {\n\t\t\t\ttoken = result.data.token;\n\t\t\t}\n\t\t}\n\n\t\t// Check for redirect parameter\n\t\tconst redirect = url.searchParams.get(\"redirect\");\n\n\t\tif (redirect) {\n\t\t\t// Validate redirect is a safe local path (prevent open redirect via //evil.com or /\\evil.com)\n\t\t\tif (!isSafeRedirect(redirect)) {\n\t\t\t\treturn apiError(\"INVALID_REDIRECT\", \"Redirect must be a local path\", 400);\n\t\t\t}\n\n\t\t\t// Return an HTML page with meta-refresh redirect\n\t\t\t// This ensures the session is fully saved before redirect\n\t\t\tconst safeRedirect = escapeHtml(redirect);\n\t\t\tconst html = `<!DOCTYPE html>\n<html>\n<head>\n\t<meta http-equiv=\"refresh\" content=\"0;url=${safeRedirect}\">\n</head>\n<body>Redirecting...</body>\n</html>`;\n\t\t\treturn new Response(html, {\n\t\t\t\tstatus: 200,\n\t\t\t\theaders: { \"Content-Type\": \"text/html\" },\n\t\t\t});\n\t\t}\n\n\t\t// Return JSON response\n\t\treturn apiSuccess({\n\t\t\tsuccess: true,\n\t\t\tmessage: \"Dev setup complete\",\n\t\t\tmigrations: [],\n\t\t\tuserCreated,\n\t\t\tuser: {\n\t\t\t\tid: user.id,\n\t\t\t\temail: user.email,\n\t\t\t\tname: user.name,\n\t\t\t\trole: user.role,\n\t\t\t},\n\t\t\t...(token ? { token } : {}),\n\t\t});\n\t} catch (error) {\n\t\treturn handleError(error, \"Dev bypass failed\", \"DEV_BYPASS_ERROR\");\n\t}\n}\n\n// Support both GET and POST\nexport const GET: APIRoute = handleDevBypass;\nexport const POST: APIRoute = handleDevBypass;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAa,YAAY;AAgBzB,MAAM,aAAa;AAEnB,MAAM,iBAAiB;AACvB,MAAM,gBAAgB;AACtB,MAAM,iBAAiB;AAEvB,eAAe,gBAAgB,SAAqD;AAEnF,KAAI,CAAC,OAAO,KAAK,IAAI,IACpB,QAAO,SAAS,aAAa,oDAAoD,IAAI;CAGtF,MAAM,EAAE,QAAQ,KAAK,YAAY;CACjC,MAAM,EAAE,WAAW;AAEnB,KAAI,CAAC,QAAQ,GACZ,QAAO,SAAS,kBAAkB,6BAA6B,IAAI;AAGpE,KAAI;EAGH,MAAM,eAAe,IAAI,aAAa,IAAI,UAAU;EACpD,MAAM,iBAAiB,iBAAiB,OAAO,iBAAiB;EAChE,MAAM,OAAO,MAAM,UAAU;AAE7B,MADmB,aAAa,KAAK,CACtB,OAAO;GACrB,MAAM,aAAa,MAAM,UAAU,OAAO,IAAI,MAAM;IACnD;IACA,YAAY;IACZ,SAAS,OAAO,WAAW;IAC3B,CAAC;AACF,WAAQ,IACP,oCAAoC,WAAW,YAAY,QAAQ,gBAAgB,WAAW,OAAO,QAAQ,SAC7G;AACD,OAAI,kBAAkB,WAAW,QAAQ,UAAU,WAAW,QAAQ,UAAU,GAC/E;SAAK,MAAM,kBAAkB,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC,CAI3D,MAHe,MAAM,kCAAkC,OAAO,IAAI,EACjE,gBACA,CAAC,EACS,WAAW,WACrB,OAAM,IAAI,MAAM,0CAA0C,iBAAiB;;;EAM/E,MAAM,UAAU,IAAI,kBAAkB,OAAO,GAAG;EAGhD,MAAM,eAAe,MAAM,OAAO,GAChC,WAAW,QAAQ,CACnB,WAAW,CACX,MAAM,SAAS,KAAK,eAAe,CACnC,kBAAkB;EAEpB,IAAI;EACJ,IAAI,cAAc;AAElB,MAAI,CAAC,cAAc;GAClB,MAAM,uBAAM,IAAI,MAAM,EAAC,aAAa;GACpC,MAAM,UAAU;IACf,IAAI,MAAM;IACV,OAAO;IACP,MAAM;IACN,MAAM;IACN,gBAAgB;IAChB,YAAY;IACZ,YAAY;IACZ;AAED,SAAM,OAAO,GAAG,WAAW,QAAQ,CAAC,OAAO,QAAQ,CAAC,SAAS;AAE7D,UAAO;IACN,IAAI,QAAQ;IACZ,OAAO,QAAQ;IACf,MAAM,QAAQ;IACd,MAAM,QAAQ;IACd;AACD,iBAAc;AACd,WAAQ,IAAI,8CAA8C,KAAK,MAAM;QAErE,QAAO;GACN,IAAI,aAAa;GACjB,OAAO,aAAa;GACpB,MAAM,aAAa,QAAQ;GAC3B,MAAM,aAAa;GACnB;AAKF,MAAI,CADkB,MAAM,QAAQ,IAAI,oBAAoB,CAE3D,OAAM,QAAQ,IAAI,qBAAqB,eAAe;AAIvD,QAAM,QAAQ,IAAI,mBAAmB,gBAAgB,KAAK,QAAQ,OAAO,CAAC;AAG1E,QAAM,QAAQ,IAAI,yBAAyB,KAAK;AAGhD,MAAI,QACH,SAAQ,IAAI,QAAQ,EAAE,IAAI,KAAK,IAAI,CAAC;EAIrC,IAAI;AACJ,MAAI,IAAI,aAAa,IAAI,QAAQ,EAAE;AAIlC,SAAM,sBAAsB,OAAO,IAAI,KAAK,IAAI,mBAAmB;GACnE,MAAM,SAAS,MAAM,qBAAqB,OAAO,IAAI,KAAK,IAAI;IAC7D,MAAM;IACN,QAAQ;KACP;KACA;KACA;KACA;KACA;KACA;KACA;KACA;IACD,CAAC;AACF,OAAI,OAAO,QACV,SAAQ,OAAO,KAAK;;EAKtB,MAAM,WAAW,IAAI,aAAa,IAAI,WAAW;AAEjD,MAAI,UAAU;AAEb,OAAI,CAAC,eAAe,SAAS,CAC5B,QAAO,SAAS,oBAAoB,iCAAiC,IAAI;GAM1E,MAAM,OAAO;;;6CADQ,WAAW,SAAS,CAIc;;;;AAIvD,UAAO,IAAI,SAAS,MAAM;IACzB,QAAQ;IACR,SAAS,EAAE,gBAAgB,aAAa;IACxC,CAAC;;AAIH,SAAO,WAAW;GACjB,SAAS;GACT,SAAS;GACT,YAAY,EAAE;GACd;GACA,MAAM;IACL,IAAI,KAAK;IACT,OAAO,KAAK;IACZ,MAAM,KAAK;IACX,MAAM,KAAK;IACX;GACD,GAAI,QAAQ,EAAE,OAAO,GAAG,EAAE;GAC1B,CAAC;UACM,OAAO;AACf,SAAO,YAAY,OAAO,qBAAqB,mBAAmB;;;AAKpE,MAAa,MAAgB;AAC7B,MAAa,OAAiB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as OptionsRepository } from "../../../../options-DhrI7eMv.mjs";
|
|
2
2
|
import "../../../../base64-DvnNgP7e.mjs";
|
|
3
|
-
import "../../../../types-
|
|
4
|
-
import "../../../../errors-
|
|
5
|
-
import "../../../../errors-
|
|
6
|
-
import { n as apiSuccess, r as handleError, t as apiError } from "../../../../error-
|
|
3
|
+
import "../../../../types-j6MBDjlZ.mjs";
|
|
4
|
+
import "../../../../errors-CjXd1LgH.mjs";
|
|
5
|
+
import "../../../../errors-CNvATh_7.mjs";
|
|
6
|
+
import { n as apiSuccess, r as handleError, t as apiError } from "../../../../error-CEdm_AWU.mjs";
|
|
7
7
|
|
|
8
8
|
//#region src/astro/routes/api/setup/dev-reset.ts
|
|
9
9
|
const prerender = false;
|
|
@@ -5,59 +5,60 @@ import "../../../../after-PcEvMY_6.mjs";
|
|
|
5
5
|
import { t as OptionsRepository } from "../../../../options-DhrI7eMv.mjs";
|
|
6
6
|
import "../../../../base64-DvnNgP7e.mjs";
|
|
7
7
|
import "../../../../secrets-CIi0nFiR.mjs";
|
|
8
|
-
import "../../../../content-
|
|
9
|
-
import "../../../../object-cache-
|
|
8
|
+
import "../../../../content-RzEXY3QX.mjs";
|
|
9
|
+
import "../../../../object-cache-Bo6DGaC9.mjs";
|
|
10
10
|
import "../../../../slugify-T5GHH42D.mjs";
|
|
11
|
-
import "../../../../
|
|
12
|
-
import "../../../../
|
|
13
|
-
import "../../../../
|
|
14
|
-
import "../../../../
|
|
15
|
-
import "../../../../
|
|
16
|
-
import "../../../../
|
|
17
|
-
import "../../../../
|
|
18
|
-
import "../../../../
|
|
19
|
-
import "../../../../
|
|
20
|
-
import "../../../../
|
|
21
|
-
import "../../../../
|
|
22
|
-
import "../../../../
|
|
23
|
-
import "../../../../
|
|
24
|
-
import "../../../../
|
|
25
|
-
import "../../../../
|
|
26
|
-
import "../../../../
|
|
27
|
-
import "../../../../
|
|
28
|
-
import "../../../../
|
|
29
|
-
import "../../../../
|
|
30
|
-
import "../../../../
|
|
31
|
-
import "../../../../
|
|
32
|
-
import "../../../../
|
|
33
|
-
import "../../../../
|
|
34
|
-
import "../../../../
|
|
35
|
-
import "../../../../
|
|
36
|
-
import "../../../../
|
|
37
|
-
import "../../../../
|
|
38
|
-
import "../../../../
|
|
39
|
-
import "../../../../
|
|
40
|
-
import "../../../../
|
|
41
|
-
import "../../../../
|
|
42
|
-
import "../../../../
|
|
43
|
-
import "../../../../
|
|
44
|
-
import "../../../../
|
|
45
|
-
import
|
|
46
|
-
import { n as
|
|
47
|
-
import "../../../../
|
|
48
|
-
import "../../../../
|
|
49
|
-
import "../../../../
|
|
50
|
-
import "../../../../
|
|
51
|
-
import
|
|
52
|
-
import "../../../../
|
|
53
|
-
import "../../../../
|
|
11
|
+
import "../../../../request-cache-C4CIo5ad.mjs";
|
|
12
|
+
import "../../../../url-Dn3IStq8.mjs";
|
|
13
|
+
import "../../../../types-j6MBDjlZ.mjs";
|
|
14
|
+
import "../../../../revision-CGkQA0e5.mjs";
|
|
15
|
+
import "../../../../media-CputjGE1.mjs";
|
|
16
|
+
import "../../../../taxonomy-BesdHIwi.mjs";
|
|
17
|
+
import "../../../../resolve-D-kqyKns.mjs";
|
|
18
|
+
import "../../../../redirect-BvFKh8Sz.mjs";
|
|
19
|
+
import "../../../../byline-registry-dvt4N3xV.mjs";
|
|
20
|
+
import "../../../../field-defs-cache-DEkFYCDE.mjs";
|
|
21
|
+
import "../../../../byline-02tu_Uc-.mjs";
|
|
22
|
+
import "../../../../staged-Bw5eHbKS.mjs";
|
|
23
|
+
import "../../../../dist-Cfu8mMBs.mjs";
|
|
24
|
+
import "../../../../fts-manager-DU03MxWu.mjs";
|
|
25
|
+
import "../../../../loader-B_bcoE1h.mjs";
|
|
26
|
+
import "../../../../collection-slugs-cache-BNRAPNiu.mjs";
|
|
27
|
+
import "../../../../capture-triggers-CdZfvHtF.mjs";
|
|
28
|
+
import "../../../../activation-DDuqAat2.mjs";
|
|
29
|
+
import "../../../../collection-deletion-JecE26cS.mjs";
|
|
30
|
+
import "../../../../registry-CtHRqVe-.mjs";
|
|
31
|
+
import "../../../../hash-CY4QdeMJ.mjs";
|
|
32
|
+
import "../../../../zod-generator-DnfG5sGQ.mjs";
|
|
33
|
+
import "../../../../errors-CjXd1LgH.mjs";
|
|
34
|
+
import "../../../../canonical-CAecl1UQ.mjs";
|
|
35
|
+
import "../../../../digest-DiYAoZpf.mjs";
|
|
36
|
+
import "../../../../block-values-BrTrtA-v.mjs";
|
|
37
|
+
import "../../../../query-DC3bv__4.mjs";
|
|
38
|
+
import "../../../../schema-BZPj3kwZ.mjs";
|
|
39
|
+
import "../../../../relations-CVI2nbrn.mjs";
|
|
40
|
+
import "../../../../errors-CNvATh_7.mjs";
|
|
41
|
+
import "../../../../settings-B0zQj_Tj.mjs";
|
|
42
|
+
import "../../../../site-settings-AYFvhwQn.mjs";
|
|
43
|
+
import "../../../../schema-Berj5VQx.mjs";
|
|
44
|
+
import "../../../../settings-BbVRRGDp.mjs";
|
|
45
|
+
import "../../../../ssrf-DsmvZB80.mjs";
|
|
46
|
+
import { n as apiSuccess, r as handleError, t as apiError } from "../../../../error-CEdm_AWU.mjs";
|
|
47
|
+
import { n as parseBody, t as isParseError } from "../../../../parse-Gt2l4Sld.mjs";
|
|
48
|
+
import "../../../../redirects-D4EWeXAo.mjs";
|
|
49
|
+
import "../../../../entry-lock-PP1JCXBB.mjs";
|
|
50
|
+
import "../../../../media-D1z_jisb.mjs";
|
|
51
|
+
import "../../../../comments-BRtp992B.mjs";
|
|
52
|
+
import { d as setupBody } from "../../../../byline-fields-DHJs0Mja.mjs";
|
|
53
|
+
import "../../../../menus-BQKqf0Up.mjs";
|
|
54
|
+
import "../../../../status-D39Fpy8R.mjs";
|
|
54
55
|
import "../../../../api/schemas/index.mjs";
|
|
55
|
-
import { n as applySeedWithinBudget } from "../../../../apply-
|
|
56
|
-
import "../../../../ssrf-
|
|
57
|
-
import { n as validateSeed } from "../../../../validate-
|
|
58
|
-
import { t as loadSeed } from "../../../../load-
|
|
59
|
-
import { t as getConfiguredOrigin } from "../../../../public-url-
|
|
60
|
-
import { t as getAuthMode } from "../../../../mode-
|
|
56
|
+
import { n as applySeedWithinBudget } from "../../../../apply-C1kq5l7p.mjs";
|
|
57
|
+
import "../../../../ssrf-tA45vIPX.mjs";
|
|
58
|
+
import { n as validateSeed } from "../../../../validate-WkjGwBSO.mjs";
|
|
59
|
+
import { t as loadSeed } from "../../../../load-dHcR5yh9.mjs";
|
|
60
|
+
import { t as getConfiguredOrigin } from "../../../../public-url-B5a0QAh6.mjs";
|
|
61
|
+
import { t as getAuthMode } from "../../../../mode-nh0ppSX5.mjs";
|
|
61
62
|
|
|
62
63
|
//#region src/astro/routes/api/setup/index.ts
|
|
63
64
|
const prerender = false;
|