@jmp-technologies/analytics 0.1.36 → 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 (64) 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.js +2 -2
  5. package/dist/astro/content.cjs +99 -69
  6. package/dist/astro/content.cjs.map +1 -1
  7. package/dist/astro/content.js +3 -3
  8. package/dist/astro/integration.cjs +100 -66
  9. package/dist/astro/integration.cjs.map +1 -1
  10. package/dist/astro/integration.js +3 -3
  11. package/dist/astro/middleware.cjs +93 -66
  12. package/dist/astro/middleware.cjs.map +1 -1
  13. package/dist/astro/middleware.js +2 -2
  14. package/dist/astro/register.cjs +100 -66
  15. package/dist/astro/register.cjs.map +1 -1
  16. package/dist/astro/register.js +3 -3
  17. package/dist/{chunk-3ZEMXII6.js → chunk-D43AEUXU.js} +3 -3
  18. package/dist/{chunk-AIFJ7DVO.js → chunk-EMZXL6VF.js} +193 -105
  19. package/dist/chunk-EMZXL6VF.js.map +1 -0
  20. package/dist/{chunk-HFLU7HQE.js → chunk-PTXPNIMF.js} +2 -2
  21. package/dist/{chunk-YFG3AQ35.js → chunk-RT2YYDCK.js} +12 -8
  22. package/dist/chunk-RT2YYDCK.js.map +1 -0
  23. package/dist/{chunk-AGGLRTUQ.js → chunk-TN6PGIB5.js} +2 -2
  24. package/dist/{chunk-RNZTKIC6.js → chunk-UHXWHKHJ.js} +3 -3
  25. package/dist/{chunk-NAQU6RAE.js → chunk-VQF6QYLR.js} +3 -3
  26. package/dist/index.cjs +105 -75
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.js +2 -2
  29. package/dist/next/content.cjs +99 -69
  30. package/dist/next/content.cjs.map +1 -1
  31. package/dist/next/content.js +3 -3
  32. package/dist/next/instrumentation.cjs +100 -66
  33. package/dist/next/instrumentation.cjs.map +1 -1
  34. package/dist/next/instrumentation.js +2 -2
  35. package/dist/next/landing-pages.cjs +151 -129
  36. package/dist/next/landing-pages.cjs.map +1 -1
  37. package/dist/next/landing-pages.js +7 -8
  38. package/dist/next/landing-pages.js.map +1 -1
  39. package/dist/next/locations.cjs +110 -88
  40. package/dist/next/locations.cjs.map +1 -1
  41. package/dist/next/locations.js +7 -8
  42. package/dist/next/locations.js.map +1 -1
  43. package/dist/next/middleware.cjs +93 -66
  44. package/dist/next/middleware.cjs.map +1 -1
  45. package/dist/next/middleware.js +2 -2
  46. package/dist/next/site-root-server.cjs +99 -69
  47. package/dist/next/site-root-server.cjs.map +1 -1
  48. package/dist/next/site-root-server.js +4 -4
  49. package/dist/next.cjs +36 -2
  50. package/dist/next.cjs.map +1 -1
  51. package/dist/next.js +4 -4
  52. package/dist/react.cjs +87 -53
  53. package/dist/react.cjs.map +1 -1
  54. package/dist/react.js +3 -3
  55. package/package.json +1 -1
  56. package/dist/chunk-AIFJ7DVO.js.map +0 -1
  57. package/dist/chunk-RI3KKDPX.js +0 -75
  58. package/dist/chunk-RI3KKDPX.js.map +0 -1
  59. package/dist/chunk-YFG3AQ35.js.map +0 -1
  60. /package/dist/{chunk-3ZEMXII6.js.map → chunk-D43AEUXU.js.map} +0 -0
  61. /package/dist/{chunk-HFLU7HQE.js.map → chunk-PTXPNIMF.js.map} +0 -0
  62. /package/dist/{chunk-AGGLRTUQ.js.map → chunk-TN6PGIB5.js.map} +0 -0
  63. /package/dist/{chunk-RNZTKIC6.js.map → chunk-UHXWHKHJ.js.map} +0 -0
  64. /package/dist/{chunk-NAQU6RAE.js.map → chunk-VQF6QYLR.js.map} +0 -0
