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
JavaScript
/**
* 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, '')}`);
}
}
}