emdash 0.12.0 → 0.14.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/{adapters-BktHA7EO.d.mts → adapters-9DybjTO6.d.mts} +1 -1
- package/dist/{adapters-BktHA7EO.d.mts.map → adapters-9DybjTO6.d.mts.map} +1 -1
- package/dist/allowed-origins-CDdG-4Gd.mjs +116 -0
- package/dist/allowed-origins-CDdG-4Gd.mjs.map +1 -0
- package/dist/api/route-utils.d.mts +68 -0
- package/dist/api/route-utils.d.mts.map +1 -0
- package/dist/api/route-utils.mjs +44 -0
- package/dist/api/route-utils.mjs.map +1 -0
- package/dist/api/schemas/index.d.mts +2 -0
- package/dist/api/schemas/index.mjs +4 -0
- package/dist/api-BMLZuwM4.mjs +3941 -0
- package/dist/api-BMLZuwM4.mjs.map +1 -0
- package/dist/api-tokens-D3C9v02m.mjs +3 -0
- package/dist/api-tokens-eYymBhIT.mjs +153 -0
- package/dist/api-tokens-eYymBhIT.mjs.map +1 -0
- package/dist/{apply-C1ZORgcy.mjs → apply-v4DBgjPw.mjs} +19 -346
- package/dist/apply-v4DBgjPw.mjs.map +1 -0
- package/dist/astro/index.d.mts +10 -6
- package/dist/astro/index.d.mts.map +1 -1
- package/dist/astro/index.mjs +42 -83
- package/dist/astro/index.mjs.map +1 -1
- package/dist/astro/middleware/auth.d.mts +9 -5
- package/dist/astro/middleware/auth.d.mts.map +1 -1
- package/dist/astro/middleware/auth.mjs +25 -65
- package/dist/astro/middleware/auth.mjs.map +1 -1
- package/dist/astro/middleware/redirect.mjs +5 -5
- package/dist/astro/middleware/request-context.mjs +4 -4
- package/dist/astro/middleware/setup.mjs +1 -1
- package/dist/astro/middleware.d.mts.map +1 -1
- package/dist/astro/middleware.mjs +140 -69
- package/dist/astro/middleware.mjs.map +1 -1
- package/dist/astro/routes/PluginRegistry.d.mts +15 -0
- package/dist/astro/routes/PluginRegistry.d.mts.map +1 -0
- package/dist/astro/routes/PluginRegistry.mjs +25 -0
- package/dist/astro/routes/PluginRegistry.mjs.map +1 -0
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.d.mts +15 -0
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +67 -0
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs.map +1 -0
- package/dist/astro/routes/api/admin/allowed-domains/index.d.mts +15 -0
- package/dist/astro/routes/api/admin/allowed-domains/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +67 -0
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/api-tokens/_id_.d.mts +11 -0
- package/dist/astro/routes/api/admin/api-tokens/_id_.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +33 -0
- package/dist/astro/routes/api/admin/api-tokens/_id_.mjs.map +1 -0
- package/dist/astro/routes/api/admin/api-tokens/index.d.mts +17 -0
- package/dist/astro/routes/api/admin/api-tokens/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/api-tokens/index.mjs +52 -0
- package/dist/astro/routes/api/admin/api-tokens/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/bylines/_id_/index.d.mts +10 -0
- package/dist/astro/routes/api/admin/bylines/_id_/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +74 -0
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/bylines/index.d.mts +9 -0
- package/dist/astro/routes/api/admin/bylines/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/bylines/index.mjs +61 -0
- package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/comments/_id_/status.d.mts +8 -0
- package/dist/astro/routes/api/admin/comments/_id_/status.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +80 -0
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs.map +1 -0
- package/dist/astro/routes/api/admin/comments/_id_.d.mts +15 -0
- package/dist/astro/routes/api/admin/comments/_id_.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/comments/_id_.mjs +47 -0
- package/dist/astro/routes/api/admin/comments/_id_.mjs.map +1 -0
- package/dist/astro/routes/api/admin/comments/bulk.d.mts +8 -0
- package/dist/astro/routes/api/admin/comments/bulk.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/comments/bulk.mjs +36 -0
- package/dist/astro/routes/api/admin/comments/bulk.mjs.map +1 -0
- package/dist/astro/routes/api/admin/comments/counts.d.mts +8 -0
- package/dist/astro/routes/api/admin/comments/counts.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/comments/counts.mjs +25 -0
- package/dist/astro/routes/api/admin/comments/counts.mjs.map +1 -0
- package/dist/astro/routes/api/admin/comments/index.d.mts +11 -0
- package/dist/astro/routes/api/admin/comments/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/comments/index.mjs +40 -0
- package/dist/astro/routes/api/admin/comments/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.d.mts +8 -0
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +48 -0
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs.map +1 -0
- package/dist/astro/routes/api/admin/hooks/exclusive/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/hooks/exclusive/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +36 -0
- package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/oauth-clients/_id_.d.mts +19 -0
- package/dist/astro/routes/api/admin/oauth-clients/_id_.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +69 -0
- package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs.map +1 -0
- package/dist/astro/routes/api/admin/oauth-clients/index.d.mts +15 -0
- package/dist/astro/routes/api/admin/oauth-clients/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs +50 -0
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/plugins/_id_/disable.d.mts +8 -0
- package/dist/astro/routes/api/admin/plugins/_id_/disable.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +56 -0
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs.map +1 -0
- package/dist/astro/routes/api/admin/plugins/_id_/enable.d.mts +8 -0
- package/dist/astro/routes/api/admin/plugins/_id_/enable.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +59 -0
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs.map +1 -0
- package/dist/astro/routes/api/admin/plugins/_id_/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/plugins/_id_/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +51 -0
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.d.mts +8 -0
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +58 -0
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -0
- package/dist/astro/routes/api/admin/plugins/_id_/update.d.mts +8 -0
- package/dist/astro/routes/api/admin/plugins/_id_/update.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +66 -0
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -0
- package/dist/astro/routes/api/admin/plugins/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/plugins/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/plugins/index.mjs +49 -0
- package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.d.mts +8 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +39 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs.map +1 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +51 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.d.mts +8 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +69 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +58 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/plugins/registry/install.d.mts +8 -0
- package/dist/astro/routes/api/admin/plugins/registry/install.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs +72 -0
- package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -0
- package/dist/astro/routes/api/admin/plugins/updates.d.mts +8 -0
- package/dist/astro/routes/api/admin/plugins/updates.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/plugins/updates.mjs +49 -0
- package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -0
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +51 -0
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.d.mts +8 -0
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +39 -0
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs.map +1 -0
- package/dist/astro/routes/api/admin/themes/marketplace/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/themes/marketplace/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +67 -0
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/users/_id_/disable.d.mts +8 -0
- package/dist/astro/routes/api/admin/users/_id_/disable.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs +43 -0
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs.map +1 -0
- package/dist/astro/routes/api/admin/users/_id_/enable.d.mts +8 -0
- package/dist/astro/routes/api/admin/users/_id_/enable.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs +32 -0
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs.map +1 -0
- package/dist/astro/routes/api/admin/users/_id_/index.d.mts +9 -0
- package/dist/astro/routes/api/admin/users/_id_/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/users/_id_/index.mjs +106 -0
- package/dist/astro/routes/api/admin/users/_id_/index.mjs.map +1 -0
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.d.mts +8 -0
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +46 -0
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs.map +1 -0
- package/dist/astro/routes/api/admin/users/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/users/index.d.mts.map +1 -0
- package/dist/astro/routes/api/admin/users/index.mjs +56 -0
- package/dist/astro/routes/api/admin/users/index.mjs.map +1 -0
- package/dist/astro/routes/api/auth/dev-bypass.d.mts +9 -0
- package/dist/astro/routes/api/auth/dev-bypass.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/dev-bypass.mjs +84 -0
- package/dist/astro/routes/api/auth/dev-bypass.mjs.map +1 -0
- package/dist/astro/routes/api/auth/invite/accept.d.mts +8 -0
- package/dist/astro/routes/api/auth/invite/accept.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/invite/accept.mjs +34 -0
- package/dist/astro/routes/api/auth/invite/accept.mjs.map +1 -0
- package/dist/astro/routes/api/auth/invite/complete.d.mts +8 -0
- package/dist/astro/routes/api/auth/invite/complete.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/invite/complete.mjs +56 -0
- package/dist/astro/routes/api/auth/invite/complete.mjs.map +1 -0
- package/dist/astro/routes/api/auth/invite/index.d.mts +8 -0
- package/dist/astro/routes/api/auth/invite/index.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/invite/index.mjs +53 -0
- package/dist/astro/routes/api/auth/invite/index.mjs.map +1 -0
- package/dist/astro/routes/api/auth/invite/register-options.d.mts +8 -0
- package/dist/astro/routes/api/auth/invite/register-options.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/invite/register-options.mjs +46 -0
- package/dist/astro/routes/api/auth/invite/register-options.mjs.map +1 -0
- package/dist/astro/routes/api/auth/logout.d.mts +8 -0
- package/dist/astro/routes/api/auth/logout.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/logout.mjs +27 -0
- package/dist/astro/routes/api/auth/logout.mjs.map +1 -0
- package/dist/astro/routes/api/auth/magic-link/send.d.mts +8 -0
- package/dist/astro/routes/api/auth/magic-link/send.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/magic-link/send.mjs +50 -0
- package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -0
- package/dist/astro/routes/api/auth/magic-link/verify.d.mts +8 -0
- package/dist/astro/routes/api/auth/magic-link/verify.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +35 -0
- package/dist/astro/routes/api/auth/magic-link/verify.mjs.map +1 -0
- package/dist/astro/routes/api/auth/me.d.mts +14 -0
- package/dist/astro/routes/api/auth/me.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/me.mjs +43 -0
- package/dist/astro/routes/api/auth/me.mjs.map +1 -0
- package/dist/astro/routes/api/auth/mode.d.mts +8 -0
- package/dist/astro/routes/api/auth/mode.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/mode.mjs +29 -0
- package/dist/astro/routes/api/auth/mode.mjs.map +1 -0
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.d.mts +8 -0
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +130 -0
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs.map +1 -0
- package/dist/astro/routes/api/auth/oauth/_provider_.d.mts +8 -0
- package/dist/astro/routes/api/auth/oauth/_provider_.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/oauth/_provider_.mjs +60 -0
- package/dist/astro/routes/api/auth/oauth/_provider_.mjs.map +1 -0
- package/dist/astro/routes/api/auth/passkey/_id_.d.mts +15 -0
- package/dist/astro/routes/api/auth/passkey/_id_.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/passkey/_id_.mjs +64 -0
- package/dist/astro/routes/api/auth/passkey/_id_.mjs.map +1 -0
- package/dist/astro/routes/api/auth/passkey/index.d.mts +8 -0
- package/dist/astro/routes/api/auth/passkey/index.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/passkey/index.mjs +28 -0
- package/dist/astro/routes/api/auth/passkey/index.mjs.map +1 -0
- package/dist/astro/routes/api/auth/passkey/options.d.mts +8 -0
- package/dist/astro/routes/api/auth/passkey/options.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/passkey/options.mjs +48 -0
- package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -0
- package/dist/astro/routes/api/auth/passkey/register/options.d.mts +8 -0
- package/dist/astro/routes/api/auth/passkey/register/options.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +46 -0
- package/dist/astro/routes/api/auth/passkey/register/options.mjs.map +1 -0
- package/dist/astro/routes/api/auth/passkey/register/verify.d.mts +8 -0
- package/dist/astro/routes/api/auth/passkey/register/verify.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +61 -0
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs.map +1 -0
- package/dist/astro/routes/api/auth/passkey/verify.d.mts +8 -0
- package/dist/astro/routes/api/auth/passkey/verify.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/passkey/verify.mjs +49 -0
- package/dist/astro/routes/api/auth/passkey/verify.mjs.map +1 -0
- package/dist/astro/routes/api/auth/signup/complete.d.mts +8 -0
- package/dist/astro/routes/api/auth/signup/complete.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/signup/complete.mjs +57 -0
- package/dist/astro/routes/api/auth/signup/complete.mjs.map +1 -0
- package/dist/astro/routes/api/auth/signup/request.d.mts +8 -0
- package/dist/astro/routes/api/auth/signup/request.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/signup/request.mjs +46 -0
- package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -0
- package/dist/astro/routes/api/auth/signup/verify.d.mts +8 -0
- package/dist/astro/routes/api/auth/signup/verify.d.mts.map +1 -0
- package/dist/astro/routes/api/auth/signup/verify.mjs +35 -0
- package/dist/astro/routes/api/auth/signup/verify.mjs.map +1 -0
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.d.mts +15 -0
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.d.mts.map +1 -0
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +193 -0
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/compare.d.mts +8 -0
- package/dist/astro/routes/api/content/_collection_/_id_/compare.d.mts.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +20 -0
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.d.mts +8 -0
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.d.mts.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +28 -0
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.d.mts +8 -0
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.d.mts.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +30 -0
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.d.mts +8 -0
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.d.mts.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +23 -0
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.d.mts +8 -0
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.d.mts.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +78 -0
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts +8 -0
- package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +48 -0
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/restore.d.mts +8 -0
- package/dist/astro/routes/api/content/_collection_/_id_/restore.d.mts.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +28 -0
- package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.d.mts +8 -0
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.d.mts.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +22 -0
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.d.mts +9 -0
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.d.mts.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +58 -0
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts +15 -0
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +85 -0
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/translations.d.mts +8 -0
- package/dist/astro/routes/api/content/_collection_/_id_/translations.d.mts.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +43 -0
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.d.mts +8 -0
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.d.mts.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +28 -0
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_.d.mts +10 -0
- package/dist/astro/routes/api/content/_collection_/_id_.d.mts.map +1 -0
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +88 -0
- package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/index.d.mts +9 -0
- package/dist/astro/routes/api/content/_collection_/index.d.mts.map +1 -0
- package/dist/astro/routes/api/content/_collection_/index.mjs +61 -0
- package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -0
- package/dist/astro/routes/api/content/_collection_/trash.d.mts +8 -0
- package/dist/astro/routes/api/content/_collection_/trash.d.mts.map +1 -0
- package/dist/astro/routes/api/content/_collection_/trash.mjs +25 -0
- package/dist/astro/routes/api/content/_collection_/trash.mjs.map +1 -0
- package/dist/astro/routes/api/dashboard.d.mts +8 -0
- package/dist/astro/routes/api/dashboard.d.mts.map +1 -0
- package/dist/astro/routes/api/dashboard.mjs +26 -0
- package/dist/astro/routes/api/dashboard.mjs.map +1 -0
- package/dist/astro/routes/api/dev/emails.d.mts +9 -0
- package/dist/astro/routes/api/dev/emails.d.mts.map +1 -0
- package/dist/astro/routes/api/dev/emails.mjs +20 -0
- package/dist/astro/routes/api/dev/emails.mjs.map +1 -0
- package/dist/astro/routes/api/import/probe.d.mts +18 -0
- package/dist/astro/routes/api/import/probe.d.mts.map +1 -0
- package/dist/astro/routes/api/import/probe.mjs +35 -0
- package/dist/astro/routes/api/import/probe.mjs.map +1 -0
- package/dist/astro/routes/api/import/wordpress/analyze.d.mts +88 -0
- package/dist/astro/routes/api/import/wordpress/analyze.d.mts.map +1 -0
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +313 -0
- package/dist/astro/routes/api/import/wordpress/analyze.mjs.map +1 -0
- package/dist/astro/routes/api/import/wordpress/execute.d.mts +93 -0
- package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -0
- package/dist/astro/routes/api/import/wordpress/execute.mjs +593 -0
- package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -0
- package/dist/astro/routes/api/import/wordpress/media.d.mts +36 -0
- package/dist/astro/routes/api/import/wordpress/media.d.mts.map +1 -0
- package/dist/astro/routes/api/import/wordpress/media.mjs +225 -0
- package/dist/astro/routes/api/import/wordpress/media.mjs.map +1 -0
- package/dist/astro/routes/api/import/wordpress/prepare.d.mts +20 -0
- package/dist/astro/routes/api/import/wordpress/prepare.d.mts.map +1 -0
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +120 -0
- package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -0
- package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts +49 -0
- package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts.map +1 -0
- package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs +131 -0
- package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs.map +1 -0
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +22 -0
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts.map +1 -0
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +139 -0
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -0
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +16 -0
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts.map +1 -0
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +71 -0
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -0
- package/dist/astro/routes/api/import/wordpress-plugin/callback.d.mts +8 -0
- package/dist/astro/routes/api/import/wordpress-plugin/callback.d.mts.map +1 -0
- package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +29 -0
- package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs.map +1 -0
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +20 -0
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts.map +1 -0
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +219 -0
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -0
- package/dist/astro/routes/api/manifest.d.mts +8 -0
- package/dist/astro/routes/api/manifest.d.mts.map +1 -0
- package/dist/astro/routes/api/manifest.mjs +47 -0
- package/dist/astro/routes/api/manifest.mjs.map +1 -0
- package/dist/astro/routes/api/mcp.d.mts +16 -0
- package/dist/astro/routes/api/mcp.d.mts.map +1 -0
- package/dist/astro/routes/api/mcp.mjs +1414 -0
- package/dist/astro/routes/api/mcp.mjs.map +1 -0
- package/dist/astro/routes/api/media/_id_/confirm.d.mts +11 -0
- package/dist/astro/routes/api/media/_id_/confirm.d.mts.map +1 -0
- package/dist/astro/routes/api/media/_id_/confirm.mjs +61 -0
- package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -0
- package/dist/astro/routes/api/media/_id_.d.mts +23 -0
- package/dist/astro/routes/api/media/_id_.d.mts.map +1 -0
- package/dist/astro/routes/api/media/_id_.mjs +83 -0
- package/dist/astro/routes/api/media/_id_.mjs.map +1 -0
- package/dist/astro/routes/api/media/file/_...key_.d.mts +8 -0
- package/dist/astro/routes/api/media/file/_...key_.d.mts.map +1 -0
- package/dist/astro/routes/api/media/file/_...key_.mjs +52 -0
- package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -0
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.d.mts +15 -0
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.d.mts.map +1 -0
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +52 -0
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs.map +1 -0
- package/dist/astro/routes/api/media/providers/_providerId_/index.d.mts +15 -0
- package/dist/astro/routes/api/media/providers/_providerId_/index.d.mts.map +1 -0
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +75 -0
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs.map +1 -0
- package/dist/astro/routes/api/media/providers/index.d.mts +11 -0
- package/dist/astro/routes/api/media/providers/index.d.mts.map +1 -0
- package/dist/astro/routes/api/media/providers/index.mjs +21 -0
- package/dist/astro/routes/api/media/providers/index.mjs.map +1 -0
- package/dist/astro/routes/api/media/upload-url.d.mts +11 -0
- package/dist/astro/routes/api/media/upload-url.d.mts.map +1 -0
- package/dist/astro/routes/api/media/upload-url.mjs +82 -0
- package/dist/astro/routes/api/media/upload-url.mjs.map +1 -0
- package/dist/astro/routes/api/media.d.mts +17 -0
- package/dist/astro/routes/api/media.d.mts.map +1 -0
- package/dist/astro/routes/api/media.mjs +138 -0
- package/dist/astro/routes/api/media.mjs.map +1 -0
- package/dist/astro/routes/api/menus/_name_/items/_id_.d.mts +9 -0
- package/dist/astro/routes/api/menus/_name_/items/_id_.d.mts.map +1 -0
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +48 -0
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -0
- package/dist/astro/routes/api/menus/_name_/items.d.mts +8 -0
- package/dist/astro/routes/api/menus/_name_/items.d.mts.map +1 -0
- package/dist/astro/routes/api/menus/_name_/items.mjs +31 -0
- package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -0
- package/dist/astro/routes/api/menus/_name_/reorder.d.mts +8 -0
- package/dist/astro/routes/api/menus/_name_/reorder.d.mts.map +1 -0
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +31 -0
- package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -0
- package/dist/astro/routes/api/menus/_name_/translations.d.mts +9 -0
- package/dist/astro/routes/api/menus/_name_/translations.d.mts.map +1 -0
- package/dist/astro/routes/api/menus/_name_/translations.mjs +62 -0
- package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -0
- package/dist/astro/routes/api/menus/_name_.d.mts +10 -0
- package/dist/astro/routes/api/menus/_name_.d.mts.map +1 -0
- package/dist/astro/routes/api/menus/_name_.mjs +60 -0
- package/dist/astro/routes/api/menus/_name_.mjs.map +1 -0
- package/dist/astro/routes/api/menus/index.d.mts +9 -0
- package/dist/astro/routes/api/menus/index.d.mts.map +1 -0
- package/dist/astro/routes/api/menus/index.mjs +40 -0
- package/dist/astro/routes/api/menus/index.mjs.map +1 -0
- package/dist/astro/routes/api/oauth/authorize.d.mts +9 -0
- package/dist/astro/routes/api/oauth/authorize.d.mts.map +1 -0
- package/dist/astro/routes/api/oauth/authorize.mjs +260 -0
- package/dist/astro/routes/api/oauth/authorize.mjs.map +1 -0
- package/dist/astro/routes/api/oauth/device/authorize.d.mts +8 -0
- package/dist/astro/routes/api/oauth/device/authorize.d.mts.map +1 -0
- package/dist/astro/routes/api/oauth/device/authorize.mjs +32 -0
- package/dist/astro/routes/api/oauth/device/authorize.mjs.map +1 -0
- package/dist/astro/routes/api/oauth/device/code.d.mts +8 -0
- package/dist/astro/routes/api/oauth/device/code.d.mts.map +1 -0
- package/dist/astro/routes/api/oauth/device/code.mjs +36 -0
- package/dist/astro/routes/api/oauth/device/code.mjs.map +1 -0
- package/dist/astro/routes/api/oauth/device/token.d.mts +8 -0
- package/dist/astro/routes/api/oauth/device/token.d.mts.map +1 -0
- package/dist/astro/routes/api/oauth/device/token.mjs +47 -0
- package/dist/astro/routes/api/oauth/device/token.mjs.map +1 -0
- package/dist/astro/routes/api/oauth/register.d.mts +9 -0
- package/dist/astro/routes/api/oauth/register.d.mts.map +1 -0
- package/dist/astro/routes/api/oauth/register.mjs +113 -0
- package/dist/astro/routes/api/oauth/register.mjs.map +1 -0
- package/dist/astro/routes/api/oauth/token/refresh.d.mts +8 -0
- package/dist/astro/routes/api/oauth/token/refresh.d.mts.map +1 -0
- package/dist/astro/routes/api/oauth/token/refresh.mjs +30 -0
- package/dist/astro/routes/api/oauth/token/refresh.mjs.map +1 -0
- package/dist/astro/routes/api/oauth/token/revoke.d.mts +8 -0
- package/dist/astro/routes/api/oauth/token/revoke.d.mts.map +1 -0
- package/dist/astro/routes/api/oauth/token/revoke.mjs +27 -0
- package/dist/astro/routes/api/oauth/token/revoke.mjs.map +1 -0
- package/dist/astro/routes/api/oauth/token.d.mts +9 -0
- package/dist/astro/routes/api/oauth/token.d.mts.map +1 -0
- package/dist/astro/routes/api/oauth/token.mjs +141 -0
- package/dist/astro/routes/api/oauth/token.mjs.map +1 -0
- package/dist/astro/routes/api/openapi.json.d.mts +8 -0
- package/dist/astro/routes/api/openapi.json.d.mts.map +1 -0
- package/dist/astro/routes/api/openapi.json.mjs +2642 -0
- package/dist/astro/routes/api/openapi.json.mjs.map +1 -0
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.d.mts +12 -0
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.d.mts.map +1 -0
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +78 -0
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs.map +1 -0
- package/dist/astro/routes/api/redirects/404s/index.d.mts +10 -0
- package/dist/astro/routes/api/redirects/404s/index.d.mts.map +1 -0
- package/dist/astro/routes/api/redirects/404s/index.mjs +62 -0
- package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -0
- package/dist/astro/routes/api/redirects/404s/summary.d.mts +8 -0
- package/dist/astro/routes/api/redirects/404s/summary.d.mts.map +1 -0
- package/dist/astro/routes/api/redirects/404s/summary.mjs +34 -0
- package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -0
- package/dist/astro/routes/api/redirects/_id_.d.mts +10 -0
- package/dist/astro/routes/api/redirects/_id_.d.mts.map +1 -0
- package/dist/astro/routes/api/redirects/_id_.mjs +71 -0
- package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -0
- package/dist/astro/routes/api/redirects/index.d.mts +9 -0
- package/dist/astro/routes/api/redirects/index.d.mts.map +1 -0
- package/dist/astro/routes/api/redirects/index.mjs +52 -0
- package/dist/astro/routes/api/redirects/index.mjs.map +1 -0
- package/dist/astro/routes/api/revisions/_revisionId_/index.d.mts +8 -0
- package/dist/astro/routes/api/revisions/_revisionId_/index.d.mts.map +1 -0
- package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +19 -0
- package/dist/astro/routes/api/revisions/_revisionId_/index.mjs.map +1 -0
- package/dist/astro/routes/api/revisions/_revisionId_/restore.d.mts +8 -0
- package/dist/astro/routes/api/revisions/_revisionId_/restore.d.mts.map +1 -0
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +26 -0
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs.map +1 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.d.mts +10 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.d.mts.map +1 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +75 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/index.d.mts +9 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/index.d.mts.map +1 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +63 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.d.mts +8 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.d.mts.map +1 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +54 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -0
- package/dist/astro/routes/api/schema/collections/_slug_/index.d.mts +10 -0
- package/dist/astro/routes/api/schema/collections/_slug_/index.d.mts.map +1 -0
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +79 -0
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -0
- package/dist/astro/routes/api/schema/collections/index.d.mts +9 -0
- package/dist/astro/routes/api/schema/collections/index.d.mts.map +1 -0
- package/dist/astro/routes/api/schema/collections/index.mjs +63 -0
- package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -0
- package/dist/astro/routes/api/schema/index.d.mts +8 -0
- package/dist/astro/routes/api/schema/index.d.mts.map +1 -0
- package/dist/astro/routes/api/schema/index.mjs +82 -0
- package/dist/astro/routes/api/schema/index.mjs.map +1 -0
- package/dist/astro/routes/api/schema/orphans/_slug_.d.mts +8 -0
- package/dist/astro/routes/api/schema/orphans/_slug_.d.mts.map +1 -0
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +55 -0
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -0
- package/dist/astro/routes/api/schema/orphans/index.d.mts +8 -0
- package/dist/astro/routes/api/schema/orphans/index.d.mts.map +1 -0
- package/dist/astro/routes/api/schema/orphans/index.mjs +50 -0
- package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -0
- package/dist/astro/routes/api/search/enable.d.mts +16 -0
- package/dist/astro/routes/api/search/enable.d.mts.map +1 -0
- package/dist/astro/routes/api/search/enable.mjs +55 -0
- package/dist/astro/routes/api/search/enable.mjs.map +1 -0
- package/dist/astro/routes/api/search/index.d.mts +17 -0
- package/dist/astro/routes/api/search/index.d.mts.map +1 -0
- package/dist/astro/routes/api/search/index.mjs +52 -0
- package/dist/astro/routes/api/search/index.mjs.map +1 -0
- package/dist/astro/routes/api/search/rebuild.d.mts +14 -0
- package/dist/astro/routes/api/search/rebuild.d.mts.map +1 -0
- package/dist/astro/routes/api/search/rebuild.mjs +48 -0
- package/dist/astro/routes/api/search/rebuild.mjs.map +1 -0
- package/dist/astro/routes/api/search/stats.d.mts +11 -0
- package/dist/astro/routes/api/search/stats.d.mts.map +1 -0
- package/dist/astro/routes/api/search/stats.mjs +29 -0
- package/dist/astro/routes/api/search/stats.mjs.map +1 -0
- package/dist/astro/routes/api/search/suggest.d.mts +16 -0
- package/dist/astro/routes/api/search/suggest.d.mts.map +1 -0
- package/dist/astro/routes/api/search/suggest.mjs +43 -0
- package/dist/astro/routes/api/search/suggest.mjs.map +1 -0
- package/dist/astro/routes/api/sections/_slug_.d.mts +10 -0
- package/dist/astro/routes/api/sections/_slug_.d.mts.map +1 -0
- package/dist/astro/routes/api/sections/_slug_.mjs +65 -0
- package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -0
- package/dist/astro/routes/api/sections/index.d.mts +9 -0
- package/dist/astro/routes/api/sections/index.d.mts.map +1 -0
- package/dist/astro/routes/api/sections/index.mjs +48 -0
- package/dist/astro/routes/api/sections/index.mjs.map +1 -0
- package/dist/astro/routes/api/settings/email.d.mts +18 -0
- package/dist/astro/routes/api/settings/email.d.mts.map +1 -0
- package/dist/astro/routes/api/settings/email.mjs +105 -0
- package/dist/astro/routes/api/settings/email.mjs.map +1 -0
- package/dist/astro/routes/api/settings.d.mts +21 -0
- package/dist/astro/routes/api/settings.d.mts.map +1 -0
- package/dist/astro/routes/api/settings.mjs +58 -0
- package/dist/astro/routes/api/settings.mjs.map +1 -0
- package/dist/astro/routes/api/setup/admin-verify.d.mts +8 -0
- package/dist/astro/routes/api/setup/admin-verify.d.mts.map +1 -0
- package/dist/astro/routes/api/setup/admin-verify.mjs +68 -0
- package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -0
- package/dist/astro/routes/api/setup/admin.d.mts +8 -0
- package/dist/astro/routes/api/setup/admin.d.mts.map +1 -0
- package/dist/astro/routes/api/setup/admin.mjs +69 -0
- package/dist/astro/routes/api/setup/admin.mjs.map +1 -0
- package/dist/astro/routes/api/setup/dev-bypass.d.mts +9 -0
- package/dist/astro/routes/api/setup/dev-bypass.d.mts.map +1 -0
- package/dist/astro/routes/api/setup/dev-bypass.mjs +139 -0
- package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -0
- package/dist/astro/routes/api/setup/dev-reset.d.mts +8 -0
- package/dist/astro/routes/api/setup/dev-reset.d.mts.map +1 -0
- package/dist/astro/routes/api/setup/dev-reset.mjs +25 -0
- package/dist/astro/routes/api/setup/dev-reset.mjs.map +1 -0
- package/dist/astro/routes/api/setup/index.d.mts +8 -0
- package/dist/astro/routes/api/setup/index.d.mts.map +1 -0
- package/dist/astro/routes/api/setup/index.mjs +93 -0
- package/dist/astro/routes/api/setup/index.mjs.map +1 -0
- package/dist/astro/routes/api/setup/status.d.mts +8 -0
- package/dist/astro/routes/api/setup/status.d.mts.map +1 -0
- package/dist/astro/routes/api/setup/status.mjs +60 -0
- package/dist/astro/routes/api/setup/status.mjs.map +1 -0
- package/dist/astro/routes/api/snapshot.d.mts +8 -0
- package/dist/astro/routes/api/snapshot.d.mts.map +1 -0
- package/dist/astro/routes/api/snapshot.mjs +270 -0
- package/dist/astro/routes/api/snapshot.mjs.map +1 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.d.mts +9 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.d.mts.map +1 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +72 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.d.mts +19 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.d.mts.map +1 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +80 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.d.mts +15 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.d.mts.map +1 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +59 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -0
- package/dist/astro/routes/api/taxonomies/index.d.mts +15 -0
- package/dist/astro/routes/api/taxonomies/index.d.mts.map +1 -0
- package/dist/astro/routes/api/taxonomies/index.mjs +55 -0
- package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -0
- package/dist/astro/routes/api/themes/preview.d.mts +8 -0
- package/dist/astro/routes/api/themes/preview.d.mts.map +1 -0
- package/dist/astro/routes/api/themes/preview.mjs +49 -0
- package/dist/astro/routes/api/themes/preview.mjs.map +1 -0
- package/dist/astro/routes/api/typegen.d.mts +18 -0
- package/dist/astro/routes/api/typegen.d.mts.map +1 -0
- package/dist/astro/routes/api/typegen.mjs +78 -0
- package/dist/astro/routes/api/typegen.mjs.map +1 -0
- package/dist/astro/routes/api/well-known/auth.d.mts +8 -0
- package/dist/astro/routes/api/well-known/auth.d.mts.map +1 -0
- package/dist/astro/routes/api/well-known/auth.mjs +42 -0
- package/dist/astro/routes/api/well-known/auth.mjs.map +1 -0
- package/dist/astro/routes/api/well-known/oauth-authorization-server.d.mts +8 -0
- package/dist/astro/routes/api/well-known/oauth-authorization-server.d.mts.map +1 -0
- package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +32 -0
- package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs.map +1 -0
- package/dist/astro/routes/api/well-known/oauth-protected-resource.d.mts +8 -0
- package/dist/astro/routes/api/well-known/oauth-protected-resource.d.mts.map +1 -0
- package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +21 -0
- package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs.map +1 -0
- package/dist/astro/routes/api/widget-areas/_name_/reorder.d.mts +8 -0
- package/dist/astro/routes/api/widget-areas/_name_/reorder.d.mts.map +1 -0
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +36 -0
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -0
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.d.mts +9 -0
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.d.mts.map +1 -0
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +62 -0
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -0
- package/dist/astro/routes/api/widget-areas/_name_/widgets.d.mts +8 -0
- package/dist/astro/routes/api/widget-areas/_name_/widgets.d.mts.map +1 -0
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +49 -0
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -0
- package/dist/astro/routes/api/widget-areas/_name_.d.mts +9 -0
- package/dist/astro/routes/api/widget-areas/_name_.d.mts.map +1 -0
- package/dist/astro/routes/api/widget-areas/_name_.mjs +49 -0
- package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -0
- package/dist/astro/routes/api/widget-areas/index.d.mts +9 -0
- package/dist/astro/routes/api/widget-areas/index.d.mts.map +1 -0
- package/dist/astro/routes/api/widget-areas/index.mjs +59 -0
- package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -0
- package/dist/astro/routes/api/widget-components.d.mts +8 -0
- package/dist/astro/routes/api/widget-components.d.mts.map +1 -0
- package/dist/astro/routes/api/widget-components.mjs +18 -0
- package/dist/astro/routes/api/widget-components.mjs.map +1 -0
- package/dist/astro/routes/robots.txt.d.mts +8 -0
- package/dist/astro/routes/robots.txt.d.mts.map +1 -0
- package/dist/astro/routes/robots.txt.mjs +61 -0
- package/dist/astro/routes/robots.txt.mjs.map +1 -0
- package/dist/astro/routes/sitemap-_collection_.xml.d.mts +8 -0
- package/dist/astro/routes/sitemap-_collection_.xml.d.mts.map +1 -0
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +71 -0
- package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -0
- package/dist/astro/routes/sitemap.xml.d.mts +8 -0
- package/dist/astro/routes/sitemap.xml.d.mts.map +1 -0
- package/dist/astro/routes/sitemap.xml.mjs +64 -0
- package/dist/astro/routes/sitemap.xml.mjs.map +1 -0
- package/dist/astro/types.d.mts +48 -8
- package/dist/astro/types.d.mts.map +1 -1
- package/dist/auth/providers/github.d.mts +13 -0
- package/dist/auth/providers/github.d.mts.map +1 -0
- package/dist/auth/providers/github.mjs +18 -0
- package/dist/auth/providers/github.mjs.map +1 -0
- package/dist/auth/providers/google.d.mts +13 -0
- package/dist/auth/providers/google.d.mts.map +1 -0
- package/dist/auth/providers/google.mjs +18 -0
- package/dist/auth/providers/google.mjs.map +1 -0
- package/dist/authorize-BlyCH-96.mjs +37 -0
- package/dist/authorize-BlyCH-96.mjs.map +1 -0
- package/dist/{base64-MBPo9ozB.mjs → base64-CqR-7kqF.mjs} +1 -1
- package/dist/{base64-MBPo9ozB.mjs.map → base64-CqR-7kqF.mjs.map} +1 -1
- package/dist/{byline-gFn1r0vA.mjs → byline-D09BaS4j.mjs} +4 -4
- package/dist/{byline-gFn1r0vA.mjs.map → byline-D09BaS4j.mjs.map} +1 -1
- package/dist/{bylines-DTFI8nDM.mjs → bylines-BTM2xtP8.mjs} +6 -6
- package/dist/{bylines-DTFI8nDM.mjs.map → bylines-BTM2xtP8.mjs.map} +1 -1
- package/dist/bylines-BdUP8NuI.d.mts +1971 -0
- package/dist/bylines-BdUP8NuI.d.mts.map +1 -0
- package/dist/{cache-BAJbeoZ8.mjs → cache-CXCpjWiL.mjs} +3 -3
- package/dist/{cache-BAJbeoZ8.mjs.map → cache-CXCpjWiL.mjs.map} +1 -1
- package/dist/challenge-store-CJ0OOHOr.mjs +49 -0
- package/dist/challenge-store-CJ0OOHOr.mjs.map +1 -0
- package/dist/{chunks-BK1oZS-l.mjs → chunks-DyGtu1Bv.mjs} +2 -2
- package/dist/{chunks-BK1oZS-l.mjs.map → chunks-DyGtu1Bv.mjs.map} +1 -1
- package/dist/cli/index.mjs +23 -18
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/cf-access.d.mts +1 -1
- package/dist/client/index.d.mts +1 -1
- package/dist/client/index.d.mts.map +1 -1
- package/dist/client/index.mjs +2 -2
- package/dist/client/index.mjs.map +1 -1
- package/dist/comment-Dd9MI82-.mjs +247 -0
- package/dist/comment-Dd9MI82-.mjs.map +1 -0
- package/dist/comments-koGI0FrK.mjs +204 -0
- package/dist/comments-koGI0FrK.mjs.map +1 -0
- package/dist/components-mZem7pbe.mjs +108 -0
- package/dist/components-mZem7pbe.mjs.map +1 -0
- package/dist/{content-CERxPUN0.mjs → content-D6YG26WG.mjs} +10 -34
- package/dist/content-D6YG26WG.mjs.map +1 -0
- package/dist/context-qF8d3IPR.mjs +879 -0
- package/dist/context-qF8d3IPR.mjs.map +1 -0
- package/dist/cron-H8eJ46dv.mjs +264 -0
- package/dist/cron-H8eJ46dv.mjs.map +1 -0
- package/dist/dashboard-BmWSIUwY.mjs +105 -0
- package/dist/dashboard-BmWSIUwY.mjs.map +1 -0
- package/dist/db/index.d.mts +3 -3
- package/dist/db/index.mjs +1 -1
- package/dist/db/libsql.d.mts +1 -1
- package/dist/db/postgres.d.mts +1 -1
- package/dist/db/sqlite.d.mts +1 -1
- package/dist/{db-errors-B7P2pSCn.mjs → db-errors-CGN9kJfo.mjs} +1 -1
- package/dist/{db-errors-B7P2pSCn.mjs.map → db-errors-CGN9kJfo.mjs.map} +1 -1
- package/dist/{default-pHuz9WF6.mjs → default-Dbs22Gg4.mjs} +1 -1
- package/dist/{default-pHuz9WF6.mjs.map → default-Dbs22Gg4.mjs.map} +1 -1
- package/dist/device-flow-BqJRxa0Q.mjs +467 -0
- package/dist/device-flow-BqJRxa0Q.mjs.map +1 -0
- package/dist/email-console-Dmp5Q-P2.mjs +50 -0
- package/dist/email-console-Dmp5Q-P2.mjs.map +1 -0
- package/dist/error-tSQWIl5U.mjs +437 -0
- package/dist/error-tSQWIl5U.mjs.map +1 -0
- package/dist/escape-B8bdIryO.mjs +9 -0
- package/dist/escape-B8bdIryO.mjs.map +1 -0
- package/dist/fts-manager-B633C-kQ.mjs +339 -0
- package/dist/fts-manager-B633C-kQ.mjs.map +1 -0
- package/dist/hash-DlUxGhQS.mjs +33 -0
- package/dist/hash-DlUxGhQS.mjs.map +1 -0
- package/dist/import-CNfLOgDE.mjs +1531 -0
- package/dist/import-CNfLOgDE.mjs.map +1 -0
- package/dist/{index-Dlkzhb4C.d.mts → index-BV8iJ-6s.d.mts} +310 -911
- package/dist/index-BV8iJ-6s.d.mts.map +1 -0
- package/dist/index-D2gvztOP.d.mts +262 -0
- package/dist/index-D2gvztOP.d.mts.map +1 -0
- package/dist/index.d.mts +17 -11
- package/dist/index.mjs +57 -28
- package/dist/{load-DR1VwFXR.mjs → load-QzYRpVN3.mjs} +2 -2
- package/dist/{load-DR1VwFXR.mjs.map → load-QzYRpVN3.mjs.map} +1 -1
- package/dist/{loader-ou_PXAjg.mjs → loader-Cs6-Bqe6.mjs} +4 -4
- package/dist/{loader-ou_PXAjg.mjs.map → loader-Cs6-Bqe6.mjs.map} +1 -1
- package/dist/{manifest-schema-Bp6d4d4n.mjs → manifest-schema-HCtSh4Jq.mjs} +1 -1
- package/dist/{manifest-schema-Bp6d4d4n.mjs.map → manifest-schema-HCtSh4Jq.mjs.map} +1 -1
- package/dist/media/index.d.mts +1 -1
- package/dist/media/index.mjs +2 -1
- package/dist/media/index.mjs.map +1 -1
- package/dist/media/local-runtime.d.mts +11 -7
- package/dist/media/local-runtime.d.mts.map +1 -1
- package/dist/media/local-runtime.mjs +7 -6
- package/dist/media/local-runtime.mjs.map +1 -1
- package/dist/media-Dg7he9uK.mjs +209 -0
- package/dist/media-Dg7he9uK.mjs.map +1 -0
- package/dist/media-allowlist-B8EX01DH.mjs +32 -0
- package/dist/media-allowlist-B8EX01DH.mjs.map +1 -0
- package/dist/menus-DOzIecHi.mjs +723 -0
- package/dist/menus-DOzIecHi.mjs.map +1 -0
- package/dist/menus-X4Z-eBA1.mjs +2788 -0
- package/dist/menus-X4Z-eBA1.mjs.map +1 -0
- package/dist/mime-KV5TqkMN.mjs +36 -0
- package/dist/mime-KV5TqkMN.mjs.map +1 -0
- package/dist/{mode-YhqNVef_.mjs → mode-DPRPvJYm.mjs} +1 -1
- package/dist/{mode-YhqNVef_.mjs.map → mode-DPRPvJYm.mjs.map} +1 -1
- package/dist/normalize-CN5kRSMC.mjs +151 -0
- package/dist/normalize-CN5kRSMC.mjs.map +1 -0
- package/dist/oauth-authorization-62GmpGIH.mjs +275 -0
- package/dist/oauth-authorization-62GmpGIH.mjs.map +1 -0
- package/dist/oauth-clients-D_B0_-Bz.mjs +266 -0
- package/dist/oauth-clients-D_B0_-Bz.mjs.map +1 -0
- package/dist/oauth-state-store-DpsZViTu.mjs +49 -0
- package/dist/oauth-state-store-DpsZViTu.mjs.map +1 -0
- package/dist/oauth-user-lookup-meyS2oB1.mjs +26 -0
- package/dist/oauth-user-lookup-meyS2oB1.mjs.map +1 -0
- package/dist/{options-nPxWnrya.mjs → options-BL4X94qY.mjs} +1 -1
- package/dist/{options-nPxWnrya.mjs.map → options-BL4X94qY.mjs.map} +1 -1
- package/dist/options-Cq64Wx0O.d.mts +207 -0
- package/dist/options-Cq64Wx0O.d.mts.map +1 -0
- package/dist/page/index.d.mts +2 -2
- package/dist/parse-BFTPon-J.mjs +89 -0
- package/dist/parse-BFTPon-J.mjs.map +1 -0
- package/dist/passkey-config-Cg86_ISa.mjs +46 -0
- package/dist/passkey-config-Cg86_ISa.mjs.map +1 -0
- package/dist/{patterns-DsUZ4uxI.mjs → patterns-CqG5Ya3i.mjs} +54 -2
- package/dist/{patterns-DsUZ4uxI.mjs.map → patterns-CqG5Ya3i.mjs.map} +1 -1
- package/dist/{placeholder-CDPtkelt.d.mts → placeholder-D3cFCU9y.d.mts} +2 -1
- package/dist/{placeholder-CDPtkelt.d.mts.map → placeholder-D3cFCU9y.d.mts.map} +1 -1
- package/dist/placeholder-LqmHqvBw.mjs +143 -0
- package/dist/placeholder-LqmHqvBw.mjs.map +1 -0
- package/dist/plugin-types.d.mts +122 -0
- package/dist/plugin-types.d.mts.map +1 -0
- package/dist/plugin-types.mjs +1 -0
- package/dist/plugins/adapt-sandbox-entry.d.mts +20 -12
- package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
- package/dist/plugins/adapt-sandbox-entry.mjs +46 -23
- package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
- package/dist/preview-C1LOEbWZ.mjs +107 -0
- package/dist/preview-C1LOEbWZ.mjs.map +1 -0
- package/dist/{public-url-B1AxbbbQ.mjs → public-url-CseXl9Fv.mjs} +39 -2
- package/dist/{public-url-B1AxbbbQ.mjs.map → public-url-CseXl9Fv.mjs.map} +1 -1
- package/dist/{query-yA3-rFji.mjs → query-axZmO6Tn.mjs} +12 -12
- package/dist/{query-yA3-rFji.mjs.map → query-axZmO6Tn.mjs.map} +1 -1
- package/dist/rate-limit-t5CVjCO6.mjs +120 -0
- package/dist/rate-limit-t5CVjCO6.mjs.map +1 -0
- package/dist/redirect-DGRsLO2I.mjs +17 -0
- package/dist/redirect-DGRsLO2I.mjs.map +1 -0
- package/dist/{redirect-C5H7VGIX.mjs → redirect-DkaDxq8e.mjs} +3 -3
- package/dist/{redirect-C5H7VGIX.mjs.map → redirect-DkaDxq8e.mjs.map} +1 -1
- package/dist/redirects-D1fdd68T.mjs +573 -0
- package/dist/redirects-D1fdd68T.mjs.map +1 -0
- package/dist/redirects-Dmj6KRU3.mjs +1141 -0
- package/dist/redirects-Dmj6KRU3.mjs.map +1 -0
- package/dist/{registry-Do34mz_P.mjs → registry-BnCeHYsf.mjs} +8 -300
- package/dist/registry-BnCeHYsf.mjs.map +1 -0
- package/dist/{request-cache-D4I69LeL.mjs → request-cache-dzCt8TZB.mjs} +1 -1
- package/dist/{request-cache-D4I69LeL.mjs.map → request-cache-dzCt8TZB.mjs.map} +1 -1
- package/dist/request-meta-CLCwSQOS.mjs +140 -0
- package/dist/request-meta-CLCwSQOS.mjs.map +1 -0
- package/dist/{runner-Iu3IZSDM.d.mts → runner-DcfZewkO.d.mts} +2 -2
- package/dist/{runner-Iu3IZSDM.d.mts.map → runner-DcfZewkO.d.mts.map} +1 -1
- package/dist/{runner-DIcU2UCC.mjs → runner-DdnQIwz_.mjs} +436 -187
- package/dist/runner-DdnQIwz_.mjs.map +1 -0
- package/dist/runtime.d.mts +10 -6
- package/dist/runtime.d.mts.map +1 -1
- package/dist/runtime.mjs +3 -3
- package/dist/schema-BmqagCwG.mjs +41 -0
- package/dist/schema-BmqagCwG.mjs.map +1 -0
- package/dist/search-CPrvO5u8.mjs +376 -0
- package/dist/search-CPrvO5u8.mjs.map +1 -0
- package/dist/{secrets-CZ8rxLX3.mjs → secrets-6pgZyq0K.mjs} +3 -3
- package/dist/{secrets-CZ8rxLX3.mjs.map → secrets-6pgZyq0K.mjs.map} +1 -1
- package/dist/sections-Cm-zb-gZ.mjs +346 -0
- package/dist/sections-Cm-zb-gZ.mjs.map +1 -0
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +19 -15
- package/dist/seo/index.d.mts +1 -1
- package/dist/seo-BoR4wCUh.mjs +86 -0
- package/dist/seo-BoR4wCUh.mjs.map +1 -0
- package/dist/seo-DRq9-EPP.mjs +130 -0
- package/dist/seo-DRq9-EPP.mjs.map +1 -0
- package/dist/service-vByySp-2.mjs +195 -0
- package/dist/service-vByySp-2.mjs.map +1 -0
- package/dist/settings-CBBj7HUd.mjs +51 -0
- package/dist/settings-CBBj7HUd.mjs.map +1 -0
- package/dist/settings-xQKsWnzQ.mjs +235 -0
- package/dist/settings-xQKsWnzQ.mjs.map +1 -0
- package/dist/setup-BGAJ2uXs.mjs +137 -0
- package/dist/setup-BGAJ2uXs.mjs.map +1 -0
- package/dist/setup-complete-C6ZCLhKo.mjs +26 -0
- package/dist/setup-complete-C6ZCLhKo.mjs.map +1 -0
- package/dist/setup-nonce-CY1gQiAU.mjs +25 -0
- package/dist/setup-nonce-CY1gQiAU.mjs.map +1 -0
- package/dist/site-url-D-M4Fd8O.mjs +13 -0
- package/dist/site-url-D-M4Fd8O.mjs.map +1 -0
- package/dist/slugify-Cjh1ssOZ.mjs +30 -0
- package/dist/slugify-Cjh1ssOZ.mjs.map +1 -0
- package/dist/ssrf-CTul4uQi.mjs +1 -0
- package/dist/ssrf-DzFN_qV-.mjs +332 -0
- package/dist/ssrf-DzFN_qV-.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/{taxonomies-JmQQZiG1.mjs → taxonomies-Cn9UpaR2.mjs} +7 -7
- package/dist/{taxonomies-JmQQZiG1.mjs.map → taxonomies-Cn9UpaR2.mjs.map} +1 -1
- package/dist/taxonomies-Dc0mzlms.mjs +508 -0
- package/dist/taxonomies-Dc0mzlms.mjs.map +1 -0
- package/dist/{taxonomy-D6NvlKo8.mjs → taxonomy-wPfusMK9.mjs} +3 -3
- package/dist/{taxonomy-D6NvlKo8.mjs.map → taxonomy-wPfusMK9.mjs.map} +1 -1
- package/dist/{tokens-CyRDPVW2.mjs → tokens-DILYNZMi.mjs} +2 -2
- package/dist/{tokens-CyRDPVW2.mjs.map → tokens-DILYNZMi.mjs.map} +1 -1
- package/dist/{transaction-D44LBXvU.mjs → transaction-NQj4VJ7Z.mjs} +1 -1
- package/dist/{transaction-D44LBXvU.mjs.map → transaction-NQj4VJ7Z.mjs.map} +1 -1
- package/dist/{transport-DX_5rpsq.d.mts → transport-GeXlLscf.d.mts} +1 -1
- package/dist/{transport-DX_5rpsq.d.mts.map → transport-GeXlLscf.d.mts.map} +1 -1
- package/dist/{transport-xpzIjCIB.mjs → transport-fw-mKJzT.mjs} +1 -1
- package/dist/{transport-xpzIjCIB.mjs.map → transport-fw-mKJzT.mjs.map} +1 -1
- package/dist/trusted-proxy-CJhQIk65.mjs +51 -0
- package/dist/trusted-proxy-CJhQIk65.mjs.map +1 -0
- package/dist/{types-DgSc9Rpc.d.mts → types-B05e2naf.d.mts} +5 -59
- package/dist/types-B05e2naf.d.mts.map +1 -0
- package/dist/{types-B1gLSAH2.d.mts → types-BWhaSS7U.d.mts} +2 -75
- package/dist/types-BWhaSS7U.d.mts.map +1 -0
- package/dist/{types-BQx6ZXpR.d.mts → types-C1KKK4VP.d.mts} +3 -1
- package/dist/{types-BQx6ZXpR.d.mts.map → types-C1KKK4VP.d.mts.map} +1 -1
- package/dist/types-Cb2UCDJg.d.mts +345 -0
- package/dist/types-Cb2UCDJg.d.mts.map +1 -0
- package/dist/{types-BIgulNsW.mjs → types-CwXMEPRr.mjs} +10 -3
- package/dist/types-CwXMEPRr.mjs.map +1 -0
- package/dist/{types-B_CXXnzh.d.mts → types-CzvJd1ND.d.mts} +7 -1
- package/dist/{types-B_CXXnzh.d.mts.map → types-CzvJd1ND.d.mts.map} +1 -1
- package/dist/types-DFowNO60.d.mts +198 -0
- package/dist/types-DFowNO60.d.mts.map +1 -0
- package/dist/{types-56BKbld_.mjs → types-DSZl1Dsv.mjs} +1 -1
- package/dist/{types-56BKbld_.mjs.map → types-DSZl1Dsv.mjs.map} +1 -1
- package/dist/types-DW1l0gCv.d.mts +75 -0
- package/dist/types-DW1l0gCv.d.mts.map +1 -0
- package/dist/types-Db67HHlU.mjs +3 -0
- package/dist/{types-C-aFbqmA.d.mts → types-DmxPPXGf.d.mts} +1 -1
- package/dist/{types-C-aFbqmA.d.mts.map → types-DmxPPXGf.d.mts.map} +1 -1
- package/dist/{types-PafqtQuM.mjs → types-Dz9CGX_d.mjs} +1 -1
- package/dist/{types-PafqtQuM.mjs.map → types-Dz9CGX_d.mjs.map} +1 -1
- package/dist/user-Dr1bOCqS.mjs +155 -0
- package/dist/user-Dr1bOCqS.mjs.map +1 -0
- package/dist/utils-_F-rWBTN.mjs +286 -0
- package/dist/utils-_F-rWBTN.mjs.map +1 -0
- package/dist/{validate-BcC3m2O7.d.mts → validate-BpQGsmd7.d.mts} +5 -4
- package/dist/validate-BpQGsmd7.d.mts.map +1 -0
- package/dist/{validate-UK4Ja1uo.mjs → validate-DlFxcVVK.mjs} +3 -3
- package/dist/{validate-UK4Ja1uo.mjs.map → validate-DlFxcVVK.mjs.map} +1 -1
- package/dist/{validation-Vc5DQkJa.mjs → validation-BiFJqUp5.mjs} +6 -5
- package/dist/{validation-Vc5DQkJa.mjs.map → validation-BiFJqUp5.mjs.map} +1 -1
- package/dist/version-DNmQakZO.mjs +7 -0
- package/dist/{version-BdP--J1g.mjs.map → version-DNmQakZO.mjs.map} +1 -1
- package/dist/widgets-B9j_yzlk.mjs +106 -0
- package/dist/widgets-B9j_yzlk.mjs.map +1 -0
- package/dist/zod-generator-DSyz01KE.mjs +234 -0
- package/dist/zod-generator-DSyz01KE.mjs.map +1 -0
- package/locals.d.ts +1 -1
- package/package.json +38 -15
- package/src/api/handlers/content.ts +1 -0
- package/src/api/handlers/index.ts +7 -0
- package/src/api/handlers/marketplace.ts +27 -6
- package/src/api/handlers/menus.ts +157 -580
- package/src/api/handlers/plugins.ts +77 -31
- package/src/api/handlers/registry.ts +1083 -0
- package/src/api/openapi/document.ts +10 -4
- package/src/api/schemas/content.ts +1 -0
- package/src/api/schemas/menus.ts +27 -23
- package/src/api/types.ts +6 -0
- package/src/astro/integration/index.ts +1 -0
- package/src/astro/integration/route-naming.ts +19 -0
- package/src/astro/integration/routes.ts +25 -3
- package/src/astro/integration/runtime.ts +35 -8
- package/src/astro/middleware/auth.ts +8 -2
- package/src/astro/middleware/csp.ts +25 -3
- package/src/astro/middleware.ts +3 -0
- package/src/astro/routes/api/admin/plugins/[id]/enable.ts +10 -0
- package/src/astro/routes/api/admin/plugins/registry/install.ts +107 -0
- package/src/astro/routes/api/auth/invite/register-options.ts +8 -1
- package/src/astro/routes/api/import/wordpress/execute.ts +185 -6
- package/src/astro/routes/api/menus/[name]/items/[id].ts +69 -0
- package/src/astro/routes/api/menus/[name]/items.ts +4 -65
- package/src/astro/types.ts +38 -0
- package/src/cli/wxr/parser.ts +263 -0
- package/src/client/index.ts +2 -1
- package/src/database/migrations/036_i18n_menus_and_taxonomies.ts +166 -49
- package/src/database/migrations/038_registry_plugin_state.ts +130 -0
- package/src/database/migrations/039_fix_fts5_triggers.ts +264 -0
- package/src/database/migrations/runner.ts +4 -0
- package/src/database/repositories/content.ts +5 -1
- package/src/database/repositories/index.ts +14 -0
- package/src/database/repositories/menu.ts +644 -0
- package/src/database/repositories/types.ts +6 -0
- package/src/database/types.ts +5 -1
- package/src/emdash-runtime.ts +122 -34
- package/src/import/sources/wordpress-plugin.ts +9 -2
- package/src/import/sources/wxr.ts +16 -2
- package/src/import/ssrf.ts +20 -500
- package/src/import/wxr-taxonomies.ts +730 -0
- package/src/index.ts +3 -10
- package/src/media/normalize.ts +37 -4
- package/src/plugin-types.ts +240 -0
- package/src/plugins/adapt-sandbox-entry.ts +115 -39
- package/src/plugins/define-plugin.ts +34 -56
- package/src/plugins/index.ts +1 -9
- package/src/plugins/marketplace.ts +63 -4
- package/src/plugins/sandbox/index.ts +1 -1
- package/src/plugins/sandbox/noop.ts +2 -2
- package/src/plugins/sandbox/types.ts +7 -4
- package/src/plugins/state.ts +84 -38
- package/src/plugins/types.ts +2 -79
- package/src/registry/config.ts +311 -0
- package/src/registry/plugin-id.ts +116 -0
- package/src/registry/types.ts +206 -0
- package/src/search/fts-manager.ts +77 -15
- package/src/security/ssrf.ts +501 -0
- package/dist/apply-C1ZORgcy.mjs.map +0 -1
- package/dist/content-CERxPUN0.mjs.map +0 -1
- package/dist/error-D6LuHLw9.mjs +0 -27
- package/dist/error-D6LuHLw9.mjs.map +0 -1
- package/dist/index-Dlkzhb4C.d.mts.map +0 -1
- package/dist/placeholder-Ci0RLeCk.mjs +0 -268
- package/dist/placeholder-Ci0RLeCk.mjs.map +0 -1
- package/dist/registry-Do34mz_P.mjs.map +0 -1
- package/dist/runner-DIcU2UCC.mjs.map +0 -1
- package/dist/search-n-ZCMfr3.mjs +0 -9914
- package/dist/search-n-ZCMfr3.mjs.map +0 -1
- package/dist/settings-nTXPRi3D.mjs +0 -440
- package/dist/settings-nTXPRi3D.mjs.map +0 -1
- package/dist/types-B1gLSAH2.d.mts.map +0 -1
- package/dist/types-BIgulNsW.mjs.map +0 -1
- package/dist/types-Cug_RO3W.mjs +0 -16
- package/dist/types-Cug_RO3W.mjs.map +0 -1
- package/dist/types-DgSc9Rpc.d.mts.map +0 -1
- package/dist/validate-BcC3m2O7.d.mts.map +0 -1
- package/dist/version-BdP--J1g.mjs +0 -7
- package/dist/zod-generator-CHnJUP2l.mjs +0 -137
- package/dist/zod-generator-CHnJUP2l.mjs.map +0 -1
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
1
|
+
import { a as ContentSeoInput, c as FindManyOptions, d as UpdateContentInput, l as FindManyResult, o as CreateContentInput, r as ContentItem, t as BylineSummary } from "./types-CzvJd1ND.mjs";
|
|
2
|
+
import { d as ContentListResponse, f as ContentResponse, h as ManifestResponse, u as ApiResult } from "./options-Cq64Wx0O.mjs";
|
|
3
|
+
import { t as Database } from "./types-C1KKK4VP.mjs";
|
|
4
|
+
import { G as MediaItem$1, J as PageFragmentContribution, M as EmailMessage, Q as PageMetadataEvent, S as CronEvent, Y as PageFragmentEvent, Z as PageMetadataContribution, _t as ResolvedPlugin, c as CommentBeforeCreateEvent, dt as PluginStorageConfig, ht as RequestMeta, i as CommentAfterCreateEvent, lt as PluginManifest, o as CommentAfterModerateEvent, st as PluginDefinition } from "./types-B05e2naf.mjs";
|
|
5
|
+
import { d as FieldValidation, g as UpdateFieldInput, h as UpdateCollectionInput, i as CollectionWithFields, l as Field, o as CreateCollectionInput, s as CreateFieldInput, t as Collection } from "./types-BWhaSS7U.mjs";
|
|
6
|
+
import { _ as MediaValue, m as MediaProviderDescriptor } from "./placeholder-D3cFCU9y.mjs";
|
|
7
|
+
import { C as ContentBylineInput } from "./index-D2gvztOP.mjs";
|
|
8
|
+
import { i as SiteSettings, r as SiteSettingKey } from "./types-DW1l0gCv.mjs";
|
|
9
|
+
import { d as Storage } from "./types-DmxPPXGf.mjs";
|
|
10
|
+
import { r as AuthProviderDescriptor, t as AuthDescriptor } from "./types-DFowNO60.mjs";
|
|
11
|
+
import { t as DatabaseDescriptor } from "./adapters-9DybjTO6.mjs";
|
|
8
12
|
import { Kysely } from "kysely";
|
|
9
13
|
import { z } from "astro/zod";
|
|
10
14
|
import { z as z$1 } from "zod";
|
|
11
|
-
import { PortableTextBlock } from "@emdash-cms/gutenberg-to-portable-text";
|
|
12
|
-
import { Readable } from "node:stream";
|
|
13
15
|
import { LiveLoader } from "astro/loaders";
|
|
14
|
-
import * as react from "react";
|
|
15
16
|
|
|
16
17
|
//#region src/database/connection.d.ts
|
|
17
18
|
interface DatabaseConfig {
|
|
@@ -370,12 +371,6 @@ interface PublicComment {
|
|
|
370
371
|
replies?: PublicComment[];
|
|
371
372
|
}
|
|
372
373
|
//#endregion
|
|
373
|
-
//#region src/database/repositories/byline.d.ts
|
|
374
|
-
interface ContentBylineInput {
|
|
375
|
-
bylineId: string;
|
|
376
|
-
roleLabel?: string | null;
|
|
377
|
-
}
|
|
378
|
-
//#endregion
|
|
379
374
|
//#region src/fields/types.d.ts
|
|
380
375
|
/**
|
|
381
376
|
* SQLite column types that map from field types
|
|
@@ -412,7 +407,7 @@ interface FieldUIHints {
|
|
|
412
407
|
/**
|
|
413
408
|
* Portable Text block structure
|
|
414
409
|
*/
|
|
415
|
-
interface PortableTextBlock$
|
|
410
|
+
interface PortableTextBlock$1 {
|
|
416
411
|
_type: string;
|
|
417
412
|
_key: string;
|
|
418
413
|
[key: string]: unknown;
|
|
@@ -465,88 +460,7 @@ declare function reference(collection: string, options?: {
|
|
|
465
460
|
*/
|
|
466
461
|
declare function portableText(options?: {
|
|
467
462
|
required?: boolean;
|
|
468
|
-
}): FieldDefinition<PortableTextBlock$
|
|
469
|
-
//#endregion
|
|
470
|
-
//#region src/api/types.d.ts
|
|
471
|
-
/**
|
|
472
|
-
* List response with cursor pagination
|
|
473
|
-
*/
|
|
474
|
-
interface ListResponse<T> {
|
|
475
|
-
items: T[];
|
|
476
|
-
nextCursor?: string;
|
|
477
|
-
}
|
|
478
|
-
/**
|
|
479
|
-
* Content API responses
|
|
480
|
-
*/
|
|
481
|
-
interface ContentListResponse extends ListResponse<ContentItem> {}
|
|
482
|
-
interface ContentResponse {
|
|
483
|
-
item: ContentItem;
|
|
484
|
-
/** Opaque revision token for optimistic concurrency */
|
|
485
|
-
_rev?: string;
|
|
486
|
-
}
|
|
487
|
-
/**
|
|
488
|
-
* Manifest API response
|
|
489
|
-
*/
|
|
490
|
-
interface ManifestResponse {
|
|
491
|
-
version: string;
|
|
492
|
-
hash: string;
|
|
493
|
-
collections: Record<string, {
|
|
494
|
-
label: string;
|
|
495
|
-
labelSingular: string;
|
|
496
|
-
supports: string[];
|
|
497
|
-
fields: Record<string, FieldDescriptor>;
|
|
498
|
-
}>;
|
|
499
|
-
plugins: Record<string, {
|
|
500
|
-
adminPages?: Array<{
|
|
501
|
-
path: string;
|
|
502
|
-
component: string;
|
|
503
|
-
}>;
|
|
504
|
-
widgets?: string[];
|
|
505
|
-
}>;
|
|
506
|
-
}
|
|
507
|
-
interface FieldDescriptor {
|
|
508
|
-
kind: string;
|
|
509
|
-
label?: string;
|
|
510
|
-
required?: boolean;
|
|
511
|
-
/**
|
|
512
|
-
* For `select` / `multiSelect`: the list of enum choices.
|
|
513
|
-
* For `json` fields driven by a plugin `widget`: arbitrary widget config.
|
|
514
|
-
*/
|
|
515
|
-
options?: Array<{
|
|
516
|
-
value: string;
|
|
517
|
-
label: string;
|
|
518
|
-
}> | Record<string, unknown>;
|
|
519
|
-
}
|
|
520
|
-
/**
|
|
521
|
-
* Discriminated union for handler results.
|
|
522
|
-
*
|
|
523
|
-
* Handlers return `ApiResult<T>` -- either `{ success: true, data: T }` or
|
|
524
|
-
* `{ success: false, error: { code, message } }`. The `success` literal
|
|
525
|
-
* enables TypeScript narrowing on `.data`.
|
|
526
|
-
*
|
|
527
|
-
* The generic `E` parameter defaults to `ErrorCode` but can be narrowed to
|
|
528
|
-
* `OAuthErrorCode` for OAuth token-endpoint handlers.
|
|
529
|
-
*
|
|
530
|
-
* Use `unwrapResult()` from `error.ts` to convert to an HTTP Response.
|
|
531
|
-
*/
|
|
532
|
-
type ApiResult<T, E extends string = string> = {
|
|
533
|
-
success: true;
|
|
534
|
-
data: T;
|
|
535
|
-
} | {
|
|
536
|
-
success: false;
|
|
537
|
-
error: {
|
|
538
|
-
code: E;
|
|
539
|
-
message: string;
|
|
540
|
-
details?: Record<string, unknown>;
|
|
541
|
-
};
|
|
542
|
-
};
|
|
543
|
-
/**
|
|
544
|
-
* API request context
|
|
545
|
-
*/
|
|
546
|
-
interface ApiContext {
|
|
547
|
-
userId?: string;
|
|
548
|
-
userRole?: string;
|
|
549
|
-
}
|
|
463
|
+
}): FieldDefinition<PortableTextBlock$1[] | undefined>;
|
|
550
464
|
//#endregion
|
|
551
465
|
//#region src/api/handlers/content.d.ts
|
|
552
466
|
/**
|
|
@@ -1032,7 +946,7 @@ interface Section {
|
|
|
1032
946
|
title: string;
|
|
1033
947
|
description?: string;
|
|
1034
948
|
keywords: string[];
|
|
1035
|
-
content: PortableTextBlock$
|
|
949
|
+
content: PortableTextBlock$1[];
|
|
1036
950
|
previewUrl?: string;
|
|
1037
951
|
source: SectionSource;
|
|
1038
952
|
themeId?: string;
|
|
@@ -1047,7 +961,7 @@ interface CreateSectionInput {
|
|
|
1047
961
|
title: string;
|
|
1048
962
|
description?: string;
|
|
1049
963
|
keywords?: string[];
|
|
1050
|
-
content: PortableTextBlock$
|
|
964
|
+
content: PortableTextBlock$1[];
|
|
1051
965
|
previewMediaId?: string;
|
|
1052
966
|
source?: SectionSource;
|
|
1053
967
|
themeId?: string;
|
|
@@ -1060,7 +974,7 @@ interface UpdateSectionInput {
|
|
|
1060
974
|
title?: string;
|
|
1061
975
|
description?: string;
|
|
1062
976
|
keywords?: string[];
|
|
1063
|
-
content?: PortableTextBlock$
|
|
977
|
+
content?: PortableTextBlock$1[];
|
|
1064
978
|
previewMediaId?: string | null;
|
|
1065
979
|
}
|
|
1066
980
|
/**
|
|
@@ -1171,10 +1085,13 @@ interface SandboxOptions {
|
|
|
1171
1085
|
emailSend?: SandboxEmailSendCallback;
|
|
1172
1086
|
}
|
|
1173
1087
|
/**
|
|
1174
|
-
*
|
|
1175
|
-
*
|
|
1088
|
+
* Handle to a sandboxed plugin running inside an isolate. Returned
|
|
1089
|
+
* by `SandboxRunner.load` and held by the runtime's cache so hooks /
|
|
1090
|
+
* routes can be invoked across the isolate boundary. Distinct from
|
|
1091
|
+
* the author-facing `SandboxedPlugin` type in `emdash/plugin`, which
|
|
1092
|
+
* describes the source-level shape of a plugin's default export.
|
|
1176
1093
|
*/
|
|
1177
|
-
interface
|
|
1094
|
+
interface SandboxedPluginInstance {
|
|
1178
1095
|
/** Unique identifier: `${manifest.id}:${manifest.version}` */
|
|
1179
1096
|
readonly id: string;
|
|
1180
1097
|
/**
|
|
@@ -1229,7 +1146,7 @@ interface SandboxRunner {
|
|
|
1229
1146
|
* @returns A sandboxed plugin instance
|
|
1230
1147
|
* @throws If sandboxing is not available or plugin can't be loaded
|
|
1231
1148
|
*/
|
|
1232
|
-
load(manifest: PluginManifest, code: string): Promise<
|
|
1149
|
+
load(manifest: PluginManifest, code: string): Promise<SandboxedPluginInstance>;
|
|
1233
1150
|
/**
|
|
1234
1151
|
* Set the email send callback for sandboxed plugins.
|
|
1235
1152
|
* Called after the EmailPipeline is created, since the pipeline
|
|
@@ -1256,6 +1173,208 @@ interface SandboxRunner {
|
|
|
1256
1173
|
*/
|
|
1257
1174
|
type SandboxRunnerFactory = (options: SandboxOptions) => SandboxRunner;
|
|
1258
1175
|
//#endregion
|
|
1176
|
+
//#region src/registry/types.d.ts
|
|
1177
|
+
/**
|
|
1178
|
+
* Public types for the experimental plugin registry.
|
|
1179
|
+
*
|
|
1180
|
+
* Kept in their own module so they don't get re-bundled into the
|
|
1181
|
+
* `astro/integration/runtime.ts` chunk's dist output. tsdown / rolldown
|
|
1182
|
+
* are sensitive to which top-level types live alongside `definePlugin`'s
|
|
1183
|
+
* overloads, and pulling these types into the integration module
|
|
1184
|
+
* affected downstream `definePlugin()` overload resolution for trusted
|
|
1185
|
+
* plugins built against core's dist (see commit history for the
|
|
1186
|
+
* detailed write-up).
|
|
1187
|
+
*/
|
|
1188
|
+
/**
|
|
1189
|
+
* Experimental plugin registry configuration.
|
|
1190
|
+
*
|
|
1191
|
+
* See {@link ExperimentalConfig.registry}.
|
|
1192
|
+
*/
|
|
1193
|
+
interface RegistryConfig {
|
|
1194
|
+
/**
|
|
1195
|
+
* Base URL of the registry aggregator (an atproto AppView that indexes
|
|
1196
|
+
* the firehose for `pm.fair.package.*` and `com.emdashcms.*` records).
|
|
1197
|
+
*
|
|
1198
|
+
* Must be the origin where the aggregator's XRPC endpoints are mounted,
|
|
1199
|
+
* such that `${aggregatorUrl}/xrpc/<nsid>` resolves to a valid endpoint.
|
|
1200
|
+
*
|
|
1201
|
+
* Must be HTTPS in production; `http://localhost` or `http://127.0.0.1`
|
|
1202
|
+
* are accepted in dev.
|
|
1203
|
+
*/
|
|
1204
|
+
aggregatorUrl: string;
|
|
1205
|
+
/**
|
|
1206
|
+
* Optional comma-separated list of labeller DIDs forwarded as the
|
|
1207
|
+
* `atproto-accept-labelers` header on every aggregator request.
|
|
1208
|
+
*
|
|
1209
|
+
* Format follows the atproto convention:
|
|
1210
|
+
* `did:plc:abc;redact, did:plc:def`
|
|
1211
|
+
*
|
|
1212
|
+
* When unset, the aggregator applies its operator-default labeller set
|
|
1213
|
+
* (typically the EmDash publisher-verification labeller and any
|
|
1214
|
+
* additional trusted labellers the aggregator operator configured).
|
|
1215
|
+
*/
|
|
1216
|
+
acceptLabelers?: string;
|
|
1217
|
+
/**
|
|
1218
|
+
* Site-level policy applied to the latest-release selection filter.
|
|
1219
|
+
*
|
|
1220
|
+
* These filters operate over the signed records the aggregator returns;
|
|
1221
|
+
* they are not protocol-level constraints. See the RFC's
|
|
1222
|
+
* "Update Discovery and Takedowns" section for the integration point.
|
|
1223
|
+
*/
|
|
1224
|
+
policy?: {
|
|
1225
|
+
/**
|
|
1226
|
+
* Hold back releases newer than this when computing the recommended
|
|
1227
|
+
* install or update version. Mitigates "compromised publisher
|
|
1228
|
+
* account pushes a malicious release of an established plugin" by
|
|
1229
|
+
* giving the takedown labeller a detection window.
|
|
1230
|
+
*
|
|
1231
|
+
* Accepts a duration string (`"24h"`, `"48h"`, `"72h"`, `"7d"`) or a
|
|
1232
|
+
* number of seconds.
|
|
1233
|
+
*
|
|
1234
|
+
* Currently applies uniformly to all releases. A future addition
|
|
1235
|
+
* may exempt brand-new packages (those with no prior release
|
|
1236
|
+
* history) so the holdback doesn't block first-time publishing,
|
|
1237
|
+
* but that exemption is not implemented yet; use
|
|
1238
|
+
* {@link minimumReleaseAgeExclude} to allowlist trusted publishers
|
|
1239
|
+
* whose packages should install immediately.
|
|
1240
|
+
*
|
|
1241
|
+
* Defaults to `undefined` (no holdback). A future trust/moderation
|
|
1242
|
+
* RFC will specify the recommended default.
|
|
1243
|
+
*/
|
|
1244
|
+
minimumReleaseAge?: string | number;
|
|
1245
|
+
/**
|
|
1246
|
+
* Packages exempt from the {@link minimumReleaseAge} holdback. Use
|
|
1247
|
+
* for publishers whose release tempo you've explicitly accepted --
|
|
1248
|
+
* your own first-party plugins, a trusted partner, etc.
|
|
1249
|
+
*
|
|
1250
|
+
* Each entry is either:
|
|
1251
|
+
* - A bare publisher DID (e.g. `"did:plc:abc123"`) -- every
|
|
1252
|
+
* package from that publisher is exempt.
|
|
1253
|
+
* - A `<did>/<slug>` pair (e.g.
|
|
1254
|
+
* `"did:plc:abc123/hotfix-plugin"`) -- only that specific
|
|
1255
|
+
* package is exempt.
|
|
1256
|
+
*
|
|
1257
|
+
* Whole-publisher exemptions are the common case: trust is
|
|
1258
|
+
* naturally a property of the publisher, not of each individual
|
|
1259
|
+
* package. Per-package exemptions exist for cases where a publisher
|
|
1260
|
+
* has one plugin you want fast-track installs for and others you'd
|
|
1261
|
+
* rather hold back.
|
|
1262
|
+
*
|
|
1263
|
+
* Only DIDs are accepted -- not handles. Handles are mutable
|
|
1264
|
+
* aggregator-supplied envelope data, and accepting them as a
|
|
1265
|
+
* trust input would let a compromised aggregator bypass the
|
|
1266
|
+
* holdback by claiming any handle for any package. DIDs are
|
|
1267
|
+
* tied to the AT URI of the package record itself, so even a
|
|
1268
|
+
* compromised aggregator cannot lie about which DID published
|
|
1269
|
+
* a release.
|
|
1270
|
+
*
|
|
1271
|
+
* Mirrors pnpm's `minimumReleaseAgeExclude`.
|
|
1272
|
+
*
|
|
1273
|
+
* @example
|
|
1274
|
+
* ```ts
|
|
1275
|
+
* minimumReleaseAgeExclude: [
|
|
1276
|
+
* "did:plc:emdashfirstparty", // every package from this publisher
|
|
1277
|
+
* "did:plc:abc123/hotfix-plugin", // just this one package
|
|
1278
|
+
* ]
|
|
1279
|
+
* ```
|
|
1280
|
+
*/
|
|
1281
|
+
minimumReleaseAgeExclude?: readonly string[];
|
|
1282
|
+
};
|
|
1283
|
+
}
|
|
1284
|
+
/**
|
|
1285
|
+
* Shorthand: pass a bare aggregator URL string in place of a full
|
|
1286
|
+
* `RegistryConfig` object when you don't need `acceptLabelers` or
|
|
1287
|
+
* `policy`. The normalizer expands the string into
|
|
1288
|
+
* `{ aggregatorUrl: <string> }` before any downstream code sees it.
|
|
1289
|
+
*
|
|
1290
|
+
* @example
|
|
1291
|
+
* ```ts
|
|
1292
|
+
* experimental: {
|
|
1293
|
+
* registry: "https://registry.emdashcms.com",
|
|
1294
|
+
* }
|
|
1295
|
+
* ```
|
|
1296
|
+
*
|
|
1297
|
+
* Equivalent to:
|
|
1298
|
+
* ```ts
|
|
1299
|
+
* experimental: {
|
|
1300
|
+
* registry: { aggregatorUrl: "https://registry.emdashcms.com" },
|
|
1301
|
+
* }
|
|
1302
|
+
* ```
|
|
1303
|
+
*/
|
|
1304
|
+
type RegistryConfigInput = string | RegistryConfig;
|
|
1305
|
+
/**
|
|
1306
|
+
* Experimental EmDash features. See `EmDashConfig.experimental`.
|
|
1307
|
+
*
|
|
1308
|
+
* Each field is independently opt-in. Fields may be promoted out of
|
|
1309
|
+
* `experimental` (becoming top-level `EmDashConfig` options) or removed
|
|
1310
|
+
* in minor releases; check the changelog when upgrading.
|
|
1311
|
+
*/
|
|
1312
|
+
interface ExperimentalConfig {
|
|
1313
|
+
/**
|
|
1314
|
+
* Decentralized plugin registry.
|
|
1315
|
+
*
|
|
1316
|
+
* When set, replaces the centralized `marketplace` for the admin UI's
|
|
1317
|
+
* browse and install flows. The registry is an atproto-backed
|
|
1318
|
+
* federation: package metadata lives in each publisher's PDS and
|
|
1319
|
+
* an aggregator (the `aggregatorUrl`) indexes the firehose and
|
|
1320
|
+
* exposes read-only XRPC endpoints for discovery.
|
|
1321
|
+
*
|
|
1322
|
+
* See [RFC 0001](https://github.com/emdash-cms/emdash/pull/694) for
|
|
1323
|
+
* the protocol design.
|
|
1324
|
+
*
|
|
1325
|
+
* **Trust model (v1, experimental).** Today EmDash trusts the
|
|
1326
|
+
* configured aggregator with these claims, per package and per
|
|
1327
|
+
* release:
|
|
1328
|
+
*
|
|
1329
|
+
* - The publisher DID associated with a `(did, slug)` pair.
|
|
1330
|
+
* - The artifact `url`, the artifact `checksum`, and any mirror
|
|
1331
|
+
* URLs returned for a release.
|
|
1332
|
+
* - The published handle for a DID (used for display only;
|
|
1333
|
+
* EmDash separately verifies the DID->handle round-trip in the
|
|
1334
|
+
* admin UI before treating a handle as confirmed).
|
|
1335
|
+
*
|
|
1336
|
+
* What EmDash verifies independently before activating an
|
|
1337
|
+
* installed plugin:
|
|
1338
|
+
*
|
|
1339
|
+
* - The artifact bytes hash to the checksum the aggregator
|
|
1340
|
+
* returned (so a malicious mirror or in-transit tamper can't
|
|
1341
|
+
* swap the bundle).
|
|
1342
|
+
* - The bundle's `manifest.id` matches the requested slug, and
|
|
1343
|
+
* its `manifest.version` matches the release version (so an
|
|
1344
|
+
* attacker who controls the aggregator can't trick the
|
|
1345
|
+
* sandbox into addressing the wrong plugin id).
|
|
1346
|
+
* - The bundle's `manifest.capabilities` matches what the admin
|
|
1347
|
+
* acknowledged in the consent dialog (so a publisher can't
|
|
1348
|
+
* ship a bundle that requests more permissions than the
|
|
1349
|
+
* dialog displayed).
|
|
1350
|
+
*
|
|
1351
|
+
* What's NOT yet verified:
|
|
1352
|
+
*
|
|
1353
|
+
* - Full MST proof / publisher signature on the release record.
|
|
1354
|
+
* A compromised aggregator can forge a release for any DID
|
|
1355
|
+
* and slug, and the install will succeed as long as the
|
|
1356
|
+
* bundle matches the (forged) checksum.
|
|
1357
|
+
* - Per-release replay / rollback: the aggregator chooses which
|
|
1358
|
+
* release version is "latest".
|
|
1359
|
+
*
|
|
1360
|
+
* **Recommendation.** Until full signature verification lands,
|
|
1361
|
+
* point `aggregatorUrl` only at an aggregator you operate
|
|
1362
|
+
* yourself or one you trust with the same level of authority as
|
|
1363
|
+
* a centralized plugin source. The `policy.minimumReleaseAge` and
|
|
1364
|
+
* `acceptLabelers` knobs partially mitigate by widening the
|
|
1365
|
+
* detection window for takedowns, but they assume the labeller
|
|
1366
|
+
* system is operating.
|
|
1367
|
+
*
|
|
1368
|
+
* Requires `sandboxRunner` to be configured -- registry plugins
|
|
1369
|
+
* always run sandboxed.
|
|
1370
|
+
*
|
|
1371
|
+
* Accepts a bare URL string as shorthand for
|
|
1372
|
+
* `{ aggregatorUrl: "..." }`. Use the full object form when you
|
|
1373
|
+
* need `acceptLabelers` or `policy`.
|
|
1374
|
+
*/
|
|
1375
|
+
registry?: RegistryConfigInput;
|
|
1376
|
+
}
|
|
1377
|
+
//#endregion
|
|
1259
1378
|
//#region src/content/converters/types.d.ts
|
|
1260
1379
|
/**
|
|
1261
1380
|
* Portable Text Types
|
|
@@ -1342,7 +1461,7 @@ interface PortableTextUnknownBlock {
|
|
|
1342
1461
|
/**
|
|
1343
1462
|
* Any Portable Text block
|
|
1344
1463
|
*/
|
|
1345
|
-
type PortableTextBlock
|
|
1464
|
+
type PortableTextBlock = PortableTextTextBlock | PortableTextImageBlock | PortableTextCodeBlock | PortableTextUnknownBlock;
|
|
1346
1465
|
/**
|
|
1347
1466
|
* ProseMirror JSON types (simplified for TipTap)
|
|
1348
1467
|
*/
|
|
@@ -1366,13 +1485,13 @@ interface ProseMirrorDocument {
|
|
|
1366
1485
|
/**
|
|
1367
1486
|
* Convert ProseMirror document to Portable Text
|
|
1368
1487
|
*/
|
|
1369
|
-
declare function prosemirrorToPortableText(doc: ProseMirrorDocument): PortableTextBlock
|
|
1488
|
+
declare function prosemirrorToPortableText(doc: ProseMirrorDocument): PortableTextBlock[];
|
|
1370
1489
|
//#endregion
|
|
1371
1490
|
//#region src/content/converters/portable-text-to-prosemirror.d.ts
|
|
1372
1491
|
/**
|
|
1373
1492
|
* Convert Portable Text to ProseMirror document
|
|
1374
1493
|
*/
|
|
1375
|
-
declare function portableTextToProsemirror(blocks: PortableTextBlock
|
|
1494
|
+
declare function portableTextToProsemirror(blocks: PortableTextBlock[]): ProseMirrorDocument;
|
|
1376
1495
|
//#endregion
|
|
1377
1496
|
//#region src/utils/hash.d.ts
|
|
1378
1497
|
/**
|
|
@@ -1421,22 +1540,6 @@ declare function sanitizeHref(url: string | undefined | null): string;
|
|
|
1421
1540
|
*/
|
|
1422
1541
|
declare function isSafeHref(url: string): boolean;
|
|
1423
1542
|
//#endregion
|
|
1424
|
-
//#region src/utils/slugify.d.ts
|
|
1425
|
-
/**
|
|
1426
|
-
* Convert a string to a URL-friendly slug.
|
|
1427
|
-
*
|
|
1428
|
-
* Handles unicode by normalizing to NFD and stripping diacritics,
|
|
1429
|
-
* so "café" becomes "cafe", "naïve" becomes "naive", etc.
|
|
1430
|
-
*/
|
|
1431
|
-
/**
|
|
1432
|
-
* Decode a URI-encoded slug parameter.
|
|
1433
|
-
*
|
|
1434
|
-
* Browsers percent-encode non-ASCII characters in URLs, so a slug like
|
|
1435
|
-
* "మేష-రాసి" arrives as "%e0%b0%ae%e0%b1%87%e0%b0%b7-%e0%b0%b0%e0%b0%be%e0%b0%b8%e0%b0%bf".
|
|
1436
|
-
* Call this on `Astro.params.slug` before using it in database lookups.
|
|
1437
|
-
*/
|
|
1438
|
-
declare function decodeSlug(raw: string | undefined): string | undefined;
|
|
1439
|
-
//#endregion
|
|
1440
1543
|
//#region src/visual-editing/editable.d.ts
|
|
1441
1544
|
/**
|
|
1442
1545
|
* Visual editing annotation system
|
|
@@ -1891,172 +1994,15 @@ declare function getDb(): Promise<Kysely<Database>>;
|
|
|
1891
1994
|
*/
|
|
1892
1995
|
declare function emdashLoader(): LiveLoader<EntryData, EntryFilter, CollectionFilter>;
|
|
1893
1996
|
//#endregion
|
|
1894
|
-
//#region src/cli/wxr/parser.d.ts
|
|
1895
|
-
/**
|
|
1896
|
-
* Parsed WordPress export data
|
|
1897
|
-
*/
|
|
1898
|
-
interface WxrData {
|
|
1899
|
-
/** Site metadata */
|
|
1900
|
-
site: WxrSite;
|
|
1901
|
-
/** Posts (including custom post types) */
|
|
1902
|
-
posts: WxrPost[];
|
|
1903
|
-
/** Media attachments */
|
|
1904
|
-
attachments: WxrAttachment[];
|
|
1905
|
-
/** Categories */
|
|
1906
|
-
categories: WxrCategory[];
|
|
1907
|
-
/** Tags */
|
|
1908
|
-
tags: WxrTag[];
|
|
1909
|
-
/** Authors */
|
|
1910
|
-
authors: WxrAuthor[];
|
|
1911
|
-
/** All taxonomy terms (including custom taxonomies and nav_menu) */
|
|
1912
|
-
terms: WxrTerm[];
|
|
1913
|
-
/** Parsed navigation menus */
|
|
1914
|
-
navMenus: WxrNavMenu[];
|
|
1915
|
-
}
|
|
1916
|
-
interface WxrSite {
|
|
1917
|
-
title?: string;
|
|
1918
|
-
link?: string;
|
|
1919
|
-
description?: string;
|
|
1920
|
-
language?: string;
|
|
1921
|
-
baseSiteUrl?: string;
|
|
1922
|
-
baseBlogUrl?: string;
|
|
1923
|
-
}
|
|
1924
|
-
interface WxrPost {
|
|
1925
|
-
id?: number;
|
|
1926
|
-
title?: string;
|
|
1927
|
-
link?: string;
|
|
1928
|
-
pubDate?: string;
|
|
1929
|
-
creator?: string;
|
|
1930
|
-
guid?: string;
|
|
1931
|
-
description?: string;
|
|
1932
|
-
content?: string;
|
|
1933
|
-
excerpt?: string;
|
|
1934
|
-
postDate?: string;
|
|
1935
|
-
postDateGmt?: string;
|
|
1936
|
-
postModified?: string;
|
|
1937
|
-
postModifiedGmt?: string;
|
|
1938
|
-
commentStatus?: string;
|
|
1939
|
-
pingStatus?: string;
|
|
1940
|
-
status?: string;
|
|
1941
|
-
postType?: string;
|
|
1942
|
-
postName?: string;
|
|
1943
|
-
postPassword?: string;
|
|
1944
|
-
isSticky?: boolean;
|
|
1945
|
-
/** Parent post ID for hierarchical content (pages) */
|
|
1946
|
-
postParent?: number;
|
|
1947
|
-
/** Menu order for sorting */
|
|
1948
|
-
menuOrder?: number;
|
|
1949
|
-
categories: string[];
|
|
1950
|
-
tags: string[];
|
|
1951
|
-
/** Custom taxonomy assignments beyond categories/tags */
|
|
1952
|
-
customTaxonomies?: Map<string, string[]>;
|
|
1953
|
-
meta: Map<string, string>;
|
|
1954
|
-
}
|
|
1955
|
-
interface WxrAttachment {
|
|
1956
|
-
id?: number;
|
|
1957
|
-
title?: string;
|
|
1958
|
-
url?: string;
|
|
1959
|
-
postDate?: string;
|
|
1960
|
-
meta: Map<string, string>;
|
|
1961
|
-
}
|
|
1962
|
-
interface WxrCategory {
|
|
1963
|
-
id?: number;
|
|
1964
|
-
nicename?: string;
|
|
1965
|
-
name?: string;
|
|
1966
|
-
parent?: string;
|
|
1967
|
-
description?: string;
|
|
1968
|
-
}
|
|
1969
|
-
interface WxrTag {
|
|
1970
|
-
id?: number;
|
|
1971
|
-
slug?: string;
|
|
1972
|
-
name?: string;
|
|
1973
|
-
description?: string;
|
|
1974
|
-
}
|
|
1975
|
-
/**
|
|
1976
|
-
* Generic taxonomy term (categories, tags, nav_menu, custom taxonomies)
|
|
1977
|
-
*/
|
|
1978
|
-
interface WxrTerm {
|
|
1979
|
-
id: number;
|
|
1980
|
-
taxonomy: string;
|
|
1981
|
-
slug: string;
|
|
1982
|
-
name: string;
|
|
1983
|
-
parent?: string;
|
|
1984
|
-
description?: string;
|
|
1985
|
-
}
|
|
1986
|
-
/**
|
|
1987
|
-
* Navigation menu structure
|
|
1988
|
-
*/
|
|
1989
|
-
interface WxrNavMenu {
|
|
1990
|
-
id: number;
|
|
1991
|
-
name: string;
|
|
1992
|
-
label: string;
|
|
1993
|
-
items: WxrNavMenuItem[];
|
|
1994
|
-
}
|
|
1995
|
-
/**
|
|
1996
|
-
* Navigation menu item
|
|
1997
|
-
*/
|
|
1998
|
-
interface WxrNavMenuItem {
|
|
1999
|
-
id: number;
|
|
2000
|
-
menuId: number;
|
|
2001
|
-
parentId?: number;
|
|
2002
|
-
sortOrder: number;
|
|
2003
|
-
type: "custom" | "post_type" | "taxonomy";
|
|
2004
|
-
objectType?: string;
|
|
2005
|
-
objectId?: number;
|
|
2006
|
-
url?: string;
|
|
2007
|
-
title: string;
|
|
2008
|
-
target?: string;
|
|
2009
|
-
classes?: string;
|
|
2010
|
-
}
|
|
2011
|
-
interface WxrAuthor {
|
|
2012
|
-
id?: number;
|
|
2013
|
-
login?: string;
|
|
2014
|
-
email?: string;
|
|
2015
|
-
displayName?: string;
|
|
2016
|
-
firstName?: string;
|
|
2017
|
-
lastName?: string;
|
|
2018
|
-
}
|
|
2019
|
-
/**
|
|
2020
|
-
* Parse a WordPress WXR export file
|
|
2021
|
-
*/
|
|
2022
|
-
declare function parseWxr(stream: Readable): Promise<WxrData>;
|
|
2023
|
-
/**
|
|
2024
|
-
* Parse a WordPress WXR export from a string
|
|
2025
|
-
*
|
|
2026
|
-
* Uses the non-streaming SAX parser API for compatibility with
|
|
2027
|
-
* environments that don't have Node.js streams (e.g., Cloudflare Workers).
|
|
2028
|
-
*/
|
|
2029
|
-
declare function parseWxrString(xml: string): Promise<WxrData>;
|
|
2030
|
-
//#endregion
|
|
2031
1997
|
//#region src/plugins/define-plugin.d.ts
|
|
2032
1998
|
/**
|
|
2033
|
-
* Define
|
|
2034
|
-
*
|
|
2035
|
-
* **Standard format** -- the canonical format for plugins that work in both
|
|
2036
|
-
* trusted and sandboxed modes. No id/version -- those come from the descriptor.
|
|
2037
|
-
*
|
|
2038
|
-
* @example
|
|
2039
|
-
* ```typescript
|
|
2040
|
-
* import { definePlugin } from "emdash";
|
|
2041
|
-
*
|
|
2042
|
-
* export default definePlugin({
|
|
2043
|
-
* hooks: {
|
|
2044
|
-
* "content:afterSave": {
|
|
2045
|
-
* handler: async (event, ctx) => {
|
|
2046
|
-
* await ctx.kv.set("lastSave", Date.now());
|
|
2047
|
-
* },
|
|
2048
|
-
* },
|
|
2049
|
-
* },
|
|
2050
|
-
* routes: {
|
|
2051
|
-
* status: {
|
|
2052
|
-
* handler: async (routeCtx, ctx) => ({ ok: true }),
|
|
2053
|
-
* },
|
|
2054
|
-
* },
|
|
2055
|
-
* });
|
|
2056
|
-
* ```
|
|
1999
|
+
* Define a native EmDash plugin.
|
|
2057
2000
|
*
|
|
2058
|
-
*
|
|
2059
|
-
*
|
|
2001
|
+
* Native plugins ship as regular npm modules, get installed via
|
|
2002
|
+
* `pnpm add` + an `astro.config.mjs` edit, and run in the host
|
|
2003
|
+
* process. They have full access to the runtime — capabilities are
|
|
2004
|
+
* still enforced by `PluginContextFactory`, but there is no isolation
|
|
2005
|
+
* boundary.
|
|
2060
2006
|
*
|
|
2061
2007
|
* @example
|
|
2062
2008
|
* ```typescript
|
|
@@ -2081,203 +2027,15 @@ declare function parseWxrString(xml: string): Promise<WxrData>;
|
|
|
2081
2027
|
* }
|
|
2082
2028
|
* });
|
|
2083
2029
|
* ```
|
|
2084
|
-
*/
|
|
2085
|
-
declare function definePlugin<TStorage extends PluginStorageConfig>(definition: PluginDefinition<TStorage>): ResolvedPlugin<TStorage>;
|
|
2086
|
-
declare function definePlugin(definition: StandardPluginDefinition): StandardPluginDefinition;
|
|
2087
|
-
//#endregion
|
|
2088
|
-
//#region src/auth/types.d.ts
|
|
2089
|
-
/**
|
|
2090
|
-
* Auth Provider Types
|
|
2091
|
-
*
|
|
2092
|
-
* Defines the interfaces for pluggable authentication providers.
|
|
2093
|
-
*
|
|
2094
|
-
* Two systems coexist:
|
|
2095
|
-
* - `AuthDescriptor` — transparent auth (Cloudflare Access) that authenticates
|
|
2096
|
-
* every request via headers/cookies. No login UI needed.
|
|
2097
|
-
* - `AuthProviderDescriptor` — pluggable login methods (GitHub, Google,
|
|
2098
|
-
* AT Protocol, etc.) that appear as options on the login page and setup
|
|
2099
|
-
* wizard. Passkey is built-in; providers are additive.
|
|
2100
|
-
*/
|
|
2101
|
-
/**
|
|
2102
|
-
* Result of authenticating a request via an external auth provider
|
|
2103
|
-
*/
|
|
2104
|
-
interface AuthResult {
|
|
2105
|
-
/** User's email address */
|
|
2106
|
-
email: string;
|
|
2107
|
-
/** User's display name */
|
|
2108
|
-
name: string;
|
|
2109
|
-
/** Resolved role level (e.g., 50 for Admin, 30 for Editor) */
|
|
2110
|
-
role: number;
|
|
2111
|
-
/** Provider-specific subject ID */
|
|
2112
|
-
subject?: string;
|
|
2113
|
-
/** Additional provider-specific data */
|
|
2114
|
-
metadata?: Record<string, unknown>;
|
|
2115
|
-
}
|
|
2116
|
-
/**
|
|
2117
|
-
* Auth descriptor — transparent auth providers (e.g., Cloudflare Access).
|
|
2118
|
-
*
|
|
2119
|
-
* These authenticate every request via headers/cookies. No login UI needed.
|
|
2120
|
-
* The module's `authenticate()` function is called by middleware on each request.
|
|
2121
|
-
*/
|
|
2122
|
-
interface AuthDescriptor {
|
|
2123
|
-
/**
|
|
2124
|
-
* Auth provider type identifier
|
|
2125
|
-
* @example "cloudflare-access", "okta", "auth0"
|
|
2126
|
-
*/
|
|
2127
|
-
type: string;
|
|
2128
|
-
/**
|
|
2129
|
-
* Module specifier to import at runtime
|
|
2130
|
-
* The module must export an `authenticate` function.
|
|
2131
|
-
* @example "@emdash-cms/cloudflare/auth"
|
|
2132
|
-
*/
|
|
2133
|
-
entrypoint: string;
|
|
2134
|
-
/**
|
|
2135
|
-
* Provider-specific configuration (JSON-serializable)
|
|
2136
|
-
*/
|
|
2137
|
-
config: unknown;
|
|
2138
|
-
}
|
|
2139
|
-
/**
|
|
2140
|
-
* Auth provider module interface
|
|
2141
2030
|
*
|
|
2142
|
-
*
|
|
2143
|
-
*
|
|
2031
|
+
* Sandboxed-format plugins do not use `definePlugin`. They
|
|
2032
|
+
* default-export a bare `{ hooks?, routes? }` object with a
|
|
2033
|
+
* `satisfies SandboxedPlugin` annotation from `emdash/plugin`. Calling
|
|
2034
|
+
* `definePlugin` with an object that has no `id` throws at runtime
|
|
2035
|
+
* (the type system already rejects it at compile time — this check is
|
|
2036
|
+
* for callers that bypass typechecking).
|
|
2144
2037
|
*/
|
|
2145
|
-
|
|
2146
|
-
/**
|
|
2147
|
-
* Authenticate a request using the provider
|
|
2148
|
-
*
|
|
2149
|
-
* @param request - The incoming HTTP request
|
|
2150
|
-
* @param config - Provider-specific configuration from AuthDescriptor
|
|
2151
|
-
* @returns Authentication result if valid, throws if invalid
|
|
2152
|
-
*/
|
|
2153
|
-
authenticate(request: Request, config: unknown): Promise<AuthResult>;
|
|
2154
|
-
}
|
|
2155
|
-
/**
|
|
2156
|
-
* Descriptor for a pluggable auth provider.
|
|
2157
|
-
*
|
|
2158
|
-
* Auth providers appear as login options on the login page and setup wizard.
|
|
2159
|
-
* They coexist with passkey (which is built-in) and with each other.
|
|
2160
|
-
* Any provider can be used to create the initial admin account.
|
|
2161
|
-
*
|
|
2162
|
-
* @example
|
|
2163
|
-
* ```ts
|
|
2164
|
-
* // astro.config.ts
|
|
2165
|
-
* import { atproto } from "@emdash-cms/auth-atproto";
|
|
2166
|
-
*
|
|
2167
|
-
* emdash({
|
|
2168
|
-
* authProviders: [atproto(), github(), google()],
|
|
2169
|
-
* })
|
|
2170
|
-
* ```
|
|
2171
|
-
*/
|
|
2172
|
-
interface AuthProviderDescriptor {
|
|
2173
|
-
/** Unique provider ID (e.g., "github", "atproto") */
|
|
2174
|
-
id: string;
|
|
2175
|
-
/** Human-readable label for UI (e.g., "GitHub", "AT Protocol") */
|
|
2176
|
-
label: string;
|
|
2177
|
-
/** Provider-specific config (JSON-serializable) */
|
|
2178
|
-
config?: unknown;
|
|
2179
|
-
/**
|
|
2180
|
-
* Module exporting React components for the admin UI.
|
|
2181
|
-
* Statically imported at build time via virtual module.
|
|
2182
|
-
*
|
|
2183
|
-
* The module should export components matching `AuthProviderAdminExports`.
|
|
2184
|
-
*/
|
|
2185
|
-
adminEntry?: string;
|
|
2186
|
-
/**
|
|
2187
|
-
* Astro route handlers this provider needs injected at build time.
|
|
2188
|
-
* Used for login initiation, OAuth callbacks, well-known endpoints, etc.
|
|
2189
|
-
*/
|
|
2190
|
-
routes?: AuthRouteDescriptor[];
|
|
2191
|
-
/**
|
|
2192
|
-
* URL prefixes/paths that should bypass auth middleware.
|
|
2193
|
-
* Added to the public routes set so login/callback endpoints work
|
|
2194
|
-
* for unauthenticated users.
|
|
2195
|
-
*/
|
|
2196
|
-
publicRoutes?: string[];
|
|
2197
|
-
/**
|
|
2198
|
-
* Storage collections for persistent auth state (e.g., OAuth sessions).
|
|
2199
|
-
* Same format as plugin storage — collections are stored in the shared
|
|
2200
|
-
* `_plugin_storage` table namespaced under `auth:<providerId>`.
|
|
2201
|
-
*
|
|
2202
|
-
* Access via `getAuthProviderStorage()` from `emdash/api/route-utils`.
|
|
2203
|
-
*/
|
|
2204
|
-
storage?: Record<string, {
|
|
2205
|
-
indexes?: Array<string | string[]>;
|
|
2206
|
-
uniqueIndexes?: Array<string | string[]>;
|
|
2207
|
-
}>;
|
|
2208
|
-
}
|
|
2209
|
-
/**
|
|
2210
|
-
* A route that an auth provider needs injected into the Astro app.
|
|
2211
|
-
*/
|
|
2212
|
-
interface AuthRouteDescriptor {
|
|
2213
|
-
/** URL pattern (e.g., "/_emdash/api/auth/atproto/login") */
|
|
2214
|
-
pattern: string;
|
|
2215
|
-
/** Module specifier for the Astro route handler */
|
|
2216
|
-
entrypoint: string;
|
|
2217
|
-
}
|
|
2218
|
-
/**
|
|
2219
|
-
* Expected exports from an auth provider's `adminEntry` module.
|
|
2220
|
-
*
|
|
2221
|
-
* All exports are optional. Providers export whichever components
|
|
2222
|
-
* make sense for their auth flow.
|
|
2223
|
-
*/
|
|
2224
|
-
interface AuthProviderAdminExports {
|
|
2225
|
-
/**
|
|
2226
|
-
* Compact button for the login page (icon + label).
|
|
2227
|
-
* Used for providers with a simple redirect flow (GitHub, Google).
|
|
2228
|
-
* Rendered in the "Or continue with" section.
|
|
2229
|
-
*/
|
|
2230
|
-
LoginButton?: react.ComponentType;
|
|
2231
|
-
/**
|
|
2232
|
-
* Full login form for providers that need custom input.
|
|
2233
|
-
* Used for providers like AT Protocol that need a handle field.
|
|
2234
|
-
* Rendered as an expandable section on the login page.
|
|
2235
|
-
*/
|
|
2236
|
-
LoginForm?: react.ComponentType;
|
|
2237
|
-
/**
|
|
2238
|
-
* Setup wizard step for creating the admin account via this provider.
|
|
2239
|
-
* When present, this provider appears as an option in the setup wizard's
|
|
2240
|
-
* "Create admin account" step.
|
|
2241
|
-
*/
|
|
2242
|
-
SetupStep?: react.ComponentType<{
|
|
2243
|
-
onComplete: () => void;
|
|
2244
|
-
}>;
|
|
2245
|
-
}
|
|
2246
|
-
/**
|
|
2247
|
-
* Configuration options common to external auth providers
|
|
2248
|
-
*/
|
|
2249
|
-
interface ExternalAuthConfig {
|
|
2250
|
-
/**
|
|
2251
|
-
* Automatically create EmDash users on first login
|
|
2252
|
-
* @default true
|
|
2253
|
-
*/
|
|
2254
|
-
autoProvision?: boolean;
|
|
2255
|
-
/**
|
|
2256
|
-
* Role level for users not matching any group in roleMapping
|
|
2257
|
-
* @default 30 (Editor)
|
|
2258
|
-
*/
|
|
2259
|
-
defaultRole?: number;
|
|
2260
|
-
/**
|
|
2261
|
-
* Update user's role on each login based on current IdP groups
|
|
2262
|
-
* When false, role is only set on first provisioning
|
|
2263
|
-
* @default false
|
|
2264
|
-
*/
|
|
2265
|
-
syncRoles?: boolean;
|
|
2266
|
-
/**
|
|
2267
|
-
* Map IdP group names to EmDash role levels
|
|
2268
|
-
* First match wins if user is in multiple groups
|
|
2269
|
-
*
|
|
2270
|
-
* @example
|
|
2271
|
-
* ```ts
|
|
2272
|
-
* roleMapping: {
|
|
2273
|
-
* "Admins": 50, // Admin
|
|
2274
|
-
* "Developers": 40, // Developer
|
|
2275
|
-
* "Content Team": 30, // Editor
|
|
2276
|
-
* }
|
|
2277
|
-
* ```
|
|
2278
|
-
*/
|
|
2279
|
-
roleMapping?: Record<string, number>;
|
|
2280
|
-
}
|
|
2038
|
+
declare function definePlugin<TStorage extends PluginStorageConfig>(definition: PluginDefinition<TStorage>): ResolvedPlugin<TStorage>;
|
|
2281
2039
|
//#endregion
|
|
2282
2040
|
//#region src/astro/storage/types.d.ts
|
|
2283
2041
|
/**
|
|
@@ -2560,6 +2318,10 @@ interface EmDashConfig {
|
|
|
2560
2318
|
* Must be an HTTPS URL in production, or localhost/127.0.0.1 in dev.
|
|
2561
2319
|
* Requires `sandboxRunner` to be configured (marketplace plugins run sandboxed).
|
|
2562
2320
|
*
|
|
2321
|
+
* When `registry` is also configured, the registry replaces the marketplace
|
|
2322
|
+
* for the admin UI's browse and install flows. Existing marketplace-installed
|
|
2323
|
+
* plugins continue to work; new installs and updates come from the registry.
|
|
2324
|
+
*
|
|
2563
2325
|
* @example
|
|
2564
2326
|
* ```ts
|
|
2565
2327
|
* emdash({
|
|
@@ -2569,6 +2331,27 @@ interface EmDashConfig {
|
|
|
2569
2331
|
* ```
|
|
2570
2332
|
*/
|
|
2571
2333
|
marketplace?: string;
|
|
2334
|
+
/**
|
|
2335
|
+
* Experimental features.
|
|
2336
|
+
*
|
|
2337
|
+
* These options are not yet stable. Shape, defaults, and behavior may
|
|
2338
|
+
* change between minor versions. Use only if you're comfortable
|
|
2339
|
+
* tracking the release notes and updating your config when an
|
|
2340
|
+
* experimental feature graduates or changes.
|
|
2341
|
+
*
|
|
2342
|
+
* @example
|
|
2343
|
+
* ```ts
|
|
2344
|
+
* emdash({
|
|
2345
|
+
* experimental: {
|
|
2346
|
+
* registry: {
|
|
2347
|
+
* aggregatorUrl: "https://registry.emdashcms.com",
|
|
2348
|
+
* },
|
|
2349
|
+
* },
|
|
2350
|
+
* sandboxRunner: "@emdash-cms/sandbox-cloudflare",
|
|
2351
|
+
* })
|
|
2352
|
+
* ```
|
|
2353
|
+
*/
|
|
2354
|
+
experimental?: ExperimentalConfig;
|
|
2572
2355
|
/**
|
|
2573
2356
|
* Maximum allowed media file upload size in bytes.
|
|
2574
2357
|
*
|
|
@@ -2752,9 +2535,6 @@ interface EmDashConfig {
|
|
|
2752
2535
|
* This is set by the virtual module at build time
|
|
2753
2536
|
*/
|
|
2754
2537
|
declare function getStoredConfig(): EmDashConfig | null;
|
|
2755
|
-
declare global {
|
|
2756
|
-
var __emdashConfig: EmDashConfig | undefined;
|
|
2757
|
-
} //# sourceMappingURL=runtime.d.ts.map
|
|
2758
2538
|
//#endregion
|
|
2759
2539
|
//#region src/plugins/manifest-schema.d.ts
|
|
2760
2540
|
/**
|
|
@@ -2916,17 +2696,17 @@ declare const pluginManifestSchema: z$1.ZodObject<{
|
|
|
2916
2696
|
string: "string";
|
|
2917
2697
|
number: "number";
|
|
2918
2698
|
boolean: "boolean";
|
|
2699
|
+
slug: "slug";
|
|
2919
2700
|
file: "file";
|
|
2920
|
-
|
|
2701
|
+
datetime: "datetime";
|
|
2702
|
+
image: "image";
|
|
2921
2703
|
text: "text";
|
|
2922
2704
|
integer: "integer";
|
|
2923
|
-
|
|
2705
|
+
select: "select";
|
|
2924
2706
|
multiSelect: "multiSelect";
|
|
2925
2707
|
portableText: "portableText";
|
|
2926
|
-
image: "image";
|
|
2927
2708
|
reference: "reference";
|
|
2928
2709
|
json: "json";
|
|
2929
|
-
slug: "slug";
|
|
2930
2710
|
repeater: "repeater";
|
|
2931
2711
|
}>>;
|
|
2932
2712
|
elements: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
|
|
@@ -3628,7 +3408,7 @@ declare class NoopSandboxRunner implements SandboxRunner {
|
|
|
3628
3408
|
/**
|
|
3629
3409
|
* Always throws - can't load sandboxed plugins without isolation.
|
|
3630
3410
|
*/
|
|
3631
|
-
load(_manifest: PluginManifest, _code: string): Promise<
|
|
3411
|
+
load(_manifest: PluginManifest, _code: string): Promise<SandboxedPluginInstance>;
|
|
3632
3412
|
/**
|
|
3633
3413
|
* No-op - sandboxing not available, email callback is irrelevant.
|
|
3634
3414
|
*/
|
|
@@ -3644,419 +3424,6 @@ declare class NoopSandboxRunner implements SandboxRunner {
|
|
|
3644
3424
|
*/
|
|
3645
3425
|
declare function createNoopSandboxRunner(_options?: SandboxOptions): SandboxRunner;
|
|
3646
3426
|
//#endregion
|
|
3647
|
-
//#region src/import/types.d.ts
|
|
3648
|
-
/** Author info from WordPress */
|
|
3649
|
-
interface WpAuthorInfo {
|
|
3650
|
-
id?: number;
|
|
3651
|
-
login?: string;
|
|
3652
|
-
email?: string;
|
|
3653
|
-
displayName?: string;
|
|
3654
|
-
postCount: number;
|
|
3655
|
-
}
|
|
3656
|
-
/** File-based input (WXR upload) */
|
|
3657
|
-
interface FileInput {
|
|
3658
|
-
type: "file";
|
|
3659
|
-
file: File;
|
|
3660
|
-
}
|
|
3661
|
-
/** URL-based input (REST API probe) */
|
|
3662
|
-
interface UrlInput {
|
|
3663
|
-
type: "url";
|
|
3664
|
-
url: string;
|
|
3665
|
-
/** Optional auth token for authenticated requests */
|
|
3666
|
-
token?: string;
|
|
3667
|
-
}
|
|
3668
|
-
/** OAuth-based input (WordPress.com) */
|
|
3669
|
-
interface OAuthInput {
|
|
3670
|
-
type: "oauth";
|
|
3671
|
-
url: string;
|
|
3672
|
-
accessToken: string;
|
|
3673
|
-
/** Site ID for WordPress.com */
|
|
3674
|
-
siteId?: string;
|
|
3675
|
-
}
|
|
3676
|
-
type SourceInput = FileInput | UrlInput | OAuthInput;
|
|
3677
|
-
/** Auth requirements for an import source */
|
|
3678
|
-
interface SourceAuth {
|
|
3679
|
-
type: "oauth" | "token" | "password" | "none";
|
|
3680
|
-
/** OAuth provider identifier */
|
|
3681
|
-
provider?: string;
|
|
3682
|
-
/** OAuth authorization URL */
|
|
3683
|
-
oauthUrl?: string;
|
|
3684
|
-
/** Human-readable instructions */
|
|
3685
|
-
instructions?: string;
|
|
3686
|
-
}
|
|
3687
|
-
/** What the source can provide */
|
|
3688
|
-
interface SourceCapabilities {
|
|
3689
|
-
/** Can fetch published content without auth */
|
|
3690
|
-
publicContent: boolean;
|
|
3691
|
-
/** Can fetch drafts/private (may need auth) */
|
|
3692
|
-
privateContent: boolean;
|
|
3693
|
-
/** Can fetch all custom post types */
|
|
3694
|
-
customPostTypes: boolean;
|
|
3695
|
-
/** Can fetch all meta fields */
|
|
3696
|
-
allMeta: boolean;
|
|
3697
|
-
/** Can stream media directly */
|
|
3698
|
-
mediaStream: boolean;
|
|
3699
|
-
}
|
|
3700
|
-
/** Suggested next action after probe */
|
|
3701
|
-
type SuggestedAction = {
|
|
3702
|
-
type: "proceed";
|
|
3703
|
-
} | {
|
|
3704
|
-
type: "oauth";
|
|
3705
|
-
url: string;
|
|
3706
|
-
provider: string;
|
|
3707
|
-
} | {
|
|
3708
|
-
type: "upload";
|
|
3709
|
-
instructions: string;
|
|
3710
|
-
} | {
|
|
3711
|
-
type: "install-plugin";
|
|
3712
|
-
instructions: string;
|
|
3713
|
-
};
|
|
3714
|
-
/** Detected i18n/multilingual plugin info */
|
|
3715
|
-
interface I18nDetection {
|
|
3716
|
-
/** Multilingual plugin name (e.g. "wpml", "polylang") */
|
|
3717
|
-
plugin: string;
|
|
3718
|
-
/** BCP 47 default locale */
|
|
3719
|
-
defaultLocale: string;
|
|
3720
|
-
/** All configured locales */
|
|
3721
|
-
locales: string[];
|
|
3722
|
-
}
|
|
3723
|
-
/** Result of probing a URL for a specific source */
|
|
3724
|
-
interface SourceProbeResult {
|
|
3725
|
-
/** Which source can handle this */
|
|
3726
|
-
sourceId: string;
|
|
3727
|
-
/** Confidence level */
|
|
3728
|
-
confidence: "definite" | "likely" | "possible";
|
|
3729
|
-
/** What we detected */
|
|
3730
|
-
detected: {
|
|
3731
|
-
platform: string;
|
|
3732
|
-
version?: string;
|
|
3733
|
-
siteTitle?: string;
|
|
3734
|
-
siteUrl?: string;
|
|
3735
|
-
};
|
|
3736
|
-
/** What capabilities are available */
|
|
3737
|
-
capabilities: SourceCapabilities;
|
|
3738
|
-
/** What auth is needed, if any */
|
|
3739
|
-
auth?: SourceAuth;
|
|
3740
|
-
/** Suggested next step */
|
|
3741
|
-
suggestedAction: SuggestedAction;
|
|
3742
|
-
/** Preview data if available (e.g., post counts from REST API) */
|
|
3743
|
-
preview?: {
|
|
3744
|
-
posts?: number;
|
|
3745
|
-
pages?: number;
|
|
3746
|
-
media?: number;
|
|
3747
|
-
};
|
|
3748
|
-
/** Detected multilingual plugin. Absent when none detected. */
|
|
3749
|
-
i18n?: I18nDetection;
|
|
3750
|
-
}
|
|
3751
|
-
/** Combined probe result from all sources */
|
|
3752
|
-
interface ProbeResult {
|
|
3753
|
-
url: string;
|
|
3754
|
-
isWordPress: boolean;
|
|
3755
|
-
/** Best matching source (highest confidence) */
|
|
3756
|
-
bestMatch: SourceProbeResult | null;
|
|
3757
|
-
/** All matching sources */
|
|
3758
|
-
allMatches: SourceProbeResult[];
|
|
3759
|
-
}
|
|
3760
|
-
/** Field definition for import */
|
|
3761
|
-
interface ImportFieldDef {
|
|
3762
|
-
slug: string;
|
|
3763
|
-
label: string;
|
|
3764
|
-
type: string;
|
|
3765
|
-
required: boolean;
|
|
3766
|
-
searchable?: boolean;
|
|
3767
|
-
}
|
|
3768
|
-
/** Field compatibility with existing schema */
|
|
3769
|
-
type FieldCompatibility = "compatible" | "type_mismatch" | "missing";
|
|
3770
|
-
/** Schema status for a collection */
|
|
3771
|
-
interface CollectionSchemaStatus {
|
|
3772
|
-
exists: boolean;
|
|
3773
|
-
fieldStatus: Record<string, {
|
|
3774
|
-
status: FieldCompatibility;
|
|
3775
|
-
existingType?: string;
|
|
3776
|
-
requiredType: string;
|
|
3777
|
-
}>;
|
|
3778
|
-
canImport: boolean;
|
|
3779
|
-
reason?: string;
|
|
3780
|
-
}
|
|
3781
|
-
/** Analysis of a single post type */
|
|
3782
|
-
interface PostTypeAnalysis {
|
|
3783
|
-
name: string;
|
|
3784
|
-
count: number;
|
|
3785
|
-
suggestedCollection: string;
|
|
3786
|
-
requiredFields: ImportFieldDef[];
|
|
3787
|
-
schemaStatus: CollectionSchemaStatus;
|
|
3788
|
-
}
|
|
3789
|
-
/** Attachment/media info */
|
|
3790
|
-
interface AttachmentInfo {
|
|
3791
|
-
id?: number;
|
|
3792
|
-
title?: string;
|
|
3793
|
-
url?: string;
|
|
3794
|
-
filename?: string;
|
|
3795
|
-
mimeType?: string;
|
|
3796
|
-
alt?: string;
|
|
3797
|
-
caption?: string;
|
|
3798
|
-
width?: number;
|
|
3799
|
-
height?: number;
|
|
3800
|
-
}
|
|
3801
|
-
/** Navigation menu analysis */
|
|
3802
|
-
interface NavMenuAnalysis {
|
|
3803
|
-
/** Menu name/slug */
|
|
3804
|
-
name: string;
|
|
3805
|
-
/** Menu display label */
|
|
3806
|
-
label: string;
|
|
3807
|
-
/** Number of items in this menu */
|
|
3808
|
-
itemCount: number;
|
|
3809
|
-
}
|
|
3810
|
-
/** Custom taxonomy analysis */
|
|
3811
|
-
interface TaxonomyAnalysis {
|
|
3812
|
-
/** Taxonomy slug (e.g., 'genre', 'portfolio_category') */
|
|
3813
|
-
slug: string;
|
|
3814
|
-
/** Number of terms in this taxonomy */
|
|
3815
|
-
termCount: number;
|
|
3816
|
-
/** Sample term names */
|
|
3817
|
-
sampleTerms: string[];
|
|
3818
|
-
}
|
|
3819
|
-
/** Reusable block analysis (wp_block post type) */
|
|
3820
|
-
interface ReusableBlockAnalysis {
|
|
3821
|
-
/** Original WP ID */
|
|
3822
|
-
id: number;
|
|
3823
|
-
/** Block title */
|
|
3824
|
-
title: string;
|
|
3825
|
-
/** Block slug */
|
|
3826
|
-
slug: string;
|
|
3827
|
-
}
|
|
3828
|
-
/** Normalized analysis result - same format for all sources */
|
|
3829
|
-
interface ImportAnalysis {
|
|
3830
|
-
/** Source that produced this analysis */
|
|
3831
|
-
sourceId: string;
|
|
3832
|
-
site: {
|
|
3833
|
-
title: string;
|
|
3834
|
-
url: string;
|
|
3835
|
-
};
|
|
3836
|
-
postTypes: PostTypeAnalysis[];
|
|
3837
|
-
attachments: {
|
|
3838
|
-
count: number;
|
|
3839
|
-
items: AttachmentInfo[];
|
|
3840
|
-
};
|
|
3841
|
-
categories: number;
|
|
3842
|
-
tags: number;
|
|
3843
|
-
authors: WpAuthorInfo[];
|
|
3844
|
-
/** Navigation menus found in the export */
|
|
3845
|
-
navMenus?: NavMenuAnalysis[];
|
|
3846
|
-
/** Custom taxonomies (beyond categories/tags) */
|
|
3847
|
-
customTaxonomies?: TaxonomyAnalysis[];
|
|
3848
|
-
/** Reusable blocks (wp_block post type) - will be imported as sections */
|
|
3849
|
-
reusableBlocks?: ReusableBlockAnalysis[];
|
|
3850
|
-
/** Source-specific custom fields analysis */
|
|
3851
|
-
customFields?: Array<{
|
|
3852
|
-
key: string;
|
|
3853
|
-
count: number;
|
|
3854
|
-
samples: string[];
|
|
3855
|
-
suggestedField: string;
|
|
3856
|
-
suggestedType: "string" | "number" | "boolean" | "date" | "json";
|
|
3857
|
-
isInternal: boolean;
|
|
3858
|
-
}>;
|
|
3859
|
-
/** Detected multilingual plugin. Absent when none detected. */
|
|
3860
|
-
i18n?: I18nDetection;
|
|
3861
|
-
}
|
|
3862
|
-
/** Normalized content item - produced by all sources */
|
|
3863
|
-
interface NormalizedItem {
|
|
3864
|
-
/** Original ID from source */
|
|
3865
|
-
sourceId: string | number;
|
|
3866
|
-
/** WordPress post type */
|
|
3867
|
-
postType: string;
|
|
3868
|
-
/** Content status */
|
|
3869
|
-
status: "publish" | "draft" | "pending" | "private" | "future";
|
|
3870
|
-
/** URL slug */
|
|
3871
|
-
slug: string;
|
|
3872
|
-
/** Title */
|
|
3873
|
-
title: string;
|
|
3874
|
-
/** Content as Portable Text (already converted) */
|
|
3875
|
-
content: PortableTextBlock[];
|
|
3876
|
-
/** Excerpt/summary */
|
|
3877
|
-
excerpt?: string;
|
|
3878
|
-
/** Publication date */
|
|
3879
|
-
date: Date;
|
|
3880
|
-
/** Last modified date */
|
|
3881
|
-
modified?: Date;
|
|
3882
|
-
/** Author identifier */
|
|
3883
|
-
author?: string;
|
|
3884
|
-
/** Category slugs */
|
|
3885
|
-
categories?: string[];
|
|
3886
|
-
/** Tag slugs */
|
|
3887
|
-
tags?: string[];
|
|
3888
|
-
/** Custom meta fields */
|
|
3889
|
-
meta?: Record<string, unknown>;
|
|
3890
|
-
/** Featured image URL */
|
|
3891
|
-
featuredImage?: string;
|
|
3892
|
-
/** Parent post ID (for hierarchical content like pages) */
|
|
3893
|
-
parentId?: string | number;
|
|
3894
|
-
/** Menu order for sorting */
|
|
3895
|
-
menuOrder?: number;
|
|
3896
|
-
/** Custom taxonomy assignments beyond categories/tags */
|
|
3897
|
-
customTaxonomies?: Record<string, string[]>;
|
|
3898
|
-
/** BCP 47 locale code. When omitted, defaults to defaultLocale. */
|
|
3899
|
-
locale?: string;
|
|
3900
|
-
/**
|
|
3901
|
-
* Source-side translation group ID (opaque string from the origin system).
|
|
3902
|
-
* Items sharing the same translationGroup are linked as translations.
|
|
3903
|
-
* Resolved to an EmDash translation_group ULID during execute.
|
|
3904
|
-
*/
|
|
3905
|
-
translationGroup?: string;
|
|
3906
|
-
}
|
|
3907
|
-
/** Post type mapping configuration */
|
|
3908
|
-
interface PostTypeMapping {
|
|
3909
|
-
enabled: boolean;
|
|
3910
|
-
collection: string;
|
|
3911
|
-
}
|
|
3912
|
-
/** Import configuration */
|
|
3913
|
-
interface ImportConfig {
|
|
3914
|
-
postTypeMappings: Record<string, PostTypeMapping>;
|
|
3915
|
-
skipExisting?: boolean;
|
|
3916
|
-
}
|
|
3917
|
-
/** Options for fetching content */
|
|
3918
|
-
interface FetchOptions {
|
|
3919
|
-
/** Post types to fetch */
|
|
3920
|
-
postTypes: string[];
|
|
3921
|
-
/** Whether to include drafts */
|
|
3922
|
-
includeDrafts?: boolean;
|
|
3923
|
-
/** Limit number of items (for testing) */
|
|
3924
|
-
limit?: number;
|
|
3925
|
-
}
|
|
3926
|
-
/** Import result */
|
|
3927
|
-
interface ImportResult {
|
|
3928
|
-
success: boolean;
|
|
3929
|
-
imported: number;
|
|
3930
|
-
skipped: number;
|
|
3931
|
-
errors: Array<{
|
|
3932
|
-
title: string;
|
|
3933
|
-
error: string;
|
|
3934
|
-
}>;
|
|
3935
|
-
byCollection: Record<string, number>;
|
|
3936
|
-
}
|
|
3937
|
-
/**
|
|
3938
|
-
* An import source provides content from an external system.
|
|
3939
|
-
* All sources produce the same normalized analysis and content format.
|
|
3940
|
-
*/
|
|
3941
|
-
interface ImportSource {
|
|
3942
|
-
/** Unique identifier */
|
|
3943
|
-
id: string;
|
|
3944
|
-
/** Display name */
|
|
3945
|
-
name: string;
|
|
3946
|
-
/** Description for UI */
|
|
3947
|
-
description: string;
|
|
3948
|
-
/** Icon identifier */
|
|
3949
|
-
icon: "upload" | "globe" | "wordpress" | "plug";
|
|
3950
|
-
/** Whether this source requires a file upload */
|
|
3951
|
-
requiresFile?: boolean;
|
|
3952
|
-
/** Whether this source can probe URLs */
|
|
3953
|
-
canProbe?: boolean;
|
|
3954
|
-
/**
|
|
3955
|
-
* Probe a URL to see if this source can handle it.
|
|
3956
|
-
* Returns null if not applicable.
|
|
3957
|
-
*/
|
|
3958
|
-
probe?(url: string): Promise<SourceProbeResult | null>;
|
|
3959
|
-
/**
|
|
3960
|
-
* Analyze content from this source.
|
|
3961
|
-
* Returns normalized ImportAnalysis.
|
|
3962
|
-
*/
|
|
3963
|
-
analyze(input: SourceInput, context: ImportContext): Promise<ImportAnalysis>;
|
|
3964
|
-
/**
|
|
3965
|
-
* Stream content items for import.
|
|
3966
|
-
* Yields normalized content items.
|
|
3967
|
-
*/
|
|
3968
|
-
fetchContent(input: SourceInput, options: FetchOptions): AsyncGenerator<NormalizedItem>;
|
|
3969
|
-
/**
|
|
3970
|
-
* Fetch a media item's data.
|
|
3971
|
-
* Used for media import.
|
|
3972
|
-
*/
|
|
3973
|
-
fetchMedia?(url: string, input: SourceInput): Promise<Blob>;
|
|
3974
|
-
}
|
|
3975
|
-
/** Context passed to import sources */
|
|
3976
|
-
interface ImportContext {
|
|
3977
|
-
/** Database connection for schema checks */
|
|
3978
|
-
db?: unknown;
|
|
3979
|
-
/** Function to check existing collections */
|
|
3980
|
-
getExistingCollections?: () => Promise<Map<string, {
|
|
3981
|
-
slug: string;
|
|
3982
|
-
fields: Map<string, {
|
|
3983
|
-
type: string;
|
|
3984
|
-
}>;
|
|
3985
|
-
}>>;
|
|
3986
|
-
}
|
|
3987
|
-
//#endregion
|
|
3988
|
-
//#region src/import/sections.d.ts
|
|
3989
|
-
/**
|
|
3990
|
-
* Result of sections import operation
|
|
3991
|
-
*/
|
|
3992
|
-
interface SectionsImportResult {
|
|
3993
|
-
/** Number of sections created */
|
|
3994
|
-
sectionsCreated: number;
|
|
3995
|
-
/** Number of sections skipped (already exist) */
|
|
3996
|
-
sectionsSkipped: number;
|
|
3997
|
-
/** Errors encountered during import */
|
|
3998
|
-
errors: Array<{
|
|
3999
|
-
title: string;
|
|
4000
|
-
error: string;
|
|
4001
|
-
}>;
|
|
4002
|
-
}
|
|
4003
|
-
/**
|
|
4004
|
-
* Import reusable blocks (wp_block post type) from WXR as sections
|
|
4005
|
-
*
|
|
4006
|
-
* @param posts - All posts from WXR (will filter to wp_block)
|
|
4007
|
-
* @param db - Database connection
|
|
4008
|
-
* @returns Import result with counts
|
|
4009
|
-
*/
|
|
4010
|
-
declare function importReusableBlocksAsSections(posts: WxrPost[], db: Kysely<Database>): Promise<SectionsImportResult>;
|
|
4011
|
-
//#endregion
|
|
4012
|
-
//#region src/import/registry.d.ts
|
|
4013
|
-
/**
|
|
4014
|
-
* Register an import source
|
|
4015
|
-
*/
|
|
4016
|
-
declare function registerSource(source: ImportSource): void;
|
|
4017
|
-
/**
|
|
4018
|
-
* Get a source by ID
|
|
4019
|
-
*/
|
|
4020
|
-
declare function getSource(id: string): ImportSource | undefined;
|
|
4021
|
-
/**
|
|
4022
|
-
* Get all registered sources
|
|
4023
|
-
*/
|
|
4024
|
-
declare function getAllSources(): ImportSource[];
|
|
4025
|
-
/**
|
|
4026
|
-
* Get sources that can handle file uploads
|
|
4027
|
-
*/
|
|
4028
|
-
declare function getFileSources(): ImportSource[];
|
|
4029
|
-
/**
|
|
4030
|
-
* Get sources that can probe URLs
|
|
4031
|
-
*/
|
|
4032
|
-
declare function getUrlSources(): ImportSource[];
|
|
4033
|
-
/**
|
|
4034
|
-
* Probe a URL against all registered sources
|
|
4035
|
-
*
|
|
4036
|
-
* Returns probe results sorted by confidence (definite > likely > possible)
|
|
4037
|
-
*/
|
|
4038
|
-
declare function probeUrl(url: string): Promise<ProbeResult>;
|
|
4039
|
-
/**
|
|
4040
|
-
* Clear all registered sources (useful for testing)
|
|
4041
|
-
*/
|
|
4042
|
-
declare function clearSources(): void;
|
|
4043
|
-
//#endregion
|
|
4044
|
-
//#region src/import/sources/wxr.d.ts
|
|
4045
|
-
declare const wxrSource: ImportSource;
|
|
4046
|
-
/**
|
|
4047
|
-
* Parse a WXR date with the correct fallback chain:
|
|
4048
|
-
* 1. GMT date (always UTC, most reliable)
|
|
4049
|
-
* 2. pubDate (RFC 2822, includes timezone offset)
|
|
4050
|
-
* 3. Site-local date (MySQL datetime without timezone, imprecise but best available)
|
|
4051
|
-
*
|
|
4052
|
-
* Returns undefined when none of the inputs yield a valid date.
|
|
4053
|
-
* Callers that need a guaranteed Date should use `?? new Date()`.
|
|
4054
|
-
*/
|
|
4055
|
-
declare function parseWxrDate(gmtDate: string | undefined, pubDate: string | undefined, localDate: string | undefined): Date | undefined;
|
|
4056
|
-
//#endregion
|
|
4057
|
-
//#region src/import/sources/wordpress-rest.d.ts
|
|
4058
|
-
declare const wordpressRestSource: ImportSource;
|
|
4059
|
-
//#endregion
|
|
4060
3427
|
//#region src/preview/tokens.d.ts
|
|
4061
3428
|
/**
|
|
4062
3429
|
* Preview token generation and verification
|
|
@@ -4646,7 +4013,7 @@ interface Widget {
|
|
|
4646
4013
|
id: string;
|
|
4647
4014
|
type: WidgetType;
|
|
4648
4015
|
title?: string;
|
|
4649
|
-
content?: PortableTextBlock$
|
|
4016
|
+
content?: PortableTextBlock$1[];
|
|
4650
4017
|
menuName?: string;
|
|
4651
4018
|
componentId?: string;
|
|
4652
4019
|
componentProps?: Record<string, unknown>;
|
|
@@ -4681,7 +4048,7 @@ interface CreateWidgetAreaInput {
|
|
|
4681
4048
|
interface CreateWidgetInput {
|
|
4682
4049
|
type: WidgetType;
|
|
4683
4050
|
title?: string;
|
|
4684
|
-
content?: PortableTextBlock$
|
|
4051
|
+
content?: PortableTextBlock$1[];
|
|
4685
4052
|
menuName?: string;
|
|
4686
4053
|
componentId?: string;
|
|
4687
4054
|
componentProps?: Record<string, unknown>;
|
|
@@ -4863,6 +4230,32 @@ declare class FTSManager {
|
|
|
4863
4230
|
* `deleted_at IS NULL`. This keeps soft-deleted content out of the
|
|
4864
4231
|
* search index and ensures the FTS row count matches the non-deleted
|
|
4865
4232
|
* content count (which `verifyAndRepairIndex` relies on).
|
|
4233
|
+
*
|
|
4234
|
+
* IMPORTANT: The FTS5 virtual table is created with `content='ec_<slug>'`
|
|
4235
|
+
* which makes it an *external content* FTS5 table. For external-content
|
|
4236
|
+
* tables, removing a row must use the documented `'delete'` command and
|
|
4237
|
+
* supply the OLD column values explicitly, e.g.:
|
|
4238
|
+
*
|
|
4239
|
+
* INSERT INTO fts(fts, rowid, col1, col2)
|
|
4240
|
+
* VALUES('delete', OLD.rowid, OLD.col1, OLD.col2);
|
|
4241
|
+
*
|
|
4242
|
+
* Using `DELETE FROM fts WHERE rowid = OLD.rowid` is the correct form
|
|
4243
|
+
* for *contentless* tables but is unsafe for external-content tables:
|
|
4244
|
+
* FTS5 then reads column values from the backing content table, which
|
|
4245
|
+
* in an AFTER UPDATE trigger already holds the NEW values. The wrong
|
|
4246
|
+
* tokens get removed and the inverted index drifts out of sync until
|
|
4247
|
+
* SQLite raises `SQLITE_CORRUPT_VTAB` on the next mutation. See
|
|
4248
|
+
* https://www.sqlite.org/fts5.html#external_content_tables.
|
|
4249
|
+
*
|
|
4250
|
+
* The UPDATE and DELETE triggers gate the `'delete'` on
|
|
4251
|
+
* `OLD.deleted_at IS NULL` because the INSERT trigger never indexed
|
|
4252
|
+
* rows that were already soft-deleted. Issuing `'delete'` for a rowid
|
|
4253
|
+
* that was never inserted into the FTS index is itself a corruption
|
|
4254
|
+
* trigger -- FTS5's `'delete'` is not a no-op on missing rowids and
|
|
4255
|
+
* raises `SQLITE_CORRUPT_VTAB`. Affected paths include restore-from-
|
|
4256
|
+
* trash (UPDATE where `OLD.deleted_at IS NOT NULL`), permanent-delete
|
|
4257
|
+
* from trash (DELETE on a soft-deleted row), and any edit on a row
|
|
4258
|
+
* that's currently in the trash.
|
|
4866
4259
|
*/
|
|
4867
4260
|
private createTriggers;
|
|
4868
4261
|
/**
|
|
@@ -4920,9 +4313,15 @@ declare class FTSManager {
|
|
|
4920
4313
|
lastRebuilt?: string;
|
|
4921
4314
|
} | null>;
|
|
4922
4315
|
/**
|
|
4923
|
-
* Verify FTS index integrity and rebuild if
|
|
4316
|
+
* Verify FTS index integrity and rebuild if drift is detected.
|
|
4317
|
+
*
|
|
4318
|
+
* Cheap belt-and-braces check, run lazily on the first search request
|
|
4319
|
+
* per isolate. The expensive cases (corrupted indexes from pre-fix
|
|
4320
|
+
* EmDash versions, broken legacy triggers) are handled at boot time by
|
|
4321
|
+
* migration `039_fix_fts5_triggers`, not here. This routine sticks to:
|
|
4924
4322
|
*
|
|
4925
|
-
*
|
|
4323
|
+
* 1. FTS table missing while config says search is enabled -> rebuild.
|
|
4324
|
+
* 2. Row count mismatch between content table and FTS docsize -> rebuild.
|
|
4926
4325
|
*
|
|
4927
4326
|
* Returns true if the index was rebuilt, false if it was healthy.
|
|
4928
4327
|
*/
|
|
@@ -5022,7 +4421,7 @@ declare function getSearchStats(db: Kysely<Database>): Promise<SearchStats>;
|
|
|
5022
4421
|
* // Returns: "Hello World"
|
|
5023
4422
|
* ```
|
|
5024
4423
|
*/
|
|
5025
|
-
declare function extractPlainText(blocks: PortableTextBlock
|
|
4424
|
+
declare function extractPlainText(blocks: PortableTextBlock[] | string | null | undefined): string;
|
|
5026
4425
|
/**
|
|
5027
4426
|
* Extract searchable text from a content entry
|
|
5028
4427
|
*
|
|
@@ -5034,5 +4433,5 @@ declare function extractPlainText(blocks: PortableTextBlock$1[] | string | null
|
|
|
5034
4433
|
*/
|
|
5035
4434
|
declare function extractSearchableFields(entry: Record<string, unknown>, fields: string[]): Record<string, string>;
|
|
5036
4435
|
//#endregion
|
|
5037
|
-
export { UpdateMenuInput as $,
|
|
5038
|
-
//# sourceMappingURL=index-
|
|
4436
|
+
export { UpdateMenuInput as $, MediaResponse as $n, CollectionFilter$1 as $t, getEntriesByTerm as A, PortableTextTextBlock as An, portableText as Ar, HookResult as At, TaxonomyTerm as B, SandboxedPluginInstance as Bn, MediaItem as Br, definePlugin as Bt, ReorderWidgetsInput as C, portableTextToProsemirror as Cn, handleContentPublish as Cr, SandboxNotAvailableError as Ct, WidgetComponentDef as D, PortableTextLinkMark as Dn, handleContentUnpublish as Dr, PluginRouteError as Dt, WidgetArea as E, PortableTextImageBlock as En, handleContentTranslations as Er, createPluginManager as Et, getTerm as F, SandboxEmailMessage as Fn, FieldUIHints as Fr, PluginDescriptor as Ft, getMenu as G, GetSectionsOptions as Gn, getDb as Gt, UpdateTermInput as H, getSection as Hn, ContentRepository as Hr, EntryData as Ht, getTermsForEntries as I, SandboxEmailSendCallback as In, FileValue as Ir, getStoredConfig as It, CreateMenuItemInput as J, UpdateSectionInput as Jn, getI18nConfig as Jt, getMenus as K, Section as Kn, I18nConfig as Kt, invalidateTermCache as L, SandboxOptions as Ln, ImageValue as Lr, LocalStorageConfig as Lt, getTaxonomyDef as M, ProseMirrorDocument as Mn, file as Mr, ValidatedPluginManifest as Mt, getTaxonomyDefs as N, ProseMirrorMark as Nn, image as Nr, pluginManifestSchema as Nt, WidgetType as O, PortableTextMarkDef as On, handleContentUnschedule as Or, EmailPipeline as Ot, getTaxonomyTerms as P, ProseMirrorNode as Pn, FieldDefinition as Pr, EmDashConfig as Pt, ReorderMenuItemsInput as Q, MediaListResponse as Qn, CacheHint as Qt, CreateTermInput as R, SandboxRunner as Rn, PortableTextBlock$1 as Rr, S3StorageConfig as Rt, PropDef as S, hashString as Sn, handleContentPermanentDelete as Sr, NoopSandboxRunner as St, Widget as T, PortableTextCodeBlock as Tn, handleContentSchedule as Tr, PluginManager as Tt, getByline as U, getSections as Un, DatabaseConfig as Ur, EntryFilter as Ut, TaxonomyTermRow as V, SerializedRequest as Vn, MediaRepository as Vr, CollectionFilter as Vt, getBylineBySlug as W, CreateSectionInput as Wn, EmDashDatabaseError as Wr, emdashLoader as Wt, MenuItem as X, SchemaError as Xn, WaitUntilFn as Xt, Menu as Y, getCollectionInfo as Yn, isI18nEnabled as Yt, MenuItemType as Z, SchemaRegistry as Zn, after as Zt, getWidgetArea as _, createEditable as _n, handleContentDuplicate as _r, VerifyPreviewTokenOptions as _t, search as a, InferCollectionData as an, RevisionListResponse as ar, getPluginSetting as at, CreateWidgetAreaInput as b, sanitizeHref as bn, handleContentList as br, parseContentId as bt, FTSManager as c, TranslationsResult as cn, handleRevisionList as cr, getSiteSettings as ct, SearchOptions as d, getEmDashEntry as dn, handleContentCompare as dr, isPreviewRequest as dt, CollectionResult as en, handleMediaCreate as er, UpdateMenuItemInput as et, SearchResponse as f, getTranslations as fn, handleContentCountScheduled as fr, GetPreviewUrlOptions as ft, Suggestion as g, FieldAnnotation as gn, handleContentDiscardDraft as gr, PreviewTokenPayload as gt, SuggestOptions as h, EditProxy as hn, handleContentDelete as hr, GeneratePreviewTokenOptions as ht, getSuggestions as i, EntryResult as in, handleMediaUpdate as ir, getComments as it, getEntryTerms as j, PortableTextUnknownBlock as jn, reference as jr, createHookPipeline as jt, getAllTermsForEntries as k, PortableTextSpan as kn, handleContentUpdate as kr, HookPipeline as kt, CollectionSearchOptions as l, getEditMeta as ln, handleRevisionRestore as lr, setSiteSettings as lt, SearchStats as m, CMSAnnotation as mn, handleContentCreate as mr, getPreviewUrl as mt, extractSearchableFields as n, EditFieldMeta as nn, handleMediaGet as nr, GetCommentsResult as nt, searchCollection as o, ResolvePathResult as on, RevisionResponse as or, getPluginSettings as ot, SearchResult as p, resolveEmDashPath as pn, handleContentCountTrashed as pr, buildPreviewUrl as pt, CreateMenuInput as q, SectionSource as qn, getFallbackChain as qt, getSearchStats as r, EmDashCollections as rn, handleMediaList as rr, getCommentCount as rt, searchWithDb as s, TranslationSummary as sn, handleRevisionGet as sr, getSiteSetting as st, extractPlainText as t, ContentEntry as tn, handleMediaDelete as tr, GetCommentsOptions as tt, SearchConfig as u, getEmDashCollection as un, generateManifest as ur, getPreviewToken as ut, getWidgetAreas as v, createNoop as vn, handleContentGet as vr, VerifyPreviewTokenResult as vt, UpdateWidgetInput as w, prosemirrorToPortableText as wn, handleContentRestore as wr, createNoopSandboxRunner as wt, CreateWidgetInput as x, computeContentHash as xn, handleContentListTrashed as xr, verifyPreviewToken as xt, getWidgetComponents as y, isSafeHref as yn, handleContentGetIncludingTrashed as yr, generatePreviewToken as yt, TaxonomyDef as z, SandboxRunnerFactory as zn, CreateMediaInput as zr, StorageDescriptor as zt };
|
|
4437
|
+
//# sourceMappingURL=index-BV8iJ-6s.d.mts.map
|