package/README.md CHANGED
@@ -355,6 +355,6 @@ After publish, on client sites:
355
355
  npm install @jmp-technologies/analytics@latest
356
356
  ```
357
357
 
358
- Use **≥ 0.1.8** for `getJmpSiteProfile` / `extras`. Use **≥ 0.1.10** for `email_click` tracking and `JmpTrackedMailtoLink`.
358
+ Use **≥ 0.1.8** for `getJmpSiteProfile` / `extras`. Use **≥ 0.1.10** for `email_click` tracking and `JmpTrackedMailtoLink`. Use **≥ 0.1.37** so server content fetches and server page views send `Origin` from `siteUrl` / `NEXT_PUBLIC_SITE_URL` (required for capabilities writes after the matching dashboard deploy).
359
359
 
360
360
  Ensure the **dashboard** is deployed with migrations **020** and **021** and `/api/content/site` is live before relying on `getJmpSiteProfile` in production.
@@ -308,7 +308,7 @@ function extractMailtoTarget(href) {
308
308
  }
309
309
 
310
310
  // package.json
311
- var version = "0.1.36";
311
+ var version = "0.1.37";
312
312
 
313
313
  // src/constants.ts
314
314
  var JMP_ANALYTICS_SDK_VERSION = version;
@@ -786,6 +786,79 @@ function createJmpAnalytics(config) {
786
786
  };
787
787
  }
788
788
 
789
+ // src/env-public.ts
790
+ function firstDefined(...values) {
791
+ for (const v of values) {
792
+ if (v) return v;
793
+ }
794
+ return void 0;
795
+ }
796
+ function readJmpPublicEnvFromImportMeta(meta, overrides) {
797
+ const get = (key) => {
798
+ const v = meta?.[key];
799
+ return typeof v === "string" && v.length > 0 ? v : void 0;
800
+ };
801
+ const analyticsUrl = firstDefined(
802
+ overrides?.analyticsUrl,
803
+ get("PUBLIC_JMP_ANALYTICS_URL"),
804
+ get("NEXT_PUBLIC_JMP_ANALYTICS_URL")
805
+ );
806
+ const trackingKey = firstDefined(
807
+ overrides?.trackingKey,
808
+ get("PUBLIC_JMP_TRACKING_KEY"),
809
+ get("NEXT_PUBLIC_JMP_TRACKING_KEY")
810
+ );
811
+ const requireConsentRaw = firstDefined(
812
+ overrides?.requireConsent !== void 0 ? String(overrides.requireConsent) : void 0,
813
+ get("PUBLIC_JMP_ANALYTICS_REQUIRE_CONSENT"),
814
+ get("NEXT_PUBLIC_JMP_ANALYTICS_REQUIRE_CONSENT")
815
+ );
816
+ const autoContactRaw = firstDefined(
817
+ overrides?.autoContactLinks !== void 0 ? String(overrides.autoContactLinks) : void 0,
818
+ get("PUBLIC_JMP_AUTO_CONTACT_LINKS"),
819
+ get("NEXT_PUBLIC_JMP_AUTO_CONTACT_LINKS")
820
+ );
821
+ return {
822
+ analyticsUrl,
823
+ trackingKey,
824
+ requireConsent: requireConsentRaw === "true",
825
+ autoContactLinks: autoContactRaw === "true"
826
+ };
827
+ }
828
+
829
+ // src/site-config.ts
830
+ var registeredSite = null;
831
+ function getJmpSiteDefinition() {
832
+ return registeredSite;
833
+ }
834
+
835
+ // src/landing-pages/utils.ts
836
+ function resolveJmpSiteUrl(override) {
837
+ const fromArg = override?.trim().replace(/\/$/, "");
838
+ if (fromArg) return fromArg;
839
+ const fromConfig = getJmpSiteDefinition()?.siteUrl?.trim().replace(/\/$/, "");
840
+ return fromConfig || null;
841
+ }
842
+
843
+ // src/request-origin.ts
844
+ function resolveJmpRequestOrigin() {
845
+ const fromSite = resolveJmpSiteUrl();
846
+ if (fromSite) {
847
+ return fromSite;
848
+ }
849
+ if (typeof process === "undefined") {
850
+ return null;
851
+ }
852
+ return process.env.NEXT_PUBLIC_SITE_URL?.trim().replace(/\/$/, "") || null;
853
+ }
854
+ function withJmpOriginHeader(headers) {
855
+ const origin = resolveJmpRequestOrigin();
856
+ if (!origin) {
857
+ return headers;
858
+ }
859
+ return { ...headers, Origin: origin };
860
+ }
861
+
789
862
  // src/content/manifest.ts
790
863
  var JMP_CONTENT_MANIFEST_VERSION = 1;
791
864
  var TRUST_SECTIONS = /* @__PURE__ */ new Set([
@@ -989,6 +1062,13 @@ function inferWrapperSlotsFromManifest(manifest) {
989
1062
  return [...slots];
990
1063
  }
991
1064
 
1065
+ // src/content/fetch.ts
1066
+ function jmpContentRequestHeaders(config) {
1067
+ return withJmpOriginHeader({
1068
+ "X-JMP-Tracking-Key": config.trackingKey
1069
+ });
1070
+ }
1071
+
992
1072
  // src/content/wrapper-discovery.ts
993
1073
  var WRAPPER_SLOT_ORDER = [
994
1074
  "blog",
@@ -1083,7 +1163,7 @@ async function registerJmpContentWrappers(config) {
1083
1163
  method: "POST",
1084
1164
  headers: {
1085
1165
  "Content-Type": "application/json",
1086
- "X-JMP-Tracking-Key": config.trackingKey
1166
+ ...jmpContentRequestHeaders(config)
1087
1167
  },
1088
1168
  body: JSON.stringify(body)
1089
1169
  });
@@ -1105,46 +1185,6 @@ async function registerJmpContentWrappers(config) {
1105
1185
  }
1106
1186
  setContentWrapperSyncHandler(registerJmpContentWrappers);
1107
1187
 
1108
- // src/env-public.ts
1109
- function firstDefined(...values) {
1110
- for (const v of values) {
1111
- if (v) return v;
1112
- }
1113
- return void 0;
1114
- }
1115
- function readJmpPublicEnvFromImportMeta(meta, overrides) {
1116
- const get = (key) => {
1117
- const v = meta?.[key];
1118
- return typeof v === "string" && v.length > 0 ? v : void 0;
1119
- };
1120
- const analyticsUrl = firstDefined(
1121
- overrides?.analyticsUrl,
1122
- get("PUBLIC_JMP_ANALYTICS_URL"),
1123
- get("NEXT_PUBLIC_JMP_ANALYTICS_URL")
1124
- );
1125
- const trackingKey = firstDefined(
1126
- overrides?.trackingKey,
1127
- get("PUBLIC_JMP_TRACKING_KEY"),
1128
- get("NEXT_PUBLIC_JMP_TRACKING_KEY")
1129
- );
1130
- const requireConsentRaw = firstDefined(
1131
- overrides?.requireConsent !== void 0 ? String(overrides.requireConsent) : void 0,
1132
- get("PUBLIC_JMP_ANALYTICS_REQUIRE_CONSENT"),
1133
- get("NEXT_PUBLIC_JMP_ANALYTICS_REQUIRE_CONSENT")
1134
- );
1135
- const autoContactRaw = firstDefined(
1136
- overrides?.autoContactLinks !== void 0 ? String(overrides.autoContactLinks) : void 0,
1137
- get("PUBLIC_JMP_AUTO_CONTACT_LINKS"),
1138
- get("NEXT_PUBLIC_JMP_AUTO_CONTACT_LINKS")
1139
- );
1140
- return {
1141
- analyticsUrl,
1142
- trackingKey,
1143
- requireConsent: requireConsentRaw === "true",
1144
- autoContactLinks: autoContactRaw === "true"
1145
- };
1146
- }
1147
-
1148
1188
  // src/astro/client.ts
1149
1189
  var import_meta = {};
1150
1190
  var jmpAnalyticsSingleton = null;