dineway 0.1.9 → 0.1.11
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-BsMaXdJa.mjs +540 -0
- package/dist/allowed-origins-DG86sH8U.mjs +68 -0
- package/dist/api/route-utils.d.mts +41 -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-Cmy8Rjk5.mjs +2704 -0
- package/dist/api-tokens-Bu3ez1MO.mjs +153 -0
- package/dist/api-tokens-DzloJxuh.mjs +3 -0
- package/dist/{apply-iVSqz2qs.mjs → apply-Co5imxxT.mjs} +15 -689
- package/dist/astro/index.d.mts +10 -6
- package/dist/astro/index.mjs +86 -11
- package/dist/astro/middleware/auth.d.mts +10 -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 +86 -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 +45 -0
- package/dist/astro/routes/api/admin/context/_id_/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/context/_id_/index.mjs +45 -0
- package/dist/astro/routes/api/admin/context/_id_/review.d.mts +7 -0
- package/dist/astro/routes/api/admin/context/_id_/review.mjs +60 -0
- package/dist/astro/routes/api/admin/context/_id_/supersede.d.mts +7 -0
- package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +63 -0
- package/dist/astro/routes/api/admin/context/diff.d.mts +7 -0
- package/dist/astro/routes/api/admin/context/diff.mjs +49 -0
- package/dist/astro/routes/api/admin/context/index.d.mts +8 -0
- package/dist/astro/routes/api/admin/context/index.mjs +71 -0
- package/dist/astro/routes/api/admin/context/stale.d.mts +7 -0
- package/dist/astro/routes/api/admin/context/stale.mjs +49 -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 +51 -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 +67 -0
- package/dist/astro/routes/api/admin/hitl-requests/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/hitl-requests/index.mjs +55 -0
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.d.mts +7 -0
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +98 -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 +89 -0
- package/dist/astro/routes/api/admin/plugins/_id_/enable.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +89 -0
- package/dist/astro/routes/api/admin/plugins/_id_/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +54 -0
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +98 -0
- package/dist/astro/routes/api/admin/plugins/_id_/update.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +131 -0
- package/dist/astro/routes/api/admin/plugins/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/index.mjs +52 -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 +54 -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 +128 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/index.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +61 -0
- package/dist/astro/routes/api/admin/plugins/updates.d.mts +7 -0
- package/dist/astro/routes/api/admin/plugins/updates.mjs +52 -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 +97 -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 +54 -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 +70 -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 +92 -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 +197 -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 +155 -0
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +21 -0
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +289 -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 +268 -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 +2700 -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/{src/astro/routes/api/menus/[name]/items.ts → dist/astro/routes/api/menus/_name_/items.mjs} +63 -105
- package/dist/astro/routes/api/menus/_name_/reorder.d.mts +7 -0
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +77 -0
- package/dist/astro/routes/api/menus/_name_.d.mts +9 -0
- package/dist/astro/routes/api/menus/_name_.mjs +123 -0
- package/dist/astro/routes/api/menus/index.d.mts +8 -0
- package/dist/astro/routes/api/menus/index.mjs +84 -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 +152 -0
- package/dist/astro/routes/api/redirects/index.d.mts +8 -0
- package/dist/astro/routes/api/redirects/index.mjs +97 -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 +98 -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 +80 -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 +67 -0
- package/dist/astro/routes/api/schema/collections/_slug_/index.d.mts +9 -0
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +97 -0
- package/dist/astro/routes/api/schema/collections/index.d.mts +8 -0
- package/dist/astro/routes/api/schema/collections/index.mjs +77 -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 +58 -0
- package/dist/astro/routes/api/schema/orphans/index.d.mts +7 -0
- package/dist/astro/routes/api/schema/orphans/index.mjs +53 -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 +156 -0
- package/dist/astro/routes/api/sections/index.d.mts +8 -0
- package/dist/astro/routes/api/sections/index.mjs +99 -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 +101 -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 +189 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.d.mts +14 -0
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +113 -0
- package/dist/astro/routes/api/taxonomies/index.d.mts +14 -0
- package/dist/astro/routes/api/taxonomies/index.mjs +103 -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 +88 -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 +158 -0
- package/dist/astro/routes/api/widget-areas/_name_/widgets.d.mts +7 -0
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +104 -0
- package/dist/astro/routes/api/widget-areas/_name_.d.mts +8 -0
- package/dist/astro/routes/api/widget-areas/_name_.mjs +99 -0
- package/dist/astro/routes/api/widget-areas/index.d.mts +8 -0
- package/dist/astro/routes/api/widget-areas/index.mjs +108 -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 +41 -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-DKUe_1oa.mjs +13 -0
- package/dist/authorize-BBj8C6Y8.mjs +36 -0
- package/dist/briefing-BrXCuMEE.mjs +1294 -0
- package/dist/briefing-ClWw4mc9.mjs +29 -0
- package/dist/{byline-OhH2dlRu.mjs → byline-naZxOPSa.mjs} +3 -3
- package/dist/{bylines-BGpD9_hy.mjs → bylines-BcOPh6Ej.mjs} +20 -53
- package/dist/bylines-HfUKum_j.d.mts +2023 -0
- package/dist/{cache-BdSY-gQN.mjs → cache-DEbQ13c9.mjs} +21 -11
- package/dist/challenge-store-DHMgBGOq.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-Gy3zLBaP.mjs +186 -0
- package/dist/components-DND2rd3D.mjs +107 -0
- package/dist/{content-DWi4d0rT.mjs → content-CyLkb-qH.mjs} +33 -44
- package/dist/context-bE5Kyvcj.mjs +184 -0
- package/dist/context-nxMyOe3p.mjs +849 -0
- package/dist/context-route-helpers-D-6uCQ0S.mjs +45 -0
- package/dist/context-types-C-LwdAxx.mjs +23 -0
- package/dist/cron-DGzVTtJp.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-7AhWNwCK.mjs +487 -0
- package/dist/email-console-CgLVZbcn.mjs +36 -0
- package/dist/entity-aliases-C0v-yNET.mjs +51 -0
- package/dist/error-DEGjx2Xw.mjs +435 -0
- package/dist/escape-mNZr4t2A.mjs +8 -0
- package/dist/experimental-workflows-DldxJlqV.mjs +38 -0
- package/dist/fts-manager-B1pTNEG_.mjs +297 -0
- package/dist/hash-CDX7M0ze.mjs +32 -0
- package/dist/hitl-requests-Bx3Bkk9l.mjs +118 -0
- package/dist/hitl-route-helpers-DMmJRS7B.mjs +96 -0
- package/dist/import-DD3f2jkc.mjs +243 -0
- package/dist/import-DVZcYlDp.mjs +1323 -0
- package/dist/index-CkljPf5F.d.mts +227 -0
- package/dist/index.d.mts +15 -11
- package/dist/index.mjs +60 -22
- package/dist/{loader-sMG4TZ-u.mjs → loader-PZnPxFLc.mjs} +42 -5
- package/dist/{manifest-schema-D1MSVnoI.mjs → manifest-schema-DYoCQ5np.mjs} +22 -10
- package/dist/media/index.d.mts +1 -1
- package/dist/media/index.mjs +2 -1
- package/dist/media/local-runtime.d.mts +11 -7
- package/dist/media/local-runtime.mjs +3 -3
- package/dist/{media-DMTr80Gv.mjs → media-_7Fxdu45.mjs} +1 -1
- package/dist/menus-BacxVCCo.mjs +312 -0
- package/dist/menus-CrzHokKj.mjs +3502 -0
- package/dist/normalize-C49G_o1k.mjs +126 -0
- package/dist/oauth-authorization-C1qiw4hd.mjs +283 -0
- package/dist/oauth-clients-CvWatf5p.mjs +298 -0
- package/dist/oauth-state-store-hSdzxsEe.mjs +48 -0
- package/dist/oauth-user-lookup-B4OcmsLV.mjs +25 -0
- package/dist/options-z8VVg1Ll.mjs +114 -0
- package/dist/page/index.d.mts +2 -2
- package/dist/parse-BeQXIt1U.mjs +88 -0
- package/dist/passkey-config-Daqs5fjq.mjs +42 -0
- package/dist/{patterns-CrCYkMBb.mjs → patterns-K0DLqWir.mjs} +53 -1
- package/dist/{placeholder-Cp8g5Emj.mjs → placeholder-C2P5fKa4.mjs} +1 -126
- package/dist/plugins/adapt-sandbox-entry.d.mts +9 -5
- package/dist/plugins/adapt-sandbox-entry.mjs +4 -4
- package/dist/preview-C_4DyVox.mjs +788 -0
- package/dist/public-url-BB_umF5G.mjs +71 -0
- package/dist/{query-kDmwCsHh.mjs → query-RiobVwB5.mjs} +93 -19
- package/dist/rate-limit-CbJoj_fT.mjs +112 -0
- package/dist/{redirect-DnEWAkVg.mjs → redirect-CGl64yOX.mjs} +9 -5
- package/dist/redirect-ClSmMOtC.mjs +16 -0
- package/dist/redirects-B69T59hK.mjs +499 -0
- package/dist/redirects-CqaxraTO.mjs +1070 -0
- package/dist/{registry-C0zjeB9P.mjs → registry-C-_hxLqa.mjs} +26 -294
- package/dist/request-meta-Bd0mQfiS.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-9eIQXuc2.d.mts} +1 -1
- package/dist/{index-yvc6E_17.d.mts → runtime-C4-7y7xK.d.mts} +1539 -2007
- package/dist/runtime.d.mts +10 -6
- package/dist/runtime.mjs +3 -3
- package/dist/schema-BNpI53of.mjs +40 -0
- package/dist/search-DM6CVti3.mjs +337 -0
- package/dist/secrets-dI8zzTV7.mjs +160 -0
- package/dist/sections-DZFyAQXd.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-BBgTCOYU.mjs +85 -0
- package/dist/seo-CUQctrog.mjs +129 -0
- package/dist/service-CSfcQguB.mjs +194 -0
- package/dist/settings-4XnpVMOS.mjs +223 -0
- package/dist/settings-Bw93cLfe.mjs +50 -0
- package/dist/setup-complete-DidsDQ1e.mjs +21 -0
- package/dist/setup-nonce-pml1PMKo.mjs +17 -0
- package/dist/sidecar-client-vzwV98K4.mjs +66 -0
- package/dist/site-activity-B8FjLIVh.mjs +104 -0
- package/dist/site-context-Bpu_Paur.mjs +4122 -0
- package/dist/site-url-CYIcO0Tj.mjs +12 -0
- package/dist/slugify-PDTDtMXp.mjs +30 -0
- package/dist/ssrf-CmM76lLV.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-BvBgfzn3.mjs} +11 -7
- package/dist/taxonomies-CpqGcIJD.mjs +355 -0
- package/dist/taxonomy-D5cbhc8u.mjs +165 -0
- package/dist/{tokens-CJz9ubV6.mjs → tokens-DLTo4dO2.mjs} +1 -1
- package/dist/{transport-DB5eDN4x.mjs → transport-C9e_h-BF.mjs} +5 -4
- package/dist/trusted-proxy-Bi0Cuk5n.mjs +30 -0
- package/dist/{types-BawVha09.mjs → types-Bs6lTBBW.mjs} +1 -1
- package/dist/types-C982qI5I.d.mts +344 -0
- package/dist/types-D4XVOt01.d.mts +165 -0
- package/dist/{types-Cj0KMIZV.d.mts → types-DgfUZqcd.d.mts} +54 -16
- package/dist/{types-BuMDPy5C.d.mts → types-IPACEM14.d.mts} +6 -0
- package/dist/user-CcXq-zoL.mjs +154 -0
- package/dist/utils-D2in-zwy.mjs +285 -0
- package/dist/{validate-BZ5wnLLp.mjs → validate-BJgA6TW_.mjs} +1 -1
- package/dist/{validate-IPf8n4Fj.d.mts → validate-JCZihRIa.d.mts} +3 -3
- package/dist/version-DH53KCQd.mjs +6 -0
- package/dist/widgets-B7Q_7bxN.mjs +104 -0
- package/dist/wordpress-slugs-BevajWrC.mjs +14 -0
- package/dist/zod-generator-DBVP8D0P.mjs +132 -0
- package/locals.d.ts +1 -6
- package/package.json +67 -11
- package/src/components/DinewayHead.astro +8 -4
- package/src/components/DinewayImage.astro +7 -5
- package/src/components/DinewayMedia.astro +9 -3
- package/src/components/Gallery.astro +5 -3
- package/src/components/Image.astro +5 -1
- package/src/components/InlinePortableTextEditor.tsx +68 -19
- 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]/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-BLDldpJg.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-DKUg_NgF.mjs} +0 -0
- /package/dist/{default-VjJyuuG9.mjs → default-C3PZN-bz.mjs} +0 -0
- /package/dist/{load-Coc9HpHH.mjs → load-D-9NhLmF.mjs} +0 -0
- /package/dist/{mode-47goXBBK.mjs → mode-C80mAZQv.mjs} +0 -0
- /package/dist/{placeholder--wOi4TbO.d.mts → placeholder-CHkLckzK.d.mts} +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-6RefuBdV.d.mts} +0 -0
- /package/dist/{types-griIBQOQ.mjs → types-B9gKVOHk.mjs} +0 -0
- /package/dist/{types-CWbdtiux.d.mts → types-B9qVtiHb.d.mts} +0 -0
- /package/dist/{types-COeOq9nK.mjs → types-DL7Y8D_t.mjs} +0 -0
- /package/dist/{types-BzcUjoqg.d.mts → types-Djdp0cZO.d.mts} +0 -0
- /package/dist/{types-DOrVigru.d.mts → types-Du8jreyC.d.mts} +0 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
//#region src/auth/oauth-state-store.ts
|
|
2
|
+
const OAUTH_STATE_TTL_MS = 600 * 1e3;
|
|
3
|
+
function createOAuthStateStore(db) {
|
|
4
|
+
return {
|
|
5
|
+
async set(state, data) {
|
|
6
|
+
const expiresAt = new Date(Date.now() + OAUTH_STATE_TTL_MS).toISOString();
|
|
7
|
+
await db.insertInto("auth_challenges").values({
|
|
8
|
+
challenge: state,
|
|
9
|
+
type: "oauth",
|
|
10
|
+
user_id: null,
|
|
11
|
+
data: JSON.stringify(data),
|
|
12
|
+
expires_at: expiresAt
|
|
13
|
+
}).onConflict((oc) => oc.column("challenge").doUpdateSet({
|
|
14
|
+
type: "oauth",
|
|
15
|
+
data: JSON.stringify(data),
|
|
16
|
+
expires_at: expiresAt
|
|
17
|
+
})).execute();
|
|
18
|
+
},
|
|
19
|
+
async get(state) {
|
|
20
|
+
const row = await db.selectFrom("auth_challenges").selectAll().where("challenge", "=", state).where("type", "=", "oauth").executeTakeFirst();
|
|
21
|
+
if (!row) return null;
|
|
22
|
+
if (new Date(row.expires_at).getTime() < Date.now()) {
|
|
23
|
+
await this.delete(state);
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
if (!row.data) return null;
|
|
27
|
+
try {
|
|
28
|
+
const parsed = JSON.parse(row.data);
|
|
29
|
+
if (typeof parsed !== "object" || parsed === null || !("provider" in parsed) || typeof parsed.provider !== "string" || !("redirectUri" in parsed) || typeof parsed.redirectUri !== "string") return null;
|
|
30
|
+
const oauthState = {
|
|
31
|
+
provider: parsed.provider,
|
|
32
|
+
redirectUri: parsed.redirectUri
|
|
33
|
+
};
|
|
34
|
+
if ("codeVerifier" in parsed && typeof parsed.codeVerifier === "string") oauthState.codeVerifier = parsed.codeVerifier;
|
|
35
|
+
if ("nonce" in parsed && typeof parsed.nonce === "string") oauthState.nonce = parsed.nonce;
|
|
36
|
+
return oauthState;
|
|
37
|
+
} catch {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
async delete(state) {
|
|
42
|
+
await db.deleteFrom("auth_challenges").where("challenge", "=", state).where("type", "=", "oauth").execute();
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
//#endregion
|
|
48
|
+
export { createOAuthStateStore as t };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { toRoleLevel } from "@dineway-ai/auth";
|
|
2
|
+
|
|
3
|
+
//#region src/api/handlers/oauth-user-lookup.ts
|
|
4
|
+
/**
|
|
5
|
+
* Shared user lookup for OAuth token operations.
|
|
6
|
+
*
|
|
7
|
+
* Extracts user role and disabled status from the database. Used by
|
|
8
|
+
* handleTokenRefresh() to revalidate scopes against the user's current
|
|
9
|
+
* role and reject disabled users.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Look up a user's current role and disabled status.
|
|
13
|
+
* Returns null if the user doesn't exist.
|
|
14
|
+
*/
|
|
15
|
+
async function lookupUserRoleAndStatus(db, userId) {
|
|
16
|
+
const row = await db.selectFrom("users").select(["role", "disabled"]).where("id", "=", userId).executeTakeFirst();
|
|
17
|
+
if (!row) return null;
|
|
18
|
+
return {
|
|
19
|
+
role: toRoleLevel(row.role),
|
|
20
|
+
disabled: row.disabled === 1
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
//#endregion
|
|
25
|
+
export { lookupUserRoleAndStatus as t };
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { sql } from "kysely";
|
|
2
|
+
|
|
3
|
+
//#region src/database/repositories/options.ts
|
|
4
|
+
function escapeLike(value) {
|
|
5
|
+
return value.replaceAll("\\", "\\\\").replaceAll("%", "\\%").replaceAll("_", "\\_");
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Options repository for key-value settings storage
|
|
9
|
+
*
|
|
10
|
+
* Used for site settings, plugin configuration, and other arbitrary key-value data.
|
|
11
|
+
* Values are stored as JSON for flexibility.
|
|
12
|
+
*/
|
|
13
|
+
var OptionsRepository = class {
|
|
14
|
+
constructor(db) {
|
|
15
|
+
this.db = db;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Get an option value
|
|
19
|
+
*/
|
|
20
|
+
async get(name) {
|
|
21
|
+
const row = await this.db.selectFrom("options").select("value").where("name", "=", name).executeTakeFirst();
|
|
22
|
+
if (!row) return null;
|
|
23
|
+
return JSON.parse(row.value);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get an option value with a default
|
|
27
|
+
*/
|
|
28
|
+
async getOrDefault(name, defaultValue) {
|
|
29
|
+
return await this.get(name) ?? defaultValue;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Set an option value (creates or updates)
|
|
33
|
+
*/
|
|
34
|
+
async set(name, value) {
|
|
35
|
+
const row = {
|
|
36
|
+
name,
|
|
37
|
+
value: JSON.stringify(value)
|
|
38
|
+
};
|
|
39
|
+
await this.db.insertInto("options").values(row).onConflict((oc) => oc.column("name").doUpdateSet({ value: row.value })).execute();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Set an option value only if no row with that name exists.
|
|
43
|
+
*
|
|
44
|
+
* Returns true when the row was inserted, false when a row already existed,
|
|
45
|
+
* regardless of its value.
|
|
46
|
+
*/
|
|
47
|
+
async setIfAbsent(name, value) {
|
|
48
|
+
const row = {
|
|
49
|
+
name,
|
|
50
|
+
value: JSON.stringify(value)
|
|
51
|
+
};
|
|
52
|
+
return ((await this.db.insertInto("options").values(row).onConflict((oc) => oc.column("name").doNothing()).executeTakeFirst()).numInsertedOrUpdatedRows ?? 0n) > 0n;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Delete an option
|
|
56
|
+
*/
|
|
57
|
+
async delete(name) {
|
|
58
|
+
return ((await this.db.deleteFrom("options").where("name", "=", name).executeTakeFirst()).numDeletedRows ?? 0) > 0;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Check if an option exists
|
|
62
|
+
*/
|
|
63
|
+
async exists(name) {
|
|
64
|
+
return !!await this.db.selectFrom("options").select("name").where("name", "=", name).executeTakeFirst();
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get multiple options at once
|
|
68
|
+
*/
|
|
69
|
+
async getMany(names) {
|
|
70
|
+
if (names.length === 0) return /* @__PURE__ */ new Map();
|
|
71
|
+
const rows = await this.db.selectFrom("options").select(["name", "value"]).where("name", "in", names).execute();
|
|
72
|
+
const result = /* @__PURE__ */ new Map();
|
|
73
|
+
for (const row of rows) result.set(row.name, JSON.parse(row.value));
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Set multiple options at once
|
|
78
|
+
*/
|
|
79
|
+
async setMany(options) {
|
|
80
|
+
const entries = Object.entries(options);
|
|
81
|
+
if (entries.length === 0) return;
|
|
82
|
+
for (const [name, value] of entries) await this.set(name, value);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Get all options (use sparingly)
|
|
86
|
+
*/
|
|
87
|
+
async getAll() {
|
|
88
|
+
const rows = await this.db.selectFrom("options").select(["name", "value"]).execute();
|
|
89
|
+
const result = /* @__PURE__ */ new Map();
|
|
90
|
+
for (const row of rows) result.set(row.name, JSON.parse(row.value));
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get all options matching a prefix
|
|
95
|
+
*/
|
|
96
|
+
async getByPrefix(prefix) {
|
|
97
|
+
const pattern = `${escapeLike(prefix)}%`;
|
|
98
|
+
const rows = await this.db.selectFrom("options").select(["name", "value"]).where(sql`name LIKE ${pattern} ESCAPE '\\'`).execute();
|
|
99
|
+
const result = /* @__PURE__ */ new Map();
|
|
100
|
+
for (const row of rows) result.set(row.name, JSON.parse(row.value));
|
|
101
|
+
return result;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Delete all options matching a prefix
|
|
105
|
+
*/
|
|
106
|
+
async deleteByPrefix(prefix) {
|
|
107
|
+
const pattern = `${escapeLike(prefix)}%`;
|
|
108
|
+
const result = await this.db.deleteFrom("options").where(sql`name LIKE ${pattern} ESCAPE '\\'`).executeTakeFirst();
|
|
109
|
+
return Number(result.numDeletedRows ?? 0);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
//#endregion
|
|
114
|
+
export { OptionsRepository as t };
|
package/dist/page/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as PageMetadataContribution, D as PageFragmentContribution, N as PageMetadataLinkRel, P as PagePlacement, q as PublicPageContext, t as BreadcrumbItem } from "../types-
|
|
2
|
-
import { n as SeoSettings } from "../types-
|
|
1
|
+
import { A as PageMetadataContribution, D as PageFragmentContribution, N as PageMetadataLinkRel, P as PagePlacement, q as PublicPageContext, t as BreadcrumbItem } from "../types-DgfUZqcd.mjs";
|
|
2
|
+
import { n as SeoSettings } from "../types-IPACEM14.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/page/context.d.ts
|
|
5
5
|
/** Fields shared by both input forms */
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { t as apiError } from "./error-DEGjx2Xw.mjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
//#region src/api/parse.ts
|
|
5
|
+
/** Maximum allowed JSON request body size (10 MB). */
|
|
6
|
+
const MAX_BODY_SIZE = 10 * 1024 * 1024;
|
|
7
|
+
/**
|
|
8
|
+
* Parse and validate a JSON request body against a Zod schema.
|
|
9
|
+
*
|
|
10
|
+
* Returns the validated data on success, or a 400 Response on failure.
|
|
11
|
+
* Replaces all `(await request.json()) as T` casts.
|
|
12
|
+
*/
|
|
13
|
+
async function parseBody(request, schema) {
|
|
14
|
+
const contentLength = request.headers.get("Content-Length");
|
|
15
|
+
if (contentLength && parseInt(contentLength, 10) > MAX_BODY_SIZE) return apiError("PAYLOAD_TOO_LARGE", "Request body too large", 413);
|
|
16
|
+
let raw;
|
|
17
|
+
try {
|
|
18
|
+
raw = await request.json();
|
|
19
|
+
} catch {
|
|
20
|
+
return apiError("INVALID_JSON", "Request body must be valid JSON", 400);
|
|
21
|
+
}
|
|
22
|
+
return validate(schema, raw);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Parse and validate an optional JSON request body.
|
|
26
|
+
*
|
|
27
|
+
* Returns `defaultValue` if the body is empty, or the validated data if present.
|
|
28
|
+
* For endpoints where the body is optional (e.g., preview-url, confirm).
|
|
29
|
+
*/
|
|
30
|
+
async function parseOptionalBody(request, schema, defaultValue) {
|
|
31
|
+
const contentLength = request.headers.get("Content-Length");
|
|
32
|
+
if (contentLength && parseInt(contentLength, 10) > MAX_BODY_SIZE) return apiError("PAYLOAD_TOO_LARGE", "Request body too large", 413);
|
|
33
|
+
let text;
|
|
34
|
+
try {
|
|
35
|
+
text = await request.text();
|
|
36
|
+
} catch {
|
|
37
|
+
return defaultValue;
|
|
38
|
+
}
|
|
39
|
+
if (!text.trim()) return defaultValue;
|
|
40
|
+
let raw;
|
|
41
|
+
try {
|
|
42
|
+
raw = JSON.parse(text);
|
|
43
|
+
} catch {
|
|
44
|
+
return apiError("INVALID_JSON", "Request body must be valid JSON", 400);
|
|
45
|
+
}
|
|
46
|
+
return validate(schema, raw);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Parse and validate URL search params against a Zod schema.
|
|
50
|
+
*
|
|
51
|
+
* Converts searchParams to a plain object before validation.
|
|
52
|
+
* Zod coercion handles string -> number/boolean conversion.
|
|
53
|
+
* Replaces manual `url.searchParams.get()` + `parseInt()` patterns.
|
|
54
|
+
*/
|
|
55
|
+
function parseQuery(url, schema) {
|
|
56
|
+
const raw = {};
|
|
57
|
+
for (const [key, value] of url.searchParams) raw[key] = value;
|
|
58
|
+
return validate(schema, raw);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Validate raw data against a schema. Returns data or error Response.
|
|
62
|
+
*/
|
|
63
|
+
function validate(schema, data) {
|
|
64
|
+
const result = schema.safeParse(data);
|
|
65
|
+
if (result.success) return result.data;
|
|
66
|
+
const issues = result.error.issues.map((issue) => ({
|
|
67
|
+
path: issue.path.join("."),
|
|
68
|
+
message: issue.message
|
|
69
|
+
}));
|
|
70
|
+
return Response.json({ error: {
|
|
71
|
+
code: "VALIDATION_ERROR",
|
|
72
|
+
message: "Invalid request data",
|
|
73
|
+
details: { issues }
|
|
74
|
+
} }, {
|
|
75
|
+
status: 400,
|
|
76
|
+
headers: { "Cache-Control": "private, no-store" }
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Type guard to check if a ParseResult is an error Response.
|
|
81
|
+
* Usage: `if (isParseError(result)) return result;`
|
|
82
|
+
*/
|
|
83
|
+
function isParseError(result) {
|
|
84
|
+
return result instanceof Response;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
//#endregion
|
|
88
|
+
export { parseQuery as i, parseBody as n, parseOptionalBody as r, isParseError as t };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
//#region src/auth/passkey-config.ts
|
|
2
|
+
/**
|
|
3
|
+
* Get passkey configuration from request URL
|
|
4
|
+
*
|
|
5
|
+
* @param url The request URL (typically `new URL(Astro.request.url)` or `new URL(request.url)`)
|
|
6
|
+
* @param siteName Optional site name for rpName (defaults to hostname from `url` or public origin)
|
|
7
|
+
* @param siteUrl Optional browser-facing origin (see `DinewayConfig.siteUrl`).
|
|
8
|
+
* When set, **origin** and **rpId** are taken from this URL so they match WebAuthn `clientData.origin`.
|
|
9
|
+
* @throws If `siteUrl` is non-empty but not parseable by `new URL()`.
|
|
10
|
+
*/
|
|
11
|
+
function getPasskeyConfig(url, siteName, siteUrl, allowedOrigins) {
|
|
12
|
+
let rpName;
|
|
13
|
+
let rpId;
|
|
14
|
+
let canonicalOrigin;
|
|
15
|
+
if (siteUrl) {
|
|
16
|
+
let publicUrl;
|
|
17
|
+
try {
|
|
18
|
+
publicUrl = new URL(siteUrl);
|
|
19
|
+
} catch (e) {
|
|
20
|
+
throw new Error(`Invalid siteUrl: "${siteUrl}"`, { cause: e });
|
|
21
|
+
}
|
|
22
|
+
rpName = siteName || publicUrl.hostname;
|
|
23
|
+
rpId = publicUrl.hostname;
|
|
24
|
+
canonicalOrigin = publicUrl.origin;
|
|
25
|
+
} else {
|
|
26
|
+
rpName = siteName || url.hostname;
|
|
27
|
+
rpId = url.hostname;
|
|
28
|
+
canonicalOrigin = url.origin;
|
|
29
|
+
}
|
|
30
|
+
const origins = [canonicalOrigin];
|
|
31
|
+
if (allowedOrigins) {
|
|
32
|
+
for (const origin of allowedOrigins) if (origin && !origins.includes(origin)) origins.push(origin);
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
rpName,
|
|
36
|
+
rpId,
|
|
37
|
+
origins
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
//#endregion
|
|
42
|
+
export { getPasskeyConfig as t };
|
|
@@ -21,6 +21,14 @@ const PARAM_PATTERN = /\[(\w+)\]/g;
|
|
|
21
21
|
const SPLAT_PATTERN = /\[\.\.\.(\w+)\]/g;
|
|
22
22
|
/** Combined pattern for validation: matches both [param] and [...splat] */
|
|
23
23
|
const ANY_PLACEHOLDER = /\[(?:\.\.\.)?(\w+)\]/g;
|
|
24
|
+
/** Nested brackets check: [foo[ */
|
|
25
|
+
const NESTED_BRACKETS = /\[[^\]]*\[/;
|
|
26
|
+
/** Empty brackets: [] */
|
|
27
|
+
const EMPTY_BRACKETS = /\[\]/;
|
|
28
|
+
/** Count open brackets */
|
|
29
|
+
const OPEN_BRACKET = /\[/g;
|
|
30
|
+
/** Count close brackets */
|
|
31
|
+
const CLOSE_BRACKET = /\]/g;
|
|
24
32
|
/** Split on capture groups in compiled regex string */
|
|
25
33
|
const CAPTURE_GROUP_SPLIT = /(\([^)]+\))/;
|
|
26
34
|
/** Escape regex-special characters in literal parts */
|
|
@@ -32,6 +40,50 @@ function isPattern(source) {
|
|
|
32
40
|
return source.match(ANY_PLACEHOLDER) !== null;
|
|
33
41
|
}
|
|
34
42
|
/**
|
|
43
|
+
* Validate that a pattern string is well-formed.
|
|
44
|
+
* Returns null if valid, or an error message if invalid.
|
|
45
|
+
*/
|
|
46
|
+
function validatePattern(source) {
|
|
47
|
+
if (!source.startsWith("/")) return "Pattern must start with /";
|
|
48
|
+
if (NESTED_BRACKETS.test(source)) return "Nested brackets are not allowed";
|
|
49
|
+
if (EMPTY_BRACKETS.test(source)) return "Empty brackets are not allowed";
|
|
50
|
+
if ((source.match(OPEN_BRACKET) ?? []).length !== (source.match(CLOSE_BRACKET) ?? []).length) return "Unmatched brackets";
|
|
51
|
+
const segments = source.split("/").filter(Boolean);
|
|
52
|
+
for (let i = 0; i < segments.length; i++) {
|
|
53
|
+
const segment = segments[i];
|
|
54
|
+
if (SPLAT_PATTERN.test(segment) && i !== segments.length - 1) {
|
|
55
|
+
SPLAT_PATTERN.lastIndex = 0;
|
|
56
|
+
return "Catch-all [...param] must be in the last segment";
|
|
57
|
+
}
|
|
58
|
+
SPLAT_PATTERN.lastIndex = 0;
|
|
59
|
+
}
|
|
60
|
+
for (const segment of segments) {
|
|
61
|
+
const placeholders = segment.match(ANY_PLACEHOLDER);
|
|
62
|
+
if (placeholders && placeholders.length > 1) return "Each segment can contain at most one placeholder";
|
|
63
|
+
if (placeholders && placeholders[0] !== segment) return "A placeholder must be the entire segment, not mixed with literal text";
|
|
64
|
+
}
|
|
65
|
+
const names = [];
|
|
66
|
+
for (const m of source.matchAll(ANY_PLACEHOLDER)) {
|
|
67
|
+
const name = m[1];
|
|
68
|
+
if (names.includes(name)) return `Duplicate parameter name: ${name}`;
|
|
69
|
+
names.push(name);
|
|
70
|
+
}
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Validate that all placeholders in a destination exist in the source.
|
|
75
|
+
* Returns null if valid, or an error message if invalid.
|
|
76
|
+
*/
|
|
77
|
+
function validateDestinationParams(source, destination) {
|
|
78
|
+
const sourceNames = /* @__PURE__ */ new Set();
|
|
79
|
+
for (const m of source.matchAll(ANY_PLACEHOLDER)) sourceNames.add(m[1]);
|
|
80
|
+
for (const m of destination.matchAll(ANY_PLACEHOLDER)) {
|
|
81
|
+
const name = m[1];
|
|
82
|
+
if (!sourceNames.has(name)) return `Destination references [${name}] which is not captured in the source pattern`;
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
35
87
|
* Compile a URL pattern into a regex for matching.
|
|
36
88
|
*
|
|
37
89
|
* - `[param]` matches a single path segment (`[^/]+`)
|
|
@@ -89,4 +141,4 @@ function interpolateDestination(destination, params) {
|
|
|
89
141
|
}
|
|
90
142
|
|
|
91
143
|
//#endregion
|
|
92
|
-
export { matchPattern as i, interpolateDestination as n, isPattern as r, compilePattern as t };
|
|
144
|
+
export { validateDestinationParams as a, matchPattern as i, interpolateDestination as n, validatePattern as o, isPattern as r, compilePattern as t };
|
|
@@ -1,131 +1,6 @@
|
|
|
1
1
|
import { encode } from "blurhash";
|
|
2
2
|
import { imageSize } from "image-size";
|
|
3
3
|
|
|
4
|
-
//#region src/media/normalize.ts
|
|
5
|
-
const INTERNAL_MEDIA_PREFIX = "/_dineway/api/media/file/";
|
|
6
|
-
const URL_PATTERN = /^https?:\/\//;
|
|
7
|
-
/**
|
|
8
|
-
* Normalize a media field value into a consistent MediaValue shape.
|
|
9
|
-
*
|
|
10
|
-
* - `null`/`undefined` → `null`
|
|
11
|
-
* - Bare URL string → `{ provider: "external", id: "", src: url }`
|
|
12
|
-
* - Bare internal media URL → resolved via local provider's `get()`
|
|
13
|
-
* - Object with `provider` + `id` → enriched with missing fields from provider
|
|
14
|
-
*/
|
|
15
|
-
async function normalizeMediaValue(value, getProvider) {
|
|
16
|
-
if (value == null) return null;
|
|
17
|
-
if (typeof value === "string") return normalizeStringUrl(value, getProvider);
|
|
18
|
-
if (!isRecord(value)) return null;
|
|
19
|
-
if (!("id" in value) && !("src" in value)) return null;
|
|
20
|
-
const provider = (typeof value.provider === "string" ? value.provider : void 0) || "local";
|
|
21
|
-
const id = typeof value.id === "string" ? value.id : "";
|
|
22
|
-
if (provider === "external") return recordToMediaValue(value);
|
|
23
|
-
const result = {
|
|
24
|
-
...recordToMediaValue(value),
|
|
25
|
-
provider
|
|
26
|
-
};
|
|
27
|
-
if (provider === "local") delete result.src;
|
|
28
|
-
const needsDimensions = result.width == null || result.height == null;
|
|
29
|
-
const needsStorageKey = provider === "local" && !result.meta?.storageKey;
|
|
30
|
-
const needsFileInfo = !result.mimeType || !result.filename;
|
|
31
|
-
if (!(needsDimensions || needsStorageKey || needsFileInfo) || !id) return result;
|
|
32
|
-
const mediaProvider = getProvider(provider);
|
|
33
|
-
if (!mediaProvider?.get) return result;
|
|
34
|
-
let providerItem;
|
|
35
|
-
try {
|
|
36
|
-
providerItem = await mediaProvider.get(id);
|
|
37
|
-
} catch {
|
|
38
|
-
return result;
|
|
39
|
-
}
|
|
40
|
-
if (!providerItem) return result;
|
|
41
|
-
return mergeProviderData(result, providerItem);
|
|
42
|
-
}
|
|
43
|
-
function normalizeStringUrl(url, getProvider) {
|
|
44
|
-
if (url.startsWith(INTERNAL_MEDIA_PREFIX)) return resolveInternalUrl(url, getProvider);
|
|
45
|
-
if (URL_PATTERN.test(url)) return Promise.resolve({
|
|
46
|
-
provider: "external",
|
|
47
|
-
id: "",
|
|
48
|
-
src: url
|
|
49
|
-
});
|
|
50
|
-
return Promise.resolve({
|
|
51
|
-
provider: "external",
|
|
52
|
-
id: "",
|
|
53
|
-
src: url
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
async function resolveInternalUrl(url, getProvider) {
|
|
57
|
-
const storageKey = url.slice(25);
|
|
58
|
-
const localProvider = getProvider("local");
|
|
59
|
-
if (!localProvider?.get) return {
|
|
60
|
-
provider: "external",
|
|
61
|
-
id: "",
|
|
62
|
-
src: url
|
|
63
|
-
};
|
|
64
|
-
let item;
|
|
65
|
-
try {
|
|
66
|
-
item = await localProvider.get(storageKey);
|
|
67
|
-
} catch {
|
|
68
|
-
return {
|
|
69
|
-
provider: "external",
|
|
70
|
-
id: "",
|
|
71
|
-
src: url
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
if (!item) return {
|
|
75
|
-
provider: "external",
|
|
76
|
-
id: "",
|
|
77
|
-
src: url
|
|
78
|
-
};
|
|
79
|
-
return {
|
|
80
|
-
provider: "local",
|
|
81
|
-
id: item.id,
|
|
82
|
-
filename: item.filename,
|
|
83
|
-
mimeType: item.mimeType,
|
|
84
|
-
width: item.width,
|
|
85
|
-
height: item.height,
|
|
86
|
-
alt: item.alt,
|
|
87
|
-
meta: item.meta
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Merge provider data into an existing MediaValue, preserving caller-supplied fields.
|
|
92
|
-
* Caller `alt` takes priority over provider `alt` (per-usage, not per-image).
|
|
93
|
-
*/
|
|
94
|
-
function mergeProviderData(existing, item) {
|
|
95
|
-
const result = { ...existing };
|
|
96
|
-
if (result.width == null && item.width != null) result.width = item.width;
|
|
97
|
-
if (result.height == null && item.height != null) result.height = item.height;
|
|
98
|
-
if (!result.filename && item.filename) result.filename = item.filename;
|
|
99
|
-
if (!result.mimeType && item.mimeType) result.mimeType = item.mimeType;
|
|
100
|
-
if (!result.alt && item.alt) result.alt = item.alt;
|
|
101
|
-
if (item.meta) result.meta = {
|
|
102
|
-
...item.meta,
|
|
103
|
-
...result.meta
|
|
104
|
-
};
|
|
105
|
-
return result;
|
|
106
|
-
}
|
|
107
|
-
function isRecord(value) {
|
|
108
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Extract known MediaValue fields from a runtime-checked record.
|
|
112
|
-
* Avoids unsafe `as MediaValue` cast by reading each property explicitly.
|
|
113
|
-
*/
|
|
114
|
-
function recordToMediaValue(obj) {
|
|
115
|
-
const result = { id: typeof obj.id === "string" ? obj.id : "" };
|
|
116
|
-
if (typeof obj.provider === "string") result.provider = obj.provider;
|
|
117
|
-
if (typeof obj.src === "string") result.src = obj.src;
|
|
118
|
-
if (typeof obj.previewUrl === "string") result.previewUrl = obj.previewUrl;
|
|
119
|
-
if (typeof obj.filename === "string") result.filename = obj.filename;
|
|
120
|
-
if (typeof obj.mimeType === "string") result.mimeType = obj.mimeType;
|
|
121
|
-
if (typeof obj.width === "number") result.width = obj.width;
|
|
122
|
-
if (typeof obj.height === "number") result.height = obj.height;
|
|
123
|
-
if (typeof obj.alt === "string") result.alt = obj.alt;
|
|
124
|
-
if (isRecord(obj.meta)) result.meta = obj.meta;
|
|
125
|
-
return result;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
//#endregion
|
|
129
4
|
//#region src/media/placeholder.ts
|
|
130
5
|
/**
|
|
131
6
|
* Image Placeholder Generation
|
|
@@ -264,4 +139,4 @@ function downsample(src, srcW, srcH, dstW, dstH) {
|
|
|
264
139
|
}
|
|
265
140
|
|
|
266
141
|
//#endregion
|
|
267
|
-
export {
|
|
142
|
+
export { generatePlaceholder as t };
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
import
|
|
3
|
-
import "../
|
|
4
|
-
import
|
|
5
|
-
import "../
|
|
1
|
+
import { n as PluginDescriptor } from "../runtime-C4-7y7xK.mjs";
|
|
2
|
+
import "../types-Du8jreyC.mjs";
|
|
3
|
+
import { X as ResolvedPlugin, tt as StandardPluginDefinition } from "../types-DgfUZqcd.mjs";
|
|
4
|
+
import "../types-D4XVOt01.mjs";
|
|
5
|
+
import "../runner-9eIQXuc2.mjs";
|
|
6
|
+
import "../index-CkljPf5F.mjs";
|
|
7
|
+
import "../bylines-HfUKum_j.mjs";
|
|
8
|
+
import "../types-C982qI5I.mjs";
|
|
9
|
+
import "../validate-JCZihRIa.mjs";
|
|
6
10
|
|
|
7
11
|
//#region src/plugins/adapt-sandbox-entry.d.ts
|
|
8
12
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as PLUGIN_CAPABILITIES, t as HOOK_NAMES } from "../manifest-schema-
|
|
1
|
+
import { n as PLUGIN_CAPABILITIES, t as HOOK_NAMES } from "../manifest-schema-DYoCQ5np.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/plugins/adapt-sandbox-entry.ts
|
|
4
4
|
/**
|
|
@@ -84,9 +84,9 @@ function adaptSandboxEntry(definition, descriptor) {
|
|
|
84
84
|
for (const cap of rawCapabilities) if (!VALID_CAPABILITIES_SET.has(cap)) throw new Error(`Invalid capability "${cap}" in plugin "${pluginId}". Valid capabilities: ${[...VALID_CAPABILITIES_SET].join(", ")}`);
|
|
85
85
|
const capabilities = [...rawCapabilities];
|
|
86
86
|
const allowedHosts = descriptor.allowedHosts ?? [];
|
|
87
|
-
if (capabilities.includes("write
|
|
88
|
-
if (capabilities.includes("write
|
|
89
|
-
if (capabilities.includes("network:
|
|
87
|
+
if (capabilities.includes("content:write") && !capabilities.includes("content:read")) capabilities.push("content:read");
|
|
88
|
+
if (capabilities.includes("media:write") && !capabilities.includes("media:read")) capabilities.push("media:read");
|
|
89
|
+
if (capabilities.includes("network:request:unrestricted") && !capabilities.includes("network:request")) capabilities.push("network:request");
|
|
90
90
|
const rawStorage = descriptor.storage ?? {};
|
|
91
91
|
const storage = {};
|
|
92
92
|
for (const [name, config] of Object.entries(rawStorage)) storage[name] = {
|