@jmp-technologies/analytics 0.1.38 → 0.1.39

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.
Files changed (82) hide show
  1. package/README.md +1 -1
  2. package/dist/astro/client.cjs +143 -4
  3. package/dist/astro/client.cjs.map +1 -1
  4. package/dist/astro/client.d.cts +2 -2
  5. package/dist/astro/client.d.ts +2 -2
  6. package/dist/astro/client.js +1 -1
  7. package/dist/astro/content.cjs +150 -5
  8. package/dist/astro/content.cjs.map +1 -1
  9. package/dist/astro/content.d.cts +3 -3
  10. package/dist/astro/content.d.ts +3 -3
  11. package/dist/astro/content.js +2 -2
  12. package/dist/astro/integration.cjs +143 -4
  13. package/dist/astro/integration.cjs.map +1 -1
  14. package/dist/astro/integration.js +2 -2
  15. package/dist/astro/middleware.d.cts +2 -2
  16. package/dist/astro/middleware.d.ts +2 -2
  17. package/dist/astro/register.cjs +143 -4
  18. package/dist/astro/register.cjs.map +1 -1
  19. package/dist/astro/register.js +2 -2
  20. package/dist/{chunk-NCF3J4HV.js → chunk-BXPMVR7M.js} +2 -2
  21. package/dist/{chunk-JVFN7MF2.js → chunk-JJ3JP3RV.js} +2 -2
  22. package/dist/{chunk-WHUHCTBQ.js → chunk-M66PHSBO.js} +2 -2
  23. package/dist/{chunk-PQOTEV6O.js → chunk-OCIOQIE4.js} +2 -2
  24. package/dist/{chunk-EBU4DKHW.js → chunk-XAEWXWSP.js} +153 -6
  25. package/dist/chunk-XAEWXWSP.js.map +1 -0
  26. package/dist/constants-DTZMYgi4.d.cts +12 -0
  27. package/dist/constants-DTZMYgi4.d.ts +12 -0
  28. package/dist/{create-jmp-analytics-DMSXmVIH.d.cts → create-jmp-analytics-C1IH32ZF.d.cts} +1 -1
  29. package/dist/{create-jmp-analytics-JZ3pqNBQ.d.ts → create-jmp-analytics-CjVYSmPJ.d.ts} +1 -1
  30. package/dist/index.cjs +154 -5
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.d.cts +7 -13
  33. package/dist/index.d.ts +7 -13
  34. package/dist/index.js +5 -1
  35. package/dist/next/content.cjs +154 -5
  36. package/dist/next/content.cjs.map +1 -1
  37. package/dist/next/content.d.cts +3 -2
  38. package/dist/next/content.d.ts +3 -2
  39. package/dist/next/content.js +7 -2
  40. package/dist/next/content.js.map +1 -1
  41. package/dist/next/instrumentation.cjs +143 -4
  42. package/dist/next/instrumentation.cjs.map +1 -1
  43. package/dist/next/instrumentation.js +1 -1
  44. package/dist/next/landing-pages.cjs +150 -5
  45. package/dist/next/landing-pages.cjs.map +1 -1
  46. package/dist/next/landing-pages.d.cts +2 -2
  47. package/dist/next/landing-pages.d.ts +2 -2
  48. package/dist/next/landing-pages.js +2 -2
  49. package/dist/next/locations.cjs +150 -5
  50. package/dist/next/locations.cjs.map +1 -1
  51. package/dist/next/locations.d.cts +2 -2
  52. package/dist/next/locations.d.ts +2 -2
  53. package/dist/next/locations.js +2 -2
  54. package/dist/next/middleware.d.cts +2 -2
  55. package/dist/next/middleware.d.ts +2 -2
  56. package/dist/next/site-root-server.cjs +150 -5
  57. package/dist/next/site-root-server.cjs.map +1 -1
  58. package/dist/next/site-root-server.js +3 -3
  59. package/dist/next.cjs +143 -4
  60. package/dist/next.cjs.map +1 -1
  61. package/dist/next.d.cts +3 -3
  62. package/dist/next.d.ts +3 -3
  63. package/dist/next.js +3 -3
  64. package/dist/react.cjs +143 -4
  65. package/dist/react.cjs.map +1 -1
  66. package/dist/react.d.cts +2 -2
  67. package/dist/react.d.ts +2 -2
  68. package/dist/react.js +2 -2
  69. package/dist/{site-config-BLnwuRC2.d.ts → site-config-BEaYpZ3X.d.ts} +1 -1
  70. package/dist/{site-config-BZJS8Hp_.d.cts → site-config-BN6Z2zIf.d.cts} +1 -1
  71. package/dist/{track-page-view-DGKRUIxm.d.ts → track-page-view-B3OwUOYl.d.ts} +1 -1
  72. package/dist/{track-page-view-BJQqn2Bg.d.cts → track-page-view-BeVjC-pV.d.cts} +1 -1
  73. package/dist/{types-CYrgEwUF.d.ts → types-uwXEaMD6.d.cts} +29 -0
  74. package/dist/{types-CYrgEwUF.d.cts → types-uwXEaMD6.d.ts} +29 -0
  75. package/dist/{utils-B1Nt3sBU.d.ts → utils-6a6lNKsg.d.ts} +1 -1
  76. package/dist/{utils-U6TGMIAB.d.cts → utils-Cbb3CO3i.d.cts} +1 -1
  77. package/package.json +1 -1
  78. package/dist/chunk-EBU4DKHW.js.map +0 -1
  79. /package/dist/{chunk-NCF3J4HV.js.map → chunk-BXPMVR7M.js.map} +0 -0
  80. /package/dist/{chunk-JVFN7MF2.js.map → chunk-JJ3JP3RV.js.map} +0 -0
  81. /package/dist/{chunk-WHUHCTBQ.js.map → chunk-M66PHSBO.js.map} +0 -0
  82. /package/dist/{chunk-PQOTEV6O.js.map → chunk-OCIOQIE4.js.map} +0 -0
