#!/usr/bin/env node Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const require_install = require("./install-DlD3sLtm.cjs"); let node_path = require("node:path"); //#region src/utils/install-react-grab.ts var ReactGrabInstallError = class extends Error { code; constructor(message, code, options) { super(message, options); this.name = "ReactGrabInstallError"; this.code = code; } }; const installReactGrab = async (options = {}) => { const project = await require_install.detectProject((0, node_path.resolve)(options.cwd ?? process.cwd())); const framework = options.framework ?? project.framework; const packageManager = options.packageManager ?? project.packageManager; if (project.unsupportedFramework && !options.framework) throw new ReactGrabInstallError(`${project.unsupportedFramework} is not supported by automatic setup.`, "unsupported-framework"); if (framework === "unknown") throw new ReactGrabInstallError("Could not detect a supported framework. Pass `framework` explicitly to override detection.", "unknown-framework"); const nextRouterType = options.nextRouterType ?? (framework === "next" && project.nextRouterType === "unknown" ? require_install.detectNextRouterType(project.projectRoot) : project.nextRouterType); const alreadyConfigured = project.isReactGrabConfigured; const transform = require_install.previewTransform(project.projectRoot, framework, nextRouterType, alreadyConfigured); if (!transform.success && !options.skipTransform) throw new ReactGrabInstallError(transform.message, "transform-failed"); const didInstallPackage = !options.skipPackageInstall && !options.dryRun && !project.hasReactGrab; if (didInstallPackage) try { await require_install.installPackages(require_install.getPackagesToInstall(), { ...options.installPackageOptions, cwd: project.projectRoot, packageManager }); } catch (error) { throw new ReactGrabInstallError(error instanceof Error ? error.message : "Failed to install the react-grab package.", "install-failed", { cause: error }); } const didChangeFile = !transform.noChanges && Boolean(transform.newContent) && !options.skipTransform && !options.dryRun; if (didChangeFile) { const writeResult = require_install.applyTransform(transform); if (!writeResult.success) throw new ReactGrabInstallError(writeResult.error ?? `Failed to write to ${transform.filePath}`, "write-failed"); } return { projectRoot: project.projectRoot, framework, nextRouterType, packageManager, alreadyConfigured, didInstallPackage, didChangeFile, dryRun: Boolean(options.dryRun), transform }; }; //#endregion exports.ReactGrabInstallError = ReactGrabInstallError; exports.applyTransform = require_install.applyTransform; exports.detectFramework = require_install.detectFramework; exports.detectNextRouterType = require_install.detectNextRouterType; exports.detectPackageManager = require_install.detectPackageManager; exports.detectProject = require_install.detectProject; exports.detectReactGrab = require_install.detectReactGrab; exports.detectReactGrabConfigured = require_install.detectReactGrabConfigured; exports.detectUnsupportedFramework = require_install.detectUnsupportedFramework; exports.findReactProjects = require_install.findReactProjects; exports.getPackagesToInstall = require_install.getPackagesToInstall; exports.hasFrameworkEntryPoint = require_install.hasFrameworkEntryPoint; exports.installPackages = require_install.installPackages; exports.installReactGrab = installReactGrab; exports.installSkill = require_install.installSkill; exports.previewCdnTransform = require_install.previewCdnTransform; exports.previewOptionsTransform = require_install.previewOptionsTransform; exports.previewTransform = require_install.previewTransform; exports.removeSkill = require_install.removeSkill;