dineway 0.1.9 → 0.1.12
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/README.md +63 -17
- package/dist/activity-events-B4wp7CrU.mjs +540 -0
- package/dist/allowed-origins-C1AKK9AT.mjs +68 -0
- package/dist/api/route-utils.d.mts +42 -0
- package/dist/api/route-utils.mjs +26 -0
- package/dist/api/schemas/index.d.mts +3 -0
- package/dist/api/schemas/index.mjs +6 -0
- package/dist/api/schemas/setup.d.mts +42 -0
- package/dist/api/schemas/setup.mjs +39 -0
- package/dist/api-BR7Y0GBo.mjs +2704 -0
- package/dist/api-tokens-CPjC3zf8.mjs +3 -0
- package/dist/api-tokens-D7UjLbdt.mjs +153 -0
- package/dist/{apply-iVSqz2qs.mjs → apply-Bm5QgdrE.mjs} +15 -689
- package/dist/astro/index.d.mts +11 -6
- package/dist/astro/index.mjs +86 -11
- package/dist/astro/middleware/auth.d.mts +11 -7
- package/dist/astro/middleware/auth.mjs +19 -104
- package/dist/astro/middleware/redirect.mjs +24 -14
- package/dist/astro/middleware/request-context.mjs +9 -6
- package/dist/astro/middleware/setup.mjs +1 -1
- package/dist/astro/middleware.mjs +88 -145
- package/dist/astro/routes/PluginRegistry.d.mts +14 -0
- package/dist/astro/routes/PluginRegistry.mjs +24 -0
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.d.mts +14 -0
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +65 -0
- package/dist/astro/routes/api/admin/allowed-domains/index.d.mts +14 -0
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +65 -0
- package/dist/astro/routes/api/admin/api-tokens/_id_.d.mts +10 -0
- package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +33 -0
- package/dist/astro/routes/api/admin/api-tokens/index.d.mts +16 -0
- package/dist/astro/routes/api/admin/api-tokens/index.mjs +59 -0
- package/dist/astro/routes/api/admin/briefing.d.mts +7 -0
- package/dist/astro/routes/api/admin/briefing.mjs +71 -0
- package/dist/astro/routes/api/admin/bylines/_id_/index.d.mts +9 -0
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +74 -0
- package/dist/astro/routes/api/admin/bylines/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/bylines/index.mjs +61 -0
- package/dist/astro/routes/api/admin/comments/_id_/status.d.mts +7 -0
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +80 -0
- package/dist/astro/routes/api/admin/comments/_id_.d.mts +14 -0
- package/dist/astro/routes/api/admin/comments/_id_.mjs +46 -0
- package/dist/astro/routes/api/admin/comments/bulk.d.mts +7 -0
- package/dist/astro/routes/api/admin/comments/bulk.mjs +36 -0
- package/dist/astro/routes/api/admin/comments/counts.d.mts +7 -0
- package/dist/astro/routes/api/admin/comments/counts.mjs +24 -0
- package/dist/astro/routes/api/admin/comments/index.d.mts +10 -0
- package/dist/astro/routes/api/admin/comments/index.mjs +40 -0
- package/dist/astro/routes/api/admin/context/_id_/history.d.mts +7 -0
- package/dist/astro/routes/api/admin/context/_id_/history.mjs +46 -0
- package/dist/astro/routes/api/admin/context/_id_/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/context/_id_/index.mjs +46 -0
- package/dist/astro/routes/api/admin/context/_id_/review.d.mts +7 -0
- package/dist/astro/routes/api/admin/context/_id_/review.mjs +61 -0
- package/dist/astro/routes/api/admin/context/_id_/supersede.d.mts +7 -0
- package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +64 -0
- package/dist/astro/routes/api/admin/context/diff.d.mts +7 -0
- package/dist/astro/routes/api/admin/context/diff.mjs +50 -0
- package/dist/astro/routes/api/admin/context/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/context/index.mjs +72 -0
- package/dist/astro/routes/api/admin/context/stale.d.mts +7 -0
- package/dist/astro/routes/api/admin/context/stale.mjs +50 -0
- package/dist/astro/routes/api/admin/hitl-requests/_id_/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +52 -0
- package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.d.mts +7 -0
- package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +68 -0
- package/dist/astro/routes/api/admin/hitl-requests/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/hitl-requests/index.mjs +56 -0
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.d.mts +7 -0
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +99 -0
- package/dist/astro/routes/api/admin/hooks/exclusive/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +33 -0
- package/dist/astro/routes/api/admin/oauth-clients/_id_.d.mts +18 -0
- package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +79 -0
- package/dist/astro/routes/api/admin/oauth-clients/index.d.mts +14 -0
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs +58 -0
- package/dist/astro/routes/api/admin/plugins/_id_/disable.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +90 -0
- package/dist/astro/routes/api/admin/plugins/_id_/enable.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +90 -0
- package/dist/astro/routes/api/admin/plugins/_id_/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +55 -0
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +99 -0
- package/dist/astro/routes/api/admin/plugins/_id_/update.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +132 -0
- package/dist/astro/routes/api/admin/plugins/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/index.mjs +53 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +36 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +55 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +129 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +62 -0
- package/dist/astro/routes/api/admin/plugins/updates.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/updates.mjs +53 -0
- package/dist/astro/routes/api/admin/review-requests/_id_/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +26 -0
- package/dist/astro/routes/api/admin/review-requests/_id_/resolve.d.mts +7 -0
- package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +98 -0
- package/dist/astro/routes/api/admin/review-requests/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/review-requests/index.mjs +31 -0
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +55 -0
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.d.mts +7 -0
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +36 -0
- package/dist/astro/routes/api/admin/themes/marketplace/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +71 -0
- package/dist/astro/routes/api/admin/users/_id_/disable.d.mts +7 -0
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs +38 -0
- package/dist/astro/routes/api/admin/users/_id_/enable.d.mts +7 -0
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs +29 -0
- package/dist/astro/routes/api/admin/users/_id_/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/users/_id_/index.mjs +104 -0
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.d.mts +7 -0
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +43 -0
- package/dist/astro/routes/api/admin/users/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/users/index.mjs +54 -0
- package/dist/astro/routes/api/auth/dev-bypass.d.mts +8 -0
- package/dist/astro/routes/api/auth/dev-bypass.mjs +81 -0
- package/dist/astro/routes/api/auth/invite/accept.d.mts +7 -0
- package/dist/astro/routes/api/auth/invite/accept.mjs +31 -0
- package/dist/astro/routes/api/auth/invite/complete.d.mts +7 -0
- package/dist/astro/routes/api/auth/invite/complete.mjs +54 -0
- package/dist/astro/routes/api/auth/invite/index.d.mts +7 -0
- package/dist/astro/routes/api/auth/invite/index.mjs +51 -0
- package/dist/astro/routes/api/auth/invite/register-options.d.mts +7 -0
- package/dist/astro/routes/api/auth/invite/register-options.mjs +44 -0
- package/dist/astro/routes/api/auth/logout.d.mts +7 -0
- package/dist/astro/routes/api/auth/logout.mjs +24 -0
- package/dist/astro/routes/api/auth/magic-link/send.d.mts +7 -0
- package/dist/astro/routes/api/auth/magic-link/send.mjs +48 -0
- package/dist/astro/routes/api/auth/magic-link/verify.d.mts +7 -0
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +32 -0
- package/dist/astro/routes/api/auth/me.d.mts +13 -0
- package/dist/astro/routes/api/auth/me.mjs +41 -0
- package/dist/astro/routes/api/auth/mode.d.mts +7 -0
- package/dist/astro/routes/api/auth/mode.mjs +28 -0
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.d.mts +7 -0
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +114 -0
- package/dist/astro/routes/api/auth/oauth/_provider_.d.mts +7 -0
- package/dist/astro/routes/api/auth/oauth/_provider_.mjs +58 -0
- package/dist/astro/routes/api/auth/passkey/_id_.d.mts +14 -0
- package/dist/astro/routes/api/auth/passkey/_id_.mjs +62 -0
- package/dist/astro/routes/api/auth/passkey/index.d.mts +7 -0
- package/dist/astro/routes/api/auth/passkey/index.mjs +25 -0
- package/dist/astro/routes/api/auth/passkey/options.d.mts +7 -0
- package/dist/astro/routes/api/auth/passkey/options.mjs +46 -0
- package/dist/astro/routes/api/auth/passkey/register/options.d.mts +7 -0
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +44 -0
- package/dist/astro/routes/api/auth/passkey/register/verify.d.mts +7 -0
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +59 -0
- package/dist/astro/routes/api/auth/passkey/verify.d.mts +7 -0
- package/dist/astro/routes/api/auth/passkey/verify.mjs +47 -0
- package/dist/astro/routes/api/auth/signup/complete.d.mts +7 -0
- package/dist/astro/routes/api/auth/signup/complete.mjs +55 -0
- package/dist/astro/routes/api/auth/signup/request.d.mts +7 -0
- package/dist/astro/routes/api/auth/signup/request.mjs +44 -0
- package/dist/astro/routes/api/auth/signup/verify.d.mts +7 -0
- package/dist/astro/routes/api/auth/signup/verify.mjs +32 -0
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.d.mts +14 -0
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +193 -0
- package/dist/astro/routes/api/content/_collection_/_id_/compare.d.mts +7 -0
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +17 -0
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.d.mts +7 -0
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +36 -0
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.d.mts +7 -0
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +39 -0
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.d.mts +7 -0
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +31 -0
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.d.mts +7 -0
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +78 -0
- package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts +7 -0
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +93 -0
- package/dist/astro/routes/api/content/_collection_/_id_/restore.d.mts +7 -0
- package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +36 -0
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.d.mts +7 -0
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +19 -0
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.d.mts +8 -0
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +75 -0
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts +14 -0
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +85 -0
- package/dist/astro/routes/api/content/_collection_/_id_/translations.d.mts +7 -0
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +40 -0
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.d.mts +7 -0
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +36 -0
- package/dist/astro/routes/api/content/_collection_/_id_.d.mts +9 -0
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +114 -0
- package/dist/astro/routes/api/content/_collection_/index.d.mts +8 -0
- package/dist/astro/routes/api/content/_collection_/index.mjs +74 -0
- package/dist/astro/routes/api/content/_collection_/trash.d.mts +7 -0
- package/dist/astro/routes/api/content/_collection_/trash.mjs +23 -0
- package/dist/astro/routes/api/dashboard.d.mts +7 -0
- package/dist/astro/routes/api/dashboard.mjs +26 -0
- package/dist/astro/routes/api/dev/emails.d.mts +8 -0
- package/dist/astro/routes/api/dev/emails.mjs +17 -0
- package/dist/astro/routes/api/health.d.mts +7 -0
- package/dist/astro/routes/api/health.mjs +34 -0
- package/dist/astro/routes/api/import/probe.d.mts +17 -0
- package/dist/astro/routes/api/import/probe.mjs +33 -0
- package/dist/astro/routes/api/import/wordpress/analyze.d.mts +87 -0
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +305 -0
- package/dist/astro/routes/api/import/wordpress/execute.d.mts +37 -0
- package/dist/astro/routes/api/import/wordpress/execute.mjs +198 -0
- package/dist/astro/routes/api/import/wordpress/media.d.mts +35 -0
- package/dist/astro/routes/api/import/wordpress/media.mjs +222 -0
- package/dist/astro/routes/api/import/wordpress/prepare.d.mts +19 -0
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +156 -0
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +21 -0
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +290 -0
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +15 -0
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +69 -0
- package/dist/astro/routes/api/import/wordpress-plugin/callback.d.mts +7 -0
- package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +28 -0
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +19 -0
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +269 -0
- package/dist/astro/routes/api/manifest.d.mts +7 -0
- package/dist/astro/routes/api/manifest.mjs +50 -0
- package/dist/astro/routes/api/mcp.d.mts +15 -0
- package/dist/astro/routes/api/mcp.mjs +2701 -0
- package/dist/astro/routes/api/media/_id_/confirm.d.mts +10 -0
- package/dist/astro/routes/api/media/_id_/confirm.mjs +59 -0
- package/dist/astro/routes/api/media/_id_.d.mts +22 -0
- package/dist/astro/routes/api/media/_id_.mjs +81 -0
- package/dist/astro/routes/api/media/file/_...key_.d.mts +7 -0
- package/dist/astro/routes/api/media/file/_...key_.mjs +49 -0
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.d.mts +14 -0
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +49 -0
- package/dist/astro/routes/api/media/providers/_providerId_/index.d.mts +14 -0
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +72 -0
- package/dist/astro/routes/api/media/providers/index.d.mts +10 -0
- package/dist/astro/routes/api/media/providers/index.mjs +18 -0
- package/dist/astro/routes/api/media/upload-url.d.mts +10 -0
- package/dist/astro/routes/api/media/upload-url.mjs +82 -0
- package/dist/astro/routes/api/media.d.mts +16 -0
- package/dist/astro/routes/api/media.mjs +137 -0
- package/dist/astro/routes/api/menus/_name_/items.d.mts +9 -0
- package/dist/astro/routes/api/menus/_name_/items.mjs +165 -0
- package/dist/astro/routes/api/menus/_name_/reorder.d.mts +7 -0
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +78 -0
- package/dist/astro/routes/api/menus/_name_.d.mts +9 -0
- package/dist/astro/routes/api/menus/_name_.mjs +124 -0
- package/dist/astro/routes/api/menus/index.d.mts +8 -0
- package/dist/astro/routes/api/menus/index.mjs +85 -0
- package/dist/astro/routes/api/oauth/authorize.d.mts +8 -0
- package/dist/astro/routes/api/oauth/authorize.mjs +265 -0
- package/dist/astro/routes/api/oauth/device/authorize.d.mts +7 -0
- package/dist/astro/routes/api/oauth/device/authorize.mjs +30 -0
- package/dist/astro/routes/api/oauth/device/code.d.mts +7 -0
- package/dist/astro/routes/api/oauth/device/code.mjs +34 -0
- package/dist/astro/routes/api/oauth/device/token.d.mts +7 -0
- package/dist/astro/routes/api/oauth/device/token.mjs +45 -0
- package/dist/astro/routes/api/oauth/register.d.mts +8 -0
- package/dist/astro/routes/api/oauth/register.mjs +115 -0
- package/dist/astro/routes/api/oauth/token/refresh.d.mts +7 -0
- package/dist/astro/routes/api/oauth/token/refresh.mjs +28 -0
- package/dist/astro/routes/api/oauth/token/revoke.d.mts +7 -0
- package/dist/astro/routes/api/oauth/token/revoke.mjs +25 -0
- package/dist/astro/routes/api/oauth/token.d.mts +8 -0
- package/dist/astro/routes/api/oauth/token.mjs +138 -0
- package/dist/astro/routes/api/openapi.json.d.mts +7 -0
- package/dist/astro/routes/api/openapi.json.mjs +2638 -0
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.d.mts +11 -0
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +77 -0
- package/dist/astro/routes/api/redirects/404s/index.d.mts +9 -0
- package/dist/astro/routes/api/redirects/404s/index.mjs +62 -0
- package/dist/astro/routes/api/redirects/404s/summary.d.mts +7 -0
- package/dist/astro/routes/api/redirects/404s/summary.mjs +34 -0
- package/dist/astro/routes/api/redirects/_id_.d.mts +9 -0
- package/dist/astro/routes/api/redirects/_id_.mjs +153 -0
- package/dist/astro/routes/api/redirects/index.d.mts +8 -0
- package/dist/astro/routes/api/redirects/index.mjs +98 -0
- package/dist/astro/routes/api/revisions/_revisionId_/index.d.mts +7 -0
- package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +16 -0
- package/dist/astro/routes/api/revisions/_revisionId_/restore.d.mts +7 -0
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +23 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.d.mts +9 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +99 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/index.d.mts +8 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +81 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.d.mts +7 -0
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +68 -0
- package/dist/astro/routes/api/schema/collections/_slug_/index.d.mts +9 -0
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +98 -0
- package/dist/astro/routes/api/schema/collections/index.d.mts +8 -0
- package/dist/astro/routes/api/schema/collections/index.mjs +78 -0
- package/dist/astro/routes/api/schema/index.d.mts +7 -0
- package/dist/astro/routes/api/schema/index.mjs +79 -0
- package/dist/astro/routes/api/schema/orphans/_slug_.d.mts +7 -0
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +59 -0
- package/dist/astro/routes/api/schema/orphans/index.d.mts +7 -0
- package/dist/astro/routes/api/schema/orphans/index.mjs +54 -0
- package/dist/astro/routes/api/search/enable.d.mts +15 -0
- package/dist/astro/routes/api/search/enable.mjs +55 -0
- package/dist/astro/routes/api/search/index.d.mts +16 -0
- package/dist/astro/routes/api/search/index.mjs +52 -0
- package/dist/astro/routes/api/search/rebuild.d.mts +13 -0
- package/dist/astro/routes/api/search/rebuild.mjs +48 -0
- package/dist/astro/routes/api/search/stats.d.mts +10 -0
- package/dist/astro/routes/api/search/stats.mjs +28 -0
- package/dist/astro/routes/api/search/suggest.d.mts +15 -0
- package/dist/astro/routes/api/search/suggest.mjs +43 -0
- package/dist/astro/routes/api/sections/_slug_.d.mts +9 -0
- package/dist/astro/routes/api/sections/_slug_.mjs +157 -0
- package/dist/astro/routes/api/sections/index.d.mts +8 -0
- package/dist/astro/routes/api/sections/index.mjs +100 -0
- package/dist/astro/routes/api/settings/email.d.mts +17 -0
- package/dist/astro/routes/api/settings/email.mjs +102 -0
- package/dist/astro/routes/api/settings.d.mts +20 -0
- package/dist/astro/routes/api/settings.mjs +102 -0
- package/dist/astro/routes/api/setup/admin-verify.d.mts +7 -0
- package/dist/astro/routes/api/setup/admin-verify.mjs +67 -0
- package/dist/astro/routes/api/setup/admin.d.mts +7 -0
- package/dist/astro/routes/api/setup/admin.mjs +68 -0
- package/dist/astro/routes/api/setup/dev-bypass.d.mts +8 -0
- package/dist/astro/routes/api/setup/dev-bypass.mjs +137 -0
- package/dist/astro/routes/api/setup/dev-reset.d.mts +7 -0
- package/dist/astro/routes/api/setup/dev-reset.mjs +22 -0
- package/dist/astro/routes/api/setup/index.d.mts +7 -0
- package/dist/astro/routes/api/setup/index.mjs +93 -0
- package/dist/astro/routes/api/setup/status.d.mts +7 -0
- package/dist/astro/routes/api/setup/status.mjs +57 -0
- package/dist/astro/routes/api/snapshot.d.mts +7 -0
- package/dist/astro/routes/api/snapshot.mjs +227 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.d.mts +18 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +190 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.d.mts +14 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +114 -0
- package/dist/astro/routes/api/taxonomies/index.d.mts +14 -0
- package/dist/astro/routes/api/taxonomies/index.mjs +104 -0
- package/dist/astro/routes/api/themes/preview.d.mts +7 -0
- package/dist/astro/routes/api/themes/preview.mjs +47 -0
- package/dist/astro/routes/api/typegen.d.mts +17 -0
- package/dist/astro/routes/api/typegen.mjs +75 -0
- package/dist/astro/routes/api/well-known/auth.d.mts +7 -0
- package/dist/astro/routes/api/well-known/auth.mjs +42 -0
- package/dist/astro/routes/api/well-known/oauth-authorization-server.d.mts +7 -0
- package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +33 -0
- package/dist/astro/routes/api/well-known/oauth-protected-resource.d.mts +7 -0
- package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +21 -0
- package/dist/astro/routes/api/widget-areas/_name_/reorder.d.mts +7 -0
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +89 -0
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.d.mts +8 -0
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +159 -0
- package/dist/astro/routes/api/widget-areas/_name_/widgets.d.mts +7 -0
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +105 -0
- package/dist/astro/routes/api/widget-areas/_name_.d.mts +8 -0
- package/dist/astro/routes/api/widget-areas/_name_.mjs +100 -0
- package/dist/astro/routes/api/widget-areas/index.d.mts +8 -0
- package/dist/astro/routes/api/widget-areas/index.mjs +109 -0
- package/dist/astro/routes/api/widget-components.d.mts +7 -0
- package/dist/astro/routes/api/widget-components.mjs +15 -0
- package/dist/astro/routes/robots.txt.d.mts +7 -0
- package/dist/astro/routes/robots.txt.mjs +60 -0
- package/dist/astro/routes/sitemap-_collection_.xml.d.mts +7 -0
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +70 -0
- package/dist/astro/routes/sitemap.xml.d.mts +7 -0
- package/dist/astro/routes/sitemap.xml.mjs +63 -0
- package/dist/astro/types.d.mts +42 -9
- package/dist/auth/providers/github-admin.d.mts +9 -0
- package/dist/auth/providers/github-admin.mjs +27 -0
- package/dist/auth/providers/github.d.mts +12 -0
- package/dist/auth/providers/github.mjs +17 -0
- package/dist/auth/providers/google-admin.d.mts +9 -0
- package/dist/auth/providers/google-admin.mjs +43 -0
- package/dist/auth/providers/google.d.mts +12 -0
- package/dist/auth/providers/google.mjs +17 -0
- package/dist/auth-control-guard-DOZ3UCsP.mjs +13 -0
- package/dist/authorize-BAdbMCwC.mjs +36 -0
- package/dist/briefing-MVYe_Uyf.mjs +1294 -0
- package/dist/briefing-rty4O-wa.mjs +29 -0
- package/dist/{byline-OhH2dlRu.mjs → byline-naZxOPSa.mjs} +3 -3
- package/dist/{bylines-BGpD9_hy.mjs → bylines-C4LIBOOO.mjs} +20 -53
- package/dist/bylines-eVVCuOe4.d.mts +2023 -0
- package/dist/{cache-BdSY-gQN.mjs → cache-DEbQ13c9.mjs} +21 -11
- package/dist/challenge-store-DDTbisbf.mjs +48 -0
- package/dist/cli/index.mjs +142 -22
- package/dist/client/external-auth-headers.d.mts +1 -1
- package/dist/client/index.d.mts +1 -1
- package/dist/client/index.mjs +3 -3
- package/dist/comment-DFO-gWDH.mjs +246 -0
- package/dist/comments--BsZ9pqA.mjs +186 -0
- package/dist/components-BPknylYg.mjs +107 -0
- package/dist/{content-DWi4d0rT.mjs → content-CyLkb-qH.mjs} +33 -44
- package/dist/context-CNIkMzot.mjs +849 -0
- package/dist/context-DNfcm853.mjs +184 -0
- package/dist/context-route-helpers-MurhoxWF.mjs +45 -0
- package/dist/context-types-C-LwdAxx.mjs +23 -0
- package/dist/cron-CKxvBrRT.mjs +263 -0
- package/dist/dashboard-DqnYU8EU.mjs +120 -0
- package/dist/db/index.d.mts +3 -3
- package/dist/db/libsql.d.mts +1 -1
- package/dist/db/libsql.mjs +3 -3
- package/dist/db/postgres.d.mts +1 -1
- package/dist/db/sqlite.d.mts +1 -1
- package/dist/db/sqlite.mjs +1 -2
- package/dist/device-flow-BGEH5jfn.mjs +487 -0
- package/dist/email-console-CuefUXfX.mjs +36 -0
- package/dist/entity-aliases-C0v-yNET.mjs +51 -0
- package/dist/error-BMUPwxgx.mjs +435 -0
- package/dist/escape-BRVaw1Ai.mjs +8 -0
- package/dist/experimental-workflows-C9X7yblQ.mjs +38 -0
- package/dist/fts-manager-B1pTNEG_.mjs +297 -0
- package/dist/hash-CDX7M0ze.mjs +32 -0
- package/dist/hitl-requests-ChT32Ilo.mjs +118 -0
- package/dist/hitl-route-helpers-CSit54Ru.mjs +96 -0
- package/dist/import-BHRLhXAn.mjs +1323 -0
- package/dist/import-CNcKWTbp.mjs +243 -0
- package/dist/index-CYfhYgXd.d.mts +227 -0
- package/dist/index-EUAWaIxW.d.mts +835 -0
- package/dist/index.d.mts +17 -11
- package/dist/index.mjs +63 -22
- package/dist/jsonld-D2gUY4kA.d.mts +141 -0
- package/dist/{loader-sMG4TZ-u.mjs → loader-PZnPxFLc.mjs} +42 -5
- package/dist/{manifest-schema-D1MSVnoI.mjs → manifest-schema-CgFJAp0H.mjs} +22 -10
- package/dist/media/index.d.mts +2 -1
- package/dist/media/index.mjs +2 -1
- package/dist/media/local-runtime.d.mts +12 -7
- package/dist/media/local-runtime.mjs +3 -3
- package/dist/{media-DMTr80Gv.mjs → media-_7Fxdu45.mjs} +1 -1
- package/dist/menus-DS3_5nWY.mjs +312 -0
- package/dist/menus-DYW_UHjv.mjs +256 -0
- package/dist/normalize-C49G_o1k.mjs +126 -0
- package/dist/oauth-authorization-DxGjiWKL.mjs +283 -0
- package/dist/oauth-clients-DxO_NO7k.mjs +298 -0
- package/dist/oauth-state-store-C5UFhzwD.mjs +48 -0
- package/dist/oauth-user-lookup-Bi0ek9eM.mjs +25 -0
- package/dist/options-z8VVg1Ll.mjs +114 -0
- package/dist/page/index.d.mts +2 -139
- package/dist/page/index.mjs +1 -427
- package/dist/parse-C9106ehs.mjs +88 -0
- package/dist/passkey-config-BRSZx4pW.mjs +42 -0
- package/dist/{patterns-CrCYkMBb.mjs → patterns-K0DLqWir.mjs} +53 -1
- package/dist/placeholder-Bh1dfUOd.d.mts +40 -0
- package/dist/{placeholder-Cp8g5Emj.mjs → placeholder-C2P5fKa4.mjs} +1 -126
- package/dist/plugins/adapt-sandbox-entry.d.mts +10 -5
- package/dist/plugins/adapt-sandbox-entry.mjs +4 -4
- package/dist/plugins-D7-ILNib.mjs +3249 -0
- package/dist/preview-DvYRU-Oy.mjs +788 -0
- package/dist/provider-loader-BiQ6lNmf.d.mts +20 -0
- package/dist/provider-loader-C21b9OpH.mjs +36 -0
- package/dist/public-url-Cun8N3NU.mjs +71 -0
- package/dist/{query-kDmwCsHh.mjs → query-B9BO5goQ.mjs} +93 -19
- package/dist/query-CsbOywSY.mjs +35 -0
- package/dist/rate-limit-DmVTHI5v.mjs +112 -0
- package/dist/{redirect-DnEWAkVg.mjs → redirect-CGl64yOX.mjs} +9 -5
- package/dist/redirect-COZy-3iY.mjs +16 -0
- package/dist/redirects-Cgi_cZfN.mjs +499 -0
- package/dist/redirects-lrlmYXVE.mjs +1023 -0
- package/dist/{registry-C0zjeB9P.mjs → registry-C-_hxLqa.mjs} +26 -294
- package/dist/request-meta-DixlNKKa.mjs +130 -0
- package/dist/review-requests-C2DIHwlJ.mjs +148 -0
- package/dist/review-requests-DIyjw-K_.mjs +79 -0
- package/dist/{runner-CFI6B6J2.d.mts → runner-BU6Lo1ZS.d.mts} +1 -1
- package/dist/{index-yvc6E_17.d.mts → runtime-Db4LbNVZ.d.mts} +1188 -2484
- package/dist/runtime.d.mts +11 -24
- package/dist/runtime.mjs +4 -38
- package/dist/schema-BECjUhP8.mjs +8 -0
- package/dist/search-DqTHQqtV.mjs +337 -0
- package/dist/secrets-CkoJ9zN0.mjs +160 -0
- package/dist/sections-B61OxnfB.mjs +338 -0
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +18 -13
- package/dist/seo/index.d.mts +1 -1
- package/dist/seo-C007Luwn.mjs +85 -0
- package/dist/seo-CUQctrog.mjs +129 -0
- package/dist/seo-contributions-B1fWCnqY.mjs +429 -0
- package/dist/service-CyOsm0R6.mjs +194 -0
- package/dist/settings-DGtLLSaz.mjs +237 -0
- package/dist/settings-Dzgswvg4.mjs +50 -0
- package/dist/setup-complete-ChilE-da.mjs +21 -0
- package/dist/setup-nonce-BpmLXAuu.mjs +17 -0
- package/dist/sidecar-client-B1C6Cf80.mjs +66 -0
- package/dist/site-activity-B8FjLIVh.mjs +104 -0
- package/dist/site-context-WBxoD99D.mjs +4122 -0
- package/dist/site-url-BP7k7OCe.mjs +12 -0
- package/dist/slugify-PDTDtMXp.mjs +30 -0
- package/dist/ssrf-DDwRxF6B.mjs +248 -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 +2 -2
- package/dist/{taxonomies-1s5PaS_8.mjs → taxonomies-D2aZGuns.mjs} +11 -7
- package/dist/taxonomies-z6Lz91BC.mjs +355 -0
- package/dist/taxonomy-D5cbhc8u.mjs +165 -0
- package/dist/{tokens-CJz9ubV6.mjs → tokens-BOJw-D9F.mjs} +1 -1
- package/dist/{transport-DB5eDN4x.mjs → transport-D3i4yWRE.mjs} +5 -4
- package/dist/trusted-proxy-BbaZfkT9.mjs +30 -0
- package/dist/types-0Vr68fc2.d.mts +344 -0
- package/dist/types-BFmjniC2.d.mts +165 -0
- package/dist/{types-BawVha09.mjs → types-Bs6lTBBW.mjs} +1 -1
- package/dist/{types-BuMDPy5C.d.mts → types-C0mmVRJN.d.mts} +6 -0
- package/dist/{placeholder--wOi4TbO.d.mts → types-OPs5Q_sX.d.mts} +1 -38
- package/dist/{types-Cj0KMIZV.d.mts → types-Q616b2Hn.d.mts} +54 -16
- package/dist/ui/client-runtime.d.mts +12 -0
- package/dist/ui/client-runtime.mjs +32 -0
- package/dist/ui/server-runtime.d.mts +33 -0
- package/dist/ui/server-runtime.mjs +80 -0
- package/dist/url-DNjT2abR.mjs +49 -0
- package/dist/user-CcXq-zoL.mjs +154 -0
- package/dist/utils-C0ONdBul.mjs +285 -0
- package/dist/{validate-IPf8n4Fj.d.mts → validate-BwmQEbu8.d.mts} +3 -3
- package/dist/{validate-BZ5wnLLp.mjs → validate-C7TzfamJ.mjs} +1 -1
- package/dist/version-D3vDb22n.mjs +6 -0
- package/dist/widgets-B7DRpZvy.mjs +104 -0
- package/dist/wordpress-slugs-CnporCYH.mjs +14 -0
- package/dist/zod-generator-DBVP8D0P.mjs +132 -0
- package/locals.d.ts +1 -6
- package/package.json +81 -11
- package/src/components/Button.astro +1 -1
- package/src/components/CommentForm.astro +1 -1
- package/src/components/Comments.astro +1 -3
- package/src/components/DinewayBodyEnd.astro +5 -3
- package/src/components/DinewayBodyStart.astro +5 -3
- package/src/components/DinewayHead.astro +15 -9
- package/src/components/DinewayImage.astro +12 -8
- package/src/components/DinewayMedia.astro +15 -6
- package/src/components/Embed.astro +1 -2
- package/src/components/File.astro +1 -1
- package/src/components/Gallery.astro +5 -3
- package/src/components/HtmlBlock.astro +1 -1
- package/src/components/Image.astro +9 -3
- package/src/components/InlinePortableTextEditor.tsx +69 -20
- package/src/components/PortableText.astro +1 -1
- package/src/components/WidgetArea.astro +1 -1
- package/src/components/WidgetRenderer.astro +1 -3
- package/src/components/marks/Link.astro +1 -1
- package/src/components/widgets/Archives.astro +1 -1
- package/src/components/widgets/Categories.astro +1 -1
- package/src/components/widgets/RecentPosts.astro +1 -1
- package/src/components/widgets/Tags.astro +1 -1
- package/dist/error-BmL6QipT.mjs +0 -30
- package/dist/search-DxopAWxs.mjs +0 -11200
- package/dist/version-BPz1imu2.mjs +0 -6
- package/src/astro/routes/PluginRegistry.tsx +0 -21
- package/src/astro/routes/api/admin/allowed-domains/[domain].ts +0 -112
- package/src/astro/routes/api/admin/allowed-domains/index.ts +0 -108
- package/src/astro/routes/api/admin/api-tokens/[id].ts +0 -44
- package/src/astro/routes/api/admin/api-tokens/index.ts +0 -90
- package/src/astro/routes/api/admin/briefing.ts +0 -76
- package/src/astro/routes/api/admin/bylines/[id]/index.ts +0 -90
- package/src/astro/routes/api/admin/bylines/index.ts +0 -74
- package/src/astro/routes/api/admin/comments/[id]/status.ts +0 -120
- package/src/astro/routes/api/admin/comments/[id].ts +0 -64
- package/src/astro/routes/api/admin/comments/bulk.ts +0 -42
- package/src/astro/routes/api/admin/comments/counts.ts +0 -30
- package/src/astro/routes/api/admin/comments/index.ts +0 -46
- package/src/astro/routes/api/admin/context/[id]/history.ts +0 -35
- package/src/astro/routes/api/admin/context/[id]/index.ts +0 -35
- package/src/astro/routes/api/admin/context/[id]/review.ts +0 -57
- package/src/astro/routes/api/admin/context/[id]/supersede.ts +0 -58
- package/src/astro/routes/api/admin/context/diff.ts +0 -35
- package/src/astro/routes/api/admin/context/index.ts +0 -69
- package/src/astro/routes/api/admin/context/stale.ts +0 -35
- package/src/astro/routes/api/admin/hitl-requests/[id]/index.ts +0 -38
- package/src/astro/routes/api/admin/hitl-requests/[id]/resolve.ts +0 -54
- package/src/astro/routes/api/admin/hitl-requests/index.ts +0 -38
- package/src/astro/routes/api/admin/hooks/exclusive/[hookName].ts +0 -132
- package/src/astro/routes/api/admin/hooks/exclusive/index.ts +0 -51
- package/src/astro/routes/api/admin/oauth-clients/[id].ts +0 -137
- package/src/astro/routes/api/admin/oauth-clients/index.ts +0 -95
- package/src/astro/routes/api/admin/plugins/[id]/disable.ts +0 -91
- package/src/astro/routes/api/admin/plugins/[id]/enable.ts +0 -91
- package/src/astro/routes/api/admin/plugins/[id]/index.ts +0 -38
- package/src/astro/routes/api/admin/plugins/[id]/uninstall.ts +0 -98
- package/src/astro/routes/api/admin/plugins/[id]/update.ts +0 -154
- package/src/astro/routes/api/admin/plugins/index.ts +0 -32
- package/src/astro/routes/api/admin/plugins/marketplace/[id]/icon.ts +0 -62
- package/src/astro/routes/api/admin/plugins/marketplace/[id]/index.ts +0 -33
- package/src/astro/routes/api/admin/plugins/marketplace/[id]/install.ts +0 -135
- package/src/astro/routes/api/admin/plugins/marketplace/index.ts +0 -38
- package/src/astro/routes/api/admin/plugins/updates.ts +0 -28
- package/src/astro/routes/api/admin/review-requests/[id]/index.ts +0 -35
- package/src/astro/routes/api/admin/review-requests/[id]/resolve.ts +0 -52
- package/src/astro/routes/api/admin/review-requests/index.ts +0 -35
- package/src/astro/routes/api/admin/themes/marketplace/[id]/index.ts +0 -33
- package/src/astro/routes/api/admin/themes/marketplace/[id]/thumbnail.ts +0 -62
- package/src/astro/routes/api/admin/themes/marketplace/index.ts +0 -45
- package/src/astro/routes/api/admin/users/[id]/disable.ts +0 -72
- package/src/astro/routes/api/admin/users/[id]/enable.ts +0 -48
- package/src/astro/routes/api/admin/users/[id]/index.ts +0 -166
- package/src/astro/routes/api/admin/users/[id]/send-recovery.ts +0 -72
- package/src/astro/routes/api/admin/users/index.ts +0 -66
- package/src/astro/routes/api/auth/dev-bypass.ts +0 -139
- package/src/astro/routes/api/auth/invite/accept.ts +0 -52
- package/src/astro/routes/api/auth/invite/complete.ts +0 -86
- package/src/astro/routes/api/auth/invite/index.ts +0 -99
- package/src/astro/routes/api/auth/invite/register-options.ts +0 -73
- package/src/astro/routes/api/auth/logout.ts +0 -40
- package/src/astro/routes/api/auth/magic-link/send.ts +0 -90
- package/src/astro/routes/api/auth/magic-link/verify.ts +0 -71
- package/src/astro/routes/api/auth/me.ts +0 -60
- package/src/astro/routes/api/auth/oauth/[provider]/callback.ts +0 -221
- package/src/astro/routes/api/auth/oauth/[provider].ts +0 -120
- package/src/astro/routes/api/auth/passkey/[id].ts +0 -124
- package/src/astro/routes/api/auth/passkey/index.ts +0 -54
- package/src/astro/routes/api/auth/passkey/options.ts +0 -85
- package/src/astro/routes/api/auth/passkey/register/options.ts +0 -88
- package/src/astro/routes/api/auth/passkey/register/verify.ts +0 -119
- package/src/astro/routes/api/auth/passkey/verify.ts +0 -72
- package/src/astro/routes/api/auth/signup/complete.ts +0 -87
- package/src/astro/routes/api/auth/signup/request.ts +0 -89
- package/src/astro/routes/api/auth/signup/verify.ts +0 -53
- package/src/astro/routes/api/comments/[collection]/[contentId]/index.ts +0 -310
- package/src/astro/routes/api/content/[collection]/[id]/compare.ts +0 -28
- package/src/astro/routes/api/content/[collection]/[id]/discard-draft.ts +0 -68
- package/src/astro/routes/api/content/[collection]/[id]/duplicate.ts +0 -77
- package/src/astro/routes/api/content/[collection]/[id]/permanent.ts +0 -42
- package/src/astro/routes/api/content/[collection]/[id]/preview-url.ts +0 -107
- package/src/astro/routes/api/content/[collection]/[id]/publish.ts +0 -100
- package/src/astro/routes/api/content/[collection]/[id]/restore.ts +0 -64
- package/src/astro/routes/api/content/[collection]/[id]/revisions.ts +0 -31
- package/src/astro/routes/api/content/[collection]/[id]/schedule.ts +0 -129
- package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +0 -143
- package/src/astro/routes/api/content/[collection]/[id]/translations.ts +0 -50
- package/src/astro/routes/api/content/[collection]/[id]/unpublish.ts +0 -69
- package/src/astro/routes/api/content/[collection]/[id].ts +0 -173
- package/src/astro/routes/api/content/[collection]/index.ts +0 -103
- package/src/astro/routes/api/content/[collection]/trash.ts +0 -33
- package/src/astro/routes/api/dashboard.ts +0 -32
- package/src/astro/routes/api/dev/emails.ts +0 -36
- package/src/astro/routes/api/health.ts +0 -54
- package/src/astro/routes/api/import/probe.ts +0 -47
- package/src/astro/routes/api/import/wordpress/analyze.ts +0 -523
- package/src/astro/routes/api/import/wordpress/execute.ts +0 -330
- package/src/astro/routes/api/import/wordpress/media.ts +0 -338
- package/src/astro/routes/api/import/wordpress/prepare.ts +0 -212
- package/src/astro/routes/api/import/wordpress/rewrite-urls.ts +0 -425
- package/src/astro/routes/api/import/wordpress-plugin/analyze.ts +0 -111
- package/src/astro/routes/api/import/wordpress-plugin/callback.ts +0 -58
- package/src/astro/routes/api/import/wordpress-plugin/execute.ts +0 -399
- package/src/astro/routes/api/manifest.ts +0 -75
- package/src/astro/routes/api/mcp.ts +0 -125
- package/src/astro/routes/api/media/[id]/confirm.ts +0 -93
- package/src/astro/routes/api/media/[id].ts +0 -145
- package/src/astro/routes/api/media/file/[...key].ts +0 -79
- package/src/astro/routes/api/media/providers/[providerId]/[itemId].ts +0 -91
- package/src/astro/routes/api/media/providers/[providerId]/index.ts +0 -111
- package/src/astro/routes/api/media/providers/index.ts +0 -30
- package/src/astro/routes/api/media/upload-url.ts +0 -146
- package/src/astro/routes/api/media.ts +0 -204
- package/src/astro/routes/api/menus/[name]/items.ts +0 -206
- package/src/astro/routes/api/menus/[name]/reorder.ts +0 -79
- package/src/astro/routes/api/menus/[name].ts +0 -145
- package/src/astro/routes/api/menus/index.ts +0 -91
- package/src/astro/routes/api/oauth/authorize.ts +0 -430
- package/src/astro/routes/api/oauth/device/authorize.ts +0 -45
- package/src/astro/routes/api/oauth/device/code.ts +0 -56
- package/src/astro/routes/api/oauth/device/token.ts +0 -70
- package/src/astro/routes/api/oauth/register.ts +0 -182
- package/src/astro/routes/api/oauth/token/refresh.ts +0 -38
- package/src/astro/routes/api/oauth/token/revoke.ts +0 -38
- package/src/astro/routes/api/oauth/token.ts +0 -195
- package/src/astro/routes/api/openapi.json.ts +0 -33
- package/src/astro/routes/api/plugins/[pluginId]/[...path].ts +0 -109
- package/src/astro/routes/api/redirects/404s/index.ts +0 -72
- package/src/astro/routes/api/redirects/404s/summary.ts +0 -33
- package/src/astro/routes/api/redirects/[id].ts +0 -183
- package/src/astro/routes/api/redirects/index.ts +0 -100
- package/src/astro/routes/api/revisions/[revisionId]/index.ts +0 -29
- package/src/astro/routes/api/revisions/[revisionId]/restore.ts +0 -62
- package/src/astro/routes/api/schema/collections/[slug]/fields/[fieldSlug].ts +0 -104
- package/src/astro/routes/api/schema/collections/[slug]/fields/index.ts +0 -67
- package/src/astro/routes/api/schema/collections/[slug]/fields/reorder.ts +0 -45
- package/src/astro/routes/api/schema/collections/[slug]/index.ts +0 -107
- package/src/astro/routes/api/schema/collections/index.ts +0 -61
- package/src/astro/routes/api/schema/index.ts +0 -109
- package/src/astro/routes/api/schema/orphans/[slug].ts +0 -36
- package/src/astro/routes/api/schema/orphans/index.ts +0 -26
- package/src/astro/routes/api/search/enable.ts +0 -64
- package/src/astro/routes/api/search/index.ts +0 -52
- package/src/astro/routes/api/search/rebuild.ts +0 -72
- package/src/astro/routes/api/search/stats.ts +0 -35
- package/src/astro/routes/api/search/suggest.ts +0 -50
- package/src/astro/routes/api/sections/[slug].ts +0 -203
- package/src/astro/routes/api/sections/index.ts +0 -107
- package/src/astro/routes/api/settings/email.ts +0 -150
- package/src/astro/routes/api/settings.ts +0 -116
- package/src/astro/routes/api/setup/admin-verify.ts +0 -122
- package/src/astro/routes/api/setup/admin.ts +0 -104
- package/src/astro/routes/api/setup/dev-bypass.ts +0 -200
- package/src/astro/routes/api/setup/dev-reset.ts +0 -40
- package/src/astro/routes/api/setup/index.ts +0 -128
- package/src/astro/routes/api/setup/status.ts +0 -122
- package/src/astro/routes/api/snapshot.ts +0 -76
- package/src/astro/routes/api/taxonomies/[name]/terms/[slug].ts +0 -232
- package/src/astro/routes/api/taxonomies/[name]/terms/index.ts +0 -131
- package/src/astro/routes/api/taxonomies/index.ts +0 -114
- package/src/astro/routes/api/themes/preview.ts +0 -78
- package/src/astro/routes/api/typegen.ts +0 -114
- package/src/astro/routes/api/well-known/auth.ts +0 -71
- package/src/astro/routes/api/well-known/oauth-authorization-server.ts +0 -48
- package/src/astro/routes/api/well-known/oauth-protected-resource.ts +0 -39
- package/src/astro/routes/api/widget-areas/[name]/reorder.ts +0 -114
- package/src/astro/routes/api/widget-areas/[name]/widgets/[id].ts +0 -213
- package/src/astro/routes/api/widget-areas/[name]/widgets.ts +0 -126
- package/src/astro/routes/api/widget-areas/[name].ts +0 -135
- package/src/astro/routes/api/widget-areas/index.ts +0 -149
- package/src/astro/routes/api/widget-components.ts +0 -22
- package/src/astro/routes/robots.txt.ts +0 -81
- package/src/astro/routes/sitemap-[collection].xml.ts +0 -104
- package/src/astro/routes/sitemap.xml.ts +0 -92
- /package/dist/{adapters-C2ypTrZZ.d.mts → adapters-DuLQZhRY.d.mts} +0 -0
- /package/{src → dist}/astro/routes/admin.astro +0 -0
- /package/dist/{base64-F8-DUraK.mjs → base64-Cz-aU0X1.mjs} +0 -0
- /package/dist/{chunks--4F8ddV4.mjs → chunks-D_jVet6z.mjs} +0 -0
- /package/dist/{config-BXwuX8Bx.mjs → config-CAMFxGaV.mjs} +0 -0
- /package/dist/{db-errors-CEqD7qH9.mjs → db-errors-DyZkswzF.mjs} +0 -0
- /package/dist/{default-VjJyuuG9.mjs → default-D4ngTpW8.mjs} +0 -0
- /package/dist/{load-Coc9HpHH.mjs → load-B2XtDw__.mjs} +0 -0
- /package/dist/{mode-47goXBBK.mjs → mode-DUhxwUhv.mjs} +0 -0
- /package/dist/{request-cache-Dk5qPSOx.mjs → request-cache-DHMRr2Lf.mjs} +0 -0
- /package/dist/{transaction-Cn2rjY78.mjs → transaction-x2tJQ-A1.mjs} +0 -0
- /package/dist/{transport-Wge_IzKl.d.mts → transport-BXe1AM79.d.mts} +0 -0
- /package/dist/{types-CWbdtiux.d.mts → types-B7kpsMJ3.d.mts} +0 -0
- /package/dist/{types-BzcUjoqg.d.mts → types-DJlpx5Ay.d.mts} +0 -0
- /package/dist/{types-COeOq9nK.mjs → types-DL7Y8D_t.mjs} +0 -0
- /package/dist/{types-DOrVigru.d.mts → types-DZPw8Rru.d.mts} +0 -0
- /package/dist/{types-griIBQOQ.mjs → types-fAInWQDO.mjs} +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { l as MediaProvider } from "./types-OPs5Q_sX.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/media/provider-loader.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Get a media provider by ID.
|
|
6
|
+
*
|
|
7
|
+
* Used by DinewayMedia component for frontend rendering.
|
|
8
|
+
* Providers are lazy-loaded from virtual module and cached.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const provider = await getMediaProvider("image-cdn");
|
|
13
|
+
* if (provider) {
|
|
14
|
+
* const embed = provider.getEmbed(mediaValue, { width: 800 });
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
declare function getMediaProvider(providerId: string): Promise<MediaProvider | undefined>;
|
|
19
|
+
//#endregion
|
|
20
|
+
export { getMediaProvider as t };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
//#region src/media/provider-loader.ts
|
|
2
|
+
let virtualMediaProviders;
|
|
3
|
+
const mediaProviderInstances = /* @__PURE__ */ new Map();
|
|
4
|
+
/**
|
|
5
|
+
* Load media providers from virtual module
|
|
6
|
+
*/
|
|
7
|
+
async function loadMediaProviders() {
|
|
8
|
+
if (virtualMediaProviders === void 0) virtualMediaProviders = (await import("virtual:dineway/media-providers")).mediaProviders || [];
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Get a media provider by ID.
|
|
12
|
+
*
|
|
13
|
+
* Used by DinewayMedia component for frontend rendering.
|
|
14
|
+
* Providers are lazy-loaded from virtual module and cached.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* const provider = await getMediaProvider("image-cdn");
|
|
19
|
+
* if (provider) {
|
|
20
|
+
* const embed = provider.getEmbed(mediaValue, { width: 800 });
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
async function getMediaProvider(providerId) {
|
|
25
|
+
const cached = mediaProviderInstances.get(providerId);
|
|
26
|
+
if (cached) return cached;
|
|
27
|
+
await loadMediaProviders();
|
|
28
|
+
const entry = virtualMediaProviders?.find((p) => p.id === providerId);
|
|
29
|
+
if (!entry) return;
|
|
30
|
+
const provider = entry.createProvider({});
|
|
31
|
+
mediaProviderInstances.set(providerId, provider);
|
|
32
|
+
return provider;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
export { getMediaProvider as t };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
//#region src/api/public-url.ts
|
|
2
|
+
/**
|
|
3
|
+
* Resolve siteUrl from runtime environment variables.
|
|
4
|
+
*
|
|
5
|
+
* Uses process.env (not import.meta.env) because Vite statically replaces
|
|
6
|
+
* import.meta.env at build time, baking out any env vars not present during
|
|
7
|
+
* the build. Container deployments set env vars at runtime, so we must read
|
|
8
|
+
* process.env which Vite leaves untouched.
|
|
9
|
+
*
|
|
10
|
+
* On runtimes without `process.env`, the fallback chain
|
|
11
|
+
* continues to url.origin.
|
|
12
|
+
*
|
|
13
|
+
* Caches after first call.
|
|
14
|
+
*/
|
|
15
|
+
let _envSiteUrl = null;
|
|
16
|
+
let _envAllowedOrigins = null;
|
|
17
|
+
function getEnvSiteUrl() {
|
|
18
|
+
if (_envSiteUrl !== null) return _envSiteUrl || void 0;
|
|
19
|
+
try {
|
|
20
|
+
const value = typeof process !== "undefined" && process.env?.DINEWAY_SITE_URL || typeof process !== "undefined" && process.env?.SITE_URL || "";
|
|
21
|
+
if (value) {
|
|
22
|
+
const parsed = new URL(value);
|
|
23
|
+
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
|
|
24
|
+
_envSiteUrl = "";
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
_envSiteUrl = parsed.origin;
|
|
28
|
+
} else _envSiteUrl = "";
|
|
29
|
+
} catch {
|
|
30
|
+
_envSiteUrl = "";
|
|
31
|
+
}
|
|
32
|
+
return _envSiteUrl || void 0;
|
|
33
|
+
}
|
|
34
|
+
function getEnvAllowedOrigins() {
|
|
35
|
+
if (_envAllowedOrigins !== null) return _envAllowedOrigins;
|
|
36
|
+
const envSource = typeof process !== "undefined" && process.env?.DINEWAY_ALLOWED_ORIGINS ? "DINEWAY_ALLOWED_ORIGINS" : "ALLOWED_ORIGINS";
|
|
37
|
+
const raw = typeof process !== "undefined" && process.env?.DINEWAY_ALLOWED_ORIGINS || typeof process !== "undefined" && process.env?.ALLOWED_ORIGINS || "";
|
|
38
|
+
const parsed = [];
|
|
39
|
+
for (const entry of raw.split(",")) {
|
|
40
|
+
const trimmed = entry.trim();
|
|
41
|
+
if (!trimmed) continue;
|
|
42
|
+
let url;
|
|
43
|
+
try {
|
|
44
|
+
url = new URL(trimmed);
|
|
45
|
+
} catch (error) {
|
|
46
|
+
throw new Error(`Dineway config error in ${envSource}: invalid URL: "${trimmed}"`, { cause: error });
|
|
47
|
+
}
|
|
48
|
+
if (url.protocol !== "http:" && url.protocol !== "https:") throw new Error(`Dineway config error in ${envSource}: origin must be http or https: "${trimmed}" (got ${url.protocol})`);
|
|
49
|
+
parsed.push(url.origin);
|
|
50
|
+
}
|
|
51
|
+
_envAllowedOrigins = parsed;
|
|
52
|
+
return parsed;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Return the public-facing origin for the site.
|
|
56
|
+
*
|
|
57
|
+
* Resolution order:
|
|
58
|
+
* 1. `config.siteUrl` (set in astro.config.mjs, origin-normalized at startup)
|
|
59
|
+
* 2. `DINEWAY_SITE_URL` or `SITE_URL` env var (resolved at runtime for containers)
|
|
60
|
+
* 3. `url.origin` (internal request URL — correct when no proxy)
|
|
61
|
+
*
|
|
62
|
+
* @param url The request URL (`new URL(request.url)` or `Astro.url`)
|
|
63
|
+
* @param config The Dineway config (from `locals.dineway?.config`)
|
|
64
|
+
* @returns Origin string, e.g. `"https://mysite.example.com"`
|
|
65
|
+
*/
|
|
66
|
+
function getPublicOrigin(url, config) {
|
|
67
|
+
return config?.siteUrl || getEnvSiteUrl() || url.origin;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
//#endregion
|
|
71
|
+
export { getPublicOrigin as n, getEnvAllowedOrigins as t };
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { t as __exportAll } from "./chunk-ClPoSABd.mjs";
|
|
2
2
|
import { getRequestContext } from "./request-context.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { n as
|
|
5
|
-
import { t as
|
|
3
|
+
import { r as encodeCursor } from "./types-Bs6lTBBW.mjs";
|
|
4
|
+
import { n as getI18nConfig, r as isI18nEnabled, t as getFallbackChain } from "./config-CAMFxGaV.mjs";
|
|
5
|
+
import { t as CURSOR_RAW_VALUES } from "./loader-PZnPxFLc.mjs";
|
|
6
|
+
import { n as requestCached } from "./request-cache-DHMRr2Lf.mjs";
|
|
7
|
+
import { t as isMissingTableError } from "./db-errors-DyZkswzF.mjs";
|
|
6
8
|
|
|
7
9
|
//#region src/visual-editing/editable.ts
|
|
8
10
|
/**
|
|
@@ -74,12 +76,14 @@ function createNoop() {
|
|
|
74
76
|
* and sets the context; query functions read it automatically.
|
|
75
77
|
*/
|
|
76
78
|
var query_exports = /* @__PURE__ */ __exportAll({
|
|
79
|
+
bucketFilter: () => bucketFilter,
|
|
77
80
|
getDinewayCollection: () => getDinewayCollection,
|
|
78
81
|
getDinewayEntry: () => getDinewayEntry,
|
|
79
82
|
getEditMeta: () => getEditMeta,
|
|
80
83
|
getTranslations: () => getTranslations,
|
|
81
84
|
invalidateUrlPatternCache: () => invalidateUrlPatternCache,
|
|
82
|
-
resolveDinewayPath: () => resolveDinewayPath
|
|
85
|
+
resolveDinewayPath: () => resolveDinewayPath,
|
|
86
|
+
sliceCollectionResult: () => sliceCollectionResult
|
|
83
87
|
});
|
|
84
88
|
const COLLECTION_NAME = "_dineway";
|
|
85
89
|
/** Symbol key for edit metadata on PT arrays — avoids collision with user data */
|
|
@@ -172,15 +176,16 @@ async function getDinewayCollection(type, filter) {
|
|
|
172
176
|
const ctx = getRequestContext();
|
|
173
177
|
const i18nConfig = getI18nConfig();
|
|
174
178
|
const resolvedLocale = filter?.locale ?? ctx?.locale ?? (isI18nEnabled() ? i18nConfig.defaultLocale : void 0);
|
|
175
|
-
|
|
179
|
+
const bucketed = bucketFilter(filter);
|
|
180
|
+
const cached = await requestCached(collectionCacheKey(type, bucketed.fetchFilter, resolvedLocale), async () => {
|
|
176
181
|
const { getLiveCollection } = await import("astro:content");
|
|
177
182
|
const result = await getLiveCollection(COLLECTION_NAME, {
|
|
178
183
|
type,
|
|
179
|
-
status:
|
|
180
|
-
limit:
|
|
181
|
-
cursor:
|
|
182
|
-
where:
|
|
183
|
-
orderBy:
|
|
184
|
+
status: bucketed.fetchFilter?.status,
|
|
185
|
+
limit: bucketed.fetchFilter?.limit,
|
|
186
|
+
cursor: bucketed.fetchFilter?.cursor,
|
|
187
|
+
where: bucketed.fetchFilter?.where,
|
|
188
|
+
orderBy: bucketed.fetchFilter?.orderBy,
|
|
184
189
|
locale: resolvedLocale
|
|
185
190
|
});
|
|
186
191
|
const { entries, error, cacheHint } = result;
|
|
@@ -207,6 +212,68 @@ async function getDinewayCollection(type, filter) {
|
|
|
207
212
|
cacheHint: cacheHint ?? {}
|
|
208
213
|
};
|
|
209
214
|
});
|
|
215
|
+
return bucketed.requestedLimit === void 0 ? cached : sliceCollectionResult(cached, bucketed.requestedLimit, filter?.orderBy);
|
|
216
|
+
}
|
|
217
|
+
const BUCKET_LIMIT_THRESHOLD = 10;
|
|
218
|
+
/** @internal exported for unit tests; not part of the public API. */
|
|
219
|
+
function bucketFilter(filter) {
|
|
220
|
+
const limit = filter?.limit;
|
|
221
|
+
if (limit === void 0 || limit >= BUCKET_LIMIT_THRESHOLD || limit <= 0 || filter?.cursor !== void 0) return {
|
|
222
|
+
fetchFilter: filter,
|
|
223
|
+
requestedLimit: void 0
|
|
224
|
+
};
|
|
225
|
+
return {
|
|
226
|
+
fetchFilter: {
|
|
227
|
+
...filter,
|
|
228
|
+
limit: BUCKET_LIMIT_THRESHOLD
|
|
229
|
+
},
|
|
230
|
+
requestedLimit: limit
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
/** @internal exported for unit tests; not part of the public API. */
|
|
234
|
+
function sliceCollectionResult(cached, limit, orderBy) {
|
|
235
|
+
if (cached.error) return cached;
|
|
236
|
+
if (cached.entries.length <= limit) return cached;
|
|
237
|
+
const entries = cached.entries.slice(0, limit);
|
|
238
|
+
const lastEntry = entries.at(-1);
|
|
239
|
+
const nextCursor = lastEntry ? encodeEntryCursor(lastEntry, orderBy) : void 0;
|
|
240
|
+
return {
|
|
241
|
+
...cached,
|
|
242
|
+
entries,
|
|
243
|
+
nextCursor
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
const ENTRY_DATA_KEY_MAP = {
|
|
247
|
+
created_at: "createdAt",
|
|
248
|
+
updated_at: "updatedAt",
|
|
249
|
+
published_at: "publishedAt",
|
|
250
|
+
scheduled_at: "scheduledAt",
|
|
251
|
+
author_id: "authorId",
|
|
252
|
+
primary_byline_id: "primaryBylineId"
|
|
253
|
+
};
|
|
254
|
+
const FIELD_NAME_PATTERN = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
|
|
255
|
+
function encodeEntryCursor(entry, orderBy) {
|
|
256
|
+
const data = entryData(entry);
|
|
257
|
+
const id = dataStr(data, "id");
|
|
258
|
+
if (!id) return void 0;
|
|
259
|
+
let dbField = "created_at";
|
|
260
|
+
if (orderBy) {
|
|
261
|
+
for (const field of Object.keys(orderBy)) if (FIELD_NAME_PATTERN.test(field)) {
|
|
262
|
+
dbField = field;
|
|
263
|
+
break;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
const rawDateValuesRaw = Reflect.get(data, CURSOR_RAW_VALUES);
|
|
267
|
+
if (rawDateValuesRaw !== null && typeof rawDateValuesRaw === "object") {
|
|
268
|
+
const raw = Reflect.get(rawDateValuesRaw, dbField);
|
|
269
|
+
if (typeof raw === "string") return encodeCursor(raw, id);
|
|
270
|
+
}
|
|
271
|
+
const value = data[ENTRY_DATA_KEY_MAP[dbField] ?? dbField];
|
|
272
|
+
let orderValue;
|
|
273
|
+
if (value instanceof Date) orderValue = value.toISOString();
|
|
274
|
+
else if (typeof value === "string" || typeof value === "number") orderValue = String(value);
|
|
275
|
+
else orderValue = "";
|
|
276
|
+
return encodeCursor(orderValue, id);
|
|
210
277
|
}
|
|
211
278
|
function collectionCacheKey(type, filter, locale) {
|
|
212
279
|
return `collection:${type}:${[
|
|
@@ -369,10 +436,17 @@ async function getDinewayEntry(type, id, options) {
|
|
|
369
436
|
async function hydrateEntryBylines(type, entries) {
|
|
370
437
|
if (entries.length === 0) return;
|
|
371
438
|
try {
|
|
372
|
-
const { getBylinesForEntries } = await import("./bylines-
|
|
373
|
-
const
|
|
374
|
-
|
|
375
|
-
|
|
439
|
+
const { getBylinesForEntries } = await import("./bylines-C4LIBOOO.mjs").then((n) => n.t);
|
|
440
|
+
const refs = entries.map((entry) => {
|
|
441
|
+
const data = entryData(entry);
|
|
442
|
+
const id = dataStr(data, "id");
|
|
443
|
+
return id ? {
|
|
444
|
+
id,
|
|
445
|
+
authorId: dataStr(data, "authorId") || null
|
|
446
|
+
} : null;
|
|
447
|
+
}).filter((ref) => ref !== null);
|
|
448
|
+
if (refs.length === 0) return;
|
|
449
|
+
const bylinesMap = await getBylinesForEntries(type, refs);
|
|
376
450
|
for (const entry of entries) {
|
|
377
451
|
const data = entryData(entry);
|
|
378
452
|
const dbId = dataStr(data, "id");
|
|
@@ -391,7 +465,7 @@ async function hydrateEntryBylines(type, entries) {
|
|
|
391
465
|
async function hydrateEntryTerms(type, entries) {
|
|
392
466
|
if (entries.length === 0) return;
|
|
393
467
|
try {
|
|
394
|
-
const { getAllTermsForEntries } = await import("./taxonomies-
|
|
468
|
+
const { getAllTermsForEntries } = await import("./taxonomies-D2aZGuns.mjs").then((n) => n.l);
|
|
395
469
|
const ids = entries.map((entry) => dataStr(entryData(entry), "id")).filter(Boolean);
|
|
396
470
|
if (ids.length === 0) return;
|
|
397
471
|
const termsMap = await getAllTermsForEntries(type, ids);
|
|
@@ -425,9 +499,9 @@ async function hydrateEntryTerms(type, entries) {
|
|
|
425
499
|
*/
|
|
426
500
|
async function getTranslations(type, id) {
|
|
427
501
|
try {
|
|
428
|
-
const db = (await import("./loader-
|
|
502
|
+
const db = (await import("./loader-PZnPxFLc.mjs").then((n) => n.i)).getDb;
|
|
429
503
|
const dbInstance = await db();
|
|
430
|
-
const { ContentRepository } = await import("./content-
|
|
504
|
+
const { ContentRepository } = await import("./content-CyLkb-qH.mjs").then((n) => n.n);
|
|
431
505
|
const repo = new ContentRepository(dbInstance);
|
|
432
506
|
const item = await repo.findByIdOrSlug(type, id);
|
|
433
507
|
if (!item) return {
|
|
@@ -494,8 +568,8 @@ async function resolveDinewayPath(path) {
|
|
|
494
568
|
const hasDbOverride = !!getRequestContext()?.db;
|
|
495
569
|
let patterns = !hasDbOverride ? cachedUrlPatterns : null;
|
|
496
570
|
if (!patterns) {
|
|
497
|
-
const { getDb } = await import("./loader-
|
|
498
|
-
const { SchemaRegistry } = await import("./registry-
|
|
571
|
+
const { getDb } = await import("./loader-PZnPxFLc.mjs").then((n) => n.i);
|
|
572
|
+
const { SchemaRegistry } = await import("./registry-C-_hxLqa.mjs").then((n) => n.r);
|
|
499
573
|
patterns = (await new SchemaRegistry(await getDb()).listCollections()).filter((collection) => collection.urlPattern).map((collection) => {
|
|
500
574
|
const { regex, paramNames } = patternToRegex(collection.urlPattern);
|
|
501
575
|
return {
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { n as SchemaRegistry } from "./registry-C-_hxLqa.mjs";
|
|
2
|
+
import { r as getDb } from "./loader-PZnPxFLc.mjs";
|
|
3
|
+
import { n as requestCached } from "./request-cache-DHMRr2Lf.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/schema/query.ts
|
|
6
|
+
/**
|
|
7
|
+
* Get collection metadata by slug.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { getCollectionInfo } from "dineway";
|
|
12
|
+
*
|
|
13
|
+
* const info = await getCollectionInfo("posts");
|
|
14
|
+
* if (info?.commentsEnabled) {
|
|
15
|
+
* // render comment UI
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
async function getCollectionInfo(slug) {
|
|
20
|
+
return requestCached(`collection-info:${slug}`, async () => {
|
|
21
|
+
return getCollectionInfoWithDb(await getDb(), slug);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get collection metadata with an explicit db handle.
|
|
26
|
+
*
|
|
27
|
+
* @internal Use `getCollectionInfo()` in templates. This variant is for
|
|
28
|
+
* routes that already have a database handle.
|
|
29
|
+
*/
|
|
30
|
+
async function getCollectionInfoWithDb(db, slug) {
|
|
31
|
+
return new SchemaRegistry(db).getCollection(slug);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
export { getCollectionInfo as t };
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { t as apiError } from "./error-BMUPwxgx.mjs";
|
|
2
|
+
import { n as normalizeTrustedHeaders } from "./trusted-proxy-BbaZfkT9.mjs";
|
|
3
|
+
import { sql } from "kysely";
|
|
4
|
+
|
|
5
|
+
//#region src/auth/rate-limit.ts
|
|
6
|
+
/** Loose validation for IPv4 and IPv6 addresses. */
|
|
7
|
+
const IP_PATTERN = /^[\da-fA-F.:]+$/;
|
|
8
|
+
/**
|
|
9
|
+
* Check (and increment) the rate limit for a given IP + endpoint.
|
|
10
|
+
*
|
|
11
|
+
* If `ip` is null (no trusted IP available), rate limiting is skipped
|
|
12
|
+
* and the request is allowed. There's no meaningful key to rate limit
|
|
13
|
+
* on when the IP is unknown.
|
|
14
|
+
*
|
|
15
|
+
* Returns whether the request is allowed. The counter is always
|
|
16
|
+
* incremented — even when the limit is exceeded — so that repeated
|
|
17
|
+
* abuse doesn't reset the window.
|
|
18
|
+
*
|
|
19
|
+
* Piggybacks cleanup of expired entries with a 1% probability
|
|
20
|
+
* to prevent unbounded table growth.
|
|
21
|
+
*/
|
|
22
|
+
async function checkRateLimit(db, ip, endpoint, maxRequests, windowSeconds) {
|
|
23
|
+
if (!ip) return {
|
|
24
|
+
allowed: true,
|
|
25
|
+
count: 0,
|
|
26
|
+
limit: maxRequests
|
|
27
|
+
};
|
|
28
|
+
const windowStart = (/* @__PURE__ */ new Date(Math.floor(Date.now() / (windowSeconds * 1e3)) * windowSeconds * 1e3)).toISOString();
|
|
29
|
+
const count = (await sql`
|
|
30
|
+
INSERT INTO _dineway_rate_limits (key, window, count)
|
|
31
|
+
VALUES (${`${ip}:${endpoint}`}, ${windowStart}, 1)
|
|
32
|
+
ON CONFLICT (key, window)
|
|
33
|
+
DO UPDATE SET count = _dineway_rate_limits.count + 1
|
|
34
|
+
RETURNING count
|
|
35
|
+
`.execute(db)).rows[0]?.count ?? 1;
|
|
36
|
+
if (Math.random() < .01) cleanupExpiredRateLimits(db).catch(() => {});
|
|
37
|
+
return {
|
|
38
|
+
allowed: count <= maxRequests,
|
|
39
|
+
count,
|
|
40
|
+
limit: maxRequests
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Build a 429 Too Many Requests response with standard headers.
|
|
45
|
+
*/
|
|
46
|
+
function rateLimitResponse(retryAfterSeconds) {
|
|
47
|
+
const response = apiError("RATE_LIMITED", "Too many requests. Please try again later.", 429);
|
|
48
|
+
response.headers.set("Retry-After", String(retryAfterSeconds));
|
|
49
|
+
return response;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Extract client IP from a Request.
|
|
53
|
+
*
|
|
54
|
+
* Resolution order:
|
|
55
|
+
* 1. `CF-Connecting-IP` — trusted only when a runtime `cf` object is present.
|
|
56
|
+
* 2. `X-Forwarded-For` (first entry) — also trusted only when that runtime
|
|
57
|
+
* metadata is present.
|
|
58
|
+
* 3. Operator-declared trusted proxy headers — used for self-hosted Node
|
|
59
|
+
* deployments behind a reverse proxy the operator controls.
|
|
60
|
+
* 4. `null` — no trusted IP available. Callers must handle this gracefully
|
|
61
|
+
* (e.g. skip rate limiting).
|
|
62
|
+
*
|
|
63
|
+
* Aligned with `extractRequestMeta` in `plugins/request-meta.ts`.
|
|
64
|
+
*/
|
|
65
|
+
function getClientIp(request, trustedHeaders = []) {
|
|
66
|
+
const headers = request.headers;
|
|
67
|
+
if (request.cf) {
|
|
68
|
+
const cfIp = headers.get("cf-connecting-ip")?.trim();
|
|
69
|
+
if (cfIp && IP_PATTERN.test(cfIp)) return cfIp;
|
|
70
|
+
const xff = headers.get("x-forwarded-for");
|
|
71
|
+
if (xff) {
|
|
72
|
+
const first = xff.split(",")[0]?.trim();
|
|
73
|
+
if (first && IP_PATTERN.test(first)) return first;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
for (const name of normalizeTrustedHeaders(trustedHeaders)) {
|
|
77
|
+
const ip = readIpFromHeader(headers, name);
|
|
78
|
+
if (ip) return ip;
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Read an IP from an operator-declared trusted header. Forwarded-for style
|
|
84
|
+
* headers are parsed as comma-separated lists and the first entry is used.
|
|
85
|
+
*/
|
|
86
|
+
function readIpFromHeader(headers, name) {
|
|
87
|
+
const value = headers.get(name);
|
|
88
|
+
if (!value) return null;
|
|
89
|
+
if (name.endsWith("forwarded-for")) {
|
|
90
|
+
const first = value.split(",")[0]?.trim();
|
|
91
|
+
if (!first) return null;
|
|
92
|
+
return IP_PATTERN.test(first) ? first : null;
|
|
93
|
+
}
|
|
94
|
+
const trimmed = value.trim();
|
|
95
|
+
if (!trimmed) return null;
|
|
96
|
+
return IP_PATTERN.test(trimmed) ? trimmed : null;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Delete expired rate limit entries.
|
|
100
|
+
*
|
|
101
|
+
* Entries with a window timestamp older than `maxAgeSeconds` are removed.
|
|
102
|
+
* Safe to call periodically (e.g., from cron cleanup or on-request piggyback).
|
|
103
|
+
*/
|
|
104
|
+
async function cleanupExpiredRateLimits(db, maxAgeSeconds = 3600) {
|
|
105
|
+
const result = await sql`
|
|
106
|
+
DELETE FROM _dineway_rate_limits WHERE window < ${(/* @__PURE__ */ new Date(Date.now() - maxAgeSeconds * 1e3)).toISOString()}
|
|
107
|
+
`.execute(db);
|
|
108
|
+
return Number(result.numAffectedRows ?? 0);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
//#endregion
|
|
112
|
+
export { getClientIp as n, rateLimitResponse as r, checkRateLimit as t };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as currentTimestampValue } from "./dialect-helpers-DhTzaUxP.mjs";
|
|
2
|
-
import { n as decodeCursor, r as encodeCursor } from "./types-
|
|
3
|
-
import { i as matchPattern, n as interpolateDestination, r as isPattern, t as compilePattern } from "./patterns-
|
|
2
|
+
import { n as decodeCursor, r as encodeCursor } from "./types-Bs6lTBBW.mjs";
|
|
3
|
+
import { i as matchPattern, n as interpolateDestination, r as isPattern, t as compilePattern } from "./patterns-K0DLqWir.mjs";
|
|
4
4
|
import { sql } from "kysely";
|
|
5
5
|
import { ulid } from "ulidx";
|
|
6
6
|
|
|
@@ -14,6 +14,7 @@ const MAX_404_LOG_ROWS = 1e4;
|
|
|
14
14
|
const REFERRER_MAX_LENGTH = 512;
|
|
15
15
|
/** Max stored length for the `User-Agent` header. */
|
|
16
16
|
const USER_AGENT_MAX_LENGTH = 256;
|
|
17
|
+
const LIKE_ESCAPE_RE = /[\\%_]/g;
|
|
17
18
|
function truncateOrNull(value, max) {
|
|
18
19
|
if (value === null || value === void 0) return null;
|
|
19
20
|
return value.length > max ? value.slice(0, max) : value;
|
|
@@ -50,8 +51,8 @@ var RedirectRepository = class {
|
|
|
50
51
|
const limit = Math.min(Math.max(opts.limit ?? 50, 1), 100);
|
|
51
52
|
let query = this.db.selectFrom("_dineway_redirects").selectAll().orderBy("created_at", "desc").orderBy("id", "desc").limit(limit + 1);
|
|
52
53
|
if (opts.search) {
|
|
53
|
-
const term = `%${opts.search}%`;
|
|
54
|
-
query = query.where((eb) => eb.or([
|
|
54
|
+
const term = `%${opts.search.replace(LIKE_ESCAPE_RE, (ch) => `\\${ch}`)}%`;
|
|
55
|
+
query = query.where((eb) => eb.or([sql`source LIKE ${term} ESCAPE '\\'`, sql`destination LIKE ${term} ESCAPE '\\'`]));
|
|
55
56
|
}
|
|
56
57
|
if (opts.group !== void 0) query = query.where("group_name", "=", opts.group);
|
|
57
58
|
if (opts.enabled !== void 0) query = query.where("enabled", "=", opts.enabled ? 1 : 0);
|
|
@@ -210,7 +211,10 @@ var RedirectRepository = class {
|
|
|
210
211
|
async find404s(opts) {
|
|
211
212
|
const limit = Math.min(Math.max(opts.limit ?? 50, 1), 100);
|
|
212
213
|
let query = this.db.selectFrom("_dineway_404_log").selectAll().orderBy("created_at", "desc").orderBy("id", "desc").limit(limit + 1);
|
|
213
|
-
if (opts.search)
|
|
214
|
+
if (opts.search) {
|
|
215
|
+
const term = `%${opts.search.replace(LIKE_ESCAPE_RE, (ch) => `\\${ch}`)}%`;
|
|
216
|
+
query = query.where(sql`path LIKE ${term} ESCAPE '\\'`);
|
|
217
|
+
}
|
|
214
218
|
if (opts.cursor) {
|
|
215
219
|
const decoded = decodeCursor(opts.cursor);
|
|
216
220
|
if (decoded) query = query.where((eb) => eb.or([eb("created_at", "<", decoded.orderValue), eb.and([eb("created_at", "=", decoded.orderValue), eb("id", "<", decoded.id)])]));
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/api/redirect.ts
|
|
2
|
+
/**
|
|
3
|
+
* Validate that a redirect URL is a safe local path.
|
|
4
|
+
*
|
|
5
|
+
* Rejects:
|
|
6
|
+
* - Protocol-relative URLs (`//evil.com`)
|
|
7
|
+
* - Backslash bypass (`/\evil.com` — browsers normalize `\` to `/` in Location headers)
|
|
8
|
+
* - Absolute URLs (`https://evil.com`)
|
|
9
|
+
* - Empty / nullish values
|
|
10
|
+
*/
|
|
11
|
+
function isSafeRedirect(url) {
|
|
12
|
+
return typeof url === "string" && url.startsWith("/") && !url.startsWith("//") && !url.includes("\\");
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { isSafeRedirect as t };
|