Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
FIFO queue implemented using a double linked-list
npm install fifo
var fifo = require('fifo')()
fifo.push('hello')
fifo.push('world')
console.log(fifo.first()) // prints hello
console.log(fifo.last()) // prints world
console.log(fifo.shift()) // prints hello
console.log(fifo.shift()) // prints world
var node = fifo.push('meh')
fifo.remove(node) // remove 'meh' from the stack
fifo.unshift('hello') // insert at the beginning
fifo
uses a linked list behind the scene so all list manipulation methods run in O(1)
fifo = FIFO()
Create a new instance
fifo.node
Contains the first node on the list.
fifo.length
Number of nodes in the list.
node = fifo.push(value)
Push a new value to the end of the list. Returns a node that contains this value.
The value can be accessed by accessing node.value
.
value = fifo.shift()
Removes the first node and returns the value
value = fifo.pop()
Removes the last node and returns the value
value = fifo.remove(node)
Removes the node and returns the value
fifo.add(node)
Readds a node. Should only be done with a node that has been removed.
value = fifo.first()
Peek at the first value
value = fifo.last()
Peek at the last value
node = fifo.unshift(value)
Inserts a value at the beginning of the list
node = fifo.next(node)
Returns the next node relative to the node you pass.
If the node was the last node in the list null
is returned.
node = fifo.prev(node)
Returns the previous node relative to the node you pass.
If the node was the first node in the list null
is returned.
fifo.bump(node)
Moves a node to the end of the list
fifo.clear()
Clears the list.
fifo.forEach(fn)
Iterate over all values in the list. Calls the function with value, node
.
To iterate the list simply use the following for loop
for (var node = fifo.node; node; node = fifo.next(node)) {
console.log('value is', node.value)
}
Optionally you can call fifo.forEach(fn)
which does the above internally.
MIT
FAQs
FIFO queue implemented using a double linked-list
The npm package fifo receives a total of 12,229 weekly downloads. As such, fifo popularity was classified as popular.
We found that fifo 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
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.