dineway 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{allowed-origins-DG86sH8U.mjs → allowed-origins-C1AKK9AT.mjs} +1 -1
- package/dist/api/route-utils.d.mts +10 -9
- package/dist/api/route-utils.mjs +7 -7
- package/dist/api/schemas/index.d.mts +1 -1
- package/dist/api/schemas/index.mjs +2 -2
- package/dist/{api-Cmy8Rjk5.mjs → api-Lyjc8wqZ.mjs} +4 -4
- package/dist/{api-tokens-Bu3ez1MO.mjs → api-tokens-D7UjLbdt.mjs} +1 -1
- package/dist/{apply-Co5imxxT.mjs → apply-Bm5QgdrE.mjs} +5 -5
- package/dist/astro/index.d.mts +11 -10
- package/dist/astro/index.mjs +3 -3
- package/dist/astro/middleware/auth.d.mts +10 -9
- package/dist/astro/middleware/auth.mjs +5 -5
- package/dist/astro/middleware/request-context.mjs +2 -2
- package/dist/astro/middleware/setup.mjs +1 -1
- package/dist/astro/middleware.mjs +42 -40
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +4 -4
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +4 -4
- package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +4 -4
- package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -6
- package/dist/astro/routes/api/admin/briefing.mjs +7 -7
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +6 -6
- package/dist/astro/routes/api/admin/bylines/index.mjs +6 -6
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +8 -8
- package/dist/astro/routes/api/admin/comments/_id_.mjs +3 -3
- package/dist/astro/routes/api/admin/comments/bulk.mjs +6 -6
- package/dist/astro/routes/api/admin/comments/counts.mjs +3 -3
- package/dist/astro/routes/api/admin/comments/index.mjs +6 -6
- package/dist/astro/routes/api/admin/context/_id_/history.mjs +11 -10
- package/dist/astro/routes/api/admin/context/_id_/index.mjs +11 -10
- package/dist/astro/routes/api/admin/context/_id_/review.mjs +15 -14
- package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +15 -14
- package/dist/astro/routes/api/admin/context/diff.mjs +14 -13
- package/dist/astro/routes/api/admin/context/index.mjs +15 -14
- package/dist/astro/routes/api/admin/context/stale.mjs +14 -13
- package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +11 -10
- package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +14 -13
- package/dist/astro/routes/api/admin/hitl-requests/index.mjs +14 -13
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +12 -11
- package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +2 -2
- package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +24 -23
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +24 -23
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +18 -17
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +23 -22
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +23 -22
- package/dist/astro/routes/api/admin/plugins/index.mjs +18 -17
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +2 -2
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +18 -17
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +23 -22
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +18 -17
- package/dist/astro/routes/api/admin/plugins/updates.mjs +18 -17
- package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +2 -2
- package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +13 -12
- package/dist/astro/routes/api/admin/review-requests/index.mjs +5 -5
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +18 -17
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +2 -2
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +18 -17
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs +1 -1
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs +1 -1
- package/dist/astro/routes/api/admin/users/_id_/index.mjs +4 -4
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +2 -2
- package/dist/astro/routes/api/admin/users/index.mjs +4 -4
- package/dist/astro/routes/api/auth/dev-bypass.mjs +3 -3
- package/dist/astro/routes/api/auth/invite/accept.mjs +1 -1
- package/dist/astro/routes/api/auth/invite/complete.mjs +8 -8
- package/dist/astro/routes/api/auth/invite/index.mjs +5 -5
- package/dist/astro/routes/api/auth/invite/register-options.mjs +7 -7
- package/dist/astro/routes/api/auth/logout.mjs +2 -2
- package/dist/astro/routes/api/auth/magic-link/send.mjs +7 -7
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +2 -2
- package/dist/astro/routes/api/auth/me.mjs +4 -4
- package/dist/astro/routes/api/auth/mode.mjs +1 -1
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +2 -2
- package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
- package/dist/astro/routes/api/auth/passkey/_id_.mjs +4 -4
- package/dist/astro/routes/api/auth/passkey/index.mjs +1 -1
- package/dist/astro/routes/api/auth/passkey/options.mjs +9 -9
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +7 -7
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +8 -8
- package/dist/astro/routes/api/auth/passkey/verify.mjs +8 -8
- package/dist/astro/routes/api/auth/signup/complete.mjs +8 -8
- package/dist/astro/routes/api/auth/signup/request.mjs +7 -7
- package/dist/astro/routes/api/auth/signup/verify.mjs +1 -1
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +9 -9
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +3 -3
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +3 -3
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +3 -3
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +8 -8
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +13 -12
- package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +3 -3
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +6 -6
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +6 -6
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +3 -3
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +6 -6
- package/dist/astro/routes/api/content/_collection_/index.mjs +6 -6
- package/dist/astro/routes/api/content/_collection_/trash.mjs +5 -5
- package/dist/astro/routes/api/dashboard.mjs +2 -2
- package/dist/astro/routes/api/dev/emails.mjs +2 -2
- package/dist/astro/routes/api/health.mjs +1 -1
- package/dist/astro/routes/api/import/probe.d.mts +3 -3
- package/dist/astro/routes/api/import/probe.mjs +8 -8
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +3 -3
- package/dist/astro/routes/api/import/wordpress/execute.mjs +12 -11
- package/dist/astro/routes/api/import/wordpress/media.mjs +6 -6
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +15 -14
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +14 -13
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +8 -8
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +16 -15
- package/dist/astro/routes/api/manifest.mjs +4 -4
- package/dist/astro/routes/api/mcp.mjs +22 -21
- package/dist/astro/routes/api/media/_id_/confirm.mjs +5 -5
- package/dist/astro/routes/api/media/_id_.mjs +5 -5
- package/dist/astro/routes/api/media/file/_...key_.mjs +1 -1
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +2 -2
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +2 -2
- package/dist/astro/routes/api/media/providers/index.mjs +2 -2
- package/dist/astro/routes/api/media/upload-url.mjs +5 -5
- package/dist/astro/routes/api/media.mjs +5 -5
- package/dist/astro/routes/api/menus/_name_/items.mjs +15 -14
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +15 -14
- package/dist/astro/routes/api/menus/_name_.mjs +15 -14
- package/dist/astro/routes/api/menus/index.mjs +15 -14
- package/dist/astro/routes/api/oauth/authorize.mjs +7 -7
- package/dist/astro/routes/api/oauth/device/authorize.mjs +6 -6
- package/dist/astro/routes/api/oauth/device/code.mjs +9 -9
- package/dist/astro/routes/api/oauth/device/token.mjs +8 -8
- package/dist/astro/routes/api/oauth/register.mjs +4 -4
- package/dist/astro/routes/api/oauth/token/refresh.mjs +6 -6
- package/dist/astro/routes/api/oauth/token/revoke.mjs +6 -6
- package/dist/astro/routes/api/oauth/token.mjs +6 -6
- package/dist/astro/routes/api/openapi.json.mjs +3 -3
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +3 -3
- package/dist/astro/routes/api/redirects/404s/index.mjs +6 -6
- package/dist/astro/routes/api/redirects/404s/summary.mjs +6 -6
- package/dist/astro/routes/api/redirects/_id_.mjs +15 -14
- package/dist/astro/routes/api/redirects/index.mjs +15 -14
- package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +2 -2
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +2 -2
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +19 -18
- package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +19 -18
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +19 -18
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +19 -18
- package/dist/astro/routes/api/schema/collections/index.mjs +19 -18
- package/dist/astro/routes/api/schema/index.mjs +2 -2
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +18 -17
- package/dist/astro/routes/api/schema/orphans/index.mjs +18 -17
- package/dist/astro/routes/api/search/enable.mjs +6 -6
- package/dist/astro/routes/api/search/index.mjs +5 -5
- package/dist/astro/routes/api/search/rebuild.mjs +6 -6
- package/dist/astro/routes/api/search/stats.mjs +3 -3
- package/dist/astro/routes/api/search/suggest.mjs +5 -5
- package/dist/astro/routes/api/sections/_slug_.mjs +15 -14
- package/dist/astro/routes/api/sections/index.mjs +15 -14
- package/dist/astro/routes/api/settings/email.mjs +3 -3
- package/dist/astro/routes/api/settings.mjs +15 -14
- package/dist/astro/routes/api/setup/admin-verify.mjs +10 -10
- package/dist/astro/routes/api/setup/admin.mjs +8 -8
- package/dist/astro/routes/api/setup/dev-bypass.mjs +11 -11
- package/dist/astro/routes/api/setup/dev-reset.mjs +1 -1
- package/dist/astro/routes/api/setup/index.mjs +11 -11
- package/dist/astro/routes/api/setup/status.mjs +3 -3
- package/dist/astro/routes/api/snapshot.mjs +5 -5
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +16 -15
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +16 -15
- package/dist/astro/routes/api/taxonomies/index.mjs +16 -15
- package/dist/astro/routes/api/themes/preview.mjs +4 -4
- package/dist/astro/routes/api/typegen.mjs +1 -1
- package/dist/astro/routes/api/well-known/auth.mjs +2 -2
- package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +3 -3
- package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +3 -3
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +14 -13
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +15 -14
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +15 -14
- package/dist/astro/routes/api/widget-areas/_name_.mjs +13 -12
- package/dist/astro/routes/api/widget-areas/index.mjs +15 -14
- package/dist/astro/routes/api/widget-components.mjs +2 -2
- package/dist/astro/routes/robots.txt.mjs +2 -2
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +2 -2
- package/dist/astro/routes/sitemap.xml.mjs +3 -3
- package/dist/astro/types.d.mts +13 -12
- package/dist/auth/providers/github.d.mts +1 -1
- package/dist/auth/providers/google.d.mts +1 -1
- package/dist/{auth-control-guard-DKUe_1oa.mjs → auth-control-guard-DOZ3UCsP.mjs} +1 -1
- package/dist/{authorize-BBj8C6Y8.mjs → authorize-BAdbMCwC.mjs} +1 -1
- package/dist/{briefing-BrXCuMEE.mjs → briefing-MVYe_Uyf.mjs} +1 -1
- package/dist/{briefing-ClWw4mc9.mjs → briefing-rty4O-wa.mjs} +1 -1
- package/dist/{bylines-BcOPh6Ej.mjs → bylines-C4LIBOOO.mjs} +1 -1
- package/dist/{bylines-HfUKum_j.d.mts → bylines-DCvz5gtm.d.mts} +13 -13
- package/dist/cli/index.mjs +7 -7
- package/dist/client/external-auth-headers.d.mts +1 -1
- package/dist/client/index.d.mts +1 -1
- package/dist/client/index.mjs +1 -1
- package/dist/{context-nxMyOe3p.mjs → context-CNIkMzot.mjs} +2 -2
- package/dist/{context-bE5Kyvcj.mjs → context-DNfcm853.mjs} +2 -2
- package/dist/{context-route-helpers-D-6uCQ0S.mjs → context-route-helpers-MurhoxWF.mjs} +1 -1
- package/dist/db/index.d.mts +3 -3
- package/dist/db/libsql.d.mts +1 -1
- package/dist/db/postgres.d.mts +1 -1
- package/dist/db/sqlite.d.mts +1 -1
- package/dist/{device-flow-7AhWNwCK.mjs → device-flow-BGEH5jfn.mjs} +4 -4
- package/dist/{hitl-requests-Bx3Bkk9l.mjs → hitl-requests-ChT32Ilo.mjs} +2 -2
- package/dist/{hitl-route-helpers-DMmJRS7B.mjs → hitl-route-helpers-CSit54Ru.mjs} +4 -4
- package/dist/{import-DVZcYlDp.mjs → import-BHRLhXAn.mjs} +2 -2
- package/dist/{import-DD3f2jkc.mjs → import-CNcKWTbp.mjs} +1 -1
- package/dist/{index-CkljPf5F.d.mts → index-CYfhYgXd.d.mts} +2 -2
- package/dist/index-EUAWaIxW.d.mts +835 -0
- package/dist/index.d.mts +16 -14
- package/dist/index.mjs +35 -32
- package/dist/jsonld-D2gUY4kA.d.mts +141 -0
- package/dist/media/index.d.mts +2 -1
- package/dist/media/local-runtime.d.mts +12 -11
- package/dist/menus-DYW_UHjv.mjs +256 -0
- package/dist/{oauth-authorization-C1qiw4hd.mjs → oauth-authorization-DxGjiWKL.mjs} +4 -4
- package/dist/{oauth-clients-CvWatf5p.mjs → oauth-clients-DxO_NO7k.mjs} +2 -2
- package/dist/page/index.d.mts +2 -139
- package/dist/page/index.mjs +1 -427
- package/dist/{parse-BeQXIt1U.mjs → parse-C9106ehs.mjs} +1 -1
- package/dist/placeholder-Bh1dfUOd.d.mts +40 -0
- package/dist/plugins/adapt-sandbox-entry.d.mts +10 -9
- package/dist/plugins/adapt-sandbox-entry.mjs +1 -1
- package/dist/{menus-CrzHokKj.mjs → plugins-D7-ILNib.mjs} +4 -257
- package/dist/{preview-C_4DyVox.mjs → preview-DvYRU-Oy.mjs} +2 -2
- package/dist/provider-loader-BiQ6lNmf.d.mts +20 -0
- package/dist/provider-loader-C21b9OpH.mjs +36 -0
- package/dist/{query-RiobVwB5.mjs → query-B9BO5goQ.mjs} +3 -3
- package/dist/{schema-BNpI53of.mjs → query-CsbOywSY.mjs} +1 -6
- package/dist/{rate-limit-CbJoj_fT.mjs → rate-limit-DmVTHI5v.mjs} +2 -2
- package/dist/{redirects-CqaxraTO.mjs → redirects-lrlmYXVE.mjs} +2 -49
- package/dist/{request-meta-Bd0mQfiS.mjs → request-meta-DixlNKKa.mjs} +1 -1
- package/dist/{runner-9eIQXuc2.d.mts → runner-BU6Lo1ZS.d.mts} +1 -1
- package/dist/{runtime-C4-7y7xK.d.mts → runtime-QuuFSlc6.d.mts} +104 -932
- package/dist/runtime.d.mts +11 -28
- package/dist/runtime.mjs +1 -35
- package/dist/schema-BECjUhP8.mjs +8 -0
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +6 -6
- package/dist/seo/index.d.mts +1 -1
- package/dist/seo-contributions-B1fWCnqY.mjs +429 -0
- package/dist/{service-CSfcQguB.mjs → service-CyOsm0R6.mjs} +1 -1
- package/dist/{settings-4XnpVMOS.mjs → settings-DGtLLSaz.mjs} +15 -1
- package/dist/{settings-Bw93cLfe.mjs → settings-Dzgswvg4.mjs} +1 -1
- package/dist/{site-context-Bpu_Paur.mjs → site-context-WBxoD99D.mjs} +6 -6
- package/dist/storage/local.d.mts +1 -1
- package/dist/storage/local.mjs +1 -1
- package/dist/storage/s3.d.mts +1 -1
- package/dist/storage/s3.mjs +1 -1
- package/dist/{taxonomies-BvBgfzn3.mjs → taxonomies-D2aZGuns.mjs} +2 -2
- package/dist/{taxonomies-CpqGcIJD.mjs → taxonomies-z6Lz91BC.mjs} +1 -1
- package/dist/{placeholder-CHkLckzK.d.mts → types-OPs5Q_sX.d.mts} +1 -38
- package/dist/{types-DgfUZqcd.d.mts → types-Q616b2Hn.d.mts} +1 -1
- 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/{validate-JCZihRIa.d.mts → validate-BwmQEbu8.d.mts} +3 -3
- package/dist/version-C5JkNvmb.mjs +6 -0
- package/dist/{widgets-B7Q_7bxN.mjs → widgets-B7DRpZvy.mjs} +1 -1
- package/package.json +19 -5
- 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 +9 -7
- package/src/components/DinewayImage.astro +6 -4
- package/src/components/DinewayMedia.astro +7 -4
- package/src/components/Embed.astro +1 -2
- package/src/components/File.astro +1 -1
- package/src/components/Gallery.astro +1 -1
- package/src/components/HtmlBlock.astro +1 -1
- package/src/components/Image.astro +5 -3
- package/src/components/InlinePortableTextEditor.tsx +1 -2
- 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/version-DH53KCQd.mjs +0 -6
- /package/dist/{activity-events-BsMaXdJa.mjs → activity-events-B4wp7CrU.mjs} +0 -0
- /package/dist/{adapters-BLDldpJg.d.mts → adapters-DuLQZhRY.d.mts} +0 -0
- /package/dist/{api-tokens-DzloJxuh.mjs → api-tokens-CPjC3zf8.mjs} +0 -0
- /package/dist/{challenge-store-DHMgBGOq.mjs → challenge-store-DDTbisbf.mjs} +0 -0
- /package/dist/{comments-Gy3zLBaP.mjs → comments--BsZ9pqA.mjs} +0 -0
- /package/dist/{components-DND2rd3D.mjs → components-BPknylYg.mjs} +0 -0
- /package/dist/{cron-DGzVTtJp.mjs → cron-CKxvBrRT.mjs} +0 -0
- /package/dist/{db-errors-DKUg_NgF.mjs → db-errors-DyZkswzF.mjs} +0 -0
- /package/dist/{default-C3PZN-bz.mjs → default-D4ngTpW8.mjs} +0 -0
- /package/dist/{email-console-CgLVZbcn.mjs → email-console-CuefUXfX.mjs} +0 -0
- /package/dist/{error-DEGjx2Xw.mjs → error-BMUPwxgx.mjs} +0 -0
- /package/dist/{escape-mNZr4t2A.mjs → escape-BRVaw1Ai.mjs} +0 -0
- /package/dist/{experimental-workflows-DldxJlqV.mjs → experimental-workflows-C9X7yblQ.mjs} +0 -0
- /package/dist/{load-D-9NhLmF.mjs → load-B2XtDw__.mjs} +0 -0
- /package/dist/{manifest-schema-DYoCQ5np.mjs → manifest-schema-CgFJAp0H.mjs} +0 -0
- /package/dist/{menus-BacxVCCo.mjs → menus-DS3_5nWY.mjs} +0 -0
- /package/dist/{mode-C80mAZQv.mjs → mode-DUhxwUhv.mjs} +0 -0
- /package/dist/{oauth-state-store-hSdzxsEe.mjs → oauth-state-store-C5UFhzwD.mjs} +0 -0
- /package/dist/{oauth-user-lookup-B4OcmsLV.mjs → oauth-user-lookup-Bi0ek9eM.mjs} +0 -0
- /package/dist/{passkey-config-Daqs5fjq.mjs → passkey-config-BRSZx4pW.mjs} +0 -0
- /package/dist/{public-url-BB_umF5G.mjs → public-url-Cun8N3NU.mjs} +0 -0
- /package/dist/{redirect-ClSmMOtC.mjs → redirect-COZy-3iY.mjs} +0 -0
- /package/dist/{redirects-B69T59hK.mjs → redirects-Cgi_cZfN.mjs} +0 -0
- /package/dist/{search-DM6CVti3.mjs → search-DqTHQqtV.mjs} +0 -0
- /package/dist/{secrets-dI8zzTV7.mjs → secrets-CkoJ9zN0.mjs} +0 -0
- /package/dist/{sections-DZFyAQXd.mjs → sections-B61OxnfB.mjs} +0 -0
- /package/dist/{seo-BBgTCOYU.mjs → seo-C007Luwn.mjs} +0 -0
- /package/dist/{setup-complete-DidsDQ1e.mjs → setup-complete-ChilE-da.mjs} +0 -0
- /package/dist/{setup-nonce-pml1PMKo.mjs → setup-nonce-BpmLXAuu.mjs} +0 -0
- /package/dist/{sidecar-client-vzwV98K4.mjs → sidecar-client-B1C6Cf80.mjs} +0 -0
- /package/dist/{site-url-CYIcO0Tj.mjs → site-url-BP7k7OCe.mjs} +0 -0
- /package/dist/{ssrf-CmM76lLV.mjs → ssrf-DDwRxF6B.mjs} +0 -0
- /package/dist/{tokens-DLTo4dO2.mjs → tokens-BOJw-D9F.mjs} +0 -0
- /package/dist/{transport-6RefuBdV.d.mts → transport-BXe1AM79.d.mts} +0 -0
- /package/dist/{transport-C9e_h-BF.mjs → transport-D3i4yWRE.mjs} +0 -0
- /package/dist/{trusted-proxy-Bi0Cuk5n.mjs → trusted-proxy-BbaZfkT9.mjs} +0 -0
- /package/dist/{types-C982qI5I.d.mts → types-0Vr68fc2.d.mts} +0 -0
- /package/dist/{types-B9qVtiHb.d.mts → types-B7kpsMJ3.d.mts} +0 -0
- /package/dist/{types-D4XVOt01.d.mts → types-BFmjniC2.d.mts} +0 -0
- /package/dist/{types-IPACEM14.d.mts → types-C0mmVRJN.d.mts} +0 -0
- /package/dist/{types-Djdp0cZO.d.mts → types-DJlpx5Ay.d.mts} +0 -0
- /package/dist/{types-Du8jreyC.d.mts → types-DZPw8Rru.d.mts} +0 -0
- /package/dist/{types-B9gKVOHk.mjs → types-fAInWQDO.mjs} +0 -0
- /package/dist/{utils-D2in-zwy.mjs → utils-C0ONdBul.mjs} +0 -0
- /package/dist/{validate-BJgA6TW_.mjs → validate-C7TzfamJ.mjs} +0 -0
- /package/dist/{wordpress-slugs-BevajWrC.mjs → wordpress-slugs-CnporCYH.mjs} +0 -0
package/dist/runtime.d.mts
CHANGED
|
@@ -1,29 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./types-
|
|
3
|
-
import "./types-
|
|
4
|
-
import "./types-
|
|
5
|
-
import
|
|
6
|
-
import "./
|
|
7
|
-
import "./index-
|
|
8
|
-
import "./bylines-
|
|
9
|
-
import "./types-
|
|
10
|
-
import "./validate-
|
|
11
|
-
|
|
12
|
-
//#region src/media/provider-loader.d.ts
|
|
13
|
-
/**
|
|
14
|
-
* Get a media provider by ID.
|
|
15
|
-
*
|
|
16
|
-
* Used by DinewayMedia component for frontend rendering.
|
|
17
|
-
* Providers are lazy-loaded from virtual module and cached.
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```ts
|
|
21
|
-
* const provider = await getMediaProvider("image-cdn");
|
|
22
|
-
* if (provider) {
|
|
23
|
-
* const embed = provider.getEmbed(mediaValue, { width: 800 });
|
|
24
|
-
* }
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
declare function getMediaProvider(providerId: string): Promise<MediaProvider | undefined>;
|
|
28
|
-
//#endregion
|
|
1
|
+
import { ct as CollectionFilter, dt as dinewayLoader, ft as getDb, lt as EntryData, ut as EntryFilter } from "./runtime-QuuFSlc6.mjs";
|
|
2
|
+
import "./types-DZPw8Rru.mjs";
|
|
3
|
+
import "./types-Q616b2Hn.mjs";
|
|
4
|
+
import "./types-BFmjniC2.mjs";
|
|
5
|
+
import "./runner-BU6Lo1ZS.mjs";
|
|
6
|
+
import "./index-EUAWaIxW.mjs";
|
|
7
|
+
import "./index-CYfhYgXd.mjs";
|
|
8
|
+
import "./bylines-DCvz5gtm.mjs";
|
|
9
|
+
import "./types-0Vr68fc2.mjs";
|
|
10
|
+
import "./validate-BwmQEbu8.mjs";
|
|
11
|
+
import { t as getMediaProvider } from "./provider-loader-BiQ6lNmf.mjs";
|
|
29
12
|
export { type CollectionFilter, type EntryData, type EntryFilter, dinewayLoader, getDb, getMediaProvider };
|
package/dist/runtime.mjs
CHANGED
|
@@ -2,40 +2,6 @@ import "./dialect-helpers-DhTzaUxP.mjs";
|
|
|
2
2
|
import "./base64-Cz-aU0X1.mjs";
|
|
3
3
|
import "./types-Bs6lTBBW.mjs";
|
|
4
4
|
import { n as dinewayLoader, r as getDb } from "./loader-PZnPxFLc.mjs";
|
|
5
|
+
import { t as getMediaProvider } from "./provider-loader-C21b9OpH.mjs";
|
|
5
6
|
|
|
6
|
-
//#region src/media/provider-loader.ts
|
|
7
|
-
let virtualMediaProviders;
|
|
8
|
-
const mediaProviderInstances = /* @__PURE__ */ new Map();
|
|
9
|
-
/**
|
|
10
|
-
* Load media providers from virtual module
|
|
11
|
-
*/
|
|
12
|
-
async function loadMediaProviders() {
|
|
13
|
-
if (virtualMediaProviders === void 0) virtualMediaProviders = (await import("virtual:dineway/media-providers")).mediaProviders || [];
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Get a media provider by ID.
|
|
17
|
-
*
|
|
18
|
-
* Used by DinewayMedia component for frontend rendering.
|
|
19
|
-
* Providers are lazy-loaded from virtual module and cached.
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```ts
|
|
23
|
-
* const provider = await getMediaProvider("image-cdn");
|
|
24
|
-
* if (provider) {
|
|
25
|
-
* const embed = provider.getEmbed(mediaValue, { width: 800 });
|
|
26
|
-
* }
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
async function getMediaProvider(providerId) {
|
|
30
|
-
const cached = mediaProviderInstances.get(providerId);
|
|
31
|
-
if (cached) return cached;
|
|
32
|
-
await loadMediaProviders();
|
|
33
|
-
const entry = virtualMediaProviders?.find((p) => p.id === providerId);
|
|
34
|
-
if (!entry) return;
|
|
35
|
-
const provider = entry.createProvider({});
|
|
36
|
-
mediaProviderInstances.set(providerId, provider);
|
|
37
|
-
return provider;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
//#endregion
|
|
41
7
|
export { dinewayLoader, getDb, getMediaProvider };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { t as __exportAll } from "./chunk-ClPoSABd.mjs";
|
|
2
|
+
import { n as SchemaRegistry } from "./registry-C-_hxLqa.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/schema/index.ts
|
|
5
|
+
var schema_exports = /* @__PURE__ */ __exportAll({ SchemaRegistry: () => SchemaRegistry });
|
|
6
|
+
|
|
7
|
+
//#endregion
|
|
8
|
+
export { schema_exports as t };
|
package/dist/seed/index.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import "../types-
|
|
2
|
-
import { _ as SeedTaxonomyTerm, a as applySeed, b as ValidationResult, c as SeedCollection, d as SeedFile, f as SeedMenu, g as SeedTaxonomy, h as SeedSection, i as defaultSeed, l as SeedContentEntry, m as SeedRedirect, n as loadSeed, o as SeedApplyOptions, p as SeedMenuItem, r as loadUserSeed, s as SeedApplyResult, t as validateSeed, u as SeedField, v as SeedWidget, y as SeedWidgetArea } from "../validate-
|
|
1
|
+
import "../types-DZPw8Rru.mjs";
|
|
2
|
+
import { _ as SeedTaxonomyTerm, a as applySeed, b as ValidationResult, c as SeedCollection, d as SeedFile, f as SeedMenu, g as SeedTaxonomy, h as SeedSection, i as defaultSeed, l as SeedContentEntry, m as SeedRedirect, n as loadSeed, o as SeedApplyOptions, p as SeedMenuItem, r as loadUserSeed, s as SeedApplyResult, t as validateSeed, u as SeedField, v as SeedWidget, y as SeedWidgetArea } from "../validate-BwmQEbu8.mjs";
|
|
3
3
|
export { type SeedApplyOptions, type SeedApplyResult, type SeedCollection, type SeedContentEntry, type SeedField, type SeedFile, type SeedMenu, type SeedMenuItem, type SeedRedirect, type SeedSection, type SeedTaxonomy, type SeedTaxonomyTerm, type SeedWidget, type SeedWidgetArea, type ValidationResult, applySeed, defaultSeed, loadSeed, loadUserSeed, validateSeed };
|
package/dist/seed/index.mjs
CHANGED
|
@@ -10,12 +10,12 @@ import "../byline-naZxOPSa.mjs";
|
|
|
10
10
|
import "../fts-manager-B1pTNEG_.mjs";
|
|
11
11
|
import "../registry-C-_hxLqa.mjs";
|
|
12
12
|
import "../loader-PZnPxFLc.mjs";
|
|
13
|
-
import "../settings-
|
|
13
|
+
import "../settings-DGtLLSaz.mjs";
|
|
14
14
|
import "../request-cache-DHMRr2Lf.mjs";
|
|
15
|
-
import "../ssrf-
|
|
16
|
-
import { t as validateSeed } from "../validate-
|
|
17
|
-
import { t as applySeed } from "../apply-
|
|
18
|
-
import { t as defaultSeed } from "../default-
|
|
19
|
-
import { n as loadUserSeed, t as loadSeed } from "../load-
|
|
15
|
+
import "../ssrf-DDwRxF6B.mjs";
|
|
16
|
+
import { t as validateSeed } from "../validate-C7TzfamJ.mjs";
|
|
17
|
+
import { t as applySeed } from "../apply-Bm5QgdrE.mjs";
|
|
18
|
+
import { t as defaultSeed } from "../default-D4ngTpW8.mjs";
|
|
19
|
+
import { n as loadUserSeed, t as loadSeed } from "../load-B2XtDw__.mjs";
|
|
20
20
|
|
|
21
21
|
export { applySeed, defaultSeed, loadSeed, loadUserSeed, validateSeed };
|
package/dist/seo/index.d.mts
CHANGED
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
//#region src/page/context.ts
|
|
2
|
+
function isAstroInput(input) {
|
|
3
|
+
return "Astro" in input;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Build a PublicPageContext from template input.
|
|
7
|
+
*/
|
|
8
|
+
function createPublicPageContext(input) {
|
|
9
|
+
let url;
|
|
10
|
+
let path;
|
|
11
|
+
let locale;
|
|
12
|
+
if (isAstroInput(input)) {
|
|
13
|
+
url = input.Astro.url.href;
|
|
14
|
+
path = input.Astro.url.pathname;
|
|
15
|
+
locale = input.Astro.currentLocale ?? null;
|
|
16
|
+
} else {
|
|
17
|
+
const parsed = typeof input.url === "string" ? new URL(input.url) : input.url;
|
|
18
|
+
url = parsed.href;
|
|
19
|
+
path = parsed.pathname;
|
|
20
|
+
locale = input.locale ?? null;
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
url,
|
|
24
|
+
path,
|
|
25
|
+
locale,
|
|
26
|
+
kind: input.kind,
|
|
27
|
+
pageType: input.pageType ?? (input.kind === "content" ? "article" : "website"),
|
|
28
|
+
title: input.title ?? null,
|
|
29
|
+
pageTitle: input.pageTitle ?? null,
|
|
30
|
+
description: input.description ?? null,
|
|
31
|
+
canonical: input.canonical ?? null,
|
|
32
|
+
image: input.image ?? null,
|
|
33
|
+
content: input.content ? {
|
|
34
|
+
collection: input.content.collection,
|
|
35
|
+
id: input.content.id,
|
|
36
|
+
slug: input.content.slug ?? null
|
|
37
|
+
} : void 0,
|
|
38
|
+
seo: input.seo,
|
|
39
|
+
articleMeta: input.articleMeta,
|
|
40
|
+
siteName: input.siteName,
|
|
41
|
+
breadcrumbs: input.breadcrumbs,
|
|
42
|
+
siteUrl: input.siteUrl
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
//#endregion
|
|
47
|
+
//#region src/page/metadata.ts
|
|
48
|
+
/** Schemes safe for use in link href attributes */
|
|
49
|
+
const SAFE_HREF_RE = /^(https?|at):\/\//i;
|
|
50
|
+
const HTML_ESCAPE_MAP = {
|
|
51
|
+
"&": "&",
|
|
52
|
+
"<": "<",
|
|
53
|
+
">": ">",
|
|
54
|
+
"\"": """,
|
|
55
|
+
"'": "'"
|
|
56
|
+
};
|
|
57
|
+
const HTML_ESCAPE_RE = /[&<>"']/g;
|
|
58
|
+
/** Escape a string for safe use in an HTML attribute value */
|
|
59
|
+
function escapeHtmlAttr(value) {
|
|
60
|
+
return value.replace(HTML_ESCAPE_RE, (ch) => HTML_ESCAPE_MAP[ch] ?? ch);
|
|
61
|
+
}
|
|
62
|
+
/** Validate that a URL uses a safe scheme (http, https, at) */
|
|
63
|
+
function isSafeHref(url) {
|
|
64
|
+
return SAFE_HREF_RE.test(url);
|
|
65
|
+
}
|
|
66
|
+
const JSONLD_LT_RE = /</g;
|
|
67
|
+
const JSONLD_GT_RE = />/g;
|
|
68
|
+
const JSONLD_U2028_RE = /\u2028/g;
|
|
69
|
+
const JSONLD_U2029_RE = /\u2029/g;
|
|
70
|
+
/**
|
|
71
|
+
* Safely serialize a value for embedding in a <script type="application/ld+json"> tag.
|
|
72
|
+
*
|
|
73
|
+
* Plain JSON.stringify is not sufficient because:
|
|
74
|
+
* - "<\/script>" in a nested string breaks out of the script tag
|
|
75
|
+
* - "<!--" can open an HTML comment
|
|
76
|
+
* - U+2028/U+2029 are line terminators in some JS engines
|
|
77
|
+
*/
|
|
78
|
+
function safeJsonLdSerialize(value) {
|
|
79
|
+
return JSON.stringify(value).replace(JSONLD_LT_RE, "\\u003c").replace(JSONLD_GT_RE, "\\u003e").replace(JSONLD_U2028_RE, "\\u2028").replace(JSONLD_U2029_RE, "\\u2029");
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Resolve a flat list of contributions into deduplicated metadata.
|
|
83
|
+
* First contribution wins for any given dedupe key.
|
|
84
|
+
*/
|
|
85
|
+
function resolvePageMetadata(contributions) {
|
|
86
|
+
const result = {
|
|
87
|
+
meta: [],
|
|
88
|
+
properties: [],
|
|
89
|
+
links: [],
|
|
90
|
+
jsonld: []
|
|
91
|
+
};
|
|
92
|
+
const seenMeta = /* @__PURE__ */ new Set();
|
|
93
|
+
const seenProperties = /* @__PURE__ */ new Set();
|
|
94
|
+
const seenLinks = /* @__PURE__ */ new Set();
|
|
95
|
+
const seenJsonLd = /* @__PURE__ */ new Set();
|
|
96
|
+
for (const c of contributions) switch (c.kind) {
|
|
97
|
+
case "meta": {
|
|
98
|
+
const dedupeKey = c.key ?? c.name;
|
|
99
|
+
if (seenMeta.has(dedupeKey)) continue;
|
|
100
|
+
seenMeta.add(dedupeKey);
|
|
101
|
+
result.meta.push({
|
|
102
|
+
name: c.name,
|
|
103
|
+
content: c.content
|
|
104
|
+
});
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
case "property": {
|
|
108
|
+
const dedupeKey = c.key ?? c.property;
|
|
109
|
+
if (seenProperties.has(dedupeKey)) continue;
|
|
110
|
+
seenProperties.add(dedupeKey);
|
|
111
|
+
result.properties.push({
|
|
112
|
+
property: c.property,
|
|
113
|
+
content: c.content
|
|
114
|
+
});
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
case "link":
|
|
118
|
+
if (!isSafeHref(c.href)) {
|
|
119
|
+
if (import.meta.env?.DEV) console.warn(`[page:metadata] Rejected link contribution with unsafe href scheme: ${c.href}`);
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
if (c.rel === "canonical") {
|
|
123
|
+
if (seenLinks.has("canonical")) continue;
|
|
124
|
+
seenLinks.add("canonical");
|
|
125
|
+
} else {
|
|
126
|
+
const dedupeKey = c.key ?? c.hreflang ?? c.href;
|
|
127
|
+
if (seenLinks.has(dedupeKey)) continue;
|
|
128
|
+
seenLinks.add(dedupeKey);
|
|
129
|
+
}
|
|
130
|
+
result.links.push({
|
|
131
|
+
rel: c.rel,
|
|
132
|
+
href: c.href,
|
|
133
|
+
...c.hreflang && { hreflang: c.hreflang }
|
|
134
|
+
});
|
|
135
|
+
break;
|
|
136
|
+
case "jsonld":
|
|
137
|
+
if (c.id) {
|
|
138
|
+
if (seenJsonLd.has(c.id)) continue;
|
|
139
|
+
seenJsonLd.add(c.id);
|
|
140
|
+
}
|
|
141
|
+
result.jsonld.push({
|
|
142
|
+
id: c.id,
|
|
143
|
+
json: safeJsonLdSerialize(c.graph)
|
|
144
|
+
});
|
|
145
|
+
break;
|
|
146
|
+
default: break;
|
|
147
|
+
}
|
|
148
|
+
return result;
|
|
149
|
+
}
|
|
150
|
+
/** Render resolved metadata to an HTML string for embedding in <head> */
|
|
151
|
+
function renderPageMetadata(metadata) {
|
|
152
|
+
const parts = [];
|
|
153
|
+
for (const m of metadata.meta) parts.push(`<meta name="${escapeHtmlAttr(m.name)}" content="${escapeHtmlAttr(m.content)}">`);
|
|
154
|
+
for (const p of metadata.properties) parts.push(`<meta property="${escapeHtmlAttr(p.property)}" content="${escapeHtmlAttr(p.content)}">`);
|
|
155
|
+
for (const l of metadata.links) {
|
|
156
|
+
let tag = `<link rel="${escapeHtmlAttr(l.rel)}" href="${escapeHtmlAttr(l.href)}"`;
|
|
157
|
+
if (l.hreflang) tag += ` hreflang="${escapeHtmlAttr(l.hreflang)}"`;
|
|
158
|
+
tag += ">";
|
|
159
|
+
parts.push(tag);
|
|
160
|
+
}
|
|
161
|
+
for (const j of metadata.jsonld) parts.push(`<script type="application/ld+json">${j.json}<\/script>`);
|
|
162
|
+
return parts.join("\n");
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
//#endregion
|
|
166
|
+
//#region src/page/fragments.ts
|
|
167
|
+
/** Escape sequences that would break out of a script tag */
|
|
168
|
+
const SCRIPT_CLOSE_RE = /<\//g;
|
|
169
|
+
/**
|
|
170
|
+
* Filter contributions to a specific placement and deduplicate.
|
|
171
|
+
* - Contributions with the same `key + placement` are deduped (first wins).
|
|
172
|
+
* - External scripts with the same `src + placement` are deduped.
|
|
173
|
+
*/
|
|
174
|
+
function resolveFragments(contributions, placement) {
|
|
175
|
+
const filtered = contributions.filter((c) => c.placement === placement);
|
|
176
|
+
const seen = /* @__PURE__ */ new Set();
|
|
177
|
+
const result = [];
|
|
178
|
+
for (const c of filtered) {
|
|
179
|
+
if (c.key) {
|
|
180
|
+
const dedupeKey = `key:${c.key}`;
|
|
181
|
+
if (seen.has(dedupeKey)) continue;
|
|
182
|
+
seen.add(dedupeKey);
|
|
183
|
+
} else if (c.kind === "external-script") {
|
|
184
|
+
const dedupeKey = `src:${c.src}`;
|
|
185
|
+
if (seen.has(dedupeKey)) continue;
|
|
186
|
+
seen.add(dedupeKey);
|
|
187
|
+
}
|
|
188
|
+
result.push(c);
|
|
189
|
+
}
|
|
190
|
+
return result;
|
|
191
|
+
}
|
|
192
|
+
const EVENT_HANDLER_RE = /^on/i;
|
|
193
|
+
function renderAttributes(attrs) {
|
|
194
|
+
return Object.entries(attrs).filter(([k]) => !EVENT_HANDLER_RE.test(k)).map(([k, v]) => ` ${escapeHtmlAttr(k)}="${escapeHtmlAttr(v)}"`).join("");
|
|
195
|
+
}
|
|
196
|
+
/** Render a single fragment contribution to HTML */
|
|
197
|
+
function renderFragment(c) {
|
|
198
|
+
switch (c.kind) {
|
|
199
|
+
case "external-script": {
|
|
200
|
+
let tag = `<script src="${escapeHtmlAttr(c.src)}"`;
|
|
201
|
+
if (c.async) tag += " async";
|
|
202
|
+
if (c.defer) tag += " defer";
|
|
203
|
+
if (c.attributes) tag += renderAttributes(c.attributes);
|
|
204
|
+
tag += "><\/script>";
|
|
205
|
+
return tag;
|
|
206
|
+
}
|
|
207
|
+
case "inline-script": {
|
|
208
|
+
let tag = "<script";
|
|
209
|
+
if (c.attributes) tag += renderAttributes(c.attributes);
|
|
210
|
+
tag += `>${c.code.replace(SCRIPT_CLOSE_RE, "<\\/")}<\/script>`;
|
|
211
|
+
return tag;
|
|
212
|
+
}
|
|
213
|
+
case "html": return c.html;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
/** Render a list of fragment contributions to an HTML string */
|
|
217
|
+
function renderFragments(contributions, placement) {
|
|
218
|
+
return resolveFragments(contributions, placement).map(renderFragment).join("\n");
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
//#endregion
|
|
222
|
+
//#region src/page/jsonld.ts
|
|
223
|
+
/**
|
|
224
|
+
* Remove null/undefined values from a JSON-LD object recursively.
|
|
225
|
+
* JSON-LD validators prefer absent keys over null values.
|
|
226
|
+
*/
|
|
227
|
+
function cleanJsonLd(obj) {
|
|
228
|
+
const cleaned = {};
|
|
229
|
+
for (const [key, value] of Object.entries(obj)) if (value !== void 0 && value !== null) if (typeof value === "object" && !Array.isArray(value)) cleaned[key] = cleanJsonLd(value);
|
|
230
|
+
else cleaned[key] = value;
|
|
231
|
+
return cleaned;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Build a BlogPosting JSON-LD graph from page context.
|
|
235
|
+
* Used for article-type content pages.
|
|
236
|
+
*/
|
|
237
|
+
function buildBlogPostingJsonLd(page) {
|
|
238
|
+
if (page.pageType !== "article" || !page.canonical) return null;
|
|
239
|
+
const ogTitle = page.seo?.ogTitle ?? page.pageTitle ?? page.title;
|
|
240
|
+
const description = page.seo?.ogDescription || page.description;
|
|
241
|
+
const ogImage = page.seo?.ogImage || page.image;
|
|
242
|
+
const publishedTime = page.articleMeta?.publishedTime;
|
|
243
|
+
const modifiedTime = page.articleMeta?.modifiedTime;
|
|
244
|
+
const author = page.articleMeta?.author;
|
|
245
|
+
const siteName = page.siteName;
|
|
246
|
+
return cleanJsonLd({
|
|
247
|
+
"@context": "https://schema.org",
|
|
248
|
+
"@type": "BlogPosting",
|
|
249
|
+
headline: ogTitle,
|
|
250
|
+
description,
|
|
251
|
+
image: ogImage || void 0,
|
|
252
|
+
url: page.canonical,
|
|
253
|
+
datePublished: publishedTime || void 0,
|
|
254
|
+
dateModified: modifiedTime || publishedTime || void 0,
|
|
255
|
+
author: author ? {
|
|
256
|
+
"@type": "Person",
|
|
257
|
+
name: author
|
|
258
|
+
} : void 0,
|
|
259
|
+
publisher: siteName ? {
|
|
260
|
+
"@type": "Organization",
|
|
261
|
+
name: siteName
|
|
262
|
+
} : void 0,
|
|
263
|
+
mainEntityOfPage: {
|
|
264
|
+
"@type": "WebPage",
|
|
265
|
+
"@id": page.canonical
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Build a WebSite JSON-LD graph from page context.
|
|
271
|
+
* Used for non-article pages (homepage, listing pages, etc.)
|
|
272
|
+
*/
|
|
273
|
+
function buildWebSiteJsonLd(page) {
|
|
274
|
+
const siteName = page.siteName;
|
|
275
|
+
if (!siteName) return null;
|
|
276
|
+
let siteUrl;
|
|
277
|
+
if (page.siteUrl) siteUrl = page.siteUrl;
|
|
278
|
+
else try {
|
|
279
|
+
siteUrl = new URL(page.url).origin;
|
|
280
|
+
} catch {
|
|
281
|
+
siteUrl = page.canonical || page.url;
|
|
282
|
+
}
|
|
283
|
+
return cleanJsonLd({
|
|
284
|
+
"@context": "https://schema.org",
|
|
285
|
+
"@type": "WebSite",
|
|
286
|
+
name: siteName,
|
|
287
|
+
url: siteUrl
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
//#endregion
|
|
292
|
+
//#region src/page/seo-contributions.ts
|
|
293
|
+
/**
|
|
294
|
+
* Generate base metadata contributions from a page context's SEO data.
|
|
295
|
+
* Returns an empty array if no SEO-relevant data is present.
|
|
296
|
+
*/
|
|
297
|
+
function generateBaseSeoContributions(page) {
|
|
298
|
+
const contributions = [];
|
|
299
|
+
const description = page.description;
|
|
300
|
+
const ogTitle = page.seo?.ogTitle ?? page.pageTitle ?? page.title;
|
|
301
|
+
const ogDescription = page.seo?.ogDescription || description;
|
|
302
|
+
const ogImage = page.seo?.ogImage || page.image;
|
|
303
|
+
const robots = page.seo?.robots;
|
|
304
|
+
const canonical = page.canonical;
|
|
305
|
+
const siteName = page.siteName;
|
|
306
|
+
if (description) contributions.push({
|
|
307
|
+
kind: "meta",
|
|
308
|
+
name: "description",
|
|
309
|
+
content: description
|
|
310
|
+
});
|
|
311
|
+
if (robots) contributions.push({
|
|
312
|
+
kind: "meta",
|
|
313
|
+
name: "robots",
|
|
314
|
+
content: robots
|
|
315
|
+
});
|
|
316
|
+
if (canonical) contributions.push({
|
|
317
|
+
kind: "link",
|
|
318
|
+
rel: "canonical",
|
|
319
|
+
href: canonical
|
|
320
|
+
});
|
|
321
|
+
contributions.push({
|
|
322
|
+
kind: "property",
|
|
323
|
+
property: "og:type",
|
|
324
|
+
content: page.pageType === "article" ? "article" : "website"
|
|
325
|
+
});
|
|
326
|
+
if (ogTitle) contributions.push({
|
|
327
|
+
kind: "property",
|
|
328
|
+
property: "og:title",
|
|
329
|
+
content: ogTitle
|
|
330
|
+
});
|
|
331
|
+
if (ogDescription) contributions.push({
|
|
332
|
+
kind: "property",
|
|
333
|
+
property: "og:description",
|
|
334
|
+
content: ogDescription
|
|
335
|
+
});
|
|
336
|
+
if (ogImage) contributions.push({
|
|
337
|
+
kind: "property",
|
|
338
|
+
property: "og:image",
|
|
339
|
+
content: ogImage
|
|
340
|
+
});
|
|
341
|
+
if (canonical) contributions.push({
|
|
342
|
+
kind: "property",
|
|
343
|
+
property: "og:url",
|
|
344
|
+
content: canonical
|
|
345
|
+
});
|
|
346
|
+
if (siteName) contributions.push({
|
|
347
|
+
kind: "property",
|
|
348
|
+
property: "og:site_name",
|
|
349
|
+
content: siteName
|
|
350
|
+
});
|
|
351
|
+
contributions.push({
|
|
352
|
+
kind: "meta",
|
|
353
|
+
name: "twitter:card",
|
|
354
|
+
content: ogImage ? "summary_large_image" : "summary"
|
|
355
|
+
});
|
|
356
|
+
if (ogTitle) contributions.push({
|
|
357
|
+
kind: "meta",
|
|
358
|
+
name: "twitter:title",
|
|
359
|
+
content: ogTitle
|
|
360
|
+
});
|
|
361
|
+
if (ogDescription) contributions.push({
|
|
362
|
+
kind: "meta",
|
|
363
|
+
name: "twitter:description",
|
|
364
|
+
content: ogDescription
|
|
365
|
+
});
|
|
366
|
+
if (ogImage) contributions.push({
|
|
367
|
+
kind: "meta",
|
|
368
|
+
name: "twitter:image",
|
|
369
|
+
content: ogImage
|
|
370
|
+
});
|
|
371
|
+
if (page.pageType === "article" && page.articleMeta) {
|
|
372
|
+
const { publishedTime, modifiedTime, author } = page.articleMeta;
|
|
373
|
+
if (publishedTime) contributions.push({
|
|
374
|
+
kind: "property",
|
|
375
|
+
property: "article:published_time",
|
|
376
|
+
content: publishedTime
|
|
377
|
+
});
|
|
378
|
+
if (modifiedTime) contributions.push({
|
|
379
|
+
kind: "property",
|
|
380
|
+
property: "article:modified_time",
|
|
381
|
+
content: modifiedTime
|
|
382
|
+
});
|
|
383
|
+
if (author) contributions.push({
|
|
384
|
+
kind: "property",
|
|
385
|
+
property: "article:author",
|
|
386
|
+
content: author
|
|
387
|
+
});
|
|
388
|
+
}
|
|
389
|
+
if (page.pageType === "article") {
|
|
390
|
+
const blogPosting = buildBlogPostingJsonLd(page);
|
|
391
|
+
if (blogPosting) contributions.push({
|
|
392
|
+
kind: "jsonld",
|
|
393
|
+
id: "primary",
|
|
394
|
+
graph: blogPosting
|
|
395
|
+
});
|
|
396
|
+
} else if (siteName) {
|
|
397
|
+
const webSite = buildWebSiteJsonLd(page);
|
|
398
|
+
if (webSite) contributions.push({
|
|
399
|
+
kind: "jsonld",
|
|
400
|
+
id: "primary",
|
|
401
|
+
graph: webSite
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
return contributions;
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Generate site-level SEO metadata contributions from SiteSettings.seo.
|
|
408
|
+
*
|
|
409
|
+
* These tags apply to every page, so they're sourced from global site settings
|
|
410
|
+
* rather than page-specific context.
|
|
411
|
+
*/
|
|
412
|
+
function generateSiteSeoContributions(seoSettings) {
|
|
413
|
+
const contributions = [];
|
|
414
|
+
if (!seoSettings) return contributions;
|
|
415
|
+
if (seoSettings.googleVerification) contributions.push({
|
|
416
|
+
kind: "meta",
|
|
417
|
+
name: "google-site-verification",
|
|
418
|
+
content: seoSettings.googleVerification
|
|
419
|
+
});
|
|
420
|
+
if (seoSettings.bingVerification) contributions.push({
|
|
421
|
+
kind: "meta",
|
|
422
|
+
name: "msvalidate.01",
|
|
423
|
+
content: seoSettings.bingVerification
|
|
424
|
+
});
|
|
425
|
+
return contributions;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
//#endregion
|
|
429
|
+
export { cleanJsonLd as a, escapeHtmlAttr as c, safeJsonLdSerialize as d, createPublicPageContext as f, buildWebSiteJsonLd as i, renderPageMetadata as l, generateSiteSeoContributions as n, renderFragments as o, buildBlogPostingJsonLd as r, resolveFragments as s, generateBaseSeoContributions as t, resolvePageMetadata as u };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
|
|
2
2
|
import { t as CommentRepository } from "./comment-DFO-gWDH.mjs";
|
|
3
|
-
import { t as escapeHtml } from "./escape-
|
|
3
|
+
import { t as escapeHtml } from "./escape-BRVaw1Ai.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/comments/notifications.ts
|
|
6
6
|
const NOTIFICATION_SOURCE = "dineway-comments";
|
|
@@ -5,6 +5,7 @@ import { n as requestCached, t as peekRequestCache } from "./request-cache-DHMRr
|
|
|
5
5
|
|
|
6
6
|
//#region src/media/url.ts
|
|
7
7
|
const INTERNAL_MEDIA_PREFIX = "/_dineway/api/media/file/";
|
|
8
|
+
const SAFE_STORAGE_KEY = /^[A-Za-z0-9._-]+$/;
|
|
8
9
|
function resolvePublicMediaUrl(storage, storageKey) {
|
|
9
10
|
if (!storageKey) return "";
|
|
10
11
|
if (storage) return storage.getPublicUrl(storageKey);
|
|
@@ -13,6 +14,19 @@ function resolvePublicMediaUrl(storage, storageKey) {
|
|
|
13
14
|
function createPublicMediaUrlResolver(storage) {
|
|
14
15
|
return (key) => resolvePublicMediaUrl(storage, key);
|
|
15
16
|
}
|
|
17
|
+
function buildRenderMediaUrl(resolve, ref) {
|
|
18
|
+
const { storageKey, url, id } = ref;
|
|
19
|
+
if (storageKey) return resolve ? resolve(storageKey) : `${INTERNAL_MEDIA_PREFIX}${storageKey}`;
|
|
20
|
+
if (url) {
|
|
21
|
+
if (resolve && url.startsWith(INTERNAL_MEDIA_PREFIX)) {
|
|
22
|
+
const key = url.slice(25);
|
|
23
|
+
if (SAFE_STORAGE_KEY.test(key)) return resolve(key);
|
|
24
|
+
}
|
|
25
|
+
return url;
|
|
26
|
+
}
|
|
27
|
+
if (id) return `${INTERNAL_MEDIA_PREFIX}${id}`;
|
|
28
|
+
return "";
|
|
29
|
+
}
|
|
16
30
|
|
|
17
31
|
//#endregion
|
|
18
32
|
//#region src/settings/index.ts
|
|
@@ -220,4 +234,4 @@ async function getPluginSettingsWithDb(pluginId, db) {
|
|
|
220
234
|
}
|
|
221
235
|
|
|
222
236
|
//#endregion
|
|
223
|
-
export { getSiteSettingsWithDb as a, getSiteSettings as i, getPluginSettings as n, setSiteSettings as o, getSiteSetting as r,
|
|
237
|
+
export { getSiteSettingsWithDb as a, createPublicMediaUrlResolver as c, getSiteSettings as i, getPluginSettings as n, setSiteSettings as o, getSiteSetting as r, buildRenderMediaUrl as s, getPluginSetting as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./chunk-ClPoSABd.mjs";
|
|
2
|
-
import { a as getSiteSettingsWithDb, o as setSiteSettings } from "./settings-
|
|
2
|
+
import { a as getSiteSettingsWithDb, o as setSiteSettings } from "./settings-DGtLLSaz.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/api/handlers/settings.ts
|
|
5
5
|
var settings_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -5,14 +5,14 @@ import { t as SiteActivityRepository } from "./site-activity-B8FjLIVh.mjs";
|
|
|
5
5
|
import { t as ReviewRequestRepository } from "./review-requests-C2DIHwlJ.mjs";
|
|
6
6
|
import { n as normalizeEntityAlias, t as EntityAliasRepository } from "./entity-aliases-C0v-yNET.mjs";
|
|
7
7
|
import { r as isPattern } from "./patterns-K0DLqWir.mjs";
|
|
8
|
-
import { a as ContextRepository, i as parseSiteBriefingScope, l as handlePluginList } from "./briefing-
|
|
8
|
+
import { a as ContextRepository, i as parseSiteBriefingScope, l as handlePluginList } from "./briefing-MVYe_Uyf.mjs";
|
|
9
9
|
import { t as FTSManager } from "./fts-manager-B1pTNEG_.mjs";
|
|
10
10
|
import { n as SchemaRegistry } from "./registry-C-_hxLqa.mjs";
|
|
11
|
-
import { a as getSiteSettingsWithDb } from "./settings-
|
|
12
|
-
import { p as normalizeUrl } from "./utils-
|
|
13
|
-
import { t as sanitizeWordPressImportSlug } from "./wordpress-slugs-
|
|
14
|
-
import { s as searchCollection } from "./search-
|
|
15
|
-
import { n as assertExperimentalSiteContextWorkflowsEnabled } from "./experimental-workflows-
|
|
11
|
+
import { a as getSiteSettingsWithDb } from "./settings-DGtLLSaz.mjs";
|
|
12
|
+
import { p as normalizeUrl } from "./utils-C0ONdBul.mjs";
|
|
13
|
+
import { t as sanitizeWordPressImportSlug } from "./wordpress-slugs-CnporCYH.mjs";
|
|
14
|
+
import { s as searchCollection } from "./search-DqTHQqtV.mjs";
|
|
15
|
+
import { n as assertExperimentalSiteContextWorkflowsEnabled } from "./experimental-workflows-C9X7yblQ.mjs";
|
|
16
16
|
import { sql } from "kysely";
|
|
17
17
|
import { ulid } from "ulidx";
|
|
18
18
|
import { Role } from "@dineway-ai/auth";
|
package/dist/storage/local.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as ListOptions, d as Storage, l as SignedUploadOptions, o as ListResult, p as UploadResult, r as DownloadResult, s as LocalStorageConfig, u as SignedUploadUrl } from "../types-
|
|
1
|
+
import { a as ListOptions, d as Storage, l as SignedUploadOptions, o as ListResult, p as UploadResult, r as DownloadResult, s as LocalStorageConfig, u as SignedUploadUrl } from "../types-B7kpsMJ3.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/storage/local.d.ts
|
|
4
4
|
/**
|
package/dist/storage/local.mjs
CHANGED
package/dist/storage/s3.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as ListOptions, c as S3StorageConfig, d as Storage, l as SignedUploadOptions, o as ListResult, p as UploadResult, r as DownloadResult, u as SignedUploadUrl } from "../types-
|
|
1
|
+
import { a as ListOptions, c as S3StorageConfig, d as Storage, l as SignedUploadOptions, o as ListResult, p as UploadResult, r as DownloadResult, u as SignedUploadUrl } from "../types-B7kpsMJ3.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/storage/s3.d.ts
|
|
4
4
|
/**
|
package/dist/storage/s3.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as DinewayStorageError } from "../types-
|
|
1
|
+
import { t as DinewayStorageError } from "../types-fAInWQDO.mjs";
|
|
2
2
|
import { DeleteObjectCommand, GetObjectCommand, HeadObjectCommand, ListObjectsV2Command, PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
|
|
3
3
|
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
|
|
4
4
|
|
|
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./chunk-ClPoSABd.mjs";
|
|
|
2
2
|
import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-D_jVet6z.mjs";
|
|
3
3
|
import { r as getDb } from "./loader-PZnPxFLc.mjs";
|
|
4
4
|
import { n as requestCached, r as setRequestCacheEntry, t as peekRequestCache } from "./request-cache-DHMRr2Lf.mjs";
|
|
5
|
-
import { t as isMissingTableError } from "./db-errors-
|
|
5
|
+
import { t as isMissingTableError } from "./db-errors-DyZkswzF.mjs";
|
|
6
6
|
|
|
7
7
|
//#region src/taxonomies/index.ts
|
|
8
8
|
/**
|
|
@@ -241,7 +241,7 @@ function primeEntryTermsCache(collection, entryId, byTaxonomy, applicableTaxonom
|
|
|
241
241
|
* Get entries by term (wraps getDinewayCollection)
|
|
242
242
|
*/
|
|
243
243
|
async function getEntriesByTerm(collection, taxonomyName, termSlug) {
|
|
244
|
-
const { getDinewayCollection } = await import("./query-
|
|
244
|
+
const { getDinewayCollection } = await import("./query-B9BO5goQ.mjs").then((n) => n.o);
|
|
245
245
|
const { entries } = await getDinewayCollection(collection, { where: { [taxonomyName]: termSlug } });
|
|
246
246
|
return entries;
|
|
247
247
|
}
|