@teambit/workspace 0.0.827 → 0.0.830
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/__snapshots__/pick-outdated-pkgs.spec.ts.snap +95 -12
- package/dist/__snapshots__/pick-outdated-pkgs.spec.js.snap +83 -6
- package/dist/__snapshots__/pick-outdated-pkgs.spec.ts.snap +95 -12
- package/dist/pick-outdated-pkgs.d.ts +5 -1
- package/dist/pick-outdated-pkgs.js +98 -4
- package/dist/pick-outdated-pkgs.js.map +1 -1
- package/dist/pick-outdated-pkgs.spec.js +57 -0
- package/dist/pick-outdated-pkgs.spec.js.map +1 -1
- package/dist/ui/workspace/use-workspace.d.ts +3 -3
- package/dist/workspace.js +3 -1
- package/dist/workspace.js.map +1 -1
- package/package-tar/teambit-workspace-0.0.830.tgz +0 -0
- package/package.json +24 -22
- package/{preview-1661484705674.js → preview-1661759589772.js} +2 -2
- package/package-tar/teambit-workspace-0.0.827.tgz +0 -0
|
@@ -1,12 +1,90 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
+
exports[`makeOutdatedPkgChoices should group component model updates of the same dependency 1`] = `
|
|
4
|
+
Array [
|
|
5
|
+
Object {
|
|
6
|
+
"choices": Array [
|
|
7
|
+
Object {
|
|
8
|
+
"message": "foo [90m(runtime)[39m * ❯ [91m[1m2.0.0[22m[39m because of comp1 and 1 other components ",
|
|
9
|
+
"name": "foo",
|
|
10
|
+
"value": Object {
|
|
11
|
+
"currentRange": "1.0.0",
|
|
12
|
+
"dependentComponents": Array [
|
|
13
|
+
"comp1",
|
|
14
|
+
"comp2",
|
|
15
|
+
],
|
|
16
|
+
"hasDifferentRanges": true,
|
|
17
|
+
"latestRange": "2.0.0",
|
|
18
|
+
"name": "foo",
|
|
19
|
+
"source": "rootPolicy",
|
|
20
|
+
"targetField": "dependencies",
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
"message": "[36mRoot policies[39m",
|
|
25
|
+
},
|
|
26
|
+
]
|
|
27
|
+
`;
|
|
28
|
+
|
|
29
|
+
exports[`makeOutdatedPkgChoices should group component model updates of the same dependency and display the current range when all components use the same range 1`] = `
|
|
30
|
+
Array [
|
|
31
|
+
Object {
|
|
32
|
+
"choices": Array [
|
|
33
|
+
Object {
|
|
34
|
+
"message": "foo [90m(runtime)[39m ^1.2.3 ❯ [91m[1m2.0.0[22m[39m because of comp1 and 1 other components ",
|
|
35
|
+
"name": "foo",
|
|
36
|
+
"value": Object {
|
|
37
|
+
"currentRange": "^1.2.3",
|
|
38
|
+
"dependentComponents": Array [
|
|
39
|
+
"comp1",
|
|
40
|
+
"comp2",
|
|
41
|
+
],
|
|
42
|
+
"latestRange": "2.0.0",
|
|
43
|
+
"name": "foo",
|
|
44
|
+
"source": "rootPolicy",
|
|
45
|
+
"targetField": "dependencies",
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
"message": "[36mRoot policies[39m",
|
|
50
|
+
},
|
|
51
|
+
]
|
|
52
|
+
`;
|
|
53
|
+
|
|
54
|
+
exports[`makeOutdatedPkgChoices should group component model updates of the same dependency and use * as current range when can't compare ranges 1`] = `
|
|
55
|
+
Array [
|
|
56
|
+
Object {
|
|
57
|
+
"choices": Array [
|
|
58
|
+
Object {
|
|
59
|
+
"message": "foo [90m(runtime)[39m * ❯ [91m[1m2.0.0[22m[39m because of comp1 and 1 other components ",
|
|
60
|
+
"name": "foo",
|
|
61
|
+
"value": Object {
|
|
62
|
+
"currentRange": "*",
|
|
63
|
+
"dependentComponents": Array [
|
|
64
|
+
"comp1",
|
|
65
|
+
"comp2",
|
|
66
|
+
],
|
|
67
|
+
"hasDifferentRanges": true,
|
|
68
|
+
"latestRange": "2.0.0",
|
|
69
|
+
"name": "foo",
|
|
70
|
+
"source": "rootPolicy",
|
|
71
|
+
"targetField": "dependencies",
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
"message": "[36mRoot policies[39m",
|
|
76
|
+
},
|
|
77
|
+
]
|
|
78
|
+
`;
|
|
79
|
+
|
|
3
80
|
exports[`makeOutdatedPkgChoices should render choices in correct order 1`] = `
|
|
4
81
|
Array [
|
|
5
82
|
Object {
|
|
6
83
|
"choices": Array [
|
|
7
84
|
Object {
|
|
8
|
-
"message": "foo [90m(runtime)[39m 1.0.0 ❯ [91m[1m2.0.0[22m[39m
|
|
9
|
-
"name":
|
|
85
|
+
"message": "foo [90m(runtime)[39m 1.0.0 ❯ [91m[1m2.0.0[22m[39m ",
|
|
86
|
+
"name": "foo",
|
|
87
|
+
"value": Object {
|
|
10
88
|
"currentRange": "1.0.0",
|
|
11
89
|
"latestRange": "2.0.0",
|
|
12
90
|
"name": "foo",
|
|
@@ -15,8 +93,9 @@ Array [
|
|
|
15
93
|
},
|
|
16
94
|
},
|
|
17
95
|
Object {
|
|
18
|
-
"message": "qar [90m(runtime)[39m 1.0.0 ❯ 1.[92m[1m1.0[22m[39m
|
|
19
|
-
"name":
|
|
96
|
+
"message": "qar [90m(runtime)[39m 1.0.0 ❯ 1.[92m[1m1.0[22m[39m ",
|
|
97
|
+
"name": "qar",
|
|
98
|
+
"value": Object {
|
|
20
99
|
"currentRange": "1.0.0",
|
|
21
100
|
"latestRange": "1.1.0",
|
|
22
101
|
"name": "qar",
|
|
@@ -25,8 +104,9 @@ Array [
|
|
|
25
104
|
},
|
|
26
105
|
},
|
|
27
106
|
Object {
|
|
28
|
-
"message": "zoo [90m(dev)[39m 1.0.0 ❯ 1.[92m[1m1.0[22m[39m
|
|
29
|
-
"name":
|
|
107
|
+
"message": "zoo [90m(dev)[39m 1.0.0 ❯ 1.[92m[1m1.0[22m[39m ",
|
|
108
|
+
"name": "zoo",
|
|
109
|
+
"value": Object {
|
|
30
110
|
"currentRange": "1.0.0",
|
|
31
111
|
"latestRange": "1.1.0",
|
|
32
112
|
"name": "zoo",
|
|
@@ -35,8 +115,9 @@ Array [
|
|
|
35
115
|
},
|
|
36
116
|
},
|
|
37
117
|
Object {
|
|
38
|
-
"message": "bar [90m(peer)[39m 1.0.0 ❯ 1.[92m[1m1.0[22m[39m
|
|
39
|
-
"name":
|
|
118
|
+
"message": "bar [90m(peer)[39m 1.0.0 ❯ 1.[92m[1m1.0[22m[39m ",
|
|
119
|
+
"name": "bar",
|
|
120
|
+
"value": Object {
|
|
40
121
|
"currentRange": "1.0.0",
|
|
41
122
|
"latestRange": "1.1.0",
|
|
42
123
|
"name": "bar",
|
|
@@ -55,8 +136,9 @@ Array [
|
|
|
55
136
|
Object {
|
|
56
137
|
"choices": Array [
|
|
57
138
|
Object {
|
|
58
|
-
"message": "foo [90m(runtime)[39m 1.0.0 ❯ [91m[1m2.0.0[22m[39m
|
|
59
|
-
"name":
|
|
139
|
+
"message": "foo [90m(runtime)[39m 1.0.0 ❯ [91m[1m2.0.0[22m[39m ",
|
|
140
|
+
"name": "foo",
|
|
141
|
+
"value": Object {
|
|
60
142
|
"componentId": "comp1",
|
|
61
143
|
"currentRange": "1.0.0",
|
|
62
144
|
"latestRange": "2.0.0",
|
|
@@ -71,8 +153,9 @@ Array [
|
|
|
71
153
|
Object {
|
|
72
154
|
"choices": Array [
|
|
73
155
|
Object {
|
|
74
|
-
"message": "bar [90m(peer)[39m 1.0.0 ❯ 1.[92m[1m1.0[22m[39m
|
|
75
|
-
"name":
|
|
156
|
+
"message": "bar [90m(peer)[39m 1.0.0 ❯ 1.[92m[1m1.0[22m[39m ",
|
|
157
|
+
"name": "bar",
|
|
158
|
+
"value": Object {
|
|
76
159
|
"currentRange": "1.0.0",
|
|
77
160
|
"latestRange": "1.1.0",
|
|
78
161
|
"name": "bar",
|
|
@@ -1,11 +1,88 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
+
exports[`makeOutdatedPkgChoices should group component model updates of the same dependency 1`] = `
|
|
4
|
+
Array [
|
|
5
|
+
Object {
|
|
6
|
+
"choices": Array [
|
|
7
|
+
Object {
|
|
8
|
+
"message": "foo [90m(runtime)[39m * ❯ 2.0.0 because of comp1 and 1 other components ",
|
|
9
|
+
"name": "foo",
|
|
10
|
+
"value": Object {
|
|
11
|
+
"currentRange": "1.0.0",
|
|
12
|
+
"dependentComponents": Array [
|
|
13
|
+
"comp1",
|
|
14
|
+
"comp2",
|
|
15
|
+
],
|
|
16
|
+
"hasDifferentRanges": true,
|
|
17
|
+
"latestRange": "2.0.0",
|
|
18
|
+
"name": "foo",
|
|
19
|
+
"source": "rootPolicy",
|
|
20
|
+
"targetField": "dependencies",
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
"message": "[36mRoot policies[39m",
|
|
25
|
+
},
|
|
26
|
+
]
|
|
27
|
+
`;
|
|
28
|
+
|
|
29
|
+
exports[`makeOutdatedPkgChoices should group component model updates of the same dependency and display the current range when all components use the same range 1`] = `
|
|
30
|
+
Array [
|
|
31
|
+
Object {
|
|
32
|
+
"choices": Array [
|
|
33
|
+
Object {
|
|
34
|
+
"message": "foo [90m(runtime)[39m ^1.2.3 ❯ 2.0.0 because of comp1 and 1 other components ",
|
|
35
|
+
"name": "foo",
|
|
36
|
+
"value": Object {
|
|
37
|
+
"currentRange": "^1.2.3",
|
|
38
|
+
"dependentComponents": Array [
|
|
39
|
+
"comp1",
|
|
40
|
+
"comp2",
|
|
41
|
+
],
|
|
42
|
+
"latestRange": "2.0.0",
|
|
43
|
+
"name": "foo",
|
|
44
|
+
"source": "rootPolicy",
|
|
45
|
+
"targetField": "dependencies",
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
"message": "[36mRoot policies[39m",
|
|
50
|
+
},
|
|
51
|
+
]
|
|
52
|
+
`;
|
|
53
|
+
|
|
54
|
+
exports[`makeOutdatedPkgChoices should group component model updates of the same dependency and use * as current range when can't compare ranges 1`] = `
|
|
55
|
+
Array [
|
|
56
|
+
Object {
|
|
57
|
+
"choices": Array [
|
|
58
|
+
Object {
|
|
59
|
+
"message": "foo [90m(runtime)[39m * ❯ 2.0.0 because of comp1 and 1 other components ",
|
|
60
|
+
"name": "foo",
|
|
61
|
+
"value": Object {
|
|
62
|
+
"currentRange": "*",
|
|
63
|
+
"dependentComponents": Array [
|
|
64
|
+
"comp1",
|
|
65
|
+
"comp2",
|
|
66
|
+
],
|
|
67
|
+
"hasDifferentRanges": true,
|
|
68
|
+
"latestRange": "2.0.0",
|
|
69
|
+
"name": "foo",
|
|
70
|
+
"source": "rootPolicy",
|
|
71
|
+
"targetField": "dependencies",
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
"message": "[36mRoot policies[39m",
|
|
76
|
+
},
|
|
77
|
+
]
|
|
78
|
+
`;
|
|
79
|
+
|
|
3
80
|
exports[`makeOutdatedPkgChoices should render choices in correct order 1`] = `
|
|
4
81
|
Array [
|
|
5
82
|
Object {
|
|
6
83
|
"choices": Array [
|
|
7
84
|
Object {
|
|
8
|
-
"message": "foo [90m(runtime)[39m 1.0.0 ❯ 2.0.0
|
|
85
|
+
"message": "foo [90m(runtime)[39m 1.0.0 ❯ 2.0.0 ",
|
|
9
86
|
"name": "foo",
|
|
10
87
|
"value": Object {
|
|
11
88
|
"currentRange": "1.0.0",
|
|
@@ -16,7 +93,7 @@ Array [
|
|
|
16
93
|
},
|
|
17
94
|
},
|
|
18
95
|
Object {
|
|
19
|
-
"message": "qar [90m(runtime)[39m 1.0.0 ❯ 1.1.0
|
|
96
|
+
"message": "qar [90m(runtime)[39m 1.0.0 ❯ 1.1.0 ",
|
|
20
97
|
"name": "qar",
|
|
21
98
|
"value": Object {
|
|
22
99
|
"currentRange": "1.0.0",
|
|
@@ -27,7 +104,7 @@ Array [
|
|
|
27
104
|
},
|
|
28
105
|
},
|
|
29
106
|
Object {
|
|
30
|
-
"message": "zoo [90m(dev)[39m 1.0.0 ❯ 1.1.0
|
|
107
|
+
"message": "zoo [90m(dev)[39m 1.0.0 ❯ 1.1.0 ",
|
|
31
108
|
"name": "zoo",
|
|
32
109
|
"value": Object {
|
|
33
110
|
"currentRange": "1.0.0",
|
|
@@ -38,7 +115,7 @@ Array [
|
|
|
38
115
|
},
|
|
39
116
|
},
|
|
40
117
|
Object {
|
|
41
|
-
"message": "bar [90m(peer)[39m 1.0.0 ❯ 1.1.0
|
|
118
|
+
"message": "bar [90m(peer)[39m 1.0.0 ❯ 1.1.0 ",
|
|
42
119
|
"name": "bar",
|
|
43
120
|
"value": Object {
|
|
44
121
|
"currentRange": "1.0.0",
|
|
@@ -59,7 +136,7 @@ Array [
|
|
|
59
136
|
Object {
|
|
60
137
|
"choices": Array [
|
|
61
138
|
Object {
|
|
62
|
-
"message": "foo [90m(runtime)[39m 1.0.0 ❯ 2.0.0
|
|
139
|
+
"message": "foo [90m(runtime)[39m 1.0.0 ❯ 2.0.0 ",
|
|
63
140
|
"name": "foo",
|
|
64
141
|
"value": Object {
|
|
65
142
|
"componentId": "comp1",
|
|
@@ -76,7 +153,7 @@ Array [
|
|
|
76
153
|
Object {
|
|
77
154
|
"choices": Array [
|
|
78
155
|
Object {
|
|
79
|
-
"message": "bar [90m(peer)[39m 1.0.0 ❯ 1.1.0
|
|
156
|
+
"message": "bar [90m(peer)[39m 1.0.0 ❯ 1.1.0 ",
|
|
80
157
|
"name": "bar",
|
|
81
158
|
"value": Object {
|
|
82
159
|
"currentRange": "1.0.0",
|
|
@@ -1,12 +1,90 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
+
exports[`makeOutdatedPkgChoices should group component model updates of the same dependency 1`] = `
|
|
4
|
+
Array [
|
|
5
|
+
Object {
|
|
6
|
+
"choices": Array [
|
|
7
|
+
Object {
|
|
8
|
+
"message": "foo [90m(runtime)[39m * ❯ [91m[1m2.0.0[22m[39m because of comp1 and 1 other components ",
|
|
9
|
+
"name": "foo",
|
|
10
|
+
"value": Object {
|
|
11
|
+
"currentRange": "1.0.0",
|
|
12
|
+
"dependentComponents": Array [
|
|
13
|
+
"comp1",
|
|
14
|
+
"comp2",
|
|
15
|
+
],
|
|
16
|
+
"hasDifferentRanges": true,
|
|
17
|
+
"latestRange": "2.0.0",
|
|
18
|
+
"name": "foo",
|
|
19
|
+
"source": "rootPolicy",
|
|
20
|
+
"targetField": "dependencies",
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
"message": "[36mRoot policies[39m",
|
|
25
|
+
},
|
|
26
|
+
]
|
|
27
|
+
`;
|
|
28
|
+
|
|
29
|
+
exports[`makeOutdatedPkgChoices should group component model updates of the same dependency and display the current range when all components use the same range 1`] = `
|
|
30
|
+
Array [
|
|
31
|
+
Object {
|
|
32
|
+
"choices": Array [
|
|
33
|
+
Object {
|
|
34
|
+
"message": "foo [90m(runtime)[39m ^1.2.3 ❯ [91m[1m2.0.0[22m[39m because of comp1 and 1 other components ",
|
|
35
|
+
"name": "foo",
|
|
36
|
+
"value": Object {
|
|
37
|
+
"currentRange": "^1.2.3",
|
|
38
|
+
"dependentComponents": Array [
|
|
39
|
+
"comp1",
|
|
40
|
+
"comp2",
|
|
41
|
+
],
|
|
42
|
+
"latestRange": "2.0.0",
|
|
43
|
+
"name": "foo",
|
|
44
|
+
"source": "rootPolicy",
|
|
45
|
+
"targetField": "dependencies",
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
"message": "[36mRoot policies[39m",
|
|
50
|
+
},
|
|
51
|
+
]
|
|
52
|
+
`;
|
|
53
|
+
|
|
54
|
+
exports[`makeOutdatedPkgChoices should group component model updates of the same dependency and use * as current range when can't compare ranges 1`] = `
|
|
55
|
+
Array [
|
|
56
|
+
Object {
|
|
57
|
+
"choices": Array [
|
|
58
|
+
Object {
|
|
59
|
+
"message": "foo [90m(runtime)[39m * ❯ [91m[1m2.0.0[22m[39m because of comp1 and 1 other components ",
|
|
60
|
+
"name": "foo",
|
|
61
|
+
"value": Object {
|
|
62
|
+
"currentRange": "*",
|
|
63
|
+
"dependentComponents": Array [
|
|
64
|
+
"comp1",
|
|
65
|
+
"comp2",
|
|
66
|
+
],
|
|
67
|
+
"hasDifferentRanges": true,
|
|
68
|
+
"latestRange": "2.0.0",
|
|
69
|
+
"name": "foo",
|
|
70
|
+
"source": "rootPolicy",
|
|
71
|
+
"targetField": "dependencies",
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
"message": "[36mRoot policies[39m",
|
|
76
|
+
},
|
|
77
|
+
]
|
|
78
|
+
`;
|
|
79
|
+
|
|
3
80
|
exports[`makeOutdatedPkgChoices should render choices in correct order 1`] = `
|
|
4
81
|
Array [
|
|
5
82
|
Object {
|
|
6
83
|
"choices": Array [
|
|
7
84
|
Object {
|
|
8
|
-
"message": "foo [90m(runtime)[39m 1.0.0 ❯ [91m[1m2.0.0[22m[39m
|
|
9
|
-
"name":
|
|
85
|
+
"message": "foo [90m(runtime)[39m 1.0.0 ❯ [91m[1m2.0.0[22m[39m ",
|
|
86
|
+
"name": "foo",
|
|
87
|
+
"value": Object {
|
|
10
88
|
"currentRange": "1.0.0",
|
|
11
89
|
"latestRange": "2.0.0",
|
|
12
90
|
"name": "foo",
|
|
@@ -15,8 +93,9 @@ Array [
|
|
|
15
93
|
},
|
|
16
94
|
},
|
|
17
95
|
Object {
|
|
18
|
-
"message": "qar [90m(runtime)[39m 1.0.0 ❯ 1.[92m[1m1.0[22m[39m
|
|
19
|
-
"name":
|
|
96
|
+
"message": "qar [90m(runtime)[39m 1.0.0 ❯ 1.[92m[1m1.0[22m[39m ",
|
|
97
|
+
"name": "qar",
|
|
98
|
+
"value": Object {
|
|
20
99
|
"currentRange": "1.0.0",
|
|
21
100
|
"latestRange": "1.1.0",
|
|
22
101
|
"name": "qar",
|
|
@@ -25,8 +104,9 @@ Array [
|
|
|
25
104
|
},
|
|
26
105
|
},
|
|
27
106
|
Object {
|
|
28
|
-
"message": "zoo [90m(dev)[39m 1.0.0 ❯ 1.[92m[1m1.0[22m[39m
|
|
29
|
-
"name":
|
|
107
|
+
"message": "zoo [90m(dev)[39m 1.0.0 ❯ 1.[92m[1m1.0[22m[39m ",
|
|
108
|
+
"name": "zoo",
|
|
109
|
+
"value": Object {
|
|
30
110
|
"currentRange": "1.0.0",
|
|
31
111
|
"latestRange": "1.1.0",
|
|
32
112
|
"name": "zoo",
|
|
@@ -35,8 +115,9 @@ Array [
|
|
|
35
115
|
},
|
|
36
116
|
},
|
|
37
117
|
Object {
|
|
38
|
-
"message": "bar [90m(peer)[39m 1.0.0 ❯ 1.[92m[1m1.0[22m[39m
|
|
39
|
-
"name":
|
|
118
|
+
"message": "bar [90m(peer)[39m 1.0.0 ❯ 1.[92m[1m1.0[22m[39m ",
|
|
119
|
+
"name": "bar",
|
|
120
|
+
"value": Object {
|
|
40
121
|
"currentRange": "1.0.0",
|
|
41
122
|
"latestRange": "1.1.0",
|
|
42
123
|
"name": "bar",
|
|
@@ -55,8 +136,9 @@ Array [
|
|
|
55
136
|
Object {
|
|
56
137
|
"choices": Array [
|
|
57
138
|
Object {
|
|
58
|
-
"message": "foo [90m(runtime)[39m 1.0.0 ❯ [91m[1m2.0.0[22m[39m
|
|
59
|
-
"name":
|
|
139
|
+
"message": "foo [90m(runtime)[39m 1.0.0 ❯ [91m[1m2.0.0[22m[39m ",
|
|
140
|
+
"name": "foo",
|
|
141
|
+
"value": Object {
|
|
60
142
|
"componentId": "comp1",
|
|
61
143
|
"currentRange": "1.0.0",
|
|
62
144
|
"latestRange": "2.0.0",
|
|
@@ -71,8 +153,9 @@ Array [
|
|
|
71
153
|
Object {
|
|
72
154
|
"choices": Array [
|
|
73
155
|
Object {
|
|
74
|
-
"message": "bar [90m(peer)[39m 1.0.0 ❯ 1.[92m[1m1.0[22m[39m
|
|
75
|
-
"name":
|
|
156
|
+
"message": "bar [90m(peer)[39m 1.0.0 ❯ 1.[92m[1m1.0[22m[39m ",
|
|
157
|
+
"name": "bar",
|
|
158
|
+
"value": Object {
|
|
76
159
|
"currentRange": "1.0.0",
|
|
77
160
|
"latestRange": "1.1.0",
|
|
78
161
|
"name": "bar",
|
|
@@ -2,7 +2,7 @@ import { OutdatedPkg } from '@teambit/dependency-resolver';
|
|
|
2
2
|
/**
|
|
3
3
|
* Lets the user pick the packages that should be updated.
|
|
4
4
|
*/
|
|
5
|
-
export declare function pickOutdatedPkgs(outdatedPkgs: OutdatedPkg[]): Promise<
|
|
5
|
+
export declare function pickOutdatedPkgs(outdatedPkgs: OutdatedPkg[]): Promise<MergedOutdatedPkg[]>;
|
|
6
6
|
/**
|
|
7
7
|
* Groups the outdated packages and makes choices for enquirer's prompt.
|
|
8
8
|
*/
|
|
@@ -10,3 +10,7 @@ export declare function makeOutdatedPkgChoices(outdatedPkgs: OutdatedPkg[]): {
|
|
|
10
10
|
message: string;
|
|
11
11
|
choices: unknown;
|
|
12
12
|
}[];
|
|
13
|
+
export interface MergedOutdatedPkg extends OutdatedPkg {
|
|
14
|
+
dependentComponents?: string[];
|
|
15
|
+
hasDifferentRanges?: boolean;
|
|
16
|
+
}
|
|
@@ -16,6 +16,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
16
16
|
exports.makeOutdatedPkgChoices = makeOutdatedPkgChoices;
|
|
17
17
|
exports.pickOutdatedPkgs = pickOutdatedPkgs;
|
|
18
18
|
|
|
19
|
+
function _defineProperty2() {
|
|
20
|
+
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
+
|
|
22
|
+
_defineProperty2 = function () {
|
|
23
|
+
return data;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
|
|
19
29
|
function _colorizeSemverDiff() {
|
|
20
30
|
const data = _interopRequireDefault(require("@pnpm/colorize-semver-diff"));
|
|
21
31
|
|
|
@@ -36,6 +46,16 @@ function _semverDiff() {
|
|
|
36
46
|
return data;
|
|
37
47
|
}
|
|
38
48
|
|
|
49
|
+
function _lodash() {
|
|
50
|
+
const data = require("lodash");
|
|
51
|
+
|
|
52
|
+
_lodash = function () {
|
|
53
|
+
return data;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
return data;
|
|
57
|
+
}
|
|
58
|
+
|
|
39
59
|
function _table() {
|
|
40
60
|
const data = require("table");
|
|
41
61
|
|
|
@@ -66,6 +86,20 @@ function _enquirer() {
|
|
|
66
86
|
return data;
|
|
67
87
|
}
|
|
68
88
|
|
|
89
|
+
function _semver() {
|
|
90
|
+
const data = _interopRequireDefault(require("semver"));
|
|
91
|
+
|
|
92
|
+
_semver = function () {
|
|
93
|
+
return data;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
return data;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
100
|
+
|
|
101
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
102
|
+
|
|
69
103
|
/**
|
|
70
104
|
* Lets the user pick the packages that should be updated.
|
|
71
105
|
*/
|
|
@@ -130,13 +164,14 @@ const DEP_TYPE_PRIORITY = {
|
|
|
130
164
|
*/
|
|
131
165
|
|
|
132
166
|
function makeOutdatedPkgChoices(outdatedPkgs) {
|
|
133
|
-
|
|
167
|
+
const mergedOutdatedPkgs = mergeOutdatedPkgs(outdatedPkgs);
|
|
168
|
+
mergedOutdatedPkgs.sort((pkg1, pkg2) => {
|
|
134
169
|
if (pkg1.targetField === pkg2.targetField) return pkg1.name.localeCompare(pkg2.name);
|
|
135
170
|
return DEP_TYPE_PRIORITY[pkg1.targetField] - DEP_TYPE_PRIORITY[pkg2.targetField];
|
|
136
171
|
});
|
|
137
|
-
const renderedTable = alignColumns(outdatedPkgsRows(
|
|
172
|
+
const renderedTable = alignColumns(outdatedPkgsRows(mergedOutdatedPkgs));
|
|
138
173
|
const groupedChoices = {};
|
|
139
|
-
|
|
174
|
+
mergedOutdatedPkgs.forEach((outdatedPkg, index) => {
|
|
140
175
|
const context = renderContext(outdatedPkg);
|
|
141
176
|
|
|
142
177
|
if (!groupedChoices[context]) {
|
|
@@ -156,6 +191,55 @@ function makeOutdatedPkgChoices(outdatedPkgs) {
|
|
|
156
191
|
return choices;
|
|
157
192
|
}
|
|
158
193
|
|
|
194
|
+
function mergeOutdatedPkgs(outdatedPkgs) {
|
|
195
|
+
const mergedOutdatedPkgs = {};
|
|
196
|
+
const outdatedPkgsNotFromComponentModel = [];
|
|
197
|
+
|
|
198
|
+
for (const outdatedPkg of outdatedPkgs) {
|
|
199
|
+
if (outdatedPkg.source === 'component-model' && outdatedPkg.componentId) {
|
|
200
|
+
if (!mergedOutdatedPkgs[outdatedPkg.name]) {
|
|
201
|
+
mergedOutdatedPkgs[outdatedPkg.name] = _objectSpread(_objectSpread({}, (0, _lodash().omit)(outdatedPkg, ['componentId'])), {}, {
|
|
202
|
+
source: 'rootPolicy',
|
|
203
|
+
dependentComponents: [outdatedPkg.componentId]
|
|
204
|
+
});
|
|
205
|
+
} else {
|
|
206
|
+
if (mergedOutdatedPkgs[outdatedPkg.name].currentRange !== outdatedPkg.currentRange) {
|
|
207
|
+
mergedOutdatedPkgs[outdatedPkg.name].hasDifferentRanges = true;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
mergedOutdatedPkgs[outdatedPkg.name].currentRange = tryPickLowestRange(mergedOutdatedPkgs[outdatedPkg.name].currentRange, outdatedPkg.currentRange);
|
|
211
|
+
mergedOutdatedPkgs[outdatedPkg.name].dependentComponents.push(outdatedPkg.componentId);
|
|
212
|
+
|
|
213
|
+
if (outdatedPkg.targetField === 'dependencies') {
|
|
214
|
+
mergedOutdatedPkgs[outdatedPkg.name].targetField = outdatedPkg.targetField;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
} else {
|
|
218
|
+
outdatedPkgsNotFromComponentModel.push(outdatedPkg);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
return [...Object.values(mergedOutdatedPkgs), ...outdatedPkgsNotFromComponentModel];
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
function tryPickLowestRange(range1, range2) {
|
|
226
|
+
if (range1 === '*' || range2 === '*') return '*';
|
|
227
|
+
|
|
228
|
+
try {
|
|
229
|
+
return _semver().default.lt(rangeToVersion(range1), rangeToVersion(range2)) ? range1 : range2;
|
|
230
|
+
} catch (_unused) {
|
|
231
|
+
return '*';
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
function rangeToVersion(range) {
|
|
236
|
+
if (range.startsWith('~') || range.startsWith('^')) {
|
|
237
|
+
return range.substring(1);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
return range;
|
|
241
|
+
}
|
|
242
|
+
|
|
159
243
|
function renderContext(outdatedPkg) {
|
|
160
244
|
if (outdatedPkg.variantPattern) {
|
|
161
245
|
return `${outdatedPkg.variantPattern} (variant)`;
|
|
@@ -190,10 +274,20 @@ function outdatedPkgsRows(outdatedPkgs) {
|
|
|
190
274
|
change: colorizeChange,
|
|
191
275
|
diff
|
|
192
276
|
});
|
|
193
|
-
return [outdatedPkg.name, _chalk().default.grey(`(${TARGET_FIELD_TO_DEP_TYPE[outdatedPkg.targetField]})`), outdatedPkg.currentRange, '❯', latest];
|
|
277
|
+
return [outdatedPkg.name, _chalk().default.grey(`(${TARGET_FIELD_TO_DEP_TYPE[outdatedPkg.targetField]})`), outdatedPkg.hasDifferentRanges ? '*' : outdatedPkg.currentRange, '❯', latest, outdatedPkg.dependentComponents ? renderDependents(outdatedPkg.dependentComponents) : ' '];
|
|
194
278
|
});
|
|
195
279
|
}
|
|
196
280
|
|
|
281
|
+
function renderDependents(dependentComponents) {
|
|
282
|
+
let result = `because of ${dependentComponents[0]}`;
|
|
283
|
+
|
|
284
|
+
if (dependentComponents.length > 1) {
|
|
285
|
+
result += ` and ${dependentComponents.length - 1} other components`;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
return result;
|
|
289
|
+
}
|
|
290
|
+
|
|
197
291
|
function alignColumns(rows) {
|
|
198
292
|
return (0, _table().table)(rows, {
|
|
199
293
|
border: (0, _table().getBorderCharacters)('void'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["pickOutdatedPkgs","outdatedPkgs","updateDependencies","prompt","choices","makeOutdatedPkgChoices","footer","indicator","state","choice","enabled","message","chalk","cyan","green","red","name","pointer","styles","dark","white","em","bgBlack","whiteBright","success","type","validate","value","length","j","down","k","up","result","names","map","cancel","Object","values","filter","updateDependency","DEP_TYPE_PRIORITY","dependencies","devDependencies","peerDependencies","sort","pkg1","pkg2","targetField","localeCompare","renderedTable","alignColumns","outdatedPkgsRows","groupedChoices","forEach","outdatedPkg","index","context","renderContext","push","entries","subChoices","variantPattern","componentId","TARGET_FIELD_TO_DEP_TYPE","change","diff","semverDiff","currentRange","latestRange","colorizeChange","latest","colorizeSemverDiff","grey","rows","table","border","getBorderCharacters","columnDefault","paddingLeft","paddingRight","columns","alignment","drawHorizontalLine","split"],"sources":["pick-outdated-pkgs.ts"],"sourcesContent":["import colorizeSemverDiff from '@pnpm/colorize-semver-diff';\nimport semverDiff from '@pnpm/semver-diff';\nimport { OutdatedPkg } from '@teambit/dependency-resolver';\nimport { getBorderCharacters, table } from 'table';\nimport chalk from 'chalk';\nimport { prompt } from 'enquirer';\n\n/**\n * Lets the user pick the packages that should be updated.\n */\nexport async function pickOutdatedPkgs(outdatedPkgs: OutdatedPkg[]): Promise<OutdatedPkg[]> {\n const { updateDependencies } = (await prompt({\n choices: makeOutdatedPkgChoices(outdatedPkgs),\n footer: '\\nEnter to start updating. Ctrl-c to cancel.',\n indicator: (state: any, choice: any) => ` ${choice.enabled ? '●' : '○'}`,\n message:\n 'Choose which packages to update ' +\n `(Press ${chalk.cyan('<space>')} to select, ` +\n `${chalk.cyan('<a>')} to toggle all, ` +\n `${chalk.cyan('<i>')} to invert selection)\n${chalk.green('Green')} - indicates a semantically safe update\n${chalk.red('Red')} - indicates a semantically breaking change`,\n name: 'updateDependencies',\n pointer: '❯',\n styles: {\n dark: chalk.white,\n em: chalk.bgBlack.whiteBright,\n success: chalk.white,\n },\n type: 'multiselect',\n validate(value: string[]) {\n if (value.length === 0) {\n return 'You must choose at least one package.';\n }\n return true;\n },\n j() {\n return this.down();\n },\n k() {\n return this.up();\n },\n result(names: string[]) {\n // This is needed in order to have the values of the choices in the answer object.\n // Otherwise, only the names of the selected choices would've been included.\n return this.map(names);\n },\n cancel() {\n // By default, canceling the prompt via Ctrl+c throws an empty string.\n // The custom cancel function prevents that behavior.\n // Otherwise, Bit CLI would print an error and confuse users.\n // See related issue: https://github.com/enquirer/enquirer/issues/225\n },\n } as any)) as { updateDependencies: Record<string, string | OutdatedPkg> };\n return Object.values(updateDependencies ?? {}).filter(\n (updateDependency) => typeof updateDependency !== 'string'\n ) as OutdatedPkg[];\n}\n\nconst DEP_TYPE_PRIORITY = {\n dependencies: 0,\n devDependencies: 1,\n peerDependencies: 2,\n};\n\n/**\n * Groups the outdated packages and makes choices for enquirer's prompt.\n */\nexport function makeOutdatedPkgChoices(outdatedPkgs: OutdatedPkg[]) {\n outdatedPkgs.sort((pkg1, pkg2) => {\n if (pkg1.targetField === pkg2.targetField) return pkg1.name.localeCompare(pkg2.name);\n return DEP_TYPE_PRIORITY[pkg1.targetField] - DEP_TYPE_PRIORITY[pkg2.targetField];\n });\n const renderedTable = alignColumns(outdatedPkgsRows(outdatedPkgs));\n const groupedChoices = {};\n outdatedPkgs.forEach((outdatedPkg, index) => {\n const context = renderContext(outdatedPkg);\n if (!groupedChoices[context]) {\n groupedChoices[context] = [];\n }\n groupedChoices[context].push({\n message: renderedTable[index],\n name: outdatedPkg.name,\n value: outdatedPkg,\n });\n });\n const choices = Object.entries(groupedChoices).map(([context, subChoices]) => ({\n message: chalk.cyan(context),\n choices: subChoices,\n }));\n return choices;\n}\n\nfunction renderContext(outdatedPkg: OutdatedPkg) {\n if (outdatedPkg.variantPattern) {\n return `${outdatedPkg.variantPattern} (variant)`;\n }\n if (outdatedPkg.componentId) {\n return `${outdatedPkg.componentId} (component)`;\n }\n return 'Root policies';\n}\n\nconst TARGET_FIELD_TO_DEP_TYPE = {\n devDependencies: 'dev',\n dependencies: 'runtime',\n peerDependencies: 'peer',\n};\n\nfunction outdatedPkgsRows(outdatedPkgs: OutdatedPkg[]) {\n return outdatedPkgs.map((outdatedPkg) => {\n const { change, diff } = semverDiff(outdatedPkg.currentRange, outdatedPkg.latestRange);\n let colorizeChange = change ?? 'breaking';\n if (change === 'feature') {\n colorizeChange = 'fix';\n }\n const latest = colorizeSemverDiff({\n change: colorizeChange,\n diff,\n });\n return [\n outdatedPkg.name,\n chalk.grey(`(${TARGET_FIELD_TO_DEP_TYPE[outdatedPkg.targetField]})`),\n outdatedPkg.currentRange,\n '❯',\n latest,\n ];\n });\n}\n\nfunction alignColumns(rows: string[][]) {\n return table(rows, {\n border: getBorderCharacters('void'),\n columnDefault: {\n paddingLeft: 0,\n paddingRight: 1,\n },\n columns: {\n // This is the current range column\n 2: { alignment: 'right' },\n },\n drawHorizontalLine: () => false,\n }).split('\\n');\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["pickOutdatedPkgs","outdatedPkgs","updateDependencies","prompt","choices","makeOutdatedPkgChoices","footer","indicator","state","choice","enabled","message","chalk","cyan","green","red","name","pointer","styles","dark","white","em","bgBlack","whiteBright","success","type","validate","value","length","j","down","k","up","result","names","map","cancel","Object","values","filter","updateDependency","DEP_TYPE_PRIORITY","dependencies","devDependencies","peerDependencies","mergedOutdatedPkgs","mergeOutdatedPkgs","sort","pkg1","pkg2","targetField","localeCompare","renderedTable","alignColumns","outdatedPkgsRows","groupedChoices","forEach","outdatedPkg","index","context","renderContext","push","entries","subChoices","outdatedPkgsNotFromComponentModel","source","componentId","omit","dependentComponents","currentRange","hasDifferentRanges","tryPickLowestRange","range1","range2","semver","lt","rangeToVersion","range","startsWith","substring","variantPattern","TARGET_FIELD_TO_DEP_TYPE","change","diff","semverDiff","latestRange","colorizeChange","latest","colorizeSemverDiff","grey","renderDependents","rows","table","border","getBorderCharacters","columnDefault","paddingLeft","paddingRight","columns","alignment","drawHorizontalLine","split"],"sources":["pick-outdated-pkgs.ts"],"sourcesContent":["import colorizeSemverDiff from '@pnpm/colorize-semver-diff';\nimport semverDiff from '@pnpm/semver-diff';\nimport { OutdatedPkg } from '@teambit/dependency-resolver';\nimport { omit } from 'lodash';\nimport { getBorderCharacters, table } from 'table';\nimport chalk from 'chalk';\nimport { prompt } from 'enquirer';\nimport semver from 'semver';\n\n/**\n * Lets the user pick the packages that should be updated.\n */\nexport async function pickOutdatedPkgs(outdatedPkgs: OutdatedPkg[]): Promise<MergedOutdatedPkg[]> {\n const { updateDependencies } = (await prompt({\n choices: makeOutdatedPkgChoices(outdatedPkgs),\n footer: '\\nEnter to start updating. Ctrl-c to cancel.',\n indicator: (state: any, choice: any) => ` ${choice.enabled ? '●' : '○'}`,\n message:\n 'Choose which packages to update ' +\n `(Press ${chalk.cyan('<space>')} to select, ` +\n `${chalk.cyan('<a>')} to toggle all, ` +\n `${chalk.cyan('<i>')} to invert selection)\n${chalk.green('Green')} - indicates a semantically safe update\n${chalk.red('Red')} - indicates a semantically breaking change`,\n name: 'updateDependencies',\n pointer: '❯',\n styles: {\n dark: chalk.white,\n em: chalk.bgBlack.whiteBright,\n success: chalk.white,\n },\n type: 'multiselect',\n validate(value: string[]) {\n if (value.length === 0) {\n return 'You must choose at least one package.';\n }\n return true;\n },\n j() {\n return this.down();\n },\n k() {\n return this.up();\n },\n result(names: string[]) {\n // This is needed in order to have the values of the choices in the answer object.\n // Otherwise, only the names of the selected choices would've been included.\n return this.map(names);\n },\n cancel() {\n // By default, canceling the prompt via Ctrl+c throws an empty string.\n // The custom cancel function prevents that behavior.\n // Otherwise, Bit CLI would print an error and confuse users.\n // See related issue: https://github.com/enquirer/enquirer/issues/225\n },\n } as any)) as { updateDependencies: Record<string, string | MergedOutdatedPkg> };\n return Object.values(updateDependencies ?? {}).filter(\n (updateDependency) => typeof updateDependency !== 'string'\n ) as OutdatedPkg[];\n}\n\nconst DEP_TYPE_PRIORITY = {\n dependencies: 0,\n devDependencies: 1,\n peerDependencies: 2,\n};\n\n/**\n * Groups the outdated packages and makes choices for enquirer's prompt.\n */\nexport function makeOutdatedPkgChoices(outdatedPkgs: OutdatedPkg[]) {\n const mergedOutdatedPkgs = mergeOutdatedPkgs(outdatedPkgs);\n mergedOutdatedPkgs.sort((pkg1, pkg2) => {\n if (pkg1.targetField === pkg2.targetField) return pkg1.name.localeCompare(pkg2.name);\n return DEP_TYPE_PRIORITY[pkg1.targetField] - DEP_TYPE_PRIORITY[pkg2.targetField];\n });\n const renderedTable = alignColumns(outdatedPkgsRows(mergedOutdatedPkgs));\n const groupedChoices = {};\n mergedOutdatedPkgs.forEach((outdatedPkg, index) => {\n const context = renderContext(outdatedPkg);\n if (!groupedChoices[context]) {\n groupedChoices[context] = [];\n }\n groupedChoices[context].push({\n message: renderedTable[index],\n name: outdatedPkg.name,\n value: outdatedPkg,\n });\n });\n const choices = Object.entries(groupedChoices).map(([context, subChoices]) => ({\n message: chalk.cyan(context),\n choices: subChoices,\n }));\n return choices;\n}\n\nexport interface MergedOutdatedPkg extends OutdatedPkg {\n dependentComponents?: string[];\n hasDifferentRanges?: boolean;\n}\n\nfunction mergeOutdatedPkgs(outdatedPkgs: OutdatedPkg[]): MergedOutdatedPkg[] {\n const mergedOutdatedPkgs: Record<\n string,\n MergedOutdatedPkg & Required<Pick<MergedOutdatedPkg, 'dependentComponents'>>\n > = {};\n const outdatedPkgsNotFromComponentModel: OutdatedPkg[] = [];\n for (const outdatedPkg of outdatedPkgs) {\n if (outdatedPkg.source === 'component-model' && outdatedPkg.componentId) {\n if (!mergedOutdatedPkgs[outdatedPkg.name]) {\n mergedOutdatedPkgs[outdatedPkg.name] = {\n ...omit(outdatedPkg, ['componentId']),\n source: 'rootPolicy',\n dependentComponents: [outdatedPkg.componentId],\n };\n } else {\n if (mergedOutdatedPkgs[outdatedPkg.name].currentRange !== outdatedPkg.currentRange) {\n mergedOutdatedPkgs[outdatedPkg.name].hasDifferentRanges = true;\n }\n mergedOutdatedPkgs[outdatedPkg.name].currentRange = tryPickLowestRange(\n mergedOutdatedPkgs[outdatedPkg.name].currentRange,\n outdatedPkg.currentRange\n );\n mergedOutdatedPkgs[outdatedPkg.name].dependentComponents.push(outdatedPkg.componentId);\n if (outdatedPkg.targetField === 'dependencies') {\n mergedOutdatedPkgs[outdatedPkg.name].targetField = outdatedPkg.targetField;\n }\n }\n } else {\n outdatedPkgsNotFromComponentModel.push(outdatedPkg);\n }\n }\n return [...Object.values(mergedOutdatedPkgs), ...outdatedPkgsNotFromComponentModel];\n}\n\nfunction tryPickLowestRange(range1: string, range2: string) {\n if (range1 === '*' || range2 === '*') return '*';\n try {\n return semver.lt(rangeToVersion(range1), rangeToVersion(range2)) ? range1 : range2;\n } catch {\n return '*';\n }\n}\n\nfunction rangeToVersion(range: string) {\n if (range.startsWith('~') || range.startsWith('^')) {\n return range.substring(1);\n }\n return range;\n}\n\nfunction renderContext(outdatedPkg: MergedOutdatedPkg) {\n if (outdatedPkg.variantPattern) {\n return `${outdatedPkg.variantPattern} (variant)`;\n }\n if (outdatedPkg.componentId) {\n return `${outdatedPkg.componentId} (component)`;\n }\n return 'Root policies';\n}\n\nconst TARGET_FIELD_TO_DEP_TYPE = {\n devDependencies: 'dev',\n dependencies: 'runtime',\n peerDependencies: 'peer',\n};\n\nfunction outdatedPkgsRows(outdatedPkgs: MergedOutdatedPkg[]) {\n return outdatedPkgs.map((outdatedPkg) => {\n const { change, diff } = semverDiff(outdatedPkg.currentRange, outdatedPkg.latestRange);\n let colorizeChange = change ?? 'breaking';\n if (change === 'feature') {\n colorizeChange = 'fix';\n }\n const latest = colorizeSemverDiff({\n change: colorizeChange,\n diff,\n });\n return [\n outdatedPkg.name,\n chalk.grey(`(${TARGET_FIELD_TO_DEP_TYPE[outdatedPkg.targetField]})`),\n outdatedPkg.hasDifferentRanges ? '*' : outdatedPkg.currentRange,\n '❯',\n latest,\n outdatedPkg.dependentComponents ? renderDependents(outdatedPkg.dependentComponents) : ' ',\n ];\n });\n}\n\nfunction renderDependents(dependentComponents: string[]): string {\n let result = `because of ${dependentComponents[0]}`;\n if (dependentComponents.length > 1) {\n result += ` and ${dependentComponents.length - 1} other components`;\n }\n return result;\n}\n\nfunction alignColumns(rows: string[][]) {\n return table(rows, {\n border: getBorderCharacters('void'),\n columnDefault: {\n paddingLeft: 0,\n paddingRight: 1,\n },\n columns: {\n // This is the current range column\n 2: { alignment: 'right' },\n },\n drawHorizontalLine: () => false,\n }).split('\\n');\n}\n"],"mappings":"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"}
|