Add Next-flavored BlogPostPage that emits blog.post.view telemetry
Wraps BlogPostLayout with a fire-and-forget after() call from next/server
that logs the post view via config.telemetry.logServerEvent. The
framework-agnostic version in src/routes/blog-post-page.tsx stays
slot-aware (all the new passthrough props: meta, cover, title, body,
sidebar, comments, beforeArticle, afterArticle, className, classNames)
but does not emit telemetry — consumers on @blog/rsc are expected to
emit themselves or live without blog.post.view.
src/next.tsx now imports BlogPostPage from ./next-blog-post-page while
BlogListPage continues to come from ./rsc; the other re-exports
(nextImageAdapter, NextBlogProvider, createBlogOpenGraphImage,
generateBlogPostMetadata) are unchanged.
Tests mock next/server's after, then assert the deferred callback fires
config.telemetry.logServerEvent with the expected payload when the post
resolves, that after is not scheduled when fetchDocument returns
undefined, and that a missing config.telemetry does not crash the
deferred callback.