@uptrademedia/site-kit 1.0.7 → 1.0.8

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.
@@ -1,122 +1,11 @@
1
1
  export { SitemapSync } from '../chunk-WPSRS352.mjs';
2
2
  export { generateSitemap, getRedirect, getRobotsDirective, isIndexable } from '../chunk-JGQPAXTL.mjs';
3
- import { getSEOPageData, getABTest, recordABImpression, getSchemaMarkups, getEntityEnhancedSchema, getFAQData, getInternalLinks, getContentBlock, getEntities, getManagedScripts } from '../chunk-FQVGK746.mjs';
3
+ import { getSchemaMarkups, getEntityEnhancedSchema, getFAQData, getInternalLinks, getContentBlock, getEntities, getManagedScripts } from '../chunk-FQVGK746.mjs';
4
4
  import '../chunk-4XPGGLVP.mjs';
5
5
  import { cache } from 'react';
6
6
  import 'server-only';
7
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
8
 
9
- // src/seo/getManagedMetadata.ts
10
- async function getManagedMetadata(options) {
11
- const { projectId, path, fallback = {}, overrides = {} } = options;
12
- const pageData = await getSEOPageData(projectId, path);
13
- if (!pageData) {
14
- return {
15
- ...fallback,
16
- ...overrides,
17
- _managed: false,
18
- _source: "fallback"
19
- };
20
- }
21
- const metadata = {
22
- _managed: true,
23
- _source: "database"
24
- };
25
- if (pageData.managed_title) {
26
- metadata.title = pageData.managed_title;
27
- } else if (fallback.title) {
28
- metadata.title = fallback.title;
29
- }
30
- if (pageData.managed_meta_description || pageData.managed_description) {
31
- metadata.description = pageData.managed_meta_description || pageData.managed_description;
32
- } else if (fallback.description) {
33
- metadata.description = fallback.description;
34
- }
35
- if (pageData.managed_keywords?.length) {
36
- metadata.keywords = pageData.managed_keywords;
37
- } else if (fallback.keywords) {
38
- metadata.keywords = fallback.keywords;
39
- }
40
- if (pageData.managed_robots) {
41
- metadata.robots = pageData.managed_robots;
42
- }
43
- if (pageData.managed_canonical) {
44
- metadata.alternates = {
45
- ...metadata.alternates,
46
- canonical: pageData.managed_canonical
47
- };
48
- }
49
- const ogTitle = pageData.managed_og_title || pageData.managed_title;
50
- const ogDescription = pageData.managed_og_description || pageData.managed_meta_description || pageData.managed_description;
51
- const ogImage = pageData.managed_og_image;
52
- if (ogTitle || ogDescription || ogImage) {
53
- metadata.openGraph = {
54
- ...ogTitle && { title: ogTitle },
55
- ...ogDescription && { description: ogDescription },
56
- ...ogImage && { images: [{ url: ogImage }] }
57
- };
58
- }
59
- if (ogTitle || ogDescription || ogImage) {
60
- metadata.twitter = {
61
- card: "summary_large_image",
62
- ...ogTitle && { title: ogTitle },
63
- ...ogDescription && { description: ogDescription },
64
- ...ogImage && { images: [ogImage] }
65
- };
66
- }
67
- return {
68
- ...metadata,
69
- ...overrides,
70
- _managed: true,
71
- _source: "database"
72
- };
73
- }
74
- async function getABVariant(options) {
75
- const { projectId, path, field, sessionId } = options;
76
- const test = await getABTest(projectId, path, field);
77
- if (!test) {
78
- return null;
79
- }
80
- let variant;
81
- if (sessionId) {
82
- const hash = sessionId.split("").reduce((acc, char) => {
83
- return (acc << 5) - acc + char.charCodeAt(0);
84
- }, 0);
85
- variant = Math.abs(hash) % 100 < test.traffic_split * 100 ? "a" : "b";
86
- } else {
87
- variant = Math.random() < test.traffic_split ? "a" : "b";
88
- }
89
- recordABImpression(test.id, variant, sessionId).catch(() => {
90
- });
91
- return {
92
- testId: test.id,
93
- variant,
94
- value: variant === "a" ? test.variant_a : test.variant_b
95
- };
96
- }
97
- async function getManagedMetadataWithAB(options) {
98
- const { sessionId, ...metadataOptions } = options;
99
- const metadata = await getManagedMetadata(metadataOptions);
100
- const titleTest = await getABVariant({
101
- projectId: options.projectId,
102
- path: options.path,
103
- field: "title",
104
- sessionId
105
- });
106
- if (titleTest) {
107
- metadata.title = titleTest.value;
108
- }
109
- const descTest = await getABVariant({
110
- projectId: options.projectId,
111
- path: options.path,
112
- field: "description",
113
- sessionId
114
- });
115
- if (descTest) {
116
- metadata.description = descTest.value;
117
- }
118
- return metadata;
119
- }
120
9
  function getSecureApiConfig() {
121
10
  const apiUrl = process.env.UPTRADE_API_URL || process.env.NEXT_PUBLIC_UPTRADE_API_URL || "https://api.uptrademedia.com";
122
11
  const apiKey = process.env.UPTRADE_API_KEY || "";
@@ -149,7 +38,7 @@ async function secureApiPost(endpoint, body = {}) {
149
38
  return null;
150
39
  }
151
40
  }