package/dist/index.d.cts CHANGED
@@ -1,17 +1,11 @@
1
1
  export { b as buildLandingCaptureInlineScript } from './landing-capture-C8pyZWuF.cjs';
2
- import { J as JmpAnalytics } from './create-jmp-analytics-DMSXmVIH.cjs';
3
- export { B as BOOKING_LINK_HOSTS, C as ClassifiedContactLink, b as ContactLinkChannel, c as classifyContactHref, d as createJmpAnalytics, i as isJmpTrackingConsentGranted, s as setJmpTrackingConsent, a as subscribeJmpTrackingConsent } from './create-jmp-analytics-DMSXmVIH.cjs';
4
- import { n as JmpContentConfig, t as TrackServerPageViewOptions, j as JmpTrustBundle, m as JmpContentWrapper, d as JmpLandingPageKind, b as JmpLandingPage, c as JmpLandingPageDetail, g as JmpPopularPagesResult, J as JmpBlogPost, u as JmpBlogPostDetail, v as JmpFaqItemDetail, a as JmpFaqItem, e as JmpLandingPageSitemapEntry, f as JmpLegalDocument, l as JmpWebsiteLocationDetail, k as JmpWebsiteLocation, h as JmpSiteProfile, q as JmpAnalyticsConfig } from './types-CYrgEwUF.cjs';
5
- export { w as JmpContactExtraManifest, x as JmpContentLocaleAlternate, o as JmpContentManifest, y as JmpContentRouteManifest, z as JmpContentWrapperReportMode, A as JmpCredential, r as JmpEventType, B as JmpPartnerLogo, C as JmpPopularPage, p as JmpServerRequestLike, i as JmpTestimonial, D as JmpTrustBlockManifest, E as JmpTrustSection, F as JmpTrustStat, G as JmpTrustSummary, L as LeadMetadata, H as LeadMetadataValue, s as TrackLeadOptions, T as TrackPageViewOptions, I as normalizeJmpContentManifest, K as stableJmpManifestFingerprint } from './types-CYrgEwUF.cjs';
2
+ import { J as JmpAnalytics } from './create-jmp-analytics-C1IH32ZF.cjs';
3
+ export { B as BOOKING_LINK_HOSTS, C as ClassifiedContactLink, b as ContactLinkChannel, c as classifyContactHref, d as createJmpAnalytics, i as isJmpTrackingConsentGranted, s as setJmpTrackingConsent, a as subscribeJmpTrackingConsent } from './create-jmp-analytics-C1IH32ZF.cjs';
4
+ export { D as DEFAULT_JMP_BROWSER_PAGE_VIEW_DEDUPE_MS, b as JMP_ANALYTICS_SDK_VERSION, J as JMP_CONTENT_CACHE_TAG, a as JMP_CONTENT_REVALIDATE_SECONDS, c as JMP_TRACKING_CONSENT_STORAGE_KEY } from './constants-DTZMYgi4.cjs';
5
+ import { n as JmpContentConfig, t as TrackServerPageViewOptions, j as JmpTrustBundle, m as JmpContentWrapper, d as JmpLandingPageKind, b as JmpLandingPage, c as JmpLandingPageDetail, g as JmpPopularPagesResult, J as JmpBlogPost, u as JmpBlogPostDetail, v as JmpFaqItemDetail, a as JmpFaqItem, e as JmpLandingPageSitemapEntry, f as JmpLegalDocument, l as JmpWebsiteLocationDetail, k as JmpWebsiteLocation, h as JmpSiteProfile, q as JmpAnalyticsConfig } from './types-uwXEaMD6.cjs';
6
+ export { w as JmpContactExtraManifest, x as JmpContentLocaleAlternate, o as JmpContentManifest, y as JmpContentRouteManifest, z as JmpContentWrapperReportMode, A as JmpCredential, r as JmpEventType, B as JmpPartnerLogo, C as JmpPopularPage, p as JmpServerRequestLike, i as JmpTestimonial, D as JmpTrustBlockManifest, E as JmpTrustSection, F as JmpTrustStat, G as JmpTrustSummary, L as LeadMetadata, H as LeadMetadataValue, s as TrackLeadOptions, T as TrackPageViewOptions, I as normalizeJmpContentManifest, K as stableJmpManifestFingerprint } from './types-uwXEaMD6.cjs';
6
7
  export { J as JmpPublicEnv, r as readJmpPublicEnvFromProcess } from './env-public-B6Y0DG68.cjs';
