#!/usr/bin/env node import { existsSync, readFileSync, writeFileSync } from "node:fs"; import { dirname, join, resolve } from "node:path"; import { fileURLToPath } from "node:url"; const __dirname = dirname(fileURLToPath(import.meta.url)); const repoRoot = resolve(__dirname, ".."); const packageDir = process.cwd(); const packageJsonPath = join(packageDir, "package.json"); const sdkPackageJsonPath = join(repoRoot, "packages", "plugins", "sdk", "package.json"); if (!existsSync(packageJsonPath)) { throw new Error(`No package.json found in plugin directory: ${packageDir}`); } const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf8")); const sdkPackageJson = JSON.parse(readFileSync(sdkPackageJsonPath, "utf8")); const publishConfig = packageJson.publishConfig ?? {}; const dependencies = { ...(packageJson.dependencies ?? {}), "@paperclipai/plugin-sdk": `npm:@penclipai/plugin-sdk@${sdkPackageJson.version}`, }; const publishPackageJson = { name: packageJson.name, version: packageJson.version, description: packageJson.description, license: packageJson.license, homepage: packageJson.homepage, bugs: packageJson.bugs, repository: packageJson.repository, type: packageJson.type, exports: publishConfig.exports ?? packageJson.exports, main: publishConfig.main, types: publishConfig.types, publishConfig, files: packageJson.files, paperclipPlugin: packageJson.paperclipPlugin, keywords: packageJson.keywords, dependencies, }; writeFileSync(packageJsonPath, `${JSON.stringify(publishPackageJson, null, 2)}\n`); console.log(` ✓ Generated publishable plugin package.json for ${packageJson.name}`);