@uptrademedia/site-kit 1.0.1 → 1.0.3

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/dist/blog/index.js.map +1 -1
  2. package/dist/blog/index.mjs.map +1 -1
  3. package/dist/chunk-5R4R3WDP.js +1451 -0
  4. package/dist/chunk-5R4R3WDP.js.map +1 -0
  5. package/dist/{chunk-COI6GOX2.mjs → chunk-63JNO4QN.mjs} +3 -3
  6. package/dist/chunk-63JNO4QN.mjs.map +1 -0
  7. package/dist/chunk-6EXHT7PS.mjs +330 -0
  8. package/dist/chunk-6EXHT7PS.mjs.map +1 -0
  9. package/dist/{chunk-RV7H3I6J.js → chunk-ADHVEFWD.js} +68 -2
  10. package/dist/chunk-ADHVEFWD.js.map +1 -0
  11. package/dist/chunk-BGJLOJ7T.mjs +605 -0
  12. package/dist/chunk-BGJLOJ7T.mjs.map +1 -0
  13. package/dist/chunk-BZBJVG5Y.js +88 -0
  14. package/dist/chunk-BZBJVG5Y.js.map +1 -0
  15. package/dist/chunk-DRFTRTKV.js +809 -0
  16. package/dist/chunk-DRFTRTKV.js.map +1 -0
  17. package/dist/chunk-EL5QTAA3.mjs +805 -0
  18. package/dist/chunk-EL5QTAA3.mjs.map +1 -0
  19. package/dist/chunk-JG2K4S2I.js +997 -0
  20. package/dist/chunk-JG2K4S2I.js.map +1 -0
  21. package/dist/chunk-P7LGOKGI.mjs +981 -0
  22. package/dist/chunk-P7LGOKGI.mjs.map +1 -0
  23. package/dist/{chunk-3MUOUXHV.js → chunk-PYYEPAHL.js} +3 -3
  24. package/dist/chunk-PYYEPAHL.js.map +1 -0
  25. package/dist/chunk-QAYJV4KK.js +608 -0
  26. package/dist/chunk-QAYJV4KK.js.map +1 -0
  27. package/dist/{chunk-FEBYQGY4 2.mjs → chunk-SMUFNQLM.mjs} +67 -3
  28. package/dist/chunk-SMUFNQLM.mjs.map +1 -0
  29. package/dist/chunk-VDMZZL2O.mjs +83 -0
  30. package/dist/chunk-VDMZZL2O.mjs.map +1 -0
  31. package/dist/chunk-XFRPT5ZX.mjs +1449 -0
  32. package/dist/chunk-XFRPT5ZX.mjs.map +1 -0
  33. package/dist/chunk-YKMCG3DS.js +332 -0
  34. package/dist/chunk-YKMCG3DS.js.map +1 -0
  35. package/dist/commerce/index.js +38 -38
  36. package/dist/commerce/index.mjs +1 -1
  37. package/dist/engage/index.js +7 -40
  38. package/dist/engage/index.js.map +1 -1
  39. package/dist/engage/index.mjs +1 -41
  40. package/dist/engage/index.mjs.map +1 -1
  41. package/dist/forms/index.js +13 -5
  42. package/dist/forms/index.js.map +1 -1
  43. package/dist/forms/index.mjs +2 -2
  44. package/dist/forms/index.mjs.map +1 -1
  45. package/dist/{generators-7Y5ABRYV 2.mjs → generators-TO2FKJR6.mjs} +134 -3
  46. package/dist/generators-TO2FKJR6.mjs.map +1 -0
  47. package/dist/{generators-GWIYCA5M.js → generators-YZWIGHCO.js} +135 -2
  48. package/dist/generators-YZWIGHCO.js.map +1 -0
  49. package/dist/images/index.js +41 -0
  50. package/dist/images/index.js.map +1 -0
  51. package/dist/images/index.mjs +8 -0
  52. package/dist/images/index.mjs.map +1 -0
  53. package/dist/index.js +1355 -104
  54. package/dist/index.js.map +1 -1
  55. package/dist/index.mjs +1242 -76
  56. package/dist/index.mjs.map +1 -1
  57. package/dist/redirects/index.js +25 -0
  58. package/dist/redirects/index.js.map +1 -0
  59. package/dist/redirects/index.mjs +4 -0
  60. package/dist/redirects/index.mjs.map +1 -0
  61. package/dist/{scanner-MF7P3CDE 2.mjs → scanner-AZV5I6US.mjs} +123 -4
  62. package/dist/scanner-AZV5I6US.mjs.map +1 -0
  63. package/dist/{scanner-NT6YG4TD 2.js → scanner-ETJAMIT7.js} +124 -3
  64. package/dist/scanner-ETJAMIT7.js.map +1 -0
  65. package/dist/setup/client.js +30 -0
  66. package/dist/setup/client.js.map +1 -0
  67. package/dist/setup/client.mjs +5 -0
  68. package/dist/setup/client.mjs.map +1 -0
  69. package/dist/setup/index.js +28 -1043
  70. package/dist/setup/index.js.map +1 -1
  71. package/dist/setup/index.mjs +3 -1043
  72. package/dist/setup/index.mjs.map +1 -1
  73. package/dist/setup/server.js +13 -0
  74. package/dist/setup/server.js.map +1 -0
  75. package/dist/setup/server.mjs +4 -0
  76. package/dist/setup/server.mjs.map +1 -0
  77. package/package.json +21 -1
  78. package/dist/chunk-3MUOUXHV.js.map +0 -1
  79. package/dist/chunk-4HVYXYQL 2.mjs +0 -255
  80. package/dist/chunk-4HVYXYQL.mjs +0 -255
  81. package/dist/chunk-4HVYXYQL.mjs.map +0 -1
  82. package/dist/chunk-COI6GOX2.mjs.map +0 -1
  83. package/dist/chunk-EQCVQC35.js 2.map +0 -1
  84. package/dist/chunk-FEBYQGY4.mjs +0 -251
  85. package/dist/chunk-FEBYQGY4.mjs.map +0 -1
  86. package/dist/chunk-NYKRE2FL 2.mjs +0 -31
  87. package/dist/chunk-NYKRE2FL.mjs 2.map +0 -1
  88. package/dist/chunk-RV7H3I6J.js 2.map +0 -1
  89. package/dist/chunk-RV7H3I6J.js.map +0 -1
  90. package/dist/chunk-TUKGA3UK.js +0 -257
  91. package/dist/chunk-TUKGA3UK.js 2.map +0 -1
  92. package/dist/chunk-TUKGA3UK.js.map +0 -1
  93. package/dist/generators-7Y5ABRYV.mjs +0 -161
  94. package/dist/generators-7Y5ABRYV.mjs 2.map +0 -1
  95. package/dist/generators-7Y5ABRYV.mjs.map +0 -1
  96. package/dist/generators-GWIYCA5M.js 2.map +0 -1
  97. package/dist/generators-GWIYCA5M.js.map +0 -1
  98. package/dist/index 2.mjs +0 -74
  99. package/dist/index.js 2.map +0 -1
  100. package/dist/migrator-V6KS75EA 2.mjs +0 -265
  101. package/dist/migrator-V6KS75EA.mjs 2.map +0 -1
  102. package/dist/migrator-XKM7YQCY.js 2.map +0 -1
  103. package/dist/scanner-MF7P3CDE.mjs +0 -14386
  104. package/dist/scanner-MF7P3CDE.mjs 2.map +0 -1
  105. package/dist/scanner-MF7P3CDE.mjs.map +0 -1
  106. package/dist/scanner-NT6YG4TD.js +0 -14397
  107. package/dist/scanner-NT6YG4TD.js 2.map +0 -1
  108. package/dist/scanner-NT6YG4TD.js.map +0 -1
  109. package/dist/web-vitals-BH55V7EJ.js 2.map +0 -1
  110. package/dist/web-vitals-RJYPWAR3 2.mjs +0 -241
  111. package/dist/web-vitals-RJYPWAR3.mjs 2.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/generators/index.ts"],"names":[],"mappings":"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","file":"generators-TO2FKJR6.mjs","sourcesContent":["/**\n * Code Generators - Creates SiteKitProvider setup and env files\n */\n\nimport fs from 'fs/promises'\nimport path from 'path'\n\n// ============================================\n// Types\n// ============================================\n\ninterface EnvOptions {\n projectId: string\n supabaseUrl: string\n supabaseAnonKey: string\n apiKey: string\n}\n\ninterface ProviderOptions {\n projectId: string\n}\n\n// ============================================\n// Env File Generator\n// ============================================\n\nexport async function generateEnvFile(options: EnvOptions): Promise<void> {\n const envPath = path.join(process.cwd(), '.env.local')\n \n // Check if file exists and read existing content\n let existingContent = ''\n try {\n existingContent = await fs.readFile(envPath, 'utf-8')\n } catch {\n // File doesn't exist, that's fine\n }\n\n // Build new env vars\n const newVars: Record<string, string> = {\n 'NEXT_PUBLIC_UPTRADE_PROJECT_ID': options.projectId,\n 'NEXT_PUBLIC_SUPABASE_URL': options.supabaseUrl,\n 'NEXT_PUBLIC_SUPABASE_ANON_KEY': options.supabaseAnonKey,\n 'UPTRADE_API_KEY': options.apiKey,\n }\n\n // Parse existing content\n const lines = existingContent.split('\\n')\n const existingVars: Record<string, string> = {}\n const comments: string[] = []\n\n for (const line of lines) {\n if (line.startsWith('#') || line.trim() === '') {\n comments.push(line)\n continue\n }\n const [key, ...valueParts] = line.split('=')\n if (key) {\n existingVars[key.trim()] = valueParts.join('=').trim()\n }\n }\n\n // Merge vars (new vars take precedence)\n const mergedVars = { ...existingVars, ...newVars }\n\n // Generate new content\n let newContent = `# Uptrade Site-Kit Configuration\n# Generated by @uptrade/site-kit setup wizard\n\n# Project ID from Uptrade Portal\nNEXT_PUBLIC_UPTRADE_PROJECT_ID=${newVars['NEXT_PUBLIC_UPTRADE_PROJECT_ID']}\n\n# Supabase Configuration\nNEXT_PUBLIC_SUPABASE_URL=${newVars['NEXT_PUBLIC_SUPABASE_URL']}\nNEXT_PUBLIC_SUPABASE_ANON_KEY=${newVars['NEXT_PUBLIC_SUPABASE_ANON_KEY']}\n\n# Uptrade API Key (for server-side operations)\nUPTRADE_API_KEY=${newVars['UPTRADE_API_KEY']}\n\n`\n\n // Add any existing vars that aren't Uptrade-related\n const uptradeKeys = Object.keys(newVars)\n const otherVars = Object.entries(existingVars)\n .filter(([key]) => !uptradeKeys.includes(key))\n \n if (otherVars.length > 0) {\n newContent += '# Other Environment Variables\\n'\n for (const [key, value] of otherVars) {\n newContent += `${key}=${value}\\n`\n }\n }\n\n await fs.writeFile(envPath, newContent, 'utf-8')\n}\n\n// ============================================\n// Provider Generator\n// ============================================\n\nexport async function generateProvider(options: ProviderOptions): Promise<void> {\n // Find the layout file\n const layoutPath = await findLayoutFile()\n if (!layoutPath) {\n throw new Error('Could not find layout.tsx file')\n }\n\n const content = await fs.readFile(layoutPath, 'utf-8')\n\n // Check if SiteKitProvider is already added\n if (content.includes('SiteKitProvider')) {\n return // Already configured\n }\n\n // Add import\n let newContent = content\n\n // Find where to add import (after other imports)\n const lastImportIndex = content.lastIndexOf('import ')\n const lastImportEndIndex = content.indexOf('\\n', lastImportIndex)\n \n const importStatement = `\\nimport { SiteKitProvider } from '@uptrade/site-kit'`\n newContent = \n content.slice(0, lastImportEndIndex) + \n importStatement + \n content.slice(lastImportEndIndex)\n\n // Wrap children with SiteKitProvider\n // Look for {children} and wrap it\n const childrenPattern = /(\\s*){children}/\n const childrenMatch = newContent.match(childrenPattern)\n \n if (childrenMatch) {\n const indent = childrenMatch[1] || ' '\n const providerWrap = `\n${indent}<SiteKitProvider\n${indent} projectId={process.env.NEXT_PUBLIC_UPTRADE_PROJECT_ID!}\n${indent} supabaseUrl={process.env.NEXT_PUBLIC_SUPABASE_URL!}\n${indent} supabaseAnonKey={process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!}\n${indent} analytics={{ enabled: true }}\n${indent} engage={{ enabled: true }}\n${indent} forms={{ enabled: true }}\n${indent}>\n${indent} {children}\n${indent}</SiteKitProvider>`\n\n newContent = newContent.replace(childrenPattern, providerWrap)\n } else {\n // Try alternative pattern for layouts that use a different structure\n const bodyPattern = /(<body[^>]*>)([\\s\\S]*?)(<\\/body>)/\n const bodyMatch = newContent.match(bodyPattern)\n \n if (bodyMatch) {\n const bodyContent = bodyMatch[2]\n const wrappedContent = `\n <SiteKitProvider\n projectId={process.env.NEXT_PUBLIC_UPTRADE_PROJECT_ID!}\n supabaseUrl={process.env.NEXT_PUBLIC_SUPABASE_URL!}\n supabaseAnonKey={process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!}\n analytics={{ enabled: true }}\n engage={{ enabled: true }}\n forms={{ enabled: true }}\n >\n ${bodyContent.trim()}\n </SiteKitProvider>\n `\n \n newContent = newContent.replace(bodyPattern, `$1${wrappedContent}$3`)\n }\n }\n\n await fs.writeFile(layoutPath, newContent, 'utf-8')\n}\n\n// ============================================\n// Helpers\n// ============================================\n\nasync function findLayoutFile(): Promise<string | null> {\n const possiblePaths = [\n 'src/app/layout.tsx',\n 'app/layout.tsx',\n 'src/app/layout.jsx',\n 'app/layout.jsx',\n ]\n\n for (const relativePath of possiblePaths) {\n const fullPath = path.join(process.cwd(), relativePath)\n try {\n await fs.access(fullPath)\n return fullPath\n } catch {\n continue\n }\n }\n\n return null\n}\n\n// ============================================\n// Setup Route Generator (for visual wizard)\n// ============================================\n\nexport async function generateSetupRoute(): Promise<void> {\n const routeDir = path.join(process.cwd(), 'app', '_uptrade', 'setup')\n \n // Create directory\n await fs.mkdir(routeDir, { recursive: true })\n\n // Create page.tsx\n const pageContent = `/**\n * Uptrade Setup Wizard\n * \n * This route is automatically removed after setup is complete.\n * Visit /_uptrade/setup to configure Site-Kit.\n */\n\nimport { SetupWizard } from '@uptrade/site-kit/setup'\n\nexport default function SetupPage() {\n return <SetupWizard />\n}\n`\n\n await fs.writeFile(path.join(routeDir, 'page.tsx'), pageContent, 'utf-8')\n}\n\n// ============================================\n// Self-Destruct\n// ============================================\n\nexport async function selfDestruct(): Promise<void> {\n // Remove setup route\n const setupDir = path.join(process.cwd(), 'app', '_uptrade')\n try {\n await fs.rm(setupDir, { recursive: true, force: true })\n } catch {\n // Directory might not exist\n }\n\n // Remove UptradeSetup from layout if present\n const layoutPath = await findLayoutFile()\n if (layoutPath) {\n let content = await fs.readFile(layoutPath, 'utf-8')\n \n // Remove import\n content = content.replace(/import\\s*{\\s*UptradeSetup\\s*}\\s*from\\s*['\"]@uptrade\\/site-kit\\/setup['\"][;\\n]?/g, '')\n \n // Remove component usage\n content = content.replace(/\\s*{process\\.env\\.NODE_ENV\\s*===\\s*['\"]development['\"]\\s*&&\\s*<UptradeSetup\\s*\\/>}\\s*/g, '\\n')\n content = content.replace(/<UptradeSetup\\s*\\/>/g, '')\n \n await fs.writeFile(layoutPath, content, 'utf-8')\n }\n}\n\n// ============================================\n// Sitemap Generator\n// ============================================\n\ninterface SitemapMigrationOptions {\n baseUrl: string\n existingSitemaps: Array<{\n filePath: string\n type: string\n generator?: string\n }>\n deleteExisting: boolean\n}\n\n/**\n * Generate site-kit sitemap and optionally remove existing sitemap files\n */\nexport async function migrateSitemap(options: SitemapMigrationOptions): Promise<{\n deleted: string[]\n created: string\n}> {\n const deleted: string[] = []\n\n // Delete existing sitemap files if requested\n if (options.deleteExisting) {\n for (const existing of options.existingSitemaps) {\n // Skip if it's already site-kit\n if (existing.generator === 'site-kit') continue\n\n const fullPath = path.join(process.cwd(), existing.filePath)\n try {\n await fs.unlink(fullPath)\n deleted.push(existing.filePath)\n } catch {\n // File might not exist or be locked\n }\n }\n\n // Also delete next-sitemap config files\n const configFiles = [\n 'next-sitemap.config.js',\n 'next-sitemap.config.mjs', \n 'next-sitemap.config.ts',\n ]\n for (const config of configFiles) {\n const fullPath = path.join(process.cwd(), config)\n try {\n await fs.access(fullPath)\n await fs.unlink(fullPath)\n deleted.push(config)\n } catch {\n // File doesn't exist\n }\n }\n\n // Delete static sitemap.xml if it exists in public\n const staticSitemap = path.join(process.cwd(), 'public', 'sitemap.xml')\n try {\n await fs.access(staticSitemap)\n await fs.unlink(staticSitemap)\n deleted.push('public/sitemap.xml')\n } catch {\n // File doesn't exist\n }\n\n // Delete sitemap index if exists\n const staticSitemapIndex = path.join(process.cwd(), 'public', 'sitemap-0.xml')\n try {\n await fs.access(staticSitemapIndex)\n // Find all sitemap-N.xml files\n const publicDir = path.join(process.cwd(), 'public')\n const files = await fs.readdir(publicDir)\n for (const file of files) {\n if (file.match(/^sitemap-\\d+\\.xml$/)) {\n await fs.unlink(path.join(publicDir, file))\n deleted.push(`public/${file}`)\n }\n }\n } catch {\n // File doesn't exist\n }\n }\n\n // Generate new sitemap.ts using site-kit\n const sitemapPath = await findSitemapLocation()\n const sitemapContent = generateSitemapContent(options.baseUrl)\n\n await fs.mkdir(path.dirname(sitemapPath), { recursive: true })\n await fs.writeFile(sitemapPath, sitemapContent, 'utf-8')\n\n return {\n deleted,\n created: path.relative(process.cwd(), sitemapPath),\n }\n}\n\n/**\n * Find where to put the sitemap file\n */\nasync function findSitemapLocation(): Promise<string> {\n // Check if using src/app or app\n const srcApp = path.join(process.cwd(), 'src', 'app', 'sitemap.ts')\n const app = path.join(process.cwd(), 'app', 'sitemap.ts')\n\n try {\n await fs.access(path.join(process.cwd(), 'src', 'app'))\n return srcApp\n } catch {\n return app\n }\n}\n\n/**\n * Generate sitemap.ts content\n */\nfunction generateSitemapContent(baseUrl: string): string {\n return `/**\n * Sitemap Generator - Powered by @uptrade/site-kit\n * \n * Automatically discovers pages from the app directory and syncs\n * them to Portal API for SEO tracking and analytics validation.\n * \n * Generated by Uptrade Site-Kit Setup Wizard\n */\n\nimport { createSitemap } from '@uptrade/site-kit/sitemap'\n\nexport default createSitemap({\n baseUrl: '${baseUrl}',\n \n // Optional: Exclude patterns (these are excluded by default)\n // exclude: ['/admin/*', '/api/*'],\n \n // Optional: Override priorities for specific paths\n // priorities: {\n // '/': 1.0,\n // '/about': 0.8,\n // '/contact': 0.7,\n // },\n \n // Optional: Add dynamic routes not discoverable from file system\n // additionalPaths: async () => {\n // // Example: Fetch blog posts from database\n // // const posts = await getBlogPosts()\n // // return posts.map(post => ({ path: \\`/blog/\\${post.slug}\\`, priority: 0.7 }))\n // return []\n // },\n})\n`\n}\n\n/**\n * Remove next-sitemap from package.json dependencies\n */\nexport async function removeNextSitemapDependency(): Promise<boolean> {\n const packageJsonPath = path.join(process.cwd(), 'package.json')\n \n try {\n const content = await fs.readFile(packageJsonPath, 'utf-8')\n const pkg = JSON.parse(content)\n \n let modified = false\n \n if (pkg.dependencies?.['next-sitemap']) {\n delete pkg.dependencies['next-sitemap']\n modified = true\n }\n \n if (pkg.devDependencies?.['next-sitemap']) {\n delete pkg.devDependencies['next-sitemap']\n modified = true\n }\n\n // Also remove from scripts if present\n if (pkg.scripts) {\n for (const [key, value] of Object.entries(pkg.scripts)) {\n if (typeof value === 'string' && value.includes('next-sitemap')) {\n delete pkg.scripts[key]\n modified = true\n }\n }\n }\n\n if (modified) {\n await fs.writeFile(packageJsonPath, JSON.stringify(pkg, null, 2) + '\\n', 'utf-8')\n }\n\n return modified\n } catch {\n return false\n }\n}\n\n"]}
