
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Este código consiste em diversas funções que auxiliam na leitura e manipulação de dados em diferentes formatos: CSV, XML e JSON.
lerCSV(path)Esta função lê um arquivo CSV no caminho especificado por path e retorna uma Promise que se resolve com um array contendo todos os dados do arquivo. É utilizada a biblioteca csv-parser para realizar a leitura do arquivo.
const csvData = await lerCSV("arquivo.csv");
console.log(csvData);
lerXML(path)Esta função lê um arquivo XML no caminho especificado por path e retorna uma Promise que se resolve com uma string JSON contendo os dados do arquivo. É utilizada a biblioteca xml2js para converter o XML em um objeto JavaScript e, em seguida, é convertido em uma string JSON.
const xmlData = await lerXML("arquivo.xml");
console.log(xmlData);
lerJSON(path)const jsonData = await lerJSON("arquivo.json");
console.log(jsonData);
Esta função lê um arquivo JSON no caminho especificado por path e retorna uma Promise que se resolve com um objeto JavaScript contendo os dados do arquivo.
navigateObject(obj, path)Esta função recebe um objeto JavaScript obj e uma string path, onde path representa um caminho de acesso no objeto no formato "chave1.chave2.chave3". A função retorna o valor do objeto encontrado no caminho especificado por path, ou retorna o objeto original caso path seja nulo ou indefinido.
const obj = {
foo: {
bar: "baz",
},
};
const result = navigateObject(obj, "foo.bar");
console.log(result); // "baz"
combineObjects(obj1, obj2)Esta função recebe dois objetos JavaScript, obj1 e obj2, e combina os valores de obj2 com as chaves de obj1. Caso uma chave em obj1 seja uma array, é criada uma nova array contendo objetos com a chave original de obj1 e o valor correspondente de obj2. Se um valor em obj1 for um objeto, a função é chamada recursivamente para combinar os objetos. Se um valor em obj1 for uma chave que não existe em obj2, é atribuído um valor vazio.
const obj1 = {
name: "John",
age: "26",
address: {
city: "New York",
zip: "10001",
},
};
const obj2 = {
name: "John Doe",
age: 27,
address: {
zip: "10002",
},
};
const result = combineObjects(obj1, obj2);
console.log(result);
convertValuesToNumberAndBoolean(obj, keys)Esta função recebe um objeto JavaScript obj e um array de chaves keys. Para cada chave em keys, se a chave existe em obj, o valor é convertido em um número ou booleano, caso possível. Se o valor for uma string "true", é atribuído true. Se o valor for uma string "false", é atribuído false. Caso contrário, é atribuído o valor convertido em um número. Se a chave não existir em obj, é atribuído 0.
const obj = {
name: "John",
age: "26",
isStudent: "true",
score: "",
};
const keys = ["age", "isStudent", "score"];
const result = convertValuesToNumberAndBoolean(obj, keys);
console.log(result);
removeLargeSpaces(obj)Esta função recebe um objeto JavaScript obj e remove espaços excessivos em todas as chaves que possuem valor do tipo string. Espaços com mais de dois caracteres são substituídos por um único espaço.
const obj = {
name: " John Doe ",
address: {
street: " 123 Main St. ",
city: " New York ",
},
};
const result = removeLargeSpaces(obj);
console.log(result);
removePathFromKeys(obj, path)Esta função recebe um objeto JavaScript obj e uma string path, onde path representa um caminho de acesso no objeto no formato "chave1.chave2.chave3". A função retorna um novo objeto com as mesmas chaves e valores de obj, exceto pelas chaves que começam com o caminho especificado por path. Nesses casos, a chave é modificada para remover o caminho, mantendo apenas o nome da chave original. Se um valor em obj for uma array, a função é chamada recursivamente para
const obj = {
"person.name": "John Doe",
"person.age": 26,
"person.address.street": "123 Main St.",
"person.address.city": "New York",
};
const path = "person";
const result = removePathFromKeys(obj, path);
console.log(result);
FAQs
Biblioteca com funções utilizadas em multi projetos do grupo B2X
We found that b2x-utils demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.