New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

fvm-installer

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fvm-installer - npm Package Compare versions

Comparing version 1.1.6 to 1.1.8

4

ConfigFileClass.js

@@ -1,3 +0,3 @@

var fileTools = require('./file-tools');
var chalk = require('chalk');
const fileTools = require('./file-tools');
const chalk = require('chalk');

@@ -4,0 +4,0 @@ function ConfigFile(existingFile) {

@@ -1,17 +0,17 @@

var fs = require('fs');
var path = require('path');
const fs = require('fs');
const path = require('path');
module.exports = {
check_existing_config_file: function(){
check_existing_config_file: _ => {
return fs.existsSync(path.join(process.cwd(), "scripts.json"));
},
check_existing_resource_folder: function(){
check_existing_resource_folder: _ => {
return fs.existsSync(path.join(process.cwd(), "resources"));
},
get_config_file: function(){
get_config_file: _ => {
return require(path.join(process.cwd(), "scripts.json"));
},
set_config_file: function(data){
set_config_file: (data) => {
fs.writeFileSync(path.join(process.cwd(), "scripts.json"), data);
}
};
{
"name": "fvm-installer",
"version": "1.1.6",
"version": "1.1.8",
"description": "Resource Installer for FiveM",

@@ -31,12 +31,12 @@ "main": "./fvm",

"dependencies": {
"adm-zip": "^0.4.13",
"chalk": "^3.0.0",
"adm-zip": "^0.4.14",
"chalk": "^4.0.0",
"co": "^4.6.0",
"co-prompt": "^1.0.0",
"extract-zip": "^1.6.7",
"extract-zip": "^2.0.0",
"latest-version": "^5.1.0",
"rimraf": "^3.0.0",
"superagent": "^5.2.1",
"rimraf": "^3.0.2",
"superagent": "^5.2.2",
"superagent-binary-parser": "^1.0.1"
}
}

@@ -1,4 +0,5 @@

FiveM Installer [NO LONGER MAINTAINED]
FiveM Installer
--------------
FiveM Installer is a package for FiveM Server (FX). This scripts download resources to build your server.
Is not longer maintained by me but by the community.
**La version française est en bas de la page.**

@@ -112,2 +113,3 @@

FiveM Installer est un utilitaire pour pouvoir télécharger des scripts de FiveM pour un serveur FX.
Le projet n'est plus maintenu par moi mais par la communauté.

@@ -114,0 +116,0 @@ Installation

@@ -1,44 +0,34 @@

var binaryParser = require('superagent-binary-parser');
var request = require('superagent');
var chalk = require('chalk');
var fs = require('fs');
var extract = require('extract-zip');
var rimraf = require('rimraf');
var path = require('path');
const binaryParser = require('superagent-binary-parser');
const request = require('superagent');
const chalk = require('chalk');
const fs = require('fs');
const extract = require('extract-zip');
const rimraf = require('rimraf');
const path = require('path');
module.exports = {
download_resource: function(resource, dataConfigFile, save, specifiedfolder) {
var arraytosplit = resource.split("/");
var resource_user = arraytosplit[0];
var resource_name = arraytosplit[1].split("@")[0] || arraytosplit[1];
download_resource: (resource, dataConfigFile, save, specifiedfolder) => {
const arraytosplit = resource.split("/");
const resource_user = arraytosplit[0];
const resource_name = arraytosplit[1].split("@")[0] || arraytosplit[1];
const versionarray = arraytosplit[1].split("@");
var resource_version;
var versionarray = arraytosplit[1].split("@");
if(versionarray.length > 0){
resource_version = versionarray[1] || "";
}
if (versionarray.length > 0) resource_version = versionarray[1] || "";
return new Promise(function(resolve, reject) {
request.get('https://api.github.com/repos/' + resource_user + "/" + resource_name + "/tags").set('Accept', 'application/json').set('User-Agent', 'fvm-installer').end(function(err, res) {
if (err) {
console.log(chalk.red("Error: Resource "+ resource_user + "/" + resource_name + " Not Found or not possible to download !"));
console.log("\n");
reject("Error: Resource "+ resource_user + "/" + resource_name + " Not Found or not possible to download !");
return;
} else {
return new Promise(async (resolve, reject) => {
await request.get('https://api.github.com/repos/' + resource_user + "/" + resource_name + "/tags").set('Accept', 'application/json').set('User-Agent', 'fvm-installer')
.then(async res => {
var data;
if(resource_version == ""){
if(resource_version == "") {
data = res.body[0];
resource_version = data.name;
}else{
data = res.body.find(function(element){
if(element.name == resource_version){
return true;
}else{
return false;
}
} else {
data = res.body.find((element) => {
return (element.name == resource_version) ? true : false
});
if (!(data)){
if (!(data)) {
console.log(chalk.red("Error: Version for "+ resource_user + "/" + resource_name + " not found !"));

@@ -48,88 +38,75 @@ console.log("\n");

return;
}
}
}
console.log(chalk.green("Installing " + resource_name + " - " + resource_version));
var zip_url = data.zipball_url;
console.log(chalk.green('Installing ' + resource_name + ' - ' + resource_version));
const zip_url = data.zipball_url;
console.log(zip_url);
request.get(zip_url).set('User-Agent', 'fvm-installer').parse(binaryParser).buffer().end(function(err, resp) {
if(err){
console.log(chalk.red("Please Try Again in 60 Minutes - Exceed Github Rate Limite or Github Down"));
process.exit(0);
}
if(!res.body){
console.log(chalk.red("Please Try Again - Network Bug"));
process.exit(0);
}
fs.writeFileSync("resourcedownloadedfvm.zip", resp.body);
var zipfolder = "";
extract("resourcedownloadedfvm.zip", {
dir: path.join(process.cwd(), "resources"),
onEntry: function(fileunzipped, zip) {
if (zipfolder == "") {
zipfolder = fileunzipped.fileName;
}
await request
.get(zip_url)
.set('User-Agent', 'fvm-installer')
.parse(binaryParser)
.buffer()
.then(async resp => {
if (!resp.body) {
console.log(chalk.red('Please Try Again - Network Bug'));
process.exit(0);
}
}, function(err) {
fs.unlinkSync(path.join(process.cwd(), "resourcedownloadedfvm.zip"));
//Remove and put resource in folder
var pathtoinstall = path.join(process.cwd(), "resources", resource_name);
fs.writeFileSync('resourcedownloadedfvm.zip', resp.body);
var zipfolder = '';
try {
await extract('resourcedownloadedfvm.zip', {
dir: path.join(process.cwd(), 'resources'),
onEntry: (fileunzipped, zip) => { if (zipfolder == '') zipfolder = fileunzipped.fileName; },
})
fs.unlinkSync(path.join(process.cwd(), 'resourcedownloadedfvm.zip'));
//Remove and put resource in folder
var pathtoinstall = path.join(process.cwd(), 'resources', resource_name);
if(specifiedfolder != ""){
pathtoinstall = path.join(process.cwd(), "resources", "[" + specifiedfolder + "]", resource_name, "/");
if (!fs.existsSync(path.join(process.cwd(), "resources", "[" + specifiedfolder + "]"))){
fs.mkdirSync(path.join(process.cwd(), "resources", "[" + specifiedfolder + "]"));
}
}
rimraf(pathtoinstall, function() {
fs.rename(path.join(process.cwd(), "resources", zipfolder), pathtoinstall, function(err) {
console.log("\n");
if(save){
dataConfigFile.addResource(resource_user+"/"+resource_name, resource_version, specifiedfolder);
if (specifiedfolder != '') {
pathtoinstall = path.join(process.cwd(), 'resources', '[' + specifiedfolder + ']', resource_name, '/');
if (!fs.existsSync(path.join(process.cwd(), 'resources', '[' + specifiedfolder + ']'))) fs.mkdirSync(path.join(process.cwd(), 'resources', '[' + specifiedfolder + ']'));
}
resolve("Install Successful of "+resource_user+"/"+resource_name);
});
});
});
});
}
rimraf(pathtoinstall, _ => {
fs.rename(path.join(process.cwd(), 'resources', zipfolder), pathtoinstall, (err) => {
console.log('\n');
if (save) dataConfigFile.addResource(resource_user + '/' + resource_name, resource_version, specifiedfolder);
resolve('Install Successful of ' + resource_user + '/' + resource_name);
});
});
} catch (err) { console.log (err) }
})
.catch(err => {
console.log(chalk.red('Please Try Again in 60 Minutes - Exceed Github Rate Limite or Github Down'));
process.exit(0);
})
});
})
.catch(err => {
console.log(chalk.red("Error: Resource "+ resource_user + "/" + resource_name + " Not Found or not possible to download !"));
console.log("\n");
reject("Error: Resource "+ resource_user + "/" + resource_name + " Not Found or not possible to download !");
return;
});
});
},
update_resource: function(resource, previous_version, dataConfigFile, save) {
var arraytosplit = resource.split("/");
var resource_user = arraytosplit[0];
var resource_name = arraytosplit[1].split("@")[0] || arraytosplit[1];
update_resource: (resource, previous_version, dataConfigFile, save) => {
const arraytosplit = resource.split("/");
const resource_user = arraytosplit[0];
const resource_name = arraytosplit[1].split("@")[0] || arraytosplit[1];
var resource_version;
var versionarray = arraytosplit[1].split("@");
const versionarray = arraytosplit[1].split("@");
if(versionarray.length > 0){
resource_version = versionarray[1] || "";
}
return new Promise(function(resolve, reject) {
request.get('https://api.github.com/repos/' + resource_user + "/" + resource_name + "/tags").set('Accept', 'application/json').end(function(err, res) {
if (err) {
console.log(chalk.red("Error: Resource "+ resource_user + "/" + resource_name + " Not Found or not possible to update !"));
console.log("\n");
reject("Error: Resource "+ resource_user + "/" + resource_name + " Not Found or not possible to update !");
return;
} else {
if(versionarray.length > 0) resource_version = versionarray[1] || "";
return new Promise(async (resolve, reject) => {
await request.get('https://api.github.com/repos/' + resource_user + "/" + resource_name + "/tags").set('Accept', 'application/json')
.then(async res => {
var data;
if(resource_version == ""){
if(resource_version == "") {
data = res.body[0];
resource_version = data.name;
}else{
data = res.body.find(function(element){
if(element.name == resource_version){
return true;
}else{
return false;
}
} else {
data = res.body.find((element) => {
return (element.name == resource_version) ? true : false;
});

@@ -144,4 +121,2 @@

}
console.log(chalk.green("Updating " + resource_name + " - " + chalk.red(previous_version) + " -> " + resource_version));

@@ -151,7 +126,4 @@ var zip_url = data.zipball_url;

request.get(zip_url).parse(binaryParser).buffer().end(function(err, resp) {
if(err){
console.log(chalk.red("Please Try Again in 60 Minutes - Exceed Github Rate Limite or Github Down "));
process.exit(0);
}
await request.get(zip_url).parse(binaryParser).buffer()
.then(async res => {
if(!res.body){

@@ -161,61 +133,56 @@ console.log(chalk.red("Please Try Again - Network Bug"));

}
fs.writeFileSync("resourcedownloadedfvm.zip", resp.body);
fs.writeFileSync("resourcedownloadedfvm.zip", res.body);
var zipfolder = "";
extract("resourcedownloadedfvm.zip", {
dir: path.join(process.cwd(), "resources"),
onEntry: function(fileunzipped, zip) {
if (zipfolder == "") {
zipfolder = fileunzipped.fileName;
}
}
}, function(err) {
try {
await extract('resourcedownloadedfvm.zip', {
dir: path.join(process.cwd(), 'resources'), onEntry: (fileunzipped, zip) => {
if (zipfolder == '') zipfolder = fileunzipped.fileName;
},
});
// fs.unlinkSync(path.join(process.cwd(), "resourcedownloadedfvm.zip"));
//Remove and put resource in folder
var pathtoupdate = path.join(process.cwd(), "resources", resource_name);
if(dataConfigFile.folder[resource_user+"/"+resource_name]){
pathtoupdate = path.join(process.cwd(), "resources", "[" + dataConfigFile.folder[resource_user+"/"+resource_name] + "]", resource_name);
if (!fs.existsSync(path.join(process.cwd(), "resources", "[" + dataConfigFile.folder[resource_user+"/"+resource_name] + "]"))){
fs.mkdirSync(path.join(process.cwd(), "resources", "[" + dataConfigFile.folder[resource_user+"/"+resource_name] + "]"));
}
var pathtoupdate = path.join(process.cwd(), 'resources', resource_name);
if (dataConfigFile.folder[resource_user + '/' + resource_name]) {
pathtoupdate = path.join(process.cwd(), 'resources', '[' + dataConfigFile.folder[resource_user + '/' + resource_name] + ']', resource_name);
if (!fs.existsSync(path.join(process.cwd(), 'resources', '[' + dataConfigFile.folder[resource_user + '/' + resource_name] + ']'))) fs.mkdirSync(path.join(process.cwd(), 'resources', '[' + dataConfigFile.folder[resource_user + '/' + resource_name] + ']'));
}
rimraf(pathtoupdate, function() {
fs.rename(path.join(process.cwd(), "resources", zipfolder), pathtoupdate, function(err) {
console.log("\n");
if(save){
if(dataConfigFile.folder[resource_user+"/"+resource_name]){
dataConfigFile.addResource(resource_user+"/"+resource_name, resource_version, dataConfigFile.folder[resource_user+"/"+resource_name]);
}else{
dataConfigFile.addResource(resource_user+"/"+resource_name, resource_version, "");
}
rimraf(pathtoupdate, _ => {
fs.rename(path.join(process.cwd(), 'resources', zipfolder), pathtoupdate, (err) => {
console.log('\n');
if (save) {
(dataConfigFile.folder[resource_user + '/' + resource_name])
? dataConfigFile.addResource(resource_user + '/' + resource_name, resource_version, dataConfigFile.folder[resource_user + '/' + resource_name])
: dataConfigFile.addResource(resource_user + '/' + resource_name, resource_version, '');
}
resolve("Update Successful of "+resource_user+"/"+resource_name);
resolve('Update Successful of ' + resource_user + '/' + resource_name);
});
});
});
});
}
} catch (err) { console.log (err) }
})
.catch(err => {
console.log(chalk.red("Please Try Again in 60 Minutes - Exceed Github Rate Limite or Github Down "));
process.exit(0);
})
})
.catch(err => {
console.log(chalk.red("Error: Resource "+ resource_user + "/" + resource_name + " Not Found or not possible to update !"));
console.log("\n");
reject("Error: Resource "+ resource_user + "/" + resource_name + " Not Found or not possible to update !");
return;
});
});
},
deleteresource: function(resource, save, dataConfigFile){
return new Promise(function(resolve, reject) {
var arraytosplit = resource.split("/");
var resource_user = arraytosplit[0];
var resource_name = arraytosplit[1].split("@")[0] || arraytosplit[1];
deleteresource: (resource, save, dataConfigFile) => {
return new Promise((resolve, reject) => {
const arraytosplit = resource.split("/");
const resource_user = arraytosplit[0];
const resource_name = arraytosplit[1].split("@")[0] || arraytosplit[1];
var pathtodelete = path.join(process.cwd(), "resources", resource_name);
if(dataConfigFile.folder[resource]){
pathtodelete = path.join(process.cwd(), "resources", "[" + dataConfigFile.folder[resource] + "]", resource_name)
}
if(dataConfigFile.folder[resource]) pathtodelete = path.join(process.cwd(), "resources", "[" + dataConfigFile.folder[resource] + "]", resource_name);
rimraf(pathtodelete, function() {
if (save){
dataConfigFile.removeResource(resource);
}
rimraf(pathtodelete, _ => {
if (save) dataConfigFile.removeResource(resource);
console.log("Delete Successful of "+resource_user+"/"+resource_name);

@@ -226,30 +193,28 @@ resolve("Delete Successful of "+resource_user+"/"+resource_name);

},
check_update_resource: function(resource, resource_version){
var arraytosplit = resource.split("/");
var resource_user = arraytosplit[0];
var resource_name = arraytosplit[1].split("@")[0] || arraytosplit[1];
check_update_resource: (resource, resource_version) => {
const arraytosplit = resource.split("/");
const resource_user = arraytosplit[0];
const resource_name = arraytosplit[1].split("@")[0] || arraytosplit[1];
return new Promise(function(resolve, reject) {
request.get('https://api.github.com/repos/' + resource_user + "/" + resource_name + "/tags").set('Accept', 'application/json').end(function(err, res) {
if (err) {
console.log(chalk.red("Error: Resource "+ resource_user + "/" + resource_name + " Not Found or not possible to update !"));
console.log("\n");
reject("Error: Resource "+ resource_user + "/" + resource_name + " Not Found or not possible to update !");
return;
} else {
var version = res.body[0].name;
if(resource_version != version){
console.log(resource + "\t"+ "Installed: " + resource_version+"\t" +chalk.green(" New Version:"+version)+"\n");
}else{
console.log(resource + "\t"+ "Installed: " + resource_version+"\n");
}
resolve();
}
return new Promise(async (resolve, reject) => {
await request.get('https://api.github.com/repos/' + resource_user + "/" + resource_name + "/tags").set('Accept', 'application/json')
.then(res => {
const version = res.body[0].name;
(resource_version != version)
? console.log(resource + "\t"+ "Installed: " + resource_version+"\t" +chalk.green(" New Version:"+version)+"\n")
: console.log(resource + "\t"+ "Installed: " + resource_version+"\n");
resolve();
})
.catch(err => {
console.log(chalk.red("Error: Resource "+ resource_user + "/" + resource_name + " Not Found or not possible to update !"));
console.log("\n");
reject("Error: Resource "+ resource_user + "/" + resource_name + " Not Found or not possible to update !");
return;
});
});
},
check_resource_format: function (resource_name){
check_resource_format: (resource_name) => {
return /(^([^/]+)\/([^/]+)@\S+$)|(^([^/]+)\/([^/]+)$)/g.test(resource_name);
}
};
};

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc