@jmp-technologies/analytics 0.1.35 → 0.1.37

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 (111) hide show
  1. package/README.md +1 -1
  2. package/dist/astro/client.cjs +82 -42
  3. package/dist/astro/client.cjs.map +1 -1
  4. package/dist/astro/client.d.cts +18 -0
  5. package/dist/astro/client.d.ts +18 -0
  6. package/dist/astro/client.js +2 -2
  7. package/dist/astro/content.cjs +99 -69
  8. package/dist/astro/content.cjs.map +1 -1
  9. package/dist/astro/content.d.cts +53 -0
  10. package/dist/astro/content.d.ts +53 -0
  11. package/dist/astro/content.js +3 -3
  12. package/dist/astro/integration.cjs +100 -66
  13. package/dist/astro/integration.cjs.map +1 -1
  14. package/dist/astro/integration.d.cts +36 -0
  15. package/dist/astro/integration.d.ts +36 -0
  16. package/dist/astro/integration.js +3 -3
  17. package/dist/astro/middleware.cjs +93 -66
  18. package/dist/astro/middleware.cjs.map +1 -1
  19. package/dist/astro/middleware.d.cts +19 -0
  20. package/dist/astro/middleware.d.ts +19 -0
  21. package/dist/astro/middleware.js +2 -2
  22. package/dist/astro/register.cjs +100 -66
  23. package/dist/astro/register.cjs.map +1 -1
  24. package/dist/astro/register.d.cts +7 -0
  25. package/dist/astro/register.d.ts +7 -0
  26. package/dist/astro/register.js +3 -3
  27. package/dist/{chunk-VUCOCFVE.js → chunk-D43AEUXU.js} +3 -3
  28. package/dist/{chunk-AIFJ7DVO.js → chunk-EMZXL6VF.js} +193 -105
  29. package/dist/chunk-EMZXL6VF.js.map +1 -0
  30. package/dist/{chunk-HFLU7HQE.js → chunk-PTXPNIMF.js} +2 -2
  31. package/dist/{chunk-6SMPRPQ3.js → chunk-RT2YYDCK.js} +12 -8
  32. package/dist/chunk-RT2YYDCK.js.map +1 -0
  33. package/dist/{chunk-4ZUW24F6.js → chunk-TN6PGIB5.js} +2 -2
  34. package/dist/{chunk-3ET7F6MZ.js → chunk-UHXWHKHJ.js} +3 -3
  35. package/dist/chunk-UHXWHKHJ.js.map +1 -0
  36. package/dist/{chunk-G322JCI3.js → chunk-VQF6QYLR.js} +3 -3
  37. package/dist/create-jmp-analytics-Bz0-K0Af.d.cts +69 -0
  38. package/dist/create-jmp-analytics-DRjrlWUn.d.ts +69 -0
  39. package/dist/env-public-B6Y0DG68.d.cts +14 -0
  40. package/dist/env-public-B6Y0DG68.d.ts +14 -0
  41. package/dist/index.cjs +105 -75
  42. package/dist/index.cjs.map +1 -1
  43. package/dist/index.d.cts +110 -0
  44. package/dist/index.d.ts +110 -0
  45. package/dist/index.js +2 -2
  46. package/dist/landing-capture-C8pyZWuF.d.cts +4 -0
  47. package/dist/landing-capture-C8pyZWuF.d.ts +4 -0
  48. package/dist/next/content.cjs +99 -69
  49. package/dist/next/content.cjs.map +1 -1
  50. package/dist/next/content.d.cts +23 -0
  51. package/dist/next/content.d.ts +23 -0
  52. package/dist/next/content.js +3 -3
  53. package/dist/next/google-tag.d.cts +17 -0
  54. package/dist/next/google-tag.d.ts +17 -0
  55. package/dist/next/instrumentation.cjs +100 -66
  56. package/dist/next/instrumentation.cjs.map +1 -1
  57. package/dist/next/instrumentation.d.cts +7 -0
  58. package/dist/next/instrumentation.d.ts +7 -0
  59. package/dist/next/instrumentation.js +2 -2
  60. package/dist/next/landing-capture-script-server.d.cts +14 -0
  61. package/dist/next/landing-capture-script-server.d.ts +14 -0
  62. package/dist/next/landing-pages.cjs +151 -129
  63. package/dist/next/landing-pages.cjs.map +1 -1
  64. package/dist/next/landing-pages.d.cts +92 -0
  65. package/dist/next/landing-pages.d.ts +92 -0
  66. package/dist/next/landing-pages.js +7 -8
  67. package/dist/next/landing-pages.js.map +1 -1
  68. package/dist/next/locations.cjs +110 -88
  69. package/dist/next/locations.cjs.map +1 -1
  70. package/dist/next/locations.d.cts +55 -0
  71. package/dist/next/locations.d.ts +55 -0
  72. package/dist/next/locations.js +7 -8
  73. package/dist/next/locations.js.map +1 -1
  74. package/dist/next/middleware.cjs +93 -66
  75. package/dist/next/middleware.cjs.map +1 -1
  76. package/dist/next/middleware.d.cts +10 -0
  77. package/dist/next/middleware.d.ts +10 -0
  78. package/dist/next/middleware.js +2 -2
  79. package/dist/next/site-root-server.cjs +99 -69
  80. package/dist/next/site-root-server.cjs.map +1 -1
  81. package/dist/next/site-root-server.d.cts +24 -0
  82. package/dist/next/site-root-server.d.ts +24 -0
  83. package/dist/next/site-root-server.js +4 -4
  84. package/dist/next.cjs +36 -2
  85. package/dist/next.cjs.map +1 -1
  86. package/dist/next.d.cts +50 -0
  87. package/dist/next.d.ts +50 -0
  88. package/dist/next.js +4 -4
  89. package/dist/react.cjs +87 -53
  90. package/dist/react.cjs.map +1 -1
  91. package/dist/react.d.cts +22 -0
  92. package/dist/react.d.ts +22 -0
  93. package/dist/react.js +3 -3
  94. package/dist/site-config-BxEmJxBB.d.ts +74 -0
  95. package/dist/site-config-Cgq67uQ1.d.cts +74 -0
  96. package/dist/track-page-view-74Su6lQY.d.ts +12 -0
  97. package/dist/track-page-view-BCX1Dsfk.d.cts +12 -0
  98. package/dist/types-yNgoakwk.d.cts +397 -0
  99. package/dist/types-yNgoakwk.d.ts +397 -0
  100. package/dist/utils-BLoWWfSw.d.ts +15 -0
  101. package/dist/utils-UPTIdK1D.d.cts +15 -0
  102. package/package.json +3 -2
  103. package/dist/chunk-3ET7F6MZ.js.map +0 -1
  104. package/dist/chunk-6SMPRPQ3.js.map +0 -1
  105. package/dist/chunk-AIFJ7DVO.js.map +0 -1
  106. package/dist/chunk-RI3KKDPX.js +0 -75
  107. package/dist/chunk-RI3KKDPX.js.map +0 -1
  108. /package/dist/{chunk-VUCOCFVE.js.map → chunk-D43AEUXU.js.map} +0 -0
  109. /package/dist/{chunk-HFLU7HQE.js.map → chunk-PTXPNIMF.js.map} +0 -0
  110. /package/dist/{chunk-4ZUW24F6.js.map → chunk-TN6PGIB5.js.map} +0 -0
  111. /package/dist/{chunk-G322JCI3.js.map → chunk-VQF6QYLR.js.map} +0 -0
package/dist/index.cjs CHANGED
@@ -348,7 +348,7 @@ function extractMailtoTarget(href) {
348
348
  }
349
349
 
350
350
  // package.json
351
- var version = "0.1.35";
351
+ var version = "0.1.37";
352
352
 
353
353
  // src/constants.ts
354
354
  var JMP_ANALYTICS_SDK_VERSION = version;
@@ -857,6 +857,101 @@ function createJmpAnalytics(config) {
857
857
  };
858
858
  }
859
859
 
860
+ // src/env-public.ts
861
+ function firstDefined(...values) {
862
+ for (const v of values) {
863
+ if (v) return v;
864
+ }
865
+ return void 0;
866
+ }
867
+ function readJmpPublicEnvFromProcessEnv() {
868
+ if (typeof process === "undefined" || !process.env) {
869
+ return {};
870
+ }
871
+ const { env } = process;
872
+ const analyticsUrl = firstDefined(
873
+ env.NEXT_PUBLIC_JMP_ANALYTICS_URL,
874
+ env.PUBLIC_JMP_ANALYTICS_URL
875
+ );
876
+ const trackingKey = firstDefined(
877
+ env.NEXT_PUBLIC_JMP_TRACKING_KEY,
878
+ env.PUBLIC_JMP_TRACKING_KEY
879
+ );
880
+ const requireConsentRaw = firstDefined(
881
+ env.NEXT_PUBLIC_JMP_ANALYTICS_REQUIRE_CONSENT,
882
+ env.PUBLIC_JMP_ANALYTICS_REQUIRE_CONSENT
883
+ );
884
+ const autoContactRaw = firstDefined(
885
+ env.NEXT_PUBLIC_JMP_AUTO_CONTACT_LINKS,
886
+ env.PUBLIC_JMP_AUTO_CONTACT_LINKS
887
+ );
888
+ return {
889
+ analyticsUrl,
890
+ trackingKey,
891
+ requireConsent: requireConsentRaw === "true",
892
+ autoContactLinks: autoContactRaw === "true"
893
+ };
894
+ }
895
+ function readJmpPublicEnvFromProcess(overrides) {
896
+ const fromEnv = readJmpPublicEnvFromProcessEnv();
897
+ return {
898
+ analyticsUrl: firstDefined(overrides?.analyticsUrl, fromEnv.analyticsUrl),
899
+ trackingKey: firstDefined(overrides?.trackingKey, fromEnv.trackingKey),
900
+ requireConsent: overrides?.requireConsent ?? fromEnv.requireConsent,
901
+ autoContactLinks: overrides?.autoContactLinks ?? fromEnv.autoContactLinks
902
+ };
903
+ }
904
+
905
+ // src/site-config.ts
906
+ var registeredSite = null;
907
+ function defineJmpSite(definition) {
908
+ registeredSite = definition;
909
+ return definition;
910
+ }
911
+ function getJmpSiteDefinition() {
912
+ return registeredSite;
913
+ }
914
+ function getJmpContentConfig() {
915
+ const { analyticsUrl, trackingKey } = readJmpPublicEnvFromProcess();
916
+ if (!analyticsUrl || !trackingKey) {
917
+ return null;
918
+ }
919
+ const site = getJmpSiteDefinition();
920
+ return {
921
+ baseUrl: analyticsUrl,
922
+ trackingKey,
923
+ contentWrappers: site?.contentWrappers ?? void 0,
924
+ contentManifest: site?.contentManifest ?? void 0
925
+ };
926
+ }
927
+
928
+ // src/landing-pages/utils.ts
929
+ function resolveJmpSiteUrl(override) {
930
+ const fromArg = override?.trim().replace(/\/$/, "");
931
+ if (fromArg) return fromArg;
932
+ const fromConfig = getJmpSiteDefinition()?.siteUrl?.trim().replace(/\/$/, "");
933
+ return fromConfig || null;
934
+ }
935
+
936
+ // src/request-origin.ts
937
+ function resolveJmpRequestOrigin() {
938
+ const fromSite = resolveJmpSiteUrl();
939
+ if (fromSite) {
940
+ return fromSite;
941
+ }
942
+ if (typeof process === "undefined") {
943
+ return null;
944
+ }
945
+ return process.env.NEXT_PUBLIC_SITE_URL?.trim().replace(/\/$/, "") || null;
946
+ }
947
+ function withJmpOriginHeader(headers) {
948
+ const origin = resolveJmpRequestOrigin();
949
+ if (!origin) {
950
+ return headers;
951
+ }
952
+ return { ...headers, Origin: origin };
953
+ }
954
+
860
955
  // src/server/page-view.ts
