@jmp-technologies/analytics 0.1.24 → 0.1.26

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 (102) hide show
  1. package/README.md +22 -1
  2. package/dist/astro/client.cjs +103 -0
  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 +5 -3
  7. package/dist/astro/client.js.map +1 -1
  8. package/dist/astro/content.cjs +185 -1
  9. package/dist/astro/content.cjs.map +1 -1
  10. package/dist/astro/content.d.cts +2 -2
  11. package/dist/astro/content.d.ts +2 -2
  12. package/dist/astro/content.js +4 -3
  13. package/dist/astro/integration.cjs +56 -10
  14. package/dist/astro/integration.cjs.map +1 -1
  15. package/dist/astro/integration.js +4 -3
  16. package/dist/astro/integration.js.map +1 -1
  17. package/dist/astro/middleware.cjs.map +1 -1
  18. package/dist/astro/middleware.d.cts +2 -2
  19. package/dist/astro/middleware.d.ts +2 -2
  20. package/dist/astro/middleware.js +2 -2
  21. package/dist/astro/register.cjs +56 -10
  22. package/dist/astro/register.cjs.map +1 -1
  23. package/dist/astro/register.js +4 -3
  24. package/dist/chunk-2KAGOVRZ.js +45 -0
  25. package/dist/chunk-2KAGOVRZ.js.map +1 -0
  26. package/dist/{chunk-MOX7RJUU.js → chunk-A4RRTY5D.js} +1 -1
  27. package/dist/{chunk-MOX7RJUU.js.map → chunk-A4RRTY5D.js.map} +1 -1
  28. package/dist/{chunk-7MLPSL6T.js → chunk-HODG4NJQ.js} +2 -2
  29. package/dist/{chunk-CDORZ2YJ.js → chunk-PKGUBYZR.js} +3 -24
  30. package/dist/chunk-PKGUBYZR.js.map +1 -0
  31. package/dist/{chunk-2AUF7ENL.js → chunk-RCOHQAGL.js} +160 -157
  32. package/dist/chunk-RCOHQAGL.js.map +1 -0
  33. package/dist/chunk-TCZ6TC2L.js +149 -0
  34. package/dist/chunk-TCZ6TC2L.js.map +1 -0
  35. package/dist/{chunk-WCI6VOVY.js → chunk-TFHOTBOL.js} +3 -3
  36. package/dist/{chunk-ZP4L5DCM.js → chunk-WFTTIRDJ.js} +2 -2
  37. package/dist/{chunk-GPPQ3TYI.js → chunk-XQZOGWF2.js} +3 -3
  38. package/dist/chunk-YCVHRMM6.js +28 -0
  39. package/dist/chunk-YCVHRMM6.js.map +1 -0
  40. package/dist/{create-jmp-analytics-BdGOgPxl.d.ts → create-jmp-analytics-JKAsJAWb.d.ts} +1 -1
  41. package/dist/{create-jmp-analytics-DxhHOmtR.d.cts → create-jmp-analytics-Mau-oxji.d.cts} +1 -1
  42. package/dist/index.cjs +157 -12
  43. package/dist/index.cjs.map +1 -1
  44. package/dist/index.d.cts +13 -7
  45. package/dist/index.d.ts +13 -7
  46. package/dist/index.js +13 -3
  47. package/dist/next/content.cjs +185 -1
  48. package/dist/next/content.cjs.map +1 -1
  49. package/dist/next/content.d.cts +2 -2
  50. package/dist/next/content.d.ts +2 -2
  51. package/dist/next/content.js +4 -3
  52. package/dist/next/content.js.map +1 -1
  53. package/dist/next/google-tag.cjs +80 -0
  54. package/dist/next/google-tag.cjs.map +1 -0
  55. package/dist/next/google-tag.d.cts +17 -0
  56. package/dist/next/google-tag.d.ts +17 -0
  57. package/dist/next/google-tag.js +8 -0
  58. package/dist/next/google-tag.js.map +1 -0
  59. package/dist/next/instrumentation.cjs +56 -10
  60. package/dist/next/instrumentation.cjs.map +1 -1
  61. package/dist/next/instrumentation.js +3 -2
  62. package/dist/next/instrumentation.js.map +1 -1
  63. package/dist/next/landing-capture-script-server.cjs +61 -0
  64. package/dist/next/landing-capture-script-server.cjs.map +1 -0
  65. package/dist/next/landing-capture-script-server.d.cts +14 -0
  66. package/dist/next/landing-capture-script-server.d.ts +14 -0
  67. package/dist/next/landing-capture-script-server.js +8 -0
  68. package/dist/next/landing-capture-script-server.js.map +1 -0
  69. package/dist/next/middleware.cjs.map +1 -1
  70. package/dist/next/middleware.d.cts +2 -2
  71. package/dist/next/middleware.d.ts +2 -2
  72. package/dist/next/middleware.js +2 -2
  73. package/dist/next/site-root-server.cjs +351 -82
  74. package/dist/next/site-root-server.cjs.map +1 -1
  75. package/dist/next/site-root-server.d.cts +9 -1
  76. package/dist/next/site-root-server.d.ts +9 -1
  77. package/dist/next/site-root-server.js +51 -16
  78. package/dist/next/site-root-server.js.map +1 -1
  79. package/dist/next.cjs +210 -85
  80. package/dist/next.cjs.map +1 -1
  81. package/dist/next.d.cts +8 -15
  82. package/dist/next.d.ts +8 -15
  83. package/dist/next.js +11 -7
  84. package/dist/react.cjs +103 -0
  85. package/dist/react.cjs.map +1 -1
  86. package/dist/react.d.cts +2 -2
  87. package/dist/react.d.ts +2 -2
  88. package/dist/react.js +4 -3
  89. package/dist/{site-config-DpMgrfeN.d.ts → site-config-CXUdGLqw.d.cts} +6 -3
  90. package/dist/{site-config-BXs91Yex.d.cts → site-config-w_Db9YSk.d.ts} +6 -3
  91. package/dist/{track-page-view-Cr8I4Unm.d.cts → track-page-view-CkuSYuco.d.cts} +1 -1
  92. package/dist/{track-page-view-CcPlzQNB.d.ts → track-page-view-QRSk8vap.d.ts} +1 -1
  93. package/dist/{types-BtiK_Acj.d.cts → types-C1eq8E5u.d.cts} +14 -4
  94. package/dist/{types-BtiK_Acj.d.ts → types-C1eq8E5u.d.ts} +14 -4
  95. package/docs/astro-integration.md +1 -1
  96. package/package.json +7 -2
  97. package/dist/chunk-2AUF7ENL.js.map +0 -1
  98. package/dist/chunk-CDORZ2YJ.js.map +0 -1
  99. /package/dist/{chunk-7MLPSL6T.js.map → chunk-HODG4NJQ.js.map} +0 -0
  100. /package/dist/{chunk-WCI6VOVY.js.map → chunk-TFHOTBOL.js.map} +0 -0
  101. /package/dist/{chunk-ZP4L5DCM.js.map → chunk-WFTTIRDJ.js.map} +0 -0
  102. /package/dist/{chunk-GPPQ3TYI.js.map → chunk-XQZOGWF2.js.map} +0 -0
