New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

package-age

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

package-age - npm Package Compare versions

Comparing version 0.3.0 to 0.4.0

cli.js

96

index.js

@@ -1,94 +0,4 @@

#!/usr/bin/env node
import config from './lib/config.js';
import * as dependencies from './lib/dependencies.js';
const chalk = require('chalk');
const Table = require('cli-table3');
const commander = require('commander');
const dates = require('./lib/dates');
const dependencies = require('./lib/dependencies');
const versions = require('./lib/versions');
const config = {
version: require('./package.json').version,
registry: 'https://registry.npmjs.org',
file: 'package.json',
year: 2,
month: 0,
dependencies: {}
};
const SHORT = {
devDependencies: chalk.blue.bold('dev'),
peerDependencies: chalk.magenta.bold('peer'),
bundledDependencies: chalk.cyan.bold('bundled'),
};
const table = new Table({
head: [
chalk.keyword('orange').underline('Name'),
chalk.keyword('orange').underline('Type'),
chalk.keyword('orange').underline('Version'),
chalk.keyword('orange').underline('Last Publish')
]
});
commander
.version(config.version, '-v, --version')
.description('A CLI for detecting old dependencies used in your project')
.option('-f, --file [optional]', 'path to the package.json', 'package.json')
.option('-y, --year [optional]', 'after how much years a package should be considered old', 2)
.option('-m, --month [optional]', 'after how much months a package should be considered old', 0)
.option('-a, --all', 'parameter to get all kinds of dependencies', false)
.option('-d, --dev', 'parameter to get the devDependencies', false)
.option('-p, --peer', 'parameter to get the peerDependencies', false)
.option('-b, --bundled', 'parameter to get the bundledDependencies', false)
.parse(process.argv);
async function cli() {
const results = await dependencies.get(Object.assign(config, {
file: commander.file,
year: commander.year,
month: commander.month,
dependencies: {
all: commander.all,
dev: commander.dev,
peer: commander.peer,
bundled: commander.bundled
}
}));
// Print the results to the console
Object.entries(results).forEach(([key, dependencies]) => {
dependencies.forEach(dependency => {
let version;
let date;
if (dependency.valid) {
version = versions.compare(dependency.version, dependency.latest);
date = dates.compare(dependency.date, config.year, config.month);
} else {
version = chalk.bgRed.bold(`supplied invalid version: '${version}'`);
date = null;
}
table.push([
dependency.name,
SHORT[key] || null,
version,
date
]);
});
});
console.log(table.toString()); // eslint-disable-line no-console
}
if (require.main === module) {
cli();
} else {
module.exports = options => dependencies.get(Object.assign(config, options));
}
export default options => dependencies.get(Object.assign({}, config, options));

@@ -1,2 +0,2 @@

const chalk = require('chalk');
import chalk from 'chalk';

@@ -7,3 +7,3 @@ /* Compares a given date (usually the date when

a year and a month after which a package is considered old */
function compare(date, year, month) {
export function compare(date, year, month) {
const x = new Date();

@@ -22,5 +22,1 @@ x.setFullYear(x.getFullYear() - year);

}
module.exports = {
compare
};

@@ -1,27 +0,27 @@

const chalk = require('chalk');
const readPkg = require('read-pkg');
import chalk from 'chalk';
import { readPackage } from 'read-pkg';
const info = require('./information');
const versions = require('./versions');
import info from './information.js';
import * as versions from './versions.js';
function get(config) {
return readPkg(config.file).then(async pkg => {
const result = {};
// Always read the normal dependencies if they are available
if (pkg.dependencies) {
result.dependencies = await packages(config, pkg.dependencies);
}
export async function get(config) {
const pkg = await readPackage(config.file);
const result = {};
if (pkg.devDependencies && (config.dependencies.dev || config.dependencies.all)) {
result.devDependencies = await packages(config, pkg.devDependencies);
}
if (pkg.peerDependencies && (config.dependencies.peer || config.dependencies.all)) {
result.peerDependencies = await packages(config, pkg.peerDependencies);
}
if (pkg.bundledDependencies && (config.dependencies.bundled || config.dependencies.all)) {
result.bundledDependencies = await packages(config, pkg.bundledDependencies);
}
// Always read the normal dependencies if they are available
if (pkg.dependencies) {
result.dependencies = await packages(config, pkg.dependencies);
}
return result;
});
if (pkg.devDependencies && (config.dependencies.dev || config.dependencies.all)) {
result.devDependencies = await packages(config, pkg.devDependencies);
}
if (pkg.peerDependencies && (config.dependencies.peer || config.dependencies.all)) {
result.peerDependencies = await packages(config, pkg.peerDependencies);
}
if (pkg.bundledDependencies && (config.dependencies.bundled || config.dependencies.all)) {
result.bundledDependencies = await packages(config, pkg.bundledDependencies);
}
return result;
}

@@ -52,5 +52,1 @@

}
module.exports = {
get
};

@@ -1,5 +0,5 @@

const request = require('./request');
const versions = require('./versions');
import request from './request.js';
import * as versions from './versions.js';
module.exports = (config, name, version) => {
export default (config, name, version) => {
return request(`${config.registry}/${name}`).then(body => {

@@ -6,0 +6,0 @@ const valid = versions.valid(version);

/* eslint-disable consistent-return */
const https = require('https');
import https from 'https';
module.exports = url => {
export default url => {
return new Promise((resolve, reject) => {

@@ -6,0 +6,0 @@ if (typeof url === 'undefined') {

@@ -1,5 +0,5 @@

const chalk = require('chalk');
const semver = require('semver');
import chalk from 'chalk';
import semver from 'semver';
function compare(v, l) {
export function compare(v, l) {
const compare = semver.compare(v, l);

@@ -13,3 +13,3 @@ if (compare === -1) {

function clean(v) {
export function clean(v) {
// TODO: maybe some more methods or even an external library are needed here

@@ -22,10 +22,4 @@ v = v.trim();

function valid(v) {
export function valid(v) {
return semver.valid(v) !== null;
}
module.exports = {
compare,
clean,
valid
};
{
"name": "package-age",
"version": "0.3.0",
"version": "0.4.0",
"description": "A CLI for detecting old dependencies used in your project",
"main": "index.js",
"type": "module",
"exports": "./index.js",
"bin": {
"package-age": "./index.js"
"package-age": "./cli.js"
},
"files": [
"lib/"
"lib/",
"cli.js",
"index.js"
],
"scripts": {
"lint": "eslint **/*.js",
"mocha": "npx nyc mocha",
"mocha": "c8 mocha",
"test": "npm run lint && npm run mocha",
"coverage": "nyc report --reporter=text-lcov | coveralls"
"coverage": "c8 report --reporter=text-lcov | coveralls"
},
"dependencies": {
"chalk": "^4.1.0",
"chalk": "^4.1.2",
"cli-table3": "^0.6.0",
"commander": "^6.0.0",
"read-pkg": "^5.2.0",
"semver": "^7.3.2"
"commander": "^8.1.0",
"read-pkg": "^7.0.0",
"semver": "^7.3.5"
},
"devDependencies": {
"chai": "^4.2.0",
"coveralls": "^3.1.0",
"eslint": "^7.6.0",
"mocha": "^8.1.1",
"mocha-lcov-reporter": "^1.3.0",
"nyc": "^15.1.0"
"c8": "^7.8.0",
"chai": "^4.3.4",
"coveralls": "^3.1.1",
"eslint": "^7.32.0",
"mocha": "^9.1.1",
"mocha-lcov-reporter": "^1.3.0"
},

@@ -33,0 +36,0 @@ "repository": {

@@ -1,2 +0,2 @@

# package-age [![travis](https://travis-ci.com/ENT8R/package-age.svg?branch=master)](https://travis-ci.com/ENT8R/package-age) [![dependencies](https://david-dm.org/ent8r/package-age/status.svg)](https://david-dm.org/ent8r/package-age) [![npm](https://img.shields.io/npm/v/package-age.svg)](https://www.npmjs.com/package/package-age) [![coverage](https://coveralls.io/repos/github/ENT8R/package-age/badge.svg?branch=master)](https://coveralls.io/github/ENT8R/package-age?branch=master)
# package-age [![travis](https://travis-ci.com/ENT8R/package-age.svg?branch=main)](https://travis-ci.com/ENT8R/package-age) [![dependencies](https://david-dm.org/ent8r/package-age/status.svg)](https://david-dm.org/ent8r/package-age) [![npm](https://img.shields.io/npm/v/package-age.svg)](https://www.npmjs.com/package/package-age) [![coverage](https://coveralls.io/repos/github/ENT8R/package-age/badge.svg?branch=main)](https://coveralls.io/github/ENT8R/package-age?branch=main)

@@ -14,3 +14,3 @@

<img src="carbon.png">
<img src="assets/carbon.png">

@@ -17,0 +17,0 @@ ## License

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc