@bigbinary/neeto-audit-frontend 2.0.12 → 2.0.14
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/.github/workflows/create_and_publish_release.yml +5 -5
- package/README.md +1 -0
- package/common/recommendedDependencies/extension.js +1 -1
- package/common/recommendedDependencies/frontend.js +2 -2
- package/common/recommendedDependencies/nano.js +2 -2
- package/dist/index.js +1085 -561
- package/package.json +2 -2
- package/src/verifiers/recommendedPackageVersions/index.js +19 -8
- package/src/verifiers/recommendedPackageVersions/utils.js +52 -36
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-audit-frontend",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.14",
|
|
4
4
|
"description": "Audits neeto frontend codebase for issues and suggests a fix.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": "./dist/index.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@bigbinary/neeto-cist": "1.0.8",
|
|
30
30
|
"@bigbinary/neeto-commons-frontend": "3.1.10",
|
|
31
|
-
"axios": "1.
|
|
31
|
+
"axios": "1.7.4",
|
|
32
32
|
"chalk": "5.3.0",
|
|
33
33
|
"commander": "11.1.0",
|
|
34
34
|
"ora": "8.0.1",
|
|
@@ -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);
|