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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"activation-PtniBLt9.mjs","names":[],"sources":["../src/media/usage/activation.ts"],"sourcesContent":["import { sql, type Kysely, type RawBuilder, type Selectable } from \"kysely\";\nimport { ulid } from \"ulidx\";\n\nimport { isPostgres, tableExists } from \"../../database/dialect-helpers.js\";\nimport type { Database, MediaUsageActivationTable } from \"../../database/types.js\";\nimport {\n\tinstallMediaUsageCaptureTriggers,\n\tverifyMediaUsageCaptureTriggers,\n} from \"./capture-triggers.js\";\n\nconst ACTIVATION_KEY = \"incremental_capture\";\nconst ACTIVATION_ERROR_CODE = \"MEDIA_USAGE_ACTIVATION_FAILED\";\nexport const MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION = 1;\n\nexport class MediaUsageActivationVersionMismatchError extends Error {}\n\nexport interface MediaUsageActivationStatus {\n\tstate: \"expanded\" | \"activating\" | \"active\";\n\tcollectionCursor: string | null;\n\tattemptCount: number;\n\tdrainConfirmedAt: string | null;\n\tlastAttemptedAt: string | null;\n\tlastErrorCode: \"MEDIA_USAGE_ACTIVATION_FAILED\" | null;\n\tleaseExpiresAt: string | null;\n\tactivatedAt: string | null;\n\tupdatedAt: string;\n}\n\nexport const MEDIA_USAGE_ACTIVATION_LIMITS = Object.freeze({\n\tcollectionsPerCall: 1,\n\tleaseDurationSeconds: 5 * 60,\n});\n\nexport type MediaUsageActivationResult =\n\t| { outcome: \"active\"; processedCollections: number }\n\t| {\n\t\t\toutcome: \"activating\";\n\t\t\tprocessedCollections: number;\n\t\t\tcollectionCursor: string | null;\n\t }\n\t| { outcome: \"lease_active\"; leaseExpiresAt: string }\n\t| { outcome: \"conflict\"; processedCollections: number };\n\nexport type MediaUsageActivationContinuationResult =\n\t| MediaUsageActivationResult\n\t| { outcome: \"inactive\" | \"failed\" };\n\ntype MediaUsageActivationClaimMode = \"confirmed\" | \"background\";\n\nexport interface MediaUsageCollectionCapturePreparation {\n\tcaptureRequired: boolean;\n\tcollectionId: string;\n\tregistrationExists: boolean;\n\tresuming: boolean;\n}\n\nexport async function getMediaUsageActivationStatus(\n\tdb: Kysely<Database>,\n): Promise<MediaUsageActivationStatus> {\n\tconst activation = await db\n\t\t.selectFrom(\"_emdash_media_usage_activation\")\n\t\t.select([\n\t\t\t\"state\",\n\t\t\t\"runtime_generation\",\n\t\t\t\"collection_cursor\",\n\t\t\t\"drain_confirmed_at\",\n\t\t\t\"lease_expires_at\",\n\t\t\t\"attempt_count\",\n\t\t\t\"last_attempted_at\",\n\t\t\t\"last_error_code\",\n\t\t\t\"activated_at\",\n\t\t\t\"updated_at\",\n\t\t])\n\t\t.where(\"task_key\", \"=\", ACTIVATION_KEY)\n\t\t.executeTakeFirstOrThrow();\n\tassertRuntimeGeneration(activation);\n\tif (\n\t\tactivation.state !== \"expanded\" &&\n\t\tactivation.state !== \"activating\" &&\n\t\tactivation.state !== \"active\"\n\t) {\n\t\tthrow new Error(\"Invalid media usage activation state\");\n\t}\n\tif (!Number.isInteger(activation.attempt_count) || activation.attempt_count < 0) {\n\t\tthrow new Error(\"Invalid media usage activation attempt count\");\n\t}\n\n\treturn {\n\t\tstate: activation.state,\n\t\tcollectionCursor: activation.collection_cursor,\n\t\tattemptCount: activation.attempt_count,\n\t\tdrainConfirmedAt: activation.drain_confirmed_at,\n\t\tlastAttemptedAt: activation.last_attempted_at,\n\t\tlastErrorCode: activation.last_error_code === null ? null : ACTIVATION_ERROR_CODE,\n\t\tleaseExpiresAt: activation.lease_expires_at,\n\t\tactivatedAt: activation.activated_at,\n\t\tupdatedAt: activation.updated_at,\n\t};\n}\n\nexport async function canResumeMediaUsageCollectionCapture(\n\tdb: Kysely<Database>,\n\tidentity: { collectionId: string; collectionSlug: string; creationFingerprint?: string },\n): Promise<boolean> {\n\tconst activation = await findActivationIfAvailable(db);\n\tif (!activation) return false;\n\tassertRuntimeGeneration(activation);\n\tif (activation.state !== \"active\") return false;\n\n\tconst lifecycle = await db\n\t\t.selectFrom(\"_emdash_media_usage_index_status\")\n\t\t.select([\"collection_id\", \"cursor\"])\n\t\t.where(\"adapter_id\", \"=\", \"content-media\")\n\t\t.where(\"scope_type\", \"=\", \"collection\")\n\t\t.where(\"scope_key\", \"=\", identity.collectionSlug)\n\t\t.where(\"collection_id\", \"=\", identity.collectionId)\n\t\t.where(\"capture_state\", \"in\", [\"installing\", \"ready\"])\n\t\t.executeTakeFirst();\n\treturn (\n\t\tlifecycle?.collection_id === identity.collectionId &&\n\t\t(identity.creationFingerprint\n\t\t\t? lifecycle.cursor === identity.creationFingerprint\n\t\t\t: lifecycle.cursor === null)\n\t);\n}\n\nexport async function prepareMediaUsageCollectionCapture(\n\tdb: Kysely<Database>,\n\tinput: {\n\t\tcollectionId: string;\n\t\tcollectionSlug: string;\n\t\tcreationFingerprint?: string;\n\t\tregisteredCollectionId?: string;\n\t},\n): Promise<MediaUsageCollectionCapturePreparation> {\n\tconst activation = await findActivationIfAvailable(db);\n\tif (!activation) {\n\t\treturn {\n\t\t\tcaptureRequired: false,\n\t\t\tcollectionId: input.collectionId,\n\t\t\tregistrationExists: input.registeredCollectionId !== undefined,\n\t\t\tresuming: false,\n\t\t};\n\t}\n\tassertRuntimeGeneration(activation);\n\tif (activation.state !== \"active\") {\n\t\treturn {\n\t\t\tcaptureRequired: false,\n\t\t\tcollectionId: input.collectionId,\n\t\t\tregistrationExists: input.registeredCollectionId !== undefined,\n\t\t\tresuming: false,\n\t\t};\n\t}\n\n\tconst existing = await db\n\t\t.selectFrom(\"_emdash_media_usage_index_status\")\n\t\t.select([\"collection_id\", \"capture_state\", \"cursor\"])\n\t\t.where(\"adapter_id\", \"=\", \"content-media\")\n\t\t.where(\"scope_type\", \"=\", \"collection\")\n\t\t.where(\"scope_key\", \"=\", input.collectionSlug)\n\t\t.executeTakeFirst();\n\tif (existing) {\n\t\tif (\n\t\t\texisting.collection_id &&\n\t\t\t(existing.capture_state === \"installing\" || existing.capture_state === \"ready\") &&\n\t\t\t(input.creationFingerprint\n\t\t\t\t? existing.cursor === input.creationFingerprint\n\t\t\t\t: existing.cursor === null) &&\n\t\t\t(input.registeredCollectionId === undefined ||\n\t\t\t\tinput.registeredCollectionId === existing.collection_id)\n\t\t) {\n\t\t\treturn {\n\t\t\t\tcaptureRequired: true,\n\t\t\t\tcollectionId: existing.collection_id,\n\t\t\t\tregistrationExists: input.registeredCollectionId !== undefined,\n\t\t\t\tresuming: true,\n\t\t\t};\n\t\t}\n\t\tthrow new Error(\"Media usage collection lifecycle identity conflict\");\n\t}\n\tif (input.registeredCollectionId !== undefined) {\n\t\tthrow new Error(\"Media usage collection lifecycle is missing\");\n\t}\n\n\tawait db\n\t\t.insertInto(\"_emdash_media_usage_index_status\")\n\t\t.values({\n\t\t\tadapter_id: \"content-media\",\n\t\t\tscope_type: \"collection\",\n\t\t\tscope_key: input.collectionSlug,\n\t\t\tstatus: \"never\",\n\t\t\tcollection_id: input.collectionId,\n\t\t\treconciliation_required: 1,\n\t\t\tcapture_state: \"installing\",\n\t\t\tcursor: input.creationFingerprint ?? null,\n\t\t\tupdated_at: timestampOffset(db, 0),\n\t\t})\n\t\t.execute();\n\treturn {\n\t\tcaptureRequired: true,\n\t\tcollectionId: input.collectionId,\n\t\tregistrationExists: false,\n\t\tresuming: false,\n\t};\n}\n\nexport async function installPreparedMediaUsageCollectionCapture(\n\tdb: Kysely<Database>,\n\tidentity: { collectionId: string; collectionSlug: string },\n): Promise<void> {\n\tawait installMediaUsageCaptureTriggers(db, identity, { replaceExisting: false });\n\tif (!(await verifyMediaUsageCaptureTriggers(db, identity))) {\n\t\tthrow new Error(\"Media usage capture trigger verification failed\");\n\t}\n}\n\nexport async function markMediaUsageCollectionCaptureReady(\n\tdb: Kysely<Database>,\n\tidentity: { collectionId: string; collectionSlug: string },\n): Promise<void> {\n\tconst result = await db\n\t\t.updateTable(\"_emdash_media_usage_index_status\")\n\t\t.set({ capture_state: \"ready\", updated_at: timestampOffset(db, 0) })\n\t\t.where(\"adapter_id\", \"=\", \"content-media\")\n\t\t.where(\"scope_type\", \"=\", \"collection\")\n\t\t.where(\"scope_key\", \"=\", identity.collectionSlug)\n\t\t.where(\"collection_id\", \"=\", identity.collectionId)\n\t\t.where(\"capture_state\", \"in\", [\"installing\", \"ready\"])\n\t\t.where(\n\t\t\tsql<boolean>`EXISTS (\n\t\t\t\tSELECT 1 FROM _emdash_media_usage_activation AS activation\n\t\t\t\tWHERE activation.task_key = ${ACTIVATION_KEY}\n\t\t\t\t\tAND activation.state = 'active'\n\t\t\t\t\tAND activation.runtime_generation = ${MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION}\n\t\t\t)`,\n\t\t)\n\t\t.executeTakeFirst();\n\tif (Number(result.numUpdatedRows ?? 0) === 0) {\n\t\tthrow new Error(\"Media usage collection readiness lost its fence\");\n\t}\n}\n\nexport async function finalizeMediaUsageCollectionCapture(\n\tdb: Kysely<Database>,\n\tidentity: { collectionId: string; collectionSlug: string },\n): Promise<void> {\n\tconst result = await db\n\t\t.updateTable(\"_emdash_media_usage_index_status\")\n\t\t.set({ capture_state: \"active\", cursor: null, updated_at: timestampOffset(db, 0) })\n\t\t.where(\"adapter_id\", \"=\", \"content-media\")\n\t\t.where(\"scope_type\", \"=\", \"collection\")\n\t\t.where(\"scope_key\", \"=\", identity.collectionSlug)\n\t\t.where(\"collection_id\", \"=\", identity.collectionId)\n\t\t.where(\"capture_state\", \"=\", \"ready\")\n\t\t.where(\n\t\t\tsql<boolean>`EXISTS (\n\t\t\t\tSELECT 1 FROM _emdash_collections AS collection\n\t\t\t\tWHERE collection.id = ${identity.collectionId}\n\t\t\t\t\tAND collection.slug = ${identity.collectionSlug}\n\t\t\t)`,\n\t\t)\n\t\t.where(\n\t\t\tsql<boolean>`EXISTS (\n\t\t\t\tSELECT 1 FROM _emdash_media_usage_activation AS activation\n\t\t\t\tWHERE activation.task_key = ${ACTIVATION_KEY}\n\t\t\t\t\tAND activation.state = 'active'\n\t\t\t\t\tAND activation.runtime_generation = ${MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION}\n\t\t\t)`,\n\t\t)\n\t\t.executeTakeFirst();\n\tif (Number(result.numUpdatedRows ?? 0) === 0) {\n\t\tthrow new Error(\"Media usage collection activation lost its fence\");\n\t}\n}\n\nexport async function activateMediaUsageCapture(\n\tdb: Kysely<Database>,\n\tinput: { writersDrained: true },\n): Promise<MediaUsageActivationResult> {\n\tif (input.writersDrained !== true) {\n\t\tthrow new Error(\"Media usage activation requires confirmation that writers are drained\");\n\t}\n\treturn advanceMediaUsageActivation(db, \"confirmed\");\n}\n\nexport async function continueMediaUsageActivation(\n\tdb: Kysely<Database>,\n): Promise<MediaUsageActivationContinuationResult> {\n\treturn advanceMediaUsageActivation(db, \"background\");\n}\n\nasync function advanceMediaUsageActivation(\n\tdb: Kysely<Database>,\n\tmode: \"confirmed\",\n): Promise<MediaUsageActivationResult>;\nasync function advanceMediaUsageActivation(\n\tdb: Kysely<Database>,\n\tmode: \"background\",\n): Promise<MediaUsageActivationContinuationResult>;\nasync function advanceMediaUsageActivation(\n\tdb: Kysely<Database>,\n\tmode: MediaUsageActivationClaimMode,\n): Promise<MediaUsageActivationContinuationResult> {\n\tconst before = await findActivation(db);\n\tassertRuntimeGeneration(before);\n\tif (before.state === \"active\") {\n\t\treturn { outcome: \"active\", processedCollections: 0 };\n\t}\n\tif (mode === \"background\") {\n\t\tif (before.state === \"expanded\" || before.drain_confirmed_at === null) {\n\t\t\treturn { outcome: \"inactive\" };\n\t\t}\n\t\tif (before.state !== \"activating\") {\n\t\t\tthrow new Error(\"Invalid media usage activation state\");\n\t\t}\n\t\tif (before.last_error_code !== null) return { outcome: \"failed\" };\n\t}\n\n\tconst leaseToken = ulid();\n\tconst lease = await claimActivation(db, leaseToken, mode);\n\tif (!lease) return activationClaimLoss(db, mode);\n\n\tlet processedCollections = 0;\n\ttry {\n\t\tconst candidates = await findActivationCandidates(db, lease.collection_cursor);\n\t\tfor (const collection of candidates.slice(\n\t\t\t0,\n\t\t\tMEDIA_USAGE_ACTIVATION_LIMITS.collectionsPerCall,\n\t\t)) {\n\t\t\tawait requireActivationLease(db, leaseToken);\n\t\t\tawait prepareCollectionForActivation(db, collection, leaseToken);\n\t\t\tawait requireActivationLease(db, leaseToken);\n\t\t\tawait installMediaUsageCaptureTriggers(\n\t\t\t\tdb,\n\t\t\t\t{\n\t\t\t\t\tcollectionId: collection.id,\n\t\t\t\t\tcollectionSlug: collection.slug,\n\t\t\t\t},\n\t\t\t\t{ replaceExisting: false },\n\t\t\t);\n\t\t\tawait requireActivationLease(db, leaseToken);\n\t\t\tif (\n\t\t\t\t!(await verifyMediaUsageCaptureTriggers(db, {\n\t\t\t\t\tcollectionId: collection.id,\n\t\t\t\t\tcollectionSlug: collection.slug,\n\t\t\t\t}))\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Media usage capture trigger verification failed\");\n\t\t\t}\n\t\t\tif (!(await activateCollectionLifecycle(db, collection, leaseToken))) {\n\t\t\t\tthrow new Error(\"Media usage collection activation lost its fence\");\n\t\t\t}\n\t\t\tprocessedCollections++;\n\t\t}\n\n\t\tconst collectionCursor =\n\t\t\tcandidates[Math.min(processedCollections, candidates.length) - 1]?.slug ??\n\t\t\tlease.collection_cursor;\n\t\tif (candidates.length > MEDIA_USAGE_ACTIVATION_LIMITS.collectionsPerCall) {\n\t\t\tif (!(await releaseActivationBatch(db, leaseToken, collectionCursor))) {\n\t\t\t\tthrow new Error(\"Media usage activation cursor lost its fence\");\n\t\t\t}\n\t\t\treturn { outcome: \"activating\", processedCollections, collectionCursor };\n\t\t}\n\n\t\tconst incomplete = await findIncompleteCollection(db);\n\t\tif (incomplete) {\n\t\t\tif (!(await releaseActivationBatch(db, leaseToken, null))) {\n\t\t\t\tthrow new Error(\"Media usage activation restart lost its fence\");\n\t\t\t}\n\t\t\treturn { outcome: \"activating\", processedCollections, collectionCursor: null };\n\t\t}\n\n\t\tif (!(await finalizeActivation(db, leaseToken, collectionCursor))) {\n\t\t\tthrow new Error(\"Media usage activation finalization lost its fence\");\n\t\t}\n\t\treturn { outcome: \"active\", processedCollections };\n\t} catch (error) {\n\t\tif (!(await activationLeaseIsLive(db, leaseToken))) {\n\t\t\treturn { outcome: \"conflict\", processedCollections };\n\t\t}\n\t\tawait recordActivationFailure(db, leaseToken);\n\t\tthrow new Error(\"Media usage activation failed\", { cause: error });\n\t}\n}\n\nasync function findActivation(\n\tdb: Kysely<Database>,\n): Promise<Selectable<MediaUsageActivationTable>> {\n\treturn db\n\t\t.selectFrom(\"_emdash_media_usage_activation\")\n\t\t.selectAll()\n\t\t.where(\"task_key\", \"=\", ACTIVATION_KEY)\n\t\t.executeTakeFirstOrThrow();\n}\n\nasync function findActivationIfAvailable(\n\tdb: Kysely<Database>,\n): Promise<Selectable<MediaUsageActivationTable> | null> {\n\tif (!(await tableExists(db, \"_emdash_media_usage_activation\"))) return null;\n\treturn findActivation(db);\n}\n\nfunction assertRuntimeGeneration(activation: { runtime_generation: number }): void {\n\tif (activation.runtime_generation !== MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION) {\n\t\tthrow new MediaUsageActivationVersionMismatchError(\n\t\t\t\"Media usage activation runtime generation mismatch\",\n\t\t);\n\t}\n}\n\nasync function claimActivation(\n\tdb: Kysely<Database>,\n\tleaseToken: string,\n\tmode: MediaUsageActivationClaimMode,\n): Promise<Selectable<MediaUsageActivationTable> | null> {\n\tconst now = timestampOffset(db, 0);\n\tconst claimValues = {\n\t\tlease_token: leaseToken,\n\t\tlease_expires_at: timestampOffset(db, MEDIA_USAGE_ACTIVATION_LIMITS.leaseDurationSeconds),\n\t\tattempt_count: sql<number>`attempt_count + 1`,\n\t\tlast_attempted_at: now,\n\t\tupdated_at: now,\n\t};\n\tlet claim = db\n\t\t.updateTable(\"_emdash_media_usage_activation\")\n\t\t.set(\n\t\t\tmode === \"confirmed\"\n\t\t\t\t? {\n\t\t\t\t\t\t...claimValues,\n\t\t\t\t\t\tstate: \"activating\",\n\t\t\t\t\t\tdrain_confirmed_at: now,\n\t\t\t\t\t\tlast_error_code: null,\n\t\t\t\t\t}\n\t\t\t\t: claimValues,\n\t\t)\n\t\t.where(\"task_key\", \"=\", ACTIVATION_KEY)\n\t\t.where(\"runtime_generation\", \"=\", MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION);\n\tif (mode === \"confirmed\") {\n\t\tclaim = claim.where((eb) =>\n\t\t\teb.or([\n\t\t\t\teb(\"state\", \"=\", \"expanded\"),\n\t\t\t\teb.and([\n\t\t\t\t\teb(\"state\", \"=\", \"activating\"),\n\t\t\t\t\teb.or([\n\t\t\t\t\t\teb(\"lease_token\", \"is\", null),\n\t\t\t\t\t\teb.and([\n\t\t\t\t\t\t\teb(\"lease_expires_at\", \"is not\", null),\n\t\t\t\t\t\t\ttimestampIsDue(db, \"lease_expires_at\"),\n\t\t\t\t\t\t]),\n\t\t\t\t\t]),\n\t\t\t\t]),\n\t\t\t]),\n\t\t);\n\t} else {\n\t\tclaim = claim\n\t\t\t.where(\"state\", \"=\", \"activating\")\n\t\t\t.where(\"drain_confirmed_at\", \"is not\", null)\n\t\t\t.where(\"last_error_code\", \"is\", null)\n\t\t\t.where((eb) =>\n\t\t\t\teb.or([\n\t\t\t\t\teb(\"lease_token\", \"is\", null),\n\t\t\t\t\teb.and([eb(\"lease_expires_at\", \"is not\", null), timestampIsDue(db, \"lease_expires_at\")]),\n\t\t\t\t]),\n\t\t\t);\n\t}\n\treturn (await claim.returningAll().executeTakeFirst()) ?? null;\n}\n\nasync function activationClaimLoss(\n\tdb: Kysely<Database>,\n\tmode: MediaUsageActivationClaimMode,\n): Promise<MediaUsageActivationContinuationResult> {\n\tconst current = await findActivation(db);\n\tassertRuntimeGeneration(current);\n\tif (current.state === \"active\") return { outcome: \"active\", processedCollections: 0 };\n\tif (mode === \"background\") {\n\t\tif (current.state === \"expanded\" || current.drain_confirmed_at === null) {\n\t\t\treturn { outcome: \"inactive\" };\n\t\t}\n\t\tif (current.state === \"activating\" && current.last_error_code !== null) {\n\t\t\treturn { outcome: \"failed\" };\n\t\t}\n\t}\n\tif (\n\t\tcurrent.state === \"activating\" &&\n\t\tcurrent.lease_token &&\n\t\tcurrent.lease_expires_at &&\n\t\t(await activationLeaseIsLive(db, current.lease_token))\n\t) {\n\t\treturn { outcome: \"lease_active\", leaseExpiresAt: current.lease_expires_at };\n\t}\n\tif (mode === \"background\" && current.state === \"activating\") {\n\t\treturn { outcome: \"conflict\", processedCollections: 0 };\n\t}\n\tthrow new Error(\"Media usage activation state is not claimable\");\n}\n\nasync function activationLeaseIsLive(db: Kysely<Database>, leaseToken: string): Promise<boolean> {\n\tconst row = await db\n\t\t.selectFrom(\"_emdash_media_usage_activation\")\n\t\t.select(\"task_key\")\n\t\t.where(\"task_key\", \"=\", ACTIVATION_KEY)\n\t\t.where(\"state\", \"=\", \"activating\")\n\t\t.where(\"runtime_generation\", \"=\", MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION)\n\t\t.where(\"lease_token\", \"=\", leaseToken)\n\t\t.where(\"lease_expires_at\", \"is not\", null)\n\t\t.where(timestampIsLive(db, \"lease_expires_at\"))\n\t\t.executeTakeFirst();\n\treturn row !== undefined;\n}\n\nasync function findActivationCandidates(\n\tdb: Kysely<Database>,\n\tcollectionCursor: string | null,\n): Promise<Array<{ id: string; slug: string }>> {\n\tlet query = db.selectFrom(\"_emdash_collections\").select([\"id\", \"slug\"]);\n\tif (collectionCursor) query = query.where(\"slug\", \">\", collectionCursor);\n\treturn query\n\t\t.orderBy(\"slug\", \"asc\")\n\t\t.limit(MEDIA_USAGE_ACTIVATION_LIMITS.collectionsPerCall + 1)\n\t\t.execute();\n}\n\nasync function prepareCollectionForActivation(\n\tdb: Kysely<Database>,\n\tcollection: { id: string; slug: string },\n\tleaseToken: string,\n): Promise<void> {\n\tconst now = timestampOffset(db, 0);\n\tconst existingStatus = sql.ref(\"_emdash_media_usage_index_status.status\");\n\tconst existingCompletedAt = sql.ref(\"_emdash_media_usage_index_status.completed_at\");\n\tconst existingCollectionId = sql.ref(\"_emdash_media_usage_index_status.collection_id\");\n\tconst existingCaptureState = sql.ref(\"_emdash_media_usage_index_status.capture_state\");\n\tconst row = await db\n\t\t.insertInto(\"_emdash_media_usage_index_status\")\n\t\t.values({\n\t\t\tadapter_id: \"content-media\",\n\t\t\tscope_type: \"collection\",\n\t\t\tscope_key: collection.slug,\n\t\t\tstatus: \"never\",\n\t\t\tcollection_id: collection.id,\n\t\t\treconciliation_required: 1,\n\t\t\tcapture_state: \"installing\",\n\t\t\tupdated_at: now,\n\t\t})\n\t\t.onConflict((conflict) =>\n\t\t\tconflict\n\t\t\t\t.columns([\"adapter_id\", \"scope_type\", \"scope_key\"])\n\t\t\t\t.doUpdateSet({\n\t\t\t\t\tstatus: sql<string>`CASE WHEN ${existingStatus} IN ('complete', 'running') THEN 'stale' ELSE ${existingStatus} END`,\n\t\t\t\t\tcompleted_at: sql<\n\t\t\t\t\t\tstring | null\n\t\t\t\t\t>`CASE WHEN ${existingStatus} IN ('complete', 'running') THEN NULL ELSE ${existingCompletedAt} END`,\n\t\t\t\t\tcursor: null,\n\t\t\t\t\tcollection_id: collection.id,\n\t\t\t\t\treconciliation_required: 1,\n\t\t\t\t\tcapture_state: \"installing\",\n\t\t\t\t\tupdated_at: now,\n\t\t\t\t})\n\t\t\t\t.where((eb) =>\n\t\t\t\t\teb.and([\n\t\t\t\t\t\teb.or([\n\t\t\t\t\t\t\teb(existingCollectionId, \"is\", null),\n\t\t\t\t\t\t\teb(existingCollectionId, \"=\", collection.id),\n\t\t\t\t\t\t]),\n\t\t\t\t\t\teb.or([\n\t\t\t\t\t\t\teb(existingCaptureState, \"is\", null),\n\t\t\t\t\t\t\teb(existingCaptureState, \"!=\", \"deleting\"),\n\t\t\t\t\t\t]),\n\t\t\t\t\t\tactiveActivationLease(db, leaseToken),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t)\n\t\t.returning(\"collection_id\")\n\t\t.executeTakeFirst();\n\tif (row?.collection_id !== collection.id) {\n\t\tthrow new Error(\"Media usage collection lifecycle identity conflict\");\n\t}\n}\n\nasync function requireActivationLease(db: Kysely<Database>, leaseToken: string): Promise<void> {\n\tif (!(await activationLeaseIsLive(db, leaseToken))) {\n\t\tthrow new Error(\"Media usage activation lease is no longer live\");\n\t}\n}\n\nasync function activateCollectionLifecycle(\n\tdb: Kysely<Database>,\n\tcollection: { id: string; slug: string },\n\tleaseToken: string,\n): Promise<boolean> {\n\tconst result = await db\n\t\t.updateTable(\"_emdash_media_usage_index_status\")\n\t\t.set({ capture_state: \"active\", updated_at: timestampOffset(db, 0) })\n\t\t.where(\"adapter_id\", \"=\", \"content-media\")\n\t\t.where(\"scope_type\", \"=\", \"collection\")\n\t\t.where(\"scope_key\", \"=\", collection.slug)\n\t\t.where(\"collection_id\", \"=\", collection.id)\n\t\t.where(\"capture_state\", \"=\", \"installing\")\n\t\t.where(\n\t\t\tsql<boolean>`EXISTS (\n\t\t\t\tSELECT 1 FROM _emdash_collections AS collection\n\t\t\t\tWHERE collection.id = ${collection.id}\n\t\t\t\t\tAND collection.slug = ${collection.slug}\n\t\t\t)`,\n\t\t)\n\t\t.where(activeActivationLease(db, leaseToken))\n\t\t.executeTakeFirst();\n\treturn Number(result.numUpdatedRows ?? 0) > 0;\n}\n\nasync function releaseActivationBatch(\n\tdb: Kysely<Database>,\n\tleaseToken: string,\n\tcollectionCursor: string | null,\n): Promise<boolean> {\n\tconst result = await db\n\t\t.updateTable(\"_emdash_media_usage_activation\")\n\t\t.set({\n\t\t\tcollection_cursor: collectionCursor,\n\t\t\tlease_token: null,\n\t\t\tlease_expires_at: null,\n\t\t\tupdated_at: timestampOffset(db, 0),\n\t\t})\n\t\t.where(\"task_key\", \"=\", ACTIVATION_KEY)\n\t\t.where(\"state\", \"=\", \"activating\")\n\t\t.where(\"runtime_generation\", \"=\", MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION)\n\t\t.where(\"lease_token\", \"=\", leaseToken)\n\t\t.where(\"lease_expires_at\", \"is not\", null)\n\t\t.where(timestampIsLive(db, \"lease_expires_at\"))\n\t\t.executeTakeFirst();\n\treturn Number(result.numUpdatedRows ?? 0) > 0;\n}\n\nasync function findIncompleteCollection(\n\tdb: Kysely<Database>,\n): Promise<{ id: string; slug: string } | null> {\n\tconst row = await db\n\t\t.selectFrom(\"_emdash_collections as collection\")\n\t\t.select([\"collection.id\", \"collection.slug\"])\n\t\t.where((eb) =>\n\t\t\teb.not(\n\t\t\t\teb.exists(\n\t\t\t\t\teb\n\t\t\t\t\t\t.selectFrom(\"_emdash_media_usage_index_status as status\")\n\t\t\t\t\t\t.select(\"status.scope_key\")\n\t\t\t\t\t\t.where(\"status.adapter_id\", \"=\", \"content-media\")\n\t\t\t\t\t\t.where(\"status.scope_type\", \"=\", \"collection\")\n\t\t\t\t\t\t.whereRef(\"status.scope_key\", \"=\", \"collection.slug\")\n\t\t\t\t\t\t.whereRef(\"status.collection_id\", \"=\", \"collection.id\")\n\t\t\t\t\t\t.where(\"status.capture_state\", \"=\", \"active\"),\n\t\t\t\t),\n\t\t\t),\n\t\t)\n\t\t.orderBy(\"collection.slug\", \"asc\")\n\t\t.limit(1)\n\t\t.executeTakeFirst();\n\treturn row ?? null;\n}\n\nasync function finalizeActivation(\n\tdb: Kysely<Database>,\n\tleaseToken: string,\n\tcollectionCursor: string | null,\n): Promise<boolean> {\n\tconst now = timestampOffset(db, 0);\n\tconst result = await db\n\t\t.updateTable(\"_emdash_media_usage_activation\")\n\t\t.set({\n\t\t\tstate: \"active\",\n\t\t\tcollection_cursor: collectionCursor,\n\t\t\tlease_token: null,\n\t\t\tlease_expires_at: null,\n\t\t\tlast_error_code: null,\n\t\t\tactivated_at: now,\n\t\t\tupdated_at: now,\n\t\t})\n\t\t.where(\"task_key\", \"=\", ACTIVATION_KEY)\n\t\t.where(\"state\", \"=\", \"activating\")\n\t\t.where(\"runtime_generation\", \"=\", MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION)\n\t\t.where(\"lease_token\", \"=\", leaseToken)\n\t\t.where(\"lease_expires_at\", \"is not\", null)\n\t\t.where(timestampIsLive(db, \"lease_expires_at\"))\n\t\t.where(\n\t\t\tsql<boolean>`NOT EXISTS (\n\t\t\t\tSELECT 1\n\t\t\t\tFROM _emdash_collections AS collection\n\t\t\t\tWHERE NOT EXISTS (\n\t\t\t\t\tSELECT 1\n\t\t\t\t\tFROM _emdash_media_usage_index_status AS status\n\t\t\t\t\tWHERE status.adapter_id = 'content-media'\n\t\t\t\t\t\tAND status.scope_type = 'collection'\n\t\t\t\t\t\tAND status.scope_key = collection.slug\n\t\t\t\t\t\tAND status.collection_id = collection.id\n\t\t\t\t\t\tAND status.capture_state = 'active'\n\t\t\t\t)\n\t\t\t)`,\n\t\t)\n\t\t.executeTakeFirst();\n\treturn Number(result.numUpdatedRows ?? 0) > 0;\n}\n\nasync function recordActivationFailure(db: Kysely<Database>, leaseToken: string): Promise<void> {\n\tawait db\n\t\t.updateTable(\"_emdash_media_usage_activation\")\n\t\t.set({\n\t\t\tlease_token: null,\n\t\t\tlease_expires_at: null,\n\t\t\tlast_error_code: ACTIVATION_ERROR_CODE,\n\t\t\tupdated_at: timestampOffset(db, 0),\n\t\t})\n\t\t.where(\"task_key\", \"=\", ACTIVATION_KEY)\n\t\t.where(\"state\", \"=\", \"activating\")\n\t\t.where(\"runtime_generation\", \"=\", MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION)\n\t\t.where(\"lease_token\", \"=\", leaseToken)\n\t\t.execute();\n}\n\nfunction activeActivationLease(db: Kysely<Database>, leaseToken: string): RawBuilder<boolean> {\n\treturn sql<boolean>`EXISTS (\n\t\tSELECT 1\n\t\tFROM _emdash_media_usage_activation AS activation\n\t\tWHERE activation.task_key = ${ACTIVATION_KEY}\n\t\t\tAND activation.state = 'activating'\n\t\t\tAND activation.runtime_generation = ${MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION}\n\t\t\tAND activation.lease_token = ${leaseToken}\n\t\t\tAND activation.lease_expires_at IS NOT NULL\n\t\t\tAND ${timestampIsLive(db, \"activation.lease_expires_at\")}\n\t)`;\n}\n\nfunction timestampIsDue(db: Kysely<Database>, column: string): RawBuilder<boolean> {\n\treturn isPostgres(db)\n\t\t? sql<boolean>`${sql.ref(column)}::timestamptz <= clock_timestamp()`\n\t\t: sql<boolean>`${sql.ref(column)} <= strftime('%Y-%m-%dT%H:%M:%fZ', 'now')`;\n}\n\nfunction timestampIsLive(db: Kysely<Database>, column: string): RawBuilder<boolean> {\n\treturn isPostgres(db)\n\t\t? sql<boolean>`${sql.ref(column)}::timestamptz > clock_timestamp()`\n\t\t: sql<boolean>`${sql.ref(column)} > strftime('%Y-%m-%dT%H:%M:%fZ', 'now')`;\n}\n\nfunction timestampOffset(db: Kysely<Database>, seconds: number): RawBuilder<string> {\n\tif (isPostgres(db)) {\n\t\treturn sql<string>`to_char(\n\t\t\tclock_timestamp() AT TIME ZONE 'UTC' + (${seconds} * interval '1 second'),\n\t\t\t'YYYY-MM-DD\"T\"HH24:MI:SS.MS\"Z\"'\n\t\t)`;\n\t}\n\treturn sql<string>`strftime('%Y-%m-%dT%H:%M:%fZ', 'now', ${`+${seconds} seconds`})`;\n}\n"],"mappings":"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"}
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
//#region src/db/adapters.d.ts
|
|
2
|
-
/**
|
|
3
|
-
* Database Adapter Functions
|
|
4
|
-
*
|
|
5
|
-
* These run at config time (astro.config.mjs) and return serializable descriptors.
|
|
6
|
-
* The actual dialect is created at runtime by loading the entrypoint.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```ts
|
|
10
|
-
* // astro.config.mjs
|
|
11
|
-
* import emdash from "emdash/astro";
|
|
12
|
-
* import { sqlite } from "emdash/db";
|
|
13
|
-
*
|
|
14
|
-
* export default defineConfig({
|
|
15
|
-
* integrations: [
|
|
16
|
-
* emdash({
|
|
17
|
-
* database: sqlite({ url: "file:./data.db" }),
|
|
18
|
-
* }),
|
|
19
|
-
* ],
|
|
20
|
-
* });
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
/**
|
|
24
|
-
* Dialect family identifier.
|
|
25
|
-
* Used at runtime to select dialect-specific SQL fragments.
|
|
26
|
-
*/
|
|
27
|
-
type DatabaseDialectType = "sqlite" | "postgres";
|
|
28
|
-
type CollectionDeletionGuardInput = {
|
|
29
|
-
action: "fence";
|
|
30
|
-
collectionId: string;
|
|
31
|
-
collectionSlug: string;
|
|
32
|
-
leaseToken: string;
|
|
33
|
-
forceDelete: boolean;
|
|
34
|
-
} | {
|
|
35
|
-
action: "drop";
|
|
36
|
-
collectionId: string;
|
|
37
|
-
collectionSlug: string;
|
|
38
|
-
leaseToken: string;
|
|
39
|
-
};
|
|
40
|
-
type CollectionDeletionGuardResult = {
|
|
41
|
-
outcome: "fenced";
|
|
42
|
-
} | {
|
|
43
|
-
outcome: "has_content";
|
|
44
|
-
} | {
|
|
45
|
-
outcome: "stale";
|
|
46
|
-
} | {
|
|
47
|
-
outcome: "dropped";
|
|
48
|
-
};
|
|
49
|
-
type ExecuteCollectionDeletionGuard = (config: unknown, input: CollectionDeletionGuardInput) => Promise<CollectionDeletionGuardResult>;
|
|
50
|
-
/**
|
|
51
|
-
* Database descriptor - serializable config for virtual modules
|
|
52
|
-
*/
|
|
53
|
-
interface DatabaseDescriptor {
|
|
54
|
-
entrypoint: string;
|
|
55
|
-
config: unknown;
|
|
56
|
-
type: DatabaseDialectType;
|
|
57
|
-
/** Deployment migration capability with configuration safe for a build artifact. */
|
|
58
|
-
migrations?: {
|
|
59
|
-
entrypoint: string;
|
|
60
|
-
manifestConfig: unknown;
|
|
61
|
-
};
|
|
62
|
-
/**
|
|
63
|
-
* When true, the adapter's runtime entrypoint MUST export a named
|
|
64
|
-
* `createRequestScopedDb` function matching the signature declared in
|
|
65
|
-
* `virtual:emdash/dialect`. The virtual-module generator re-exports it
|
|
66
|
-
* by name, so a missing export becomes a build-time bundler error.
|
|
67
|
-
*
|
|
68
|
-
* The function is called once per request and decides — based on its own
|
|
69
|
-
* runtime config (e.g. whether the user opted into D1 sessions) — whether
|
|
70
|
-
* to return a per-request Kysely or null. Use this for features like D1
|
|
71
|
-
* read-replica sessions, bookmark cookies, or any per-request DB handle.
|
|
72
|
-
*
|
|
73
|
-
* When false or absent, the generator emits a stub that returns null and
|
|
74
|
-
* the middleware takes its default (singleton) path.
|
|
75
|
-
*/
|
|
76
|
-
supportsRequestScope?: boolean;
|
|
77
|
-
/**
|
|
78
|
-
* When true, request middleware resolves the last content-namespace
|
|
79
|
-
* invalidation timestamp and passes it to `createRequestScopedDb`.
|
|
80
|
-
*
|
|
81
|
-
* Keep this unset unless request routing depends on that timestamp: reading
|
|
82
|
-
* it may require an object-cache backend round trip.
|
|
83
|
-
*/
|
|
84
|
-
needsLastContentWriteAt?: boolean;
|
|
85
|
-
/**
|
|
86
|
-
* When true, the adapter's runtime entrypoint MUST export a named
|
|
87
|
-
* `createCoalescingDialect` function. The runtime uses this fresh dialect
|
|
88
|
-
* only for its cold-start read batch.
|
|
89
|
-
*
|
|
90
|
-
* When false or absent, the virtual module exports `undefined` without
|
|
91
|
-
* inspecting an optional entrypoint export.
|
|
92
|
-
*/
|
|
93
|
-
supportsCoalescing?: boolean;
|
|
94
|
-
/** The runtime entrypoint exports the deletion-specific atomic guard. */
|
|
95
|
-
supportsCollectionDeletionGuard?: boolean;
|
|
96
|
-
}
|
|
97
|
-
interface SqliteConfig {
|
|
98
|
-
/**
|
|
99
|
-
* Database URL (e.g., "file:./data.db")
|
|
100
|
-
*/
|
|
101
|
-
url: string;
|
|
102
|
-
}
|
|
103
|
-
interface LibsqlConfig {
|
|
104
|
-
/**
|
|
105
|
-
* Database URL (e.g., "file:./data.db" or "libsql://...")
|
|
106
|
-
*/
|
|
107
|
-
url: string;
|
|
108
|
-
/**
|
|
109
|
-
* Auth token for remote libSQL
|
|
110
|
-
*/
|
|
111
|
-
authToken?: string;
|
|
112
|
-
migrationAuthTokenEnv?: string;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* SQLite database adapter (node:sqlite)
|
|
116
|
-
*
|
|
117
|
-
* For local development and Node.js deployments. Requires Node.js 22.16 or later.
|
|
118
|
-
*
|
|
119
|
-
* @example
|
|
120
|
-
* ```ts
|
|
121
|
-
* database: sqlite({ url: "file:./data.db" })
|
|
122
|
-
* ```
|
|
123
|
-
*/
|
|
124
|
-
declare function sqlite(config: SqliteConfig): DatabaseDescriptor;
|
|
125
|
-
/**
|
|
126
|
-
* libSQL database adapter (Turso)
|
|
127
|
-
*
|
|
128
|
-
* For Turso hosted databases or local libSQL.
|
|
129
|
-
*
|
|
130
|
-
* @example
|
|
131
|
-
* ```ts
|
|
132
|
-
* database: libsql({
|
|
133
|
-
* url: "libsql://my-db.turso.io",
|
|
134
|
-
* authToken: process.env.TURSO_AUTH_TOKEN,
|
|
135
|
-
* })
|
|
136
|
-
* ```
|
|
137
|
-
*/
|
|
138
|
-
declare function libsql(config: LibsqlConfig): DatabaseDescriptor;
|
|
139
|
-
/**
|
|
140
|
-
* PostgreSQL connection configuration
|
|
141
|
-
*/
|
|
142
|
-
interface PostgresConfig {
|
|
143
|
-
connectionString?: string;
|
|
144
|
-
host?: string;
|
|
145
|
-
port?: number;
|
|
146
|
-
database?: string;
|
|
147
|
-
user?: string;
|
|
148
|
-
password?: string;
|
|
149
|
-
ssl?: boolean;
|
|
150
|
-
pool?: {
|
|
151
|
-
min?: number;
|
|
152
|
-
max?: number; /** Maximum time to wait for a connection, in milliseconds. Uses the pg default when omitted. */
|
|
153
|
-
connectionTimeoutMillis?: number; /** Time before an idle client is closed, in milliseconds. Uses the pg default when omitted. */
|
|
154
|
-
idleTimeoutMillis?: number;
|
|
155
|
-
};
|
|
156
|
-
migrationConnectionStringEnv?: string;
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* PostgreSQL database adapter
|
|
160
|
-
*
|
|
161
|
-
* For PostgreSQL deployments with connection pooling.
|
|
162
|
-
*
|
|
163
|
-
* @example
|
|
164
|
-
* ```ts
|
|
165
|
-
* database: postgres({ connectionString: process.env.DATABASE_URL })
|
|
166
|
-
* ```
|
|
167
|
-
*/
|
|
168
|
-
declare function postgres(config: PostgresConfig): DatabaseDescriptor;
|
|
169
|
-
//#endregion
|
|
170
|
-
export { ExecuteCollectionDeletionGuard as a, SqliteConfig as c, sqlite as d, DatabaseDialectType as i, libsql as l, CollectionDeletionGuardResult as n, LibsqlConfig as o, DatabaseDescriptor as r, PostgresConfig as s, CollectionDeletionGuardInput as t, postgres as u };
|
|
171
|
-
//# sourceMappingURL=adapters-C_Tf5x90.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adapters-C_Tf5x90.d.mts","names":[],"sources":["../src/db/adapters.ts"],"mappings":";;AA0BA;;;;;AAEA;;;;;;;;;;;;;;;AAeA;;;;AAAA,KAjBY,mBAAA;AAAA,KAEA,4BAAA;EAET,MAAA;EACA,YAAA;EACA,cAAA;EACA,UAAA;EACA,WAAA;AAAA;EAGA,MAAA;EACA,YAAA;EACA,cAAA;EACA,UAAA;AAAA;AAAA,KAGS,6BAAA;EACP,OAAA;AAAA;EACA,OAAA;AAAA;EACA,OAAA;AAAA;EACA,OAAA;AAAA;AAAA,KAEO,8BAAA,IACX,MAAA,WACA,KAAA,EAAO,4BAAA,KACH,OAAA,CAAQ,6BAAA;;;;UAmBI,kBAAA;EAChB,UAAA;EACA,MAAA;EACA,IAAA,EAAM,mBAAA;EAGL;EADD,UAAA;IACC,UAAA;IACA,cAAA;EAAA;EAmCD;;;AAGD;;;;;AAOA;;;;;;EA7BC,oBAAA;EAsCqB;;AAatB;;;;;EA3CC,uBAAA;EA2C6C;;;AAyB9C;;;;;EA3DC,kBAAA;EA2D6C;EAzD7C,+BAAA;AAAA;AAAA,UAGgB,YAAA;EA6Ec;;;EAzE9B,GAAA;AAAA;AAAA,UAGgB,YAAA;EA0EhB;;;EAtEA,GAAA;EA0EA;;;EAtEA,SAAA;EACA,qBAAA;AAAA;;;AA0FD;;;;;;;;iBA7EgB,MAAA,CAAO,MAAA,EAAQ,YAAA,GAAe,kBAAA;;;;;;;;;;;;;;iBAyB9B,MAAA,CAAO,MAAA,EAAQ,YAAA,GAAe,kBAAA;;;;UAuB7B,cAAA;EAChB,gBAAA;EACA,IAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;EACA,QAAA;EACA,GAAA;EACA,IAAA;IACC,GAAA;IACA,GAAA;IAEA,uBAAA;IAEA,iBAAA;EAAA;EAED,4BAAA;AAAA;;;;;;;;;;;iBAae,QAAA,CAAS,MAAA,EAAQ,cAAA,GAAiB,kBAAA"}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { n as getEnvAllowedOrigins } from "./public-url-CIRe-2T6.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/auth/allowed-origins.ts
|
|
4
|
-
/**
|
|
5
|
-
* Resolution and validation of multi-origin passkey verification.
|
|
6
|
-
*
|
|
7
|
-
* `allowedOrigins` lets one EmDash deployment accept passkey assertions from
|
|
8
|
-
* several hostnames sharing the same `rpId` (e.g. apex + preview/staging
|
|
9
|
-
* subdomains under one registrable parent). Origins come from two sources:
|
|
10
|
-
*
|
|
11
|
-
* - `EmDashConfig.allowedOrigins` (declared in `astro.config.mjs`)
|
|
12
|
-
* - `EMDASH_ALLOWED_ORIGINS` (comma-separated runtime env var)
|
|
13
|
-
*
|
|
14
|
-
* Sources are merged (union of permissions, deduplicated). Each entry is
|
|
15
|
-
* validated against `siteUrl` to fail loud on dead config the browser would
|
|
16
|
-
* never honor.
|
|
17
|
-
*/
|
|
18
|
-
/**
|
|
19
|
-
* Collect raw allowedOrigins from config and env, source-tagged.
|
|
20
|
-
*
|
|
21
|
-
* Returns raw values — the caller is expected to pass the result through
|
|
22
|
-
* `validateAllowedOrigins()` before use in passkey verification.
|
|
23
|
-
*/
|
|
24
|
-
function getConfiguredAllowedOrigins(config) {
|
|
25
|
-
const tagged = [];
|
|
26
|
-
if (config?.allowedOrigins) {
|
|
27
|
-
for (const origin of config.allowedOrigins) if (origin) tagged.push({
|
|
28
|
-
origin,
|
|
29
|
-
source: "config.allowedOrigins"
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
for (const origin of getEnvAllowedOrigins()) tagged.push({
|
|
33
|
-
origin,
|
|
34
|
-
source: "EMDASH_ALLOWED_ORIGINS"
|
|
35
|
-
});
|
|
36
|
-
return tagged;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Validate per-entry shape rules (no `siteUrl` needed):
|
|
40
|
-
* - parses as `URL`
|
|
41
|
-
* - protocol is `http:` or `https:`
|
|
42
|
-
* - hostname has no trailing dot (`example.com.` rejected)
|
|
43
|
-
* - hostname has no empty labels (`foo..example.com` rejected)
|
|
44
|
-
*
|
|
45
|
-
* Returns the deduplicated, normalized origin form (`URL.origin`) of every
|
|
46
|
-
* input, in input order. Throws on the first violation with a source-tagged
|
|
47
|
-
* error message.
|
|
48
|
-
*/
|
|
49
|
-
function validateOriginShape(tagged) {
|
|
50
|
-
const normalized = [];
|
|
51
|
-
const seen = /* @__PURE__ */ new Set();
|
|
52
|
-
for (const { origin, source } of tagged) {
|
|
53
|
-
let parsed;
|
|
54
|
-
try {
|
|
55
|
-
parsed = new URL(origin);
|
|
56
|
-
} catch (e) {
|
|
57
|
-
throw configError(source, `invalid URL: "${origin}"`, e);
|
|
58
|
-
}
|
|
59
|
-
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") throw configError(source, `origin must be http or https: "${origin}" (got ${parsed.protocol})`);
|
|
60
|
-
if (parsed.hostname.endsWith(".")) throw configError(source, `hostname has a trailing dot: "${origin}". Remove the trailing dot — assertion origins from the browser do not include it.`);
|
|
61
|
-
if (parsed.hostname.split(".").includes("")) throw configError(source, `hostname has empty labels: "${origin}"`);
|
|
62
|
-
if (!seen.has(parsed.origin)) {
|
|
63
|
-
seen.add(parsed.origin);
|
|
64
|
-
normalized.push(parsed.origin);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return normalized;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Validate the effective merged allowedOrigins set against `siteUrl`.
|
|
71
|
-
*
|
|
72
|
-
* Performs `validateOriginShape()` plus the siteUrl-dependent rules:
|
|
73
|
-
* - Rule A: non-empty origins ⇒ `siteUrl` is set
|
|
74
|
-
* - `siteUrl` hostname is not an IP literal (multi-origin requires a domain)
|
|
75
|
-
* - `siteUrl` hostname has no trailing dot (cannot match assertion origins)
|
|
76
|
-
* - Rule B: each origin's hostname is `siteHost` exactly or a subdomain
|
|
77
|
-
*
|
|
78
|
-
* Throws on first violation. Returns the deduplicated normalized origins.
|
|
79
|
-
*
|
|
80
|
-
* Use this at the runtime chokepoint (where config + env are merged into the
|
|
81
|
-
* effective set). At Astro integration init, prefer `validateOriginShape()`
|
|
82
|
-
* for shape-only checks on `config.allowedOrigins`, since `siteUrl` may be
|
|
83
|
-
* supplied at runtime via `EMDASH_SITE_URL`.
|
|
84
|
-
*/
|
|
85
|
-
function validateAllowedOrigins(siteUrl, tagged) {
|
|
86
|
-
const normalized = validateOriginShape(tagged);
|
|
87
|
-
if (normalized.length === 0) return normalized;
|
|
88
|
-
if (!siteUrl) throw new Error(`EmDash config error: allowedOrigins is set (${normalized.length} ${normalized.length === 1 ? "entry" : "entries"}) but siteUrl is not. Without a canonical siteUrl, rpId is derived from the request hostname, defeating multi-origin passkeys. Set siteUrl in astro.config.mjs or via EMDASH_SITE_URL.`);
|
|
89
|
-
let siteHost;
|
|
90
|
-
try {
|
|
91
|
-
siteHost = new URL(siteUrl).hostname;
|
|
92
|
-
} catch (e) {
|
|
93
|
-
throw new Error(`EmDash config error: siteUrl is not a valid URL: "${siteUrl}"`, { cause: e });
|
|
94
|
-
}
|
|
95
|
-
if (siteHost.endsWith(".")) throw new Error(`EmDash config error: siteUrl "${siteUrl}" has a trailing-dot hostname, which cannot match assertion origins. Remove the trailing dot when using allowedOrigins.`);
|
|
96
|
-
if (isIPLiteralHostname(siteHost)) throw new Error(`EmDash config error: siteUrl "${siteUrl}" uses an IP-literal hostname. Multi-origin passkeys require a domain-based siteUrl — IP addresses cannot have valid subdomains for WebAuthn rpId.`);
|
|
97
|
-
for (const { origin, source } of tagged) {
|
|
98
|
-
const h = new URL(origin).hostname;
|
|
99
|
-
if (h !== siteHost && !h.endsWith("." + siteHost)) throw configError(source, `"${origin}" is not a subdomain of siteUrl "${siteUrl}". Allowed origins must be the same hostname as siteUrl or a subdomain of it.`);
|
|
100
|
-
}
|
|
101
|
-
return normalized;
|
|
102
|
-
}
|
|
103
|
-
function configError(source, detail, cause) {
|
|
104
|
-
const err = /* @__PURE__ */ new Error(`EmDash config error in ${source}: ${detail}`);
|
|
105
|
-
if (cause !== void 0) err.cause = cause;
|
|
106
|
-
return err;
|
|
107
|
-
}
|
|
108
|
-
const IPV4_DOTTED_DECIMAL_RE = /^\d+(\.\d+){3}$/;
|
|
109
|
-
function isIPLiteralHostname(h) {
|
|
110
|
-
if (h.startsWith("[")) return true;
|
|
111
|
-
return IPV4_DOTTED_DECIMAL_RE.test(h);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
//#endregion
|
|
115
|
-
export { validateAllowedOrigins as n, validateOriginShape as r, getConfiguredAllowedOrigins as t };
|
|
116
|
-
//# sourceMappingURL=allowed-origins-U1z4TdEZ.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"allowed-origins-U1z4TdEZ.mjs","names":[],"sources":["../src/auth/allowed-origins.ts"],"sourcesContent":["/**\n * Resolution and validation of multi-origin passkey verification.\n *\n * `allowedOrigins` lets one EmDash deployment accept passkey assertions from\n * several hostnames sharing the same `rpId` (e.g. apex + preview/staging\n * subdomains under one registrable parent). Origins come from two sources:\n *\n * - `EmDashConfig.allowedOrigins` (declared in `astro.config.mjs`)\n * - `EMDASH_ALLOWED_ORIGINS` (comma-separated runtime env var)\n *\n * Sources are merged (union of permissions, deduplicated). Each entry is\n * validated against `siteUrl` to fail loud on dead config the browser would\n * never honor.\n */\n\nimport { getEnvAllowedOrigins } from \"../api/public-url.js\";\nimport type { EmDashConfig } from \"../astro/integration/runtime.js\";\n\nexport type AllowedOriginSource = \"config.allowedOrigins\" | \"EMDASH_ALLOWED_ORIGINS\";\n\nexport interface TaggedOrigin {\n\t/** Raw entry as declared by the operator. */\n\torigin: string;\n\t/** Where the entry came from (used for source-attributed errors). */\n\tsource: AllowedOriginSource;\n}\n\n/**\n * Collect raw allowedOrigins from config and env, source-tagged.\n *\n * Returns raw values — the caller is expected to pass the result through\n * `validateAllowedOrigins()` before use in passkey verification.\n */\nexport function getConfiguredAllowedOrigins(config?: EmDashConfig): TaggedOrigin[] {\n\tconst tagged: TaggedOrigin[] = [];\n\tif (config?.allowedOrigins) {\n\t\tfor (const origin of config.allowedOrigins) {\n\t\t\tif (origin) tagged.push({ origin, source: \"config.allowedOrigins\" });\n\t\t}\n\t}\n\tfor (const origin of getEnvAllowedOrigins()) {\n\t\ttagged.push({ origin, source: \"EMDASH_ALLOWED_ORIGINS\" });\n\t}\n\treturn tagged;\n}\n\n/**\n * Validate per-entry shape rules (no `siteUrl` needed):\n * - parses as `URL`\n * - protocol is `http:` or `https:`\n * - hostname has no trailing dot (`example.com.` rejected)\n * - hostname has no empty labels (`foo..example.com` rejected)\n *\n * Returns the deduplicated, normalized origin form (`URL.origin`) of every\n * input, in input order. Throws on the first violation with a source-tagged\n * error message.\n */\nexport function validateOriginShape(tagged: TaggedOrigin[]): string[] {\n\tconst normalized: string[] = [];\n\tconst seen = new Set<string>();\n\tfor (const { origin, source } of tagged) {\n\t\tlet parsed: URL;\n\t\ttry {\n\t\t\tparsed = new URL(origin);\n\t\t} catch (e) {\n\t\t\tthrow configError(source, `invalid URL: \"${origin}\"`, e);\n\t\t}\n\t\tif (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") {\n\t\t\tthrow configError(\n\t\t\t\tsource,\n\t\t\t\t`origin must be http or https: \"${origin}\" (got ${parsed.protocol})`,\n\t\t\t);\n\t\t}\n\t\tif (parsed.hostname.endsWith(\".\")) {\n\t\t\tthrow configError(\n\t\t\t\tsource,\n\t\t\t\t`hostname has a trailing dot: \"${origin}\". Remove the trailing dot — assertion origins from the browser do not include it.`,\n\t\t\t);\n\t\t}\n\t\tif (parsed.hostname.split(\".\").includes(\"\")) {\n\t\t\tthrow configError(source, `hostname has empty labels: \"${origin}\"`);\n\t\t}\n\t\tif (!seen.has(parsed.origin)) {\n\t\t\tseen.add(parsed.origin);\n\t\t\tnormalized.push(parsed.origin);\n\t\t}\n\t}\n\treturn normalized;\n}\n\n/**\n * Validate the effective merged allowedOrigins set against `siteUrl`.\n *\n * Performs `validateOriginShape()` plus the siteUrl-dependent rules:\n * - Rule A: non-empty origins ⇒ `siteUrl` is set\n * - `siteUrl` hostname is not an IP literal (multi-origin requires a domain)\n * - `siteUrl` hostname has no trailing dot (cannot match assertion origins)\n * - Rule B: each origin's hostname is `siteHost` exactly or a subdomain\n *\n * Throws on first violation. Returns the deduplicated normalized origins.\n *\n * Use this at the runtime chokepoint (where config + env are merged into the\n * effective set). At Astro integration init, prefer `validateOriginShape()`\n * for shape-only checks on `config.allowedOrigins`, since `siteUrl` may be\n * supplied at runtime via `EMDASH_SITE_URL`.\n */\nexport function validateAllowedOrigins(\n\tsiteUrl: string | undefined,\n\ttagged: TaggedOrigin[],\n): string[] {\n\tconst normalized = validateOriginShape(tagged);\n\tif (normalized.length === 0) return normalized;\n\n\tif (!siteUrl) {\n\t\tthrow new Error(\n\t\t\t`EmDash config error: allowedOrigins is set (${normalized.length} ${\n\t\t\t\tnormalized.length === 1 ? \"entry\" : \"entries\"\n\t\t\t}) but siteUrl is not. Without a canonical siteUrl, rpId is derived from the request hostname, defeating multi-origin passkeys. Set siteUrl in astro.config.mjs or via EMDASH_SITE_URL.`,\n\t\t);\n\t}\n\n\tlet siteHost: string;\n\ttry {\n\t\tsiteHost = new URL(siteUrl).hostname;\n\t} catch (e) {\n\t\tthrow new Error(`EmDash config error: siteUrl is not a valid URL: \"${siteUrl}\"`, {\n\t\t\tcause: e,\n\t\t});\n\t}\n\n\tif (siteHost.endsWith(\".\")) {\n\t\tthrow new Error(\n\t\t\t`EmDash config error: siteUrl \"${siteUrl}\" has a trailing-dot hostname, which cannot match assertion origins. Remove the trailing dot when using allowedOrigins.`,\n\t\t);\n\t}\n\tif (isIPLiteralHostname(siteHost)) {\n\t\tthrow new Error(\n\t\t\t`EmDash config error: siteUrl \"${siteUrl}\" uses an IP-literal hostname. Multi-origin passkeys require a domain-based siteUrl — IP addresses cannot have valid subdomains for WebAuthn rpId.`,\n\t\t);\n\t}\n\n\tfor (const { origin, source } of tagged) {\n\t\tconst h = new URL(origin).hostname;\n\t\tif (h !== siteHost && !h.endsWith(\".\" + siteHost)) {\n\t\t\tthrow configError(\n\t\t\t\tsource,\n\t\t\t\t`\"${origin}\" is not a subdomain of siteUrl \"${siteUrl}\". Allowed origins must be the same hostname as siteUrl or a subdomain of it.`,\n\t\t\t);\n\t\t}\n\t}\n\n\treturn normalized;\n}\n\nfunction configError(source: AllowedOriginSource, detail: string, cause?: unknown): Error {\n\tconst err = new Error(`EmDash config error in ${source}: ${detail}`);\n\tif (cause !== undefined) (err as Error & { cause?: unknown }).cause = cause;\n\treturn err;\n}\n\nconst IPV4_DOTTED_DECIMAL_RE = /^\\d+(\\.\\d+){3}$/;\n\nfunction isIPLiteralHostname(h: string): boolean {\n\t// IPv6 hostnames are bracketed by URL.hostname, e.g. \"[::1]\"\n\tif (h.startsWith(\"[\")) return true;\n\t// IPv4 dotted-decimal\n\treturn IPV4_DOTTED_DECIMAL_RE.test(h);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiCA,SAAgB,4BAA4B,QAAuC;CAClF,MAAM,SAAyB,EAAE;AACjC,KAAI,QAAQ,gBACX;OAAK,MAAM,UAAU,OAAO,eAC3B,KAAI,OAAQ,QAAO,KAAK;GAAE;GAAQ,QAAQ;GAAyB,CAAC;;AAGtE,MAAK,MAAM,UAAU,sBAAsB,CAC1C,QAAO,KAAK;EAAE;EAAQ,QAAQ;EAA0B,CAAC;AAE1D,QAAO;;;;;;;;;;;;;AAcR,SAAgB,oBAAoB,QAAkC;CACrE,MAAM,aAAuB,EAAE;CAC/B,MAAM,uBAAO,IAAI,KAAa;AAC9B,MAAK,MAAM,EAAE,QAAQ,YAAY,QAAQ;EACxC,IAAI;AACJ,MAAI;AACH,YAAS,IAAI,IAAI,OAAO;WAChB,GAAG;AACX,SAAM,YAAY,QAAQ,iBAAiB,OAAO,IAAI,EAAE;;AAEzD,MAAI,OAAO,aAAa,WAAW,OAAO,aAAa,SACtD,OAAM,YACL,QACA,kCAAkC,OAAO,SAAS,OAAO,SAAS,GAClE;AAEF,MAAI,OAAO,SAAS,SAAS,IAAI,CAChC,OAAM,YACL,QACA,iCAAiC,OAAO,oFACxC;AAEF,MAAI,OAAO,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,CAC1C,OAAM,YAAY,QAAQ,+BAA+B,OAAO,GAAG;AAEpE,MAAI,CAAC,KAAK,IAAI,OAAO,OAAO,EAAE;AAC7B,QAAK,IAAI,OAAO,OAAO;AACvB,cAAW,KAAK,OAAO,OAAO;;;AAGhC,QAAO;;;;;;;;;;;;;;;;;;AAmBR,SAAgB,uBACf,SACA,QACW;CACX,MAAM,aAAa,oBAAoB,OAAO;AAC9C,KAAI,WAAW,WAAW,EAAG,QAAO;AAEpC,KAAI,CAAC,QACJ,OAAM,IAAI,MACT,+CAA+C,WAAW,OAAO,GAChE,WAAW,WAAW,IAAI,UAAU,UACpC,wLACD;CAGF,IAAI;AACJ,KAAI;AACH,aAAW,IAAI,IAAI,QAAQ,CAAC;UACpB,GAAG;AACX,QAAM,IAAI,MAAM,qDAAqD,QAAQ,IAAI,EAChF,OAAO,GACP,CAAC;;AAGH,KAAI,SAAS,SAAS,IAAI,CACzB,OAAM,IAAI,MACT,iCAAiC,QAAQ,yHACzC;AAEF,KAAI,oBAAoB,SAAS,CAChC,OAAM,IAAI,MACT,iCAAiC,QAAQ,oJACzC;AAGF,MAAK,MAAM,EAAE,QAAQ,YAAY,QAAQ;EACxC,MAAM,IAAI,IAAI,IAAI,OAAO,CAAC;AAC1B,MAAI,MAAM,YAAY,CAAC,EAAE,SAAS,MAAM,SAAS,CAChD,OAAM,YACL,QACA,IAAI,OAAO,mCAAmC,QAAQ,+EACtD;;AAIH,QAAO;;AAGR,SAAS,YAAY,QAA6B,QAAgB,OAAwB;CACzF,MAAM,sBAAM,IAAI,MAAM,0BAA0B,OAAO,IAAI,SAAS;AACpE,KAAI,UAAU,OAAW,CAAC,IAAoC,QAAQ;AACtE,QAAO;;AAGR,MAAM,yBAAyB;AAE/B,SAAS,oBAAoB,GAAoB;AAEhD,KAAI,EAAE,WAAW,IAAI,CAAE,QAAO;AAE9B,QAAO,uBAAuB,KAAK,EAAE"}
|