{"version":3,"sources":["../src/deploy/log.ts","../src/services/deps.ts","../src/services/env.ts","../src/services/fs.ts"],"names":["Writable","spawn","MastraBase","fs","path","fsPromises","ensureFile","readJSON","fileURLToPath","dirname","writeJSON","fs2","fsExtra"],"mappings":"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","file":"chunk-UEH6D24P.cjs","sourcesContent":["import { spawn } from 'node:child_process';\nimport { Writable } from 'node:stream';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\nexport const createPinoStream = (logger: IMastraLogger) => {\n  return new Writable({\n    write(chunk, _encoding, callback) {\n      // Convert Buffer/string to string and trim whitespace\n      const line = chunk.toString().trim();\n\n      if (line) {\n        console.info(line);\n        // Log each line through Pino\n        logger.info(line);\n      }\n\n      callback();\n    },\n  });\n};\n\nexport function createChildProcessLogger({ logger, root }: { logger: IMastraLogger; root: string }) {\n  const pinoStream = createPinoStream(logger);\n  return async ({ cmd, args, env }: { cmd: string; args: string[]; env: Record<string, string> }) => {\n    try {\n      const subprocess = spawn(cmd, args, {\n        cwd: root,\n        shell: true,\n        env,\n        // No stdin for the child process — it doesn't need interactive input\n        stdio: ['ignore', 'pipe', 'pipe'],\n      });\n\n      // Pipe stdout and stderr through the logging stream.\n      // { end: false } prevents the first stream to close from ending pinoStream\n      // while the other may still be writing.\n      subprocess.stdout?.pipe(pinoStream, { end: false });\n      subprocess.stderr?.pipe(pinoStream, { end: false });\n\n      // Wait for the process to complete\n      return new Promise((resolve, reject) => {\n        subprocess.on('close', code => {\n          pinoStream.end();\n          if (code === 0) {\n            resolve({ success: true });\n          } else {\n            reject(new Error(`Process exited with code ${code}`));\n          }\n        });\n\n        subprocess.on('error', error => {\n          pinoStream.end();\n          logger.error('Process failed', { error });\n          reject(error);\n        });\n      });\n    } catch (error) {\n      console.error(error);\n      logger.error('Process failed', { error });\n      pinoStream.end();\n      return { success: false, error };\n    }\n  };\n}\n","import fs from 'node:fs';\nimport fsPromises from 'node:fs/promises';\nimport path, { dirname } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { MastraBase } from '@mastra/core/base';\nimport { readJSON, writeJSON, ensureFile } from 'fs-extra/esm';\nimport type { PackageJson } from 'type-fest';\n\nimport { createChildProcessLogger } from '../deploy/log.js';\n\ntype PackageManager = 'npm' | 'yarn' | 'pnpm' | 'bun';\n\ninterface ArchitectureOptions {\n  os?: string[];\n  cpu?: string[];\n  libc?: string[];\n}\n\nexport class Deps extends MastraBase {\n  private packageManager: PackageManager;\n  private rootDir: string;\n\n  constructor(rootDir = process.cwd()) {\n    super({ component: 'DEPLOYER', name: 'DEPS' });\n\n    this.rootDir = rootDir;\n    this.packageManager = this.getPackageManager();\n  }\n\n  private findLockFile(dir: string): string | null {\n    const lockFiles = ['pnpm-lock.yaml', 'package-lock.json', 'yarn.lock', 'bun.lock'];\n    for (const file of lockFiles) {\n      if (fs.existsSync(path.join(dir, file))) {\n        return file;\n      }\n    }\n    const parentDir = path.resolve(dir, '..');\n    if (parentDir !== dir) {\n      return this.findLockFile(parentDir);\n    }\n    return null;\n  }\n\n  private getPackageManager(): PackageManager {\n    const lockFile = this.findLockFile(this.rootDir);\n    switch (lockFile) {\n      case 'pnpm-lock.yaml':\n        return 'pnpm';\n      case 'package-lock.json':\n        return 'npm';\n      case 'yarn.lock':\n        return 'yarn';\n      case 'bun.lock':\n        return 'bun';\n      default:\n        return 'npm';\n    }\n  }\n\n  public getWorkspaceDependencyPath({ pkgName, version }: { pkgName: string; version: string }) {\n    return `file:./workspace-module/${pkgName}-${version}.tgz`;\n  }\n\n  public async pack({ dir, destination, sanitizedName }: { dir: string; destination: string; sanitizedName: string }) {\n    const cpLogger = createChildProcessLogger({\n      logger: this.logger,\n      root: dir,\n    });\n\n    let packCmd = 'pack';\n    let destinationFlag = `--pack-destination ${destination}`;\n    if (this.packageManager === 'yarn') {\n      // %s includes an '@' at the start of packages names with an '@'\n      // so we need to use our sanitizedName instead.\n      destinationFlag = `--out ${destination}/${sanitizedName}-%v.tgz`;\n    }\n    if (this.packageManager === 'bun') {\n      // bun uses `pm pack` instead of `pack`\n      packCmd = 'pm pack';\n      // bun uses --destination instead of --pack-destination\n      destinationFlag = `--destination ${destination}`;\n    }\n\n    return cpLogger({\n      cmd: `${this.packageManager} ${packCmd} ${destinationFlag}`,\n      args: [],\n      env: {\n        PATH: process.env.PATH!,\n      },\n    });\n  }\n\n  private async writePnpmConfig(dir: string, options: ArchitectureOptions) {\n    const workspaceYamlPath = path.join(dir, 'pnpm-workspace.yaml');\n\n    const lines: string[] = [\n      'packages:',\n      \"  - '.'\",\n      'allowBuilds:',\n      '  bcrypt: true',\n      '  esbuild: true',\n      '  sharp: true',\n      '  protobufjs: true',\n      '  workerd: true',\n      '  bufferutil: true',\n      '  utf-8-validate: true',\n      'minimumReleaseAge: 0',\n    ];\n    if (options.os?.length || options.cpu?.length || options.libc?.length) {\n      lines.push('');\n      lines.push('supportedArchitectures:');\n      if (options.os?.length) {\n        lines.push(`  os: ${JSON.stringify(options.os)}`);\n      }\n      if (options.cpu?.length) {\n        lines.push(`  cpu: ${JSON.stringify(options.cpu)}`);\n      }\n      if (options.libc?.length) {\n        lines.push(`  libc: ${JSON.stringify(options.libc)}`);\n      }\n    }\n    lines.push('');\n\n    await fsPromises.writeFile(workspaceYamlPath, lines.join('\\n'), 'utf-8');\n  }\n\n  private async writeYarnConfig(dir: string, options: ArchitectureOptions) {\n    const yarnrcPath = path.join(dir, '.yarnrc.yml');\n    const config = {\n      supportedArchitectures: {\n        cpu: options.cpu || [],\n        os: options.os || [],\n        libc: options.libc || [],\n      },\n    };\n\n    await fsPromises.writeFile(\n      yarnrcPath,\n      `supportedArchitectures:\\n${Object.entries(config.supportedArchitectures)\n        .map(([key, value]) => `  ${key}: ${JSON.stringify(value)}`)\n        .join('\\n')}`,\n    );\n  }\n\n  private getNpmArgs(options: ArchitectureOptions): string[] {\n    const args: string[] = [];\n    if (options.cpu) args.push(`--cpu=${options.cpu.join(',')}`);\n    if (options.os) args.push(`--os=${options.os.join(',')}`);\n    if (options.libc) args.push(`--libc=${options.libc.join(',')}`);\n    return args;\n  }\n\n  /**\n   * Depending on whether we want to install or add a package, this function returns the appropriate commands.\n   * All package managers support both commands (e.g. npm install has an alias on \"add\")\n   */\n  private getPackageManagerCommand(pm: PackageManager, type: 'install' | 'add'): string {\n    const cmd = type === 'install' ? 'install' : 'add';\n\n    switch (pm) {\n      case 'npm':\n        return `${cmd} --audit=false --fund=false --loglevel=error --progress=false --update-notifier=false`;\n      case 'yarn':\n        return `${cmd}`;\n      case 'pnpm':\n        return cmd === 'install' ? `${cmd} --loglevel=error` : `${cmd} --loglevel=error`;\n      case 'bun':\n        return cmd;\n      default:\n        return cmd;\n    }\n  }\n\n  public async install({\n    dir = this.rootDir,\n    architecture,\n  }: { dir?: string; architecture?: ArchitectureOptions } = {}) {\n    const pm = this.packageManager;\n    const installCommand = this.getPackageManagerCommand(pm, 'install');\n    let args: string[] = [];\n\n    switch (pm) {\n      case 'pnpm':\n        if (architecture) {\n          await this.writePnpmConfig(dir, architecture);\n        }\n        break;\n      case 'yarn':\n        // similar to --ignore-workspace but for yarn\n        await ensureFile(path.join(dir, 'yarn.lock'));\n        if (architecture) {\n          await this.writeYarnConfig(dir, architecture);\n        }\n        break;\n      case 'npm':\n        if (architecture) {\n          args = this.getNpmArgs(architecture);\n        }\n        break;\n      default:\n      // Do nothing\n    }\n\n    const cpLogger = createChildProcessLogger({\n      logger: this.logger,\n      root: dir,\n    });\n\n    return cpLogger({\n      cmd: `${pm} ${installCommand}`,\n      args,\n      env: process.env as Record<string, string>,\n    });\n  }\n\n  public async installPackages(packages: string[]) {\n    const pm = this.packageManager;\n    const installCommand = this.getPackageManagerCommand(pm, 'add');\n\n    const env: Record<string, string> = {\n      PATH: process.env.PATH!,\n    };\n\n    if (process.env.npm_config_registry) {\n      env.npm_config_registry = process.env.npm_config_registry;\n    }\n\n    const cpLogger = createChildProcessLogger({\n      logger: this.logger,\n      root: '',\n    });\n\n    return cpLogger({\n      cmd: `${pm} ${installCommand}`,\n      args: packages,\n      env,\n    });\n  }\n\n  public async checkDependencies(dependencies: string[]): Promise<string> {\n    try {\n      const packageJsonPath = path.join(this.rootDir, 'package.json');\n\n      try {\n        await fsPromises.access(packageJsonPath);\n      } catch {\n        return 'No package.json file found in the current directory';\n      }\n\n      const packageJson = await readJSON(packageJsonPath);\n      for (const dependency of dependencies) {\n        if (!packageJson.dependencies || !packageJson.dependencies[dependency]) {\n          return `Please install ${dependency} before running this command (${this.packageManager} install ${dependency})`;\n        }\n      }\n\n      return 'ok';\n    } catch (err) {\n      console.error(err);\n      return 'Could not check dependencies';\n    }\n  }\n\n  public async getProjectName() {\n    try {\n      const packageJsonPath = path.join(this.rootDir, 'package.json');\n      const pkg = await readJSON(packageJsonPath);\n      return pkg.name;\n    } catch (err) {\n      throw err;\n    }\n  }\n\n  public async getPackageVersion() {\n    const __filename = fileURLToPath(import.meta.url);\n    const __dirname = dirname(__filename);\n    const pkgJsonPath = path.join(__dirname, '..', '..', 'package.json');\n\n    const content = (await readJSON(pkgJsonPath)) as PackageJson;\n    return content.version;\n  }\n\n  public async addScriptsToPackageJson(scripts: Record<string, string>) {\n    const packageJson = await readJSON('package.json');\n    packageJson.scripts = {\n      ...packageJson.scripts,\n      ...scripts,\n    };\n    await writeJSON('package.json', packageJson, { spaces: 2 });\n  }\n}\n\nexport class DepsService extends Deps {}\n","import * as fs from 'node:fs';\n\nexport abstract class EnvService {\n  abstract getEnvValue(key: string): Promise<string | null>;\n  abstract setEnvValue(key: string, value: string): Promise<void>;\n}\n\nexport class FileEnvService extends EnvService {\n  private filePath: string;\n\n  constructor(filePath: string) {\n    super();\n    this.filePath = filePath;\n  }\n\n  private readFile(filePath: string): Promise<string> {\n    return new Promise((resolve, reject) => {\n      fs.readFile(filePath, 'utf8', (err: NodeJS.ErrnoException | null, data: string) => {\n        if (err) reject(err);\n        else resolve(data);\n      });\n    });\n  }\n\n  private writeFile({ filePath, data }: { filePath: string; data: string }): Promise<void> {\n    return new Promise((resolve, reject) => {\n      fs.writeFile(filePath, data, 'utf8', (err: NodeJS.ErrnoException | null) => {\n        if (err) reject(err);\n        else resolve();\n      });\n    });\n  }\n\n  private async updateEnvData({\n    key,\n    value,\n    filePath = this.filePath,\n    data,\n  }: {\n    key: string;\n    value: string;\n    filePath?: string;\n    data: string;\n  }): Promise<string> {\n    const regex = new RegExp(`^${key}=.*$`, 'm');\n    if (data.match(regex)) {\n      data = data.replace(regex, `${key}=${value}`);\n    } else {\n      data += `\\n${key}=${value}`;\n    }\n    await this.writeFile({ filePath, data });\n    console.info(`${key} set to ${value} in ENV file.`);\n    return data;\n  }\n\n  async getEnvValue(key: string): Promise<string | null> {\n    try {\n      const data = await this.readFile(this.filePath);\n      const regex = new RegExp(`^${key}=(.*)$`, 'm');\n      const match = data.match(regex);\n      return match?.[1] || null;\n    } catch (err) {\n      console.error(`Error reading ENV value: ${err}`);\n      return null;\n    }\n  }\n\n  async setEnvValue(key: string, value: string): Promise<void> {\n    try {\n      const data = await this.readFile(this.filePath);\n      await this.updateEnvData({ key, value, data });\n    } catch (err) {\n      console.error(`Error writing ENV value: ${err}`);\n    }\n  }\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nimport fsExtra from 'fs-extra/esm';\n\nimport { FileEnvService } from './env.js';\n\nexport class FileService {\n  /**\n   *\n   * @param inputFile the file in the starter files directory to copy\n   * @param outputFilePath the destination path\n   * @param replaceIfExists flag to replace if it exists\n   * @returns\n   */\n  public async copyStarterFile(inputFile: string, outputFilePath: string, replaceIfExists?: boolean) {\n    const __filename = fileURLToPath(import.meta.url);\n    const __dirname = path.dirname(__filename);\n    const filePath = path.resolve(__dirname, '..', 'starter-files', inputFile);\n    const fileString = fs.readFileSync(filePath, 'utf8');\n\n    if (fs.existsSync(outputFilePath) && !replaceIfExists) {\n      console.info(`${outputFilePath} already exists`);\n      return false;\n    }\n\n    await fsExtra.outputFile(outputFilePath, fileString);\n\n    return true;\n  }\n\n  public async setupEnvFile({ dbUrl }: { dbUrl: string }) {\n    const envPath = path.join(process.cwd(), '.env.development');\n\n    await fsExtra.ensureFile(envPath);\n\n    const fileEnvService = new FileEnvService(envPath);\n    await fileEnvService.setEnvValue('DB_URL', dbUrl);\n  }\n\n  public getFirstExistingFile(files: string[]): string {\n    for (const f of files) {\n      if (fs.existsSync(f)) {\n        return f;\n      }\n    }\n\n    throw new Error('Missing required file, checked the following paths: ' + files.join(', '));\n  }\n\n  /**\n   * Returns the first existing file from the provided array, or undefined if none exist\n   * @param files array of file paths to check\n   * @returns the first existing file path or undefined\n   */\n  public getFirstExistingFileOrUndefined(files: string[]): string | undefined {\n    for (const f of files) {\n      if (fs.existsSync(f)) {\n        return f;\n      }\n    }\n\n    return undefined;\n  }\n\n  public replaceValuesInFile({\n    filePath,\n    replacements,\n  }: {\n    filePath: string;\n    replacements: { search: string; replace: string }[];\n  }) {\n    let fileContent = fs.readFileSync(filePath, 'utf8');\n    replacements.forEach(({ search, replace }) => {\n      fileContent = fileContent.replaceAll(search, replace);\n    });\n\n    fs.writeFileSync(filePath, fileContent);\n  }\n}\n"]}