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

prettier-package-json

Package Overview
Dependencies
Maintainers
1
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

prettier-package-json - npm Package Compare versions

Comparing version 2.6.0 to 2.8.0

build/sort-dependencies.d.ts

1

build/defaultOptions.js

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

*/
'exports',
'main',

@@ -30,0 +31,0 @@ 'module',

9

build/index.js

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

var defaultOptions_1 = require("./defaultOptions");
var sort_dependencies_1 = __importDefault(require("./sort-dependencies"));
var sort_contributors_1 = __importDefault(require("./sort-contributors"));

@@ -27,4 +28,4 @@ var sort_files_1 = __importDefault(require("./sort-files"));

var options = getConfig(opts);
var json = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, packageJson), sort_contributors_1["default"]('author', packageJson, opts)), sort_contributors_1["default"]('maintainers', packageJson, __assign(__assign({}, opts), { enforceMultiple: true }))), sort_contributors_1["default"]('contributors', packageJson, __assign(__assign({}, opts), { enforceMultiple: true }))), sort('man', packageJson)), sort('bin', packageJson)), sort_files_1["default"](packageJson)), sort('directories', packageJson)), sort_scripts_1["default"](packageJson.scripts)), sort('config', packageJson)), sort('optionalDependencies', packageJson)), sort('dependencies', packageJson)), sort('bundleDependencies', packageJson)), sort('bundledDependencies', packageJson)), sort('peerDependencies', packageJson)), sort('devDependencies', packageJson)), sort('keywords', packageJson)), sort('engines', packageJson)), sort('os', packageJson)), sort('cpu', packageJson)), sort('publishConfig', packageJson));
return stringify(sort_object_keys_1["default"](json, options.keyOrder), options);
var json = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, packageJson), (0, sort_contributors_1["default"])('author', packageJson, opts)), (0, sort_contributors_1["default"])('maintainers', packageJson, __assign(__assign({}, opts), { enforceMultiple: true }))), (0, sort_contributors_1["default"])('contributors', packageJson, __assign(__assign({}, opts), { enforceMultiple: true }))), sort('man', packageJson)), sort('bin', packageJson)), (0, sort_files_1["default"])(packageJson)), sort('directories', packageJson)), (0, sort_scripts_1["default"])(packageJson.scripts)), sort('config', packageJson)), (0, sort_dependencies_1["default"])('optionalDependencies', packageJson)), (0, sort_dependencies_1["default"])('dependencies', packageJson)), (0, sort_dependencies_1["default"])('bundleDependencies', packageJson)), (0, sort_dependencies_1["default"])('bundledDependencies', packageJson)), (0, sort_dependencies_1["default"])('peerDependencies', packageJson)), (0, sort_dependencies_1["default"])('devDependencies', packageJson)), sort('keywords', packageJson)), sort('engines', packageJson)), sort('os', packageJson)), sort('cpu', packageJson)), sort('publishConfig', packageJson));
return stringify((0, sort_object_keys_1["default"])(json, options.keyOrder), options);
}

@@ -45,3 +46,3 @@ exports.format = format;

function getConfig(options) {
var explorer = cosmiconfig_1.cosmiconfigSync('prettier-package-json');
var explorer = (0, cosmiconfig_1.cosmiconfigSync)('prettier-package-json');
var result = explorer.search();

@@ -62,5 +63,5 @@ return __assign(__assign(__assign({}, defaultOptions_1.defaultOptions), result === null || result === void 0 ? void 0 : result.config), options);

var keys = Object.keys(input);
return keys.length === 0 ? {} : (_b = {}, _b[key] = sort_object_keys_1["default"](input, keys.sort()), _b);
return keys.length === 0 ? {} : (_b = {}, _b[key] = (0, sort_object_keys_1["default"])(input, keys.sort()), _b);
}
return {};
}
"use strict";
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
to[j] = from[i];
return to;
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};

@@ -34,4 +38,4 @@ var __importDefault = (this && this.__importDefault) || function (mod) {

var contributors = hydrate(packageJson[key])
.map(function (user) { return sort_object_keys_1["default"](user, ['name', 'email', 'url']); })
.sort(sort_order_1["default"](sortByName, sortByEmail));
.map(function (user) { return (0, sort_object_keys_1["default"])(user, ['name', 'email', 'url']); })
.sort((0, sort_order_1["default"])(sortByName, sortByEmail));
switch (contributors.length) {

@@ -54,3 +58,3 @@ case 0:

else if (Array.isArray(input)) {
return input.reduce(function (state, item) { return __spreadArray(__spreadArray([], state), hydrate(item)); }, []);
return input.reduce(function (state, item) { return __spreadArray(__spreadArray([], state, true), hydrate(item), true); }, []);
}

@@ -61,3 +65,3 @@ else if (typeof input === 'object') {

else if (typeof input === 'string') {
return [parse_author_1["default"](input)];
return [(0, parse_author_1["default"])(input)];
}

@@ -70,5 +74,5 @@ else {

var name = user.name;
var email = user.email ? "<" + user.email + ">" : undefined;
var url = user.url ? "(" + user.url + ")" : undefined;
var email = user.email ? "<".concat(user.email, ">") : undefined;
var url = user.url ? "(".concat(user.url, ")") : undefined;
return [name, email, url].filter(Boolean).join(' ');
}

@@ -9,33 +9,65 @@ "use strict";

var PRE_OR_POST_PREFIX = /^(pre|post)/;
// Sort alphabetically by script name excluding pre/post prefixes
function scriptName() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
var NPM_RUN_ALL_SEPARATOR = /([:/])/;
var NPM_BUILTIN_SCRIPTS = ['install', 'prepare', 'pack', 'publish', 'restart', 'start', 'stop', 'test', 'version', 'uninstall'];
;
function parseScriptName(scripts, original) {
// prepublishOnly is a script whose base event is publish.
// cf. https://docs.npmjs.com/cli/v9/using-npm/scripts#npm-publish
if (original === 'prepublishOnly') {
return { prefix: 'pre', base: 'publish', original: original };
}
var _a = args.map(function (arg) { return arg.replace(PRE_OR_POST_PREFIX, ''); }), a = _a[0], b = _a[1];
if (a !== b) {
return a < b ? -1 : 1;
var prefixMatch = PRE_OR_POST_PREFIX.exec(original);
var prefix = prefixMatch ? prefixMatch[0] : undefined;
var base = prefix ? original.slice(prefix.length) : original;
if ((scripts === null || scripts === void 0 ? void 0 : scripts.hasOwnProperty(base)) || NPM_BUILTIN_SCRIPTS.includes(base)) {
return { prefix: prefix, base: base, original: original };
}
else {
return { prefix: undefined, base: original, original: original };
}
// Sort alphabetically by script name excluding pre/post prefixes
function scriptName(scripts) {
return function (a, b) {
var aParsed = parseScriptName(scripts, a);
var bParsed = parseScriptName(scripts, b);
// For example, for an input name `prettier:lint`, the segments would be `['prettier', ':', 'lint']`.
// The segments contains separators. There are two types of separators, to determine their order.
var aSegments = aParsed.base.split(NPM_RUN_ALL_SEPARATOR);
var bSegments = bParsed.base.split(NPM_RUN_ALL_SEPARATOR);
var aLength = aSegments.length;
var bLength = bSegments.length;
// Compare each segment, and when the strings are different, return 1 or -1 in alphabetical order.
for (var i = 0; i < Math.min(aLength, bLength); i++) {
if (aSegments[i] !== bSegments[i]) {
return aSegments[i] < bSegments[i] ? -1 : 1;
}
}
// Compare segments length, return 1 or -1 in ascending order of length.
if (aLength !== bLength) {
return aLength < bLength ? -1 : 1;
}
return 0;
}
};
}
// Sort by pre, script, post
function prePostHooks(a, b) {
if (a.startsWith('pre') || b.startsWith('post')) {
return -1;
}
else if (a.startsWith('post') || b.startsWith('pre')) {
return 1;
}
else {
function prePostHooks(scripts) {
return function (a, b) {
var aParsed = parseScriptName(scripts, a);
var bParsed = parseScriptName(scripts, b);
if (aParsed.prefix === 'pre' || bParsed.prefix === 'post') {
return -1;
}
else if (aParsed.prefix === 'post' || bParsed.prefix === 'pre') {
return 1;
}
else if (aParsed.base !== bParsed.base) {
return aParsed.base < bParsed.base ? -1 : 1;
}
return 0;
}
};
}
var order = sort_order_1["default"](scriptName, prePostHooks);
function sortScripts(scripts) {
var keys = Object.keys(scripts || {});
return keys.length === 0 ? {} : { scripts: sort_object_keys_1["default"](scripts, keys.sort(order)) };
var order = (0, sort_order_1["default"])(scriptName(scripts), prePostHooks(scripts));
return keys.length === 0 ? {} : { scripts: (0, sort_object_keys_1["default"])(scripts, keys.sort(order)) };
}
exports["default"] = sortScripts;
{
"name": "prettier-package-json",
"version": "2.6.0",
"version": "2.8.0",
"description": "Prettier formatter for package.json files",

@@ -28,2 +28,3 @@ "license": "MIT",

"dependencies": {
"@types/parse-author": "^2.0.0",
"commander": "^4.0.1",

@@ -42,6 +43,5 @@ "cosmiconfig": "^7.0.0",

"@types/minimatch": "^3.0.4",
"@types/parse-author": "^2.0.0",
"@types/sort-object-keys": "^1.1.0",
"cross-spawn": "^7.0.3",
"husky": "^6.0.0",
"husky": "^7.0.4",
"jest": "^26.6.3",

@@ -48,0 +48,0 @@ "ts-jest": "^26.5.6",

@@ -11,3 +11,3 @@ # Prettier `package.json`

Keys in `package.json` will be sorted in an [opinionated order](src/defaultOptions.js) but may be configured to your own preferences.
Keys in `package.json` will be sorted in an [opinionated order](src/defaultOptions.ts) but may be configured to your own preferences.

@@ -252,3 +252,3 @@ Input:

| **Expand Users** - Expand author and contributors into objects. | `false` | `--expand-users` | `expandUsers: <bool>` |
| **Key Order** - Specify the order of keys. | See [default options](https://github.com/cameronhunter/prettier-package-json/blob/master/src/defaultOptions.js) | `--key-order <comma,separated,list...>` | `keyOrder: <array\|function>` |
| **Key Order** - Specify the order of keys. | See [default options](src/defaultOptions.ts) | `--key-order <comma,separated,list...>` | `keyOrder: <array\|function>` |

@@ -255,0 +255,0 @@ A configuration file will be searched for using [`cosmiconfig`](https://www.npmjs.com/package/cosmiconfig) rules:

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