@jmp-technologies/analytics 0.1.32 → 0.1.33
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.
- package/dist/astro/client.cjs.map +1 -1
- package/dist/astro/client.d.cts +2 -2
- package/dist/astro/client.d.ts +2 -2
- package/dist/astro/client.js +1 -1
- package/dist/astro/content.cjs +29 -14
- package/dist/astro/content.cjs.map +1 -1
- package/dist/astro/content.d.cts +7 -7
- package/dist/astro/content.d.ts +7 -7
- package/dist/astro/content.js +2 -2
- package/dist/astro/integration.cjs.map +1 -1
- package/dist/astro/integration.js +2 -2
- package/dist/astro/middleware.d.cts +2 -2
- package/dist/astro/middleware.d.ts +2 -2
- package/dist/astro/register.cjs.map +1 -1
- package/dist/astro/register.js +2 -2
- package/dist/{chunk-7623G3XL.js → chunk-4Q6YOXKB.js} +2 -2
- package/dist/{chunk-NDSPSAWQ.js → chunk-AIOUOA24.js} +2 -2
- package/dist/{chunk-HKMDWTA2.js → chunk-FH5CJNQD.js} +10 -10
- package/dist/chunk-FH5CJNQD.js.map +1 -0
- package/dist/{chunk-KPTMZQCY.js → chunk-JMALYARK.js} +2 -2
- package/dist/{chunk-NI7R6QZQ.js → chunk-KTPL3R5E.js} +69 -10
- package/dist/{chunk-NI7R6QZQ.js.map → chunk-KTPL3R5E.js.map} +1 -1
- package/dist/{create-jmp-analytics-htx2oOEf.d.ts → create-jmp-analytics-CwtcXBd7.d.ts} +1 -1
- package/dist/{create-jmp-analytics-D1dUsqCQ.d.cts → create-jmp-analytics-lkGcysG_.d.cts} +1 -1
- package/dist/index.cjs +70 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +22 -12
- package/dist/index.d.ts +22 -12
- package/dist/index.js +5 -1
- package/dist/next/content.cjs +29 -14
- package/dist/next/content.cjs.map +1 -1
- package/dist/next/content.d.cts +2 -2
- package/dist/next/content.d.ts +2 -2
- package/dist/next/content.js +2 -2
- package/dist/next/instrumentation.cjs.map +1 -1
- package/dist/next/instrumentation.js +1 -1
- package/dist/next/landing-pages.cjs.map +1 -1
- package/dist/next/landing-pages.d.cts +2 -2
- package/dist/next/landing-pages.d.ts +2 -2
- package/dist/next/landing-pages.js +2 -2
- package/dist/next/locations.cjs.map +1 -1
- package/dist/next/locations.d.cts +2 -2
- package/dist/next/locations.d.ts +2 -2
- package/dist/next/locations.js +2 -2
- package/dist/next/middleware.d.cts +2 -2
- package/dist/next/middleware.d.ts +2 -2
- package/dist/next/site-root-server.cjs.map +1 -1
- package/dist/next/site-root-server.js +3 -3
- package/dist/next.cjs.map +1 -1
- package/dist/next.d.cts +3 -3
- package/dist/next.d.ts +3 -3
- package/dist/next.js +3 -3
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +2 -2
- package/dist/react.d.ts +2 -2
- package/dist/react.js +2 -2
- package/dist/{site-config-B7USGGzu.d.cts → site-config-BMlEQ_8g.d.cts} +1 -1
- package/dist/{site-config-C4bcUoLI.d.ts → site-config-BbE6kGDd.d.ts} +1 -1
- package/dist/{track-page-view-RiB-xgIx.d.ts → track-page-view-BPWGGoMr.d.ts} +1 -1
- package/dist/{track-page-view-C4TbbULE.d.cts → track-page-view-DaNOaIxF.d.cts} +1 -1
- package/dist/{types-DRljY1Yy.d.cts → types-BdC3SRH-.d.cts} +24 -1
- package/dist/{types-DRljY1Yy.d.ts → types-BdC3SRH-.d.ts} +24 -1
- package/dist/{utils-CHT3SQFv.d.ts → utils-B4E-pcQ0.d.ts} +1 -1
- package/dist/{utils-BajG58pj.d.cts → utils-DIHFgovG.d.cts} +1 -1
- package/package.json +1 -1
- package/dist/chunk-HKMDWTA2.js.map +0 -1
- /package/dist/{chunk-7623G3XL.js.map → chunk-4Q6YOXKB.js.map} +0 -0
- /package/dist/{chunk-NDSPSAWQ.js.map → chunk-AIOUOA24.js.map} +0 -0
- /package/dist/{chunk-KPTMZQCY.js.map → chunk-JMALYARK.js.map} +0 -0
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
getJmpLocations,
|
|
10
10
|
getJmpSiteProfile,
|
|
11
11
|
getJmpTrustBundle
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-KTPL3R5E.js";
|
|
13
13
|
import {
|
|
14
14
|
getJmpContentConfig,
|
|
15
15
|
getJmpSiteDefinition
|
|
@@ -116,47 +116,47 @@ function listResolvedSocialUrls(social) {
|
|
|
116
116
|
social.youtube
|
|
117
117
|
].filter((url) => Boolean(url));
|
|
118
118
|
}
|
|
119
|
-
async function loadBlogPosts() {
|
|
119
|
+
async function loadBlogPosts(locale) {
|
|
120
120
|
const c = getJmpContentConfig();
|
|
121
121
|
if (!c) {
|
|
122
122
|
return [];
|
|
123
123
|
}
|
|
124
124
|
try {
|
|
125
|
-
const posts = await getJmpBlogPosts(c);
|
|
125
|
+
const posts = await getJmpBlogPosts(c, locale ? { locale } : void 0);
|
|
126
126
|
return sortBlogPosts(posts);
|
|
127
127
|
} catch {
|
|
128
128
|
return [];
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
|
-
async function loadBlogPost(slug) {
|
|
131
|
+
async function loadBlogPost(slug, locale) {
|
|
132
132
|
const c = getJmpContentConfig();
|
|
133
133
|
if (!c) {
|
|
134
134
|
return null;
|
|
135
135
|
}
|
|
136
136
|
try {
|
|
137
|
-
return await getJmpBlogPost(c, slug);
|
|
137
|
+
return await getJmpBlogPost(c, slug, locale);
|
|
138
138
|
} catch {
|
|
139
139
|
return null;
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
|
-
async function loadFaqs() {
|
|
142
|
+
async function loadFaqs(locale) {
|
|
143
143
|
const c = getJmpContentConfig();
|
|
144
144
|
if (!c) {
|
|
145
145
|
return [];
|
|
146
146
|
}
|
|
147
147
|
try {
|
|
148
|
-
const faqs = await getJmpFaqs(c);
|
|
148
|
+
const faqs = await getJmpFaqs(c, locale ? { locale } : void 0);
|
|
149
149
|
return sortFaqs(faqs);
|
|
150
150
|
} catch {
|
|
151
151
|
return [];
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
-
async function loadFaqBySlug(slug) {
|
|
154
|
+
async function loadFaqBySlug(slug, locale) {
|
|
155
155
|
const normalized = slug.trim();
|
|
156
156
|
if (!normalized) {
|
|
157
157
|
return null;
|
|
158
158
|
}
|
|
159
|
-
const items = await loadFaqs();
|
|
159
|
+
const items = await loadFaqs(locale);
|
|
160
160
|
return items.find((item) => item.slug === normalized || item.id === normalized) ?? null;
|
|
161
161
|
}
|
|
162
162
|
async function loadLandingPages(filters) {
|
|
@@ -256,4 +256,4 @@ export {
|
|
|
256
256
|
loadTrustBundle,
|
|
257
257
|
filterFeaturedTrustQuotes
|
|
258
258
|
};
|
|
259
|
-
//# sourceMappingURL=chunk-
|
|
259
|
+
//# sourceMappingURL=chunk-FH5CJNQD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/content/site-content.ts"],"sourcesContent":["import {\n getJmpBlogPost,\n getJmpBlogPosts,\n getJmpFaqs,\n getJmpLandingPageDetail,\n getJmpLandingPageSitemap,\n getJmpLandingPages,\n getJmpLocations,\n getJmpLocationDetail,\n getJmpSiteProfile,\n getJmpTrustBundle,\n type JmpBlogPost,\n type JmpFaqItem,\n type JmpLandingPage,\n type JmpLandingPageDetail,\n type JmpLandingPageKind,\n type JmpLandingPageSitemapEntry,\n type JmpWebsiteLocation,\n type JmpWebsiteLocationDetail,\n type JmpSiteProfile,\n type JmpTestimonial,\n type JmpTrustBundle,\n} from \"../index\"\nimport {\n getJmpContentConfig,\n getJmpSiteDefinition,\n type JmpSiteSocialLinks,\n} from \"../site-config\"\n\nexport type {\n JmpBlogPost,\n JmpFaqItem,\n JmpLandingPage,\n JmpLandingPageDetail,\n JmpLandingPageKind,\n JmpLandingPageSitemapEntry,\n JmpWebsiteLocation,\n JmpWebsiteLocationDetail,\n JmpSiteProfile,\n JmpTestimonial,\n JmpTrustBundle,\n}\n\nexport { getJmpContentConfig } from \"../site-config\"\n\nexport type { JmpSiteSocialLinks } from \"../site-config\"\n\nexport type ResolvedSiteContact = {\n displayName: string\n email: string\n founderName: string\n dashboardDemoUrl: string\n profilePhotoSrc: string\n linkedin: string | null\n social: JmpSiteSocialLinks\n phone: string | null\n address: string | null\n googleMapsUrl: string | null\n googleMapsEmbedUrl: string | null\n hours: string | null\n serviceArea: string | null\n privacyUrl: string\n termsUrl: string\n cta: { label: string | null; url: string | null }\n}\n\nconst DEFAULT_EXTRA_KEYS = {\n founderName: [\"founder-name\", \"founder_name\"],\n dashboardDemoUrl: [\"dashboard-demo-url\", \"sample-dashboard-url\"],\n profilePhotoSrc: [\"profile-photo-url\", \"profile_photo_url\"],\n hours: [\"hours\", \"business-hours\"],\n serviceArea: [\"service-area\", \"service_area\", \"service-area-text\"],\n googleMapsEmbedUrl: [\"google-maps-embed-url\", \"google_maps_embed_url\"],\n} as const\n\nfunction sortBlogPosts(posts: JmpBlogPost[]): JmpBlogPost[] {\n return [...posts].sort((a, b) => {\n const da = a.published_at ?? a.updated_at\n const db = b.published_at ?? b.updated_at\n return db.localeCompare(da)\n })\n}\n\nfunction sortFaqs(items: JmpFaqItem[]): JmpFaqItem[] {\n return [...items].sort((a, b) => a.sort_order - b.sort_order)\n}\n\nfunction readProfileExtra(\n profile: JmpSiteProfile | null,\n keys: readonly string[],\n): string | null {\n for (const key of keys) {\n const value = profile?.extras?.[key]?.trim()\n if (value) {\n return value\n }\n }\n return null\n}\n\n/** Resolve a path or URL against {@link defineJmpSite}'s `siteUrl`. */\nexport function absoluteSiteAssetUrl(src: string): string {\n const trimmed = src.trim()\n if (trimmed.startsWith(\"http://\") || trimmed.startsWith(\"https://\")) {\n return trimmed\n }\n const siteUrl = getJmpSiteDefinition()?.siteUrl?.replace(/\\/$/, \"\")\n if (!siteUrl) {\n return trimmed.startsWith(\"/\") ? trimmed : `/${trimmed}`\n }\n return `${siteUrl}${trimmed.startsWith(\"/\") ? trimmed : `/${trimmed}`}`\n}\n\nexport async function loadSiteProfile(): Promise<JmpSiteProfile | null> {\n const config = getJmpContentConfig()\n if (!config) {\n return null\n }\n try {\n return await getJmpSiteProfile(config)\n } catch {\n return null\n }\n}\n\nexport function resolveSiteContact(profile: JmpSiteProfile | null): ResolvedSiteContact {\n const site = getJmpSiteDefinition()\n const fallback = site?.contactFallback ?? {}\n const extraKeys = {\n ...DEFAULT_EXTRA_KEYS,\n ...site?.contactExtraKeys,\n }\n\n const email = profile?.email?.trim() || fallback.email || \"\"\n const social: JmpSiteSocialLinks = {\n linkedin:\n profile?.social?.linkedin?.trim() || fallback.linkedin || null,\n instagram:\n profile?.social?.instagram?.trim() || fallback.instagram || null,\n facebook:\n profile?.social?.facebook?.trim() || fallback.facebook || null,\n x: profile?.social?.x?.trim() || fallback.x || null,\n youtube:\n profile?.social?.youtube?.trim() || fallback.youtube || null,\n }\n const phone = profile?.phone?.trim() || fallback.phone || null\n\n return {\n displayName:\n profile?.display_name?.trim() ||\n profile?.name?.trim() ||\n fallback.displayName ||\n \"\",\n founderName:\n readProfileExtra(profile, extraKeys.founderName ?? []) ||\n fallback.founderName ||\n \"\",\n dashboardDemoUrl:\n readProfileExtra(profile, extraKeys.dashboardDemoUrl ?? []) ||\n fallback.dashboardDemoUrl ||\n \"\",\n profilePhotoSrc:\n readProfileExtra(profile, extraKeys.profilePhotoSrc ?? []) ||\n fallback.profilePhotoSrc ||\n \"\",\n email,\n linkedin: social.linkedin,\n social,\n phone,\n address: profile?.address?.trim() || fallback.address || null,\n googleMapsUrl:\n profile?.google_maps_url?.trim() || fallback.googleMapsUrl || null,\n googleMapsEmbedUrl:\n readProfileExtra(profile, extraKeys.googleMapsEmbedUrl ?? []) ||\n fallback.googleMapsEmbedUrl ||\n null,\n hours:\n readProfileExtra(profile, extraKeys.hours ?? []) || fallback.hours || null,\n serviceArea:\n readProfileExtra(profile, extraKeys.serviceArea ?? []) ||\n fallback.serviceArea ||\n null,\n privacyUrl: profile?.legal?.privacy_policy_url?.trim() || fallback.privacyUrl || \"/privacy\",\n termsUrl: profile?.legal?.terms_url?.trim() || fallback.termsUrl || \"/terms\",\n cta: {\n label: profile?.cta?.label?.trim() || null,\n url: profile?.cta?.url?.trim() || null,\n },\n }\n}\n\nexport async function getResolvedSiteContact(): Promise<ResolvedSiteContact> {\n const profile = await loadSiteProfile()\n return resolveSiteContact(profile)\n}\n\n/** Non-null social profile URLs in a stable order for JSON-LD `sameAs`. */\nexport function listResolvedSocialUrls(social: JmpSiteSocialLinks): string[] {\n return [\n social.linkedin,\n social.instagram,\n social.facebook,\n social.x,\n social.youtube,\n ].filter((url): url is string => Boolean(url))\n}\n\nexport async function loadBlogPosts(locale?: string): Promise<JmpBlogPost[]> {\n const c = getJmpContentConfig()\n if (!c) {\n return []\n }\n try {\n const posts = await getJmpBlogPosts(c, locale ? { locale } : undefined)\n return sortBlogPosts(posts)\n } catch {\n return []\n }\n}\n\nexport async function loadBlogPost(\n slug: string,\n locale?: string\n): Promise<JmpBlogPost | null> {\n const c = getJmpContentConfig()\n if (!c) {\n return null\n }\n try {\n return await getJmpBlogPost(c, slug, locale)\n } catch {\n return null\n }\n}\n\nexport async function loadFaqs(locale?: string): Promise<JmpFaqItem[]> {\n const c = getJmpContentConfig()\n if (!c) {\n return []\n }\n try {\n const faqs = await getJmpFaqs(c, locale ? { locale } : undefined)\n return sortFaqs(faqs)\n } catch {\n return []\n }\n}\n\nexport async function loadFaqBySlug(\n slug: string,\n locale?: string\n): Promise<JmpFaqItem | null> {\n const normalized = slug.trim()\n if (!normalized) {\n return null\n }\n const items = await loadFaqs(locale)\n return (\n items.find((item) => item.slug === normalized || item.id === normalized) ?? null\n )\n}\n\nexport async function loadLandingPages(filters?: {\n kind?: JmpLandingPageKind\n locale?: string\n}): Promise<JmpLandingPage[]> {\n const c = getJmpContentConfig()\n if (!c) {\n return []\n }\n try {\n return await getJmpLandingPages(c, filters)\n } catch {\n return []\n }\n}\n\nexport async function loadLandingPageDetail(\n kind: JmpLandingPageKind,\n slug: string,\n locale?: string\n): Promise<JmpLandingPageDetail | null> {\n const c = getJmpContentConfig()\n if (!c) {\n return null\n }\n try {\n return await getJmpLandingPageDetail(c, kind, slug, locale)\n } catch {\n return null\n }\n}\n\nexport async function loadLandingPageSitemap(): Promise<JmpLandingPageSitemapEntry[]> {\n const c = getJmpContentConfig()\n if (!c) {\n return []\n }\n try {\n return await getJmpLandingPageSitemap(c)\n } catch {\n return []\n }\n}\n\nexport async function loadLocations(): Promise<JmpWebsiteLocation[]> {\n const c = getJmpContentConfig()\n if (!c) {\n return []\n }\n try {\n return await getJmpLocations(c)\n } catch {\n return []\n }\n}\n\nexport async function loadLocationDetail(\n slug: string\n): Promise<JmpWebsiteLocationDetail | null> {\n const c = getJmpContentConfig()\n if (!c) {\n return null\n }\n try {\n return await getJmpLocationDetail(c, slug)\n } catch {\n return null\n }\n}\n\nexport async function loadTrustBundle(): Promise<JmpTrustBundle | null> {\n const c = getJmpContentConfig()\n if (!c) {\n return null\n }\n try {\n return await getJmpTrustBundle(c)\n } catch {\n return null\n }\n}\n\nexport function filterFeaturedTrustQuotes(\n testimonials: JmpTestimonial[],\n placement: \"testimonials\" | \"reviews\",\n limit = 2,\n): JmpTestimonial[] {\n return testimonials\n .filter((item) => {\n if (!item.featured) {\n return false\n }\n const bucket = item.placement?.trim().toLowerCase()\n if (placement === \"reviews\") {\n return bucket === \"reviews\"\n }\n return !bucket || bucket === \"testimonials\"\n })\n .sort((a, b) => a.sort_order - b.sort_order)\n .slice(0, limit)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAkEA,IAAM,qBAAqB;AAAA,EACzB,aAAa,CAAC,gBAAgB,cAAc;AAAA,EAC5C,kBAAkB,CAAC,sBAAsB,sBAAsB;AAAA,EAC/D,iBAAiB,CAAC,qBAAqB,mBAAmB;AAAA,EAC1D,OAAO,CAAC,SAAS,gBAAgB;AAAA,EACjC,aAAa,CAAC,gBAAgB,gBAAgB,mBAAmB;AAAA,EACjE,oBAAoB,CAAC,yBAAyB,uBAAuB;AACvE;AAEA,SAAS,cAAc,OAAqC;AAC1D,SAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM;AAC/B,UAAM,KAAK,EAAE,gBAAgB,EAAE;AAC/B,UAAM,KAAK,EAAE,gBAAgB,EAAE;AAC/B,WAAO,GAAG,cAAc,EAAE;AAAA,EAC5B,CAAC;AACH;AAEA,SAAS,SAAS,OAAmC;AACnD,SAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,aAAa,EAAE,UAAU;AAC9D;AAEA,SAAS,iBACP,SACA,MACe;AACf,aAAW,OAAO,MAAM;AACtB,UAAM,QAAQ,SAAS,SAAS,GAAG,GAAG,KAAK;AAC3C,QAAI,OAAO;AACT,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAGO,SAAS,qBAAqB,KAAqB;AACxD,QAAM,UAAU,IAAI,KAAK;AACzB,MAAI,QAAQ,WAAW,SAAS,KAAK,QAAQ,WAAW,UAAU,GAAG;AACnE,WAAO;AAAA,EACT;AACA,QAAM,UAAU,qBAAqB,GAAG,SAAS,QAAQ,OAAO,EAAE;AAClE,MAAI,CAAC,SAAS;AACZ,WAAO,QAAQ,WAAW,GAAG,IAAI,UAAU,IAAI,OAAO;AAAA,EACxD;AACA,SAAO,GAAG,OAAO,GAAG,QAAQ,WAAW,GAAG,IAAI,UAAU,IAAI,OAAO,EAAE;AACvE;AAEA,eAAsB,kBAAkD;AACtE,QAAM,SAAS,oBAAoB;AACnC,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AACA,MAAI;AACF,WAAO,MAAM,kBAAkB,MAAM;AAAA,EACvC,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,SAAS,mBAAmB,SAAqD;AACtF,QAAM,OAAO,qBAAqB;AAClC,QAAM,WAAW,MAAM,mBAAmB,CAAC;AAC3C,QAAM,YAAY;AAAA,IAChB,GAAG;AAAA,IACH,GAAG,MAAM;AAAA,EACX;AAEA,QAAM,QAAQ,SAAS,OAAO,KAAK,KAAK,SAAS,SAAS;AAC1D,QAAM,SAA6B;AAAA,IACjC,UACE,SAAS,QAAQ,UAAU,KAAK,KAAK,SAAS,YAAY;AAAA,IAC5D,WACE,SAAS,QAAQ,WAAW,KAAK,KAAK,SAAS,aAAa;AAAA,IAC9D,UACE,SAAS,QAAQ,UAAU,KAAK,KAAK,SAAS,YAAY;AAAA,IAC5D,GAAG,SAAS,QAAQ,GAAG,KAAK,KAAK,SAAS,KAAK;AAAA,IAC/C,SACE,SAAS,QAAQ,SAAS,KAAK,KAAK,SAAS,WAAW;AAAA,EAC5D;AACA,QAAM,QAAQ,SAAS,OAAO,KAAK,KAAK,SAAS,SAAS;AAE1D,SAAO;AAAA,IACL,aACE,SAAS,cAAc,KAAK,KAC5B,SAAS,MAAM,KAAK,KACpB,SAAS,eACT;AAAA,IACF,aACE,iBAAiB,SAAS,UAAU,eAAe,CAAC,CAAC,KACrD,SAAS,eACT;AAAA,IACF,kBACE,iBAAiB,SAAS,UAAU,oBAAoB,CAAC,CAAC,KAC1D,SAAS,oBACT;AAAA,IACF,iBACE,iBAAiB,SAAS,UAAU,mBAAmB,CAAC,CAAC,KACzD,SAAS,mBACT;AAAA,IACF;AAAA,IACA,UAAU,OAAO;AAAA,IACjB;AAAA,IACA;AAAA,IACA,SAAS,SAAS,SAAS,KAAK,KAAK,SAAS,WAAW;AAAA,IACzD,eACE,SAAS,iBAAiB,KAAK,KAAK,SAAS,iBAAiB;AAAA,IAChE,oBACE,iBAAiB,SAAS,UAAU,sBAAsB,CAAC,CAAC,KAC5D,SAAS,sBACT;AAAA,IACF,OACE,iBAAiB,SAAS,UAAU,SAAS,CAAC,CAAC,KAAK,SAAS,SAAS;AAAA,IACxE,aACE,iBAAiB,SAAS,UAAU,eAAe,CAAC,CAAC,KACrD,SAAS,eACT;AAAA,IACF,YAAY,SAAS,OAAO,oBAAoB,KAAK,KAAK,SAAS,cAAc;AAAA,IACjF,UAAU,SAAS,OAAO,WAAW,KAAK,KAAK,SAAS,YAAY;AAAA,IACpE,KAAK;AAAA,MACH,OAAO,SAAS,KAAK,OAAO,KAAK,KAAK;AAAA,MACtC,KAAK,SAAS,KAAK,KAAK,KAAK,KAAK;AAAA,IACpC;AAAA,EACF;AACF;AAEA,eAAsB,yBAAuD;AAC3E,QAAM,UAAU,MAAM,gBAAgB;AACtC,SAAO,mBAAmB,OAAO;AACnC;AAGO,SAAS,uBAAuB,QAAsC;AAC3E,SAAO;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACT,EAAE,OAAO,CAAC,QAAuB,QAAQ,GAAG,CAAC;AAC/C;AAEA,eAAsB,cAAc,QAAyC;AAC3E,QAAM,IAAI,oBAAoB;AAC9B,MAAI,CAAC,GAAG;AACN,WAAO,CAAC;AAAA,EACV;AACA,MAAI;AACF,UAAM,QAAQ,MAAM,gBAAgB,GAAG,SAAS,EAAE,OAAO,IAAI,MAAS;AACtE,WAAO,cAAc,KAAK;AAAA,EAC5B,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AACF;AAEA,eAAsB,aACpB,MACA,QAC6B;AAC7B,QAAM,IAAI,oBAAoB;AAC9B,MAAI,CAAC,GAAG;AACN,WAAO;AAAA,EACT;AACA,MAAI;AACF,WAAO,MAAM,eAAe,GAAG,MAAM,MAAM;AAAA,EAC7C,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,eAAsB,SAAS,QAAwC;AACrE,QAAM,IAAI,oBAAoB;AAC9B,MAAI,CAAC,GAAG;AACN,WAAO,CAAC;AAAA,EACV;AACA,MAAI;AACF,UAAM,OAAO,MAAM,WAAW,GAAG,SAAS,EAAE,OAAO,IAAI,MAAS;AAChE,WAAO,SAAS,IAAI;AAAA,EACtB,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AACF;AAEA,eAAsB,cACpB,MACA,QAC4B;AAC5B,QAAM,aAAa,KAAK,KAAK;AAC7B,MAAI,CAAC,YAAY;AACf,WAAO;AAAA,EACT;AACA,QAAM,QAAQ,MAAM,SAAS,MAAM;AACnC,SACE,MAAM,KAAK,CAAC,SAAS,KAAK,SAAS,cAAc,KAAK,OAAO,UAAU,KAAK;AAEhF;AAEA,eAAsB,iBAAiB,SAGT;AAC5B,QAAM,IAAI,oBAAoB;AAC9B,MAAI,CAAC,GAAG;AACN,WAAO,CAAC;AAAA,EACV;AACA,MAAI;AACF,WAAO,MAAM,mBAAmB,GAAG,OAAO;AAAA,EAC5C,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AACF;AAEA,eAAsB,sBACpB,MACA,MACA,QACsC;AACtC,QAAM,IAAI,oBAAoB;AAC9B,MAAI,CAAC,GAAG;AACN,WAAO;AAAA,EACT;AACA,MAAI;AACF,WAAO,MAAM,wBAAwB,GAAG,MAAM,MAAM,MAAM;AAAA,EAC5D,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,eAAsB,yBAAgE;AACpF,QAAM,IAAI,oBAAoB;AAC9B,MAAI,CAAC,GAAG;AACN,WAAO,CAAC;AAAA,EACV;AACA,MAAI;AACF,WAAO,MAAM,yBAAyB,CAAC;AAAA,EACzC,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AACF;AAEA,eAAsB,gBAA+C;AACnE,QAAM,IAAI,oBAAoB;AAC9B,MAAI,CAAC,GAAG;AACN,WAAO,CAAC;AAAA,EACV;AACA,MAAI;AACF,WAAO,MAAM,gBAAgB,CAAC;AAAA,EAChC,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AACF;AAEA,eAAsB,mBACpB,MAC0C;AAC1C,QAAM,IAAI,oBAAoB;AAC9B,MAAI,CAAC,GAAG;AACN,WAAO;AAAA,EACT;AACA,MAAI;AACF,WAAO,MAAM,qBAAqB,GAAG,IAAI;AAAA,EAC3C,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,eAAsB,kBAAkD;AACtE,QAAM,IAAI,oBAAoB;AAC9B,MAAI,CAAC,GAAG;AACN,WAAO;AAAA,EACT;AACA,MAAI;AACF,WAAO,MAAM,kBAAkB,CAAC;AAAA,EAClC,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,SAAS,0BACd,cACA,WACA,QAAQ,GACU;AAClB,SAAO,aACJ,OAAO,CAAC,SAAS;AAChB,QAAI,CAAC,KAAK,UAAU;AAClB,aAAO;AAAA,IACT;AACA,UAAM,SAAS,KAAK,WAAW,KAAK,EAAE,YAAY;AAClD,QAAI,cAAc,WAAW;AAC3B,aAAO,WAAW;AAAA,IACpB;AACA,WAAO,CAAC,UAAU,WAAW;AAAA,EAC/B,CAAC,EACA,KAAK,CAAC,GAAG,MAAM,EAAE,aAAa,EAAE,UAAU,EAC1C,MAAM,GAAG,KAAK;AACnB;","names":[]}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
getOrCreateJmpAnalyticsFromBrowserEnv,
|
|
3
3
|
isJmpTrackingConsentGranted,
|
|
4
4
|
subscribeJmpTrackingConsent
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-KTPL3R5E.js";
|
|
6
6
|
import {
|
|
7
7
|
readJmpPublicEnvFromProcess
|
|
8
8
|
} from "./chunk-AIFJ7DVO.js";
|
|
@@ -130,4 +130,4 @@ export {
|
|
|
130
130
|
JmpNextAnalytics,
|
|
131
131
|
JmpSiteRoot
|
|
132
132
|
};
|
|
133
|
-
//# sourceMappingURL=chunk-
|
|
133
|
+
//# sourceMappingURL=chunk-JMALYARK.js.map
|
|
@@ -987,20 +987,30 @@ function sortWrapperSlots(slots) {
|
|
|
987
987
|
function afterContentWrapperUse(config) {
|
|
988
988
|
scheduleContentWrapperSync(config);
|
|
989
989
|
}
|
|
990
|
-
async function getJmpBlogPosts(config) {
|
|
990
|
+
async function getJmpBlogPosts(config, filters) {
|
|
991
|
+
const params = new URLSearchParams();
|
|
992
|
+
if (filters?.locale) {
|
|
993
|
+
params.set("locale", filters.locale);
|
|
994
|
+
}
|
|
995
|
+
const query = params.toString();
|
|
991
996
|
const data = await getContent(
|
|
992
997
|
config,
|
|
993
|
-
|
|
998
|
+
`/api/content/blog${query ? `?${query}` : ""}`
|
|
994
999
|
);
|
|
995
1000
|
markContentWrapper("blog");
|
|
996
1001
|
afterContentWrapperUse(config);
|
|
997
1002
|
return data.posts;
|
|
998
1003
|
}
|
|
999
|
-
async function getJmpBlogPost(config, slug) {
|
|
1004
|
+
async function getJmpBlogPost(config, slug, locale) {
|
|
1000
1005
|
try {
|
|
1006
|
+
const params = new URLSearchParams();
|
|
1007
|
+
if (locale) {
|
|
1008
|
+
params.set("locale", locale);
|
|
1009
|
+
}
|
|
1010
|
+
const query = params.toString();
|
|
1001
1011
|
const data = await getContent(
|
|
1002
1012
|
config,
|
|
1003
|
-
`/api/content/blog/${encodeURIComponent(slug)}`
|
|
1013
|
+
`/api/content/blog/${encodeURIComponent(slug)}${query ? `?${query}` : ""}`
|
|
1004
1014
|
);
|
|
1005
1015
|
markContentWrapper("blog");
|
|
1006
1016
|
afterContentWrapperUse(config);
|
|
@@ -1012,15 +1022,62 @@ async function getJmpBlogPost(config, slug) {
|
|
|
1012
1022
|
throw error;
|
|
1013
1023
|
}
|
|
1014
1024
|
}
|
|
1015
|
-
async function
|
|
1025
|
+
async function getJmpBlogPostDetail(config, slug, locale) {
|
|
1026
|
+
try {
|
|
1027
|
+
const params = new URLSearchParams();
|
|
1028
|
+
if (locale) {
|
|
1029
|
+
params.set("locale", locale);
|
|
1030
|
+
}
|
|
1031
|
+
const query = params.toString();
|
|
1032
|
+
const data = await getContent(
|
|
1033
|
+
config,
|
|
1034
|
+
`/api/content/blog/${encodeURIComponent(slug)}${query ? `?${query}` : ""}`
|
|
1035
|
+
);
|
|
1036
|
+
markContentWrapper("blog");
|
|
1037
|
+
afterContentWrapperUse(config);
|
|
1038
|
+
return data;
|
|
1039
|
+
} catch (error) {
|
|
1040
|
+
if (error instanceof Error && error.message.includes("HTTP 404")) {
|
|
1041
|
+
return null;
|
|
1042
|
+
}
|
|
1043
|
+
throw error;
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
1046
|
+
async function getJmpFaqs(config, filters) {
|
|
1047
|
+
const params = new URLSearchParams();
|
|
1048
|
+
if (filters?.locale) {
|
|
1049
|
+
params.set("locale", filters.locale);
|
|
1050
|
+
}
|
|
1051
|
+
const query = params.toString();
|
|
1016
1052
|
const data = await getContent(
|
|
1017
1053
|
config,
|
|
1018
|
-
|
|
1054
|
+
`/api/content/faqs${query ? `?${query}` : ""}`
|
|
1019
1055
|
);
|
|
1020
1056
|
markContentWrapper("faq");
|
|
1021
1057
|
afterContentWrapperUse(config);
|
|
1022
1058
|
return data.faqs;
|
|
1023
1059
|
}
|
|
1060
|
+
async function getJmpFaqDetail(config, slug, locale) {
|
|
1061
|
+
try {
|
|
1062
|
+
const params = new URLSearchParams();
|
|
1063
|
+
if (locale) {
|
|
1064
|
+
params.set("locale", locale);
|
|
1065
|
+
}
|
|
1066
|
+
const query = params.toString();
|
|
1067
|
+
const data = await getContent(
|
|
1068
|
+
config,
|
|
1069
|
+
`/api/content/faqs/${encodeURIComponent(slug)}${query ? `?${query}` : ""}`
|
|
1070
|
+
);
|
|
1071
|
+
markContentWrapper("faq");
|
|
1072
|
+
afterContentWrapperUse(config);
|
|
1073
|
+
return data;
|
|
1074
|
+
} catch (error) {
|
|
1075
|
+
if (error instanceof Error && error.message.includes("HTTP 404")) {
|
|
1076
|
+
return null;
|
|
1077
|
+
}
|
|
1078
|
+
throw error;
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1024
1081
|
async function getJmpLandingPages(config, filters) {
|
|
1025
1082
|
const params = new URLSearchParams();
|
|
1026
1083
|
if (filters?.kind) {
|
|
@@ -1175,9 +1232,9 @@ setContentWrapperSyncHandler(registerJmpContentWrappers);
|
|
|
1175
1232
|
// src/content/client.ts
|
|
1176
1233
|
function createJmpContentClient(config) {
|
|
1177
1234
|
return {
|
|
1178
|
-
getBlogPosts: () => getJmpBlogPosts(config),
|
|
1179
|
-
getBlogPost: (slug) => getJmpBlogPost(config, slug),
|
|
1180
|
-
getFaqs: () => getJmpFaqs(config),
|
|
1235
|
+
getBlogPosts: (filters) => getJmpBlogPosts(config, filters),
|
|
1236
|
+
getBlogPost: (slug, locale) => getJmpBlogPost(config, slug, locale),
|
|
1237
|
+
getFaqs: (filters) => getJmpFaqs(config, filters),
|
|
1181
1238
|
getLandingPages: (filters) => getJmpLandingPages(config, filters),
|
|
1182
1239
|
getLandingPageDetail: (kind, slug, locale) => getJmpLandingPageDetail(config, kind, slug, locale),
|
|
1183
1240
|
getLandingPageSitemap: () => getJmpLandingPageSitemap(config),
|
|
@@ -1253,7 +1310,9 @@ export {
|
|
|
1253
1310
|
resetContentWrapperDiscoveryForTests,
|
|
1254
1311
|
getJmpBlogPosts,
|
|
1255
1312
|
getJmpBlogPost,
|
|
1313
|
+
getJmpBlogPostDetail,
|
|
1256
1314
|
getJmpFaqs,
|
|
1315
|
+
getJmpFaqDetail,
|
|
1257
1316
|
getJmpLandingPages,
|
|
1258
1317
|
getJmpLandingPageDetail,
|
|
1259
1318
|
getJmpLandingPageSitemap,
|
|
@@ -1271,4 +1330,4 @@ export {
|
|
|
1271
1330
|
getOrCreateJmpAnalyticsFromBrowserEnv,
|
|
1272
1331
|
createJmpContentClientFromServerEnv
|
|
1273
1332
|
};
|
|
1274
|
-
//# sourceMappingURL=chunk-
|
|
1333
|
+
//# sourceMappingURL=chunk-KTPL3R5E.js.map
|