UNPKG

php-universal-mcp-server

Version:

Servidor MCP universal para desenvolvimento PHP e criação de sites em qualquer provedor de hospedagem

145 lines (122 loc) 4.29 kB
/** * Script para preparar o pacote para publicação no NPM */ const fs = require('fs'); const path = require('path'); const { execSync } = require('child_process'); // Diretório raiz do projeto const ROOT_DIR = path.resolve(__dirname, '..'); // Diretório de build const BUILD_DIR = path.join(ROOT_DIR, 'dist'); console.log('Preparando pacote para publicação no NPM...'); // 1. Limpar ou criar diretório de build if (fs.existsSync(BUILD_DIR)) { console.log('Limpando diretório de build existente...'); fs.rmSync(BUILD_DIR, { recursive: true, force: true }); } console.log('Criando diretório de build...'); fs.mkdirSync(BUILD_DIR, { recursive: true }); // 2. Copiar arquivos necessários console.log('Copiando arquivos para o diretório de build...'); // Lista de arquivos a serem copiados da raiz const rootFilesToCopy = [ 'package.json', 'README.md', 'LICENSE', 'claude-desktop.json' ]; // Copiar arquivos da raiz rootFilesToCopy.forEach(file => { const srcPath = path.join(ROOT_DIR, file); const destPath = path.join(BUILD_DIR, file); if (fs.existsSync(srcPath)) { fs.copyFileSync(srcPath, destPath); console.log(`- Copiado: ${file}`); } else { console.warn(`- Aviso: Arquivo ${file} não encontrado`); } }); // 3. Copiar diretório src console.log('Copiando diretório src...'); const srcDir = path.join(ROOT_DIR, 'src'); const destSrcDir = path.join(BUILD_DIR, 'src'); fs.mkdirSync(destSrcDir, { recursive: true }); copyDirectory(srcDir, destSrcDir); // 4. Copiar diretório examples console.log('Copiando diretório examples...'); const examplesDir = path.join(ROOT_DIR, 'examples'); const destExamplesDir = path.join(BUILD_DIR, 'examples'); fs.mkdirSync(destExamplesDir, { recursive: true }); copyDirectory(examplesDir, destExamplesDir); // 5. Atualizar versão do pacote const packageJsonPath = path.join(BUILD_DIR, 'package.json'); const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); // Incrementar versão patch const versionParts = packageJson.version.split('.'); versionParts[2] = (parseInt(versionParts[2]) + 1).toString(); packageJson.version = versionParts.join('.'); console.log(`Atualizando versão para: ${packageJson.version}`); fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2)); // 6. Criar diretório mock-data padrão console.log('Criando diretório mock-data...'); const mockDataDir = path.join(BUILD_DIR, 'src', 'providers', 'mock-data'); fs.mkdirSync(mockDataDir, { recursive: true }); // Criar arquivo default.json com dados mock padrão const defaultMockData = { 'action:createSite': { success: true, timestamp: new Date().toISOString(), data: { siteId: 'site_12345', domain: 'example.com', status: 'created', createdAt: new Date().toISOString() } }, 'action:getDomainInfo': { success: true, timestamp: new Date().toISOString(), data: { domain: 'example.com', registered: true, expiresAt: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000).toISOString(), nameservers: [ 'ns1.mockprovider.com', 'ns2.mockprovider.com' ] } }, 'default': { success: true, timestamp: new Date().toISOString(), data: { message: 'Operation simulated successfully', details: 'This is a default simulated response' } } }; fs.writeFileSync( path.join(mockDataDir, 'default.json'), JSON.stringify(defaultMockData, null, 2) ); console.log('- Criado arquivo mock-data/default.json'); console.log('Pacote preparado para publicação!'); console.log(`Diretório de build: ${BUILD_DIR}`); console.log('\nPara publicar no NPM:'); console.log('1. cd dist'); console.log('2. npm publish'); // Função auxiliar para copiar diretórios recursivamente function copyDirectory(src, dest) { const entries = fs.readdirSync(src, { withFileTypes: true }); for (const entry of entries) { const srcPath = path.join(src, entry.name); const destPath = path.join(dest, entry.name); if (entry.isDirectory()) { fs.mkdirSync(destPath, { recursive: true }); copyDirectory(srcPath, destPath); } else { fs.copyFileSync(srcPath, destPath); console.log(`- Copiado: ${srcPath.replace(ROOT_DIR, '')}`); } } }