@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
@@ -0,0 +1,24 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ type JmpSiteRootServerProps = {
5
+ children: ReactNode;
6
+ deferUntilConsent?: boolean;
7
+ /**
8
+ * When true (default), loads GA4 from the dashboard site profile when
9
+ * `NEXT_PUBLIC_GA_MEASUREMENT_ID` is unset. Set false to use env-only GA.
10
+ */
11
+ gaFromPortal?: boolean;
12
+ };
13
+ /**
14
+ * Server Component: reads `process.env` at request time and passes config into the
15
+ * client tracker. Use this in `app/layout.tsx` instead of importing `JmpSiteRoot`
16
+ * directly — fixes missing `POST /api/events` when env vars are not inlined into
17
+ * client chunks (common on Vercel if vars were added after build or mis-scoped).
18
+ *
19
+ * Optional GA4: set `ga_measurement_id` in jmp-dashboard (Content → Contact, admin)
20
+ * or `NEXT_PUBLIC_GA_MEASUREMENT_ID` on the client site (env wins).
21
+ */
22
+ declare function JmpSiteRootServer({ children, deferUntilConsent, gaFromPortal, }: JmpSiteRootServerProps): Promise<react_jsx_runtime.JSX.Element>;
23
+
24
+ export { JmpSiteRootServer, type JmpSiteRootServerProps };
@@ -0,0 +1,24 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ type JmpSiteRootServerProps = {
5
+ children: ReactNode;
6
+ deferUntilConsent?: boolean;
7
+ /**
8
+ * When true (default), loads GA4 from the dashboard site profile when
9
+ * `NEXT_PUBLIC_GA_MEASUREMENT_ID` is unset. Set false to use env-only GA.
10
+ */
11
+ gaFromPortal?: boolean;
12
+ };
13
+ /**
14
+ * Server Component: reads `process.env` at request time and passes config into the
15
+ * client tracker. Use this in `app/layout.tsx` instead of importing `JmpSiteRoot`
16
+ * directly — fixes missing `POST /api/events` when env vars are not inlined into
17
+ * client chunks (common on Vercel if vars were added after build or mis-scoped).
18
+ *
19
+ * Optional GA4: set `ga_measurement_id` in jmp-dashboard (Content → Contact, admin)
20
+ * or `NEXT_PUBLIC_GA_MEASUREMENT_ID` on the client site (env wins).
21
+ */
22
+ declare function JmpSiteRootServer({ children, deferUntilConsent, gaFromPortal, }: JmpSiteRootServerProps): Promise<react_jsx_runtime.JSX.Element>;
23
+
24
+ export { JmpSiteRootServer, type JmpSiteRootServerProps };
@@ -3,20 +3,20 @@ import {
3
3
  } from "../chunk-G5BMWPQ6.js";
4
4
  import {
5
5
  JmpSiteRoot
6
- } from "../chunk-VUCOCFVE.js";
6
+ } from "../chunk-D43AEUXU.js";
7
7
  import {
8
8
  JmpGoogleTag
9
9
  } from "../chunk-2KAGOVRZ.js";
10
- import "../chunk-4ZUW24F6.js";
10
+ import "../chunk-TN6PGIB5.js";
11
11
  import {
12
12
  getJmpSiteProfile
13
- } from "../chunk-6SMPRPQ3.js";
13
+ } from "../chunk-RT2YYDCK.js";
14
14
  import "../chunk-TCZ6TC2L.js";
15
15
  import {
16
16
  getJmpContentConfig,
17
17
  getJmpSiteDefinition,
18
18
  readJmpPublicEnvFromProcess
19
- } from "../chunk-AIFJ7DVO.js";
19
+ } from "../chunk-EMZXL6VF.js";
20
20
 
21
21
  // src/next/site-root-server.tsx
22
22
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
package/dist/next.cjs CHANGED
@@ -95,7 +95,7 @@ function readJmpPublicEnvFromProcess(overrides) {
95
95
  }
96
96
 
97
97
  // package.json
98
- var version = "0.1.35";
98
+ var version = "0.1.37";
99
99
 
100
100
  // src/constants.ts
101
101
  var JMP_ANALYTICS_SDK_VERSION = version;
@@ -866,6 +866,40 @@ function getJmpSiteDefinition() {
866
866
  return registeredSite;
867
867
  }
868
868
 
869
+ // src/landing-pages/utils.ts
870
+ function resolveJmpSiteUrl(override) {
871
+ const fromArg = override?.trim().replace(/\/$/, "");
872
+ if (fromArg) return fromArg;
873
+ const fromConfig = getJmpSiteDefinition()?.siteUrl?.trim().replace(/\/$/, "");
874
+ return fromConfig || null;
875
+ }
876
+
877
+ // src/request-origin.ts
878
+ function resolveJmpRequestOrigin() {
879
+ const fromSite = resolveJmpSiteUrl();
880
+ if (fromSite) {
881
+ return fromSite;
882
+ }
883
+ if (typeof process === "undefined") {
884
+ return null;
885
+ }
886
+ return process.env.NEXT_PUBLIC_SITE_URL?.trim().replace(/\/$/, "") || null;
887
+ }
888
+ function withJmpOriginHeader(headers) {
889
+ const origin = resolveJmpRequestOrigin();
890
+ if (!origin) {
891
+ return headers;
892
+ }
893
+ return { ...headers, Origin: origin };
894
+ }
895
+
896
+ // src/content/fetch.ts
897
+ function jmpContentRequestHeaders(config) {
898
+ return withJmpOriginHeader({
899
+ "X-JMP-Tracking-Key": config.trackingKey
900
+ });
901
+ }
902
+
869
903
  // src/content/manifest.ts
870
904
  var JMP_CONTENT_MANIFEST_VERSION = 1;
871
905
  var TRUST_SECTIONS = /* @__PURE__ */ new Set([
@@ -1163,7 +1197,7 @@ async function registerJmpContentWrappers(config) {
1163
1197
  method: "POST",
1164
1198
  headers: {
1165
1199
  "Content-Type": "application/json",
1166
- "X-JMP-Tracking-Key": config.trackingKey
1200
+ ...jmpContentRequestHeaders(config)
1167
1201
  },
1168
1202
  body: JSON.stringify(body)
1169
1203
  });