861
956
  async function trackJmpServerPageView(config, options = {}) {
862
957
  const baseUrl = normalizeBaseUrl(config.baseUrl);
@@ -867,10 +962,10 @@ async function trackJmpServerPageView(config, options = {}) {
867
962
  const visitorUserAgent = options.userAgent ?? getHeader(options.request?.headers, "user-agent");
868
963
  const visitorReferer = options.referer ?? getHeader(options.request?.headers, "referer");
869
964
  const path = options.path ?? pathFromRequestUrl(options.request?.url);
870
- const headers = {
965
+ const headers = withJmpOriginHeader({
871
966
  "Content-Type": "application/json",
872
967
  "X-JMP-Tracking-Key": config.trackingKey
873
- };
968
+ });
874
969
  if (visitorUserAgent) {
875
970
  headers["X-JMP-Visitor-User-Agent"] = visitorUserAgent;
876
971
  }
@@ -1104,6 +1199,11 @@ function inferWrapperSlotsFromManifest(manifest) {
1104
1199
  }
1105
1200
 
1106
1201
  // src/content/fetch.ts
1202
+ function jmpContentRequestHeaders(config) {
1203
+ return withJmpOriginHeader({
1204
+ "X-JMP-Tracking-Key": config.trackingKey
1205
+ });
1206
+ }
1107
1207
  async function getContent(config, path) {
1108
1208
  const text = await getContentText(config, path);
1109
1209
  try {
@@ -1126,9 +1226,7 @@ async function getContentText(config, path) {
1126
1226
  }
1127
1227
  const res = await resolvedFetch(url, {
1128
1228
  method: "GET",
1129
- headers: {
1130
- "X-JMP-Tracking-Key": config.trackingKey
1131
- }
1229
+ headers: jmpContentRequestHeaders(config)
1132
1230
  });
1133
1231
  const text = await res.text();
1134
1232
  if (!res.ok) {
@@ -1526,7 +1624,7 @@ async function registerJmpContentWrappers(config) {
1526
1624
  method: "POST",
1527
1625
  headers: {
1528
1626
  "Content-Type": "application/json",
1529
- "X-JMP-Tracking-Key": config.trackingKey
1627
+ ...jmpContentRequestHeaders(config)
1530
1628
  },
1531
1629
  body: JSON.stringify(body)
1532
1630
  });
@@ -1565,74 +1663,6 @@ function createJmpContentClient(config) {
1565
1663
  };
1566
1664
  }
1567
1665
 
1568
- // src/env-public.ts
1569
- function firstDefined(...values) {
1570
- for (const v of values) {
1571
- if (v) return v;
1572
- }
1573
- return void 0;
1574
- }
1575
- function readJmpPublicEnvFromProcessEnv() {
1576
- if (typeof process === "undefined" || !process.env) {
1577
- return {};
1578
- }
1579
- const { env } = process;
1580
- const analyticsUrl = firstDefined(
1581
- env.NEXT_PUBLIC_JMP_ANALYTICS_URL,
1582
- env.PUBLIC_JMP_ANALYTICS_URL
1583
- );
1584
- const trackingKey = firstDefined(
1585
- env.NEXT_PUBLIC_JMP_TRACKING_KEY,
1586
- env.PUBLIC_JMP_TRACKING_KEY
1587
- );
1588
- const requireConsentRaw = firstDefined(
1589
- env.NEXT_PUBLIC_JMP_ANALYTICS_REQUIRE_CONSENT,
1590
- env.PUBLIC_JMP_ANALYTICS_REQUIRE_CONSENT
1591
- );
1592
- const autoContactRaw = firstDefined(
1593
- env.NEXT_PUBLIC_JMP_AUTO_CONTACT_LINKS,
1594
- env.PUBLIC_JMP_AUTO_CONTACT_LINKS
1595
- );
1596
- return {
1597
- analyticsUrl,
1598
- trackingKey,
1599
- requireConsent: requireConsentRaw === "true",
1600
- autoContactLinks: autoContactRaw === "true"
1601
- };
1602
- }
1603
- function readJmpPublicEnvFromProcess(overrides) {
1604
- const fromEnv = readJmpPublicEnvFromProcessEnv();
1605
- return {
1606
- analyticsUrl: firstDefined(overrides?.analyticsUrl, fromEnv.analyticsUrl),
1607
- trackingKey: firstDefined(overrides?.trackingKey, fromEnv.trackingKey),
1608
- requireConsent: overrides?.requireConsent ?? fromEnv.requireConsent,
1609
- autoContactLinks: overrides?.autoContactLinks ?? fromEnv.autoContactLinks
1610
- };
1611
- }
1612
-
1613
- // src/site-config.ts
1614
- var registeredSite = null;
1615
- function defineJmpSite(definition) {
1616
- registeredSite = definition;
1617
- return definition;
1618
- }
1619
- function getJmpSiteDefinition() {
1620
- return registeredSite;
1621
- }
1622
- function getJmpContentConfig() {
1623
- const { analyticsUrl, trackingKey } = readJmpPublicEnvFromProcess();
1624
- if (!analyticsUrl || !trackingKey) {
1625
- return null;
1626
- }
1627
- const site = getJmpSiteDefinition();
1628
- return {
1629
- baseUrl: analyticsUrl,
1630
- trackingKey,
1631
- contentWrappers: site?.contentWrappers ?? void 0,
1632
- contentManifest: site?.contentManifest ?? void 0
1633
- };
1634
- }
1635
-
1636
1666
  // src/env/browser.ts
1637
1667
  function getJmpBrowserAnalyticsConfigFromEnv(overrides) {
1638
1668
  const pub = readJmpPublicEnvFromProcess();