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

syncpack

Package Overview
Dependencies
Maintainers
1
Versions
92
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

syncpack - npm Package Compare versions

Comparing version 8.4.11 to 8.5.14

dist/bin-fix-mismatches/fix-mismatches-cli.d.ts

5

dist/bin-fix-mismatches/fix-mismatches.d.ts

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

import type { Disk } from '../lib/disk';
import type { ProgramInput } from '../lib/get-input';
export declare function fixMismatches(input: ProgramInput, disk: Disk): void;
import type { Context } from '../lib/get-context';
export declare function fixMismatches(ctx: Context): Context;

77

dist/bin-fix-mismatches/fix-mismatches.js
"use strict";
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
return cooked;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
exports.__esModule = true;
exports.fixMismatches = void 0;
var chalk_1 = __importDefault(require("chalk"));
var expect_more_1 = require("expect-more");
var list_version_groups_1 = require("../bin-list/list-version-groups");
var write_if_changed_1 = require("../lib/write-if-changed");
var get_expected_version_1 = require("./get-expected-version");
function fixMismatches(input, disk) {
/**
* Reverse the list so the default/ungrouped version group is rendered first
* (appears at the top). The actual version groups which the user configured
* will then start from index 1.
*/
input.instances.versionGroups.reverse().forEach(function (versionGroup, i) {
var isVersionGroup = i > 0;
var groups = (0, list_version_groups_1.listVersionGroups)(versionGroup);
if (isVersionGroup) {
console.log((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["{dim = Version Group ", " ", "}"], ["{dim = Version Group ", " ", "}"])), i, '='.repeat(63)));
}
groups.forEach(function (_a) {
var hasMismatches = _a.hasMismatches, instances = _a.instances, isIgnored = _a.isIgnored, name = _a.name;
if (hasMismatches && !isIgnored) {
var nextVersion_1 = (0, get_expected_version_1.getExpectedVersion)(name, versionGroup, input);
instances.forEach(function (_a) {
var dependencyType = _a.dependencyType, version = _a.version, wrapper = _a.wrapper;
var root = wrapper.contents;
if (version !== nextVersion_1) {
if (dependencyType === 'pnpmOverrides') {
root.pnpm.overrides[name] = nextVersion_1;
}
else {
root[dependencyType][name] = nextVersion_1;
}
}
});
}
function fixMismatches(ctx) {
ctx.versionGroups.reverse().forEach(function (versionGroup) {
var invalidGroups = versionGroup.getInvalidInstanceGroups();
// Nothing to do if there are no mismatches
if (invalidGroups.length === 0)
return;
// Set the correct version on each instance.
invalidGroups.forEach(function (instanceGroup) {
var nextVersion = instanceGroup.getExpectedVersion();
instanceGroup.instances.forEach(function (instance) {
return instance.setVersion(nextVersion);
});
});
});
input.wrappers.forEach(function (wrapper) {
removeEmptyIndexes(wrapper);
(0, write_if_changed_1.writeIfChanged)(disk, {
contents: wrapper.contents,
filePath: wrapper.filePath,
indent: input.indent,
json: wrapper.json
});
});
/**
* Remove eg `{"dependencies": {}, "devDependencies": {}}`
*/
function removeEmptyIndexes(wrapper) {
input.dependencyTypes.forEach(function (dependencyType) {
var deps = wrapper.contents[dependencyType];
/** Remove eg `{"dependencies": {}, "devDependencies": {}}` */
ctx.packageJsonFiles.forEach(function (packageJsonFile) {
ctx.dependencyTypes.forEach(function (dependencyType) {
var deps = packageJsonFile.contents[dependencyType];
if (deps && Object.values(deps).every(expect_more_1.isUndefined)) {
delete wrapper.contents[dependencyType];
delete packageJsonFile.contents[dependencyType];
}
});
}
});
return ctx;
}
exports.fixMismatches = fixMismatches;
var templateObject_1;

@@ -40,5 +40,4 @@ #!/usr/bin/env node

var disk_1 = require("../lib/disk");
var get_input_1 = require("../lib/get-input");
var option_1 = require("../option");
var fix_mismatches_1 = require("./fix-mismatches");
var fix_mismatches_cli_1 = require("./fix-mismatches-cli");
commander_1.program.description((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n Ensure that multiple packages requiring the same dependency define the same\n version, so that every package requires eg. {yellow react@16.4.2}, instead of a\n combination of {yellow react@16.4.2}, {yellow react@0.15.9}, and {yellow react@16.0.0}."], ["\n Ensure that multiple packages requiring the same dependency define the same\n version, so that every package requires eg. {yellow react@16.4.2}, instead of a\n combination of {yellow react@16.4.2}, {yellow react@0.15.9}, and {yellow react@16.0.0}."]))).replace(/^\n/, ''));

@@ -59,3 +58,3 @@ commander_1.program.on('--help', function () {

.option.apply(_a, __spreadArray([], __read(option_1.option.indent), false)).parse(process.argv);
(0, fix_mismatches_1.fixMismatches)((0, get_input_1.getInput)(disk_1.disk, {
(0, fix_mismatches_cli_1.fixMismatchesCli)({
configPath: commander_1.program.opts().config,

@@ -72,3 +71,3 @@ dev: commander_1.program.opts().dev,

workspace: commander_1.program.opts().workspace
}), disk_1.disk);
}, disk_1.disk);
var templateObject_1, templateObject_2;

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

import type { Disk } from '../lib/disk';
import type { ProgramInput } from '../lib/get-input';
export declare function format(input: ProgramInput, disk: Disk): void;
import type { Context } from '../lib/get-context';
export declare function format(ctx: Context): Context;

@@ -5,14 +5,13 @@ "use strict";

var expect_more_1 = require("expect-more");
var write_if_changed_1 = require("../lib/write-if-changed");
function format(input, disk) {
var indent = input.indent, sortAz = input.sortAz, sortFirst = input.sortFirst, wrappers = input.wrappers;
wrappers.forEach(function (_a) {
var _b, _c, _d;
var contents = _a.contents, filePath = _a.filePath, json = _a.json;
function format(ctx) {
var sortAz = ctx.sortAz, sortFirst = ctx.sortFirst, packageJsonFiles = ctx.packageJsonFiles;
packageJsonFiles.forEach(function (packageJsonFile) {
var _a, _b, _c;
var contents = packageJsonFile.contents;
var sortedKeys = Object.keys(contents).sort();
var keys = new Set(sortFirst.concat(sortedKeys));
var optionalChaining = contents;
var bugsUrl = (_b = optionalChaining === null || optionalChaining === void 0 ? void 0 : optionalChaining.bugs) === null || _b === void 0 ? void 0 : _b.url;
var repoUrl = (_c = optionalChaining === null || optionalChaining === void 0 ? void 0 : optionalChaining.repository) === null || _c === void 0 ? void 0 : _c.url;
var repoDir = (_d = optionalChaining === null || optionalChaining === void 0 ? void 0 : optionalChaining.repository) === null || _d === void 0 ? void 0 : _d.directory;
var bugsUrl = (_a = optionalChaining === null || optionalChaining === void 0 ? void 0 : optionalChaining.bugs) === null || _a === void 0 ? void 0 : _a.url;
var repoUrl = (_b = optionalChaining === null || optionalChaining === void 0 ? void 0 : optionalChaining.repository) === null || _b === void 0 ? void 0 : _b.url;
var repoDir = (_c = optionalChaining === null || optionalChaining === void 0 ? void 0 : optionalChaining.repository) === null || _c === void 0 ? void 0 : _c.directory;
if (bugsUrl) {

@@ -28,4 +27,4 @@ contents.bugs = bugsUrl;

sortObject(keys, contents);
(0, write_if_changed_1.writeIfChanged)(disk, { contents: contents, filePath: filePath, indent: indent, json: json });
});
return ctx;
function sortObject(sortedKeys, obj) {

@@ -42,3 +41,3 @@ sortedKeys.forEach(function (key) {

}
else if (value && typeof value === 'object') {
else if ((0, expect_more_1.isObject)(value)) {
sortObject(Object.keys(value).sort(), value);

@@ -45,0 +44,0 @@ }

@@ -40,5 +40,4 @@ #!/usr/bin/env node

var disk_1 = require("../lib/disk");
var get_input_1 = require("../lib/get-input");
var option_1 = require("../option");
var format_1 = require("./format");
var format_cli_1 = require("./format-cli");
commander_1.program.description((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n Organise package.json files according to a conventional format, where fields\n appear in a predictable order and nested fields are ordered alphabetically.\n Shorthand properties are used where available, such as the {yellow repository} and\n {yellow bugs} fields."], ["\n Organise package.json files according to a conventional format, where fields\n appear in a predictable order and nested fields are ordered alphabetically.\n Shorthand properties are used where available, such as the {yellow repository} and\n {yellow bugs} fields."]))).replace(/^\n/, ''));

@@ -52,7 +51,7 @@ commander_1.program.on('--help', function () {

.option.apply(_a, __spreadArray([], __read(option_1.option.indent), false)).parse(process.argv);
(0, format_1.format)((0, get_input_1.getInput)(disk_1.disk, {
(0, format_cli_1.formatCli)({
configPath: commander_1.program.opts().config,
indent: commander_1.program.opts().indent,
source: commander_1.program.opts().source
}), disk_1.disk);
}, disk_1.disk);
var templateObject_1, templateObject_2;

@@ -40,5 +40,4 @@ #!/usr/bin/env node

var disk_1 = require("../lib/disk");
var get_input_1 = require("../lib/get-input");
var option_1 = require("../option");
var lint_semver_ranges_1 = require("./lint-semver-ranges");
var lint_semver_ranges_cli_1 = require("./lint-semver-ranges-cli");
commander_1.program.description((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n Check dependency versions within {yellow dependencies}, {yellow devDependencies},\n {yellow peerDependencies}, {yellow overrides}, and {yellow resolutions} follow a consistent format."], ["\n Check dependency versions within {yellow dependencies}, {yellow devDependencies},\n {yellow peerDependencies}, {yellow overrides}, and {yellow resolutions} follow a consistent format."]))).replace(/^\n/, ''));

@@ -59,3 +58,3 @@ commander_1.program.on('--help', function () {

.option.apply(_a, __spreadArray([], __read(option_1.option.workspace), false)).parse(process.argv);
(0, lint_semver_ranges_1.lintSemverRanges)((0, get_input_1.getInput)(disk_1.disk, {
(0, lint_semver_ranges_cli_1.lintSemverRangesCli)({
configPath: commander_1.program.opts().config,

@@ -72,3 +71,3 @@ dev: commander_1.program.opts().dev,

workspace: commander_1.program.opts().workspace
}), disk_1.disk);
}, disk_1.disk);
var templateObject_1, templateObject_2;

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

import type { Disk } from '../lib/disk';
import type { ProgramInput } from '../lib/get-input';
export declare function lintSemverRanges(input: ProgramInput, disk: Disk): void;
import type { Context } from '../lib/get-context';
export declare function lintSemverRanges(ctx: Context): Context;

@@ -6,2 +6,41 @@ "use strict";

};
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -13,33 +52,40 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

var chalk_1 = __importDefault(require("chalk"));
var is_semver_1 = require("../lib/is-semver");
var constants_1 = require("../constants");
var log = __importStar(require("../lib/log"));
var set_semver_range_1 = require("../lib/set-semver-range");
var list_semver_group_mismatches_1 = require("./list-semver-group-mismatches");
function lintSemverRanges(input, disk) {
var isInvalid = false;
/**
* Reverse the list so the default/ungrouped semver group is rendered first
* (appears at the top). The actual semver groups which the user configured
* will then start from index 1.
*/
input.instances.semverGroups.reverse().forEach(function (semverGroup, i) {
if ('range' in semverGroup && (0, is_semver_1.isValidSemverRange)(semverGroup.range)) {
var isSemverGroup = i > 0;
var mismatches = (0, list_semver_group_mismatches_1.listSemverGroupMismatches)(semverGroup);
if (isSemverGroup && mismatches.length > 0) {
console.log((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["{dim = Semver Group ", " ", "}"], ["{dim = Semver Group ", " ", "}"])), i, '='.repeat(63)));
}
mismatches.forEach(function (_a) {
var dependencyType = _a.dependencyType, name = _a.name, version = _a.version, wrapper = _a.wrapper;
console.log((0, chalk_1["default"])(templateObject_2 || (templateObject_2 = __makeTemplateObject(["{red \u2715 ", "} {red.dim ", " in ", " of ", " should be ", "}"], ["{red \u2715 ", "} {red.dim ", " in ", " of ", " should be ", "}"])), name, version, dependencyType, wrapper.contents.name, (0, set_semver_range_1.setSemverRange)(semverGroup.range, version)));
function lintSemverRanges(ctx) {
ctx.semverGroups.reverse().forEach(function (semverGroup, i) {
Object.entries(semverGroup.instancesByName).forEach(function (_a) {
var _b = __read(_a, 2), name = _b[0], instances = _b[1];
var range = semverGroup.range;
var hasMismatches = instances.some(function (obj) { return !obj.hasRange(range); });
// Nothing to do if there are no mismatches
if (!hasMismatches)
return;
// Annotate user-defined version groups
if (!semverGroup.isDefault)
log.semverGroupHeader(i);
// Record that this project has mismatches, so that eg. the CLI can exit
// with the correct status code.
ctx.isInvalid = true;
// Log the dependency name
log.invalid(name);
// Log each of the dependencies mismatches
instances.forEach(function (instance) {
if (!instance.hasRange(range)) {
logSemverRangeMismatch(instance, semverGroup);
}
});
if (mismatches.length > 0) {
isInvalid = true;
}
}
});
});
if (isInvalid) {
disk.process.exit(1);
}
return ctx;
}
exports.lintSemverRanges = lintSemverRanges;
var templateObject_1, templateObject_2;
function logSemverRangeMismatch(instance, semverGroup) {
var type = instance.dependencyType;
var shortPath = instance.packageJsonFile.shortPath;
var actual = instance.version;
var expected = (0, set_semver_range_1.setSemverRange)(semverGroup.range, actual);
console.log((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject([" {red ", "} ", " {green ", "} {dim in ", " of ", "}"], [" {red ", "} ", " {green ", "} {dim in ", " of ", "}"])), actual, constants_1.ICON.rightArrow, expected, type, shortPath));
}
var templateObject_1;

@@ -40,5 +40,4 @@ #!/usr/bin/env node

var disk_1 = require("../lib/disk");
var get_input_1 = require("../lib/get-input");
var option_1 = require("../option");
var list_mismatches_1 = require("./list-mismatches");
var list_mismatches_cli_1 = require("./list-mismatches-cli");
commander_1.program.description("\n List dependencies which are required by multiple packages, where the version\n is not the same across every package.".replace(/^\n/, ''));

@@ -58,3 +57,3 @@ commander_1.program.on('--help', function () {

.option.apply(_a, __spreadArray([], __read(option_1.option.workspace), false)).parse(process.argv);
(0, list_mismatches_1.listMismatches)((0, get_input_1.getInput)(disk_1.disk, {
(0, list_mismatches_cli_1.listMismatchesCli)({
configPath: commander_1.program.opts().config,

@@ -70,3 +69,3 @@ dev: commander_1.program.opts().dev,

workspace: commander_1.program.opts().workspace
}), disk_1.disk);
}, disk_1.disk);
var templateObject_1;

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

import type { Disk } from '../lib/disk';
import type { ProgramInput } from '../lib/get-input';
export declare function listMismatches(input: ProgramInput, disk: Disk): void;
import type { Context } from '../lib/get-context';
export declare function listMismatches(ctx: Context): Context;

@@ -6,12 +6,24 @@ "use strict";

};
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};

@@ -24,76 +36,66 @@ var __importDefault = (this && this.__importDefault) || function (mod) {

var chalk_1 = __importDefault(require("chalk"));
var path_1 = require("path");
var get_expected_version_1 = require("../bin-fix-mismatches/get-expected-version");
var list_version_groups_1 = require("../bin-list/list-version-groups");
var constants_1 = require("../constants");
function listMismatches(input, disk) {
var isInvalid = false;
/**
* Reverse the list so the default/ungrouped version group is rendered first
* (appears at the top). The actual version groups which the user configured
* will then start from index 1.
*/
input.instances.versionGroups.reverse().forEach(function (versionGroup, i) {
var isVersionGroup = i > 0;
var groups = (0, list_version_groups_1.listVersionGroups)(versionGroup).filter(function (group) { return !group.isIgnored && group.hasMismatches; });
if (groups.length > 0) {
isInvalid = true;
if (isVersionGroup) {
console.log((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["{dim = Version Group ", " ", "}"], ["{dim = Version Group ", " ", "}"])), i, '='.repeat(63)));
var log = __importStar(require("../lib/log"));
function listMismatches(ctx) {
ctx.versionGroups.reverse().forEach(function (versionGroup, i) {
var invalidGroups = versionGroup.getInvalidInstanceGroups();
// Nothing to do if there are no mismatches
if (invalidGroups.length === 0)
return;
// Record that this project has mismatches, so that eg. the CLI can exit
// with the correct status code.
ctx.isInvalid = true;
// Annotate user-defined version groups
if (!versionGroup.isDefault)
log.versionGroupHeader(i);
// Log the mismatches
invalidGroups.forEach(function (instanceGroup) {
var name = instanceGroup.name;
var workspaceInstance = instanceGroup.getWorkspaceInstance();
var expected = instanceGroup.getExpectedVersion() || 'nice b';
var isBanned = instanceGroup.versionGroup.isBanned;
var isUnpinned = instanceGroup.isUnpinned;
// Log the dependency name
if (isBanned) {
logBanned(name);
}
}
groups.forEach(function (_a) {
var e_1, _b;
var instances = _a.instances, isBanned = _a.isBanned, name = _a.name;
var workspaceMatch = null;
var expected = (0, get_expected_version_1.getExpectedVersion)(name, versionGroup, input);
try {
for (var instances_1 = __values(instances), instances_1_1 = instances_1.next(); !instances_1_1.done; instances_1_1 = instances_1.next()) {
var instance = instances_1_1.value;
var isMatch = instance.version === expected;
var isWorkspace = instance.dependencyType === 'workspace';
if (isMatch && isWorkspace) {
workspaceMatch = instance;
}
}
else if (isUnpinned) {
logPinVersionMismatch(name, instanceGroup);
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (instances_1_1 && !instances_1_1.done && (_b = instances_1["return"])) _b.call(instances_1);
}
finally { if (e_1) throw e_1.error; }
else if (workspaceInstance) {
logWorkspaceMismatch(workspaceInstance, expected, name);
}
if (isBanned) {
console.log((0, chalk_1["default"])(templateObject_2 || (templateObject_2 = __makeTemplateObject(["{red ", " ", "} {dim.red is defined in this version group as banned from use}"], ["{red ", " ", "} {dim.red is defined in this version group as banned from use}"])), constants_1.ICON.cross, name));
}
else if (workspaceMatch) {
var shortPath = (0, path_1.relative)(constants_1.CWD, workspaceMatch.wrapper.filePath);
var reason = (0, chalk_1["default"])(templateObject_3 || (templateObject_3 = __makeTemplateObject(["{dim : ", " is developed in this repo at ", "}"], ["{dim : ", " is developed in this repo at ", "}"])), expected, shortPath);
console.log((0, chalk_1["default"])(templateObject_4 || (templateObject_4 = __makeTemplateObject(["{dim -} ", "", ""], ["{dim -} ", "", ""])), name, reason));
}
else {
var reason = (0, chalk_1["default"])(templateObject_5 || (templateObject_5 = __makeTemplateObject(["{dim : ", " is the highest valid semver version in use}"], ["{dim : ", " is the highest valid semver version in use}"])), expected);
console.log((0, chalk_1["default"])(templateObject_6 || (templateObject_6 = __makeTemplateObject(["{dim -} ", "", ""], ["{dim -} ", "", ""])), name, reason));
logHighestVersionMismatch(expected, name);
}
instances.forEach(function (_a) {
var dependencyType = _a.dependencyType, version = _a.version, wrapper = _a.wrapper;
var isMatch = version === expected;
var isLocal = dependencyType === 'workspace';
var shortPath = (0, path_1.relative)(constants_1.CWD, wrapper.filePath);
var loc = isLocal ? 'version' : dependencyType;
if (isMatch) {
console.log((0, chalk_1["default"])(templateObject_7 || (templateObject_7 = __makeTemplateObject(["{green ", " in ", " of ", "}"], ["{green ", " in ", " of ", "}"])), version, loc, shortPath));
// Log each of the dependencies mismatches
instanceGroup.instances.forEach(function (instance) {
if (instance.version !== expected) {
logVersionMismatch(instance);
}
else {
console.log((0, chalk_1["default"])(templateObject_8 || (templateObject_8 = __makeTemplateObject(["{red ", " in ", " of ", "}"], ["{red ", " in ", " of ", "}"])), version, loc, shortPath));
}
});
});
});
if (isInvalid) {
disk.process.exit(1);
return ctx;
function logBanned(name) {
log.invalid(name, 'is banned in this version group');
}
function logPinVersionMismatch(name, instanceGroup) {
var pinVersion = instanceGroup.versionGroup.pinVersion;
log.invalid(name, (0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["is pinned in this version group at {reset.green ", "}"], ["is pinned in this version group at {reset.green ", "}"])), pinVersion));
}
function logWorkspaceMismatch(workspaceInstance, expected, name) {
var shortPath = workspaceInstance.packageJsonFile.shortPath;
log.invalid(name, (0, chalk_1["default"])(templateObject_2 || (templateObject_2 = __makeTemplateObject(["{reset.green ", "} {dim is developed in this repo at ", "}"], ["{reset.green ", "} {dim is developed in this repo at ", "}"])), expected, shortPath));
}
function logHighestVersionMismatch(expected, name) {
log.invalid(name, (0, chalk_1["default"])(templateObject_3 || (templateObject_3 = __makeTemplateObject(["{reset.green ", "} {dim is the highest valid semver version in use}"], ["{reset.green ", "} {dim is the highest valid semver version in use}"])), expected));
}
function logVersionMismatch(instance) {
var type = instance.dependencyType;
var shortPath = instance.packageJsonFile.shortPath;
var actual = instance.version;
console.log((0, chalk_1["default"])(templateObject_4 || (templateObject_4 = __makeTemplateObject([" {red ", "} {dim in ", " of ", "}"], [" {red ", "} {dim in ", " of ", "}"])), actual, type, shortPath));
}
}
exports.listMismatches = listMismatches;
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8;
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;

@@ -40,5 +40,4 @@ #!/usr/bin/env node

var disk_1 = require("../lib/disk");
var get_input_1 = require("../lib/get-input");
var option_1 = require("../option");
var list_1 = require("./list");
var list_cli_1 = require("./list-cli");
commander_1.program.description(' List all dependencies required by your packages.');

@@ -58,3 +57,3 @@ commander_1.program.on('--help', function () {

.option.apply(_a, __spreadArray([], __read(option_1.option.workspace), false)).parse(process.argv);
(0, list_1.list)((0, get_input_1.getInput)(disk_1.disk, {
(0, list_cli_1.listCli)({
configPath: commander_1.program.opts().config,

@@ -70,3 +69,3 @@ dev: commander_1.program.opts().dev,

workspace: commander_1.program.opts().workspace
}), disk_1.disk);
}, disk_1.disk);
var templateObject_1;

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

import type { Disk } from '../lib/disk';
import type { ProgramInput } from '../lib/get-input';
export declare function list(input: ProgramInput, disk: Disk): void;
import type { Context } from '../lib/get-context';
export declare function list(ctx: Context): Context;

@@ -6,2 +6,25 @@ "use strict";

};
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -13,42 +36,44 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

var chalk_1 = __importDefault(require("chalk"));
var get_expected_version_1 = require("../bin-fix-mismatches/get-expected-version");
var constants_1 = require("../constants");
var list_version_groups_1 = require("./list-version-groups");
function list(input, disk) {
var isInvalid = false;
/**
* Reverse the list so the default/ungrouped version group is rendered first
* (appears at the top). The actual version groups which the user configured
* will then start from index 1.
*/
input.instances.versionGroups.reverse().forEach(function (versionGroup, i) {
var isVersionGroup = i > 0;
var groups = (0, list_version_groups_1.listVersionGroups)(versionGroup);
if (isVersionGroup) {
console.log((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["{dim = Version Group ", " ", "}"], ["{dim = Version Group ", " ", "}"])), i, '='.repeat(63)));
}
groups.forEach(function (_a) {
var hasMismatches = _a.hasMismatches, isBanned = _a.isBanned, isIgnored = _a.isIgnored, name = _a.name, uniques = _a.uniques;
var versionList = uniques.sort();
var expected = (0, get_expected_version_1.getExpectedVersion)(name, versionGroup, input);
console.log(isBanned
? (0, chalk_1["default"])(templateObject_2 || (templateObject_2 = __makeTemplateObject(["{red ", " ", "} {dim.red is defined in this version group as banned from use}"], ["{red ", " ", "} {dim.red is defined in this version group as banned from use}"])), constants_1.ICON.cross, name) : isIgnored
? (0, chalk_1["default"])(templateObject_3 || (templateObject_3 = __makeTemplateObject(["{dim ", " ", "} is ignored in this version group"], ["{dim ", " ", "} is ignored in this version group"])), constants_1.ICON.skip, name) : hasMismatches
? (0, chalk_1["default"])(templateObject_4 || (templateObject_4 = __makeTemplateObject(["{red ", " ", "} ", ""], ["{red ", " ", "} ", ""])), constants_1.ICON.cross, name, versionList
.map(function (version) {
return version === expected
? chalk_1["default"].green(version)
: chalk_1["default"].red(version);
})
.join(chalk_1["default"].dim(', '))) : (0, chalk_1["default"])(templateObject_5 || (templateObject_5 = __makeTemplateObject(["{dim -} {white ", "} {dim ", "}"], ["{dim -} {white ", "} {dim ", "}"])), name, versionList));
var log = __importStar(require("../lib/log"));
function list(ctx) {
ctx.versionGroups.reverse().forEach(function (versionGroup, i) {
// Annotate user-defined version groups
if (!versionGroup.isDefault)
log.versionGroupHeader(i);
versionGroup.instanceGroups.forEach(function (instanceGroup) {
var expected = instanceGroup.getExpectedVersion();
var uniques = instanceGroup.uniques;
// Record that this project has mismatches, so that eg. the CLI can exit
// with the correct status code.
if (instanceGroup.isInvalid)
ctx.isInvalid = true;
instanceGroup.versionGroup.isBanned
? logBanned(instanceGroup)
: instanceGroup.versionGroup.isIgnored
? logIgnored(instanceGroup)
: instanceGroup.hasMismatches
? logVersionMismatch(instanceGroup, uniques, expected)
: logVersionMatch(instanceGroup, uniques);
});
if (groups.some(function (group) { return !group.isIgnored && group.hasMismatches; })) {
isInvalid = true;
}
});
if (isInvalid) {
disk.process.exit(1);
return ctx;
function logVersionMatch(instanceGroup, uniques) {
console.log((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["{dim -} {white ", "} {dim ", "}"], ["{dim -} {white ", "} {dim ", "}"])), instanceGroup.name, uniques));
}
function logVersionMismatch(instanceGroup, uniques, expected) {
console.log((0, chalk_1["default"])(templateObject_2 || (templateObject_2 = __makeTemplateObject(["{red ", " ", "} ", ""], ["{red ", " ", "} ", ""])), constants_1.ICON.cross, instanceGroup.name, uniques
.map(function (version) {
return version === expected ? chalk_1["default"].green(version) : chalk_1["default"].red(version);
})
.join(chalk_1["default"].dim(', '))));
}
function logIgnored(instanceGroup) {
console.log((0, chalk_1["default"])(templateObject_3 || (templateObject_3 = __makeTemplateObject(["{dim ", " ", "} is ignored in this version group"], ["{dim ", " ", "} is ignored in this version group"])), constants_1.ICON.skip, instanceGroup.name));
}
function logBanned(instanceGroup) {
console.log((0, chalk_1["default"])(templateObject_4 || (templateObject_4 = __makeTemplateObject(["{red ", " ", "} {dim.red is banned in this version group}"], ["{red ", " ", "} {dim.red is banned in this version group}"])), constants_1.ICON.cross, instanceGroup.name));
}
}
exports.list = list;
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;

@@ -40,5 +40,4 @@ #!/usr/bin/env node

var disk_1 = require("../lib/disk");
var get_input_1 = require("../lib/get-input");
var option_1 = require("../option");
var set_semver_ranges_1 = require("./set-semver-ranges");
var set_semver_ranges_cli_1 = require("./set-semver-ranges-cli");
commander_1.program.description((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n Ensure dependency versions within {yellow dependencies}, {yellow devDependencies},\n {yellow peerDependencies}, {yellow overrides}, and {yellow resolutions} follow a consistent format."], ["\n Ensure dependency versions within {yellow dependencies}, {yellow devDependencies},\n {yellow peerDependencies}, {yellow overrides}, and {yellow resolutions} follow a consistent format."]))).replace(/^\n/, ''));

@@ -60,3 +59,3 @@ commander_1.program.on('--help', function () {

.option.apply(_a, __spreadArray([], __read(option_1.option.indent), false)).parse(process.argv);
(0, set_semver_ranges_1.setSemverRanges)((0, get_input_1.getInput)(disk_1.disk, {
(0, set_semver_ranges_cli_1.setSemverRangesCli)({
configPath: commander_1.program.opts().config,

@@ -74,3 +73,3 @@ dev: commander_1.program.opts().dev,

workspace: commander_1.program.opts().workspace
}), disk_1.disk);
}, disk_1.disk);
var templateObject_1, templateObject_2;

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

import type { Disk } from '../lib/disk';
import type { ProgramInput } from '../lib/get-input';
export declare const setSemverRanges: (input: ProgramInput, disk: Disk) => void;
import type { Context } from '../lib/get-context';
export declare const setSemverRanges: (ctx: Context) => Context;
"use strict";
exports.__esModule = true;
exports.setSemverRanges = void 0;
var list_semver_group_mismatches_1 = require("../bin-lint-semver-ranges/list-semver-group-mismatches");
var is_semver_1 = require("../lib/is-semver");
var set_semver_range_1 = require("../lib/set-semver-range");
var write_if_changed_1 = require("../lib/write-if-changed");
var setSemverRanges = function (input, disk) {
input.instances.semverGroups.reverse().forEach(function (semverGroup) {
if ('range' in semverGroup && (0, is_semver_1.isValidSemverRange)(semverGroup.range)) {
var mismatches = (0, list_semver_group_mismatches_1.listSemverGroupMismatches)(semverGroup);
mismatches.forEach(function (_a) {
var dependencyType = _a.dependencyType, name = _a.name, version = _a.version, wrapper = _a.wrapper;
if (dependencyType === 'workspace')
return;
var root = wrapper.contents;
var nextVersion = (0, set_semver_range_1.setSemverRange)(semverGroup.range, version);
if (dependencyType === 'pnpmOverrides') {
root.pnpm.overrides[name] = nextVersion;
}
else {
root[dependencyType][name] = nextVersion;
}
});
}
});
input.wrappers.forEach(function (wrapper) {
(0, write_if_changed_1.writeIfChanged)(disk, {
contents: wrapper.contents,
filePath: wrapper.filePath,
indent: input.indent,
json: wrapper.json
var setSemverRanges = function (ctx) {
ctx.semverGroups.reverse().forEach(function (semverGroup) {
semverGroup.instances.forEach(function (instance) {
instance.setRange(semverGroup.range);
});
});
return ctx;
};
exports.setSemverRanges = setSemverRanges;

@@ -1,24 +0,30 @@

import type { DependencyType, SyncpackConfig, ValidRange } from './types';
export declare const ALL_PATTERNS: string[];
export declare const DEPENDENCY_TYPES: DependencyType[];
import type { Config } from './lib/get-context/get-config/config';
/** Single source of truth, intended to aid testing or to override */
export declare const CWD: string;
export declare const GREATER = 1;
export declare const LESSER = -1;
export declare const SAME = 0;
export declare const RANGE_ANY = "*";
export declare const RANGE_EXACT = "";
export declare const RANGE_GT = ">";
export declare const RANGE_GTE = ">=";
export declare const RANGE_LOOSE = ".x";
export declare const RANGE_LT = "<";
export declare const RANGE_LTE = "<=";
export declare const RANGE_MINOR = "^";
export declare const RANGE_PATCH = "~";
export declare const SEMVER_ORDER: ValidRange[];
/** Where to search for packages if none are provided by the user */
export declare const DEFAULT_SOURCES: string[];
/** Single source of truth for icons used in output */
export declare const ICON: {
cross: string;
debug: string;
skip: string;
tick: string;
readonly rightArrow: "→";
readonly cross: "✘";
readonly debug: "?";
readonly skip: "-";
readonly tick: "✓";
};
export declare const DEFAULT_CONFIG: SyncpackConfig;
/**
* Aliases for locations of versions within package.json files, it is looped
* over by each command to operate on each are as defined by the user.
*/
export declare const ALL_DEPENDENCY_TYPES: readonly ["dependencies", "devDependencies", "overrides", "peerDependencies", "pnpmOverrides", "resolutions", "workspace"];
export declare const RANGE: {
readonly ANY: "*";
readonly EXACT: "";
readonly GT: ">";
readonly GTE: ">=";
readonly LOOSE: ".x";
readonly LT: "<";
readonly LTE: "<=";
readonly MINOR: "^";
readonly PATCH: "~";
};
export declare const DEFAULT_CONFIG: Config.RcFile;
"use strict";
exports.__esModule = true;
exports.DEFAULT_CONFIG = exports.ICON = exports.SEMVER_ORDER = exports.RANGE_PATCH = exports.RANGE_MINOR = exports.RANGE_LTE = exports.RANGE_LT = exports.RANGE_LOOSE = exports.RANGE_GTE = exports.RANGE_GT = exports.RANGE_EXACT = exports.RANGE_ANY = exports.SAME = exports.LESSER = exports.GREATER = exports.CWD = exports.DEPENDENCY_TYPES = exports.ALL_PATTERNS = void 0;
exports.ALL_PATTERNS = ['package.json', 'packages/*/package.json'];
exports.DEPENDENCY_TYPES = [
exports.DEFAULT_CONFIG = exports.RANGE = exports.ALL_DEPENDENCY_TYPES = exports.ICON = exports.DEFAULT_SOURCES = exports.CWD = void 0;
/** Single source of truth, intended to aid testing or to override */
exports.CWD = process.cwd();
/** Where to search for packages if none are provided by the user */
exports.DEFAULT_SOURCES = ['package.json', 'packages/*/package.json'];
/** Single source of truth for icons used in output */
exports.ICON = {
rightArrow: '→',
cross: '✘',
debug: '?',
skip: '-',
tick: '✓'
};
/**
* Aliases for locations of versions within package.json files, it is looped
* over by each command to operate on each are as defined by the user.
*/
exports.ALL_DEPENDENCY_TYPES = [
'dependencies',

@@ -14,33 +29,14 @@ 'devDependencies',

];
exports.CWD = process.cwd();
exports.GREATER = 1;
exports.LESSER = -1;
exports.SAME = 0;
exports.RANGE_ANY = '*';
exports.RANGE_EXACT = '';
exports.RANGE_GT = '>';
exports.RANGE_GTE = '>=';
exports.RANGE_LOOSE = '.x';
exports.RANGE_LT = '<';
exports.RANGE_LTE = '<=';
exports.RANGE_MINOR = '^';
exports.RANGE_PATCH = '~';
exports.SEMVER_ORDER = [
exports.RANGE_LT,
exports.RANGE_LTE,
exports.RANGE_EXACT,
exports.RANGE_PATCH,
exports.RANGE_MINOR,
exports.RANGE_GTE,
exports.RANGE_GT,
exports.RANGE_ANY,
];
exports.ICON = {
cross: '✘',
debug: '?',
skip: '-',
tick: '✓'
exports.RANGE = {
ANY: '*',
EXACT: '',
GT: '>',
GTE: '>=',
LOOSE: '.x',
LT: '<',
LTE: '<=',
MINOR: '^',
PATCH: '~'
};
exports.DEFAULT_CONFIG = {
dependencyTypes: [],
dev: true,

@@ -47,0 +43,0 @@ filter: '.',

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

import type { SyncpackConfig } from '../types';
export declare type Disk = typeof disk;
import type { Config } from './get-context/get-config/config';
export type Disk = typeof disk;
export declare const disk: {

@@ -8,3 +8,3 @@ readonly process: {

readonly globSync: (pattern: string) => string[];
readonly readConfigFileSync: (configPath?: string) => Partial<SyncpackConfig>;
readonly readConfigFileSync: (configPath?: string) => Partial<Config.RcFile>;
readonly readFileSync: (filePath: string) => string;

@@ -11,0 +11,0 @@ readonly readYamlFileSync: <T = unknown>(filePath: string) => T;

@@ -37,3 +37,2 @@ "use strict";

var rcConfig_1 = (_a = pjson === null || pjson === void 0 ? void 0 : pjson.config) === null || _a === void 0 ? void 0 : _a.syncpack;
console.log(rcConfig_1);
if ((0, expect_more_1.isNonEmptyObject)(rcConfig_1))

@@ -40,0 +39,0 @@ return rcConfig_1;

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

import type { ValidRange } from '../types';
import type { ValidRange } from './get-context/get-config/config';
export declare function isValidSemverRange(value: unknown): value is ValidRange;
export declare function isSemver(version: unknown): boolean;
export declare function isLooseSemver(version: unknown): boolean;

@@ -7,11 +7,11 @@ "use strict";

function isValidSemverRange(value) {
return (value === constants_1.RANGE_ANY ||
value === constants_1.RANGE_EXACT ||
value === constants_1.RANGE_GT ||
value === constants_1.RANGE_GTE ||
value === constants_1.RANGE_LOOSE ||
value === constants_1.RANGE_LT ||
value === constants_1.RANGE_LTE ||
value === constants_1.RANGE_MINOR ||
value === constants_1.RANGE_PATCH);
return (value === constants_1.RANGE.ANY ||
value === constants_1.RANGE.EXACT ||
value === constants_1.RANGE.GT ||
value === constants_1.RANGE.GTE ||
value === constants_1.RANGE.LOOSE ||
value === constants_1.RANGE.LT ||
value === constants_1.RANGE.LTE ||
value === constants_1.RANGE.MINOR ||
value === constants_1.RANGE.PATCH);
}

@@ -18,0 +18,0 @@ exports.isValidSemverRange = isValidSemverRange;

export declare function verbose(...values: unknown[]): void;
export declare function fixed(message: string): void;
export declare function skip(message: string): void;
export declare function semverGroupHeader(order: number): void;
export declare function versionGroupHeader(order: number): void;
export declare function valid(message: string, comment?: string): void;
export declare function invalid(message: string, comment?: string): void;
"use strict";
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
return cooked;
};
var __read = (this && this.__read) || function (o, n) {

@@ -31,3 +35,3 @@ var m = typeof Symbol === "function" && o[Symbol.iterator];

exports.__esModule = true;
exports.verbose = void 0;
exports.invalid = exports.valid = exports.versionGroupHeader = exports.semverGroupHeader = exports.skip = exports.fixed = exports.verbose = void 0;
var chalk_1 = __importDefault(require("chalk"));

@@ -51,1 +55,36 @@ var expect_more_1 = require("expect-more");

exports.verbose = verbose;
function fixed(message) {
console.log((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["{green ", "}"], ["{green ", "}"])), constants_1.ICON.tick), message);
}
exports.fixed = fixed;
function skip(message) {
console.log(chalk_1["default"].dim(constants_1.ICON.skip), chalk_1["default"].dim(message));
}
exports.skip = skip;
function semverGroupHeader(order) {
console.log((0, chalk_1["default"])(templateObject_2 || (templateObject_2 = __makeTemplateObject(["{dim = Semver Group ", " ", "}"], ["{dim = Semver Group ", " ", "}"])), order, '='.repeat(63)));
}
exports.semverGroupHeader = semverGroupHeader;
function versionGroupHeader(order) {
console.log((0, chalk_1["default"])(templateObject_3 || (templateObject_3 = __makeTemplateObject(["{dim = Version Group ", " ", "}"], ["{dim = Version Group ", " ", "}"])), order, '='.repeat(63)));
}
exports.versionGroupHeader = versionGroupHeader;
function valid(message, comment) {
if (comment) {
console.log((0, chalk_1["default"])(templateObject_4 || (templateObject_4 = __makeTemplateObject(["{dim ", "} ", " {dim ", "}"], ["{dim ", "} ", " {dim ", "}"])), constants_1.ICON.skip, message, comment));
}
else {
console.log((0, chalk_1["default"])(templateObject_5 || (templateObject_5 = __makeTemplateObject(["{dim ", "} ", ""], ["{dim ", "} ", ""])), constants_1.ICON.skip, message));
}
}
exports.valid = valid;
function invalid(message, comment) {
if (comment) {
console.log((0, chalk_1["default"])(templateObject_6 || (templateObject_6 = __makeTemplateObject(["{red ", "} ", " {dim ", "}"], ["{red ", "} ", " {dim ", "}"])), constants_1.ICON.cross, message, comment));
}
else {
console.log((0, chalk_1["default"])(templateObject_7 || (templateObject_7 = __makeTemplateObject(["{red ", "} ", ""], ["{red ", "} ", ""])), constants_1.ICON.cross, message));
}
}
exports.invalid = invalid;
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;

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

import type { ValidRange } from '../types';
import type { ValidRange } from './get-context/get-config/config';
export declare function setSemverRange(semverRange: ValidRange, version: string): string;

@@ -16,3 +16,3 @@ "use strict";

var from1stDot = nextVersion.indexOf('.');
return semverRange === constants_1.RANGE_LOOSE
return semverRange === constants_1.RANGE.LOOSE
? "".concat(nextVersion.slice(from1stNumber, from1stDot), ".x.x")

@@ -19,0 +19,0 @@ : "".concat(semverRange).concat(nextVersion.slice(from1stNumber));

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

import { collect } from './lib/collect';
export declare const option: {

@@ -16,1 +15,3 @@ readonly config: readonly ["-c, --config <path>", "path to a syncpack config file"];

};
declare function collect(value: string, previous: string[]): string[];
export {};

@@ -13,3 +13,2 @@ "use strict";

var constants_1 = require("./constants");
var collect_1 = require("./lib/collect");
exports.option = {

@@ -44,3 +43,3 @@ config: ['-c, --config <path>', 'path to a syncpack config file'],

'glob pattern for package.json files to read from',
collect_1.collect,
collect,
[],

@@ -50,2 +49,5 @@ ],

};
function collect(value, previous) {
return previous.concat([value]);
}
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
{
"name": "syncpack",
"description": "Manage multiple package.json files, such as in Lerna Monorepos and Yarn/Pnpm Workspaces",
"version": "8.4.11",
"version": "8.5.14",
"author": "Jamie Mason <jamie@foldleft.io> (https://github.com/JamieMason)",

@@ -30,9 +30,9 @@ "bin": {

"chalk": "4.1.2",
"commander": "9.4.1",
"cosmiconfig": "7.0.1",
"expect-more": "1.2.0",
"commander": "10.0.0",
"cosmiconfig": "8.0.0",
"expect-more": "1.3.0",
"fp-ts": "2.13.1",
"fs-extra": "10.1.0",
"glob": "8.0.3",
"minimatch": "5.1.0",
"fs-extra": "11.1.0",
"glob": "8.1.0",
"minimatch": "6.1.6",
"read-yaml-file": "2.1.0",

@@ -42,17 +42,17 @@ "semver": "7.3.8"

"devDependencies": {
"@types/fs-extra": "9.0.13",
"@types/glob": "8.0.0",
"@types/jest": "29.2.0",
"@types/node": "18.11.7",
"@types/fs-extra": "11.0.1",
"@types/glob": "8.0.1",
"@types/jest": "29.4.0",
"@types/node": "18.11.19",
"@types/semver": "7.3.13",
"@typescript-eslint/eslint-plugin": "5.41.0",
"@typescript-eslint/parser": "5.41.0",
"eslint": "8.26.0",
"eslint-plugin-import": "2.26.0",
"expect-more-jest": "5.4.1",
"jest": "29.2.2",
"prettier": "2.7.1",
"rimraf": "3.0.2",
"ts-jest": "29.0.3",
"typescript": "4.8.4"
"@typescript-eslint/eslint-plugin": "5.51.0",
"@typescript-eslint/parser": "5.51.0",
"eslint": "8.33.0",
"eslint-plugin-import": "2.27.5",
"expect-more-jest": "5.5.0",
"jest": "29.4.1",
"prettier": "2.8.3",
"rimraf": "4.1.2",
"ts-jest": "29.0.5",
"typescript": "4.9.5"
},

@@ -59,0 +59,0 @@ "engines": {

@@ -8,3 +8,3 @@ # syncpack

[![NPM downloads](http://img.shields.io/npm/dm/syncpack.svg?style=flat-square)](https://www.npmjs.com/package/syncpack)
[![Build Status](https://img.shields.io/github/workflow/status/JamieMason/syncpack/ci)](https://github.com/JamieMason/syncpack/actions)
[![Build Status](https://img.shields.io/github/actions/workflow/status/JamieMason/syncpack/ci.yaml?branch=master)](https://github.com/JamieMason/syncpack/actions)
[![Maintainability](https://api.codeclimate.com/v1/badges/516439365fdd0e3c6526/maintainability)](https://codeclimate.com/github/JamieMason/syncpack/maintainability)

@@ -11,0 +11,0 @@

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