@@ -162,10 +162,143 @@ async function selfDestruct() {
162
162
  await fs__default.default.writeFile(layoutPath, content, "utf-8");
163
163
  }
164
164
  }
165
+ async function migrateSitemap(options) {
166
+ const deleted = [];
167
+ if (options.deleteExisting) {
168
+ for (const existing of options.existingSitemaps) {
169
+ if (existing.generator === "site-kit") continue;
170
+ const fullPath = path__default.default.join(process.cwd(), existing.filePath);
171
+ try {
172
+ await fs__default.default.unlink(fullPath);
173
+ deleted.push(existing.filePath);
174
+ } catch {
175
+ }
176
+ }
177
+ const configFiles = [
178
+ "next-sitemap.config.js",
179
+ "next-sitemap.config.mjs",
180
+ "next-sitemap.config.ts"
181
+ ];
182
+ for (const config of configFiles) {
183
+ const fullPath = path__default.default.join(process.cwd(), config);
184
+ try {
185
+ await fs__default.default.access(fullPath);
186
+ await fs__default.default.unlink(fullPath);
187
+ deleted.push(config);
188
+ } catch {
189
+ }
190
+ }
191
+ const staticSitemap = path__default.default.join(process.cwd(), "public", "sitemap.xml");
192
+ try {
193
+ await fs__default.default.access(staticSitemap);
194
+ await fs__default.default.unlink(staticSitemap);
195
+ deleted.push("public/sitemap.xml");
196
+ } catch {
197
+ }
198
+ const staticSitemapIndex = path__default.default.join(process.cwd(), "public", "sitemap-0.xml");
199
+ try {
200
+ await fs__default.default.access(staticSitemapIndex);
201
+ const publicDir = path__default.default.join(process.cwd(), "public");
202
+ const files = await fs__default.default.readdir(publicDir);
203
+ for (const file of files) {
204
+ if (file.match(/^sitemap-\d+\.xml$/)) {
205
+ await fs__default.default.unlink(path__default.default.join(publicDir, file));
206
+ deleted.push(`public/${file}`);
207
+ }
208
+ }
209
+ } catch {
210
+ }
211
+ }
212
+ const sitemapPath = await findSitemapLocation();
213
+ const sitemapContent = generateSitemapContent(options.baseUrl);
214
+ await fs__default.default.mkdir(path__default.default.dirname(sitemapPath), { recursive: true });
215
+ await fs__default.default.writeFile(sitemapPath, sitemapContent, "utf-8");
216
+ return {
217
+ deleted,
218
+ created: path__default.default.relative(process.cwd(), sitemapPath)
219
+ };
220
+ }
221
+ async function findSitemapLocation() {
222
+ const srcApp = path__default.default.join(process.cwd(), "src", "app", "sitemap.ts");
223
+ const app = path__default.default.join(process.cwd(), "app", "sitemap.ts");
224
+ try {
225
+ await fs__default.default.access(path__default.default.join(process.cwd(), "src", "app"));
226
+ return srcApp;
227
+ } catch {
228
+ return app;
229
+ }
230
+ }
231
+ function generateSitemapContent(baseUrl) {
232
+ return `/**
233
+ * Sitemap Generator - Powered by @uptrade/site-kit
234
+ *
235
+ * Automatically discovers pages from the app directory and syncs
236
+ * them to Portal API for SEO tracking and analytics validation.
237
+ *
238
+ * Generated by Uptrade Site-Kit Setup Wizard
239
+ */
240
+
241
+ import { createSitemap } from '@uptrade/site-kit/sitemap'
242
+
243
+ export default createSitemap({
244
+ baseUrl: '${baseUrl}',
245
+
246
+ // Optional: Exclude patterns (these are excluded by default)
247
+ // exclude: ['/admin/*', '/api/*'],
248
+
249
+ // Optional: Override priorities for specific paths
250
+ // priorities: {
251
+ // '/': 1.0,
252
+ // '/about': 0.8,
253
+ // '/contact': 0.7,
254
+ // },
255
+
256
+ // Optional: Add dynamic routes not discoverable from file system
257
+ // additionalPaths: async () => {
258
+ // // Example: Fetch blog posts from database
259
+ // // const posts = await getBlogPosts()
260
+ // // return posts.map(post => ({ path: \`/blog/\${post.slug}\`, priority: 0.7 }))
261
+ // return []
262
+ // },
263
+ })
264
+ `;
265
+ }
266
+ async function removeNextSitemapDependency() {
267
+ const packageJsonPath = path__default.default.join(process.cwd(), "package.json");
268
+ try {
269
+ const content = await fs__default.default.readFile(packageJsonPath, "utf-8");
270
+ const pkg = JSON.parse(content);
271
+ let modified = false;
272
+ if (pkg.dependencies?.["next-sitemap"]) {
273
+ delete pkg.dependencies["next-sitemap"];
274
+ modified = true;
275
+ }
276
+ if (pkg.devDependencies?.["next-sitemap"]) {
277
+ delete pkg.devDependencies["next-sitemap"];
278
+ modified = true;
279
+ }
280
+ if (pkg.scripts) {
281
+ for (const [key, value] of Object.entries(pkg.scripts)) {
282
+ if (typeof value === "string" && value.includes("next-sitemap")) {
283
+ delete pkg.scripts[key];
284
+ modified = true;
285
+ }
286
+ }
287
+ }
288
+ if (modified) {
289
+ await fs__default.default.writeFile(packageJsonPath, JSON.stringify(pkg, null, 2) + "\n", "utf-8");
290
+ }
291
+ return modified;
292
+ } catch {
293
+ return false;
294
+ }
295
+ }
165
296
 
