{"version":3,"sources":["../../src/context/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * @silverassist/performance-toolkit\n *\n * Project context detector for analyzing technology stack and patterns.\n *\n * @module context\n * @author Miguel Colmenares <me@miguelcolmenares.com>\n * @license PolyForm-Noncommercial-1.0.0\n */\n\nimport type { FrameworkInfo, ProjectContext } from \"../types\";\n\n/**\n * Project context detector for analyzing user's technology stack\n */\nexport class ProjectContextDetector {\n  private packageJson: PackageJson | null = null;\n  private projectRoot: string;\n\n  constructor(projectRoot: string = process.cwd()) {\n    this.projectRoot = projectRoot;\n  }\n\n  /**\n   * Detects the complete project context\n   */\n  async detect(): Promise<ProjectContext> {\n    await this.loadPackageJson();\n\n    const framework = this.detectFramework();\n    const packageManager = this.detectPackageManager();\n    const buildTool = this.detectBuildTool();\n    const cssSolution = this.detectCSSSolution();\n    const isTypeScript = this.detectTypeScript();\n    const imageOptimization = this.detectImageOptimization();\n    const analytics = this.detectAnalytics();\n    const thirdPartyIntegrations = this.detectThirdPartyIntegrations();\n    const uiLibrary = this.detectUILibrary();\n\n    const allDeps = this.getAllDependencies();\n\n    return {\n      name: this.packageJson?.name,\n      framework,\n      packageManager,\n      buildTool,\n      uiLibrary,\n      cssSolution,\n      isTypeScript,\n      imageOptimization,\n      analytics,\n      thirdPartyIntegrations,\n      dependencies: {\n        production: Object.keys(this.packageJson?.dependencies || {}),\n        development: Object.keys(this.packageJson?.devDependencies || {}),\n        total: allDeps.length,\n      },\n    };\n  }\n\n  /**\n   * Loads and parses package.json\n   */\n  private async loadPackageJson(): Promise<void> {\n    try {\n      // Dynamic import for fs (works in both Node and edge environments)\n      const fs = await import(\"fs\");\n      const path = await import(\"path\");\n\n      const packagePath = path.join(this.projectRoot, \"package.json\");\n\n      if (fs.existsSync(packagePath)) {\n        const content = fs.readFileSync(packagePath, \"utf-8\");\n        this.packageJson = JSON.parse(content) as PackageJson;\n      }\n    } catch {\n      // Package.json not found or invalid - continue with null\n      this.packageJson = null;\n    }\n  }\n\n  /**\n   * Detects the main framework being used\n   */\n  private detectFramework(): FrameworkInfo | null {\n    if (!this.packageJson) return null;\n\n    // Next.js detection\n    if (this.hasDependency(\"next\")) {\n      return this.detectNextJS();\n    }\n\n    // Nuxt detection\n    if (this.hasDependency(\"nuxt\") || this.hasDependency(\"nuxt3\")) {\n      return this.detectNuxt();\n    }\n\n    // Remix detection\n    if (this.hasDependency(\"@remix-run/react\")) {\n      return this.detectRemix();\n    }\n\n    // Gatsby detection\n    if (this.hasDependency(\"gatsby\")) {\n      return this.detectGatsby();\n    }\n\n    // Astro detection\n    if (this.hasDependency(\"astro\")) {\n      return this.detectAstro();\n    }\n\n    // SvelteKit detection\n    if (this.hasDependency(\"@sveltejs/kit\")) {\n      return {\n        name: \"svelte\",\n        version: this.getDependencyVersion(\"@sveltejs/kit\") || \"unknown\",\n        routerType: \"file-based\",\n        renderingMode: \"hybrid\",\n      };\n    }\n\n    // Vue detection (standalone)\n    if (this.hasDependency(\"vue\")) {\n      return {\n        name: \"vue\",\n        version: this.getDependencyVersion(\"vue\") || \"unknown\",\n        routerType: this.hasDependency(\"vue-router\")\n          ? \"config-based\"\n          : undefined,\n        renderingMode: \"spa\",\n      };\n    }\n\n    // Angular detection\n    if (this.hasDependency(\"@angular/core\")) {\n      return {\n        name: \"angular\",\n        version: this.getDependencyVersion(\"@angular/core\") || \"unknown\",\n        routerType: \"config-based\",\n        renderingMode: this.hasDependency(\"@angular/platform-server\")\n          ? \"ssr\"\n          : \"spa\",\n      };\n    }\n\n    // React detection (standalone - after checking for meta-frameworks)\n    if (this.hasDependency(\"react\")) {\n      return {\n        name: \"react\",\n        version: this.getDependencyVersion(\"react\") || \"unknown\",\n        routerType: this.hasDependency(\"react-router-dom\")\n          ? \"config-based\"\n          : undefined,\n        renderingMode: \"spa\",\n      };\n    }\n\n    return null;\n  }\n\n  /**\n   * Detects Next.js specific configuration\n   */\n  private detectNextJS(): FrameworkInfo {\n    const version = this.getDependencyVersion(\"next\") || \"unknown\";\n    const majorVersion = this.parseMajorVersion(version);\n\n    // Detect features\n    const features: string[] = [];\n\n    if (\n      this.hasDependency(\"next-auth\") ||\n      this.hasDependency(\"@auth/nextjs-provider\")\n    ) {\n      features.push(\"auth\");\n    }\n    if (this.hasDependency(\"@next/font\") || this.hasDependency(\"next/font\")) {\n      features.push(\"font-optimization\");\n    }\n    if (this.hasDependency(\"next-intl\") || this.hasDependency(\"next-i18next\")) {\n      features.push(\"i18n\");\n    }\n    if (\n      this.hasDependency(\"next-mdx-remote\") ||\n      this.hasDependency(\"@next/mdx\")\n    ) {\n      features.push(\"mdx\");\n    }\n\n    // Next.js 16 features (detected from config would be ideal, but we mark by version)\n    if (majorVersion >= 16) {\n      features.push(\"cache-components\");\n      features.push(\"turbopack\");\n      features.push(\"react-compiler\");\n    }\n\n    // Determine router type (app router available since Next 13.4+)\n    // This is a heuristic - actual detection would require file system check\n    const routerType: \"app\" | \"pages\" = majorVersion >= 14 ? \"app\" : \"pages\";\n\n    // Determine rendering mode\n    let renderingMode: \"ssr\" | \"ssg\" | \"hybrid\" | \"isr\" = \"hybrid\";\n    if (majorVersion >= 13) {\n      renderingMode = \"hybrid\"; // App router supports all modes\n    }\n\n    return {\n      name: \"next\",\n      version,\n      routerType,\n      renderingMode,\n      features: features.length > 0 ? features : undefined,\n    };\n  }\n\n  /**\n   * Detects Nuxt specific configuration\n   */\n  private detectNuxt(): FrameworkInfo {\n    const version =\n      this.getDependencyVersion(\"nuxt\") ||\n      this.getDependencyVersion(\"nuxt3\") ||\n      \"unknown\";\n\n    return {\n      name: \"nuxt\",\n      version,\n      routerType: \"file-based\",\n      renderingMode: \"hybrid\",\n    };\n  }\n\n  /**\n   * Detects Remix specific configuration\n   */\n  private detectRemix(): FrameworkInfo {\n    return {\n      name: \"remix\",\n      version: this.getDependencyVersion(\"@remix-run/react\") || \"unknown\",\n      routerType: \"file-based\",\n      renderingMode: \"ssr\",\n    };\n  }\n\n  /**\n   * Detects Gatsby specific configuration\n   */\n  private detectGatsby(): FrameworkInfo {\n    const features: string[] = [];\n\n    if (this.hasDependency(\"gatsby-plugin-image\")) {\n      features.push(\"image-optimization\");\n    }\n    if (\n      this.hasDependency(\"gatsby-source-contentful\") ||\n      this.hasDependency(\"gatsby-source-sanity\")\n    ) {\n      features.push(\"headless-cms\");\n    }\n\n    return {\n      name: \"gatsby\",\n      version: this.getDependencyVersion(\"gatsby\") || \"unknown\",\n      routerType: \"file-based\",\n      renderingMode: \"ssg\",\n      features: features.length > 0 ? features : undefined,\n    };\n  }\n\n  /**\n   * Detects Astro specific configuration\n   */\n  private detectAstro(): FrameworkInfo {\n    const features: string[] = [];\n\n    if (this.hasDependency(\"@astrojs/react\")) features.push(\"react\");\n    if (this.hasDependency(\"@astrojs/vue\")) features.push(\"vue\");\n    if (this.hasDependency(\"@astrojs/svelte\")) features.push(\"svelte\");\n    if (this.hasDependency(\"@astrojs/image\"))\n      features.push(\"image-optimization\");\n\n    return {\n      name: \"astro\",\n      version: this.getDependencyVersion(\"astro\") || \"unknown\",\n      routerType: \"file-based\",\n      renderingMode: \"hybrid\",\n      features: features.length > 0 ? features : undefined,\n    };\n  }\n\n  /**\n   * Detects package manager from lock files\n   */\n  private detectPackageManager(): ProjectContext[\"packageManager\"] {\n    // This would ideally check for lock files\n    // For now, return a reasonable default\n    if (this.packageJson?.packageManager) {\n      const pm = this.packageJson.packageManager;\n      if (pm.startsWith(\"pnpm\")) return \"pnpm\";\n      if (pm.startsWith(\"yarn\")) return \"yarn\";\n      if (pm.startsWith(\"bun\")) return \"bun\";\n      if (pm.startsWith(\"npm\")) return \"npm\";\n    }\n    return \"npm\"; // Default assumption\n  }\n\n  /**\n   * Detects build tool\n   */\n  private detectBuildTool(): ProjectContext[\"buildTool\"] {\n    // Turbopack (Next.js 16+ default, 13-15 optional)\n    if (this.hasDependency(\"next\")) {\n      const version = this.getDependencyVersion(\"next\");\n      if (version) {\n        const majorVersion = this.parseMajorVersion(version);\n        // Next.js 16+ uses Turbopack by default\n        if (majorVersion >= 16) {\n          return \"turbopack\";\n        }\n      }\n    }\n\n    if (this.hasDependency(\"vite\")) return \"vite\";\n    if (this.hasDependency(\"esbuild\") && !this.hasDependency(\"vite\"))\n      return \"esbuild\";\n    if (this.hasDependency(\"rollup\") && !this.hasDependency(\"vite\"))\n      return \"rollup\";\n    if (this.hasDependency(\"webpack\")) return \"webpack\";\n\n    // Next.js < 16 uses webpack by default\n    if (this.hasDependency(\"next\")) return \"webpack\";\n\n    return null;\n  }\n\n  /**\n   * Detects CSS solution\n   */\n  private detectCSSSolution(): ProjectContext[\"cssSolution\"] {\n    if (this.hasDependency(\"tailwindcss\")) return \"tailwind\";\n    if (this.hasDependency(\"styled-components\")) return \"styled-components\";\n    if (\n      this.hasDependency(\"@emotion/react\") ||\n      this.hasDependency(\"@emotion/styled\")\n    )\n      return \"emotion\";\n    if (this.hasDependency(\"sass\") || this.hasDependency(\"node-sass\"))\n      return \"sass\";\n\n    // CSS Modules is built into most frameworks, hard to detect without file analysis\n    return null;\n  }\n\n  /**\n   * Detects if project uses TypeScript\n   */\n  private detectTypeScript(): boolean {\n    return (\n      this.hasDependency(\"typescript\") ||\n      this.hasDependency(\"@types/node\") ||\n      this.hasDependency(\"@types/react\")\n    );\n  }\n\n  /**\n   * Detects image optimization library\n   */\n  private detectImageOptimization(): ProjectContext[\"imageOptimization\"] {\n    if (this.hasDependency(\"next\")) return \"next/image\";\n    if (this.hasDependency(\"sharp\")) return \"sharp\";\n    if (this.hasDependency(\"imagemin\")) return \"imagemin\";\n    if (this.hasDependency(\"cloudinary\")) return \"cloudinary\";\n    return null;\n  }\n\n  /**\n   * Detects analytics libraries\n   */\n  private detectAnalytics(): string[] {\n    const analytics: string[] = [];\n\n    if (this.hasDependency(\"@vercel/analytics\"))\n      analytics.push(\"Vercel Analytics\");\n    if (\n      this.hasDependency(\"@google-analytics/react-ga\") ||\n      this.hasDependency(\"react-ga\") ||\n      this.hasDependency(\"react-ga4\")\n    )\n      analytics.push(\"Google Analytics\");\n    if (\n      this.hasDependency(\"@segment/analytics-next\") ||\n      this.hasDependency(\"analytics-node\")\n    )\n      analytics.push(\"Segment\");\n    if (\n      this.hasDependency(\"mixpanel-browser\") ||\n      this.hasDependency(\"mixpanel\")\n    )\n      analytics.push(\"Mixpanel\");\n    if (this.hasDependency(\"amplitude-js\")) analytics.push(\"Amplitude\");\n    if (this.hasDependency(\"posthog-js\") || this.hasDependency(\"posthog-node\"))\n      analytics.push(\"PostHog\");\n    if (this.hasDependency(\"@datadog/browser-rum\"))\n      analytics.push(\"Datadog RUM\");\n    if (\n      this.hasDependency(\"@sentry/nextjs\") ||\n      this.hasDependency(\"@sentry/react\")\n    )\n      analytics.push(\"Sentry\");\n\n    return analytics;\n  }\n\n  /**\n   * Detects third-party integrations\n   */\n  private detectThirdPartyIntegrations(): string[] {\n    const integrations: string[] = [];\n\n    // Auth providers\n    if (this.hasDependency(\"next-auth\")) integrations.push(\"NextAuth\");\n    if (this.hasDependency(\"@auth0/nextjs-auth0\")) integrations.push(\"Auth0\");\n    if (this.hasDependency(\"@clerk/nextjs\")) integrations.push(\"Clerk\");\n    if (this.hasDependency(\"firebase\")) integrations.push(\"Firebase\");\n    if (this.hasDependency(\"@supabase/supabase-js\"))\n      integrations.push(\"Supabase\");\n\n    // CMS\n    if (this.hasDependency(\"@sanity/client\")) integrations.push(\"Sanity\");\n    if (this.hasDependency(\"contentful\")) integrations.push(\"Contentful\");\n    if (this.hasDependency(\"@prismic/client\")) integrations.push(\"Prismic\");\n    if (this.hasDependency(\"@strapi/strapi\")) integrations.push(\"Strapi\");\n\n    // E-commerce\n    if (this.hasDependency(\"@shopify/shopify-api\"))\n      integrations.push(\"Shopify\");\n    if (this.hasDependency(\"@stripe/stripe-js\")) integrations.push(\"Stripe\");\n\n    // Database/ORM\n    if (this.hasDependency(\"@prisma/client\")) integrations.push(\"Prisma\");\n    if (this.hasDependency(\"drizzle-orm\")) integrations.push(\"Drizzle ORM\");\n    if (this.hasDependency(\"mongoose\")) integrations.push(\"MongoDB/Mongoose\");\n\n    return integrations;\n  }\n\n  /**\n   * Detects UI library\n   */\n  private detectUILibrary(): string | undefined {\n    if (\n      this.hasDependency(\"@radix-ui/react-dialog\") ||\n      this.hasDependency(\"@radix-ui/react-slot\")\n    )\n      return \"Radix UI\";\n    if (this.hasDependency(\"@chakra-ui/react\")) return \"Chakra UI\";\n    if (this.hasDependency(\"@mantine/core\")) return \"Mantine\";\n    if (this.hasDependency(\"@mui/material\")) return \"Material UI\";\n    if (this.hasDependency(\"antd\")) return \"Ant Design\";\n    if (this.hasDependency(\"@headlessui/react\")) return \"Headless UI\";\n    if (this.hasDependency(\"react-bootstrap\")) return \"React Bootstrap\";\n    return undefined;\n  }\n\n  // =========================================================================\n  // Helper methods\n  // =========================================================================\n\n  /**\n   * Checks if a dependency exists\n   */\n  private hasDependency(name: string): boolean {\n    if (!this.packageJson) return false;\n    return !!(\n      this.packageJson.dependencies?.[name] ||\n      this.packageJson.devDependencies?.[name] ||\n      this.packageJson.peerDependencies?.[name]\n    );\n  }\n\n  /**\n   * Gets version of a dependency\n   */\n  private getDependencyVersion(name: string): string | undefined {\n    if (!this.packageJson) return undefined;\n    return (\n      this.packageJson.dependencies?.[name] ||\n      this.packageJson.devDependencies?.[name] ||\n      this.packageJson.peerDependencies?.[name]\n    );\n  }\n\n  /**\n   * Gets all dependencies as array\n   */\n  private getAllDependencies(): string[] {\n    if (!this.packageJson) return [];\n    return [\n      ...Object.keys(this.packageJson.dependencies || {}),\n      ...Object.keys(this.packageJson.devDependencies || {}),\n    ];\n  }\n\n  /**\n   * Parses major version from semver string\n   */\n  private parseMajorVersion(version: string): number {\n    const clean = version.replace(/^[\\^~]/, \"\");\n    const major = clean.split(\".\")[0];\n    return parseInt(major, 10) || 0;\n  }\n}\n\n/**\n * Package.json structure (simplified)\n */\ninterface PackageJson {\n  name?: string;\n  version?: string;\n  packageManager?: string;\n  dependencies?: Record<string, string>;\n  devDependencies?: Record<string, string>;\n  peerDependencies?: Record<string, string>;\n  scripts?: Record<string, string>;\n}\n\n/**\n * Creates a project context detector instance\n * @param projectRoot - Root directory of the project\n * @returns ProjectContextDetector instance\n */\nexport function createContextDetector(\n  projectRoot?: string,\n): ProjectContextDetector {\n  return new ProjectContextDetector(projectRoot);\n}\n\n/**\n * Quick function to detect project context\n * @param projectRoot - Root directory of the project\n * @returns Detected project context\n */\nexport async function detectProjectContext(\n  projectRoot?: string,\n): Promise<ProjectContext> {\n  const detector = new ProjectContextDetector(projectRoot);\n  return detector.detect();\n}\n"]}