package/dist/next.cjs CHANGED
@@ -31,7 +31,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
31
31
  // src/next.tsx
32
32
  var next_exports = {};
33
33
  __export(next_exports, {
34
- JmpLandingCaptureScript: () => JmpLandingCaptureScript,
34
+ JmpGoogleTag: () => JmpGoogleTag,
35
35
  JmpNextAnalytics: () => JmpNextAnalytics,
36
36
  JmpNextPageViewTracker: () => JmpNextPageViewTracker,
37
37
  JmpSiteRoot: () => JmpSiteRoot,
@@ -46,9 +46,58 @@ __export(next_exports, {
46
46
  useJmpAnalytics: () => useJmpAnalytics
47
47
  });
48
48
  module.exports = __toCommonJS(next_exports);
49
- var import_script = __toESM(require("next/script"), 1);
50
- var import_react2 = require("react");
51
- var import_navigation = require("next/navigation");
49
+ var import_react3 = require("react");
50
+ var import_navigation2 = require("next/navigation");
51
+
52
+ // src/env-public.ts
53
+ function firstDefined(...values) {
54
+ for (const v of values) {
55
+ if (v) return v;
56
+ }
57
+ return void 0;
58
+ }
59
+ function readJmpPublicEnvFromProcessEnv() {
60
+ if (typeof process === "undefined" || !process.env) {
61
+ return {};
62
+ }
63
+ const { env } = process;
64
+ const analyticsUrl = firstDefined(
65
+ env.NEXT_PUBLIC_JMP_ANALYTICS_URL,
66
+ env.PUBLIC_JMP_ANALYTICS_URL
67
+ );
68
+ const trackingKey = firstDefined(
69
+ env.NEXT_PUBLIC_JMP_TRACKING_KEY,
70
+ env.PUBLIC_JMP_TRACKING_KEY
71
+ );
72
+ const requireConsentRaw = firstDefined(
73
+ env.NEXT_PUBLIC_JMP_ANALYTICS_REQUIRE_CONSENT,
74
+ env.PUBLIC_JMP_ANALYTICS_REQUIRE_CONSENT
75
+ );
76
+ const autoContactRaw = firstDefined(
77
+ env.NEXT_PUBLIC_JMP_AUTO_CONTACT_LINKS,
78
+ env.PUBLIC_JMP_AUTO_CONTACT_LINKS
79
+ );
80
+ return {
81
+ analyticsUrl,
82
+ trackingKey,
83
+ requireConsent: requireConsentRaw === "true",
84
+ autoContactLinks: autoContactRaw === "true"
85
+ };
86
+ }
87
+ function readJmpPublicEnvFromProcess(overrides) {
88
+ const fromEnv = readJmpPublicEnvFromProcessEnv();
89
+ return {
90
+ analyticsUrl: firstDefined(overrides?.analyticsUrl, fromEnv.analyticsUrl),
91
+ trackingKey: firstDefined(overrides?.trackingKey, fromEnv.trackingKey),
92
+ requireConsent: overrides?.requireConsent ?? fromEnv.requireConsent,
93
+ autoContactLinks: overrides?.autoContactLinks ?? fromEnv.autoContactLinks
94
+ };
95
+ }
96
+
97
+ // src/constants.ts
98
+ var JMP_ANALYTICS_SDK_VERSION = "0.1.25";
99
+ var JMP_TRACKING_CONSENT_STORAGE_KEY = "jmp_analytics_consent_v1";
100
+ var DEFAULT_JMP_BROWSER_PAGE_VIEW_DEDUPE_MS = 2500;
52
101
 
53
102
  // src/landing-capture.ts
54
103
  var JMP_SESSION_ID_KEY = "jmp_analytics_sid";
@@ -192,55 +241,6 @@ function buildLandingCaptureInlineScript() {
192
241
  return `(function(){try{var h=location.hostname;var ref=document.referrer||'';function rh(u){try{return new URL(u).hostname.replace(/^www\\./i,'').toLowerCase()}catch(e){try{return new URL('https://'+u).hostname.replace(/^www\\./i,'').toLowerCase()}catch(e2){return null}}}function ext(r){var x=rh(r);if(!x)return false;var s=h.replace(/^www\\./i,'').toLowerCase();return x!==s&&x.slice(-('.'+s).length)!==('.'+s)}function apexDom(hn){var s=hn.replace(/^www\\./i,'').toLowerCase();if(!s||s==='localhost'||/\\.local$/i.test(s)||s.indexOf('.')<0)return null;return s}function readCk(hn){var apex=apexDom(hn);if(!apex)return '';var pre='${JMP_LANDING_REFERER_COOKIE}=';var parts=document.cookie.split(';');for(var i=0;i<parts.length;i++){var t=parts[i].trim();if(t.indexOf(pre)===0){try{return decodeURIComponent(t.slice(pre.length)).trim()}catch(e){return ''}}}return ''}function writeCk(r,hn){var apex=apexDom(hn);if(!apex)return;var sec=location.protocol==='https:'?'; Secure':'';document.cookie='${JMP_LANDING_REFERER_COOKIE}='+encodeURIComponent(r.slice(0,2048))+'; Domain=.'+apex+'; Path=/; Max-Age=${cookieMaxAge}; SameSite=Lax'+sec}var stored=sessionStorage.getItem('${JMP_LANDING_REFERER_KEY}')||'';var ck=readCk(h);var preserved=stored||ck;var lr='';if(ref&&ext(ref)){sessionStorage.setItem('${JMP_LANDING_REFERER_KEY}',ref);writeCk(ref,h);lr=ref}else{lr=preserved||'';if(lr&&!stored)sessionStorage.setItem('${JMP_LANDING_REFERER_KEY}',lr)}var sid=sessionStorage.getItem('${JMP_SESSION_ID_KEY}');if(!sid&&crypto&&crypto.randomUUID){sid=crypto.randomUUID();sessionStorage.setItem('${JMP_SESSION_ID_KEY}',sid)}try{var sp=new URLSearchParams(location.search);var utm={};var updated=false;['utm_source','utm_medium','utm_campaign','utm_content','utm_term'].forEach(function(n){var v=sp.get(n);if(v){utm[n]=v;updated=true}});if(updated)sessionStorage.setItem('${JMP_UTM_SESSION_KEY}',JSON.stringify(utm))}catch(e){}}catch(e){}})();`;
193
242
  }
194
243
 
195
- // src/env-public.ts
196
- function firstDefined(...values) {
197
- for (const v of values) {
198
- if (v) return v;
199
- }
200
- return void 0;
201
- }
202
- function readJmpPublicEnvFromProcessEnv() {
203
- if (typeof process === "undefined" || !process.env) {
204
- return {};
205
- }
206
- const { env } = process;
207
- const analyticsUrl = firstDefined(
208
- env.NEXT_PUBLIC_JMP_ANALYTICS_URL,
209
- env.PUBLIC_JMP_ANALYTICS_URL
210
- );
211
- const trackingKey = firstDefined(
212
- env.NEXT_PUBLIC_JMP_TRACKING_KEY,
213
- env.PUBLIC_JMP_TRACKING_KEY
214
- );
215
- const requireConsentRaw = firstDefined(
216
- env.NEXT_PUBLIC_JMP_ANALYTICS_REQUIRE_CONSENT,
217
- env.PUBLIC_JMP_ANALYTICS_REQUIRE_CONSENT
218
- );
219
- const autoContactRaw = firstDefined(
220
- env.NEXT_PUBLIC_JMP_AUTO_CONTACT_LINKS,
221
- env.PUBLIC_JMP_AUTO_CONTACT_LINKS
222
- );
223
- return {
224
- analyticsUrl,
225
- trackingKey,
226
- requireConsent: requireConsentRaw === "true",
227
- autoContactLinks: autoContactRaw === "true"
228
- };
229
- }
230
- function readJmpPublicEnvFromProcess(overrides) {
231
- const fromEnv = readJmpPublicEnvFromProcessEnv();
232
- return {
233
- analyticsUrl: firstDefined(overrides?.analyticsUrl, fromEnv.analyticsUrl),
234
- trackingKey: firstDefined(overrides?.trackingKey, fromEnv.trackingKey),
235
- requireConsent: overrides?.requireConsent ?? fromEnv.requireConsent,
236
- autoContactLinks: overrides?.autoContactLinks ?? fromEnv.autoContactLinks
237
- };
238
- }
239
-
240
- // src/constants.ts
241
- var JMP_TRACKING_CONSENT_STORAGE_KEY = "jmp_analytics_consent_v1";
242
- var DEFAULT_JMP_BROWSER_PAGE_VIEW_DEDUPE_MS = 2500;
243
-
244
244
  // src/tracker/page-view-dedupe.ts
245
245
  var JMP_PAGE_VIEW_DEDUPE_STORAGE_KEY = "jmp_analytics_last_pv";
246
246
  var moduleLastPath = "";
@@ -835,6 +835,108 @@ function getJmpSiteDefinition() {
835
835
  return registeredSite;
836
836
  }
837
837
 
838
+ // src/content/wrapper-discovery.ts
839
+ var WRAPPER_SLOT_ORDER = [
840
+ "blog",
841
+ "faq",
842
+ "contact",
843
+ "trust",
844
+ "trust.summary",
845
+ "trust.testimonials",
846
+ "trust.reviews",
847
+ "trust.stats",
848
+ "trust.logos",
849
+ "trust.credentials"
850
+ ];
851
+ var discovered = /* @__PURE__ */ new Set();
852
+ var reportedDedupeKeys = /* @__PURE__ */ new Set();
853
+ var syncHandler = null;
854
+ function getDiscoveredContentWrappers() {
855
+ return sortWrapperSlots([...discovered]);
856
+ }
857
+ function resolveContentWrappersForReport(config) {
858
+ const explicit = config.contentWrappers ?? [];
859
+ const auto = getDiscoveredContentWrappers();
860
+ if (config.contentWrapperMode === "manual") {
861
+ return sortWrapperSlots([...explicit]);
862
+ }
863
+ if (config.contentWrapperMode === "explicit-only") {
864
+ return sortWrapperSlots([...explicit]);
865
+ }
866
+ const merged = /* @__PURE__ */ new Set([...explicit, ...auto]);
867
+ return sortWrapperSlots([...merged]);
868
+ }
869
+ function hasReportedContentWrappers(dedupeKey) {
870
+ return reportedDedupeKeys.has(dedupeKey);
871
+ }
872
+ function rememberReportedContentWrappers(dedupeKey) {
873
+ reportedDedupeKeys.add(dedupeKey);
874
+ }
875
+ function setContentWrapperSyncHandler(handler) {
876
+ syncHandler = handler;
877
+ }
878
+ function sortWrapperSlots(slots) {
879
+ const order = new Map(WRAPPER_SLOT_ORDER.map((slot, index) => [slot, index]));
880
+ return [...new Set(slots)].sort((a, b) => {
881
+ const ai = order.get(a) ?? 999;
882
+ const bi = order.get(b) ?? 999;
883
+ if (ai !== bi) {
884
+ return ai - bi;
885
+ }
886
+ return a.localeCompare(b);
887
+ });
888
+ }
889
+
890
+ // src/content/api.ts
891
+ async function registerJmpContentWrappers(config) {
892
+ const wrappers = resolveContentWrappersForReport(config);
893
+ if (!wrappers.length) {
894
+ return { ok: false, skipped: true };
895
+ }
896
+ const dedupeKey = `${config.trackingKey}:${[...wrappers].sort().join(",")}`;
897
+ if (hasReportedContentWrappers(dedupeKey)) {
898
+ return { ok: true, wrappers };
899
+ }
900
+ const baseUrl = normalizeBaseUrl(config.baseUrl);
901
+ const resolvedFetch = config.fetchImpl ?? (typeof globalThis !== "undefined" && globalThis.fetch ? globalThis.fetch.bind(globalThis) : void 0);
902
+ if (!resolvedFetch) {
903
+ throw new Error(
904
+ "JMP content wrappers: fetch is not available; pass fetchImpl in config"
905
+ );
906
+ }
907
+ const url = `${baseUrl}/api/content/capabilities`;
908
+ if (config.debug) {
909
+ console.debug("[@jmp-technologies/analytics]", "POST", url, { wrappers });
910
+ }
911
+ const res = await resolvedFetch(url, {
912
+ method: "POST",
913
+ headers: {
914
+ "Content-Type": "application/json",
915
+ "X-JMP-Tracking-Key": config.trackingKey
916
+ },
917
+ body: JSON.stringify({
918
+ wrappers,
919
+ sdkVersion: JMP_ANALYTICS_SDK_VERSION
920
+ })
921
+ });
922
+ const text = await res.text();
923
+ if (!res.ok) {
924
+ let parsed = {};
925
+ try {
926
+ parsed = JSON.parse(text);
927
+ } catch {
928
+ parsed = { error: text };
929
+ }
930
+ throw new Error(
931
+ [`JMP content wrappers HTTP ${res.status}`, parsed.error, parsed.hint].filter(Boolean).join(" \u2014 ")
932
+ );
933
+ }
934
+ rememberReportedContentWrappers(dedupeKey);
935
+ const data = JSON.parse(text);
936
+ return { ok: true, wrappers: data.wrappers ?? wrappers };
937
+ }
938
+ setContentWrapperSyncHandler(registerJmpContentWrappers);
939
+
838
940
  // src/env/browser.ts
839
941
  function getJmpBrowserAnalyticsConfigFromEnv(overrides) {
840
942
  const pub = readJmpPublicEnvFromProcess();
@@ -930,36 +1032,60 @@ function JmpTrackedMailtoLink({
930
1032
  );
931
1033
  }
932
1034
 
933
- // src/next.tsx
1035
+ // src/next/google-tag.tsx
1036
+ var import_script = __toESM(require("next/script"), 1);
1037
+ var import_navigation = require("next/navigation");
1038
+ var import_react2 = require("react");
934
1039
  var import_jsx_runtime2 = require("react/jsx-runtime");
935
- function useJmpAnalytics() {
936
- return (0, import_react2.useMemo)(() => getOrCreateJmpAnalyticsForNextApp(), []);
937
- }
938
- function JmpLandingCaptureScript({
939
- trackingKey = readJmpPublicEnvFromProcess().trackingKey
940
- } = {}) {
941
- if (!trackingKey?.trim()) {
942
- return null;
943
- }
944
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
945
- import_script.default,
946
- {
947
- id: "jmp-landing-capture",
948
- strategy: "beforeInteractive",
949
- dangerouslySetInnerHTML: {
950
- __html: buildLandingCaptureInlineScript()
1040
+ function JmpGoogleTag({ gaId }) {
1041
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
1042
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
1043
+ import_script.default,
1044
+ {
1045
+ src: `https://www.googletagmanager.com/gtag/js?id=${gaId}`,
1046
+ strategy: "lazyOnload"
951
1047
  }
1048
+ ),
1049
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_script.default, { id: "jmp-ga4-init", strategy: "lazyOnload", children: `
1050
+ window.dataLayer = window.dataLayer || [];
1051
+ function gtag(){dataLayer.push(arguments);}
1052
+ gtag('js', new Date());
1053
+ gtag('config', '${gaId}', { send_page_view: true });
1054
+ ` }),
1055
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(JmpGoogleTagPagePath, { gaId })
1056
+ ] });
1057
+ }
1058
+ function JmpGoogleTagPagePath({ gaId }) {
1059
+ const pathname = (0, import_navigation.usePathname)();
1060
+ const isFirstNavigation = (0, import_react2.useRef)(true);
1061
+ (0, import_react2.useEffect)(() => {
1062
+ if (isFirstNavigation.current) {
1063
+ isFirstNavigation.current = false;
1064
+ return;
952
1065
  }
953
- );
1066
+ const report = () => {
1067
+ window.gtag?.("config", gaId, { page_path: pathname || "/" });
1068
+ };
1069
+ report();
1070
+ const timer = window.setTimeout(report, 100);
1071
+ return () => window.clearTimeout(timer);
1072
+ }, [gaId, pathname]);
1073
+ return null;
1074
+ }
1075
+
1076
+ // src/next.tsx
1077
+ var import_jsx_runtime3 = require("react/jsx-runtime");
1078
+ function useJmpAnalytics() {
1079
+ return (0, import_react3.useMemo)(() => getOrCreateJmpAnalyticsForNextApp(), []);
954
1080
  }
