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/page/index.mjs
CHANGED
|
@@ -1,431 +1,5 @@
|
|
|
1
|
-
|
|
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
|
-
}
|
|
1
|
+
import { a as cleanJsonLd, c as escapeHtmlAttr, d as safeJsonLdSerialize, f as createPublicPageContext, i as buildWebSiteJsonLd, l as renderPageMetadata, n as generateSiteSeoContributions, o as renderFragments, r as buildBlogPostingJsonLd, s as resolveFragments, t as generateBaseSeoContributions, u as resolvePageMetadata } from "../seo-contributions-B1fWCnqY.mjs";
|
|
164
2
|
|
|
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
3
|
//#region src/page/index.ts
|
|
430
4
|
/**
|
|
431
5
|
* Get the page runtime from Astro locals. Returns undefined when
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { l as MediaProvider, m as MediaValue } from "./types-OPs5Q_sX.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/media/normalize.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Normalize a media field value into a consistent MediaValue shape.
|
|
6
|
+
*
|
|
7
|
+
* - `null`/`undefined` → `null`
|
|
8
|
+
* - Bare URL string → `{ provider: "external", id: "", src: url }`
|
|
9
|
+
* - Bare internal media URL → resolved via local provider's `get()`
|
|
10
|
+
* - Object with `provider` + `id` → enriched with missing fields from provider
|
|
11
|
+
*/
|
|
12
|
+
declare function normalizeMediaValue(value: unknown, getProvider: (id: string) => MediaProvider | undefined): Promise<MediaValue | null>;
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region src/media/placeholder.d.ts
|
|
15
|
+
/**
|
|
16
|
+
* Image Placeholder Generation
|
|
17
|
+
*
|
|
18
|
+
* Generates blurhash and dominant color from image buffers for LQIP support.
|
|
19
|
+
* Decodes images via jpeg-js (pure JS) and upng-js (pure JS, uses pako for
|
|
20
|
+
* deflate). No native image bindings required, so it works in server runtimes.
|
|
21
|
+
*/
|
|
22
|
+
interface PlaceholderData {
|
|
23
|
+
blurhash: string;
|
|
24
|
+
dominantColor: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Generate blurhash and dominant color from an image buffer.
|
|
28
|
+
* Returns null for non-image MIME types or on failure.
|
|
29
|
+
*
|
|
30
|
+
* @param dimensions - Optional pre-known dimensions. Used as a fallback when
|
|
31
|
+
* image-size cannot parse the buffer (e.g. truncated headers). When the
|
|
32
|
+
* decoded size (width * height * 4) exceeds MAX_DECODED_BYTES, placeholder
|
|
33
|
+
* generation is skipped to avoid OOM on memory-constrained runtimes.
|
|
34
|
+
*/
|
|
35
|
+
declare function generatePlaceholder(buffer: Uint8Array, mimeType: string, dimensions?: {
|
|
36
|
+
width: number;
|
|
37
|
+
height: number;
|
|
38
|
+
}): Promise<PlaceholderData | null>;
|
|
39
|
+
//#endregion
|
|
40
|
+
export { generatePlaceholder as n, normalizeMediaValue as r, PlaceholderData as t };
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { n as PluginDescriptor } from "../runtime-
|
|
2
|
-
import "../types-
|
|
3
|
-
import { X as ResolvedPlugin, tt as StandardPluginDefinition } from "../types-
|
|
4
|
-
import "../types-
|
|
5
|
-
import "../runner-
|
|
6
|
-
import "../index-
|
|
7
|
-
import "../
|
|
8
|
-
import "../
|
|
9
|
-
import "../
|
|
1
|
+
import { n as PluginDescriptor } from "../runtime-QuuFSlc6.mjs";
|
|
2
|
+
import "../types-DZPw8Rru.mjs";
|
|
3
|
+
import { X as ResolvedPlugin, tt as StandardPluginDefinition } from "../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";
|
|
10
11
|
|
|
11
12
|
//#region src/plugins/adapt-sandbox-entry.d.ts
|
|
12
13
|
/**
|