Comparar commits

..

2 Commits

Autor SHA1 Mensaje Fecha
ale
fdeb3b2a2c some fixes
Signed-off-by: ale <ale@manalejandro.com>
2025-08-19 06:28:08 +02:00
ale
a92b2496e1 1.0.5 2025-08-19 06:17:00 +02:00
Se han modificado 2 ficheros con 15 adiciones y 13 borrados

Ver fichero

@@ -1,6 +1,6 @@
{ {
"name": "alepm", "name": "alepm",
"version": "1.0.4", "version": "1.0.5",
"description": "Advanced and secure Node.js package manager with binary storage, intelligent caching, and comprehensive security features", "description": "Advanced and secure Node.js package manager with binary storage, intelligent caching, and comprehensive security features",
"main": "src/index.js", "main": "src/index.js",
"bin": { "bin": {
@@ -51,21 +51,14 @@
"IMPLEMENTATION.md" "IMPLEMENTATION.md"
], ],
"dependencies": { "dependencies": {
"body-parser": "^2.2.0",
"chalk": "^4.1.2", "chalk": "^4.1.2",
"commander": "^11.1.0", "commander": "^11.1.0",
"crypto": "^1.0.1",
"debug": "^4.4.1",
"express": "^5.1.0",
"fs-extra": "^11.3.1", "fs-extra": "^11.3.1",
"inquirer": "^8.2.6", "inquirer": "^8.2.6",
"listr2": "^6.6.1",
"lodash": "^4.17.21",
"node-fetch": "^2.6.12", "node-fetch": "^2.6.12",
"ora": "^5.4.1", "ora": "^5.4.1",
"semver": "^7.7.2", "semver": "^7.7.2",
"tar": "^6.2.1", "tar": "^6.2.1"
"lodash.debounce": "^4.0.8"
}, },
"devDependencies": { "devDependencies": {
"eslint": "^8.45.0", "eslint": "^8.45.0",

Ver fichero

@@ -216,7 +216,9 @@ class PackageManager {
try { try {
// Write buffer to temporary file and extract from there // Write buffer to temporary file and extract from there
const tempFile = path.join(os.tmpdir(), `${name}-${Date.now()}.tgz`); // Sanitize package name for file system
const sanitizedName = name.replace(/[@/]/g, '-');
const tempFile = path.join(os.tmpdir(), `${sanitizedName}-${Date.now()}.tgz`);
await fs.writeFile(tempFile, packageData); await fs.writeFile(tempFile, packageData);
// Extract the tarball directly to the target directory // Extract the tarball directly to the target directory
@@ -799,7 +801,12 @@ class PackageManager {
} }
// Handle standard npm packages // Handle standard npm packages
const match = spec.match(/^(@?[^@]+)(?:@(.+))?$/); // Improved regex to handle scoped packages like @scope/package@version
const match = spec.match(/^(@[^/]+\/[^@]+|[^@]+)(?:@(.+))?$/);
if (!match) {
throw new Error(`Invalid package specification: ${spec}`);
}
return { return {
name: match[1], name: match[1],
version: match[2] || 'latest', version: match[2] || 'latest',
@@ -1201,7 +1208,8 @@ class PackageManager {
// Create tarball from cloned directory // Create tarball from cloned directory
const tar = require('tar'); const tar = require('tar');
const tarballPath = path.join(os.tmpdir(), `${gitSpec.name}-${Date.now()}.tgz`); const sanitizedName = gitSpec.name.replace(/[@/]/g, '-');
const tarballPath = path.join(os.tmpdir(), `${sanitizedName}-${Date.now()}.tgz`);
await tar.create({ await tar.create({
gzip: true, gzip: true,
@@ -1242,7 +1250,8 @@ class PackageManager {
// Handle directory - create tarball // Handle directory - create tarball
const tar = require('tar'); const tar = require('tar');
const os = require('os'); const os = require('os');
const tarballPath = path.join(os.tmpdir(), `${fileSpec.name}-${Date.now()}.tgz`); const sanitizedName = fileSpec.name.replace(/[@/]/g, '-');
const tarballPath = path.join(os.tmpdir(), `${sanitizedName}-${Date.now()}.tgz`);
await tar.create({ await tar.create({
gzip: true, gzip: true,