166
297
  exports.generateEnvFile = generateEnvFile;
167
298
  exports.generateProvider = generateProvider;
168
299
  exports.generateSetupRoute = generateSetupRoute;
300
+ exports.migrateSitemap = migrateSitemap;
301
+ exports.removeNextSitemapDependency = removeNextSitemapDependency;
169
302
  exports.selfDestruct = selfDestruct;
170
- //# sourceMappingURL=generators-GWIYCA5M.js.map
171
- //# sourceMappingURL=generators-GWIYCA5M.js.map
303
+ //# sourceMappingURL=generators-YZWIGHCO.js.map
304
+ //# sourceMappingURL=generators-YZWIGHCO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/generators/index.ts"],"names":["path","fs"],"mappings":"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","file":"generators-YZWIGHCO.js","sourcesContent":["/**\n * Code Generators - Creates SiteKitProvider setup and env files\n */\n\nimport fs from 'fs/promises'\nimport path from 'path'\n\n// ============================================\n// Types\n// ============================================\n\ninterface EnvOptions {\n projectId: string\n supabaseUrl: string\n supabaseAnonKey: string\n apiKey: string\n}\n\ninterface ProviderOptions {\n projectId: string\n}\n\n// ============================================\n// Env File Generator\n// ============================================\n\nexport async function generateEnvFile(options: EnvOptions): Promise<void> {\n const envPath = path.join(process.cwd(), '.env.local')\n \n // Check if file exists and read existing content\n let existingContent = ''\n try {\n existingContent = await fs.readFile(envPath, 'utf-8')\n } catch {\n // File doesn't exist, that's fine\n }\n\n // Build new env vars\n const newVars: Record<string, string> = {\n 'NEXT_PUBLIC_UPTRADE_PROJECT_ID': options.projectId,\n 'NEXT_PUBLIC_SUPABASE_URL': options.supabaseUrl,\n 'NEXT_PUBLIC_SUPABASE_ANON_KEY': options.supabaseAnonKey,\n 'UPTRADE_API_KEY': options.apiKey,\n }\n\n // Parse existing content\n const lines = existingContent.split('\\n')\n const existingVars: Record<string, string> = {}\n const comments: string[] = []\n\n for (const line of lines) {\n if (line.startsWith('#') || line.trim() === '') {\n comments.push(line)\n continue\n }\n const [key, ...valueParts] = line.split('=')\n if (key) {\n existingVars[key.trim()] = valueParts.join('=').trim()\n }\n }\n\n // Merge vars (new vars take precedence)\n const mergedVars = { ...existingVars, ...newVars }\n\n // Generate new content\n let newContent = `# Uptrade Site-Kit Configuration\n# Generated by @uptrade/site-kit setup wizard\n\n# Project ID from Uptrade Portal\nNEXT_PUBLIC_UPTRADE_PROJECT_ID=${newVars['NEXT_PUBLIC_UPTRADE_PROJECT_ID']}\n\n# Supabase Configuration\nNEXT_PUBLIC_SUPABASE_URL=${newVars['NEXT_PUBLIC_SUPABASE_URL']}\nNEXT_PUBLIC_SUPABASE_ANON_KEY=${newVars['NEXT_PUBLIC_SUPABASE_ANON_KEY']}\n\n# Uptrade API Key (for server-side operations)\nUPTRADE_API_KEY=${newVars['UPTRADE_API_KEY']}\n\n`\n\n // Add any existing vars that aren't Uptrade-related\n const uptradeKeys = Object.keys(newVars)\n const otherVars = Object.entries(existingVars)\n .filter(([key]) => !uptradeKeys.includes(key))\n \n if (otherVars.length > 0) {\n newContent += '# Other Environment Variables\\n'\n for (const [key, value] of otherVars) {\n newContent += `${key}=${value}\\n`\n }\n }\n\n await fs.writeFile(envPath, newContent, 'utf-8')\n}\n\n// ============================================\n// Provider Generator\n// ============================================\n\nexport async function generateProvider(options: ProviderOptions): Promise<void> {\n // Find the layout file\n const layoutPath = await findLayoutFile()\n if (!layoutPath) {\n throw new Error('Could not find layout.tsx file')\n }\n\n const content = await fs.readFile(layoutPath, 'utf-8')\n\n // Check if SiteKitProvider is already added\n if (content.includes('SiteKitProvider')) {\n return // Already configured\n }\n\n // Add import\n let newContent = content\n\n // Find where to add import (after other imports)\n const lastImportIndex = content.lastIndexOf('import ')\n const lastImportEndIndex = content.indexOf('\\n', lastImportIndex)\n \n const importStatement = `\\nimport { SiteKitProvider } from '@uptrade/site-kit'`\n newContent = \n content.slice(0, lastImportEndIndex) + \n importStatement + \n content.slice(lastImportEndIndex)\n\n // Wrap children with SiteKitProvider\n // Look for {children} and wrap it\n const childrenPattern = /(\\s*){children}/\n const childrenMatch = newContent.match(childrenPattern)\n \n if (childrenMatch) {\n const indent = childrenMatch[1] || ' '\n const providerWrap = `\n${indent}<SiteKitProvider\n${indent} projectId={process.env.NEXT_PUBLIC_UPTRADE_PROJECT_ID!}\n${indent} supabaseUrl={process.env.NEXT_PUBLIC_SUPABASE_URL!}\n${indent} supabaseAnonKey={process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!}\n${indent} analytics={{ enabled: true }}\n${indent} engage={{ enabled: true }}\n${indent} forms={{ enabled: true }}\n${indent}>\n${indent} {children}\n${indent}</SiteKitProvider>`\n\n newContent = newContent.replace(childrenPattern, providerWrap)\n } else {\n // Try alternative pattern for layouts that use a different structure\n const bodyPattern = /(<body[^>]*>)([\\s\\S]*?)(<\\/body>)/\n const bodyMatch = newContent.match(bodyPattern)\n \n if (bodyMatch) {\n const bodyContent = bodyMatch[2]\n const wrappedContent = `\n <SiteKitProvider\n projectId={process.env.NEXT_PUBLIC_UPTRADE_PROJECT_ID!}\n supabaseUrl={process.env.NEXT_PUBLIC_SUPABASE_URL!}\n supabaseAnonKey={process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!}\n analytics={{ enabled: true }}\n engage={{ enabled: true }}\n forms={{ enabled: true }}\n >\n ${bodyContent.trim()}\n </SiteKitProvider>\n `\n \n newContent = newContent.replace(bodyPattern, `$1${wrappedContent}$3`)\n }\n }\n\n await fs.writeFile(layoutPath, newContent, 'utf-8')\n}\n\n// ============================================\n// Helpers\n// ============================================\n\nasync function findLayoutFile(): Promise<string | null> {\n const possiblePaths = [\n 'src/app/layout.tsx',\n 'app/layout.tsx',\n 'src/app/layout.jsx',\n 'app/layout.jsx',\n ]\n\n for (const relativePath of possiblePaths) {\n const fullPath = path.join(process.cwd(), relativePath)\n try {\n await fs.access(fullPath)\n return fullPath\n } catch {\n continue\n }\n }\n\n return null\n}\n\n// ============================================\n// Setup Route Generator (for visual wizard)\n// ============================================\n\nexport async function generateSetupRoute(): Promise<void> {\n const routeDir = path.join(process.cwd(), 'app', '_uptrade', 'setup')\n \n // Create directory\n await fs.mkdir(routeDir, { recursive: true })\n\n // Create page.tsx\n const pageContent = `/**\n * Uptrade Setup Wizard\n * \n * This route is automatically removed after setup is complete.\n * Visit /_uptrade/setup to configure Site-Kit.\n */\n\nimport { SetupWizard } from '@uptrade/site-kit/setup'\n\nexport default function SetupPage() {\n return <SetupWizard />\n}\n`\n\n await fs.writeFile(path.join(routeDir, 'page.tsx'), pageContent, 'utf-8')\n}\n\n// ============================================\n// Self-Destruct\n// ============================================\n\nexport async function selfDestruct(): Promise<void> {\n // Remove setup route\n const setupDir = path.join(process.cwd(), 'app', '_uptrade')\n try {\n await fs.rm(setupDir, { recursive: true, force: true })\n } catch {\n // Directory might not exist\n }\n\n // Remove UptradeSetup from layout if present\n const layoutPath = await findLayoutFile()\n if (layoutPath) {\n let content = await fs.readFile(layoutPath, 'utf-8')\n \n // Remove import\n content = content.replace(/import\\s*{\\s*UptradeSetup\\s*}\\s*from\\s*['\"]@uptrade\\/site-kit\\/setup['\"][;\\n]?/g, '')\n \n // Remove component usage\n content = content.replace(/\\s*{process\\.env\\.NODE_ENV\\s*===\\s*['\"]development['\"]\\s*&&\\s*<UptradeSetup\\s*\\/>}\\s*/g, '\\n')\n content = content.replace(/<UptradeSetup\\s*\\/>/g, '')\n \n await fs.writeFile(layoutPath, content, 'utf-8')\n }\n}\n\n// ============================================\n// Sitemap Generator\n// ============================================\n\ninterface SitemapMigrationOptions {\n baseUrl: string\n existingSitemaps: Array<{\n filePath: string\n type: string\n generator?: string\n }>\n deleteExisting: boolean\n}\n\n/**\n * Generate site-kit sitemap and optionally remove existing sitemap files\n */\nexport async function migrateSitemap(options: SitemapMigrationOptions): Promise<{\n deleted: string[]\n created: string\n}> {\n const deleted: string[] = []\n\n // Delete existing sitemap files if requested\n if (options.deleteExisting) {\n for (const existing of options.existingSitemaps) {\n // Skip if it's already site-kit\n if (existing.generator === 'site-kit') continue\n\n const fullPath = path.join(process.cwd(), existing.filePath)\n try {\n await fs.unlink(fullPath)\n deleted.push(existing.filePath)\n } catch {\n // File might not exist or be locked\n }\n }\n\n // Also delete next-sitemap config files\n const configFiles = [\n 'next-sitemap.config.js',\n 'next-sitemap.config.mjs', \n 'next-sitemap.config.ts',\n ]\n for (const config of configFiles) {\n const fullPath = path.join(process.cwd(), config)\n try {\n await fs.access(fullPath)\n await fs.unlink(fullPath)\n deleted.push(config)\n } catch {\n // File doesn't exist\n }\n }\n\n // Delete static sitemap.xml if it exists in public\n const staticSitemap = path.join(process.cwd(), 'public', 'sitemap.xml')\n try {\n await fs.access(staticSitemap)\n await fs.unlink(staticSitemap)\n deleted.push('public/sitemap.xml')\n } catch {\n // File doesn't exist\n }\n\n // Delete sitemap index if exists\n const staticSitemapIndex = path.join(process.cwd(), 'public', 'sitemap-0.xml')\n try {\n await fs.access(staticSitemapIndex)\n // Find all sitemap-N.xml files\n const publicDir = path.join(process.cwd(), 'public')\n const files = await fs.readdir(publicDir)\n for (const file of files) {\n if (file.match(/^sitemap-\\d+\\.xml$/)) {\n await fs.unlink(path.join(publicDir, file))\n deleted.push(`public/${file}`)\n }\n }\n } catch {\n // File doesn't exist\n }\n }\n\n // Generate new sitemap.ts using site-kit\n const sitemapPath = await findSitemapLocation()\n const sitemapContent = generateSitemapContent(options.baseUrl)\n\n await fs.mkdir(path.dirname(sitemapPath), { recursive: true })\n await fs.writeFile(sitemapPath, sitemapContent, 'utf-8')\n\n return {\n deleted,\n created: path.relative(process.cwd(), sitemapPath),\n }\n}\n\n/**\n * Find where to put the sitemap file\n */\nasync function findSitemapLocation(): Promise<string> {\n // Check if using src/app or app\n const srcApp = path.join(process.cwd(), 'src', 'app', 'sitemap.ts')\n const app = path.join(process.cwd(), 'app', 'sitemap.ts')\n\n try {\n await fs.access(path.join(process.cwd(), 'src', 'app'))\n return srcApp\n } catch {\n return app\n }\n}\n\n/**\n * Generate sitemap.ts content\n */\nfunction generateSitemapContent(baseUrl: string): string {\n return `/**\n * Sitemap Generator - Powered by @uptrade/site-kit\n * \n * Automatically discovers pages from the app directory and syncs\n * them to Portal API for SEO tracking and analytics validation.\n * \n * Generated by Uptrade Site-Kit Setup Wizard\n */\n\nimport { createSitemap } from '@uptrade/site-kit/sitemap'\n\nexport default createSitemap({\n baseUrl: '${baseUrl}',\n \n // Optional: Exclude patterns (these are excluded by default)\n // exclude: ['/admin/*', '/api/*'],\n \n // Optional: Override priorities for specific paths\n // priorities: {\n // '/': 1.0,\n // '/about': 0.8,\n // '/contact': 0.7,\n // },\n \n // Optional: Add dynamic routes not discoverable from file system\n // additionalPaths: async () => {\n // // Example: Fetch blog posts from database\n // // const posts = await getBlogPosts()\n // // return posts.map(post => ({ path: \\`/blog/\\${post.slug}\\`, priority: 0.7 }))\n // return []\n // },\n})\n`\n}\n\n/**\n * Remove next-sitemap from package.json dependencies\n */\nexport async function removeNextSitemapDependency(): Promise<boolean> {\n const packageJsonPath = path.join(process.cwd(), 'package.json')\n \n try {\n const content = await fs.readFile(packageJsonPath, 'utf-8')\n const pkg = JSON.parse(content)\n \n let modified = false\n \n if (pkg.dependencies?.['next-sitemap']) {\n delete pkg.dependencies['next-sitemap']\n modified = true\n }\n \n if (pkg.devDependencies?.['next-sitemap']) {\n delete pkg.devDependencies['next-sitemap']\n modified = true\n }\n\n // Also remove from scripts if present\n if (pkg.scripts) {\n for (const [key, value] of Object.entries(pkg.scripts)) {\n if (typeof value === 'string' && value.includes('next-sitemap')) {\n delete pkg.scripts[key]\n modified = true\n }\n }\n }\n\n if (modified) {\n await fs.writeFile(packageJsonPath, JSON.stringify(pkg, null, 2) + '\\n', 'utf-8')\n }\n\n return modified\n } catch {\n return false\n }\n}\n\n"]}
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+
3
+ var chunkJG2K4S2I_js = require('../chunk-JG2K4S2I.js');
4
+ require('../chunk-HCFPU7TU.js');
5
+ require('../chunk-V3F5J6CV.js');
6
+ require('../chunk-QAYJV4KK.js');
7
+ require('../chunk-ADHVEFWD.js');
8
+ require('../chunk-EQCVQC35.js');
9
+
10
+
11
+
12
+ Object.defineProperty(exports, "ManagedImage", {
13
+ enumerable: true,
14
+ get: function () { return chunkJG2K4S2I_js.ManagedImage; }
15
+ });
16
+ Object.defineProperty(exports, "assignImageToSlot", {
17
+ enumerable: true,
18
+ get: function () { return chunkJG2K4S2I_js.assignImageToSlot; }
19
+ });
20
+ Object.defineProperty(exports, "clearImageSlot", {
21
+ enumerable: true,
22
+ get: function () { return chunkJG2K4S2I_js.clearImageSlot; }
23
+ });
24
+ Object.defineProperty(exports, "fetchManagedImage", {
25
+ enumerable: true,
26
+ get: function () { return chunkJG2K4S2I_js.fetchManagedImage; }
27
+ });
28
+ Object.defineProperty(exports, "fetchManagedImages", {
29
+ enumerable: true,
30
+ get: function () { return chunkJG2K4S2I_js.fetchManagedImages; }
31
+ });
32
+ Object.defineProperty(exports, "listImageFiles", {
33
+ enumerable: true,
34
+ get: function () { return chunkJG2K4S2I_js.listImageFiles; }
35
+ });
36
+ Object.defineProperty(exports, "uploadImage", {
37
+ enumerable: true,
38
+ get: function () { return chunkJG2K4S2I_js.uploadImage; }
39
+ });
40
+ //# sourceMappingURL=index.js.map
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,8 @@
1
+ export { ManagedImage, assignImageToSlot, clearImageSlot, fetchManagedImage, fetchManagedImages, listImageFiles, uploadImage } from '../chunk-P7LGOKGI.mjs';
2
+ import '../chunk-WPSRS352.mjs';
3
+ import '../chunk-FKVJOT2F.mjs';
4
+ import '../chunk-BGJLOJ7T.mjs';
5
+ import '../chunk-SMUFNQLM.mjs';
6
+ import '../chunk-NYKRE2FL.mjs';
7
+ //# sourceMappingURL=index.mjs.map
8
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}