
Security Fundamentals
Obfuscation 101: Unmasking the Tricks Behind Malicious Code
Attackers use obfuscation to hide malware in open source packages. Learn how to spot these techniques across npm, PyPI, Maven, and more.
Lightweight CouchDB CLI and Node API for efficient stream processing.
5984 is a set of a few specific tools. Chaining provides wide flexibility.
5984 batch -n 1000 docs.ndjson \
| 5984 fetch-revs mydb \
| 5984 batch -n 100 \
| 5984 bulk mydb
For now 5984 provides the following commands:
Please share your thoughts - what is important to you and where you'd see a good fit for it.
The commandline client handles Newline Delimited JSON, which is a perfect fit for CouchDB for many reasons. CouchDB also provides its continuous changes feed as ndjson.
npm install 5984 -g
You can feed the 5984 CLI either with ndjson files provided via commandline argument or via stdin:
5984 bulk mydb docs.ndjson
echo '{"_id": "mydoc"}' | 5984 bulk mydb
The Node API has a stream interface:
var fnef = require('5984')
var bulk = fnef.bulkDocs('mydb')
bulk.on('data', function (response) {
console.log(response)
})
bulk.write({ _id: 'mydoc' })
Documents can can be given using different formats:
Input chunk can be a single document object:
{ "_id": "one" }
...or an array of docs:
[
{ "_id": "one" },
{ "_id": "two" }
]
...or an object with a docs
property with an array of docs, like eg. used in
_bulk_docs
requests:
{
"docs": [
{ "_id": "one" },
{ "_id": "two" }
]
}
There are some global options:
options.url
: CouchDB server url (defaults to http://localhost:5984)options.username
: username to authenticate withoptions.password
: password to authenticate withCommands are invoked in a Git-style manner: 5984 <command> [options]
Run 5984
without an argument or 5984 help
for detailed CLI usage.
The API can be imported either as a whole or directly:
var fnef = require('5984')
var bulkDocs = require('5984/bulk-docs')
All API endpoints return a readable stream in object mode.
Post documents via _bulk_docs
to a CouchDB.
db
: database url. Can also be a database name, in which case the host from options.url
is used.Queries current revisions from database via _all_docs
request and inserts them
into the documents.
db
: database url. Can also be a database name, in which case the host from options.url
is used.Compile couchapp directories and CommonJS modules. See couchdb-compile for details.
Input is not ndjson but plain newline delimited filenames.
If source
is provided, use it as input rather than a stream of filenames.
source
: compile source file. Optional.options.index
: look for index.js
files. Default is false.Group documents to batches.
options.size
: batch size (default is 100)$ 5984 compile ./ddoc | 5984 fetch-revs mydb | 5984 bulk-docs mydb
{"ok":true,"id":"_design/myapp","rev":"1-967a00dff5e02add41819138abb3284d"}
5984 batch -n 1000 docs.ndjson \
| 5984 fetch-revs mydb \
| 5984 batch -n 100 \
| 5984 bulk mydb
First the input docs are batched into 1000er batches. For each batch a request is being made to retrieve current revisions of the documents. Now the docs are again batched, this time into 100er batches. These batches are posted to CouchDB.
Please also have a look at the tests.
Apache 2.0.
(c) 2016 Johannes J. Schmidt
FAQs
Lightweight CouchDB CLI and API for efficient stream processing.
The npm package 5984 receives a total of 15 weekly downloads. As such, 5984 popularity was classified as not popular.
We found that 5984 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 Fundamentals
Attackers use obfuscation to hide malware in open source packages. Learn how to spot these techniques across npm, PyPI, Maven, and more.
Security News
Join Socket for exclusive networking events, rooftop gatherings, and one-on-one meetings during BSidesSF and RSA 2025 in San Francisco.
Security News
Biome's v2.0 beta introduces custom plugins, domain-specific linting, and type-aware rules while laying groundwork for HTML support and embedded language features in 2025.