@bigbinary/neeto-audit-frontend 2.0.11 → 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.
@@ -13,6 +13,8 @@ const DEV_DEPENDENCIES = {
13
13
  "@rollup/plugin-node-resolve": "15.2.3",
14
14
  "@rollup/plugin-replace": "5.0.4",
15
15
  "@svgr/rollup": "8.1.0",
16
+ "@tanstack/react-query": "5.40.0",
17
+ "@tanstack/react-query-devtools": "5.40.0",
16
18
  antd: "5.10.2",
17
19
  axios: "1.6.0",
18
20
  classnames: "2.3.2",
@@ -25,7 +27,6 @@ const DEV_DEPENDENCIES = {
25
27
  "react-dom": "18.2.0",
26
28
  "react-helmet": "6.1.0",
27
29
  "react-i18next": "13.3.1",
28
- "react-query": "3.39.3",
29
30
  "react-router-dom": "5.3.4",
30
31
  "react-toastify": "8.2.0",
31
32
  rollup: "2.79.1",
@@ -47,6 +48,8 @@ const PEER_DEPENDENCIES = {
47
48
  "@bigbinary/neetoui": "latest",
48
49
  "@honeybadger-io/js": "^6.5.3",
49
50
  "@honeybadger-io/react": "^6.1.9",
51
+ "@tanstack/react-query": "5.40.0",
52
+ "@tanstack/react-query-devtools": "5.40.0",
50
53
  axios: "^1.6.0",
51
54
  classnames: "^2.3.2",
52
55
  formik: "^2.4.5",
@@ -57,7 +60,6 @@ const PEER_DEPENDENCIES = {
57
60
  "react-dom": "^18.2.0",
58
61
  "react-helmet": "^6.1.0",
59
62
  "react-i18next": "^13.3.1",
60
- "react-query": "^3.39.3",
61
63
  "react-router-dom": "^5.3.4",
62
64
  "react-toastify": "^8.2.0",
63
65
  yup: "^0.32.11",
@@ -13,6 +13,8 @@ const DEV_DEPENDENCIES = {
13
13
  "@rollup/plugin-node-resolve": "15.2.3",
14
14
  "@rollup/plugin-replace": "5.0.4",
15
15
  "@svgr/rollup": "8.1.0",
16
+ "@tanstack/react-query": "5.40.0",
17
+ "@tanstack/react-query-devtools": "5.40.0",
16
18
  antd: "5.10.2",
17
19
  axios: "1.6.0",
18
20
  classnames: "2.3.2",
@@ -25,7 +27,6 @@ const DEV_DEPENDENCIES = {
25
27
  "react-dom": "18.2.0",
26
28
  "react-helmet": "6.1.0",
27
29
  "react-i18next": "13.3.1",
28
- "react-query": "3.39.3",
29
30
  "react-router-dom": "5.3.4",
30
31
  "react-toastify": "8.2.0",
31
32
  rollup: "2.79.1",
@@ -47,6 +48,8 @@ const PEER_DEPENDENCIES = {
47
48
  "@bigbinary/neetoui": "latest",
48
49
  "@honeybadger-io/js": "^6.5.3",
49
50
  "@honeybadger-io/react": "^6.1.9",
51
+ "@tanstack/react-query": "5.40.0",
52
+ "@tanstack/react-query-devtools": "5.40.0",
50
53
  axios: "^1.6.0",
51
54
  classnames: "^2.3.2",
52
55
  formik: "^2.4.5",
@@ -57,7 +60,6 @@ const PEER_DEPENDENCIES = {
57
60
  "react-dom": "^18.2.0",
58
61
  "react-helmet": "^6.1.0",
59
62
  "react-i18next": "^13.3.1",
60
- "react-query": "^3.39.3",
61
63
  "react-router-dom": "^5.3.4",
62
64
  "react-toastify": "^8.2.0",
63
65
  yup: "^0.32.11",
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.
@@ -16155,6 +16191,8 @@ const DEV_DEPENDENCIES$2 = {
16155
16191
  "@rollup/plugin-node-resolve": "15.2.3",
16156
16192
  "@rollup/plugin-replace": "5.0.4",
16157
16193
  "@svgr/rollup": "8.1.0",
16194
+ "@tanstack/react-query": "5.40.0",
16195
+ "@tanstack/react-query-devtools": "5.40.0",
16158
16196
  antd: "5.10.2",
16159
16197
  axios: "1.6.0",
16160
16198
  classnames: "2.3.2",
@@ -16167,7 +16205,6 @@ const DEV_DEPENDENCIES$2 = {
16167
16205
  "react-dom": "18.2.0",
16168
16206
  "react-helmet": "6.1.0",
16169
16207
  "react-i18next": "13.3.1",
16170
- "react-query": "3.39.3",
16171
16208
  "react-router-dom": "5.3.4",
16172
16209
  "react-toastify": "8.2.0",
16173
16210
  rollup: "2.79.1",
@@ -16189,6 +16226,8 @@ const PEER_DEPENDENCIES$2 = {
16189
16226
  "@bigbinary/neetoui": "latest",
16190
16227
  "@honeybadger-io/js": "^6.5.3",
16191
16228
  "@honeybadger-io/react": "^6.1.9",
16229
+ "@tanstack/react-query": "5.40.0",
16230
+ "@tanstack/react-query-devtools": "5.40.0",
16192
16231
  axios: "^1.6.0",
16193
16232
  classnames: "^2.3.2",
16194
16233
  formik: "^2.4.5",
@@ -16199,7 +16238,6 @@ const PEER_DEPENDENCIES$2 = {
16199
16238
  "react-dom": "^18.2.0",
16200
16239
  "react-helmet": "^6.1.0",
16201
16240
  "react-i18next": "^13.3.1",
16202
- "react-query": "^3.39.3",
16203
16241
  "react-router-dom": "^5.3.4",
16204
16242
  "react-toastify": "^8.2.0",
16205
16243
  yup: "^0.32.11",
@@ -16226,6 +16264,8 @@ const DEV_DEPENDENCIES$1 = {
16226
16264
  "@rollup/plugin-node-resolve": "15.2.3",
16227
16265
  "@rollup/plugin-replace": "5.0.4",
16228
16266
  "@svgr/rollup": "8.1.0",
16267
+ "@tanstack/react-query": "5.40.0",
16268
+ "@tanstack/react-query-devtools": "5.40.0",
16229
16269
  antd: "5.10.2",
16230
16270
  axios: "1.6.0",
16231
16271
  classnames: "2.3.2",
@@ -16238,7 +16278,6 @@ const DEV_DEPENDENCIES$1 = {
16238
16278
  "react-dom": "18.2.0",
16239
16279
  "react-helmet": "6.1.0",
16240
16280
  "react-i18next": "13.3.1",
16241
- "react-query": "3.39.3",
16242
16281
  "react-router-dom": "5.3.4",
16243
16282
  "react-toastify": "8.2.0",
16244
16283
  rollup: "2.79.1",
@@ -16260,6 +16299,8 @@ const PEER_DEPENDENCIES$1 = {
16260
16299
  "@bigbinary/neetoui": "latest",
16261
16300
  "@honeybadger-io/js": "^6.5.3",
16262
16301
  "@honeybadger-io/react": "^6.1.9",
16302
+ "@tanstack/react-query": "5.40.0",
16303
+ "@tanstack/react-query-devtools": "5.40.0",
16263
16304
  axios: "^1.6.0",
16264
16305
  classnames: "^2.3.2",
16265
16306
  formik: "^2.4.5",
@@ -16270,7 +16311,6 @@ const PEER_DEPENDENCIES$1 = {
16270
16311
  "react-dom": "^18.2.0",
16271
16312
  "react-helmet": "^6.1.0",
16272
16313
  "react-i18next": "^13.3.1",
16273
- "react-query": "^3.39.3",
16274
16314
  "react-router-dom": "^5.3.4",
16275
16315
  "react-toastify": "^8.2.0",
16276
16316
  yup: "^0.32.11",
@@ -33480,38 +33520,35 @@ const updateBigbinaryPackages = async (recommendedList) => {
33480
33520
  startsWith("@bigbinary")
33481
33521
  );
33482
33522
 
33483
- if (isNotEmpty(auditPackages)) {
33484
- let retries = 0;
33523
+ if (isEmpty$1(auditPackages)) return recommendedList;
33524
+ let retries = 0;
33485
33525
 
33486
- while (retries < MAX_RETRIES) {
33487
- try {
33488
- const {
33489
- data: { nanos }
33490
- } = await axios.get(
33491
- "https://ops.neetotower.com/api/v1/public/nanos"
33492
- );
33526
+ while (retries < MAX_RETRIES) {
33527
+ try {
33528
+ const {
33529
+ data: { nanos },
33530
+ } = await axios.get("https://ops.neetotower.com/api/v1/public/nanos");
33493
33531
 
33494
- const trackedPackages = filterBy(
33495
- { name: includes(__, auditPackages) },
33496
- nanos
33497
- );
33532
+ const trackedPackages = filterBy(
33533
+ { name: includes(__, auditPackages) },
33534
+ nanos
33535
+ );
33498
33536
 
33499
- trackedPackages.forEach(({ name, current_version }) => {
33500
- recommendedList[name] = current_version;
33501
- });
33537
+ trackedPackages.forEach(({ name, current_version }) => {
33538
+ recommendedList[name] = current_version;
33539
+ });
33502
33540
 
33503
- return recommendedList;
33504
- } catch (error) {
33505
- retries++;
33506
- await new Promise((resolve) => setTimeout(resolve, REQUEST_DELAY));
33507
- if (retries === MAX_RETRIES) {
33508
- console.log(
33509
- chalk$1.yellowBright(
33510
- "\nCouldn't connect to nanos release tool. Please retry or verify the link is working correctly."
33511
- )
33512
- );
33513
- process.exitCode = 1;
33514
- }
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;
33515
33552
  }
33516
33553
  }
33517
33554
  }
@@ -33525,9 +33562,26 @@ const getOutdatedPackages = (recommendedVersions, packageJson) => {
33525
33562
 
33526
33563
  const dependencyTypePackages = packageJson[type] ?? {};
33527
33564
 
33528
- const packages = mapObjIndexed(
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(
33529
33583
  (_, key) => eqProps(key, recommendedList, dependencyTypePackages),
33530
- recommendedList
33584
+ dependenciesToCheck
33531
33585
  );
33532
33586
 
33533
33587
  const outdatedPackages = pickBy(not$1, packages);
@@ -33582,17 +33636,28 @@ const recommendedPackageVersions = async (debug) => {
33582
33636
  );
33583
33637
 
33584
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
+
33585
33649
  let newPackageJson = mergeDeepRight(
33586
33650
  packageJson,
33587
- objOf("peerDependencies", recommendedVersions.peerDependencies)
33651
+ objOf("peerDependencies", peerDependenciesToBeUpdated)
33588
33652
  );
33653
+
33589
33654
  newPackageJson = sortByKey(newPackageJson);
33590
33655
 
33591
- isNotEmpty(recommendedVersions.peerDependencies) &&
33656
+ isNotEmpty(peerDependenciesToBeUpdated) &&
33592
33657
  (await createOrReplaceFile({
33593
33658
  relativeFilePath: PACKAGE_JSON_PATH,
33594
33659
  content: JSON.stringify(newPackageJson, null, 2),
33595
- debug
33660
+ debug,
33596
33661
  }));
33597
33662
 
33598
33663
  const commands = getInstallationCommands(
@@ -33614,7 +33679,7 @@ const recommendedPackageVersions = async (debug) => {
33614
33679
  return {
33615
33680
  error: "The dependency packages are not using the recommended versions.",
33616
33681
  status: STATUSES.FAIL,
33617
- fix
33682
+ fix,
33618
33683
  };
33619
33684
  }
33620
33685
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-audit-frontend",
3
- "version": "2.0.11",
3
+ "version": "2.0.13",
4
4
  "description": "Audits neeto frontend codebase for issues and suggests a fix.",
5
5
  "type": "module",
6
6
  "bin": "./dist/index.js",
@@ -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", recommendedVersions.peerDependencies)
50
+ objOf("peerDependencies", peerDependenciesToBeUpdated)
41
51
  );
52
+
42
53
  newPackageJson = sortByKey(newPackageJson);
43
54
 
44
- isNotEmpty(recommendedVersions.peerDependencies) &&
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, isNotEmpty } from "@bigbinary/neeto-cist";
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 (isNotEmpty(auditPackages)) {
27
- let success = false;
28
- let retries = 0;
29
-
30
- while (!success && retries < MAX_RETRIES) {
31
- try {
32
- const {
33
- data: { nanos }
34
- } = await axios.get(
35
- "https://ops.neetotower.com/api/v1/public/nanos"
36
- );
37
-
38
- const trackedPackages = filterBy(
39
- { name: includes(__, auditPackages) },
40
- nanos
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
- const packages = mapObjIndexed(
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
- recommendedList
90
+ dependenciesToCheck
75
91
  );
76
92
 
77
93
  const outdatedPackages = pickBy(not, packages);