aeo.js 0.0.1 → 0.0.2
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/README.md +188 -6
- package/dist/astro.d.mts +9 -0
- package/dist/astro.d.ts +9 -0
- package/dist/astro.js +1179 -0
- package/dist/astro.js.map +1 -0
- package/dist/astro.mjs +1172 -0
- package/dist/astro.mjs.map +1 -0
- package/dist/index.d.mts +17 -0
- package/dist/index.d.ts +17 -1
- package/dist/index.js +876 -1
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +869 -1
- package/dist/index.mjs.map +1 -0
- package/dist/next.d.mts +33 -0
- package/dist/next.d.ts +33 -0
- package/dist/next.js +1113 -0
- package/dist/next.js.map +1 -0
- package/dist/next.mjs +1106 -0
- package/dist/next.mjs.map +1 -0
- package/dist/react.d.mts +10 -0
- package/dist/react.d.ts +10 -0
- package/dist/react.js +1023 -0
- package/dist/react.js.map +1 -0
- package/dist/react.mjs +1020 -0
- package/dist/react.mjs.map +1 -0
- package/dist/types-BTY-v-7i.d.mts +132 -0
- package/dist/types-BTY-v-7i.d.ts +132 -0
- package/dist/webpack.d.mts +11 -0
- package/dist/webpack.d.ts +11 -0
- package/dist/webpack.js +1019 -0
- package/dist/webpack.js.map +1 -0
- package/dist/webpack.mjs +1013 -0
- package/dist/webpack.mjs.map +1 -0
- package/dist/widget.d.mts +37 -0
- package/dist/widget.d.ts +37 -0
- package/dist/widget.js +1004 -0
- package/dist/widget.js.map +1 -0
- package/dist/widget.mjs +1001 -0
- package/dist/widget.mjs.map +1 -0
- package/package.json +64 -10
- package/dist/cli.js +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/utils.ts","../src/core/detect.ts","../src/core/robots.ts","../src/core/llms-txt.ts","../src/core/llms-full.ts","../src/core/raw-markdown.ts","../src/core/manifest.ts","../src/core/sitemap.ts","../src/core/ai-index.ts","../src/core/generate-wrapper.ts","../src/index.ts"],"names":["join","existsSync","readFileSync","readdirSync","statSync","extname","relative","mkdirSync","dirname","copyFileSync","writeFileSync","createHash","index"],"mappings":"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","file":"index.js","sourcesContent":["import { readFileSync, existsSync, readdirSync, statSync } from 'fs';\nimport { join, relative, extname } from 'path';\nimport type { AeoConfig, ResolvedAeoConfig, MarkdownFile } from '../types';\nimport { detectFramework } from './detect';\nimport { minimatch } from 'minimatch';\n\nexport function resolveConfig(config: AeoConfig = {}): ResolvedAeoConfig {\n const frameworkInfo = detectFramework();\n \n return {\n title: config.title || 'My Site',\n description: config.description || '',\n url: config.url || 'https://example.com',\n contentDir: config.contentDir || frameworkInfo.contentDir,\n outDir: config.outDir || frameworkInfo.outDir,\n pages: config.pages || [],\n generators: {\n robotsTxt: config.generators?.robotsTxt !== false,\n llmsTxt: config.generators?.llmsTxt !== false,\n llmsFullTxt: config.generators?.llmsFullTxt !== false,\n rawMarkdown: config.generators?.rawMarkdown !== false,\n manifest: config.generators?.manifest !== false,\n sitemap: config.generators?.sitemap !== false,\n aiIndex: config.generators?.aiIndex !== false,\n },\n robots: {\n allow: config.robots?.allow || ['/'],\n disallow: config.robots?.disallow || [],\n crawlDelay: config.robots?.crawlDelay || 0,\n sitemap: config.robots?.sitemap || '',\n },\n widget: {\n enabled: config.widget?.enabled !== false,\n position: config.widget?.position || 'bottom-right',\n theme: {\n background: config.widget?.theme?.background || 'rgba(18, 18, 24, 0.9)',\n text: config.widget?.theme?.text || '#C0C0C5',\n accent: config.widget?.theme?.accent || '#E8E8EA',\n badge: config.widget?.theme?.badge || '#4ADE80',\n },\n humanLabel: config.widget?.humanLabel || 'Human',\n aiLabel: config.widget?.aiLabel || 'AI',\n showBadge: config.widget?.showBadge !== false,\n },\n };\n}\n\nexport function parseFrontmatter(content: string): { frontmatter: Record<string, any>; content: string } {\n const frontmatterMatch = content.match(/^---\\s*\\n([\\s\\S]*?)\\n---\\s*\\n([\\s\\S]*)/);\n \n if (frontmatterMatch) {\n const frontmatterStr = frontmatterMatch[1];\n const contentWithoutFrontmatter = frontmatterMatch[2];\n \n const frontmatter: Record<string, any> = {};\n const lines = frontmatterStr.split('\\n');\n \n for (const line of lines) {\n const [key, ...valueParts] = line.split(':');\n if (key && valueParts.length > 0) {\n const value = valueParts.join(':').trim();\n frontmatter[key.trim()] = value.replace(/^[\"']|[\"']$/g, '');\n }\n }\n \n return { frontmatter, content: contentWithoutFrontmatter };\n }\n \n return { frontmatter: {}, content };\n}\n\nexport function bumpHeadings(content: string, levels: number = 1): string {\n return content.replace(/^(#{1,6})\\s/gm, (match, hashes) => {\n const newLevel = Math.min(hashes.length + levels, 6);\n return '#'.repeat(newLevel) + ' ';\n });\n}\n\nexport function extractTitle(content: string): string {\n const h1Match = content.match(/^#\\s+(.+)$/m);\n if (h1Match) return h1Match[1];\n \n const h2Match = content.match(/^##\\s+(.+)$/m);\n if (h2Match) return h2Match[1];\n \n const firstLine = content.split('\\n')[0];\n return firstLine.slice(0, 100);\n}\n\nexport function readPackageJson(projectRoot: string = process.cwd()): Record<string, any> {\n const packageJsonPath = join(projectRoot, 'package.json');\n \n if (!existsSync(packageJsonPath)) {\n return {};\n }\n \n try {\n const content = readFileSync(packageJsonPath, 'utf-8');\n return JSON.parse(content);\n } catch {\n return {};\n }\n}\n\nexport function getAllMarkdownFiles(\n projectRoot: string,\n include: string[] = ['**/*.md'],\n exclude: string[] = ['**/node_modules/**']\n): string[] {\n const files: string[] = [];\n \n function scanDirectory(dir: string): void {\n try {\n const entries = readdirSync(dir);\n \n for (const entry of entries) {\n const fullPath = join(dir, entry);\n const relativePath = relative(projectRoot, fullPath);\n \n // Check if path should be excluded\n const shouldExclude = exclude.some(pattern => \n minimatch(relativePath, pattern) || minimatch(fullPath, pattern)\n );\n \n if (shouldExclude) {\n continue;\n }\n \n const stat = statSync(fullPath);\n \n if (stat.isDirectory()) {\n // Skip hidden directories\n if (!entry.startsWith('.')) {\n scanDirectory(fullPath);\n }\n } else if (stat.isFile()) {\n // Check if file matches include patterns\n const shouldInclude = include.some(pattern =>\n minimatch(relativePath, pattern) || minimatch(fullPath, pattern)\n );\n \n if (shouldInclude) {\n files.push(fullPath);\n }\n }\n }\n } catch (error) {\n // Silently skip directories we can't read\n }\n }\n \n scanDirectory(projectRoot);\n return files;\n}","import type { FrameworkType, FrameworkInfo } from '../types';\nimport { readPackageJson } from './utils';\n\nexport function detectFramework(projectRoot: string = process.cwd()): FrameworkInfo {\n const packageJson = readPackageJson(projectRoot);\n const dependencies = {\n ...packageJson.dependencies,\n ...packageJson.devDependencies,\n };\n \n if (dependencies['next']) {\n return {\n framework: 'next',\n contentDir: 'app',\n outDir: 'out',\n };\n }\n \n if (dependencies['nuxt'] || dependencies['@nuxt/kit']) {\n return {\n framework: 'nuxt',\n contentDir: 'content',\n outDir: '.output/public',\n };\n }\n \n if (dependencies['astro'] || dependencies['@astrojs/astro']) {\n return {\n framework: 'astro',\n contentDir: 'src/content',\n outDir: 'dist',\n };\n }\n \n if (dependencies['@remix-run/dev']) {\n return {\n framework: 'remix',\n contentDir: 'app',\n outDir: 'build/client',\n };\n }\n \n if (dependencies['@sveltejs/kit']) {\n return {\n framework: 'sveltekit',\n contentDir: 'src',\n outDir: 'build',\n };\n }\n \n if (dependencies['@angular/core']) {\n return {\n framework: 'angular',\n contentDir: 'src',\n outDir: 'dist',\n };\n }\n \n if (dependencies['@docusaurus/core']) {\n return {\n framework: 'docusaurus',\n contentDir: 'docs',\n outDir: 'build',\n };\n }\n \n if (dependencies['vite']) {\n return {\n framework: 'vite',\n contentDir: 'src',\n outDir: 'dist',\n };\n }\n \n return {\n framework: 'unknown',\n contentDir: 'src',\n outDir: 'dist',\n };\n}","import type { ResolvedAeoConfig } from '../types';\n\nconst AI_CRAWLERS = [\n 'GPTBot',\n 'OAI-SearchBot',\n 'ChatGPT-User',\n 'ClaudeBot',\n 'Claude-Web',\n 'anthropic-ai',\n 'PerplexityBot',\n 'Google-Extended',\n 'Gemini-Deep-Research',\n 'Bingbot',\n 'FacebookBot',\n 'meta-externalagent',\n 'Amazonbot',\n 'Applebot',\n 'DeepSeekBot',\n 'Bytespider',\n 'cohere-ai',\n 'CCBot',\n 'DiffBot',\n 'YouBot',\n 'FirecrawlAgent',\n 'Crawl4AI',\n 'BraveBot',\n 'SemrushBot',\n 'AhrefsBot',\n 'MJ12bot',\n 'DotBot',\n 'DataForSeoBot',\n 'Screaming Frog SEO Spider',\n 'SEOkicks',\n 'SEMrushBot',\n 'BLEXBot',\n 'Yandex',\n 'Baiduspider',\n 'Sogou',\n 'Exabot',\n 'facebookexternalhit',\n 'LinkedInBot',\n 'WhatsApp',\n 'Slackbot',\n 'TwitterBot',\n 'TelegramBot',\n 'Discordbot',\n 'PinterestBot',\n 'TumblrBot',\n 'ViberBot',\n 'SkypeUriPreview',\n 'redditbot',\n 'Snapchat',\n 'TikTok',\n];\n\nexport function generateRobotsTxt(config: ResolvedAeoConfig): string {\n const lines: string[] = [\n '# robots.txt generated by aeo.js',\n '# Allow AI crawlers to index this site',\n '',\n '# Traditional search engines',\n 'User-agent: Googlebot',\n 'Allow: /',\n '',\n 'User-agent: Bingbot',\n 'Allow: /',\n '',\n '# AI crawlers and answer engines',\n ];\n \n for (const crawler of AI_CRAWLERS) {\n lines.push(`User-agent: ${crawler}`);\n lines.push('Allow: /');\n lines.push('');\n }\n \n lines.push('# Default for all other bots');\n lines.push('User-agent: *');\n lines.push('Allow: /');\n lines.push('');\n \n if (config.url) {\n lines.push(`Sitemap: ${config.url}/sitemap.xml`);\n }\n \n lines.push('');\n lines.push('# AEO (Answer Engine Optimization) files');\n lines.push('# These help LLMs understand your content better');\n lines.push(`# ${config.url}/llms.txt`);\n lines.push(`# ${config.url}/llms-full.txt`);\n lines.push(`# ${config.url}/docs.json`);\n lines.push(`# ${config.url}/ai-index.json`);\n \n return lines.join('\\n');\n}","import { readdirSync, readFileSync, statSync } from 'fs';\nimport { join, relative, extname } from 'path';\nimport type { ResolvedAeoConfig, MarkdownFile } from '../types';\nimport { parseFrontmatter, extractTitle } from './utils';\n\nfunction collectMarkdownFiles(dir: string, base: string = dir): MarkdownFile[] {\n const files: MarkdownFile[] = [];\n \n try {\n const entries = readdirSync(dir);\n \n for (const entry of entries) {\n const fullPath = join(dir, entry);\n const stat = statSync(fullPath);\n \n if (stat.isDirectory() && !entry.startsWith('.') && entry !== 'node_modules') {\n files.push(...collectMarkdownFiles(fullPath, base));\n } else if (stat.isFile() && (extname(entry) === '.md' || extname(entry) === '.mdx')) {\n const content = readFileSync(fullPath, 'utf-8');\n const { frontmatter, content: mainContent } = parseFrontmatter(content);\n const relativePath = relative(base, fullPath);\n \n files.push({\n path: relativePath,\n content: mainContent,\n title: frontmatter.title || extractTitle(mainContent),\n description: frontmatter.description,\n frontmatter,\n });\n }\n }\n } catch (error) {\n console.warn(`Warning: Could not read directory ${dir}:`, error);\n }\n \n return files;\n}\n\nexport function generateLlmsTxt(config: ResolvedAeoConfig): string {\n const lines: string[] = [\n `# ${config.title}`,\n '',\n ];\n \n if (config.description) {\n lines.push(`> ${config.description}`);\n lines.push('');\n }\n \n lines.push('## About');\n lines.push('');\n lines.push('This file provides a structured overview of the documentation and content available on this site,');\n lines.push('optimized for consumption by Large Language Models (LLMs) and AI assistants.');\n lines.push('');\n \n // List discovered pages (from framework plugin)\n if (config.pages && config.pages.length > 0) {\n lines.push('## Pages');\n lines.push('');\n\n for (const page of config.pages) {\n const url = `${config.url}${page.pathname === '/' ? '' : page.pathname}`;\n const title = page.title || page.pathname;\n lines.push(`- [${title}](${url})`);\n if (page.description) {\n lines.push(` ${page.description}`);\n }\n }\n lines.push('');\n }\n\n // List markdown content files\n const markdownFiles = collectMarkdownFiles(config.contentDir);\n\n if (markdownFiles.length > 0) {\n lines.push('## Documentation');\n lines.push('');\n\n const grouped: Record<string, MarkdownFile[]> = {};\n\n for (const file of markdownFiles) {\n const dir = file.path.split('/')[0] || 'root';\n if (!grouped[dir]) grouped[dir] = [];\n grouped[dir].push(file);\n }\n\n for (const [dir, files] of Object.entries(grouped)) {\n lines.push(`### ${dir === 'root' ? 'Main Documentation' : dir}`);\n lines.push('');\n\n for (const file of files) {\n const url = `${config.url}/${file.path.replace(/\\.mdx?$/, '')}`;\n lines.push(`- [${file.title}](${url})`);\n if (file.description) {\n lines.push(` ${file.description}`);\n }\n }\n lines.push('');\n }\n }\n \n lines.push('## Quick Links');\n lines.push('');\n lines.push(`- Full Documentation: ${config.url}/llms-full.txt`);\n lines.push(`- Documentation Manifest: ${config.url}/docs.json`);\n lines.push(`- AI-Optimized Index: ${config.url}/ai-index.json`);\n lines.push(`- Sitemap: ${config.url}/sitemap.xml`);\n lines.push('');\n \n lines.push('## For LLMs');\n lines.push('');\n lines.push('To get the complete documentation in a single file, request:');\n lines.push(`${config.url}/llms-full.txt`);\n lines.push('');\n lines.push('For structured access to individual pages with metadata:');\n lines.push(`${config.url}/docs.json`);\n lines.push('');\n lines.push('For RAG (Retrieval Augmented Generation) systems:');\n lines.push(`${config.url}/ai-index.json`);\n lines.push('');\n \n lines.push('---');\n lines.push('Generated by aeo.js - Answer Engine Optimization for the modern web');\n lines.push('Learn more at https://aeojs.org');\n \n return lines.join('\\n');\n}","import { readdirSync, readFileSync, statSync } from 'fs';\nimport { join, relative, extname } from 'path';\nimport type { ResolvedAeoConfig } from '../types';\nimport { parseFrontmatter, bumpHeadings } from './utils';\n\nfunction collectAndConcatenateMarkdown(dir: string, base: string = dir): string[] {\n const sections: string[] = [];\n \n try {\n const entries = readdirSync(dir).sort();\n \n for (const entry of entries) {\n const fullPath = join(dir, entry);\n const stat = statSync(fullPath);\n \n if (stat.isDirectory() && !entry.startsWith('.') && entry !== 'node_modules') {\n const subSections = collectAndConcatenateMarkdown(fullPath, base);\n if (subSections.length > 0) {\n sections.push(...subSections);\n }\n } else if (stat.isFile() && (extname(entry) === '.md' || extname(entry) === '.mdx')) {\n const content = readFileSync(fullPath, 'utf-8');\n const { frontmatter, content: mainContent } = parseFrontmatter(content);\n const relativePath = relative(base, fullPath);\n \n const sectionLines: string[] = [\n '---',\n '',\n `# ${frontmatter.title || relativePath}`,\n '',\n `Source: ${relativePath}`,\n '',\n ];\n \n if (frontmatter.description) {\n sectionLines.push(`> ${frontmatter.description}`);\n sectionLines.push('');\n }\n \n const bumpedContent = bumpHeadings(mainContent, 1);\n sectionLines.push(bumpedContent);\n sectionLines.push('');\n \n sections.push(sectionLines.join('\\n'));\n }\n }\n } catch (error) {\n console.warn(`Warning: Could not read directory ${dir}:`, error);\n }\n \n return sections;\n}\n\nexport function generateLlmsFull(config: ResolvedAeoConfig): string {\n return generateLlmsFullTxt(config);\n}\n\nexport function generateLlmsFullTxt(config: ResolvedAeoConfig): string {\n const lines: string[] = [\n `# ${config.title} - Complete Documentation`,\n '',\n `This file contains all documentation concatenated into a single file for easy consumption by LLMs.`,\n '',\n ];\n \n if (config.description) {\n lines.push(`> ${config.description}`);\n lines.push('');\n }\n \n lines.push('## Table of Contents');\n lines.push('');\n lines.push('This document includes all content from this project.');\n lines.push('Each section is separated by a horizontal rule (---) for easy parsing.');\n lines.push('');\n\n let hasContent = false;\n\n // Include discovered pages (from framework plugin)\n if (config.pages && config.pages.length > 0) {\n for (const page of config.pages) {\n const url = `${config.url}${page.pathname === '/' ? '' : page.pathname}`;\n const title = page.title || page.pathname;\n const sectionLines: string[] = [\n '---',\n '',\n `# ${title}`,\n '',\n `URL: ${url}`,\n '',\n ];\n if (page.description) {\n sectionLines.push(`> ${page.description}`);\n sectionLines.push('');\n }\n if (page.content) {\n sectionLines.push(page.content);\n sectionLines.push('');\n }\n lines.push(sectionLines.join('\\n'));\n hasContent = true;\n }\n }\n\n // Include markdown content files\n const sections = collectAndConcatenateMarkdown(config.contentDir);\n\n if (sections.length > 0) {\n lines.push(...sections);\n hasContent = true;\n }\n\n if (!hasContent) {\n // Always include site overview so LLMs have basic context\n lines.push('---');\n lines.push('');\n lines.push(`# ${config.title}`);\n lines.push('');\n lines.push(`URL: ${config.url}`);\n lines.push('');\n if (config.description) {\n lines.push(config.description);\n lines.push('');\n }\n }\n \n lines.push('---');\n lines.push('');\n lines.push('## About This Document');\n lines.push('');\n lines.push('This concatenated documentation file is generated automatically by aeo.js');\n lines.push('to make it easier for AI systems to understand the complete context of this project.');\n lines.push('');\n lines.push(`For a structured index, see: ${config.url}/llms.txt`);\n lines.push(`For individual files, see: ${config.url}/docs.json`);\n lines.push('');\n lines.push('Generated by aeo.js - https://aeojs.org');\n \n return lines.join('\\n');\n}","import { readdirSync, statSync, mkdirSync, writeFileSync, copyFileSync } from 'fs';\nimport { join, relative, extname, dirname } from 'path';\nimport type { ResolvedAeoConfig } from '../types';\n\nexport interface CopiedFile {\n source: string;\n destination: string;\n}\n\nexport interface GeneratedMarkdownFile {\n pathname: string;\n destination: string;\n}\n\nfunction ensureDir(path: string): void {\n mkdirSync(path, { recursive: true });\n}\n\nexport function copyRawMarkdown(config: ResolvedAeoConfig): CopiedFile[] {\n return copyMarkdownFiles(config);\n}\n\nexport function copyMarkdownFiles(config: ResolvedAeoConfig): CopiedFile[] {\n const copiedFiles: CopiedFile[] = [];\n \n function copyRecursive(dir: string, base: string = config.contentDir): void {\n try {\n const entries = readdirSync(dir);\n \n for (const entry of entries) {\n const fullPath = join(dir, entry);\n const stat = statSync(fullPath);\n \n if (stat.isDirectory() && !entry.startsWith('.') && entry !== 'node_modules') {\n copyRecursive(fullPath, base);\n } else if (stat.isFile() && extname(entry) === '.md') {\n const relativePath = relative(base, fullPath);\n const destPath = join(config.outDir, relativePath);\n \n ensureDir(dirname(destPath));\n \n try {\n copyFileSync(fullPath, destPath);\n copiedFiles.push({\n source: fullPath,\n destination: destPath,\n });\n } catch (error) {\n console.warn(`Warning: Could not copy ${fullPath}:`, error);\n }\n }\n }\n } catch (error) {\n console.warn(`Warning: Could not read directory ${dir}:`, error);\n }\n }\n \n copyRecursive(config.contentDir);\n return copiedFiles;\n}\n\nexport function generatePageMarkdownFiles(config: ResolvedAeoConfig): GeneratedMarkdownFile[] {\n const generated: GeneratedMarkdownFile[] = [];\n const pages = config.pages || [];\n\n for (const page of pages) {\n // Use site title as fallback for pages without a title\n const pageTitle = page.title || (page.pathname === '/' ? config.title : undefined);\n if (!page.content && !pageTitle) continue;\n\n let filename: string;\n if (page.pathname === '/') {\n filename = 'index.md';\n } else {\n const clean = page.pathname.replace(/^\\//, '').replace(/\\/$/, '');\n filename = clean.includes('/') ? `${clean}.md` : `${clean}.md`;\n }\n\n const destPath = join(config.outDir, filename);\n\n const pageUrl = page.pathname === '/'\n ? config.url\n : `${config.url.replace(/\\/$/, '')}${page.pathname}`;\n\n const lines: string[] = [];\n\n // YAML frontmatter\n lines.push('---');\n if (pageTitle) lines.push(`title: \"${pageTitle}\"`);\n if (page.description) lines.push(`description: \"${page.description}\"`);\n lines.push(`url: ${pageUrl}`);\n lines.push(`source: ${pageUrl}`);\n lines.push(`generated_by: aeo.js`);\n lines.push('---', '');\n\n if (pageTitle) {\n lines.push(`# ${pageTitle}`, '');\n }\n\n if (page.description) {\n lines.push(`${page.description}`, '');\n }\n\n if (page.content) {\n lines.push(page.content);\n }\n\n const content = lines.join('\\n');\n\n ensureDir(dirname(destPath));\n try {\n writeFileSync(destPath, content, 'utf-8');\n generated.push({ pathname: page.pathname, destination: destPath });\n } catch {\n // skip unwritable files\n }\n }\n\n return generated;\n}","import { readdirSync, readFileSync, statSync } from 'fs';\nimport { join, relative, extname } from 'path';\nimport type { ResolvedAeoConfig, ManifestEntry } from '../types';\nimport { parseFrontmatter, extractTitle } from './utils';\n\nfunction collectManifestEntries(dir: string, config: ResolvedAeoConfig, base: string = dir): ManifestEntry[] {\n const entries: ManifestEntry[] = [];\n \n try {\n const files = readdirSync(dir);\n \n for (const file of files) {\n const fullPath = join(dir, file);\n const stat = statSync(fullPath);\n \n if (stat.isDirectory() && !file.startsWith('.') && file !== 'node_modules') {\n entries.push(...collectManifestEntries(fullPath, config, base));\n } else if (stat.isFile() && (extname(file) === '.md' || extname(file) === '.mdx')) {\n const content = readFileSync(fullPath, 'utf-8');\n const { frontmatter, content: mainContent } = parseFrontmatter(content);\n const relativePath = relative(base, fullPath);\n const urlPath = relativePath.replace(/\\.mdx?$/, '');\n \n entries.push({\n url: `${config.url}/${urlPath}`,\n title: frontmatter.title || extractTitle(mainContent),\n description: frontmatter.description,\n lastModified: stat.mtime.toISOString(),\n });\n }\n }\n } catch (error) {\n console.warn(`Warning: Could not read directory ${dir}:`, error);\n }\n \n return entries;\n}\n\nexport function generateManifest(config: ResolvedAeoConfig): string {\n const entries: ManifestEntry[] = [];\n\n // Add discovered pages from framework plugin\n if (config.pages && config.pages.length > 0) {\n for (const page of config.pages) {\n entries.push({\n url: `${config.url}${page.pathname === '/' ? '' : page.pathname}`,\n title: page.title || page.pathname,\n description: page.description,\n });\n }\n }\n\n // Add markdown content files\n entries.push(...collectManifestEntries(config.contentDir, config));\n \n const manifest = {\n version: '1.0',\n generated: new Date().toISOString(),\n site: {\n title: config.title,\n description: config.description,\n url: config.url,\n },\n documents: entries.sort((a, b) => a.url.localeCompare(b.url)),\n metadata: {\n totalDocuments: entries.length,\n generator: 'aeo.js',\n generatorUrl: 'https://aeojs.org',\n },\n };\n \n return JSON.stringify(manifest, null, 2);\n}","import { readdirSync, statSync } from 'fs';\nimport { join, relative, extname } from 'path';\nimport type { ResolvedAeoConfig } from '../types';\n\nfunction collectUrls(dir: string, config: ResolvedAeoConfig, base: string = dir): string[] {\n const urls: string[] = [];\n \n try {\n const entries = readdirSync(dir);\n \n for (const entry of entries) {\n const fullPath = join(dir, entry);\n const stat = statSync(fullPath);\n \n if (stat.isDirectory() && !entry.startsWith('.') && entry !== 'node_modules') {\n urls.push(...collectUrls(fullPath, config, base));\n } else if (stat.isFile() && (extname(entry) === '.md' || extname(entry) === '.mdx' || extname(entry) === '.html')) {\n const relativePath = relative(base, fullPath);\n const urlPath = relativePath.replace(/\\.(md|mdx|html)$/, '');\n urls.push(`${config.url}/${urlPath}`);\n }\n }\n } catch (error) {\n console.warn(`Warning: Could not read directory ${dir}:`, error);\n }\n \n return urls;\n}\n\nfunction escapeXml(str: string): string {\n return str\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\nexport function generateSitemap(config: ResolvedAeoConfig): string {\n const urls: string[] = [];\n\n // Add discovered pages from framework plugin\n if (config.pages && config.pages.length > 0) {\n for (const page of config.pages) {\n urls.push(`${config.url}${page.pathname === '/' ? '' : page.pathname}`);\n }\n }\n\n // Add markdown/html files from content dir\n if (config.contentDir) {\n urls.push(...collectUrls(config.contentDir, config));\n }\n\n const lines: string[] = [\n '<?xml version=\"1.0\" encoding=\"UTF-8\"?>',\n '<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">',\n ];\n\n // Always include the site root\n urls.push(config.url);\n\n const uniqueUrls = [...new Set(urls)].sort();\n \n for (const url of uniqueUrls) {\n lines.push(' <url>');\n lines.push(` <loc>${escapeXml(url)}</loc>`);\n lines.push(` <lastmod>${new Date().toISOString().split('T')[0]}</lastmod>`);\n lines.push(' <changefreq>weekly</changefreq>');\n lines.push(' <priority>0.8</priority>');\n lines.push(' </url>');\n }\n \n lines.push('</urlset>');\n \n return lines.join('\\n');\n}","import { readdirSync, readFileSync, statSync } from 'fs';\nimport { join, relative, extname } from 'path';\nimport { createHash } from 'crypto';\nimport type { ResolvedAeoConfig, AIIndexEntry } from '../types';\nimport { parseFrontmatter, extractTitle } from './utils';\n\nfunction extractKeywords(content: string): string[] {\n const words = content\n .toLowerCase()\n .replace(/[^a-z0-9\\s]/g, ' ')\n .split(/\\s+/)\n .filter(word => word.length > 3);\n \n const wordCount: Record<string, number> = {};\n \n for (const word of words) {\n wordCount[word] = (wordCount[word] || 0) + 1;\n }\n \n return Object.entries(wordCount)\n .sort((a, b) => b[1] - a[1])\n .slice(0, 10)\n .map(([word]) => word);\n}\n\nfunction chunkContent(content: string, maxLength: number = 2000): string[] {\n const chunks: string[] = [];\n const paragraphs = content.split('\\n\\n');\n \n let currentChunk = '';\n \n for (const paragraph of paragraphs) {\n if (currentChunk.length + paragraph.length > maxLength && currentChunk.length > 0) {\n chunks.push(currentChunk.trim());\n currentChunk = '';\n }\n currentChunk += paragraph + '\\n\\n';\n }\n \n if (currentChunk.trim()) {\n chunks.push(currentChunk.trim());\n }\n \n return chunks;\n}\n\nfunction collectAIIndexEntries(dir: string, config: ResolvedAeoConfig, base: string = dir): AIIndexEntry[] {\n const entries: AIIndexEntry[] = [];\n \n try {\n const files = readdirSync(dir);\n \n for (const file of files) {\n const fullPath = join(dir, file);\n const stat = statSync(fullPath);\n \n if (stat.isDirectory() && !file.startsWith('.') && file !== 'node_modules') {\n entries.push(...collectAIIndexEntries(fullPath, config, base));\n } else if (stat.isFile() && (extname(file) === '.md' || extname(file) === '.mdx')) {\n const content = readFileSync(fullPath, 'utf-8');\n const { frontmatter, content: mainContent } = parseFrontmatter(content);\n const relativePath = relative(base, fullPath);\n const urlPath = relativePath.replace(/\\.mdx?$/, '');\n const url = `${config.url}/${urlPath}`;\n \n const chunks = chunkContent(mainContent);\n const title = frontmatter.title || extractTitle(mainContent);\n const keywords = extractKeywords(mainContent);\n \n chunks.forEach((chunk, index) => {\n const id = createHash('sha256')\n .update(`${url}-${index}`)\n .digest('hex')\n .slice(0, 16);\n \n entries.push({\n id,\n url,\n title: chunks.length > 1 ? `${title} (Part ${index + 1})` : title,\n content: chunk,\n description: frontmatter.description,\n keywords,\n metadata: {\n ...frontmatter,\n chunkIndex: index,\n totalChunks: chunks.length,\n sourcePath: relativePath,\n },\n });\n });\n }\n }\n } catch (error) {\n console.warn(`Warning: Could not read directory ${dir}:`, error);\n }\n \n return entries;\n}\n\nexport function generateAiIndex(config: ResolvedAeoConfig): string {\n return generateAIIndex(config);\n}\n\nexport function generateAIIndex(config: ResolvedAeoConfig): string {\n const entries: AIIndexEntry[] = [];\n\n // Add discovered pages from framework plugin\n if (config.pages && config.pages.length > 0) {\n for (const page of config.pages) {\n const url = `${config.url}${page.pathname === '/' ? '' : page.pathname}`;\n const title = page.title || page.pathname;\n const content = page.content || '';\n\n if (content) {\n const chunks = chunkContent(content);\n const keywords = extractKeywords(content);\n\n chunks.forEach((chunk, index) => {\n const id = createHash('sha256')\n .update(`${url}-${index}`)\n .digest('hex')\n .slice(0, 16);\n\n entries.push({\n id,\n url,\n title: chunks.length > 1 ? `${title} (Part ${index + 1})` : title,\n content: chunk,\n description: page.description,\n keywords,\n metadata: {\n chunkIndex: index,\n totalChunks: chunks.length,\n sourcePath: page.pathname,\n },\n });\n });\n } else {\n const id = createHash('sha256')\n .update(url)\n .digest('hex')\n .slice(0, 16);\n\n entries.push({\n id,\n url,\n title,\n content: page.description || title,\n description: page.description,\n keywords: [],\n });\n }\n }\n }\n\n // Add markdown content files\n entries.push(...collectAIIndexEntries(config.contentDir, config));\n \n const index = {\n version: '1.0',\n generated: new Date().toISOString(),\n site: {\n title: config.title,\n description: config.description,\n url: config.url,\n },\n entries: entries.sort((a, b) => a.id.localeCompare(b.id)),\n metadata: {\n totalEntries: entries.length,\n generator: 'aeo.js',\n generatorUrl: 'https://aeojs.org',\n embedding: {\n recommended: 'text-embedding-ada-002',\n dimensions: 1536,\n },\n },\n };\n \n return JSON.stringify(index, null, 2);\n}","import { generateRobotsTxt as genRobots } from './robots';\nimport { generateLlmsTxt as genLlms } from './llms-txt';\nimport { generateLlmsFullTxt as genLlmsFull } from './llms-full';\nimport { copyMarkdownFiles, generatePageMarkdownFiles } from './raw-markdown';\nimport { generateManifest as genManifest } from './manifest';\nimport { generateSitemap as genSitemap } from './sitemap';\nimport { generateAIIndex as genAIIndex } from './ai-index';\nimport { resolveConfig } from './utils';\nimport { writeFileSync, mkdirSync, existsSync } from 'fs';\nimport { join } from 'path';\nimport type { AeoConfig, ResolvedAeoConfig } from '../types';\n\nexport interface GenerateResult {\n files: string[];\n errors: string[];\n}\n\nexport async function generateAEOFiles(\n configOrRoot?: ResolvedAeoConfig | AeoConfig | string,\n maybeConfig?: Partial<AeoConfig>\n): Promise<GenerateResult> {\n let config: ResolvedAeoConfig;\n\n if (typeof configOrRoot === 'string') {\n config = resolveConfig({ ...maybeConfig, outDir: maybeConfig?.outDir || configOrRoot });\n } else if (\n configOrRoot &&\n typeof configOrRoot === 'object' &&\n 'generators' in configOrRoot &&\n typeof (configOrRoot as ResolvedAeoConfig).generators?.robotsTxt === 'boolean'\n ) {\n config = configOrRoot as ResolvedAeoConfig;\n } else {\n config = resolveConfig(configOrRoot as AeoConfig | undefined);\n }\n\n const outDir = config.outDir;\n const files: string[] = [];\n const errors: string[] = [];\n\n if (!existsSync(outDir)) {\n mkdirSync(outDir, { recursive: true });\n }\n\n if (config.generators.robotsTxt) {\n try {\n const content = genRobots(config);\n writeFileSync(join(outDir, 'robots.txt'), content, 'utf-8');\n files.push('robots.txt');\n } catch (e: any) {\n errors.push(`robots.txt: ${e.message}`);\n }\n }\n\n if (config.generators.llmsTxt) {\n try {\n const content = genLlms(config);\n writeFileSync(join(outDir, 'llms.txt'), '\\uFEFF' + content, 'utf-8');\n files.push('llms.txt');\n } catch (e: any) {\n errors.push(`llms.txt: ${e.message}`);\n }\n }\n\n if (config.generators.llmsFullTxt) {\n try {\n const content = genLlmsFull(config);\n writeFileSync(join(outDir, 'llms-full.txt'), '\\uFEFF' + content, 'utf-8');\n files.push('llms-full.txt');\n } catch (e: any) {\n errors.push(`llms-full.txt: ${e.message}`);\n }\n }\n\n if (config.generators.rawMarkdown) {\n // Generate page .md files first (auto-extracted from build output)\n try {\n const generated = generatePageMarkdownFiles(config);\n for (const f of generated) {\n files.push(f.destination);\n }\n } catch (e: any) {\n errors.push(`page-markdown: ${e.message}`);\n }\n\n // Then copy handwritten .md from contentDir (these take priority, overwriting generated ones)\n try {\n const copied = copyMarkdownFiles(config);\n for (const f of copied) {\n files.push(f.destination);\n }\n } catch (e: any) {\n errors.push(`raw-markdown: ${e.message}`);\n }\n }\n\n if (config.generators.manifest) {\n try {\n const content = genManifest(config);\n writeFileSync(join(outDir, 'docs.json'), content, 'utf-8');\n files.push('docs.json');\n } catch (e: any) {\n errors.push(`docs.json: ${e.message}`);\n }\n }\n\n if (config.generators.sitemap) {\n try {\n const content = genSitemap(config);\n writeFileSync(join(outDir, 'sitemap.xml'), content, 'utf-8');\n files.push('sitemap.xml');\n } catch (e: any) {\n errors.push(`sitemap.xml: ${e.message}`);\n }\n }\n\n if (config.generators.aiIndex) {\n try {\n const content = genAIIndex(config);\n writeFileSync(join(outDir, 'ai-index.json'), content, 'utf-8');\n files.push('ai-index.json');\n } catch (e: any) {\n errors.push(`ai-index.json: ${e.message}`);\n }\n }\n\n return { files, errors };\n}\n","import type { AeoConfig } from './types';\n\nexport const VERSION = '0.0.1';\n\nexport function defineConfig(config: AeoConfig): AeoConfig {\n return config;\n}\n\n// Export all types\nexport type {\n AeoConfig,\n ResolvedAeoConfig,\n PageEntry,\n DocEntry,\n AeoManifest,\n MarkdownFile,\n ManifestEntry,\n AIIndexEntry,\n FrameworkType,\n FrameworkInfo\n} from './types';\n\n// Export core functions\nexport { detectFramework } from './core/detect';\nexport { generateAEOFiles as generateAll, generateAEOFiles } from './core/generate';\nexport { resolveConfig } from './core/utils';"]}
|