152
- var getSEOPageData2 = cache(async (projectId, path) => {
41
+ var getSEOPageData = cache(async (projectId, path) => {
153
42
  const result = await secureApiPost("/api/public/seo/page", {
154
43
  projectId,
155
44
  path
@@ -189,7 +78,7 @@ var getContentBlock2 = cache(async (projectId, path, section) => {
189
78
  });
190
79
  return result?.content || null;
191
80
  });
192
- var getABTest2 = cache(async (projectId, path, field) => {
81
+ var getABTest = cache(async (projectId, path, field) => {
193
82
  const result = await secureApiPost("/api/public/seo/ab-test", {
194
83
  projectId,
195
84
  path,
@@ -197,7 +86,7 @@ var getABTest2 = cache(async (projectId, path, field) => {
197
86
  });
198
87
  return result?.test || null;
199
88
  });
200
- async function recordABImpression2(testId, variant, sessionId) {
89
+ async function recordABImpression(testId, variant, sessionId) {
201
90
  await secureApiPost("/api/public/seo/ab-impression", { testId, variant, sessionId });
202
91
  }
203
92
  var getRedirectData = cache(async (projectId, path) => {
@@ -305,6 +194,118 @@ var getVisibilityScore = cache(async (projectId, pagePath) => {
305
194
  var getVisibilitySummary = cache(async (projectId) => {
306
195
  return signalApiGet(`/skills/seo/visibility/${projectId}/summary`);
307
196
  });
197
+
198
+ // src/seo/getManagedMetadata.ts
199
+ async function getManagedMetadata(options) {
200
+ const { projectId, path, fallback = {}, overrides = {} } = options;
201
+ const pageData = await getSEOPageData(projectId, path);
202
+ if (!pageData) {
203
+ return {
204
+ ...fallback,
205
+ ...overrides,
206
+ _managed: false,
207
+ _source: "fallback"
208
+ };
209
+ }
210
+ const metadata = {
211
+ _managed: true,
212
+ _source: "database"
213
+ };
214
+ if (pageData.managed_title) {
215
+ metadata.title = pageData.managed_title;
216
+ } else if (fallback.title) {
217
+ metadata.title = fallback.title;
218
+ }
219
+ if (pageData.managed_meta_description || pageData.managed_description) {
220
+ metadata.description = pageData.managed_meta_description || pageData.managed_description;
221
+ } else if (fallback.description) {
222
+ metadata.description = fallback.description;
223
+ }
224
+ if (pageData.managed_keywords?.length) {
225
+ metadata.keywords = pageData.managed_keywords;
226
+ } else if (fallback.keywords) {
227
+ metadata.keywords = fallback.keywords;
228
+ }
229
+ if (pageData.managed_robots) {
230
+ metadata.robots = pageData.managed_robots;
231
+ }
232
+ if (pageData.managed_canonical) {
233
+ metadata.alternates = {
234
+ ...metadata.alternates,
235
+ canonical: pageData.managed_canonical
236
+ };
237
+ }
238
+ const ogTitle = pageData.managed_og_title || pageData.managed_title;
239
+ const ogDescription = pageData.managed_og_description || pageData.managed_meta_description || pageData.managed_description;
240
+ const ogImage = pageData.managed_og_image;
241
+ if (ogTitle || ogDescription || ogImage) {
242
+ metadata.openGraph = {
243
+ ...ogTitle && { title: ogTitle },
244
+ ...ogDescription && { description: ogDescription },
245
+ ...ogImage && { images: [{ url: ogImage }] }
246
+ };
247
+ }
248
+ if (ogTitle || ogDescription || ogImage) {
249
+ metadata.twitter = {
250
+ card: "summary_large_image",
251
+ ...ogTitle && { title: ogTitle },
252
+ ...ogDescription && { description: ogDescription },
253
+ ...ogImage && { images: [ogImage] }
254
+ };
255
+ }
256
+ return {
257
+ ...metadata,
258
+ ...overrides,
259
+ _managed: true,
260
+ _source: "database"
261
+ };
262
+ }
263
+ async function getABVariant(options) {
264
+ const { projectId, path, field, sessionId } = options;
265
+ const test = await getABTest(projectId, path, field);
266
+ if (!test) {
267
+ return null;
268
+ }
269
+ let variant;
270
+ if (sessionId) {
271
+ const hash = sessionId.split("").reduce((acc, char) => {
272
+ return (acc << 5) - acc + char.charCodeAt(0);
273
+ }, 0);
274
+ variant = Math.abs(hash) % 100 < test.traffic_split * 100 ? "a" : "b";
275
+ } else {
276
+ variant = Math.random() < test.traffic_split ? "a" : "b";
277
+ }
278
+ recordABImpression(test.id, variant, sessionId).catch(() => {
279
+ });
280
+ return {
281
+ testId: test.id,
282
+ variant,
283
+ value: variant === "a" ? test.variant_a : test.variant_b
284
+ };
285
+ }
286
+ async function getManagedMetadataWithAB(options) {
287
+ const { sessionId, ...metadataOptions } = options;
288
+ const metadata = await getManagedMetadata(metadataOptions);
289
+ const titleTest = await getABVariant({
290
+ projectId: options.projectId,
291
+ path: options.path,
292
+ field: "title",
293
+ sessionId
294
+ });
295
+ if (titleTest) {
296
+ metadata.title = titleTest.value;
297
+ }
298
+ const descTest = await getABVariant({
299
+ projectId: options.projectId,
300
+ path: options.path,
301
+ field: "description",
302
+ sessionId
303
+ });
304
+ if (descTest) {
305
+ metadata.description = descTest.value;
306
+ }
307
+ return metadata;
308
+ }
308
309
  var DEFAULT_SPEAKABLE_SELECTORS = [
309
310
  "h1",
310
311
  '[data-speakable="true"]',
@@ -795,6 +796,6 @@ async function LocationPageContent({
795
796
  }
796
797
  }
797
798
 
798
- export { LocationPageContent, ManagedContent, ManagedFAQ, ManagedInternalLinks, ManagedNoScripts, ManagedSchema, ManagedScripts, createBreadcrumbSchema, createSchema, ManagedSchema as default, getABTest2 as getABTest, getABVariant, getContentBlock2 as getContentBlock, getEntities2 as getEntities, getEntityEnhancedSchema2 as getEntityEnhancedSchema, getFAQData2 as getFAQData, getInternalLinks2 as getInternalLinks, getLocationSection, getManagedContentData, getManagedMetadata, getManagedMetadataWithAB, getManagedScripts2 as getManagedScripts, getPrimaryEntity, getRedirectData, getRobotsData, getSEOPageData2 as getSEOPageData, getSchemaMarkups2 as getSchemaMarkups, getSitemapEntries, getVisibilityScore, getVisibilitySummary, recordABImpression2 as recordABImpression, registerSitemap };
799
+ export { LocationPageContent, ManagedContent, ManagedFAQ, ManagedInternalLinks, ManagedNoScripts, ManagedSchema, ManagedScripts, createBreadcrumbSchema, createSchema, ManagedSchema as default, getABTest, getABVariant, getContentBlock2 as getContentBlock, getEntities2 as getEntities, getEntityEnhancedSchema2 as getEntityEnhancedSchema, getFAQData2 as getFAQData, getInternalLinks2 as getInternalLinks, getLocationSection, getManagedContentData, getManagedMetadata, getManagedMetadataWithAB, getManagedScripts2 as getManagedScripts, getPrimaryEntity, getRedirectData, getRobotsData, getSEOPageData, getSchemaMarkups2 as getSchemaMarkups, getSitemapEntries, getVisibilityScore, getVisibilitySummary, recordABImpression, registerSitemap };
799
800
  //# sourceMappingURL=index.mjs.map
800
801
  //# sourceMappingURL=index.mjs.map