@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
@@ -47,7 +47,7 @@ var import_navigation = require("next/navigation");
47
47
  var LANDING_REFERER_COOKIE_MAX_AGE_SEC = 30 * 60;
48
48
 
49
49
  // package.json
50
- var version = "0.1.36";
50
+ var version = "0.1.37";
51
51
 
52
52
  // src/constants.ts
53
53
  var JMP_ANALYTICS_SDK_VERSION = version;
@@ -61,6 +61,108 @@ function normalizeBaseUrl(baseUrl) {
61
61
  return baseUrl.replace(/\/$/, "");
62
62
  }
63
63
 
64
+ // src/env-public.ts
65
+ function firstDefined(...values) {
66
+ for (const v of values) {
67
+ if (v) return v;
68
+ }
69
+ return void 0;
70
+ }
71
+ function readJmpPublicEnvFromProcessEnv() {
72
+ if (typeof process === "undefined" || !process.env) {
73
+ return {};
74
+ }
75
+ const { env } = process;
76
+ const analyticsUrl = firstDefined(
77
+ env.NEXT_PUBLIC_JMP_ANALYTICS_URL,
78
+ env.PUBLIC_JMP_ANALYTICS_URL
79
+ );
80
+ const trackingKey = firstDefined(
81
+ env.NEXT_PUBLIC_JMP_TRACKING_KEY,
82
+ env.PUBLIC_JMP_TRACKING_KEY
83
+ );
84
+ const requireConsentRaw = firstDefined(
85
+ env.NEXT_PUBLIC_JMP_ANALYTICS_REQUIRE_CONSENT,
86
+ env.PUBLIC_JMP_ANALYTICS_REQUIRE_CONSENT
87
+ );
88
+ const autoContactRaw = firstDefined(
89
+ env.NEXT_PUBLIC_JMP_AUTO_CONTACT_LINKS,
90
+ env.PUBLIC_JMP_AUTO_CONTACT_LINKS
91
+ );
92
+ return {
93
+ analyticsUrl,
94
+ trackingKey,
95
+ requireConsent: requireConsentRaw === "true",
96
+ autoContactLinks: autoContactRaw === "true"
97
+ };
98
+ }
99
+ function readJmpPublicEnvFromProcess(overrides) {
100
+ const fromEnv = readJmpPublicEnvFromProcessEnv();
101
+ return {
102
+ analyticsUrl: firstDefined(overrides?.analyticsUrl, fromEnv.analyticsUrl),
103
+ trackingKey: firstDefined(overrides?.trackingKey, fromEnv.trackingKey),
104
+ requireConsent: overrides?.requireConsent ?? fromEnv.requireConsent,
105
+ autoContactLinks: overrides?.autoContactLinks ?? fromEnv.autoContactLinks
106
+ };
107
+ }
108
+
109
+ // src/site-config.ts
110
+ var registeredSite = null;
111
+ function getJmpSiteDefinition() {
112
+ return registeredSite;
113
+ }
114
+ function getJmpContentConfig() {
115
+ const { analyticsUrl, trackingKey } = readJmpPublicEnvFromProcess();
116
+ if (!analyticsUrl || !trackingKey) {
117
+ return null;
118
+ }
119
+ const site = getJmpSiteDefinition();
120
+ return {
121
+ baseUrl: analyticsUrl,
122
+ trackingKey,
123
+ contentWrappers: site?.contentWrappers ?? void 0,
124
+ contentManifest: site?.contentManifest ?? void 0
125
+ };
126
+ }
127
+
128
+ // src/landing-pages/utils.ts
129
+ function plainTextFromMarkdown(input, maxLength = 5e3) {
130
+ return input.replace(/[#*_`[\]]/g, "").trim().slice(0, maxLength);
131
+ }
132
+ function resolveJmpSiteUrl(override) {
133
+ const fromArg = override?.trim().replace(/\/$/, "");
134
+ if (fromArg) return fromArg;
135
+ const fromConfig = getJmpSiteDefinition()?.siteUrl?.trim().replace(/\/$/, "");
136
+ return fromConfig || null;
137
+ }
138
+ function absoluteJmpSiteUrl(path, siteUrl) {
139
+ const base = resolveJmpSiteUrl(siteUrl);
140
+ if (!base) {
141
+ return path.startsWith("/") ? path : `/${path}`;
142
+ }
143
+ const normalized = path.startsWith("/") ? path : `/${path}`;
144
+ return `${base}${normalized}`;
145
+ }
146
+
147
+ // src/request-origin.ts
148
+ function resolveJmpRequestOrigin() {
149
+ const fromSite = resolveJmpSiteUrl();
150
+ if (fromSite) {
151
+ return fromSite;
152
+ }
153
+ if (typeof process === "undefined") {
154
+ return null;
155
+ }
156
+ return process.env.NEXT_PUBLIC_SITE_URL?.trim().replace(/\/$/, "") || null;
157
+ }
158
+ function withJmpOriginHeader(headers) {
159
+ const origin = resolveJmpRequestOrigin();
160
+ if (!origin) {
161
+ return headers;
162
+ }
163
+ return { ...headers, Origin: origin };
164
+ }
165
+
64
166
  // src/content/manifest.ts
65
167
  var JMP_CONTENT_MANIFEST_VERSION = 1;
66
168
  var TRUST_SECTIONS = /* @__PURE__ */ new Set([
@@ -265,6 +367,11 @@ function inferWrapperSlotsFromManifest(manifest) {
265
367
  }
266
368
 
267
369
  // src/content/fetch.ts
370
+ function jmpContentRequestHeaders(config) {
371
+ return withJmpOriginHeader({
372
+ "X-JMP-Tracking-Key": config.trackingKey
373
+ });
374
+ }
268
375
  async function getContent(config, path) {
269
376
  const text = await getContentText(config, path);
270
377
  try {
@@ -287,9 +394,7 @@ async function getContentText(config, path) {
287
394
  }
288
395
  const res = await resolvedFetch(url, {
289
396
  method: "GET",
290
- headers: {
291
- "X-JMP-Tracking-Key": config.trackingKey
292
- }
397
+ headers: jmpContentRequestHeaders(config)
293
398
  });
294
399
  const text = await res.text();
295
400
  if (!res.ok) {
@@ -465,7 +570,7 @@ async function registerJmpContentWrappers(config) {
465
570
  method: "POST",
466
571
  headers: {
467
572
  "Content-Type": "application/json",
468
- "X-JMP-Tracking-Key": config.trackingKey
573
+ ...jmpContentRequestHeaders(config)
469
574
  },
470
575
  body: JSON.stringify(body)
471
576
  });
@@ -487,70 +592,6 @@ async function registerJmpContentWrappers(config) {
487
592
  }
488
593
  setContentWrapperSyncHandler(registerJmpContentWrappers);
489
594
 
490
- // src/env-public.ts
491
- function firstDefined(...values) {
492
- for (const v of values) {
493
- if (v) return v;
494
- }
495
- return void 0;
496
- }
497
- function readJmpPublicEnvFromProcessEnv() {
498
- if (typeof process === "undefined" || !process.env) {
499
- return {};
500
- }
501
- const { env } = process;
502
- const analyticsUrl = firstDefined(
503
- env.NEXT_PUBLIC_JMP_ANALYTICS_URL,
504
- env.PUBLIC_JMP_ANALYTICS_URL
505
- );
506
- const trackingKey = firstDefined(
507
- env.NEXT_PUBLIC_JMP_TRACKING_KEY,
508
- env.PUBLIC_JMP_TRACKING_KEY
509
- );
510
- const requireConsentRaw = firstDefined(
511
- env.NEXT_PUBLIC_JMP_ANALYTICS_REQUIRE_CONSENT,
512
- env.PUBLIC_JMP_ANALYTICS_REQUIRE_CONSENT
513
- );
514
- const autoContactRaw = firstDefined(
515
- env.NEXT_PUBLIC_JMP_AUTO_CONTACT_LINKS,
516
- env.PUBLIC_JMP_AUTO_CONTACT_LINKS
517
- );
518
- return {
519
- analyticsUrl,
520
- trackingKey,
521
- requireConsent: requireConsentRaw === "true",
522
- autoContactLinks: autoContactRaw === "true"
523
- };
524
- }
525
- function readJmpPublicEnvFromProcess(overrides) {
526
- const fromEnv = readJmpPublicEnvFromProcessEnv();
527
- return {
528
- analyticsUrl: firstDefined(overrides?.analyticsUrl, fromEnv.analyticsUrl),
529
- trackingKey: firstDefined(overrides?.trackingKey, fromEnv.trackingKey),
530
- requireConsent: overrides?.requireConsent ?? fromEnv.requireConsent,
531
- autoContactLinks: overrides?.autoContactLinks ?? fromEnv.autoContactLinks
532
- };
533
- }
534
-
535
- // src/site-config.ts
536
- var registeredSite = null;
537
- function getJmpSiteDefinition() {
538
- return registeredSite;
539
- }
540
- function getJmpContentConfig() {
541
- const { analyticsUrl, trackingKey } = readJmpPublicEnvFromProcess();
542
- if (!analyticsUrl || !trackingKey) {
543
- return null;
544
- }
545
- const site = getJmpSiteDefinition();
546
- return {
547
- baseUrl: analyticsUrl,
548
- trackingKey,
549
- contentWrappers: site?.contentWrappers ?? void 0,
550
- contentManifest: site?.contentManifest ?? void 0
551
- };
552
- }
553
-
554
595
  // src/content/site-content.ts
555
596
  async function loadLocations() {
556
597
  const c = getJmpContentConfig();
@@ -575,25 +616,6 @@ async function loadLocationDetail(slug) {
575
616
  }
576
617
  }
577
618
 
578
- // src/landing-pages/utils.ts
579
- function plainTextFromMarkdown(input, maxLength = 5e3) {
580
- return input.replace(/[#*_`[\]]/g, "").trim().slice(0, maxLength);
581
- }
582
- function resolveJmpSiteUrl(override) {
583
- const fromArg = override?.trim().replace(/\/$/, "");
584
- if (fromArg) return fromArg;
585
- const fromConfig = getJmpSiteDefinition()?.siteUrl?.trim().replace(/\/$/, "");
586
- return fromConfig || null;
587
- }
588
- function absoluteJmpSiteUrl(path, siteUrl) {
589
- const base = resolveJmpSiteUrl(siteUrl);
590
- if (!base) {
591
- return path.startsWith("/") ? path : `/${path}`;
592
- }
593
- const normalized = path.startsWith("/") ? path : `/${path}`;
594
- return `${base}${normalized}`;
595
- }
596
-
597
619
  // src/next/locations.tsx
598
620
  var import_jsx_runtime = require("react/jsx-runtime");
599
621
  function DefaultJsonLd({