955
1081
  function JmpNextPageViewTrackerInner({
956
1082
  configOverrides
957
1083
  }) {
958
- const pathname = (0, import_navigation.usePathname)();
959
- const searchParams = (0, import_navigation.useSearchParams)();
1084
+ const pathname = (0, import_navigation2.usePathname)();
1085
+ const searchParams = (0, import_navigation2.useSearchParams)();
960
1086
  const query = searchParams?.toString() ?? "";
961
1087
  const path = query ? `${pathname}?${query}` : pathname;
962
- (0, import_react2.useLayoutEffect)(() => {
1088
+ (0, import_react3.useLayoutEffect)(() => {
963
1089
  const client = getOrCreateJmpAnalyticsForNextApp(configOverrides);
964
1090
  void client?.trackPageView({ path });
965
1091
  }, [path, configOverrides]);
@@ -968,10 +1094,10 @@ function JmpNextPageViewTrackerInner({
968
1094
  function JmpNextPageViewTracker({
969
1095
  configOverrides
970
1096
  }) {
971
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react2.Suspense, { fallback: null, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(JmpNextPageViewTrackerInner, { configOverrides }) });
1097
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react3.Suspense, { fallback: null, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(JmpNextPageViewTrackerInner, { configOverrides }) });
972
1098
  }
973
1099
  function useJmpTrackingActive(deferUntilConsent) {
974
- const consentGranted = (0, import_react2.useSyncExternalStore)(
1100
+ const consentGranted = (0, import_react3.useSyncExternalStore)(
975
1101
  subscribeJmpTrackingConsent,
976
1102
  () => isJmpTrackingConsentGranted(),
977
1103
  () => false
@@ -991,7 +1117,7 @@ function jmpConfigOverridesFromProps(props) {
991
1117
  function JmpNextAnalyticsBootstrap({
992
1118
  configOverrides
993
1119
  }) {
994
- (0, import_react2.useLayoutEffect)(() => {
1120
+ (0, import_react3.useLayoutEffect)(() => {
995
1121
  getOrCreateJmpAnalyticsForNextApp(configOverrides);
996
1122
  }, [configOverrides]);
997
1123
  return null;
@@ -1002,17 +1128,16 @@ function JmpNextAnalytics({
1002
1128
  trackingKey
1003
1129
  } = {}) {
1004
1130
  const active = useJmpTrackingActive(deferUntilConsent);
1005
- const configOverrides = (0, import_react2.useMemo)(
1131
+ const configOverrides = (0, import_react3.useMemo)(
1006
1132
  () => jmpConfigOverridesFromProps({ analyticsUrl, trackingKey }),
1007
1133
  [analyticsUrl, trackingKey]
1008
1134
  );
1009
1135
  if (!active) {
1010
1136
  return null;
1011
1137
  }
1012
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
1013
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(JmpNextAnalyticsBootstrap, { configOverrides }),
1014
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(JmpLandingCaptureScript, { trackingKey }),
1015
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(JmpNextPageViewTracker, { configOverrides })
1138
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
1139
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(JmpNextAnalyticsBootstrap, { configOverrides }),
1140
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(JmpNextPageViewTracker, { configOverrides })
1016
1141
  ] });
1017
1142
  }
1018
1143
  function JmpSiteRoot({
@@ -1021,8 +1146,8 @@ function JmpSiteRoot({
1021
1146
  analyticsUrl,
1022
1147
  trackingKey
1023
1148
  }) {
1024
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
1025
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
1149
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
1150
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1026
1151
  JmpNextAnalytics,
1027
1152
  {
1028
1153
  deferUntilConsent,
@@ -1035,7 +1160,7 @@ function JmpSiteRoot({
1035
1160
  }
1036
1161
  // Annotate the CommonJS export names for ESM import in node:
1037
1162
  0 && (module.exports = {
1038
- JmpLandingCaptureScript,
1163
+ JmpGoogleTag,
1039
1164
  JmpNextAnalytics,
1040
1165
  JmpNextPageViewTracker,
1041
1166
  JmpSiteRoot,