Socket
Socket
Sign inDemoInstall

check-version-modules

Package Overview
Dependencies
1
Maintainers
1
Versions
22
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.0.0 to 2.1.0

219

bin/cmd.js
#!/usr/bin/env node
"use strict";
// deps
// natives
const { join } = require("node:path");
const { EOL } = require("node:os");
// natives
const { join } = require("node:path");
const { EOL } = require("node:os");
// externals
// externals
let colors = null;
try { // test require optional deps
colors = require("colors/safe");
}
catch (e) {
// nothing to do here
}
let colors = null;
try { // test require optional deps
colors = require("colors/safe");
}
catch (e) {
// nothing to do here
}
// locals
const colorizeFormattedTime = require(join(__dirname, "colorizeFormattedTime.js"));
const checker = require(join(__dirname, "..", "lib", "cjs", "main.cjs"));
const getFormatedTime = require(join(__dirname, "..", "lib", "cjs", "utils", "getFormatedTime.js"));
// locals
const colorizeFormattedTime = require(join(__dirname, "colorizeFormattedTime.js"));
const checker = require(join(__dirname, "..", "lib", "cjs", "main.cjs"));
const getFormatedTime = require(join(__dirname, "..", "lib", "cjs", "utils", "getFormatedTime.js"));
// consts
const ARGS = (0, process).argv.slice(2, (0, process).argv.length);
const ARGS = (0, process).argv.slice(2, (0, process).argv.length);

@@ -33,140 +32,140 @@ // module

const errors = [];
let file = "";
const options = {};
const errors = [];
let file = "";
const options = {};
ARGS.forEach((arg, i) => {
ARGS.forEach((arg, i) => {
if ("--" !== arg && arg.startsWith("--")) {
if ("--" !== arg && arg.startsWith("--")) {
switch (arg) {
switch (arg) {
case "--fail-at-major":
options.failAtMajor = true;
break;
case "--no-fail-at-major":
options.failAtMajor = false;
break;
case "--fail-at-major":
options.failAtMajor = true;
break;
case "--no-fail-at-major":
options.failAtMajor = false;
break;
case "--fail-at-minor":
options.failAtMinor = true;
break;
case "--no-fail-at-minor":
options.failAtMinor = false;
break;
case "--fail-at-minor":
options.failAtMinor = true;
break;
case "--no-fail-at-minor":
options.failAtMinor = false;
break;
case "--fail-at-patch":
options.failAtPatch = true;
break;
case "--no-fail-at-patch":
options.failAtPatch = false;
break;
case "--fail-at-patch":
options.failAtPatch = true;
break;
case "--no-fail-at-patch":
options.failAtPatch = false;
break;
case "--dev":
options.dev = true;
break;
case "--no-dev":
options.dev = false;
break;
case "--dev":
options.dev = true;
break;
case "--no-dev":
options.dev = false;
break;
case "--file":
case "--file":
if (i + 1 < ARGS.length) {
file = String(ARGS[i + 1]);
}
if (i + 1 < ARGS.length) {
file = String(ARGS[i + 1]);
}
break;
break;
default:
errors.push(new RangeError("Unknown \"" + String(arg) + "\" argument"));
break;
default:
errors.push(new RangeError("Unknown \"" + String(arg) + "\" argument"));
break;
}
}
}
}
});
});
if ("" === file) {
file = join((0, process).cwd(), "package.json");
}
if ("" === file) {
file = join((0, process).cwd(), "package.json");
}
(0, console).log(getFormatedTime.default(), file);
(0, console).log(getFormatedTime.default(), file);
return errors.length ?
Promise.reject(new Error(errors.join(EOL))) :
checker(file, options).then((analyse) => {
return errors.length
? Promise.reject(new Error(errors.join(EOL)))
: checker(file, options).then((analyse) => {
analyse.results.forEach((result) => {
analyse.results.forEach((result) => {
switch (result.result) {
switch (result.result) {
case "fail_major":
case "fail_major":
(0, console).error(
colorizeFormattedTime(result.time), result.path, "=>",
colors && colors.bgRed ? colors.bgRed(result.message) : result.message
);
(0, console).error(
colorizeFormattedTime(result.time), result.path, "=>",
colors && colors.bgRed ? colors.bgRed(result.message) : result.message
);
break;
break;
case "fail_minor":
case "fail_minor":
(0, console).error(
colorizeFormattedTime(result.time), result.path, "=>",
colors && colors.red ? colors.red(result.message) : result.message
);
(0, console).error(
colorizeFormattedTime(result.time), result.path, "=>",
colors && colors.red ? colors.red(result.message) : result.message
);
break;
break;
case "fail_patch":
case "warning":
case "fail_patch":
case "warning":
(0, console).warn(
colorizeFormattedTime(result.time), result.path, "=>",
colors && colors.yellow ? colors.yellow(result.message) : result.message
);
(0, console).warn(
colorizeFormattedTime(result.time), result.path, "=>",
colors && colors.yellow ? colors.yellow(result.message) : result.message
);
break;
break;
case "success":
case "success":
(0, console).log(
colorizeFormattedTime(result.time), result.path, "=>",
colors && colors.green ? colors.green(result.message) : result.message
);
(0, console).log(
colorizeFormattedTime(result.time), result.path, "=>",
colors && colors.green ? colors.green(result.message) : result.message
);
break;
break;
default:
(0, console).log(result.message);
break;
default:
(0, console).log(result.message);
break;
}
}
});
});
if (analyse.result) {
if (analyse.result) {
(0, process).exitCode = 0;
(0, process).exit(0);
(0, process).exitCode = 0;
(0, process).exit(0);
}
else {
}
else {
(0, process).exitCode = 2;
(0, process).exit(2);
(0, process).exitCode = 2;
(0, process).exit(2);
}
}
});
});
}).catch((err) => {
(0, console).log("");
(0, console).error(err.message ? err.message : err);
(0, console).log("");
(0, console).error(err.message ? err.message : err);
(0, process).exitCode = 1;
(0, process).exit(1);
(0, process).exitCode = 1;
(0, process).exit(1);
});

