@sonordev/site-kit 8.8.1 → 8.9.0
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/CHANGELOG.md +18 -0
- package/README.md +9 -0
- package/agent-manifest.json +49 -42
- package/dist/AnalyticsProvider-X7JJN3QL.js +19 -0
- package/dist/{ArticleViewTracker-PV2RD3P6.js → ArticleViewTracker-7Q6AMCKX.js} +11 -10
- package/dist/{BlocksPopup-NEEFV2L3.js → BlocksPopup-U5VIYEBA.js} +4 -5
- package/dist/ChatWidget-EAATOFCT.js +30 -0
- package/dist/{FileField-MJ3RCNFJ.js → FileField-YWMSK7RF.js} +1 -3
- package/dist/{FormSpotlight-NQPQFZS7.js → FormSpotlight-MAXDW3TK.js} +1 -1
- package/dist/{FormStage-4T5PJR5K.js → FormStage-VAHRVOIZ.js} +1 -1
- package/dist/ManagedForm-7IZT7ZII.js +29 -0
- package/dist/{ManagedNewsletterForm-TUYGN6O3.js → ManagedNewsletterForm-VVXZSEAL.js} +21 -11
- package/dist/{SignalCore-OW3YIH6M.js → SignalCore-HAN4O7QG.js} +90 -36
- package/dist/{SiteChat-XMKHBSEK.js → SiteChat-3JLCEL2N.js} +2 -2
- package/dist/{SiteDesignReporter-BRH7ORQS.js → SiteDesignReporter-6CCO645E.js} +5 -6
- package/dist/SitePopups-ZGHQNGGH.js +19 -0
- package/dist/SitemapSync-5LSYCBKS.js +7 -0
- package/dist/SitemapSync.d.ts +1 -1
- package/dist/_client/booking-widget.d.ts +1 -1
- package/dist/_client/booking-widget.js +6 -7
- package/dist/_client/reviewed-signal-experiment.d.ts +9 -0
- package/dist/_client/reviewed-signal-experiment.js +89 -0
- package/dist/_client/testimonial-section.d.ts +1 -1
- package/dist/admin-auth/index.d.ts +3 -3
- package/dist/affiliates/AffiliatesWidget.d.ts +1 -1
- package/dist/affiliates/api.d.ts +1 -1
- package/dist/affiliates/index.d.ts +6 -6
- package/dist/affiliates/index.js +1 -3
- package/dist/affiliates/useAffiliates.d.ts +1 -1
- package/dist/analytics/AnalyticsProvider.d.ts +1 -1
- package/dist/analytics/dispatch.d.ts +1 -1
- package/dist/analytics/index.d.ts +6 -6
- package/dist/analytics/index.js +22 -12
- package/dist/analytics/publication-cta.d.ts +1 -1
- package/dist/analytics/send-gate.d.ts +8 -4
- package/dist/articles/Article.d.ts +1 -1
- package/dist/articles/ArticleFAQ.d.ts +1 -1
- package/dist/articles/ArticleFaqSection.d.ts +1 -1
- package/dist/articles/ArticleList.d.ts +1 -1
- package/dist/articles/ArticleViewTracker.d.ts +1 -1
- package/dist/articles/AuthorCard.d.ts +1 -1
- package/dist/articles/AuthorPage.d.ts +1 -1
- package/dist/articles/ClusterLandingPage.d.ts +1 -1
- package/dist/articles/ClusterNavigation.d.ts +1 -1
- package/dist/articles/ManagedNewsletterForm.d.ts +2 -2
- package/dist/articles/NewsletterShell.d.ts +1 -1
- package/dist/articles/NewsletterWidget.d.ts +1 -1
- package/dist/articles/PublicationLayout.d.ts +1 -1
- package/dist/articles/PublicationSidebar.d.ts +1 -1
- package/dist/articles/RelatedPosts.d.ts +1 -1
- package/dist/articles/ServiceCallout.d.ts +1 -1
- package/dist/articles/TableOfContents.d.ts +1 -1
- package/dist/articles/article-photos.d.ts +1 -1
- package/dist/articles/article-styles.d.ts +1 -1
- package/dist/articles/article-tables.d.ts +1 -1
- package/dist/articles/artwork.d.ts +1 -1
- package/dist/articles/author-schema.d.ts +1 -1
- package/dist/articles/author-social.d.ts +1 -1
- package/dist/articles/excerpt.d.ts +1 -1
- package/dist/articles/index.d.ts +1 -1
- package/dist/articles/index.js +3 -3
- package/dist/articles/news-sitemap.d.ts +1 -1
- package/dist/articles/processArticleHtml.d.ts +1 -1
- package/dist/articles/public-reads.d.ts +1 -1
- package/dist/articles/reading-time.d.ts +1 -1
- package/dist/articles/routes.d.ts +1 -1
- package/dist/articles/server-core.d.ts +1 -1
- package/dist/articles/server-ui.d.ts +1 -1
- package/dist/articles/server-ui.js +6 -6
- package/dist/articles/server.d.ts +1 -1
- package/dist/articles/server.js +5 -5
- package/dist/articles/types.d.ts +1 -1
- package/dist/articles/widget-styles.d.ts +1 -1
- package/dist/brand/extract-brand-profile.d.ts +1 -1
- package/dist/chat/ChatWidget.d.ts +1 -1
- package/dist/chat/EchoUiActions.d.ts +1 -1
- package/dist/chat/SiteChat.d.ts +2 -2
- package/dist/chat/chat-messages.d.ts +1 -1
- package/dist/chat/index.d.ts +7 -7
- package/dist/chat/index.js +17 -9
- package/dist/chat/launcher-placement.d.ts +1 -1
- package/dist/{chunk-OPUY4RS6.js → chunk-2LBKIE2K.js} +2 -1
- package/dist/{chunk-XIDWNXZN.js → chunk-3W3MN6Z7.js} +2 -2
- package/dist/{chunk-UPFU63L4.js → chunk-55GFMOI6.js} +1 -1
- package/dist/chunk-5IVD6G77.js +37 -0
- package/dist/{chunk-URLTBVRX.js → chunk-6EDE7BOE.js} +3 -3
- package/dist/{chunk-DYROJGI2.js → chunk-6NLVHTYY.js} +1 -1
- package/dist/{chunk-ZQSCMYZO.js → chunk-7643MCD2.js} +6 -3
- package/dist/chunk-7IZUUXXO.js +1 -0
- package/dist/{chunk-C7TLGL3R.js → chunk-7VMA3KCN.js} +30 -4
- package/dist/{chunk-OWZWRP7Y.js → chunk-ADQ3VCKK.js} +2 -2
- package/dist/chunk-AG2RDHYZ.js +45 -0
- package/dist/chunk-AWLPFFPO.js +36 -0
- package/dist/{chunk-LNSNA3W4.js → chunk-C4XK472G.js} +4 -3
- package/dist/{chunk-TP32MRXV.js → chunk-CJ43K7RA.js} +2 -2
- package/dist/chunk-D4M5K6JN.js +25 -0
- package/dist/{chunk-F6WLHVMQ.js → chunk-DXE6SXWW.js} +1 -1
- package/dist/{chunk-YEX5RAEU.js → chunk-EBEM5BI5.js} +38 -27
- package/dist/chunk-F3RKFGRW.js +2 -0
- package/dist/chunk-FAY6MOLL.js +62 -0
- package/dist/chunk-FRY6PBT6.js +31 -0
- package/dist/{chunk-JYITKUUB.js → chunk-G5WUX7VE.js} +1 -1
- package/dist/chunk-HJD6KXKH.js +147 -0
- package/dist/{chunk-6BFQI3ZE.js → chunk-IO6BWRZ5.js} +2 -2
- package/dist/{chunk-THXELZTQ.js → chunk-ISMHDUBW.js} +1 -1
- package/dist/{chunk-SLFYTELD.js → chunk-J4LJE4NB.js} +1 -1
- package/dist/chunk-JT7GHHMV.js +56 -0
- package/dist/{chunk-NFGAXWCN.js → chunk-KGIQYVQ2.js} +31 -13
- package/dist/chunk-KMNHNCVG.js +20 -0
- package/dist/chunk-KQKUXIUD.js +25 -0
- package/dist/{chunk-M5JIHQ42.js → chunk-L3S5WH4C.js} +2 -2
- package/dist/chunk-MDBXGN6W.js +13 -0
- package/dist/chunk-MOACHHOJ.js +20 -0
- package/dist/{chunk-6DXQHNZK.js → chunk-MP35JETP.js} +1 -1
- package/dist/chunk-NHDRA4Y5.js +6 -0
- package/dist/{chunk-AYQEIMGS.js → chunk-NZHECYLF.js} +103 -22
- package/dist/{chunk-EATJPSTS.js → chunk-O5LQUBBN.js} +1 -1
- package/dist/{chunk-Y6SHFILE.js → chunk-OEOSR5EG.js} +1 -1
- package/dist/{chunk-GQN4BGK6.js → chunk-OUD4RTBD.js} +1 -1
- package/dist/chunk-PMXQPO5Q.js +78 -0
- package/dist/chunk-PVY7X5UR.js +21 -0
- package/dist/{chunk-KG5IEV7I.js → chunk-QLJ2SC3T.js} +1 -1
- package/dist/{chunk-2WM4TNDF.js → chunk-QXAJPB6O.js} +1 -1
- package/dist/{chunk-2WDWQI7K.js → chunk-RYR6N4X4.js} +1 -1
- package/dist/{chunk-G7BRCSV6.js → chunk-S33CUULL.js} +3 -3
- package/dist/{chunk-YRQS7VAH.js → chunk-S63QY5XW.js} +2 -2
- package/dist/{chunk-GXWM5KNS.js → chunk-SO6RSRUP.js} +40 -45
- package/dist/{chunk-ODOV76VW.js → chunk-STIVFCWM.js} +1 -1
- package/dist/{chunk-SVHPILS3.js → chunk-T4A5J6SJ.js} +1 -1
- package/dist/chunk-TPHOIE4I.js +73 -0
- package/dist/{chunk-IWNJCRXW.js → chunk-UG53ZW7S.js} +125 -118
- package/dist/chunk-VXCUXHZO.js +9 -0
- package/dist/{chunk-SBPUFTMP.js → chunk-WHFWDK2H.js} +2 -2
- package/dist/chunk-WYNDBJG7.js +66 -0
- package/dist/{chunk-HN7GVGWC.js → chunk-XDH5B3PR.js} +3 -3
- package/dist/{chunk-PAYCK7FC.js → chunk-XJZLXUTG.js} +1 -1
- package/dist/{chunk-IDC5CVBR.js → chunk-YVEYO3OD.js} +1 -1
- package/dist/{chunk-PSS6M4CG.js → chunk-ZRSXCT4O.js} +2 -2
- package/dist/client/index.d.ts +8 -8
- package/dist/client/index.js +9 -8
- package/dist/config/index.d.ts +1 -1
- package/dist/contracts/broadcast-layouts.d.ts +8 -0
- package/dist/contracts/crm-disposition.d.ts +87 -0
- package/dist/contracts/decision-roles.d.ts +39 -0
- package/dist/contracts/entries.d.ts +1 -1
- package/dist/contracts/funnels.d.ts +85 -2
- package/dist/contracts/portfolio.d.ts +1 -1
- package/dist/contracts/publication-branding.d.ts +3 -3
- package/dist/contracts/resonance-constants.d.ts +4 -0
- package/dist/contracts/resonance.d.ts +8461 -0
- package/dist/contracts/signal-experiments.d.ts +219 -0
- package/dist/contracts/site-edit.d.ts +2 -2
- package/dist/contracts/sites.d.ts +1 -1
- package/dist/contracts/slots.d.ts +2 -2
- package/dist/contracts/wire-schema.d.ts +36 -0
- package/dist/cta-bar/CtaBar.d.ts +1 -1
- package/dist/cta-bar/client.js +3 -2
- package/dist/cta-bar/index.d.ts +4 -4
- package/dist/cta-bar/index.js +4 -3
- package/dist/fleet/FleetHeartbeat.d.ts +2 -2
- package/dist/fleet/contract.d.ts +1 -1
- package/dist/fleet/heartbeat.d.ts +2 -2
- package/dist/fleet/index.d.ts +6 -6
- package/dist/fleet/index.js +4 -5
- package/dist/forms/FileField.d.ts +1 -1
- package/dist/forms/FormClient.d.ts +2 -2
- package/dist/forms/FormEnhancer.d.ts +1 -1
- package/dist/forms/FormField.d.ts +1 -1
- package/dist/forms/FormSpotlight.d.ts +1 -1
- package/dist/forms/FormStage.d.ts +1 -1
- package/dist/forms/ManagedForm.d.ts +1 -1
- package/dist/forms/PrivateFileField.d.ts +1 -1
- package/dist/forms/ServerForm.d.ts +3 -3
- package/dist/forms/StaticForm.d.ts +1 -1
- package/dist/forms/contract.d.ts +1 -1
- package/dist/forms/experience-plan.d.ts +1 -1
- package/dist/forms/field-autocomplete.d.ts +1 -1
- package/dist/forms/field-controls.d.ts +1 -1
- package/dist/forms/field-rules.d.ts +1 -1
- package/dist/forms/form-dom-values.d.ts +1 -1
- package/dist/forms/index.d.ts +18 -18
- package/dist/forms/index.js +21 -11
- package/dist/forms/normalize-config.d.ts +1 -1
- package/dist/forms/server.d.ts +4 -4
- package/dist/forms/server.js +3 -3
- package/dist/forms/static.d.ts +2 -2
- package/dist/forms/submitForm.d.ts +2 -2
- package/dist/forms/tracking-session.d.ts +1 -1
- package/dist/forms/useForm.d.ts +2 -2
- package/dist/forms/webmcp.d.ts +2 -2
- package/dist/images/api.d.ts +1 -1
- package/dist/images/index.d.ts +6 -6
- package/dist/images/index.js +2 -4
- package/dist/images/server.d.ts +2 -2
- package/dist/index.d.ts +13 -13
- package/dist/index.js +1 -1
- package/dist/landing/contract.d.ts +1 -1
- package/dist/landing/contract.js +2 -1
- package/dist/landing/index.d.ts +3 -3
- package/dist/landing/index.js +3 -2
- package/dist/landing/managed-server.d.ts +2 -2
- package/dist/landing/managed.d.ts +10 -2
- package/dist/landing/server.d.ts +7 -7
- package/dist/landing/server.js +11 -6
- package/dist/layout/AiDiscoveryLinks.d.ts +1 -1
- package/dist/layout/SiteKitClientProviders.d.ts +1 -1
- package/dist/layout/SiteKitLayout.d.ts +2 -2
- package/dist/layout/client.d.ts +1 -1
- package/dist/layout/client.js +15 -11
- package/dist/layout/index.d.ts +5 -5
- package/dist/layout/index.js +17 -13
- package/dist/layout/types.d.ts +2 -2
- package/dist/llms/AEOComponents.d.ts +1 -1
- package/dist/llms/SpeakableSchema.d.ts +1 -1
- package/dist/llms/api.d.ts +1 -1
- package/dist/llms/client.d.ts +3 -3
- package/dist/llms/contract.d.ts +1 -1
- package/dist/llms/generateLLMsTxt.d.ts +1 -1
- package/dist/llms/handlers.d.ts +1 -1
- package/dist/llms/index.d.ts +21 -21
- package/dist/llms/index.js +5 -5
- package/dist/llms/merge.d.ts +1 -1
- package/dist/llms/sourcedFacts.d.ts +1 -1
- package/dist/llms/types.d.ts +5 -5
- package/dist/llms/writeLLMsTxt.d.ts +3 -3
- package/dist/maps/GoogleMap.d.ts +1 -1
- package/dist/maps/NeighborhoodMap.d.ts +1 -1
- package/dist/maps/api.d.ts +1 -1
- package/dist/maps/index.d.ts +5 -5
- package/dist/maps/index.js +1 -3
- package/dist/mcp/WebMcpTools.d.ts +1 -1
- package/dist/mcp/client.d.ts +2 -2
- package/dist/mcp/discovery.d.ts +2 -2
- package/dist/mcp/handlers.d.ts +4 -4
- package/dist/mcp/index.d.ts +12 -12
- package/dist/mcp/protocol.d.ts +1 -1
- package/dist/mcp/report.d.ts +1 -1
- package/dist/mcp/serverCard.d.ts +1 -1
- package/dist/mcp/sonor.d.ts +5 -5
- package/dist/mcp/sonor.js +10 -10
- package/dist/mcp/transport.d.ts +1 -1
- package/dist/motion/Parallax.d.ts +1 -1
- package/dist/motion/ScrollScene.d.ts +1 -1
- package/dist/motion/gsap.d.ts +2 -2
- package/dist/motion/index.d.ts +9 -9
- package/dist/motion/three.d.ts +1 -1
- package/dist/og/index.d.ts +5 -5
- package/dist/og/pages.d.ts +1 -1
- package/dist/og/route-fit.d.ts +17 -0
- package/dist/og/template.d.ts +1 -1
- package/dist/portfolio/contract.d.ts +1 -1
- package/dist/press-kit/articles/Article.d.ts +2 -2
- package/dist/press-kit/articles/ArticleFaqSection.d.ts +1 -1
- package/dist/press-kit/articles/ArticleList.d.ts +2 -2
- package/dist/press-kit/articles/AuthorCard.d.ts +1 -1
- package/dist/press-kit/articles/AuthorPage.d.ts +1 -1
- package/dist/press-kit/articles/ClusterLandingPage.d.ts +2 -2
- package/dist/press-kit/articles/ClusterNavigation.d.ts +2 -2
- package/dist/press-kit/articles/ManagedNewsletterForm.d.ts +2 -2
- package/dist/press-kit/articles/PublicationLayout.d.ts +2 -2
- package/dist/press-kit/articles/PublicationSidebar.d.ts +1 -1
- package/dist/press-kit/articles/RelatedPosts.d.ts +2 -2
- package/dist/press-kit/articles/TableOfContents.d.ts +1 -1
- package/dist/press-kit/articles/article-body.d.ts +1 -1
- package/dist/press-kit/articles/article-headings.d.ts +1 -1
- package/dist/press-kit/articles/article-photos.d.ts +1 -1
- package/dist/press-kit/articles/artwork.d.ts +2 -2
- package/dist/press-kit/articles/author-schema.d.ts +2 -2
- package/dist/press-kit/articles/author-social.d.ts +1 -1
- package/dist/press-kit/articles/index.d.ts +23 -23
- package/dist/press-kit/articles/news-sitemap.d.ts +2 -2
- package/dist/press-kit/articles/public-reads.d.ts +1 -1
- package/dist/press-kit/articles/publication-reads.d.ts +2 -2
- package/dist/press-kit/articles/reading-time.d.ts +1 -1
- package/dist/press-kit/articles/server-core.d.ts +20 -20
- package/dist/press-kit/articles/server-ui.d.ts +20 -20
- package/dist/press-kit/articles/types.d.ts +1 -1
- package/dist/proxy/index.d.ts +5 -5
- package/dist/proxy/index.js +1 -1
- package/dist/reputation/TestimonialSection.d.ts +1 -1
- package/dist/reputation/VisualReviewCard.d.ts +1 -1
- package/dist/reputation/api.d.ts +1 -1
- package/dist/reputation/index.d.ts +4 -4
- package/dist/reputation/server.d.ts +3 -3
- package/dist/resonance/ResonanceRuntime.d.ts +7 -0
- package/dist/resonance/bridge.d.ts +16 -0
- package/dist/resonance/consent-adapter.d.ts +26 -0
- package/dist/resonance/controller-registry.d.ts +14 -0
- package/dist/resonance/controller.d.ts +103 -0
- package/dist/resonance/form-context.d.ts +5 -0
- package/dist/resonance/index.d.ts +4 -0
- package/dist/resonance/index.js +9 -0
- package/dist/resonance/meta-pixel.d.ts +67 -0
- package/dist/resonance/providers.d.ts +32 -0
- package/dist/resonance/runtime-core.d.ts +5 -0
- package/dist/revalidate/index.d.ts +3 -3
- package/dist/revalidate/index.js +2 -2
- package/dist/robots/index.d.ts +3 -3
- package/dist/robots/indexnow.js +2 -2
- package/dist/runtime/index.d.ts +7 -7
- package/dist/runtime/index.js +4 -5
- package/dist/runtime-core-WT7KKLWQ.js +2213 -0
- package/dist/seo/ManagedFAQ.d.ts +1 -1
- package/dist/seo/ManagedInternalLinks.d.ts +1 -1
- package/dist/seo/ManagedSchema.d.ts +1 -1
- package/dist/seo/ManagedScripts.d.ts +1 -1
- package/dist/seo/client.d.ts +1 -1
- package/dist/seo/client.js +3 -5
- package/dist/seo/entry-indexnow.d.ts +1 -1
- package/dist/seo/entry-llms-client.d.ts +1 -1
- package/dist/seo/entry-llms-contract.d.ts +1 -1
- package/dist/seo/entry-llms.d.ts +1 -1
- package/dist/seo/entry-meta-contract.d.ts +1 -1
- package/dist/seo/entry-og-route.d.ts +1 -1
- package/dist/seo/entry-og.d.ts +1 -1
- package/dist/seo/entry-pages-contract.d.ts +1 -1
- package/dist/seo/entry-redirects.d.ts +1 -1
- package/dist/seo/entry-robots.d.ts +1 -1
- package/dist/seo/entry-sitemap.d.ts +1 -1
- package/dist/seo/getManagedMetadata.d.ts +1 -1
- package/dist/seo/index.d.ts +12 -12
- package/dist/seo/index.js +9 -11
- package/dist/seo/indexnow.d.ts +1 -1
- package/dist/seo/indexnow.js +2 -2
- package/dist/seo/llms/client.d.ts +1 -1
- package/dist/seo/llms/contract.d.ts +1 -1
- package/dist/seo/llms.d.ts +1 -1
- package/dist/seo/llms.js +5 -5
- package/dist/seo/meta/contract.d.ts +1 -1
- package/dist/seo/og.d.ts +1 -1
- package/dist/seo/pages/contract.d.ts +1 -1
- package/dist/seo/redirects.d.ts +1 -1
- package/dist/seo/register-sitemap-cli-impl.d.ts +1 -1
- package/dist/seo/register-sitemap-cli.js +1 -1
- package/dist/seo/robots.d.ts +1 -1
- package/dist/seo/routing.d.ts +1 -1
- package/dist/seo/server.d.ts +4 -4
- package/dist/seo/server.js +3 -3
- package/dist/seo/sitemap.d.ts +1 -1
- package/dist/seo/sitemap.js +3 -3
- package/dist/seo/types.d.ts +1 -1
- package/dist/seo-meta/contract.d.ts +1 -1
- package/dist/seo-pages/contract.d.ts +1 -1
- package/dist/server/index.d.ts +5 -5
- package/dist/server/index.js +3 -3
- package/dist/server/mint-site-token.d.ts +1 -1
- package/dist/server/server-fetch.d.ts +8 -0
- package/dist/{server-api-XIKDWSNO.js → server-api-A34TABT2.js} +2 -2
- package/dist/shared/build-entries.d.ts +3 -1
- package/dist/shared/color.d.ts +1 -1
- package/dist/shared/fetchWithRetry.d.ts +6 -0
- package/dist/shared/frame.d.ts +1 -1
- package/dist/shared/identity-storage.d.ts +6 -4
- package/dist/shared/identity.d.ts +1 -3
- package/dist/shared/index.d.ts +5 -5
- package/dist/shared/index.js +1 -1
- package/dist/shared/measurement-analytics.d.ts +1 -0
- package/dist/shared/measurement-policy.d.ts +6 -0
- package/dist/shared/measurement-proof.d.ts +5 -0
- package/dist/shared/measurement-store.d.ts +34 -0
- package/dist/shared/measurement-writer.d.ts +6 -0
- package/dist/shared/publishCredential.d.ts +1 -1
- package/dist/shared/reporting-gate.d.ts +3 -1
- package/dist/shared/site-token-claims.d.ts +18 -0
- package/dist/shared/site-token-configuration.d.ts +9 -0
- package/dist/shared/site-token-refresh.d.ts +7 -0
- package/dist/shared/site-token-state.d.ts +23 -0
- package/dist/shared/siteToken.d.ts +5 -39
- package/dist/shared/sonor-auth-state.d.ts +3 -0
- package/dist/shared/sonor-beacon.d.ts +13 -0
- package/dist/shared/sonor-fetch-runtime.d.ts +2 -0
- package/dist/shared/sonor-fetch.d.ts +7 -0
- package/dist/shared/sonorFetch.d.ts +4 -49
- package/dist/shared/version.d.ts +1 -1
- package/dist/signal/ReviewedSignalExperiment.d.ts +9 -0
- package/dist/signal/SignalBridge.d.ts +4 -4
- package/dist/signal/SignalCore.d.ts +2 -1
- package/dist/signal/SignalExperiment.d.ts +13 -5
- package/dist/signal/index.d.ts +3 -3
- package/dist/signal/index.js +4 -73
- package/dist/signal/store.d.ts +10 -7
- package/dist/signal/types.d.ts +4 -0
- package/dist/sitemap/index.d.ts +5 -5
- package/dist/sitemap/index.js +3 -3
- package/dist/sites/contract.d.ts +1 -1
- package/dist/sites/normalize.d.ts +1 -1
- package/dist/slots/ManagedLink.d.ts +2 -2
- package/dist/slots/ManagedList.d.ts +2 -2
- package/dist/slots/ManagedRichText.d.ts +1 -1
- package/dist/slots/ManagedSlot.d.ts +1 -1
- package/dist/slots/contract.d.ts +1 -1
- package/dist/slots/edit/locate.d.ts +1 -1
- package/dist/slots/index.d.ts +14 -14
- package/dist/slots/index.js +2 -2
- package/dist/slots/server-api.d.ts +1 -1
- package/dist/{chunk-FLOJUMFR.js → sonor-fetch-runtime-3PFGUXMF.js} +27 -36
- package/dist/sync/AddToCalendar.d.ts +1 -1
- package/dist/sync/BookingWidget.d.ts +1 -1
- package/dist/sync/MeetingFormatStep.d.ts +1 -1
- package/dist/sync/api.d.ts +2 -2
- package/dist/sync/booking-flow.d.ts +1 -1
- package/dist/sync/index.d.ts +3 -3
- package/dist/sync/index.js +6 -7
- package/dist/types.d.ts +6 -6
- package/dist/website/BlocksPopup.d.ts +1 -1
- package/dist/website/PopupBlocks.d.ts +1 -1
- package/dist/website/SiteDesignReporter.d.ts +2 -2
- package/dist/website/SitePopups.d.ts +1 -1
- package/dist/website/contract.d.ts +1 -1
- package/dist/website/cta-bar.d.ts +1 -1
- package/dist/website/cta-bar.js +4 -3
- package/dist/website/design.d.ts +2 -2
- package/dist/website/images/server.d.ts +1 -1
- package/dist/website/images-server.d.ts +1 -1
- package/dist/website/images.d.ts +1 -1
- package/dist/website/images.js +2 -4
- package/dist/website/index.d.ts +4 -4
- package/dist/website/index.js +5 -6
- package/dist/website/landing/server.d.ts +1 -1
- package/dist/website/landing/server.js +11 -6
- package/dist/website/landing-server.d.ts +1 -1
- package/dist/website/landing.d.ts +1 -1
- package/dist/website/landing.js +3 -2
- package/dist/website/popup-rules.d.ts +2 -2
- package/dist/website/popup-types.d.ts +1 -1
- package/dist/website/popups.d.ts +4 -4
- package/dist/website/popups.js +14 -8
- package/dist/website/slots/contract.d.ts +1 -1
- package/dist/website/slots-contract.d.ts +1 -1
- package/dist/website/slots.d.ts +2 -2
- package/dist/website/slots.js +2 -2
- package/dist/{writeLLMsTxt-4HHUAOA6.js → writeLLMsTxt-JUACXQKP.js} +2 -2
- package/docs.json +5 -0
- package/package.json +8 -2
- package/src/analytics/README.md +21 -0
- package/src/cta-bar/README.md +4 -0
- package/src/forms/README.md +29 -0
- package/src/landing/README.md +14 -0
- package/src/layout/README.md +3 -0
- package/src/resonance/README.md +273 -0
- package/src/runtime/README.md +6 -1
- package/src/signal/README.md +21 -0
- package/src/website/README.md +14 -2
- package/dist/AnalyticsProvider-7SBJ27SI.js +0 -13
- package/dist/ChatWidget-V46UBDOM.js +0 -20
- package/dist/ManagedForm-DDDVMKLJ.js +0 -19
- package/dist/SitePopups-VU2C3Z6B.js +0 -13
- package/dist/SitemapSync-C4H3HF3L.js +0 -9
- package/dist/chunk-5ROTTMBL.js +0 -19
- package/dist/chunk-5TM3WPCI.js +0 -7
- package/dist/chunk-7HW4TZB5.js +0 -148
- package/dist/chunk-IPQKQEWI.js +0 -52
- package/dist/chunk-LCDVPAMR.js +0 -24
- package/dist/chunk-LQJC5S2M.js +0 -236
- package/dist/chunk-SHAUX2MQ.js +0 -163
- /package/dist/{chunk-3MJNBOUO.js → chunk-2QPVU63T.js} +0 -0
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* @sonordev/press-kit/articles - Table of Contents Component
|
|
3
3
|
*/
|
|
4
4
|
import React from 'react';
|
|
5
|
-
import type { TableOfContentsProps } from
|
|
5
|
+
import type { TableOfContentsProps } from "./types.js";
|
|
6
6
|
export declare function TableOfContents({ content, className, maxDepth, }: TableOfContentsProps): React.JSX.Element | null;
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* (scripts/bundle-baseline.json). Keep code only the server needs, such as the
|
|
12
12
|
* writer, out of it: a shared chunk ships every export either side uses.
|
|
13
13
|
*/
|
|
14
|
-
import type { TocItem } from
|
|
14
|
+
import type { TocItem } from "./types.js";
|
|
15
15
|
/**
|
|
16
16
|
* The value of attribute `name` in an open tag's attributes (the string
|
|
17
17
|
* `openTagAttributes` returns), or null when the tag doesn't have it. Reads
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CSSProperties } from 'react';
|
|
2
|
-
import type { Article } from
|
|
2
|
+
import type { Article } from "./types.js";
|
|
3
3
|
export interface ArticleArtwork {
|
|
4
4
|
src: string | undefined;
|
|
5
5
|
alt: string;
|
|
@@ -11,6 +11,6 @@ export declare function resolveArticleArtwork(post: ArtworkSource, placement?: '
|
|
|
11
11
|
/** Preserve generated text and graphics across every stock card surface. */
|
|
12
12
|
export declare function articleArtworkImageStyle(artwork: ArticleArtwork): CSSProperties | undefined;
|
|
13
13
|
/** Search/discovery artwork is the representative photograph; social cards stay available separately. */
|
|
14
|
-
export declare function resolveRepresentativeImage(post: Partial<Pick<Article, 'title' | 'representative_image' | 'editorial_image' | 'editorial_image_alt' | 'editorial_image_width' | 'editorial_image_height' | 'featured_image' | 'featured_image_alt' | 'featured_image_width' | 'featured_image_height'>>): import(
|
|
14
|
+
export declare function resolveRepresentativeImage(post: Partial<Pick<Article, 'title' | 'representative_image' | 'editorial_image' | 'editorial_image_alt' | 'editorial_image_width' | 'editorial_image_height' | 'featured_image' | 'featured_image_alt' | 'featured_image_width' | 'featured_image_height'>>): import("./types.js").ArticleImage | undefined;
|
|
15
15
|
export declare function articleImageSchema(post: Partial<Article>): object | string | undefined;
|
|
16
16
|
export {};
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
* so an article, its author page and the person's own site describe one
|
|
26
26
|
* person, which is what a Knowledge Panel is built from.
|
|
27
27
|
*/
|
|
28
|
-
import type { ArticleAuthor } from
|
|
29
|
-
import { type PublicationRoutingOptions } from
|
|
28
|
+
import type { ArticleAuthor } from "./types.js";
|
|
29
|
+
import { type PublicationRoutingOptions } from "./routes.js";
|
|
30
30
|
export type AuthorSchemaOptions = PublicationRoutingOptions & {
|
|
31
31
|
siteUrl?: string;
|
|
32
32
|
siteName?: string;
|
|
@@ -39,23 +39,23 @@
|
|
|
39
39
|
* }
|
|
40
40
|
* ```
|
|
41
41
|
*/
|
|
42
|
-
export type { PublicationDefinition } from
|
|
43
|
-
export type { ArticleServerProps, ArticleStyles } from
|
|
44
|
-
export type { ArticleListServerProps, ArticleListStyles } from
|
|
45
|
-
export type { PublicationSidebarProps } from
|
|
46
|
-
export { NewsletterWidget } from
|
|
47
|
-
export type { NewsletterWidgetProps } from
|
|
48
|
-
export type { PublicationLayoutProps, PublicationPageProps, ArticlePageProps, CategoryPageProps } from
|
|
49
|
-
export { AuthorCard } from
|
|
50
|
-
export { AuthorPage } from
|
|
51
|
-
export { TableOfContents } from
|
|
52
|
-
export { ServiceCallout, ServiceCallouts } from
|
|
53
|
-
export type { ServiceCalloutProps } from
|
|
54
|
-
export { ArticleFAQ } from
|
|
55
|
-
export type { ArticleEditorialPhoto } from
|
|
56
|
-
export type { ArticleFAQProps, FaqItem } from
|
|
57
|
-
export { ClusterNavigation } from
|
|
58
|
-
export type { ClusterNavigationProps } from
|
|
42
|
+
export type { PublicationDefinition } from "./publication-definition.js";
|
|
43
|
+
export type { ArticleServerProps, ArticleStyles } from "./Article.js";
|
|
44
|
+
export type { ArticleListServerProps, ArticleListStyles } from "./ArticleList.js";
|
|
45
|
+
export type { PublicationSidebarProps } from "./PublicationSidebar.js";
|
|
46
|
+
export { NewsletterWidget } from "./NewsletterWidget.js";
|
|
47
|
+
export type { NewsletterWidgetProps } from "./NewsletterWidget.js";
|
|
48
|
+
export type { PublicationLayoutProps, PublicationPageProps, ArticlePageProps, CategoryPageProps } from "./PublicationLayout.js";
|
|
49
|
+
export { AuthorCard } from "./AuthorCard.js";
|
|
50
|
+
export { AuthorPage } from "./AuthorPage.js";
|
|
51
|
+
export { TableOfContents } from "./TableOfContents.js";
|
|
52
|
+
export { ServiceCallout, ServiceCallouts } from "./ServiceCallout.js";
|
|
53
|
+
export type { ServiceCalloutProps } from "./ServiceCallout.js";
|
|
54
|
+
export { ArticleFAQ } from "./ArticleFAQ.js";
|
|
55
|
+
export type { ArticleEditorialPhoto } from "./types.js";
|
|
56
|
+
export type { ArticleFAQProps, FaqItem } from "./ArticleFAQ.js";
|
|
57
|
+
export { ClusterNavigation } from "./ClusterNavigation.js";
|
|
58
|
+
export type { ClusterNavigationProps } from "./ClusterNavigation.js";
|
|
59
59
|
/**
|
|
60
60
|
* `ClusterLandingPage` is deliberately NOT re-exported here — import it from
|
|
61
61
|
* `@sonordev/press-kit/articles/server-ui`.
|
|
@@ -72,9 +72,9 @@ export type { ClusterNavigationProps } from './ClusterNavigation';
|
|
|
72
72
|
* module, so it keeps `import type { ClusterLandingPageProps }` working for
|
|
73
73
|
* existing consumers.
|
|
74
74
|
*/
|
|
75
|
-
export type { ClusterLandingPageProps } from
|
|
76
|
-
export * from
|
|
77
|
-
export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from
|
|
78
|
-
export type { ArticleRoutePost, PublicationRoutingOptions } from
|
|
79
|
-
export { resolveArticleArtwork } from
|
|
80
|
-
export { addExternalLinkTargets, linkClassificationHost, normalizeSiteHost, resolvePublicationSiteUrl, } from
|
|
75
|
+
export type { ClusterLandingPageProps } from "./ClusterLandingPage.js";
|
|
76
|
+
export * from "./types.js";
|
|
77
|
+
export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from "./routes.js";
|
|
78
|
+
export type { ArticleRoutePost, PublicationRoutingOptions } from "./routes.js";
|
|
79
|
+
export { resolveArticleArtwork } from "./artwork.js";
|
|
80
|
+
export { addExternalLinkTargets, linkClassificationHost, normalizeSiteHost, resolvePublicationSiteUrl, } from "./processArticleHtml.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Article } from
|
|
2
|
-
import { type PublicationRoutingOptions, type ArticleRoutePost } from
|
|
1
|
+
import type { Article } from "./types.js";
|
|
2
|
+
import { type PublicationRoutingOptions, type ArticleRoutePost } from "./routes.js";
|
|
3
3
|
/** Google only reads articles from the last two days in a News sitemap. */
|
|
4
4
|
export declare const NEWS_SITEMAP_WINDOW_MS: number;
|
|
5
5
|
/** Google's cap per News sitemap. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import 'server-only';
|
|
2
|
-
import type { Article } from
|
|
3
|
-
import type { ArticleReadResult } from
|
|
2
|
+
import type { Article } from "./types.js";
|
|
3
|
+
import type { ArticleReadResult } from "./public-reads.js";
|
|
4
4
|
export interface PublicationIssue {
|
|
5
5
|
id: string;
|
|
6
6
|
title: string;
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
* treats `getAllArticleSlugs` / `generateArticleStaticParams` as client code.
|
|
7
7
|
*/
|
|
8
8
|
import type { Metadata } from 'next';
|
|
9
|
-
import type { Article as ArticleRecord, ArticleAuthor, TopicCluster, ClusterNavigation } from
|
|
10
|
-
import { ArticleUnavailableError } from
|
|
11
|
-
import { sanitizeExcerpt } from
|
|
12
|
-
import { articleImageSchema, resolveRepresentativeImage } from
|
|
13
|
-
import { type PublicationRoutingOptions } from
|
|
14
|
-
import { type NewsSitemapOptions } from
|
|
9
|
+
import type { Article as ArticleRecord, ArticleAuthor, TopicCluster, ClusterNavigation } from "./types.js";
|
|
10
|
+
import { ArticleUnavailableError } from "./public-reads.js";
|
|
11
|
+
import { sanitizeExcerpt } from "./excerpt.js";
|
|
12
|
+
import { articleImageSchema, resolveRepresentativeImage } from "./artwork.js";
|
|
13
|
+
import { type PublicationRoutingOptions } from "./routes.js";
|
|
14
|
+
import { type NewsSitemapOptions } from "./news-sitemap.js";
|
|
15
15
|
export { sanitizeExcerpt, ArticleUnavailableError, resolveRepresentativeImage, articleImageSchema };
|
|
16
|
-
export type { ArticleReadResult } from
|
|
16
|
+
export type { ArticleReadResult } from "./public-reads.js";
|
|
17
17
|
export declare function getArticleResult(slug: string, options?: {
|
|
18
18
|
site?: string;
|
|
19
19
|
}): Promise<{
|
|
@@ -466,17 +466,17 @@ export declare function generateAuthorPageMetadata(author: ArticleAuthor, option
|
|
|
466
466
|
* into the browser bundle. Re-exported so `@sonordev/press-kit/articles/server`
|
|
467
467
|
* keeps its existing public API.
|
|
468
468
|
*/
|
|
469
|
-
export { authorEntityId, generateArticleAuthorNode, generateAuthorPersonSchema, generateAuthorSchema, withArticleAuthorIdentity, type AuthorSchemaOptions, } from
|
|
469
|
+
export { authorEntityId, generateArticleAuthorNode, generateAuthorPersonSchema, generateAuthorSchema, withArticleAuthorIdentity, type AuthorSchemaOptions, } from "./author-schema.js";
|
|
470
470
|
/** Sonor article document shape (alias of `Article` from `./types`) */
|
|
471
|
-
export type { Article as ArticleRecord } from
|
|
472
|
-
export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from
|
|
473
|
-
export type { ArticleRoutePost, PublicationRoutingOptions } from
|
|
474
|
-
export { resolveArticleArtwork } from
|
|
475
|
-
export { wrapArticleTables, articleTableCss } from
|
|
476
|
-
export { insertArticlePhotos, articlePhotoCss } from
|
|
477
|
-
export type { ArticlePhotoOptions, ArticlePhotoImageAttributes } from
|
|
478
|
-
export type { ArticleEditorialPhoto } from
|
|
479
|
-
export { FEED_DEFAULT_ITEMS, NEWS_SITEMAP_MAX_URLS, NEWS_SITEMAP_WINDOW_MS, buildNewsSitemapXml, cdata, recentNewsPosts } from
|
|
480
|
-
export type { NewsSitemapOptions, NewsSitemapPost } from
|
|
481
|
-
export { getPublicationIssues, getPublicationIssue, getArticlePreview, createPublicationPreviewHandler, PUBLICATION_PREVIEW_COOKIE, PUBLICATION_PREVIEW_HEADERS } from
|
|
482
|
-
export type { PublicationIssue, PublicationIssueList, ArticlePreview } from
|
|
471
|
+
export type { Article as ArticleRecord } from "./types.js";
|
|
472
|
+
export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from "./routes.js";
|
|
473
|
+
export type { ArticleRoutePost, PublicationRoutingOptions } from "./routes.js";
|
|
474
|
+
export { resolveArticleArtwork } from "./artwork.js";
|
|
475
|
+
export { wrapArticleTables, articleTableCss } from "./article-tables.js";
|
|
476
|
+
export { insertArticlePhotos, articlePhotoCss } from "./article-photos.js";
|
|
477
|
+
export type { ArticlePhotoOptions, ArticlePhotoImageAttributes } from "./article-photos.js";
|
|
478
|
+
export type { ArticleEditorialPhoto } from "./types.js";
|
|
479
|
+
export { FEED_DEFAULT_ITEMS, NEWS_SITEMAP_MAX_URLS, NEWS_SITEMAP_WINDOW_MS, buildNewsSitemapXml, cdata, recentNewsPosts } from "./news-sitemap.js";
|
|
480
|
+
export type { NewsSitemapOptions, NewsSitemapPost } from "./news-sitemap.js";
|
|
481
|
+
export { getPublicationIssues, getPublicationIssue, getArticlePreview, createPublicationPreviewHandler, PUBLICATION_PREVIEW_COOKIE, PUBLICATION_PREVIEW_HEADERS } from "./publication-reads.js";
|
|
482
|
+
export type { PublicationIssue, PublicationIssueList, ArticlePreview } from "./publication-reads.js";
|
|
@@ -10,23 +10,23 @@ import 'server-only';
|
|
|
10
10
|
* Use `@sonordev/press-kit/articles/server` for getArticle, getAllArticleSlugs,
|
|
11
11
|
* metadata, RSS, etc.
|
|
12
12
|
*/
|
|
13
|
-
export { Article } from
|
|
14
|
-
export type { ArticleServerProps, ArticleStyles } from
|
|
15
|
-
export { ArticleList } from
|
|
16
|
-
export type { ArticleListServerProps, ArticleListStyles } from
|
|
17
|
-
export { ClusterLandingPage } from
|
|
18
|
-
export type { ClusterLandingPageProps } from
|
|
19
|
-
export { ClusterNavigation } from
|
|
20
|
-
export type { ClusterNavigationProps } from
|
|
21
|
-
export { PublicationLayout, PublicationPage, ArticlePage, CategoryPage } from
|
|
22
|
-
export type { PublicationLayoutProps, PublicationPageProps, ArticlePageProps, CategoryPageProps, } from
|
|
23
|
-
export { PublicationSidebar } from
|
|
24
|
-
export type { PublicationSidebarProps } from
|
|
25
|
-
export { RelatedPosts } from
|
|
26
|
-
export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from
|
|
27
|
-
export type { ArticleRoutePost, PublicationRoutingOptions } from
|
|
28
|
-
export { resolveArticleArtwork } from
|
|
29
|
-
export { wrapArticleTables, articleTableCss } from
|
|
30
|
-
export { insertArticlePhotos, articlePhotoCss } from
|
|
31
|
-
export type { ArticlePhotoOptions, ArticlePhotoImageAttributes } from
|
|
32
|
-
export type { ArticleEditorialPhoto } from
|
|
13
|
+
export { Article } from "./Article.js";
|
|
14
|
+
export type { ArticleServerProps, ArticleStyles } from "./Article.js";
|
|
15
|
+
export { ArticleList } from "./ArticleList.js";
|
|
16
|
+
export type { ArticleListServerProps, ArticleListStyles } from "./ArticleList.js";
|
|
17
|
+
export { ClusterLandingPage } from "./ClusterLandingPage.js";
|
|
18
|
+
export type { ClusterLandingPageProps } from "./ClusterLandingPage.js";
|
|
19
|
+
export { ClusterNavigation } from "./ClusterNavigation.js";
|
|
20
|
+
export type { ClusterNavigationProps } from "./ClusterNavigation.js";
|
|
21
|
+
export { PublicationLayout, PublicationPage, ArticlePage, CategoryPage } from "./PublicationLayout.js";
|
|
22
|
+
export type { PublicationLayoutProps, PublicationPageProps, ArticlePageProps, CategoryPageProps, } from "./PublicationLayout.js";
|
|
23
|
+
export { PublicationSidebar } from "./PublicationSidebar.js";
|
|
24
|
+
export type { PublicationSidebarProps } from "./PublicationSidebar.js";
|
|
25
|
+
export { RelatedPosts } from "./RelatedPosts.js";
|
|
26
|
+
export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from "./routes.js";
|
|
27
|
+
export type { ArticleRoutePost, PublicationRoutingOptions } from "./routes.js";
|
|
28
|
+
export { resolveArticleArtwork } from "./artwork.js";
|
|
29
|
+
export { wrapArticleTables, articleTableCss } from "./article-tables.js";
|
|
30
|
+
export { insertArticlePhotos, articlePhotoCss } from "./article-photos.js";
|
|
31
|
+
export type { ArticlePhotoOptions, ArticlePhotoImageAttributes } from "./article-photos.js";
|
|
32
|
+
export type { ArticleEditorialPhoto } from "./types.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @sonordev/press-kit/articles - Type definitions
|
|
3
3
|
*/
|
|
4
|
-
import type { PublicationRoutingOptions } from
|
|
4
|
+
import type { PublicationRoutingOptions } from "./routes.js";
|
|
5
5
|
/** Public, approved photo snapshot. Planning briefs and private source metadata stay in Sonor. */
|
|
6
6
|
export interface ArticleEditorialPhoto {
|
|
7
7
|
url: string;
|
package/dist/proxy/index.d.ts
CHANGED
|
@@ -41,11 +41,11 @@
|
|
|
41
41
|
* ```
|
|
42
42
|
*/
|
|
43
43
|
import { NextRequest, NextResponse } from 'next/server';
|
|
44
|
-
import { type RedirectConfig } from
|
|
45
|
-
import { type SecurityHeadersConfig } from
|
|
46
|
-
export type { SecurityHeadersConfig } from
|
|
47
|
-
export { DEFAULT_FRAME_ANCESTORS } from
|
|
48
|
-
export { resolveVisitorSegment, encodeSegment, decodeSegment, type VisitorSegment, type SegmentSource, } from
|
|
44
|
+
import { type RedirectConfig } from "../redirects/index.js";
|
|
45
|
+
import { type SecurityHeadersConfig } from "./securityHeaders.js";
|
|
46
|
+
export type { SecurityHeadersConfig } from "./securityHeaders.js";
|
|
47
|
+
export { DEFAULT_FRAME_ANCESTORS } from "./securityHeaders.js";
|
|
48
|
+
export { resolveVisitorSegment, encodeSegment, decodeSegment, type VisitorSegment, type SegmentSource, } from "./segment.js";
|
|
49
49
|
export interface IdentityConfig {
|
|
50
50
|
/**
|
|
51
51
|
* Also resolve + persist a coarse visitor segment (new-vs-returning + source
|
package/dist/proxy/index.js
CHANGED
|
@@ -5,8 +5,8 @@ import { handleManagedRedirects } from '../chunk-HXJ54KAM.js';
|
|
|
5
5
|
import '../chunk-Z22QVHT4.js';
|
|
6
6
|
import '../chunk-MJP63SSS.js';
|
|
7
7
|
import '../chunk-FESKKJAS.js';
|
|
8
|
-
import '../chunk-A4CC4ZG3.js';
|
|
9
8
|
import { uuid } from '../chunk-GJWI74ZZ.js';
|
|
9
|
+
import '../chunk-A4CC4ZG3.js';
|
|
10
10
|
import '../chunk-PKBMQBKP.js';
|
|
11
11
|
import { NextResponse } from 'next/server.js';
|
|
12
12
|
|
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
* Minimal styling - let site CSS control appearance
|
|
8
8
|
*/
|
|
9
9
|
import React from 'react';
|
|
10
|
-
import type { TestimonialSectionProps } from
|
|
10
|
+
import type { TestimonialSectionProps } from "./types.js";
|
|
11
11
|
export declare function TestimonialSection({ title, subtitle, autoplay, autoplayInterval, showRating, showPhoto, maxReviews, featuredOnly, service, className, }: TestimonialSectionProps): React.JSX.Element | null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { VisualReviewCardProps, VisualReviewGalleryProps } from
|
|
2
|
+
import type { VisualReviewCardProps, VisualReviewGalleryProps } from "./types.js";
|
|
3
3
|
/** Static, server-renderable photo and review card. Review quotes are rendered verbatim. */
|
|
4
4
|
export declare function VisualReviewCard(props: VisualReviewCardProps): React.JSX.Element;
|
|
5
5
|
/** Responsive server-renderable gallery; reviews without photos keep their quote card. */
|
package/dist/reputation/api.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Uses API key authentication (x-api-key header) - project is resolved server-side.
|
|
6
6
|
* Includes retry with backoff for rate limiting (429).
|
|
7
7
|
*/
|
|
8
|
-
import type { Review, ReviewStats } from
|
|
8
|
+
import type { Review, ReviewStats } from "./types.js";
|
|
9
9
|
interface FetchReviewsOptions {
|
|
10
10
|
service?: string;
|
|
11
11
|
limit?: number;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Display client reviews and testimonials on your website
|
|
5
5
|
*/
|
|
6
|
-
export { TestimonialSection } from
|
|
7
|
-
export { VisualReviewCard, VisualReviewGallery } from
|
|
8
|
-
export { fetchReviews, fetchReviewStats } from
|
|
9
|
-
export type { Review, ReviewPhoto, ReviewStats, TestimonialSectionProps, VisualReviewCardProps, VisualReviewGalleryProps } from
|
|
6
|
+
export { TestimonialSection } from "./TestimonialSection.js";
|
|
7
|
+
export { VisualReviewCard, VisualReviewGallery } from "./VisualReviewCard.js";
|
|
8
|
+
export { fetchReviews, fetchReviewStats } from "./api.js";
|
|
9
|
+
export type { Review, ReviewPhoto, ReviewStats, TestimonialSectionProps, VisualReviewCardProps, VisualReviewGalleryProps } from "./types.js";
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
* Importing from `./reputation` (which includes TestimonialSection) pulls in a
|
|
6
6
|
* client-tainted bundle that can't be called from RSC.
|
|
7
7
|
*/
|
|
8
|
-
export { fetchReviews, fetchReviewStats } from
|
|
9
|
-
export { VisualReviewCard, VisualReviewGallery } from
|
|
10
|
-
export type { Review, ReviewPhoto, ReviewStats, TestimonialSectionProps, VisualReviewCardProps, VisualReviewGalleryProps } from
|
|
8
|
+
export { fetchReviews, fetchReviewStats } from "./api.js";
|
|
9
|
+
export { VisualReviewCard, VisualReviewGallery } from "./VisualReviewCard.js";
|
|
10
|
+
export type { Review, ReviewPhoto, ReviewStats, TestimonialSectionProps, VisualReviewCardProps, VisualReviewGalleryProps } from "./types.js";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface ResonanceRuntimeProps {
|
|
2
|
+
site: string;
|
|
3
|
+
apiUrl: string;
|
|
4
|
+
apiKey: string;
|
|
5
|
+
}
|
|
6
|
+
/** Childless shell: policy is primed before identity effects; controller code loads after hydration. */
|
|
7
|
+
export declare function ResonanceRuntime({ site, apiUrl, apiKey }: ResonanceRuntimeProps): null;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ResonanceExperimentExposure } from "../contracts/resonance.js";
|
|
2
|
+
import type { ResonanceController } from "./controller.js";
|
|
3
|
+
export { currentResonanceFormContext } from "./form-context.js";
|
|
4
|
+
/** Capability observation only; never returns the subject proof or grants authority. */
|
|
5
|
+
export declare function getResonanceMeasurementStatus(): {
|
|
6
|
+
state: "blocked" | "legacy_unconfigured" | "pending" | "ready" | "unknown" | "waiting_for_consent";
|
|
7
|
+
reason: string | null;
|
|
8
|
+
policy: "configured" | "legacy_unconfigured" | "resolving";
|
|
9
|
+
analyticsPermitted: boolean;
|
|
10
|
+
advertisingPermitted: boolean;
|
|
11
|
+
providerBlockers: string[];
|
|
12
|
+
};
|
|
13
|
+
export declare function setProviderBlockers(next: readonly string[]): void;
|
|
14
|
+
export declare function registerResonanceController(next: ResonanceController): (() => void) | null;
|
|
15
|
+
/** Actual rendered assignment only. Accepted forms are recorded by the server. */
|
|
16
|
+
export declare function recordResonanceExposure(exposure: ResonanceExperimentExposure): void;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type MeasurementPurpose, type PurposeChoices } from "../shared/measurement-store.js";
|
|
2
|
+
/** The site's maintained CMP remains the owner. Resonance never creates a competing banner/state. */
|
|
3
|
+
export interface ConsentObservation {
|
|
4
|
+
valid: boolean;
|
|
5
|
+
choices: PurposeChoices;
|
|
6
|
+
observedAt: string;
|
|
7
|
+
/** Actual current CMP evidence, not an inference from a visit or newsletter opt-in. */
|
|
8
|
+
source: 'cmp' | 'user_preference';
|
|
9
|
+
}
|
|
10
|
+
export interface ConsentReadContext {
|
|
11
|
+
projectId: string | null;
|
|
12
|
+
site: string;
|
|
13
|
+
configRevision: string | null;
|
|
14
|
+
policyRevision: string | null;
|
|
15
|
+
requiredPurposes: readonly MeasurementPurpose[];
|
|
16
|
+
}
|
|
17
|
+
export interface ResonanceConsentAdapter {
|
|
18
|
+
requiredPurposes: readonly MeasurementPurpose[];
|
|
19
|
+
/** Return valid:false if existing CMP evidence is invalid for this policy. */
|
|
20
|
+
read(context?: ConsentReadContext): ConsentObservation | Promise<ConsentObservation>;
|
|
21
|
+
subscribe(onChange: () => void): () => void;
|
|
22
|
+
}
|
|
23
|
+
export declare const getConsentAdapter: () => ResonanceConsentAdapter | null;
|
|
24
|
+
export declare const subscribeConsentAdapter: (listener: () => void) => (() => void);
|
|
25
|
+
export declare function registerResonanceConsentAdapter(next: ResonanceConsentAdapter): () => void;
|
|
26
|
+
export declare const unknownConsentObservation: () => ConsentObservation;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** One existing page-wide Resonance controller registry; no permission or proof owner here. */
|
|
2
|
+
import type { ResonanceExperimentExposure } from "../contracts/resonance.js";
|
|
3
|
+
import type { ResonanceController, RenderedResonanceContext } from "./controller.js";
|
|
4
|
+
interface BridgeStore {
|
|
5
|
+
controller: ResonanceController | null;
|
|
6
|
+
blockers: readonly string[];
|
|
7
|
+
registrationConflict: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const resonanceControllerState: BridgeStore;
|
|
10
|
+
/** Internal rendered seam: mint the exposure ID in the actual registered controller, once. */
|
|
11
|
+
export declare function recordRenderedResonanceExposure(exposure: Omit<ResonanceExperimentExposure, 'exposureId'>, context?: RenderedResonanceContext): boolean;
|
|
12
|
+
/** Release only this actual effect's registration; a newer render is untouched. */
|
|
13
|
+
export declare function releaseRenderedResonanceExposure(exposure: Omit<ResonanceExperimentExposure, 'exposureId'>): void;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { type ResonanceMeasurementOccurrence, type ResonanceExperimentExposure } from "../contracts/resonance.js";
|
|
2
|
+
import type { ConsentObservation, ResonanceConsentAdapter } from "./consent-adapter.js";
|
|
3
|
+
export interface ResonanceTransport {
|
|
4
|
+
/** Existing sonorFetch adapter; the controller never logs proof or input. */
|
|
5
|
+
request(path: string, init: RequestInit, stillAllowed?: () => boolean): Promise<{
|
|
6
|
+
status: number;
|
|
7
|
+
body: unknown;
|
|
8
|
+
}>;
|
|
9
|
+
}
|
|
10
|
+
export interface ResonanceControllerOptions {
|
|
11
|
+
site: string;
|
|
12
|
+
transport: ResonanceTransport;
|
|
13
|
+
now?: () => number;
|
|
14
|
+
/** Lazy current-location read, called only for a new consented page view. No query history. */
|
|
15
|
+
readClickIdentifiers?: (pathname: string) => unknown;
|
|
16
|
+
/** Actual current first-party cookies only; called after proof and an owned page mapping. */
|
|
17
|
+
readMetaCookieObservation?: (pathname: string) => unknown;
|
|
18
|
+
/** Test seam and lifecycle notification; no provider dispatch happens inside consent capture. */
|
|
19
|
+
onState?: () => void;
|
|
20
|
+
onOccurrence?: (event: ResonanceMeasurementOccurrence) => void;
|
|
21
|
+
}
|
|
22
|
+
/** Existing native page-version identity is a local render fence, never a wire token. */
|
|
23
|
+
export interface RenderedResonanceContext {
|
|
24
|
+
pagePath: string;
|
|
25
|
+
pageVersionId: string;
|
|
26
|
+
}
|
|
27
|
+
/** One scope's consent/occurrence state machine. No storage, no pre-choice event backlog. */
|
|
28
|
+
export declare class ResonanceController {
|
|
29
|
+
private readonly options;
|
|
30
|
+
private config;
|
|
31
|
+
private proof;
|
|
32
|
+
private adapter;
|
|
33
|
+
private unsubscribe;
|
|
34
|
+
private configEpoch;
|
|
35
|
+
private readEpoch;
|
|
36
|
+
private deliveryEpoch;
|
|
37
|
+
private stopped;
|
|
38
|
+
private busy;
|
|
39
|
+
private latest;
|
|
40
|
+
private latestEpoch;
|
|
41
|
+
private completedEpoch;
|
|
42
|
+
private path;
|
|
43
|
+
private sourceMarker;
|
|
44
|
+
private navigationSequence;
|
|
45
|
+
private recordedNavigationKey;
|
|
46
|
+
private navigation;
|
|
47
|
+
private renderedFrame;
|
|
48
|
+
private acceptedExposure;
|
|
49
|
+
private retry;
|
|
50
|
+
private expiryTimer;
|
|
51
|
+
private configExpiryTimer;
|
|
52
|
+
private refreshTimer;
|
|
53
|
+
private refreshing;
|
|
54
|
+
private renewing;
|
|
55
|
+
private renewalTimer;
|
|
56
|
+
readonly status: {
|
|
57
|
+
state: 'unknown' | 'legacy_unconfigured' | 'waiting_for_consent' | 'pending' | 'ready' | 'blocked';
|
|
58
|
+
reason: string | null;
|
|
59
|
+
};
|
|
60
|
+
constructor(options: ResonanceControllerOptions);
|
|
61
|
+
private now;
|
|
62
|
+
private changed;
|
|
63
|
+
/** One current-navigation slot, not a history cache. A true identity change
|
|
64
|
+
* retires its receipt and retry work; late deliveries cannot rejoin it. */
|
|
65
|
+
private discardRenderedFrame;
|
|
66
|
+
private invalidate;
|
|
67
|
+
private timerDelay;
|
|
68
|
+
private timers;
|
|
69
|
+
private scheduleConfigRefresh;
|
|
70
|
+
/** A safe public read refreshes policy freshness without re-prompting or changing consent. */
|
|
71
|
+
refreshConfig(): Promise<void>;
|
|
72
|
+
start(): Promise<void>;
|
|
73
|
+
setAdapter(adapter: ResonanceConsentAdapter | null): void;
|
|
74
|
+
private consentContext;
|
|
75
|
+
private configPolicy;
|
|
76
|
+
private readConsent;
|
|
77
|
+
/** Maintained CMP observations may resume valid consent; this never prompts or infers a grant. */
|
|
78
|
+
observe(observation: ConsentObservation): void;
|
|
79
|
+
private captureLatest;
|
|
80
|
+
private verifyProofScope;
|
|
81
|
+
renew(): Promise<void>;
|
|
82
|
+
/** Connectivity recovery renews existing proof; it never replays a failed grant. */
|
|
83
|
+
recover(): Promise<void>;
|
|
84
|
+
navigate(path: string, sourceMarker?: string | null): void;
|
|
85
|
+
private recordCurrentNavigation;
|
|
86
|
+
exposure(experiment: ResonanceExperimentExposure): Promise<void>;
|
|
87
|
+
/** Internal rendered occurrence seam; retry queues retain the resulting immutable event and ID. */
|
|
88
|
+
renderedExposure(experiment: Omit<ResonanceExperimentExposure, 'exposureId'>, context?: RenderedResonanceContext): Promise<void> | null;
|
|
89
|
+
/** Close form attachment immediately, but retain this single bounded frame
|
|
90
|
+
* while the current assignment is revalidated. An exact native-identity rejoin
|
|
91
|
+
* keeps its original occurrence/receipt even after an asynchronous fallback.
|
|
92
|
+
* Navigation, replacement, consent/scope invalidation and stop retire it. */
|
|
93
|
+
releaseRenderedExposure(experiment: Omit<ResonanceExperimentExposure, 'exposureId'>): void;
|
|
94
|
+
private exposurePermitted;
|
|
95
|
+
private submitExposure;
|
|
96
|
+
private emit;
|
|
97
|
+
private deliver;
|
|
98
|
+
/** Explicit network recovery only; identical occurrence ID, never old preference/scope epochs. */
|
|
99
|
+
retryPending(): void;
|
|
100
|
+
/** Optional server receipt reference, never a claim that a form converted. */
|
|
101
|
+
formExposureId(): string | null;
|
|
102
|
+
stop(): void;
|
|
103
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ResonanceRuntime, type ResonanceRuntimeProps } from "./ResonanceRuntime.js";
|
|
2
|
+
export { registerResonanceConsentAdapter, type ResonanceConsentAdapter, type ConsentObservation, type ConsentReadContext } from "./consent-adapter.js";
|
|
3
|
+
export { recordResonanceExposure, getResonanceMeasurementStatus } from "./bridge.js";
|
|
4
|
+
export type { MeasurementPurpose, PurposeChoice, PurposeChoices } from "../shared/measurement-policy.js";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
export { getResonanceMeasurementStatus, recordResonanceExposure, registerResonanceConsentAdapter } from '../chunk-WYNDBJG7.js';
|
|
3
|
+
export { ResonanceRuntime } from '../chunk-AWLPFFPO.js';
|
|
4
|
+
import '../chunk-MDBXGN6W.js';
|
|
5
|
+
import '../chunk-YC7ELZS3.js';
|
|
6
|
+
import '../chunk-KMNHNCVG.js';
|
|
7
|
+
import '../chunk-MOACHHOJ.js';
|
|
8
|
+
import '../chunk-FRY6PBT6.js';
|
|
9
|
+
import '../chunk-PKBMQBKP.js';
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { ResonanceMeasurementConfig } from "../contracts/resonance.js";
|
|
2
|
+
/**
|
|
3
|
+
* Meta browser pixel loader, controls C1 to C21 of the Resonance Meta pixel standard.
|
|
4
|
+
*
|
|
5
|
+
* Option A: the pixel is loaded only so Meta's own first-party cookies exist. This module sends NO browser
|
|
6
|
+
* event (it has no `track` capability), passes no user data to `init`, reads nothing from the page beyond the
|
|
7
|
+
* URL hygiene checks, attaches no DOM listener and never writes `_fbp` or `_fbc`. The Conversions API
|
|
8
|
+
* `PageView` the server builds stays the only event.
|
|
9
|
+
*
|
|
10
|
+
* The loader ships dark: a server witness for a controls revision listed in META_BROWSER_CONTROLS_IMPLEMENTED
|
|
11
|
+
* is the only thing that lets it start, and that list stays empty until Security accepts the evidence bundle.
|
|
12
|
+
*/
|
|
13
|
+
export declare const META_BROWSER_CONTROLS_V1 = "META_BROWSER_CONTROLS_V1";
|
|
14
|
+
/** Controls revisions this build may start. Empty on purpose: add a revision only with Security's acceptance. */
|
|
15
|
+
export declare const META_BROWSER_CONTROLS_IMPLEMENTED: readonly string[];
|
|
16
|
+
/** One fixed URL. Locale is constant (no navigator.language); never a mirror, never a tag manager. */
|
|
17
|
+
export declare const META_SDK_URL = "https://connect.facebook.net/en_US/fbevents.js";
|
|
18
|
+
export type MetaBlocker = 'meta_duplicate_installation' | 'meta_scope_change_requires_reload' | 'meta_load_failed' | 'meta_multiple_destinations' | 'meta_page_not_eligible' | 'meta_url_not_clean';
|
|
19
|
+
export interface MetaPixelHooks {
|
|
20
|
+
/** The provider runtime's own fence: the same function the Google loader uses. Never a copy. */
|
|
21
|
+
allowed(): boolean;
|
|
22
|
+
setBlocker(code: MetaBlocker, present: boolean): void;
|
|
23
|
+
/** Test seam; production reads META_BROWSER_CONTROLS_IMPLEMENTED. */
|
|
24
|
+
implementedRevisions?: readonly string[];
|
|
25
|
+
}
|
|
26
|
+
export type MetaPageDecision = {
|
|
27
|
+
ok: true;
|
|
28
|
+
} | {
|
|
29
|
+
ok: false;
|
|
30
|
+
blocker: MetaBlocker;
|
|
31
|
+
};
|
|
32
|
+
/** Whether Meta may initialize on THIS page right now. Pure reads; no side effects. */
|
|
33
|
+
export declare function decideMetaPage(config: ResonanceMeasurementConfig): MetaPageDecision;
|
|
34
|
+
export declare class MetaPixelLoader {
|
|
35
|
+
private readonly config;
|
|
36
|
+
private readonly hooks;
|
|
37
|
+
private generation;
|
|
38
|
+
private owned;
|
|
39
|
+
private granted;
|
|
40
|
+
private cookiesExpired;
|
|
41
|
+
constructor(config: ResonanceMeasurementConfig, hooks: MetaPixelHooks);
|
|
42
|
+
private destinations;
|
|
43
|
+
/** Configuration-level facts, independent of consent and of the page. */
|
|
44
|
+
inspect(): {
|
|
45
|
+
destinations: number;
|
|
46
|
+
multiple: boolean;
|
|
47
|
+
witnessed: boolean;
|
|
48
|
+
};
|
|
49
|
+
/** Every SDK command re-checks the fence; a withdrawn runtime pushes nothing. */
|
|
50
|
+
private command;
|
|
51
|
+
private blockers;
|
|
52
|
+
private foreign;
|
|
53
|
+
update(): void;
|
|
54
|
+
/** Single-page navigation: re-evaluate; never re-initialize. */
|
|
55
|
+
navigate(): void;
|
|
56
|
+
private resume;
|
|
57
|
+
private install;
|
|
58
|
+
/** The grant is issued live, after the SDK has executed: a grant queued ahead of the script never releases its lock. */
|
|
59
|
+
private afterLoad;
|
|
60
|
+
private grant;
|
|
61
|
+
/** The page stopped being eligible or clean: pause the SDK without forgetting the installation. */
|
|
62
|
+
private pause;
|
|
63
|
+
/** Before the SDK has executed nothing needs retracting: remove everything so a late script finds no queue and does nothing. */
|
|
64
|
+
private discard;
|
|
65
|
+
withdraw(): void;
|
|
66
|
+
stop(): void;
|
|
67
|
+
}
|