7
- export { a as JmpSiteContactFallback, b as JmpSiteDefinition, d as defineJmpSite, g as getJmpContentConfig, c as getJmpSiteDefinition } from './site-config-BZJS8Hp_.cjs';
8
-
9
- /** Published package version — sent with capabilities for admin readiness. */
10
- declare const JMP_ANALYTICS_SDK_VERSION: string;
11
- /** `localStorage` key when {@link JmpAnalyticsConfig.requireConsent} is enabled. */
12
- declare const JMP_TRACKING_CONSENT_STORAGE_KEY = "jmp_analytics_consent_v1";
13
- /** Default `pageViewDedupeMs` when resolving browser config from env (Strict Mode / SPA). */
14
- declare const DEFAULT_JMP_BROWSER_PAGE_VIEW_DEDUPE_MS = 2500;
8
+ export { a as JmpSiteContactFallback, b as JmpSiteDefinition, d as defineJmpSite, g as getJmpContentConfig, c as getJmpSiteDefinition } from './site-config-BN6Z2zIf.cjs';
15
9
 
16
10
  declare function trackJmpServerPageView(config: JmpContentConfig, options?: TrackServerPageViewOptions): Promise<void>;
17
11
 
@@ -111,4 +105,4 @@ declare function getOrCreateJmpAnalyticsFromBrowserEnv(overrides?: Partial<JmpAn
111
105
  */
112
106
  declare function createJmpContentClientFromServerEnv(overrides?: Partial<JmpContentConfig>): JmpContentClient | null;
113
107
 
114
- export { DEFAULT_JMP_BROWSER_PAGE_VIEW_DEDUPE_MS, JMP_ANALYTICS_SDK_VERSION, JMP_TRACKING_CONSENT_STORAGE_KEY, JmpAnalytics, JmpAnalyticsConfig, JmpBlogPost, JmpBlogPostDetail, type JmpContentClient, JmpContentConfig, JmpContentWrapper, JmpFaqItem, JmpFaqItemDetail, JmpLandingPage, JmpLandingPageDetail, JmpLandingPageKind, JmpLandingPageSitemapEntry, JmpLegalDocument, JmpPopularPagesResult, JmpSiteProfile, JmpTrustBundle, JmpWebsiteLocation, JmpWebsiteLocationDetail, TrackServerPageViewOptions, createJmpContentClient, createJmpContentClientFromServerEnv, getDiscoveredContentWrappers, getJmpBlogPost, getJmpBlogPostDetail, getJmpBlogPosts, getJmpBrowserAnalyticsConfigFromEnv, getJmpFaqDetail, getJmpFaqs, getJmpLandingPageDetail, getJmpLandingPageSitemap, getJmpLandingPages, getJmpLegalDocument, getJmpLegalDocuments, getJmpLocationDetail, getJmpLocations, getJmpPopularPages, getJmpRobotsTxt, getJmpServerContentConfigFromEnv, getJmpSiteProfile, getJmpTrustBundle, getOrCreateJmpAnalyticsFromBrowserEnv, inferTrustWrapperSlots, isJmpBrowserAnalyticsEnvConfigured, isJmpServerContentEnvConfigured, markContentWrapper, registerJmpContentWrappers, resetContentWrapperDiscoveryForTests, trackJmpServerPageView };
108
+ export { JmpAnalytics, JmpAnalyticsConfig, JmpBlogPost, JmpBlogPostDetail, type JmpContentClient, JmpContentConfig, JmpContentWrapper, JmpFaqItem, JmpFaqItemDetail, JmpLandingPage, JmpLandingPageDetail, JmpLandingPageKind, JmpLandingPageSitemapEntry, JmpLegalDocument, JmpPopularPagesResult, JmpSiteProfile, JmpTrustBundle, JmpWebsiteLocation, JmpWebsiteLocationDetail, TrackServerPageViewOptions, createJmpContentClient, createJmpContentClientFromServerEnv, getDiscoveredContentWrappers, getJmpBlogPost, getJmpBlogPostDetail, getJmpBlogPosts, getJmpBrowserAnalyticsConfigFromEnv, getJmpFaqDetail, getJmpFaqs, getJmpLandingPageDetail, getJmpLandingPageSitemap, getJmpLandingPages, getJmpLegalDocument, getJmpLegalDocuments, getJmpLocationDetail, getJmpLocations, getJmpPopularPages, getJmpRobotsTxt, getJmpServerContentConfigFromEnv, getJmpSiteProfile, getJmpTrustBundle, getOrCreateJmpAnalyticsFromBrowserEnv, inferTrustWrapperSlots, isJmpBrowserAnalyticsEnvConfigured, isJmpServerContentEnvConfigured, markContentWrapper, registerJmpContentWrappers, resetContentWrapperDiscoveryForTests, trackJmpServerPageView };
package/dist/index.d.ts CHANGED
@@ -1,17 +1,11 @@
1
1
  export { b as buildLandingCaptureInlineScript } from './landing-capture-C8pyZWuF.js';
2
- import { J as JmpAnalytics } from './create-jmp-analytics-JZ3pqNBQ.js';
3
- export { B as BOOKING_LINK_HOSTS, C as ClassifiedContactLink, b as ContactLinkChannel, c as classifyContactHref, d as createJmpAnalytics, i as isJmpTrackingConsentGranted, s as setJmpTrackingConsent, a as subscribeJmpTrackingConsent } from './create-jmp-analytics-JZ3pqNBQ.js';
4
- import { n as JmpContentConfig, t as TrackServerPageViewOptions, j as JmpTrustBundle, m as JmpContentWrapper, d as JmpLandingPageKind, b as JmpLandingPage, c as JmpLandingPageDetail, g as JmpPopularPagesResult, J as JmpBlogPost, u as JmpBlogPostDetail, v as JmpFaqItemDetail, a as JmpFaqItem, e as JmpLandingPageSitemapEntry, f as JmpLegalDocument, l as JmpWebsiteLocationDetail, k as JmpWebsiteLocation, h as JmpSiteProfile, q as JmpAnalyticsConfig } from './types-CYrgEwUF.js';
5
- export { w as JmpContactExtraManifest, x as JmpContentLocaleAlternate, o as JmpContentManifest, y as JmpContentRouteManifest, z as JmpContentWrapperReportMode, A as JmpCredential, r as JmpEventType, B as JmpPartnerLogo, C as JmpPopularPage, p as JmpServerRequestLike, i as JmpTestimonial, D as JmpTrustBlockManifest, E as JmpTrustSection, F as JmpTrustStat, G as JmpTrustSummary, L as LeadMetadata, H as LeadMetadataValue, s as TrackLeadOptions, T as TrackPageViewOptions, I as normalizeJmpContentManifest, K as stableJmpManifestFingerprint } from './types-CYrgEwUF.js';
2
+ import { J as JmpAnalytics } from './create-jmp-analytics-CjVYSmPJ.js';
3
+ export { B as BOOKING_LINK_HOSTS, C as ClassifiedContactLink, b as ContactLinkChannel, c as classifyContactHref, d as createJmpAnalytics, i as isJmpTrackingConsentGranted, s as setJmpTrackingConsent, a as subscribeJmpTrackingConsent } from './create-jmp-analytics-CjVYSmPJ.js';
4
+ export { D as DEFAULT_JMP_BROWSER_PAGE_VIEW_DEDUPE_MS, b as JMP_ANALYTICS_SDK_VERSION, J as JMP_CONTENT_CACHE_TAG, a as JMP_CONTENT_REVALIDATE_SECONDS, c as JMP_TRACKING_CONSENT_STORAGE_KEY } from './constants-DTZMYgi4.js';
5
+ import { n as JmpContentConfig, t as TrackServerPageViewOptions, j as JmpTrustBundle, m as JmpContentWrapper, d as JmpLandingPageKind, b as JmpLandingPage, c as JmpLandingPageDetail, g as JmpPopularPagesResult, J as JmpBlogPost, u as JmpBlogPostDetail, v as JmpFaqItemDetail, a as JmpFaqItem, e as JmpLandingPageSitemapEntry, f as JmpLegalDocument, l as JmpWebsiteLocationDetail, k as JmpWebsiteLocation, h as JmpSiteProfile, q as JmpAnalyticsConfig } from './types-uwXEaMD6.js';
6
+ export { w as JmpContactExtraManifest, x as JmpContentLocaleAlternate, o as JmpContentManifest, y as JmpContentRouteManifest, z as JmpContentWrapperReportMode, A as JmpCredential, r as JmpEventType, B as JmpPartnerLogo, C as JmpPopularPage, p as JmpServerRequestLike, i as JmpTestimonial, D as JmpTrustBlockManifest, E as JmpTrustSection, F as JmpTrustStat, G as JmpTrustSummary, L as LeadMetadata, H as LeadMetadataValue, s as TrackLeadOptions, T as TrackPageViewOptions, I as normalizeJmpContentManifest, K as stableJmpManifestFingerprint } from './types-uwXEaMD6.js';
6
7
  export { J as JmpPublicEnv, r as readJmpPublicEnvFromProcess } from './env-public-B6Y0DG68.js';
7
- export { a as JmpSiteContactFallback, b as JmpSiteDefinition, d as defineJmpSite, g as getJmpContentConfig, c as getJmpSiteDefinition } from './site-config-BLnwuRC2.js';
8
-
9
- /** Published package version — sent with capabilities for admin readiness. */
10
- declare const JMP_ANALYTICS_SDK_VERSION: string;
11
- /** `localStorage` key when {@link JmpAnalyticsConfig.requireConsent} is enabled. */
12
- declare const JMP_TRACKING_CONSENT_STORAGE_KEY = "jmp_analytics_consent_v1";
13
- /** Default `pageViewDedupeMs` when resolving browser config from env (Strict Mode / SPA). */
14
- declare const DEFAULT_JMP_BROWSER_PAGE_VIEW_DEDUPE_MS = 2500;
8
+ export { a as JmpSiteContactFallback, b as JmpSiteDefinition, d as defineJmpSite, g as getJmpContentConfig, c as getJmpSiteDefinition } from './site-config-BEaYpZ3X.js';
15
9
 
16
10
  declare function trackJmpServerPageView(config: JmpContentConfig, options?: TrackServerPageViewOptions): Promise<void>;
17
11
 
@@ -111,4 +105,4 @@ declare function getOrCreateJmpAnalyticsFromBrowserEnv(overrides?: Partial<JmpAn
111
105
  */
112
106
  declare function createJmpContentClientFromServerEnv(overrides?: Partial<JmpContentConfig>): JmpContentClient | null;
113
107
 
114
- export { DEFAULT_JMP_BROWSER_PAGE_VIEW_DEDUPE_MS, JMP_ANALYTICS_SDK_VERSION, JMP_TRACKING_CONSENT_STORAGE_KEY, JmpAnalytics, JmpAnalyticsConfig, JmpBlogPost, JmpBlogPostDetail, type JmpContentClient, JmpContentConfig, JmpContentWrapper, JmpFaqItem, JmpFaqItemDetail, JmpLandingPage, JmpLandingPageDetail, JmpLandingPageKind, JmpLandingPageSitemapEntry, JmpLegalDocument, JmpPopularPagesResult, JmpSiteProfile, JmpTrustBundle, JmpWebsiteLocation, JmpWebsiteLocationDetail, TrackServerPageViewOptions, createJmpContentClient, createJmpContentClientFromServerEnv, getDiscoveredContentWrappers, getJmpBlogPost, getJmpBlogPostDetail, getJmpBlogPosts, getJmpBrowserAnalyticsConfigFromEnv, getJmpFaqDetail, getJmpFaqs, getJmpLandingPageDetail, getJmpLandingPageSitemap, getJmpLandingPages, getJmpLegalDocument, getJmpLegalDocuments, getJmpLocationDetail, getJmpLocations, getJmpPopularPages, getJmpRobotsTxt, getJmpServerContentConfigFromEnv, getJmpSiteProfile, getJmpTrustBundle, getOrCreateJmpAnalyticsFromBrowserEnv, inferTrustWrapperSlots, isJmpBrowserAnalyticsEnvConfigured, isJmpServerContentEnvConfigured, markContentWrapper, registerJmpContentWrappers, resetContentWrapperDiscoveryForTests, trackJmpServerPageView };
108
+ export { JmpAnalytics, JmpAnalyticsConfig, JmpBlogPost, JmpBlogPostDetail, type JmpContentClient, JmpContentConfig, JmpContentWrapper, JmpFaqItem, JmpFaqItemDetail, JmpLandingPage, JmpLandingPageDetail, JmpLandingPageKind, JmpLandingPageSitemapEntry, JmpLegalDocument, JmpPopularPagesResult, JmpSiteProfile, JmpTrustBundle, JmpWebsiteLocation, JmpWebsiteLocationDetail, TrackServerPageViewOptions, createJmpContentClient, createJmpContentClientFromServerEnv, getDiscoveredContentWrappers, getJmpBlogPost, getJmpBlogPostDetail, getJmpBlogPosts, getJmpBrowserAnalyticsConfigFromEnv, getJmpFaqDetail, getJmpFaqs, getJmpLandingPageDetail, getJmpLandingPageSitemap, getJmpLandingPages, getJmpLegalDocument, getJmpLegalDocuments, getJmpLocationDetail, getJmpLocations, getJmpPopularPages, getJmpRobotsTxt, getJmpServerContentConfigFromEnv, getJmpSiteProfile, getJmpTrustBundle, getOrCreateJmpAnalyticsFromBrowserEnv, inferTrustWrapperSlots, isJmpBrowserAnalyticsEnvConfigured, isJmpServerContentEnvConfigured, markContentWrapper, registerJmpContentWrappers, resetContentWrapperDiscoveryForTests, trackJmpServerPageView };
package/dist/index.js CHANGED
@@ -2,6 +2,8 @@ import {
2
2
  BOOKING_LINK_HOSTS,
3
3
  DEFAULT_JMP_BROWSER_PAGE_VIEW_DEDUPE_MS,
4
4
  JMP_ANALYTICS_SDK_VERSION,
5
+ JMP_CONTENT_CACHE_TAG,
6
+ JMP_CONTENT_REVALIDATE_SECONDS,
5
7
  JMP_TRACKING_CONSENT_STORAGE_KEY,
6
8
  classifyContactHref,
7
9
  createJmpAnalytics,
@@ -38,7 +40,7 @@ import {
38
40
  setJmpTrackingConsent,
39
41
  stableJmpManifestFingerprint,
40
42
  subscribeJmpTrackingConsent
41
- } from "./chunk-EBU4DKHW.js";
43
+ } from "./chunk-XAEWXWSP.js";
42
44
  import {
43
45
  buildLandingCaptureInlineScript
44
46
  } from "./chunk-TCZ6TC2L.js";
@@ -53,6 +55,8 @@ export {
53
55
  BOOKING_LINK_HOSTS,
54
56
  DEFAULT_JMP_BROWSER_PAGE_VIEW_DEDUPE_MS,
55
57
  JMP_ANALYTICS_SDK_VERSION,
58
+ JMP_CONTENT_CACHE_TAG,
59
+ JMP_CONTENT_REVALIDATE_SECONDS,
56
60
  JMP_TRACKING_CONSENT_STORAGE_KEY,
57
61
  buildLandingCaptureInlineScript,
58
62
  classifyContactHref,
@@ -20,6 +20,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/next/content.ts
21
21
  var content_exports = {};
22
22
  __export(content_exports, {
23
+ JMP_CONTENT_CACHE_TAG: () => JMP_CONTENT_CACHE_TAG,
24
+ JMP_CONTENT_REVALIDATE_SECONDS: () => JMP_CONTENT_REVALIDATE_SECONDS,
23
25
  absoluteSiteAssetUrl: () => absoluteSiteAssetUrl2,
24
26
  filterFeaturedTrustQuotes: () => filterFeaturedTrustQuotes2,
25
27
  getJmpContentConfig: () => getJmpContentConfig,
@@ -47,10 +49,12 @@ var import_react = require("react");
47
49
  var LANDING_REFERER_COOKIE_MAX_AGE_SEC = 30 * 60;
48
50
 
49
51
  // package.json
50
- var version = "0.1.38";
52
+ var version = "0.1.39";
51
53
 
52
54
  // src/constants.ts
53
55
  var JMP_ANALYTICS_SDK_VERSION = version;
56
+ var JMP_CONTENT_CACHE_TAG = "jmp-content";
57
+ var JMP_CONTENT_REVALIDATE_SECONDS = 3600;
54
58
 
55
59
  // src/http.ts
56
60
  function responseLooksLikeHtml(body) {
@@ -247,7 +251,8 @@ function normalizeJmpContentManifest(input) {
247
251
  const externalSources = normalizeExternalSources(input.externalSources);
248
252
  const trust = normalizeTrust(input.trust);
249
253
  const contact = normalizeContact(input.contact);
250
- if (routes.length === 0 && !externalSources && !trust && !contact) {
254
+ const defaults = normalizeManifestDefaults(input.defaults);
255
+ if (routes.length === 0 && !externalSources && !trust && !contact && !defaults) {
251
256
  return null;
252
257
  }
253
258
  return {
@@ -255,7 +260,8 @@ function normalizeJmpContentManifest(input) {
255
260
  ...routes.length > 0 ? { routes } : {},
256
261
  ...externalSources ? { externalSources } : {},
257
262
  ...trust ? { trust } : {},
258
- ...contact ? { contact } : {}
263
+ ...contact ? { contact } : {},
264
+ ...defaults ? { defaults } : {}
259
265
  };
260
266
  }
261
267
  function normalizeRoutes(routes) {
@@ -319,6 +325,85 @@ function normalizeTrustLabels(labels) {
319
325
  }
320
326
  return Object.keys(out).length > 0 ? out : null;
321
327
  }
328
+ function readDefaultText(value, max = 500) {
329
+ if (typeof value !== "string") return void 0;
330
+ const trimmed = value.trim();
331
+ if (!trimmed) return void 0;
332
+ return trimmed.slice(0, max);
333
+ }
334
+ function normalizeManifestDefaults(defaults) {
335
+ if (!defaults || typeof defaults !== "object") return null;
336
+ const contactRaw = defaults.contact;
337
+ const contact = {};
338
+ if (contactRaw && typeof contactRaw === "object") {
339
+ const displayName = readDefaultText(contactRaw.displayName, 120);
340
+ const email = readDefaultText(contactRaw.email, 200);
341
+ const phone = readDefaultText(contactRaw.phone, 40);
342
+ const address = readDefaultText(contactRaw.address, 400);
343
+ const hours = readDefaultText(contactRaw.hours, 400);
344
+ const serviceArea = readDefaultText(contactRaw.serviceArea, 200);
345
+ const googleMapsUrl = readDefaultText(contactRaw.googleMapsUrl, 2048);
346
+ const linkedinUrl = readDefaultText(contactRaw.linkedinUrl, 2048);
347
+ const instagramUrl = readDefaultText(contactRaw.instagramUrl, 2048);
348
+ const facebookUrl = readDefaultText(contactRaw.facebookUrl, 2048);
349
+ const xUrl = readDefaultText(contactRaw.xUrl, 2048);
350
+ const youtubeUrl = readDefaultText(contactRaw.youtubeUrl, 2048);
351
+ if (displayName) contact.displayName = displayName;
352
+ if (email) contact.email = email;
353
+ if (phone) contact.phone = phone;
354
+ if (address) contact.address = address;
355
+ if (hours) contact.hours = hours;
356
+ if (serviceArea) contact.serviceArea = serviceArea;
357
+ if (googleMapsUrl) contact.googleMapsUrl = googleMapsUrl;
358
+ if (linkedinUrl) contact.linkedinUrl = linkedinUrl;
359
+ if (instagramUrl) contact.instagramUrl = instagramUrl;
360
+ if (facebookUrl) contact.facebookUrl = facebookUrl;
361
+ if (xUrl) contact.xUrl = xUrl;
362
+ if (youtubeUrl) contact.youtubeUrl = youtubeUrl;
363
+ if (contactRaw.extras && typeof contactRaw.extras === "object") {
364
+ const extras = {};
365
+ for (const [rawKey, rawValue] of Object.entries(contactRaw.extras)) {
366
+ if (Object.keys(extras).length >= 10) break;
367
+ const key = normalizeKey(rawKey);
368
+ const value = readDefaultText(rawValue, 200);
369
+ if (key && isValidExtraKey(key) && value) extras[key] = value;
370
+ }
371
+ if (Object.keys(extras).length > 0) contact.extras = extras;
372
+ }
373
+ }
374
+ const faq = [];
375
+ if (Array.isArray(defaults.faq)) {
376
+ for (const raw of defaults.faq) {
377
+ if (!raw || typeof raw !== "object" || faq.length >= 40) continue;
378
+ const question = readDefaultText(raw.question, 300);
379
+ const answer = readDefaultText(raw.answer, 8e3);
380
+ if (!question || !answer) continue;
381
+ const category = readDefaultText(raw.category, 80);
382
+ faq.push({ question, answer, ...category ? { category } : {} });
383
+ }
384
+ }
385
+ const trustRaw = defaults.trust;
386
+ const trust = {};
387
+ if (trustRaw && typeof trustRaw === "object") {
388
+ const assign = (key, max) => {
389
+ const value = readDefaultText(trustRaw[key], max);
390
+ if (value) trust[key] = value;
391
+ };
392
+ assign("googleReviewsUrl", 2048);
393
+ assign("googlePlaceId", 128);
394
+ assign("yelpUrl", 2048);
395
+ assign("trustpilotUrl", 2048);
396
+ assign("disclaimer", 1e3);
397
+ }
398
+ const hasContact = Object.keys(contact).length > 0;
399
+ const hasTrust = Object.keys(trust).length > 0;
400
+ if (!hasContact && faq.length === 0 && !hasTrust) return null;
401
+ return {
402
+ ...hasContact ? { contact } : {},
403
+ ...faq.length > 0 ? { faq } : {},
404
+ ...hasTrust ? { trust } : {}
405
+ };
406
+ }
322
407
  function normalizeContact(contact) {
323
408
  if (!contact || typeof contact !== "object") return null;
324
409
  const extras = normalizeContactExtras(contact.extras);
@@ -386,7 +471,11 @@ async function getContentText(config, path) {
386
471
  }
387
472
  const res = await resolvedFetch(url, {
388
473
  method: "GET",
389
- headers: jmpContentRequestHeaders(config)
474
+ headers: jmpContentRequestHeaders(config),
475
+ next: {
476
+ revalidate: JMP_CONTENT_REVALIDATE_SECONDS,
477
+ tags: [JMP_CONTENT_CACHE_TAG]
478
+ }
390
479
  });
391
480
  const text = await res.text();
392
481
  if (!res.ok) {
@@ -477,7 +566,65 @@ function getDiscoveredContentWrappers() {
477
566
  return sortWrapperSlots([...discovered]);
478
567
  }
479
568
  function resolveContentManifestForReport(config) {
480
- return normalizeJmpContentManifest(config.contentManifest);
569
+ const site = getJmpSiteDefinition();
570
+ const fallback = site?.contactFallback;
571
+ const existing = config.contentManifest;
572
+ const fromFallback = fallbackToManifestDefaults(fallback);
573
+ if (!existing && !fromFallback) {
574
+ return null;
575
+ }
576
+ const merged = {
577
+ ...existing ?? {},
578
+ defaults: {
579
+ ...fromFallback ?? {},
580
+ ...existing?.defaults ?? {},
581
+ contact: {
582
+ ...fromFallback?.contact ?? {},
583
+ ...existing?.defaults?.contact ?? {},
584
+ extras: {
585
+ ...fromFallback?.contact?.extras ?? {},
586
+ ...existing?.defaults?.contact?.extras ?? {}
587
+ }
588
+ },
589
+ trust: {
590
+ ...fromFallback?.trust ?? {},
591
+ ...existing?.defaults?.trust ?? {}
592
+ },
593
+ faq: existing?.defaults?.faq?.length ? existing.defaults.faq : fromFallback?.faq
594
+ }
595
+ };
596
+ return normalizeJmpContentManifest(merged);
597
+ }
598
+ function fallbackToManifestDefaults(fallback) {
599
+ if (!fallback) return null;
600
+ const contact = {};
601
+ if (fallback.displayName?.trim()) contact.displayName = fallback.displayName.trim();
602
+ if (fallback.email?.trim()) contact.email = fallback.email.trim();
603
+ if (typeof fallback.phone === "string" && fallback.phone.trim()) {
604
+ contact.phone = fallback.phone.trim();
605
+ }
606
+ if (fallback.address?.trim()) contact.address = fallback.address.trim();
607
+ if (fallback.hours?.trim()) contact.hours = fallback.hours.trim();
608
+ if (fallback.serviceArea?.trim()) contact.serviceArea = fallback.serviceArea.trim();
609
+ if (fallback.googleMapsUrl?.trim()) {
610
+ contact.googleMapsUrl = fallback.googleMapsUrl.trim();
611
+ }
612
+ if (fallback.linkedin?.trim()) contact.linkedinUrl = fallback.linkedin.trim();
613
+ if (fallback.instagram?.trim()) contact.instagramUrl = fallback.instagram.trim();
614
+ if (fallback.facebook?.trim()) contact.facebookUrl = fallback.facebook.trim();
615
+ if (fallback.x?.trim()) contact.xUrl = fallback.x.trim();
616
+ if (fallback.youtube?.trim()) contact.youtubeUrl = fallback.youtube.trim();
617
+ const trust = {};
618
+ if (fallback.googleMapsUrl?.trim()) {
619
+ trust.googleReviewsUrl = fallback.googleMapsUrl.trim();
620
+ }
621
+ const hasContact = Object.keys(contact).length > 0;
622
+ const hasTrust = Object.keys(trust).length > 0;
623
+ if (!hasContact && !hasTrust) return null;
624
+ return {
625
+ ...hasContact ? { contact } : {},
626
+ ...hasTrust ? { trust } : {}
627
+ };
481
628
  }
482
629
  function resolveContentWrappersForReport(config) {
483
630
  const explicit = config.contentWrappers ?? [];
@@ -1037,6 +1184,8 @@ var loadTrustBundle2 = (0, import_react.cache)(loadTrustBundle);
1037
1184
  var loadPopularPages2 = (0, import_react.cache)(loadPopularPages);
1038
1185
  // Annotate the CommonJS export names for ESM import in node:
1039
1186
  0 && (module.exports = {
1187
+ JMP_CONTENT_CACHE_TAG,
1188
+ JMP_CONTENT_REVALIDATE_SECONDS,
1040
1189
  absoluteSiteAssetUrl,
1041
1190
  filterFeaturedTrustQuotes,
1042
1191
  getJmpContentConfig,