
Security News
Feross on Risky Business Weekly Podcast: npm’s Ongoing Supply Chain Attacks
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.
liburno_lib
Advanced tools
Questa libreria mette a disposizione un set di funzioni per facilitare la realizzazione di progetti CLI:
Mette a disposizione una classe Database (basata su better-sqlite3), alcune funzioni di servizio, per la gestione di stringhe, una classe 'Post' per comunicare con servizi BackEnd 'Liburno' e una classe per l'invio di Mail.
L'installazione:
npm i liburno_lib
la libreria include l'installazione di alcuni moduli:
all'interno della libreria ci sono diversi moduli e funzioni.
const {database} = require("liburno_lib")
var db=database.db('nome.db')
...
db.chiudi() // chiude anche le eventuali transazioni aperte
Questo è un wrapper di della classe database di better-sqllite. Ha le seguenti funzioni:
db=database.db(nomefile)
: apre e torna un oggetto database
res=database.cleansql(sql)
: pulisce uno statement sql di spazi e commenti. sono accettati anche //
come inizio di commento.
res=database.splitsql(sql)
: divide i comandi sq in un vettore 'pulito' in cui a ogni riga corrispone un solo comando
database.closeall()
: chiude tutte le istanze aperte di database.
Sono state aggiunte diverse funzioni all'oggetto db
db.run(sql,pars)
: anzichè utilizzare db.prepare(sql).run(pars)
si può utilizzare questo metodo che permette di inserire diversi comandi sql, separati con ;
. Da utilizzarsi in particolare per la creazione del database.
db.begin()
, db.commit()
: inizia e termina una transazione. viene tenuto uno stack delle transazioni.
db.chiudi()
: da utilizzare al posto di db.close
: tiene traccia delle transazioni e mappa il database come chiuso.
db.esisteTabella(tb)
,db.esisteCampo(tb,campo)
, ispeziona la struttura per determinare se una tabella o un campo sono presenti.
db.schema(table,alsodelete)
: ritorna i comandi sql per la creazione dell'intero database (table=null), ed eventualmente i comandi per la cancellazione con alsodelete=true
db.tabledef (tb)
: comando semplificato per la creazione di una tabella. ritorna l'sql specifico, in particolare per tutti i comandi di creazione FTs5 quando previsto
db.export(table,mode)
: esporta una tabella in una struttura per JSON
db.import(table,data)
: importa e sovrascrive la tabella esportata. Inoltre controlla di inserire solo i campi che corrispondono all'esportazione lasciando invariati gli altri.
altri: vi sono altre funzioni interessanti per la generazione automatica di comandi SQL su una tabella: db.tabelle()
,db.campi(tabella,modo)
,db.strinsert(table)
,db.strdelete(table)
,db.strvirtual(table,search)
per la costruzione di una ricerca FTS5, db.strselect(table,orderder=false)
const {init}=require('liburno_lib');
const const { Reset, Bold, Reverse, Red, Green, Yellow, Blue, Magenta, Cyan, White } = init(); // ritorna una serie di varibili per colorare la console.
console.log(Red,'rosso',Yellow,Bold,'yellow',Reset,'back');
Init ha la funzione di richiamare una serie di prototipi sulle classi String, Number e Date che ne estendono la funzionalità.
L'intellisense di code
, permette di visualizzarle e usarle.
Contiene una serie di funzioni globali di servizio, accedibili anche direttamente.
const {B}=require('liburno_lib');
// esempio B.creaCartella('alfa/beta/gamma/)
// oppure
const {random,clamp,shuffle,creaCartella}=require('liburno_lib')
Usa node-fetch
per rendere disponibili le funzioni per l'accesso ai servizi 'liburno' , e per una
lista di utilità :
const {Post}=require('liburno_lib')
const post=new Post(baseurl,utente) // i parametri baseURL e utente sono opzionali
post.post('modulo/funzione', { data}).then(res=>{ console.log(res)}) // accede a un servizio liburno
post.fetchtxt('https:///www.liburno.com').then(d=> console.log(d)); // get dell'indirizzo in formato testo
post.fetchfile(indirizzo,fileout) // scarica un file
post.fetchjson(indirizzo).then(d=> console.log(d)); // parsa un indirizzo json
post.fetchbuffer(indirizzo).then (buffer => { }) // parsa un indirizzo in formato binario, ottimo con sharp!
Questa utility usa 'nodemailer' per creare una classe mail e spedire una email.
const fs=require('fs')
const {Mail}=require('liburno_lib');
const mail=new mail(email,password);
// utilities
const fileconf=".mailconfig.json"; // file configurazione nascosto
fs.writeFileSync(fileconf,JSON.stringify(mail.config,null,2)) // struttura di un file di configurazione
... // oppure
const mail=new mail();
mail.configFile(fileconf) // imposta un file di configurazione per il trasporto
... // per inviare
mail.send(to, subject, text)
.then((info)=>{
console.log(info.messageId);
})
.catch(e=>{
console.log("Error",e);
})
FAQs
Liburno SQLite and utils Library
The npm package liburno_lib receives a total of 1 weekly downloads. As such, liburno_lib popularity was classified as not popular.
We found that liburno_lib 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
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.
Product
Socket’s new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.
Research
/Security News
Ongoing npm supply chain attack spreads to DuckDB: multiple packages compromised with the same wallet-drainer malware.