@uptrademedia/site-kit 1.0.1 → 1.0.4
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/SetupWizard-Cki06kB0.d.mts +12 -0
- package/dist/SetupWizard-Cki06kB0.d.ts +12 -0
- package/dist/analytics/index.d.mts +87 -0
- package/dist/analytics/index.d.ts +87 -0
- package/dist/blog/index.d.mts +24 -0
- package/dist/blog/index.d.ts +24 -0
- package/dist/blog/index.js.map +1 -1
- package/dist/blog/index.mjs.map +1 -1
- package/dist/chunk-2IHTEKHU.mjs +332 -0
- package/dist/chunk-2IHTEKHU.mjs.map +1 -0
- package/dist/chunk-5R4R3WDP.js +1451 -0
- package/dist/chunk-5R4R3WDP.js.map +1 -0
- package/dist/{chunk-RV7H3I6J.js → chunk-ADHVEFWD.js} +68 -2
- package/dist/chunk-ADHVEFWD.js.map +1 -0
- package/dist/chunk-BGJLOJ7T.mjs +605 -0
- package/dist/chunk-BGJLOJ7T.mjs.map +1 -0
- package/dist/chunk-BZBJVG5Y.js +88 -0
- package/dist/chunk-BZBJVG5Y.js.map +1 -0
- package/dist/{chunk-COI6GOX2.mjs → chunk-DOHML47I.mjs} +3 -3
- package/dist/chunk-DOHML47I.mjs.map +1 -0
- package/dist/chunk-DRFTRTKV.js +809 -0
- package/dist/chunk-DRFTRTKV.js.map +1 -0
- package/dist/chunk-EL5QTAA3.mjs +805 -0
- package/dist/chunk-EL5QTAA3.mjs.map +1 -0
- package/dist/chunk-GAJLEDRD.js +334 -0
- package/dist/chunk-GAJLEDRD.js.map +1 -0
- package/dist/{chunk-3MUOUXHV.js → chunk-K2HWVOEO.js} +3 -3
- package/dist/chunk-K2HWVOEO.js.map +1 -0
- package/dist/chunk-O2OHHBUD.js +997 -0
- package/dist/chunk-O2OHHBUD.js.map +1 -0
- package/dist/chunk-QAYJV4KK.js +608 -0
- package/dist/chunk-QAYJV4KK.js.map +1 -0
- package/dist/{chunk-FEBYQGY4 2.mjs → chunk-SMUFNQLM.mjs} +67 -3
- package/dist/chunk-SMUFNQLM.mjs.map +1 -0
- package/dist/chunk-VDMZZL2O.mjs +83 -0
- package/dist/chunk-VDMZZL2O.mjs.map +1 -0
- package/dist/chunk-XFRPT5ZX.mjs +1449 -0
- package/dist/chunk-XFRPT5ZX.mjs.map +1 -0
- package/dist/chunk-XQJX252G.mjs +981 -0
- package/dist/chunk-XQJX252G.mjs.map +1 -0
- package/dist/commerce/index.d.mts +168 -0
- package/dist/commerce/index.d.ts +168 -0
- package/dist/commerce/index.js +38 -38
- package/dist/commerce/index.mjs +1 -1
- package/dist/commerce/server.d.mts +98 -0
- package/dist/commerce/server.d.ts +98 -0
- package/dist/engage/index.d.mts +27 -0
- package/dist/engage/index.d.ts +27 -0
- package/dist/engage/index.js +7 -40
- package/dist/engage/index.js.map +1 -1
- package/dist/engage/index.mjs +1 -41
- package/dist/engage/index.mjs.map +1 -1
- package/dist/forms/index.d.mts +437 -0
- package/dist/forms/index.d.ts +437 -0
- package/dist/forms/index.js +13 -5
- package/dist/forms/index.js.map +1 -1
- package/dist/forms/index.mjs +2 -2
- package/dist/forms/index.mjs.map +1 -1
- package/dist/{generators-7Y5ABRYV 2.mjs → generators-TO2FKJR6.mjs} +134 -3
- package/dist/generators-TO2FKJR6.mjs.map +1 -0
- package/dist/{generators-GWIYCA5M.js → generators-YZWIGHCO.js} +135 -2
- package/dist/generators-YZWIGHCO.js.map +1 -0
- package/dist/images/index.d.mts +133 -0
- package/dist/images/index.d.ts +133 -0
- package/dist/images/index.js +41 -0
- package/dist/images/index.js.map +1 -0
- package/dist/images/index.mjs +8 -0
- package/dist/images/index.mjs.map +1 -0
- package/dist/index.d.mts +649 -0
- package/dist/index.d.ts +649 -0
- package/dist/index.js +1355 -104
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1242 -76
- package/dist/index.mjs.map +1 -1
- package/dist/redirects/index.d.mts +72 -0
- package/dist/redirects/index.d.ts +72 -0
- package/dist/redirects/index.js +25 -0
- package/dist/redirects/index.js.map +1 -0
- package/dist/redirects/index.mjs +4 -0
- package/dist/redirects/index.mjs.map +1 -0
- package/dist/routing-BWjUF7lp.d.ts +105 -0
- package/dist/routing-CgmRi9tD.d.mts +105 -0
- package/dist/{scanner-MF7P3CDE 2.mjs → scanner-AZV5I6US.mjs} +123 -4
- package/dist/scanner-AZV5I6US.mjs.map +1 -0
- package/dist/{scanner-NT6YG4TD 2.js → scanner-ETJAMIT7.js} +124 -3
- package/dist/scanner-ETJAMIT7.js.map +1 -0
- package/dist/seo/index.d.mts +273 -0
- package/dist/seo/index.d.ts +273 -0
- package/dist/seo/server.d.mts +89 -0
- package/dist/seo/server.d.ts +89 -0
- package/dist/setup/client.d.mts +60 -0
- package/dist/setup/client.d.ts +60 -0
- package/dist/setup/client.js +30 -0
- package/dist/setup/client.js.map +1 -0
- package/dist/setup/client.mjs +5 -0
- package/dist/setup/client.mjs.map +1 -0
- package/dist/setup/index.d.mts +5 -0
- package/dist/setup/index.d.ts +5 -0
- package/dist/setup/index.js +28 -1043
- package/dist/setup/index.js.map +1 -1
- package/dist/setup/index.mjs +3 -1043
- package/dist/setup/index.mjs.map +1 -1
- package/dist/setup/server.d.mts +14 -0
- package/dist/setup/server.d.ts +14 -0
- package/dist/setup/server.js +13 -0
- package/dist/setup/server.js.map +1 -0
- package/dist/setup/server.mjs +4 -0
- package/dist/setup/server.mjs.map +1 -0
- package/dist/sitemap/index.d.mts +78 -0
- package/dist/sitemap/index.d.ts +78 -0
- package/dist/types-BDojCvvL.d.mts +156 -0
- package/dist/types-BDojCvvL.d.ts +156 -0
- package/dist/types-BmzutFwy.d.mts +227 -0
- package/dist/types-BmzutFwy.d.ts +227 -0
- package/dist/types-C0pJGfbH.d.mts +155 -0
- package/dist/types-C0pJGfbH.d.ts +155 -0
- package/dist/types-DA_Kocle.d.mts +127 -0
- package/dist/types-DA_Kocle.d.ts +127 -0
- package/dist/types-lFLKKn0G.d.mts +163 -0
- package/dist/types-lFLKKn0G.d.ts +163 -0
- package/dist/types-nB206tPK.d.mts +309 -0
- package/dist/types-nB206tPK.d.ts +309 -0
- package/dist/useEventModal-6U1pF3_g.d.mts +209 -0
- package/dist/useEventModal-BA8g-1-P.d.ts +209 -0
- package/package.json +21 -1
- package/dist/chunk-3MUOUXHV.js.map +0 -1
- package/dist/chunk-4HVYXYQL 2.mjs +0 -255
- package/dist/chunk-4HVYXYQL.mjs +0 -255
- package/dist/chunk-4HVYXYQL.mjs.map +0 -1
- package/dist/chunk-COI6GOX2.mjs.map +0 -1
- package/dist/chunk-EQCVQC35.js 2.map +0 -1
- package/dist/chunk-FEBYQGY4.mjs +0 -251
- package/dist/chunk-FEBYQGY4.mjs.map +0 -1
- package/dist/chunk-NYKRE2FL 2.mjs +0 -31
- package/dist/chunk-NYKRE2FL.mjs 2.map +0 -1
- package/dist/chunk-RV7H3I6J.js 2.map +0 -1
- package/dist/chunk-RV7H3I6J.js.map +0 -1
- package/dist/chunk-TUKGA3UK.js +0 -257
- package/dist/chunk-TUKGA3UK.js 2.map +0 -1
- package/dist/chunk-TUKGA3UK.js.map +0 -1
- package/dist/generators-7Y5ABRYV.mjs +0 -161
- package/dist/generators-7Y5ABRYV.mjs 2.map +0 -1
- package/dist/generators-7Y5ABRYV.mjs.map +0 -1
- package/dist/generators-GWIYCA5M.js 2.map +0 -1
- package/dist/generators-GWIYCA5M.js.map +0 -1
- package/dist/index 2.mjs +0 -74
- package/dist/index.js 2.map +0 -1
- package/dist/migrator-V6KS75EA 2.mjs +0 -265
- package/dist/migrator-V6KS75EA.mjs 2.map +0 -1
- package/dist/migrator-XKM7YQCY.js 2.map +0 -1
- package/dist/scanner-MF7P3CDE.mjs +0 -14386
- package/dist/scanner-MF7P3CDE.mjs 2.map +0 -1
- package/dist/scanner-MF7P3CDE.mjs.map +0 -1
- package/dist/scanner-NT6YG4TD.js +0 -14397
- package/dist/scanner-NT6YG4TD.js 2.map +0 -1
- package/dist/scanner-NT6YG4TD.js.map +0 -1
- package/dist/web-vitals-BH55V7EJ.js 2.map +0 -1
- package/dist/web-vitals-RJYPWAR3 2.mjs +0 -241
- package/dist/web-vitals-RJYPWAR3.mjs 2.map +0 -1
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { l as GetRedirectOptions, R as RedirectResult, p as GetRobotsOptions, o as RobotsDirective, r as GetSitemapEntriesOptions, q as SitemapEntry } from './types-BmzutFwy.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Get redirect for a path if one exists
|
|
5
|
+
*
|
|
6
|
+
* Use in Next.js middleware to handle managed redirects
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* // middleware.ts
|
|
11
|
+
* import { getRedirect } from '@uptrade/seo'
|
|
12
|
+
*
|
|
13
|
+
* export async function middleware(request) {
|
|
14
|
+
* const redirect = await getRedirect({
|
|
15
|
+
* projectId: process.env.UPTRADE_PROJECT_ID!,
|
|
16
|
+
* path: request.nextUrl.pathname
|
|
17
|
+
* })
|
|
18
|
+
*
|
|
19
|
+
* if (redirect) {
|
|
20
|
+
* return NextResponse.redirect(redirect.destination, redirect.statusCode)
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
declare function getRedirect(options: GetRedirectOptions): Promise<RedirectResult | null>;
|
|
26
|
+
/**
|
|
27
|
+
* Get robots directive for a page
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* const robots = await getRobotsDirective({
|
|
32
|
+
* projectId: process.env.UPTRADE_PROJECT_ID!,
|
|
33
|
+
* path: '/private-page'
|
|
34
|
+
* })
|
|
35
|
+
*
|
|
36
|
+
* if (!robots.index) {
|
|
37
|
+
* // Page should not be indexed
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
declare function getRobotsDirective(options: GetRobotsOptions): Promise<RobotsDirective>;
|
|
42
|
+
/**
|
|
43
|
+
* Get sitemap entries for a project
|
|
44
|
+
*
|
|
45
|
+
* Use in sitemap.ts to generate dynamic sitemap
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```tsx
|
|
49
|
+
* // app/sitemap.ts
|
|
50
|
+
* import { generateSitemap } from '@uptrade/seo'
|
|
51
|
+
*
|
|
52
|
+
* export default async function sitemap() {
|
|
53
|
+
* return generateSitemap({
|
|
54
|
+
* projectId: process.env.UPTRADE_PROJECT_ID!,
|
|
55
|
+
* baseUrl: 'https://example.com',
|
|
56
|
+
* publishedOnly: true
|
|
57
|
+
* })
|
|
58
|
+
* }
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
declare function generateSitemap(options: GetSitemapEntriesOptions): Promise<SitemapEntry[]>;
|
|
62
|
+
/**
|
|
63
|
+
* Register local sitemap entries with Uptrade Portal
|
|
64
|
+
*
|
|
65
|
+
* Call this at build time to sync your local routes to seo_pages.
|
|
66
|
+
* This ensures analytics only tracks real pages.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```ts
|
|
70
|
+
* // scripts/register-sitemap.ts
|
|
71
|
+
* import { registerLocalSitemap } from '@uptrade/seo'
|
|
72
|
+
*
|
|
73
|
+
* // Option 1: Provide entries directly
|
|
74
|
+
* await registerLocalSitemap({
|
|
75
|
+
* entries: [
|
|
76
|
+
* { path: '/', title: 'Home', priority: 1.0 },
|
|
77
|
+
* { path: '/about', title: 'About Us', priority: 0.8 },
|
|
78
|
+
* ]
|
|
79
|
+
* })
|
|
80
|
+
*
|
|
81
|
+
* // Option 2: Auto-discover from Next.js app directory
|
|
82
|
+
* await registerLocalSitemap({ autoDiscover: true })
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
declare function registerLocalSitemap(options: {
|
|
86
|
+
entries?: Array<{
|
|
87
|
+
path: string;
|
|
88
|
+
title?: string;
|
|
89
|
+
priority?: number;
|
|
90
|
+
changefreq?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never';
|
|
91
|
+
}>;
|
|
92
|
+
autoDiscover?: boolean;
|
|
93
|
+
}): Promise<{
|
|
94
|
+
success: boolean;
|
|
95
|
+
created: number;
|
|
96
|
+
updated: number;
|
|
97
|
+
}>;
|
|
98
|
+
/**
|
|
99
|
+
* Check if a path should be indexed
|
|
100
|
+
*
|
|
101
|
+
* Quick helper to check indexability without full directive parsing
|
|
102
|
+
*/
|
|
103
|
+
declare function isIndexable(projectId: string, path: string): Promise<boolean>;
|
|
104
|
+
|
|
105
|
+
export { getRedirect as a, getRobotsDirective as b, generateSitemap as g, isIndexable as i, registerLocalSitemap as r };
|
|
@@ -13976,7 +13976,8 @@ async function scanCodebase(rootDir) {
|
|
|
13976
13976
|
const results = {
|
|
13977
13977
|
forms: [],
|
|
13978
13978
|
metadata: [],
|
|
13979
|
-
widgets: []
|
|
13979
|
+
widgets: [],
|
|
13980
|
+
sitemaps: []
|
|
13980
13981
|
};
|
|
13981
13982
|
const files = await findSourceFiles(rootDir);
|
|
13982
13983
|
for (const file of files) {
|
|
@@ -13993,10 +13994,14 @@ async function scanCodebase(rootDir) {
|
|
|
13993
13994
|
results.metadata.push(...metadata);
|
|
13994
13995
|
const widgets = scanForWidgets(ast, content, relPath);
|
|
13995
13996
|
results.widgets.push(...widgets);
|
|
13997
|
+
const sitemaps = scanForSitemaps(content, relPath);
|
|
13998
|
+
results.sitemaps.push(...sitemaps);
|
|
13996
13999
|
} catch (error) {
|
|
13997
14000
|
continue;
|
|
13998
14001
|
}
|
|
13999
14002
|
}
|
|
14003
|
+
const sitemapFiles = await scanForSitemapFiles(rootDir);
|
|
14004
|
+
results.sitemaps.push(...sitemapFiles);
|
|
14000
14005
|
return results;
|
|
14001
14006
|
}
|
|
14002
14007
|
async function findSourceFiles(dir, files = []) {
|
|
@@ -14380,7 +14385,121 @@ function scanForWidgets(ast, content, filePath) {
|
|
|
14380
14385
|
}
|
|
14381
14386
|
return widgets;
|
|
14382
14387
|
}
|
|
14388
|
+
function scanForSitemaps(content, filePath) {
|
|
14389
|
+
const sitemaps = [];
|
|
14390
|
+
if (content.includes("next-sitemap") && !content.includes("@uptrade/site-kit")) {
|
|
14391
|
+
sitemaps.push({
|
|
14392
|
+
filePath,
|
|
14393
|
+
type: "next-sitemap",
|
|
14394
|
+
generator: "next-sitemap",
|
|
14395
|
+
startLine: findLineNumber(content, "next-sitemap"),
|
|
14396
|
+
endLine: findLineNumber(content, "next-sitemap") + 10
|
|
14397
|
+
});
|
|
14398
|
+
}
|
|
14399
|
+
if ((filePath.endsWith("sitemap.ts") || filePath.endsWith("sitemap.js")) && !content.includes("@uptrade/site-kit")) {
|
|
14400
|
+
const isNextPattern = content.includes("MetadataRoute.Sitemap") || content.includes("export default") || content.includes("export async function");
|
|
14401
|
+
if (isNextPattern) {
|
|
14402
|
+
sitemaps.push({
|
|
14403
|
+
filePath,
|
|
14404
|
+
type: "custom-sitemap",
|
|
14405
|
+
generator: "custom",
|
|
14406
|
+
startLine: 1,
|
|
14407
|
+
endLine: content.split("\n").length,
|
|
14408
|
+
details: {
|
|
14409
|
+
hasAsyncFunction: content.includes("async"),
|
|
14410
|
+
hasDatabaseQuery: content.includes("supabase") || content.includes("prisma") || content.includes("sql")
|
|
14411
|
+
}
|
|
14412
|
+
});
|
|
14413
|
+
}
|
|
14414
|
+
}
|
|
14415
|
+
if (content.includes("@uptrade/site-kit/sitemap") || content.includes("createSitemap")) {
|
|
14416
|
+
sitemaps.push({
|
|
14417
|
+
filePath,
|
|
14418
|
+
type: "custom-sitemap",
|
|
14419
|
+
generator: "site-kit",
|
|
14420
|
+
startLine: findLineNumber(content, "createSitemap"),
|
|
14421
|
+
endLine: findLineNumber(content, "createSitemap") + 10
|
|
14422
|
+
});
|
|
14423
|
+
}
|
|
14424
|
+
return sitemaps;
|
|
14425
|
+
}
|
|
14426
|
+
function findLineNumber(content, search) {
|
|
14427
|
+
const lines = content.split("\n");
|
|
14428
|
+
for (let i = 0; i < lines.length; i++) {
|
|
14429
|
+
if (lines[i].includes(search)) {
|
|
14430
|
+
return i + 1;
|
|
14431
|
+
}
|
|
14432
|
+
}
|
|
14433
|
+
return 1;
|
|
14434
|
+
}
|
|
14435
|
+
async function scanForSitemapFiles(rootDir) {
|
|
14436
|
+
const sitemaps = [];
|
|
14437
|
+
const configPaths = [
|
|
14438
|
+
"next-sitemap.config.js",
|
|
14439
|
+
"next-sitemap.config.mjs",
|
|
14440
|
+
"next-sitemap.config.ts"
|
|
14441
|
+
];
|
|
14442
|
+
for (const configPath of configPaths) {
|
|
14443
|
+
const fullPath = path.join(rootDir, configPath);
|
|
14444
|
+
try {
|
|
14445
|
+
await fs.access(fullPath);
|
|
14446
|
+
const content = await fs.readFile(fullPath, "utf-8");
|
|
14447
|
+
sitemaps.push({
|
|
14448
|
+
filePath: configPath,
|
|
14449
|
+
type: "next-sitemap-config",
|
|
14450
|
+
generator: "next-sitemap",
|
|
14451
|
+
startLine: 1,
|
|
14452
|
+
endLine: content.split("\n").length,
|
|
14453
|
+
details: {
|
|
14454
|
+
hasRobotsTxt: content.includes("generateRobotsTxt"),
|
|
14455
|
+
excludePaths: extractExcludePaths(content)
|
|
14456
|
+
}
|
|
14457
|
+
});
|
|
14458
|
+
} catch {
|
|
14459
|
+
}
|
|
14460
|
+
}
|
|
14461
|
+
const staticSitemapPath = path.join(rootDir, "public", "sitemap.xml");
|
|
14462
|
+
try {
|
|
14463
|
+
await fs.access(staticSitemapPath);
|
|
14464
|
+
const content = await fs.readFile(staticSitemapPath, "utf-8");
|
|
14465
|
+
const urlCount = (content.match(/<url>/g) || []).length;
|
|
14466
|
+
sitemaps.push({
|
|
14467
|
+
filePath: "public/sitemap.xml",
|
|
14468
|
+
type: "static-xml",
|
|
14469
|
+
generator: "static",
|
|
14470
|
+
startLine: 1,
|
|
14471
|
+
endLine: content.split("\n").length,
|
|
14472
|
+
details: {
|
|
14473
|
+
urlCount,
|
|
14474
|
+
isIndex: content.includes("<sitemapindex")
|
|
14475
|
+
}
|
|
14476
|
+
});
|
|
14477
|
+
} catch {
|
|
14478
|
+
}
|
|
14479
|
+
const generatedPaths = [
|
|
14480
|
+
".next/server/app/sitemap.xml",
|
|
14481
|
+
"out/sitemap.xml"
|
|
14482
|
+
];
|
|
14483
|
+
for (const genPath of generatedPaths) {
|
|
14484
|
+
const fullPath = path.join(rootDir, genPath);
|
|
14485
|
+
try {
|
|
14486
|
+
await fs.access(fullPath);
|
|
14487
|
+
} catch {
|
|
14488
|
+
}
|
|
14489
|
+
}
|
|
14490
|
+
return sitemaps;
|
|
14491
|
+
}
|
|
14492
|
+
function extractExcludePaths(content) {
|
|
14493
|
+
const excludeMatch = content.match(/exclude:\s*\[([\s\S]*?)\]/);
|
|
14494
|
+
if (!excludeMatch) return [];
|
|
14495
|
+
const paths = [];
|
|
14496
|
+
const matches = excludeMatch[1].matchAll(/['"]([^'"]+)['"]/g);
|
|
14497
|
+
for (const match of matches) {
|
|
14498
|
+
paths.push(match[1]);
|
|
14499
|
+
}
|
|
14500
|
+
return paths;
|
|
14501
|
+
}
|
|
14383
14502
|
|
|
14384
|
-
export { scanCodebase, scanForForms, scanForMetadata, scanForWidgets };
|
|
14385
|
-
//# sourceMappingURL=scanner-
|
|
14386
|
-
//# sourceMappingURL=scanner-
|
|
14503
|
+
export { scanCodebase, scanForForms, scanForMetadata, scanForSitemapFiles, scanForSitemaps, scanForWidgets };
|
|
14504
|
+
//# sourceMappingURL=scanner-AZV5I6US.mjs.map
|
|
14505
|
+
//# sourceMappingURL=scanner-AZV5I6US.mjs.map
|