
Research
Security News
Malicious PyPI Package Exploits Deezer API for Coordinated Music Piracy
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Turns a Date object into a promise that resolves on that date, with an optional value.
Uses native ES6 promises if available, but falls back to lie. You can override this by calling promDate.setPromise(require('some-es6-compliant-promise-library'));
Use require('prom-date').extend() to expose a 'Date.prototype.promise(value)'.
promDate(date, value, options)
date
is any javascript Date objectvalue
is the value you would like the promise to resolve withoptions
an options object with the following keys (there's only one option ri)
rejectPastDates
if true, dates in the past will be immediately rejected rather than immediately resolved. The value they will be rejected with is the same value they would have been resolved with.promDate(date, value, "reject")
is shorthand for promDate(date, value, {rejectPastDates:true})
promDate.extend()
Date.prototype.promise(value, options)
promDate.setPromise(someLib)
promDate.setPromise(somePromiseLibrary)
, so long as that library provides a standard ES6-ish new Promise(function(resolve,reject){})
constructor.npm install prom-date
var promDate = require('prom-date');
var date = new Date(Date.now() + 60000);
promDate(date, 6).then(function(x) {
console.log("x contains "+x+" 60 seconds later");
});
With the date prototype helper:
require('prom-date').extend();
var date = new Date(Date.now() + 60000);
date.promise(7).then(function(x) {
console.log("x contains "+x+" 60 seconds later");
});
Rejecting past dates:
var promDate = require('prom-date');
var date = new Date(Date.now() - 1);
promDate(date, 7, 'reject').catch(function(x) {
// rejection! \o/
});
promDate(date, 7, {rejectPastDates:true}).catch(function(x) {
// rejection!
});
Replacing the promises implementation:
var bluebird = require('bluebird')
var promDate = require('prom-date');
promDate.setPromise(bluebird);
promDate(date, 7).then(function(x) {
console.log("bluebird-created my ", x);
})
Chainable for cuteness:
var promDate = require('prom-date').setPromise(require('any-promise')).extend();
(new Date()).promise(1).then( x => console.log("success!",x) );
promDate(new Date, 2).then( x => console.log("i still work too!",x) );
FAQs
Turns a Date object into a promise that resolves on that date
The npm package prom-date receives a total of 1 weekly downloads. As such, prom-date popularity was classified as not popular.
We found that prom-date 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.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.
Security News
Newly introduced telemetry in devenv 1.4 sparked a backlash over privacy concerns, leading to the removal of its AI-powered feature after strong community pushback.