@bigbinary/neeto-audit-frontend 2.0.12 → 2.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -2852,6 +2852,42 @@ _curry2(function mergeDeepRight(lObj, rObj) {
|
|
|
2852
2852
|
}, lObj, rObj);
|
|
2853
2853
|
});
|
|
2854
2854
|
|
|
2855
|
+
/**
|
|
2856
|
+
* Returns a partial copy of an object containing only the keys specified. If
|
|
2857
|
+
* the key does not exist, the property is ignored.
|
|
2858
|
+
*
|
|
2859
|
+
* @func
|
|
2860
|
+
* @memberOf R
|
|
2861
|
+
* @since v0.1.0
|
|
2862
|
+
* @category Object
|
|
2863
|
+
* @sig [k] -> {k: v} -> {k: v}
|
|
2864
|
+
* @param {Array} names an array of String property names to copy onto a new object
|
|
2865
|
+
* @param {Object} obj The object to copy from
|
|
2866
|
+
* @return {Object} A new object with only properties from `names` on it.
|
|
2867
|
+
* @see R.omit, R.props
|
|
2868
|
+
* @example
|
|
2869
|
+
*
|
|
2870
|
+
* R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}
|
|
2871
|
+
* R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}
|
|
2872
|
+
*/
|
|
2873
|
+
|
|
2874
|
+
var pick$1 =
|
|
2875
|
+
/*#__PURE__*/
|
|
2876
|
+
_curry2(function pick(names, obj) {
|
|
2877
|
+
var result = {};
|
|
2878
|
+
var idx = 0;
|
|
2879
|
+
|
|
2880
|
+
while (idx < names.length) {
|
|
2881
|
+
if (names[idx] in obj) {
|
|
2882
|
+
result[names[idx]] = obj[names[idx]];
|
|
2883
|
+
}
|
|
2884
|
+
|
|
2885
|
+
idx += 1;
|
|
2886
|
+
}
|
|
2887
|
+
|
|
2888
|
+
return result;
|
|
2889
|
+
});
|
|
2890
|
+
|
|
2855
2891
|
/**
|
|
2856
2892
|
* Returns a partial copy of an object containing only the keys that satisfy
|
|
2857
2893
|
* the supplied predicate.
|
|
@@ -33484,38 +33520,35 @@ const updateBigbinaryPackages = async (recommendedList) => {
|
|
|
33484
33520
|
startsWith("@bigbinary")
|
|
33485
33521
|
);
|
|
33486
33522
|
|
|
33487
|
-
if (
|
|
33488
|
-
|
|
33523
|
+
if (isEmpty$1(auditPackages)) return recommendedList;
|
|
33524
|
+
let retries = 0;
|
|
33489
33525
|
|
|
33490
|
-
|
|
33491
|
-
|
|
33492
|
-
|
|
33493
|
-
|
|
33494
|
-
|
|
33495
|
-
"https://ops.neetotower.com/api/v1/public/nanos"
|
|
33496
|
-
);
|
|
33526
|
+
while (retries < MAX_RETRIES) {
|
|
33527
|
+
try {
|
|
33528
|
+
const {
|
|
33529
|
+
data: { nanos },
|
|
33530
|
+
} = await axios.get("https://ops.neetotower.com/api/v1/public/nanos");
|
|
33497
33531
|
|
|
33498
|
-
|
|
33499
|
-
|
|
33500
|
-
|
|
33501
|
-
|
|
33532
|
+
const trackedPackages = filterBy(
|
|
33533
|
+
{ name: includes(__, auditPackages) },
|
|
33534
|
+
nanos
|
|
33535
|
+
);
|
|
33502
33536
|
|
|
33503
|
-
|
|
33504
|
-
|
|
33505
|
-
|
|
33537
|
+
trackedPackages.forEach(({ name, current_version }) => {
|
|
33538
|
+
recommendedList[name] = current_version;
|
|
33539
|
+
});
|
|
33506
33540
|
|
|
33507
|
-
|
|
33508
|
-
|
|
33509
|
-
|
|
33510
|
-
|
|
33511
|
-
|
|
33512
|
-
|
|
33513
|
-
|
|
33514
|
-
|
|
33515
|
-
|
|
33516
|
-
|
|
33517
|
-
|
|
33518
|
-
}
|
|
33541
|
+
return recommendedList;
|
|
33542
|
+
} catch (error) {
|
|
33543
|
+
retries++;
|
|
33544
|
+
await new Promise((resolve) => setTimeout(resolve, REQUEST_DELAY));
|
|
33545
|
+
if (retries === MAX_RETRIES) {
|
|
33546
|
+
console.log(
|
|
33547
|
+
chalk$1.yellowBright(
|
|
33548
|
+
"\nCouldn't connect to nanos release tool. Please retry or verify the link is working correctly."
|
|
33549
|
+
)
|
|
33550
|
+
);
|
|
33551
|
+
process.exitCode = 1;
|
|
33519
33552
|
}
|
|
33520
33553
|
}
|
|
33521
33554
|
}
|
|
@@ -33529,9 +33562,26 @@ const getOutdatedPackages = (recommendedVersions, packageJson) => {
|
|
|
33529
33562
|
|
|
33530
33563
|
const dependencyTypePackages = packageJson[type] ?? {};
|
|
33531
33564
|
|
|
33532
|
-
|
|
33565
|
+
let packages = {};
|
|
33566
|
+
let dependenciesToCheck = {};
|
|
33567
|
+
|
|
33568
|
+
if (type === "peerDependencies") {
|
|
33569
|
+
const installedDependencies = [
|
|
33570
|
+
...Object.keys(packageJson.dependencies || {}),
|
|
33571
|
+
...Object.keys(packageJson.devDependencies || {}),
|
|
33572
|
+
];
|
|
33573
|
+
|
|
33574
|
+
dependenciesToCheck = pick$1(installedDependencies, recommendedList);
|
|
33575
|
+
} else {
|
|
33576
|
+
dependenciesToCheck = pick$1(
|
|
33577
|
+
Object.keys(dependencyTypePackages),
|
|
33578
|
+
recommendedList
|
|
33579
|
+
);
|
|
33580
|
+
}
|
|
33581
|
+
|
|
33582
|
+
packages = mapObjIndexed(
|
|
33533
33583
|
(_, key) => eqProps(key, recommendedList, dependencyTypePackages),
|
|
33534
|
-
|
|
33584
|
+
dependenciesToCheck
|
|
33535
33585
|
);
|
|
33536
33586
|
|
|
33537
33587
|
const outdatedPackages = pickBy(not$1, packages);
|
|
@@ -33586,17 +33636,28 @@ const recommendedPackageVersions = async (debug) => {
|
|
|
33586
33636
|
);
|
|
33587
33637
|
|
|
33588
33638
|
const fix = async (debug) => {
|
|
33639
|
+
const outdatedPeerDependenciesKeys = findBy(
|
|
33640
|
+
{ type: "peerDependencies" },
|
|
33641
|
+
packagesToUpdate
|
|
33642
|
+
)?.outdatedPackages;
|
|
33643
|
+
|
|
33644
|
+
const peerDependenciesToBeUpdated = pick$1(
|
|
33645
|
+
outdatedPeerDependenciesKeys,
|
|
33646
|
+
recommendedVersions.peerDependencies
|
|
33647
|
+
);
|
|
33648
|
+
|
|
33589
33649
|
let newPackageJson = mergeDeepRight(
|
|
33590
33650
|
packageJson,
|
|
33591
|
-
objOf("peerDependencies",
|
|
33651
|
+
objOf("peerDependencies", peerDependenciesToBeUpdated)
|
|
33592
33652
|
);
|
|
33653
|
+
|
|
33593
33654
|
newPackageJson = sortByKey(newPackageJson);
|
|
33594
33655
|
|
|
33595
|
-
isNotEmpty(
|
|
33656
|
+
isNotEmpty(peerDependenciesToBeUpdated) &&
|
|
33596
33657
|
(await createOrReplaceFile({
|
|
33597
33658
|
relativeFilePath: PACKAGE_JSON_PATH,
|
|
33598
33659
|
content: JSON.stringify(newPackageJson, null, 2),
|
|
33599
|
-
debug
|
|
33660
|
+
debug,
|
|
33600
33661
|
}));
|
|
33601
33662
|
|
|
33602
33663
|
const commands = getInstallationCommands(
|
|
@@ -33618,7 +33679,7 @@ const recommendedPackageVersions = async (debug) => {
|
|
|
33618
33679
|
return {
|
|
33619
33680
|
error: "The dependency packages are not using the recommended versions.",
|
|
33620
33681
|
status: STATUSES.FAIL,
|
|
33621
|
-
fix
|
|
33682
|
+
fix,
|
|
33622
33683
|
};
|
|
33623
33684
|
}
|
|
33624
33685
|
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { existsBy, isNotEmpty } from "@bigbinary/neeto-cist";
|
|
2
|
-
import { mergeDeepRight, objOf } from "ramda";
|
|
1
|
+
import { existsBy, isNotEmpty, findBy } from "@bigbinary/neeto-cist";
|
|
2
|
+
import { mergeDeepRight, objOf, pick } from "ramda";
|
|
3
3
|
|
|
4
4
|
import recommendedDependencies from "../../../common/recommendedDependencies";
|
|
5
5
|
import { NANO_TYPE_MAP, PACKAGE_JSON_PATH, STATUSES } from "../../constants";
|
|
@@ -7,12 +7,12 @@ import {
|
|
|
7
7
|
createOrReplaceFile,
|
|
8
8
|
execute,
|
|
9
9
|
getNanoType,
|
|
10
|
-
getPackageJson
|
|
10
|
+
getPackageJson,
|
|
11
11
|
} from "../../utils";
|
|
12
12
|
import {
|
|
13
13
|
getInstallationCommands,
|
|
14
14
|
getOutdatedPackages,
|
|
15
|
-
sortByKey
|
|
15
|
+
sortByKey,
|
|
16
16
|
} from "./utils";
|
|
17
17
|
|
|
18
18
|
const recommendedPackageVersions = async (debug) => {
|
|
@@ -35,17 +35,28 @@ const recommendedPackageVersions = async (debug) => {
|
|
|
35
35
|
);
|
|
36
36
|
|
|
37
37
|
const fix = async (debug) => {
|
|
38
|
+
const outdatedPeerDependenciesKeys = findBy(
|
|
39
|
+
{ type: "peerDependencies" },
|
|
40
|
+
packagesToUpdate
|
|
41
|
+
)?.outdatedPackages;
|
|
42
|
+
|
|
43
|
+
const peerDependenciesToBeUpdated = pick(
|
|
44
|
+
outdatedPeerDependenciesKeys,
|
|
45
|
+
recommendedVersions.peerDependencies
|
|
46
|
+
);
|
|
47
|
+
|
|
38
48
|
let newPackageJson = mergeDeepRight(
|
|
39
49
|
packageJson,
|
|
40
|
-
objOf("peerDependencies",
|
|
50
|
+
objOf("peerDependencies", peerDependenciesToBeUpdated)
|
|
41
51
|
);
|
|
52
|
+
|
|
42
53
|
newPackageJson = sortByKey(newPackageJson);
|
|
43
54
|
|
|
44
|
-
isNotEmpty(
|
|
55
|
+
isNotEmpty(peerDependenciesToBeUpdated) &&
|
|
45
56
|
(await createOrReplaceFile({
|
|
46
57
|
relativeFilePath: PACKAGE_JSON_PATH,
|
|
47
58
|
content: JSON.stringify(newPackageJson, null, 2),
|
|
48
|
-
debug
|
|
59
|
+
debug,
|
|
49
60
|
}));
|
|
50
61
|
|
|
51
62
|
const commands = getInstallationCommands(
|
|
@@ -67,7 +78,7 @@ const recommendedPackageVersions = async (debug) => {
|
|
|
67
78
|
return {
|
|
68
79
|
error: "The dependency packages are not using the recommended versions.",
|
|
69
80
|
status: STATUSES.FAIL,
|
|
70
|
-
fix
|
|
81
|
+
fix,
|
|
71
82
|
};
|
|
72
83
|
}
|
|
73
84
|
|
|
@@ -12,9 +12,10 @@ import {
|
|
|
12
12
|
isEmpty,
|
|
13
13
|
startsWith,
|
|
14
14
|
includes,
|
|
15
|
-
|
|
15
|
+
pick,
|
|
16
|
+
__,
|
|
16
17
|
} from "ramda";
|
|
17
|
-
import { filterBy, findBy
|
|
18
|
+
import { filterBy, findBy } from "@bigbinary/neeto-cist";
|
|
18
19
|
|
|
19
20
|
import { DEPENDENCY_TYPES, MAX_RETRIES, REQUEST_DELAY } from "./constants";
|
|
20
21
|
|
|
@@ -23,39 +24,37 @@ const updateBigbinaryPackages = async (recommendedList) => {
|
|
|
23
24
|
startsWith("@bigbinary")
|
|
24
25
|
);
|
|
25
26
|
|
|
26
|
-
if (
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
27
|
+
if (isEmpty(auditPackages)) return recommendedList;
|
|
28
|
+
|
|
29
|
+
let success = false;
|
|
30
|
+
let retries = 0;
|
|
31
|
+
|
|
32
|
+
while (!success && retries < MAX_RETRIES) {
|
|
33
|
+
try {
|
|
34
|
+
const {
|
|
35
|
+
data: { nanos },
|
|
36
|
+
} = await axios.get("https://ops.neetotower.com/api/v1/public/nanos");
|
|
37
|
+
|
|
38
|
+
const trackedPackages = filterBy(
|
|
39
|
+
{ name: includes(__, auditPackages) },
|
|
40
|
+
nanos
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
trackedPackages.forEach(({ name, current_version }) => {
|
|
44
|
+
recommendedList[name] = current_version;
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
return recommendedList;
|
|
48
|
+
} catch (error) {
|
|
49
|
+
retries++;
|
|
50
|
+
await new Promise((resolve) => setTimeout(resolve, REQUEST_DELAY));
|
|
51
|
+
if (retries === MAX_RETRIES) {
|
|
52
|
+
console.log(
|
|
53
|
+
chalk.yellowBright(
|
|
54
|
+
"\nCouldn't connect to nanos release tool. Please retry or verify the link is working correctly."
|
|
55
|
+
)
|
|
41
56
|
);
|
|
42
|
-
|
|
43
|
-
trackedPackages.forEach(({ name, current_version }) => {
|
|
44
|
-
recommendedList[name] = current_version;
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
return recommendedList;
|
|
48
|
-
} catch (error) {
|
|
49
|
-
retries++;
|
|
50
|
-
await new Promise((resolve) => setTimeout(resolve, REQUEST_DELAY));
|
|
51
|
-
if (retries === MAX_RETRIES) {
|
|
52
|
-
console.log(
|
|
53
|
-
chalk.yellowBright(
|
|
54
|
-
"\nCouldn't connect to nanos release tool. Please retry or verify the link is working correctly."
|
|
55
|
-
)
|
|
56
|
-
);
|
|
57
|
-
process.exitCode = 1;
|
|
58
|
-
}
|
|
57
|
+
process.exitCode = 1;
|
|
59
58
|
}
|
|
60
59
|
}
|
|
61
60
|
}
|
|
@@ -69,9 +68,26 @@ export const getOutdatedPackages = (recommendedVersions, packageJson) => {
|
|
|
69
68
|
|
|
70
69
|
const dependencyTypePackages = packageJson[type] ?? {};
|
|
71
70
|
|
|
72
|
-
|
|
71
|
+
let packages = {};
|
|
72
|
+
let dependenciesToCheck = {};
|
|
73
|
+
|
|
74
|
+
if (type === "peerDependencies") {
|
|
75
|
+
const installedDependencies = [
|
|
76
|
+
...Object.keys(packageJson.dependencies || {}),
|
|
77
|
+
...Object.keys(packageJson.devDependencies || {}),
|
|
78
|
+
];
|
|
79
|
+
|
|
80
|
+
dependenciesToCheck = pick(installedDependencies, recommendedList);
|
|
81
|
+
} else {
|
|
82
|
+
dependenciesToCheck = pick(
|
|
83
|
+
Object.keys(dependencyTypePackages),
|
|
84
|
+
recommendedList
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
packages = mapObjIndexed(
|
|
73
89
|
(_, key) => eqProps(key, recommendedList, dependencyTypePackages),
|
|
74
|
-
|
|
90
|
+
dependenciesToCheck
|
|
75
91
|
);
|
|
76
92
|
|
|
77
93
|
const outdatedPackages = pickBy(not, packages);
|