UNPKG

corifeus-builder

Version:
118 lines (95 loc) 3.5 kB
const fs = require('fs').promises; const path = require('path'); const git = require('../../git'); module.exports = async (pkgFile) => { const result = await Promise.all([ git.commit, git.repo, fs.readFile(pkgFile) ]); const commit = result[0]; const repo = result[1]; const pkg = JSON.parse(result[2].toString()); let version = pkg.version.split('.'); const date = new Date(); version[0] = date.getFullYear() const previousVersionYear = parseInt(version[0]) const previousVersionDate = parseInt(version[1]) const currentMonth = date.getMonth() + 1 if (currentMonth <= 6) { version[1] = 4 } else { version[1] = 10 } const size = 3; if (version.length < size) { const extend = Array(size - version.length).fill('0'); version = version.concat(extend); } version = version.map((element) => { return !Number.isInteger(parseInt(element)) ? '100' : element; }) //console.log('previousVersionDate', previousVersionDate, 'version[1]', version[1]) if (previousVersionDate === parseInt(version[1]) && previousVersionYear === parseInt(version[0])) { version[2] = parseInt(version[2]) + 1 } else { version[2] = 100 } if (parseInt(version[2]) < 100) { version[2] = 100 } /* const subVersion = version[2].split('-'); subVersion[0] = date.getDate() if (subVersion[1] === undefined) { subVersion[1] = 0; } subVersion[1] = parseInt(subVersion[1]) + 1; const originalVersion = pkg.version.split('.') const originalSubVersion = version[2].split('-'); if (`${originalVersion[0]}.${originalVersion[1]}.${originalSubVersion[0]}` !== `${version[0]}.${version[1]}.${subVersion[0]}`) { subVersion[1] = 0 } version[2] = subVersion.join('-'); */ pkg.version = version.join('.'); if (!pkg.hasOwnProperty('corifeus')) { pkg.corifeus = {}; } const prefix = pkg.corifeus.prefix || ''; const postfix = pkg.corifeus.postfix || ''; pkg.name = `${prefix}${repo}${postfix}`; // pkg.engines = { "node" : `>=${process.versions.node}` }; pkg.engines = {"node": `>=12.13.0`}; pkg.homepage = `https://corifeus.com/${repo === 'corifeus' ? 'matrix' : repo }`; pkg.corifeus.nodejs = process.version pkg.corifeus.reponame = repo; const newPkgFile = JSON.stringify(pkg, null, 4); await fs.writeFile(pkgFile, newPkgFile) // Auto-ensure .npmignore protects sensitive paths (always, whether they exist or not) const cwd = path.dirname(pkgFile) const npmignorePath = path.join(cwd, '.npmignore') const protected = [ 'secure/', 'agents/', '.claude/', '.vscode/', '.codex/', 'CLAUDE.md', 'AGENTS.md', ] let npmignore = '' try { npmignore = await fs.readFile(npmignorePath, 'utf-8') } catch (e) {} const normalize = (s) => s.trim().replace(/^\//, '').replace(/\/$/, '') const lines = npmignore.split('\n').map(normalize) const missing = protected.filter(entry => !lines.includes(normalize(entry))) if (missing.length > 0) { const addition = missing.join('\n') npmignore = npmignore ? npmignore.trimEnd() + '\n' + addition + '\n' : addition + '\n' await fs.writeFile(npmignorePath, npmignore) console.log(`Auto-added to .npmignore: ${missing.join(', ')}`) } return pkg; }