Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
bson-objectid
Advanced tools
The bson-objectid npm package is a utility for generating and working with BSON ObjectIDs, which are commonly used as unique identifiers in MongoDB. This package allows you to create new ObjectIDs, convert them to strings, and parse them from strings.
Generate a new ObjectID
This feature allows you to generate a new BSON ObjectID. The generated ID is a 12-byte identifier that is unique and can be used as a primary key in MongoDB.
const ObjectId = require('bson-objectid');
const id = new ObjectId();
console.log(id.toString());
Convert ObjectID to string
This feature allows you to convert a BSON ObjectID to its string representation. This is useful for storing or transmitting the ID as a string.
const ObjectId = require('bson-objectid');
const id = new ObjectId();
const idString = id.toString();
console.log(idString);
Parse ObjectID from string
This feature allows you to parse a string representation of an ObjectID back into a BSON ObjectID. This is useful for converting IDs received as strings back into their original ObjectID format.
const ObjectId = require('bson-objectid');
const idString = '507f1f77bcf86cd799439011';
const id = ObjectId(idString);
console.log(id);
The mongodb package is the official MongoDB driver for Node.js. It includes a comprehensive set of tools for interacting with MongoDB databases, including the ability to generate and work with ObjectIDs. Compared to bson-objectid, the mongodb package offers a broader range of database-related functionalities.
The bson package is a standalone BSON library that provides tools for serializing and deserializing BSON data. It includes functionality for working with ObjectIDs, similar to bson-objectid. However, it also offers additional features for handling other BSON data types.
Mongoose is an Object Data Modeling (ODM) library for MongoDB and Node.js. It provides a higher-level abstraction for working with MongoDB, including schema definitions and validation. Mongoose also includes tools for generating and working with ObjectIDs, but it is more focused on providing a structured way to interact with MongoDB collections.
This module allows you to create and parse ObjectID
s without a reference to the
mongodb or bson
modules.
The goal is to be 100% compatable with all bson's public API implementation (found here: https://github.com/mongodb/js-bson/blob/master/lib/objectid.js).
$ npm install bson-objectid
var ObjectID = require("bson-objectid");
console.log(ObjectID());
console.log(ObjectID("54495ad94c934721ede76d90"));
console.log(ObjectID(1414093117));//time
console.log(ObjectID([ 84, 73, 90, 217, 76, 147, 71, 33, 237, 231, 109, 144 ]));
console.log(ObjectID(new Buffer([ 84, 73, 90, 217, 76, 147, 71, 33, 237, 231, 109, 144 ])));
Creates a new immutable ObjectID
instance based on the current system time.
Possible arguments:
time Constructs the instance based on the specified time (in seconds).
hexString Constructs the instance from a 24 character hex string.
idString Constructs the instance from a 12 byte string.
array Constructs the instance from an Array
of 24 bytes.
buffer Constructs the instance from a 24 byte Buffer
instance.
returns the 12 byte id string.
returns the ObjectID
represented as a 24 character hex string.
returns true if the ObjectID
s represent the same underlying value. Otherwise false.
returns the generation Date
(accurate up to the second) that this ObjectID
was generated.
Creates an ObjectID from a time (in seconds) Number
, with the rest of the ObjectID
zeroed out. Used for comparisons or sorting the ObjectID.
Creates an ObjectID from a 24 character hex string.
Checks if a value is a valid ObjectID
or 24 character hex string.
THE NATIVE DOCUMENTATION ISN'T CLEAR ON THIS GUY!
See: http://mongodb.github.io/node-mongodb-native/api-bson-generated/objectid.html#objectid-isvalid
You can use this to generate a 24 character hex string without instantiating a ObjectID
instance.
This diverges from bson's implementation which returns the 12 byte string.
returns a valid 24 character ObjectID
hex string.
You can use this to set a custom machine-id. It should be a 6 character hex string or a 3 byte integer and will truncate all larger values.
returns the machine-id as a 3 byte int.
mocha
or
npm test
Apache v2.0
See LICENSE file.
Special callout to @feross for the is-buffer code used internally to avoid Buffer from being loaded in browserify environments.
FAQs
Construct ObjectIDs without the mongodb driver or bson module
The npm package bson-objectid receives a total of 204,572 weekly downloads. As such, bson-objectid popularity was classified as popular.
We found that bson-objectid demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers 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.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.