@@ -1,14 +0,12 @@

"use strict";
// deps
// externals
// externals
let colors = null;
try { // test require optional deps
colors = require("colors/safe");
}
catch (e) {
// nothing to do here
}
let colors = null;
try { // test require optional deps
colors = require("colors/safe");
}
catch (e) {
// nothing to do here
}

@@ -19,6 +17,6 @@ // module

return (colors && colors.white ? colors.white("[") : "[") +
(colors && colors.grey ? colors.grey(content) : content) +
(colors && colors.white ? colors.white("]") : "]");
return (colors && colors.white ? colors.white("[") : "[")
+ (colors && colors.grey ? colors.grey(content) : content)
+ (colors && colors.white ? colors.white("]") : "]");
};

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

import { type iAnalyze } from "./deps/checkDependenciesUpdates";
export interface iOptions {

@@ -7,3 +8,2 @@ "failAtMajor": boolean;

}
import { iAnalyze } from "./deps/checkDependenciesUpdates";
export default function checkVersionModule(file: string, opts?: iOptions): Promise<iAnalyze>;
"use strict";
// deps
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -6,3 +7,2 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

Object.defineProperty(exports, "__esModule", { value: true });
// deps
// locals

@@ -13,3 +13,2 @@ const extractAndFormateDeps_1 = __importDefault(require("./deps/extractAndFormateDeps"));

const checkAndFormateOptions_1 = __importDefault(require("./utils/checkAndFormateOptions"));
;
// module

