From e1da1fa4ba7d95616928d2192b5b9db09b3120bc Mon Sep 17 00:00:00 2001 From: Gar Date: Wed, 8 Dec 2021 13:27:35 -0800 Subject: [PATCH] deps: @npmcli/arborist@4.1.1 parse-conflict-json@2.0.1 * Fixes object property assignment bug in resolving package-locks with conflicts PR-URL: https://github.com/npm/cli/pull/4141 Credit: @wraithgar Close: #4141 Reviewed-by: @fritzy --- node_modules/@npmcli/arborist/package.json | 4 +- node_modules/just-diff-apply/index.mjs | 110 +++++++++++++ node_modules/just-diff-apply/package.json | 12 +- node_modules/just-diff-apply/rollup.config.js | 3 + node_modules/just-diff/index.mjs | 146 ++++++++++++++++++ node_modules/just-diff/index.tests.ts | 2 +- node_modules/just-diff/package.json | 14 +- node_modules/just-diff/rollup.config.js | 3 + node_modules/parse-conflict-json/LICENSE | 15 -- node_modules/parse-conflict-json/LICENSE.md | 20 +++ .../parse-conflict-json/{ => lib}/index.js | 38 +++-- node_modules/parse-conflict-json/package.json | 30 ++-- package-lock.json | 71 +++++---- package.json | 4 +- 14 files changed, 391 insertions(+), 81 deletions(-) create mode 100644 node_modules/just-diff-apply/index.mjs create mode 100644 node_modules/just-diff-apply/rollup.config.js create mode 100644 node_modules/just-diff/index.mjs create mode 100644 node_modules/just-diff/rollup.config.js delete mode 100644 node_modules/parse-conflict-json/LICENSE create mode 100644 node_modules/parse-conflict-json/LICENSE.md rename node_modules/parse-conflict-json/{ => lib}/index.js (74%) diff --git a/node_modules/@npmcli/arborist/package.json b/node_modules/@npmcli/arborist/package.json index 12fede6857d65..cea3d5ecd7e4e 100644 --- a/node_modules/@npmcli/arborist/package.json +++ b/node_modules/@npmcli/arborist/package.json @@ -1,6 +1,6 @@ { "name": "@npmcli/arborist", - "version": "4.1.0", + "version": "4.1.1", "description": "Manage node_modules trees", "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", @@ -24,7 +24,7 @@ "npm-pick-manifest": "^6.1.0", "npm-registry-fetch": "^11.0.0", "pacote": "^12.0.2", - "parse-conflict-json": "^1.1.1", + "parse-conflict-json": "^2.0.1", "proc-log": "^1.0.0", "promise-all-reject-late": "^1.0.0", "promise-call-limit": "^1.0.1", diff --git a/node_modules/just-diff-apply/index.mjs b/node_modules/just-diff-apply/index.mjs new file mode 100644 index 0000000000000..fcd26c2f5a23e --- /dev/null +++ b/node_modules/just-diff-apply/index.mjs @@ -0,0 +1,110 @@ +/* + const obj1 = {a: 3, b: 5}; + diffApply(obj1, + [ + { "op": "remove", "path": ['b'] }, + { "op": "replace", "path": ['a'], "value": 4 }, + { "op": "add", "path": ['c'], "value": 5 } + ] + ); + obj1; // {a: 4, c: 5} + + // using converter to apply jsPatch standard paths + // see http://jsonpatch.com + import {diff, jsonPatchPathConverter} from 'just-diff' + const obj2 = {a: 3, b: 5}; + diffApply(obj2, [ + { "op": "remove", "path": '/b' }, + { "op": "replace", "path": '/a', "value": 4 } + { "op": "add", "path": '/c', "value": 5 } + ], jsonPatchPathConverter); + obj2; // {a: 4, c: 5} + + // arrays + const obj3 = {a: 4, b: [1, 2, 3]}; + diffApply(obj3, [ + { "op": "replace", "path": ['a'], "value": 3 } + { "op": "replace", "path": ['b', 2], "value": 4 } + { "op": "add", "path": ['b', 3], "value": 9 } + ]); + obj3; // {a: 3, b: [1, 2, 4, 9]} + + // nested paths + const obj4 = {a: 4, b: {c: 3}}; + diffApply(obj4, [ + { "op": "replace", "path": ['a'], "value": 5 } + { "op": "remove", "path": ['b', 'c']} + { "op": "add", "path": ['b', 'd'], "value": 4 } + ]); + obj4; // {a: 5, b: {d: 4}} +*/ + +var REMOVE = 'remove'; +var REPLACE = 'replace'; +var ADD = 'add'; + +function diffApply(obj, diff, pathConverter) { + if (!obj || typeof obj != 'object') { + throw new Error('base object must be an object or an array'); + } + + if (!Array.isArray(diff)) { + throw new Error('diff must be an array'); + } + + var diffLength = diff.length; + for (var i = 0; i < diffLength; i++) { + var thisDiff = diff[i]; + var subObject = obj; + var thisOp = thisDiff.op; + var thisPath = thisDiff.path; + if (pathConverter) { + thisPath = pathConverter(thisPath); + if (!Array.isArray(thisPath)) { + throw new Error('pathConverter must return an array'); + } + } else { + if (!Array.isArray(thisPath)) { + throw new Error( + 'diff path must be an array, consider supplying a path converter' + ); + } + } + var pathCopy = thisPath.slice(); + var lastProp = pathCopy.pop(); + if (lastProp == null) { + return false; + } + var thisProp; + while ((thisProp = pathCopy.shift()) != null) { + if (!(thisProp in subObject)) { + subObject[thisProp] = {}; + } + subObject = subObject[thisProp]; + } + if (thisOp === REMOVE || thisOp === REPLACE) { + if (!subObject.hasOwnProperty(lastProp)) { + throw new Error( + ['expected to find property', thisDiff.path, 'in object', obj].join( + ' ' + ) + ); + } + } + if (thisOp === REMOVE) { + Array.isArray(subObject) + ? subObject.splice(lastProp, 1) + : delete subObject[lastProp]; + } + if (thisOp === REPLACE || thisOp === ADD) { + subObject[lastProp] = thisDiff.value; + } + } + return subObject; +} + +function jsonPatchPathConverter(stringPath) { + return stringPath.split('/').slice(1); +} + +export {diffApply, jsonPatchPathConverter}; diff --git a/node_modules/just-diff-apply/package.json b/node_modules/just-diff-apply/package.json index a5cc8a1feee9e..c38bd47aa6990 100644 --- a/node_modules/just-diff-apply/package.json +++ b/node_modules/just-diff-apply/package.json @@ -1,10 +1,18 @@ { "name": "just-diff-apply", - "version": "3.0.0", + "version": "4.0.1", "description": "Apply a diff to an object. Optionally supports jsonPatch protocol", "main": "index.js", + "module": "index.mjs", + "exports": { + ".": { + "require": "./index.js", + "default": "./index.mjs" + } + }, "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "test": "echo \"Error: no test specified\" && exit 1", + "build": "rollup -c" }, "repository": "https://github.com/angus-c/just", "keywords": [ diff --git a/node_modules/just-diff-apply/rollup.config.js b/node_modules/just-diff-apply/rollup.config.js new file mode 100644 index 0000000000000..fb9d24a3d845b --- /dev/null +++ b/node_modules/just-diff-apply/rollup.config.js @@ -0,0 +1,3 @@ +const createRollupConfig = require('../../config/createRollupConfig'); + +module.exports = createRollupConfig(__dirname); diff --git a/node_modules/just-diff/index.mjs b/node_modules/just-diff/index.mjs new file mode 100644 index 0000000000000..8da5b5cea8dab --- /dev/null +++ b/node_modules/just-diff/index.mjs @@ -0,0 +1,146 @@ +/* + const obj1 = {a: 4, b: 5}; + const obj2 = {a: 3, b: 5}; + const obj3 = {a: 4, c: 5}; + + diff(obj1, obj2); + [ + { "op": "replace", "path": ['a'], "value": 3 } + ] + + diff(obj2, obj3); + [ + { "op": "remove", "path": ['b'] }, + { "op": "replace", "path": ['a'], "value": 4 } + { "op": "add", "path": ['c'], "value": 5 } + ] + + // using converter to generate jsPatch standard paths + // see http://jsonpatch.com + import {diff, jsonPatchPathConverter} from 'just-diff' + diff(obj1, obj2, jsonPatchPathConverter); + [ + { "op": "replace", "path": '/a', "value": 3 } + ] + + diff(obj2, obj3, jsonPatchPathConverter); + [ + { "op": "remove", "path": '/b' }, + { "op": "replace", "path": '/a', "value": 4 } + { "op": "add", "path": '/c', "value": 5 } + ] + + // arrays + const obj4 = {a: 4, b: [1, 2, 3]}; + const obj5 = {a: 3, b: [1, 2, 4]}; + const obj6 = {a: 3, b: [1, 2, 4, 5]}; + + diff(obj4, obj5); + [ + { "op": "replace", "path": ['a'], "value": 3 } + { "op": "replace", "path": ['b', 2], "value": 4 } + ] + + diff(obj5, obj6); + [ + { "op": "add", "path": ['b', 3], "value": 5 } + ] + + // nested paths + const obj7 = {a: 4, b: {c: 3}}; + const obj8 = {a: 4, b: {c: 4}}; + const obj9 = {a: 5, b: {d: 4}}; + + diff(obj7, obj8); + [ + { "op": "replace", "path": ['b', 'c'], "value": 4 } + ] + + diff(obj8, obj9); + [ + { "op": "replace", "path": ['a'], "value": 5 } + { "op": "remove", "path": ['b', 'c']} + { "op": "add", "path": ['b', 'd'], "value": 4 } + ] +*/ + +function diff(obj1, obj2, pathConverter) { + if (!obj1 || typeof obj1 != 'object' || !obj2 || typeof obj2 != 'object') { + throw new Error('both arguments must be objects or arrays'); + } + + pathConverter || + (pathConverter = function(arr) { + return arr; + }); + + function getDiff(obj1, obj2, basePath, diffs) { + var obj1Keys = Object.keys(obj1); + var obj1KeysLength = obj1Keys.length; + var obj2Keys = Object.keys(obj2); + var obj2KeysLength = obj2Keys.length; + var path; + + for (var i = 0; i < obj1KeysLength; i++) { + var key = Array.isArray(obj1) ? Number(obj1Keys[i]) : obj1Keys[i]; + if (!(key in obj2)) { + path = basePath.concat(key); + diffs.remove.push({ + op: 'remove', + path: pathConverter(path), + }); + } + } + + for (var i = 0; i < obj2KeysLength; i++) { + var key = Array.isArray(obj2) ? Number(obj2Keys[i]) : obj2Keys[i]; + var obj1AtKey = obj1[key]; + var obj2AtKey = obj2[key]; + if (!(key in obj1)) { + path = basePath.concat(key); + var obj2Value = obj2[key]; + diffs.add.push({ + op: 'add', + path: pathConverter(path), + value: obj2Value, + }); + } else if (obj1AtKey !== obj2AtKey) { + if ( + Object(obj1AtKey) !== obj1AtKey || + Object(obj2AtKey) !== obj2AtKey + ) { + path = pushReplace(path, basePath, key, diffs, pathConverter, obj2); + } else { + if ( + !Object.keys(obj1AtKey).length && + !Object.keys(obj2AtKey).length && + String(obj1AtKey) != String(obj2AtKey) + ) { + path = pushReplace(path, basePath, key, diffs, pathConverter, obj2); + } else { + getDiff(obj1[key], obj2[key], basePath.concat(key), diffs); + } + } + } + } + + return diffs.remove.reverse().concat(diffs.replace).concat(diffs.add); + } + return getDiff(obj1, obj2, [], {remove: [], replace: [], add: []}); +} + +function pushReplace(path, basePath, key, diffs, pathConverter, obj2) { + path = basePath.concat(key); + diffs.replace.push({ + op: 'replace', + path: pathConverter(path), + value: obj2[key], + }); + return path; +} + +function jsonPatchPathConverter(arrayPath) { + return [''].concat(arrayPath).join('/'); +} + +export {diff, jsonPatchPathConverter}; diff --git a/node_modules/just-diff/index.tests.ts b/node_modules/just-diff/index.tests.ts index c7ebb70d3dc64..91eaecd8d49e8 100644 --- a/node_modules/just-diff/index.tests.ts +++ b/node_modules/just-diff/index.tests.ts @@ -1,4 +1,4 @@ -import diffObj = require('./index'); +import * as diffObj from './index' const {diff, jsonPatchPathConverter} = diffObj; const obj1 = {a: 2, b: 3}; diff --git a/node_modules/just-diff/package.json b/node_modules/just-diff/package.json index 00be1d50fddbc..bab8a29ae93a4 100644 --- a/node_modules/just-diff/package.json +++ b/node_modules/just-diff/package.json @@ -1,11 +1,19 @@ { "name": "just-diff", - "version": "3.1.1", + "version": "5.0.1", "description": "Return an object representing the diffs between two objects. Supports jsonPatch protocol", "main": "index.js", + "module": "index.mjs", + "exports": { + ".": { + "require": "./index.js", + "default": "./index.mjs" + } + }, "types": "index.d.ts", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "test": "echo \"Error: no test specified\" && exit 1", + "build": "rollup -c" }, "repository": "https://github.com/angus-c/just", "keywords": [ @@ -20,4 +28,4 @@ "bugs": { "url": "https://github.com/angus-c/just/issues" } -} \ No newline at end of file +} diff --git a/node_modules/just-diff/rollup.config.js b/node_modules/just-diff/rollup.config.js new file mode 100644 index 0000000000000..fb9d24a3d845b --- /dev/null +++ b/node_modules/just-diff/rollup.config.js @@ -0,0 +1,3 @@ +const createRollupConfig = require('../../config/createRollupConfig'); + +module.exports = createRollupConfig(__dirname); diff --git a/node_modules/parse-conflict-json/LICENSE b/node_modules/parse-conflict-json/LICENSE deleted file mode 100644 index 20a4762540923..0000000000000 --- a/node_modules/parse-conflict-json/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) npm, Inc. and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/parse-conflict-json/LICENSE.md b/node_modules/parse-conflict-json/LICENSE.md new file mode 100644 index 0000000000000..5fc208ff122e0 --- /dev/null +++ b/node_modules/parse-conflict-json/LICENSE.md @@ -0,0 +1,20 @@ + + +ISC License + +Copyright npm, Inc. + +Permission to use, copy, modify, and/or distribute this +software for any purpose with or without fee is hereby +granted, provided that the above copyright notice and this +permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND NPM DISCLAIMS ALL +WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO +EVENT SHALL NPM BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE +USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/parse-conflict-json/index.js b/node_modules/parse-conflict-json/lib/index.js similarity index 74% rename from node_modules/parse-conflict-json/index.js rename to node_modules/parse-conflict-json/lib/index.js index 8b5dbde40c08b..21b295d04b902 100644 --- a/node_modules/parse-conflict-json/index.js +++ b/node_modules/parse-conflict-json/lib/index.js @@ -2,13 +2,16 @@ const parseJSON = require('json-parse-even-better-errors') const { diff } = require('just-diff') const { diffApply } = require('just-diff-apply') +const globalObjectProperties = Object.getOwnPropertyNames(Object.prototype) + const stripBOM = content => { content = content.toString() // Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) // because the buffer-to-string conversion in `fs.readFileSync()` // translates it to FEFF, the UTF-16 BOM. - if (content.charCodeAt(0) === 0xFEFF) + if (content.charCodeAt(0) === 0xFEFF) { content = content.slice(1) + } return content } @@ -22,37 +25,42 @@ const isDiff = str => const parseConflictJSON = (str, reviver, prefer) => { prefer = prefer || 'ours' - if (prefer !== 'theirs' && prefer !== 'ours') + if (prefer !== 'theirs' && prefer !== 'ours') { throw new TypeError('prefer param must be "ours" or "theirs" if set') + } str = stripBOM(str) - if (!isDiff(str)) + if (!isDiff(str)) { return parseJSON(str) + } const pieces = str.split(/[\n\r]+/g).reduce((acc, line) => { - if (line.match(PARENT_RE)) + if (line.match(PARENT_RE)) { acc.state = 'parent' - else if (line.match(OURS_RE)) + } else if (line.match(OURS_RE)) { acc.state = 'ours' - else if (line.match(THEIRS_RE)) + } else if (line.match(THEIRS_RE)) { acc.state = 'theirs' - else if (line.match(END_RE)) + } else if (line.match(END_RE)) { acc.state = 'top' - else { - if (acc.state === 'top' || acc.state === 'ours') + } else { + if (acc.state === 'top' || acc.state === 'ours') { acc.ours += line - if (acc.state === 'top' || acc.state === 'theirs') + } + if (acc.state === 'top' || acc.state === 'theirs') { acc.theirs += line - if (acc.state === 'top' || acc.state === 'parent') + } + if (acc.state === 'top' || acc.state === 'parent') { acc.parent += line + } } return acc }, { state: 'top', ours: '', theirs: '', - parent: '' + parent: '', }) // this will throw if either piece is not valid JSON, that's intended @@ -70,8 +78,9 @@ const isObj = obj => obj && typeof obj === 'object' const copyPath = (to, from, path, i) => { const p = path[i] if (isObj(to[p]) && isObj(from[p]) && - Array.isArray(to[p]) === Array.isArray(from[p])) + Array.isArray(to[p]) === Array.isArray(from[p])) { return copyPath(to[p], from[p], path, i + 1) + } to[p] = from[p] } @@ -80,6 +89,9 @@ const copyPath = (to, from, path, i) => { const resolve = (parent, ours, theirs) => { const dours = diff(parent, ours) for (let i = 0; i < dours.length; i++) { + if (globalObjectProperties.find(prop => dours[i].path.includes(prop))) { + continue + } try { diffApply(theirs, [dours[i]]) } catch (e) { diff --git a/node_modules/parse-conflict-json/package.json b/node_modules/parse-conflict-json/package.json index 3962e22f33901..bb633e158b5d1 100644 --- a/node_modules/parse-conflict-json/package.json +++ b/node_modules/parse-conflict-json/package.json @@ -1,32 +1,44 @@ { "name": "parse-conflict-json", - "version": "1.1.1", + "version": "2.0.1", "description": "Parse a JSON string that has git merge conflicts, resolving if possible", - "author": "Isaac Z. Schlueter (https://izs.me)", + "author": "GitHub Inc.", "license": "ISC", + "main": "lib", "scripts": { "test": "tap", "snap": "tap", "preversion": "npm test", "postversion": "npm publish", - "postpublish": "git push origin --follow-tags" + "postpublish": "git push origin --follow-tags", + "lint": "eslint '**/*.js'", + "postlint": "npm-template-check", + "lintfix": "npm run lint -- --fix", + "prepublishOnly": "git push origin --follow-tags", + "posttest": "npm run lint" }, "tap": { "check-coverage": true }, "devDependencies": { - "tap": "^14.6.1" + "@npmcli/template-oss": "^2.3.1", + "tap": "^15.1.5" }, "dependencies": { - "just-diff": "^3.0.1", - "just-diff-apply": "^3.0.0", - "json-parse-even-better-errors": "^2.3.0" + "json-parse-even-better-errors": "^2.3.1", + "just-diff": "^5.0.1", + "just-diff-apply": "^4.0.1" }, "repository": { "type": "git", "url": "git+https://github.com/npm/parse-conflict-json.git" }, "files": [ - "index.js" - ] + "bin", + "lib" + ], + "templateVersion": "2.3.1", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } } diff --git a/package-lock.json b/package-lock.json index b6df88dfee279..e38318d1ca525 100644 --- a/package-lock.json +++ b/package-lock.json @@ -87,7 +87,7 @@ ], "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^4.1.0", + "@npmcli/arborist": "^4.1.1", "@npmcli/ci-detect": "^1.4.0", "@npmcli/config": "^2.3.2", "@npmcli/map-workspaces": "^2.0.0", @@ -140,7 +140,7 @@ "npmlog": "^6.0.0", "opener": "^1.5.2", "pacote": "^12.0.2", - "parse-conflict-json": "^1.1.1", + "parse-conflict-json": "^2.0.1", "proc-log": "^1.0.0", "qrcode-terminal": "^0.12.0", "read": "~1.0.7", @@ -801,9 +801,9 @@ } }, "node_modules/@npmcli/arborist": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-4.1.0.tgz", - "integrity": "sha512-bkaOqCuTUtpVOe1vaAP7TUihu64wIbnSDpsbqBJUsGFTLYXbjKwi6xj8Zx5cfHkM3nqyeEEbPYlGkt0TXjKrUg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-4.1.1.tgz", + "integrity": "sha512-sASzHngGWt8l6ic1VP0Qf3+ral/RL8L+MculTp2w8NYjjkDiurByOT39KiYmLwpeJ2GQoDR/rdhEwnII8wZQ9g==", "inBundle": true, "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", @@ -827,7 +827,7 @@ "npm-pick-manifest": "^6.1.0", "npm-registry-fetch": "^11.0.0", "pacote": "^12.0.2", - "parse-conflict-json": "^1.1.1", + "parse-conflict-json": "^2.0.1", "proc-log": "^1.0.0", "promise-all-reject-late": "^1.0.0", "promise-call-limit": "^1.0.1", @@ -4584,15 +4584,15 @@ } }, "node_modules/just-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-3.1.1.tgz", - "integrity": "sha512-sdMWKjRq8qWZEjDcVA6llnUT8RDEBIfOiGpYFPYa9u+2c39JCsejktSP7mj5eRid5EIvTzIpQ2kDOCw1Nq9BjQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.0.1.tgz", + "integrity": "sha512-X00TokkRIDotUIf3EV4xUm6ELc/IkqhS/vPSHdWnsM5y0HoNMfEqrazizI7g78lpHvnRSRt/PFfKtRqJCOGIuQ==", "inBundle": true }, "node_modules/just-diff-apply": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-3.0.0.tgz", - "integrity": "sha512-K2MLc+ZC2DVxX4V61bIKPeMUUfj1YYZ3h0myhchDXOW1cKoPZMnjIoNCqv9bF2n5Oob1PFxuR2gVJxkxz4e58w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-4.0.1.tgz", + "integrity": "sha512-AKOkzB5P6FkfP21UlZVX/OPXx/sC2GagpLX9cBxqHqDuRjwmZ/AJRKSNrB9jHPpRW1W1ONs6gly1gW46t055nQ==", "inBundle": true }, "node_modules/lcov-parse": { @@ -5835,14 +5835,17 @@ } }, "node_modules/parse-conflict-json": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz", - "integrity": "sha512-4gySviBiW5TRl7XHvp1agcS7SOe0KZOjC//71dzZVWJrY9hCrgtvl5v3SyIxCZ4fZF47TxD9nfzmxcx76xmbUw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.1.tgz", + "integrity": "sha512-Y7nYw+QaSGBto1LB9lgwOR05Rtz5SbuTf+Oe7HJ6SYQ/DHsvRjQ8O03oWdJbvkt6GzDWospgyZbGmjDYL0sDgA==", "inBundle": true, "dependencies": { - "json-parse-even-better-errors": "^2.3.0", - "just-diff": "^3.0.1", - "just-diff-apply": "^3.0.0" + "json-parse-even-better-errors": "^2.3.1", + "just-diff": "^5.0.1", + "just-diff-apply": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/parse-entities": { @@ -10664,9 +10667,9 @@ "dev": true }, "@npmcli/arborist": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-4.1.0.tgz", - "integrity": "sha512-bkaOqCuTUtpVOe1vaAP7TUihu64wIbnSDpsbqBJUsGFTLYXbjKwi6xj8Zx5cfHkM3nqyeEEbPYlGkt0TXjKrUg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-4.1.1.tgz", + "integrity": "sha512-sASzHngGWt8l6ic1VP0Qf3+ral/RL8L+MculTp2w8NYjjkDiurByOT39KiYmLwpeJ2GQoDR/rdhEwnII8wZQ9g==", "requires": { "@isaacs/string-locale-compare": "^1.1.0", "@npmcli/installed-package-contents": "^1.0.7", @@ -10689,7 +10692,7 @@ "npm-pick-manifest": "^6.1.0", "npm-registry-fetch": "^11.0.0", "pacote": "^12.0.2", - "parse-conflict-json": "^1.1.1", + "parse-conflict-json": "^2.0.1", "proc-log": "^1.0.0", "promise-all-reject-late": "^1.0.0", "promise-call-limit": "^1.0.1", @@ -13435,14 +13438,14 @@ } }, "just-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-3.1.1.tgz", - "integrity": "sha512-sdMWKjRq8qWZEjDcVA6llnUT8RDEBIfOiGpYFPYa9u+2c39JCsejktSP7mj5eRid5EIvTzIpQ2kDOCw1Nq9BjQ==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.0.1.tgz", + "integrity": "sha512-X00TokkRIDotUIf3EV4xUm6ELc/IkqhS/vPSHdWnsM5y0HoNMfEqrazizI7g78lpHvnRSRt/PFfKtRqJCOGIuQ==" }, "just-diff-apply": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-3.0.0.tgz", - "integrity": "sha512-K2MLc+ZC2DVxX4V61bIKPeMUUfj1YYZ3h0myhchDXOW1cKoPZMnjIoNCqv9bF2n5Oob1PFxuR2gVJxkxz4e58w==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-4.0.1.tgz", + "integrity": "sha512-AKOkzB5P6FkfP21UlZVX/OPXx/sC2GagpLX9cBxqHqDuRjwmZ/AJRKSNrB9jHPpRW1W1ONs6gly1gW46t055nQ==" }, "lcov-parse": { "version": "1.0.0", @@ -14379,13 +14382,13 @@ } }, "parse-conflict-json": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz", - "integrity": "sha512-4gySviBiW5TRl7XHvp1agcS7SOe0KZOjC//71dzZVWJrY9hCrgtvl5v3SyIxCZ4fZF47TxD9nfzmxcx76xmbUw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.1.tgz", + "integrity": "sha512-Y7nYw+QaSGBto1LB9lgwOR05Rtz5SbuTf+Oe7HJ6SYQ/DHsvRjQ8O03oWdJbvkt6GzDWospgyZbGmjDYL0sDgA==", "requires": { - "json-parse-even-better-errors": "^2.3.0", - "just-diff": "^3.0.1", - "just-diff-apply": "^3.0.0" + "json-parse-even-better-errors": "^2.3.1", + "just-diff": "^5.0.1", + "just-diff-apply": "^4.0.1" } }, "parse-entities": { diff --git a/package.json b/package.json index 73199f1795d42..6e02b7ca24a00 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ }, "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^4.1.0", + "@npmcli/arborist": "^4.1.1", "@npmcli/ci-detect": "^1.4.0", "@npmcli/config": "^2.3.2", "@npmcli/map-workspaces": "^2.0.0", @@ -108,7 +108,7 @@ "npmlog": "^6.0.0", "opener": "^1.5.2", "pacote": "^12.0.2", - "parse-conflict-json": "^1.1.1", + "parse-conflict-json": "^2.0.1", "proc-log": "^1.0.0", "qrcode-terminal": "^0.12.0", "read": "~1.0.7",