@@ -34,2 +33,1 @@ function checkVersionModule(file, opts) {

exports.default = checkVersionModule;
;

@@ -1,3 +0,3 @@

import { iDep } from "./formateDeps";
import { iOptions } from "../checkVersionModule";
import type { iDep } from "./formateDeps";
import type { iOptions } from "../checkVersionModule";
export interface iResult extends iDep {

@@ -10,4 +10,4 @@ "time": string;

"result": boolean;
"results": Array<iResult>;
"results": iResult[];
}
export default function checkDependenciesUpdates(dependencies: Array<iDep>, options: iOptions): Promise<iAnalyze>;
export default function checkDependenciesUpdates(dependencies: iDep[], options: iOptions): Promise<iAnalyze>;
"use strict";
// deps
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -6,3 +7,2 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

Object.defineProperty(exports, "__esModule", { value: true });
// deps
// locals

@@ -14,4 +14,2 @@ const sortDeps_1 = __importDefault(require("./sortDeps"));

const checkAndFormateVersion_1 = __importDefault(require("../version/checkAndFormateVersion"));
;
;
// module

@@ -41,31 +39,29 @@ function checkDependenciesUpdates(dependencies, options) {

let failed = false;
return Promise.resolve().then(() => {
if (!failed && "x" !== currentVersions[0] && latestVersions[0] > currentVersions[0]) {
failed = true;
if (options.failAtMajor) {
valid = false;
}
results.push(Object.assign(Object.assign({}, dependency), { "time": (0, getFormatedTime_1.default)(), "result": "fail_major", "message": dependency.version + " < " + latest }));
if ("x" !== currentVersions[0] && latestVersions[0] > currentVersions[0]) {
failed = true;
if (options.failAtMajor) {
valid = false;
}
}).then(() => {
if (!failed && "x" !== currentVersions[1] && latestVersions[1] > currentVersions[1]) {
failed = true;
if (options.failAtMinor) {
valid = false;
}
results.push(Object.assign(Object.assign({}, dependency), { "time": (0, getFormatedTime_1.default)(), "result": "fail_minor", "message": dependency.version + " < " + latest }));
results.push(Object.assign(Object.assign({}, dependency), { "time": (0, getFormatedTime_1.default)(), "result": "fail_major", "message": dependency.version + " < " + latest }));
}
if (!failed && "x" !== currentVersions[1] && latestVersions[1] > currentVersions[1]) {
failed = true;
if (options.failAtMinor) {
valid = false;
}
}).then(() => {
if (!failed && "x" !== currentVersions[2] && latestVersions[2] > currentVersions[2]) {
failed = true;
if (options.failAtPatch) {
valid = false;
}
results.push(Object.assign(Object.assign({}, dependency), { "time": (0, getFormatedTime_1.default)(), "result": "fail_patch", "message": dependency.version + " < " + latest }));
results.push(Object.assign(Object.assign({}, dependency), { "time": (0, getFormatedTime_1.default)(), "result": "fail_minor", "message": dependency.version + " < " + latest }));
}
if (!failed && "x" !== currentVersions[2] && latestVersions[2] > currentVersions[2]) {
failed = true;
if (options.failAtPatch) {
valid = false;
}
}).then(() => {
if (!failed) {
results.push(Object.assign(Object.assign({}, dependency), { "time": (0, getFormatedTime_1.default)(), "result": "success", "message": "Ok" }));
}
});
results.push(Object.assign(Object.assign({}, dependency), { "time": (0, getFormatedTime_1.default)(), "result": "fail_patch", "message": dependency.version + " < " + latest }));
}
if (!failed) {
results.push(Object.assign(Object.assign({}, dependency), { "time": (0, getFormatedTime_1.default)(), "result": "success", "message": "Ok" }));
}
}).catch((err) => {
results.push(Object.assign(Object.assign({}, dependency), { "time": (0, getFormatedTime_1.default)(), "result": "warning", "message": err.message }));
return Promise.resolve();
});

@@ -85,2 +81,1 @@ });

exports.default = checkDependenciesUpdates;
;
"use strict";
// deps
Object.defineProperty(exports, "__esModule", { value: true });
// deps
// natives
const node_https_1 = require("node:https");
;
// private

@@ -14,4 +13,4 @@ // attributes

return m.name === packageName;
})[0] || null;
return searchedModule ? Promise.resolve(searchedModule.latestVersion) : new Promise((resolve, reject) => {
}).shift();
return "undefined" !== typeof searchedModule ? Promise.resolve(searchedModule.latestVersion) : new Promise((resolve, reject) => {
(0, node_https_1.get)("https://registry.npmjs.org/" + packageName, (res) => {

@@ -25,5 +24,5 @@ if (200 !== res.statusCode) {

let rawData = "";
res.on("data", function requestData(chunk) {
res.on("data", (chunk) => {
rawData += chunk;
}).on("end", function requestEnd() {
}).on("end", () => {
resolve(rawData);

@@ -34,9 +33,10 @@ });

}).then((data) => {
return "" === data.trim() ?
Promise.reject(new Error("\"" + packageName + "\" registry does not return data")) :
Promise.resolve(JSON.parse(data));
return "" === data.trim()
? Promise.reject(new Error("\"" + packageName + "\" registry does not return data"))
: Promise.resolve(JSON.parse(data));
}).then((data) => {
return !data["dist-tags"] || !data["dist-tags"].latest ?
Promise.reject(new Error("\"" + packageName + "\" registry does not return latest version")) :
Promise.resolve(data["dist-tags"].latest);
const distTags = data["dist-tags"];
return "string" !== typeof (distTags === null || distTags === void 0 ? void 0 : distTags.latest)
? Promise.reject(new Error("\"" + packageName + "\" registry does not return latest version"))
: Promise.resolve(distTags.latest);
}).then((latestVersion) => {

@@ -51,2 +51,1 @@ _alreadyDownloaded.push({

exports.default = downloadPackageData;
;

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

import { iDep } from "./formateDeps";
export default function extractAndFormateDeps(file: string, dev: boolean): Promise<Array<iDep>>;
import { type iDep } from "./formateDeps";
export default function extractAndFormateDeps(file: string, dev: boolean): Promise<iDep[]>;
"use strict";
// deps
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -6,3 +7,2 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

Object.defineProperty(exports, "__esModule", { value: true });
// deps
// natives

@@ -24,2 +24,1 @@ const promises_1 = require("node:fs/promises");

exports.default = extractAndFormateDeps;
;

@@ -7,4 +7,2 @@ export interface iDep {

}
export default function formateDeps(packageData: {
[key: string]: any;
}, dev: boolean): Array<iDep>;
export default function formateDeps(packageData: Record<string, any>, dev: boolean): iDep[];
"use strict";
// types & interfaces
Object.defineProperty(exports, "__esModule", { value: true });
;
// module

@@ -15,3 +15,3 @@ function formateDeps(packageData, dev) {

});
if (dev && packageData.devDependencies) {
if (dev && "object" === typeof packageData.devDependencies) {
const packageDevDependencies = packageData.devDependencies;

@@ -30,2 +30,1 @@ result = result.concat(Object.keys(packageDevDependencies).map((dependency) => {

exports.default = formateDeps;
;

@@ -1,3 +0,3 @@

import { iDep } from "./formateDeps";
import { iResult } from "./checkDependenciesUpdates";
import type { iDep } from "./formateDeps";
import type { iResult } from "./checkDependenciesUpdates";
export default function sortDeps(dependencies: Array<iDep | iResult>): Array<iDep | iResult>;
"use strict";
// types & interfaces
Object.defineProperty(exports, "__esModule", { value: true });

@@ -24,2 +25,1 @@ // module

exports.default = sortDeps;
;

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

import { iOptions } from "../checkVersionModule";
import type { iOptions } from "../checkVersionModule";
export default function checkAndFormateOptions(options?: iOptions): Promise<iOptions>;
"use strict";
// deps
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -6,3 +7,2 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

Object.defineProperty(exports, "__esModule", { value: true });
// deps
// locals

@@ -37,2 +37,1 @@ const checkBoolean_1 = __importDefault(require("./checkBoolean"));

exports.default = checkAndFormateOptions;
;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
// module
function checkBoolean(data) {

@@ -16,2 +15,1 @@ if ("undefined" === typeof data) {

exports.default = checkBoolean;
;
"use strict";
// deps
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -6,3 +7,2 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

Object.defineProperty(exports, "__esModule", { value: true });
// deps
// natives

@@ -23,2 +23,1 @@ const node_fs_1 = require("node:fs");

exports.default = checkFile;
;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
// module
function checkNonEmptyString(data) {

@@ -19,2 +18,1 @@ if ("undefined" === typeof data) {

exports.default = checkNonEmptyString;
;

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

export default function checkNonNullPureObject(data: object): Promise<void>;
export default function checkNonNullPureObject(data: object | null): Promise<void>;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
// module
function checkNonNullPureObject(data) {

@@ -22,2 +21,1 @@ if ("undefined" === typeof data) {

exports.default = checkNonNullPureObject;
;
"use strict";
// deps
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -6,3 +7,2 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

Object.defineProperty(exports, "__esModule", { value: true });
// deps
// locals

@@ -13,7 +13,6 @@ const padleft_1 = __importDefault(require("./padleft"));

const date = new Date();
return (0, padleft_1.default)(date.getHours()) + ":" +
(0, padleft_1.default)(date.getMinutes()) + ":" +
(0, padleft_1.default)(date.getSeconds());
return (0, padleft_1.default)(date.getHours()) + ":"
+ (0, padleft_1.default)(date.getMinutes()) + ":"
+ (0, padleft_1.default)(date.getSeconds());
}
exports.default = getFormatedTime;
;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
// module
function padleft(msg) {

@@ -13,2 +12,1 @@ if ("string" === typeof msg) {

exports.default = padleft;
;
"use strict";
// deps
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -6,3 +7,2 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

Object.defineProperty(exports, "__esModule", { value: true });
// deps
// locals

@@ -18,2 +18,1 @@ const checkVersionValidity_1 = __importDefault(require("./checkVersionValidity"));

exports.default = checkAndFormateVersion;
;
"use strict";
// deps
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -6,3 +7,2 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

Object.defineProperty(exports, "__esModule", { value: true });
// deps
// externals

@@ -25,2 +25,1 @@ const checkNonEmptyString_1 = __importDefault(require("../utils/checkNonEmptyString"));

exports.default = checkVersionValidity;
;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
// module
function formateVersion(_version) {

@@ -45,2 +44,1 @@ const version = _version.trim().toLowerCase().replace(/\*/gm, "x");

exports.default = formateVersion;
;
{
"name": "check-version-modules",
"version": "2.0.0",
"version": "2.1.0",
"description": "Check modules's version for the package.",

@@ -23,11 +23,13 @@

"build": "node ./removeOldBuild.js && npx tsc --project \"./tsconfig.json\"",
"prepare": "npx husky",
"lint": "npx eslint ./bin/*.js ./test/**/*.js",
"clean": "npx rimraf lib",
"build": "npm run-script clean && npx tsc --project \"./tsconfig.json\"",
"lint": "npx eslint --config .eslintrc-src.js --ext .cts,.ts ./src/**/* && npx eslint --config .eslintrc-tests.js ./bin/*.js ./test/**/*.js",
"check-requires": "npx used-deps-analyzer \"./package.json\" \"./src\" --no-dev --overkill \"fs-extra\" \"node-promfs\" --misscalled \"{ \"\"module\"\": \"\"colors\"\", \"\"call\"\": \"\"colors/safe\"\" }\"",
"check-updates": "node ./bin/cmd.js",
"unit-tests": "npx nyc --reporter=html --reporter=text mocha",
"unit-tests": "npm run build && npx nyc --reporter=html --reporter=text mocha",
"tests": "npm run-script lint && npm run check-requires && npm run-script build && npm run-script check-updates && npm run-script unit-tests",
"ci": "npm run-script tests && npx nyc report --reporter=text-lcov | coveralls"
"tests": "npm run-script lint && npm run check-requires && npm run-script check-updates && npm run-script unit-tests"

@@ -42,3 +44,4 @@ },

"/bin",
"/lib"
"/lib",
"/public"
],

@@ -51,9 +54,9 @@ "engines": {

"devDependencies": {
"@types/node": "20.6.0",
"coveralls": "3.1.1",
"eslint": "8.49.0",
"husky": "8.0.3",
"mocha": "10.2.0",
"@types/node": "20.11.19",
"eslint-plugin-personnallinter": "git+ssh://git@github.com/Psychopoulet/eslint-plugin-personnallinter",
"husky": "9.0.11",
"mocha": "10.3.0",
"nyc": "15.1.0",
"typescript": "5.2.2",
"rimraf": "5.0.5",
"typescript": "5.3.3",
"used-deps-analyzer": "0.1.8"

@@ -67,4 +70,5 @@ },

"hooks": {
"pre-commit": "npm run-script lint",
"pre-push": "npm run-script tests"
"pre-commit": "npm run-script lint",
"pre-push": "npm run-script unit-tests",
"pre-receive": "npm run-script tests"
}

@@ -71,0 +75,0 @@ },

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc