@teambit/install 0.0.1

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.
Files changed (80) hide show
  1. package/__snapshots__/pick-outdated-pkgs.spec.ts.snap +171 -0
  2. package/dist/__snapshots__/pick-outdated-pkgs.spec.js.snap +171 -0
  3. package/dist/__snapshots__/pick-outdated-pkgs.spec.ts.snap +171 -0
  4. package/dist/exceptions/dependency-type-not-supported-in-policy.d.ts +4 -0
  5. package/dist/exceptions/dependency-type-not-supported-in-policy.js +27 -0
  6. package/dist/exceptions/dependency-type-not-supported-in-policy.js.map +1 -0
  7. package/dist/exceptions/index.d.ts +1 -0
  8. package/dist/exceptions/index.js +23 -0
  9. package/dist/exceptions/index.js.map +1 -0
  10. package/dist/index.d.ts +4 -0
  11. package/dist/index.js +28 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/install.aspect.d.ts +2 -0
  14. package/dist/install.aspect.js +24 -0
  15. package/dist/install.aspect.js.map +1 -0
  16. package/dist/install.cmd.d.ts +46 -0
  17. package/dist/install.cmd.js +86 -0
  18. package/dist/install.cmd.js.map +1 -0
  19. package/dist/install.main.runtime.d.ts +76 -0
  20. package/dist/install.main.runtime.js +580 -0
  21. package/dist/install.main.runtime.js.map +1 -0
  22. package/dist/link/component-list-links.d.ts +7 -0
  23. package/dist/link/component-list-links.js +98 -0
  24. package/dist/link/component-list-links.js.map +1 -0
  25. package/dist/link/core-aspects-links.d.ts +7 -0
  26. package/dist/link/core-aspects-links.js +95 -0
  27. package/dist/link/core-aspects-links.js.map +1 -0
  28. package/dist/link/get-package-name-from-target.d.ts +1 -0
  29. package/dist/link/get-package-name-from-target.js +16 -0
  30. package/dist/link/get-package-name-from-target.js.map +1 -0
  31. package/dist/link/index.d.ts +1 -0
  32. package/dist/link/index.js +23 -0
  33. package/dist/link/index.js.map +1 -0
  34. package/dist/link/link-row.d.ts +12 -0
  35. package/dist/link/link-row.js +38 -0
  36. package/dist/link/link-row.js.map +1 -0
  37. package/dist/link/link-to-dir.d.ts +2 -0
  38. package/dist/link/link-to-dir.js +45 -0
  39. package/dist/link/link-to-dir.js.map +1 -0
  40. package/dist/link/link.cmd.d.ts +46 -0
  41. package/dist/link/link.cmd.js +177 -0
  42. package/dist/link/link.cmd.js.map +1 -0
  43. package/dist/link/nested-deps-in-nm-links.d.ts +7 -0
  44. package/dist/link/nested-deps-in-nm-links.js +74 -0
  45. package/dist/link/nested-deps-in-nm-links.js.map +1 -0
  46. package/dist/link/rewire-row.d.ts +6 -0
  47. package/dist/link/rewire-row.js +31 -0
  48. package/dist/link/rewire-row.js.map +1 -0
  49. package/dist/pick-outdated-pkgs.d.ts +16 -0
  50. package/dist/pick-outdated-pkgs.js +308 -0
  51. package/dist/pick-outdated-pkgs.js.map +1 -0
  52. package/dist/pick-outdated-pkgs.spec.d.ts +1 -0
  53. package/dist/pick-outdated-pkgs.spec.js +121 -0
  54. package/dist/pick-outdated-pkgs.spec.js.map +1 -0
  55. package/dist/uninstall.cmd.d.ts +12 -0
  56. package/dist/uninstall.cmd.js +43 -0
  57. package/dist/uninstall.cmd.js.map +1 -0
  58. package/dist/update.cmd.d.ts +16 -0
  59. package/dist/update.cmd.js +43 -0
  60. package/dist/update.cmd.js.map +1 -0
  61. package/exceptions/dependency-type-not-supported-in-policy.ts +7 -0
  62. package/exceptions/index.ts +1 -0
  63. package/install.cmd.tsx +74 -0
  64. package/link/component-list-links.ts +50 -0
  65. package/link/core-aspects-links.ts +50 -0
  66. package/link/get-package-name-from-target.ts +5 -0
  67. package/link/index.ts +1 -0
  68. package/link/link-row.ts +20 -0
  69. package/link/link-to-dir.ts +13 -0
  70. package/link/link.cmd.ts +102 -0
  71. package/link/nested-deps-in-nm-links.ts +47 -0
  72. package/link/rewire-row.ts +17 -0
  73. package/package-tar/teambit-install-0.0.1.tgz +0 -0
  74. package/package.json +59 -0
  75. package/preview-1662608124038.js +5 -0
  76. package/tsconfig.json +40 -0
  77. package/types/asset.d.ts +29 -0
  78. package/types/style.d.ts +42 -0
  79. package/uninstall.cmd.tsx +18 -0
  80. package/update.cmd.tsx +24 -0
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.NestedComponentLinksLinks = NestedComponentLinksLinks;
9
+
10
+ function _chalk() {
11
+ const data = _interopRequireDefault(require("chalk"));
12
+
13
+ _chalk = function () {
14
+ return data;
15
+ };
16
+
17
+ return data;
18
+ }
19
+
20
+ function _linkRow() {
21
+ const data = require("./link-row");
22
+
23
+ _linkRow = function () {
24
+ return data;
25
+ };
26
+
27
+ return data;
28
+ }
29
+
30
+ function NestedComponentLinksLinks({
31
+ nestedDepsInNmLinks,
32
+ verbose = false
33
+ }) {
34
+ if (!verbose) return '';
35
+
36
+ if (!nestedDepsInNmLinks || !nestedDepsInNmLinks.length) {
37
+ return '';
38
+ }
39
+
40
+ const title = _chalk().default.bold.cyan('Nested dependencies links');
41
+
42
+ const links = nestedDepsInNmLinks.map(nestedComponentLinks => NestedComponentLinks({
43
+ nestedComponentLinks,
44
+ verbose
45
+ })).join('\n');
46
+ return `${title}\n${links}\n`;
47
+ }
48
+
49
+ function NestedComponentLinks({
50
+ nestedComponentLinks,
51
+ verbose = false
52
+ }) {
53
+ if (!nestedComponentLinks.linksDetail || nestedComponentLinks.linksDetail.length < 1) return '';
54
+ if (verbose) return VerboseNestedComponentLinks({
55
+ nestedComponentLinks
56
+ });
57
+ return '';
58
+ }
59
+
60
+ function VerboseNestedComponentLinks({
61
+ nestedComponentLinks
62
+ }) {
63
+ const id = nestedComponentLinks.componentId.toString();
64
+
65
+ const title = _chalk().default.cyan.bold(id);
66
+
67
+ const links = nestedComponentLinks.linksDetail.map(link => (0, _linkRow().VerboseLinkRow)({
68
+ from: link.from,
69
+ to: link.to
70
+ })).join('\n');
71
+ return `${title}\n${links}\n`;
72
+ }
73
+
74
+ //# sourceMappingURL=nested-deps-in-nm-links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NestedComponentLinksLinks","nestedDepsInNmLinks","verbose","length","title","chalk","bold","cyan","links","map","nestedComponentLinks","NestedComponentLinks","join","linksDetail","VerboseNestedComponentLinks","id","componentId","toString","link","VerboseLinkRow","from","to"],"sources":["nested-deps-in-nm-links.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { NestedNMDepsLinksResult } from '@teambit/dependency-resolver';\nimport { VerboseLinkRow } from './link-row';\n\ntype NestedComponentLinksLinksProps = {\n nestedDepsInNmLinks?: NestedNMDepsLinksResult[];\n verbose: boolean;\n};\n\nexport function NestedComponentLinksLinks({ nestedDepsInNmLinks, verbose = false }: NestedComponentLinksLinksProps) {\n if (!verbose) return '';\n if (!nestedDepsInNmLinks || !nestedDepsInNmLinks.length) {\n return '';\n }\n const title = chalk.bold.cyan('Nested dependencies links');\n const links = nestedDepsInNmLinks\n .map((nestedComponentLinks) =>\n NestedComponentLinks({\n nestedComponentLinks,\n verbose,\n })\n )\n .join('\\n');\n return `${title}\\n${links}\\n`;\n}\n\ntype NestedComponentLinksProps = {\n nestedComponentLinks: NestedNMDepsLinksResult;\n verbose: boolean;\n};\nfunction NestedComponentLinks({ nestedComponentLinks, verbose = false }: NestedComponentLinksProps) {\n if (!nestedComponentLinks.linksDetail || nestedComponentLinks.linksDetail.length < 1) return '';\n if (verbose) return VerboseNestedComponentLinks({ nestedComponentLinks });\n return '';\n}\n\ntype VerboseNestedComponentLinksProps = {\n nestedComponentLinks: NestedNMDepsLinksResult;\n};\nfunction VerboseNestedComponentLinks({ nestedComponentLinks }: VerboseNestedComponentLinksProps) {\n const id = nestedComponentLinks.componentId.toString();\n const title = chalk.cyan.bold(id);\n const links = nestedComponentLinks.linksDetail\n .map((link) => VerboseLinkRow({ from: link.from, to: link.to }))\n .join('\\n');\n return `${title}\\n${links}\\n`;\n}\n"],"mappings":";;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAOO,SAASA,yBAAT,CAAmC;EAAEC,mBAAF;EAAuBC,OAAO,GAAG;AAAjC,CAAnC,EAA6G;EAClH,IAAI,CAACA,OAAL,EAAc,OAAO,EAAP;;EACd,IAAI,CAACD,mBAAD,IAAwB,CAACA,mBAAmB,CAACE,MAAjD,EAAyD;IACvD,OAAO,EAAP;EACD;;EACD,MAAMC,KAAK,GAAGC,gBAAA,CAAMC,IAAN,CAAWC,IAAX,CAAgB,2BAAhB,CAAd;;EACA,MAAMC,KAAK,GAAGP,mBAAmB,CAC9BQ,GADW,CACNC,oBAAD,IACHC,oBAAoB,CAAC;IACnBD,oBADmB;IAEnBR;EAFmB,CAAD,CAFV,EAOXU,IAPW,CAON,IAPM,CAAd;EAQA,OAAQ,GAAER,KAAM,KAAII,KAAM,IAA1B;AACD;;AAMD,SAASG,oBAAT,CAA8B;EAAED,oBAAF;EAAwBR,OAAO,GAAG;AAAlC,CAA9B,EAAoG;EAClG,IAAI,CAACQ,oBAAoB,CAACG,WAAtB,IAAqCH,oBAAoB,CAACG,WAArB,CAAiCV,MAAjC,GAA0C,CAAnF,EAAsF,OAAO,EAAP;EACtF,IAAID,OAAJ,EAAa,OAAOY,2BAA2B,CAAC;IAAEJ;EAAF,CAAD,CAAlC;EACb,OAAO,EAAP;AACD;;AAKD,SAASI,2BAAT,CAAqC;EAAEJ;AAAF,CAArC,EAAiG;EAC/F,MAAMK,EAAE,GAAGL,oBAAoB,CAACM,WAArB,CAAiCC,QAAjC,EAAX;;EACA,MAAMb,KAAK,GAAGC,gBAAA,CAAME,IAAN,CAAWD,IAAX,CAAgBS,EAAhB,CAAd;;EACA,MAAMP,KAAK,GAAGE,oBAAoB,CAACG,WAArB,CACXJ,GADW,CACNS,IAAD,IAAU,IAAAC,yBAAA,EAAe;IAAEC,IAAI,EAAEF,IAAI,CAACE,IAAb;IAAmBC,EAAE,EAAEH,IAAI,CAACG;EAA5B,CAAf,CADH,EAEXT,IAFW,CAEN,IAFM,CAAd;EAGA,OAAQ,GAAER,KAAM,KAAII,KAAM,IAA1B;AACD"}
@@ -0,0 +1,6 @@
1
+ import { CodemodResult } from '@teambit/legacy/dist/consumer/component-ops/codemod-components';
2
+ declare type RewireRowProps = {
3
+ legacyCodemodResults?: CodemodResult[];
4
+ };
5
+ export declare function RewireRow({ legacyCodemodResults }: RewireRowProps): string;
6
+ export {};
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.RewireRow = RewireRow;
9
+
10
+ function _chalk() {
11
+ const data = _interopRequireDefault(require("chalk"));
12
+
13
+ _chalk = function () {
14
+ return data;
15
+ };
16
+
17
+ return data;
18
+ }
19
+
20
+ function RewireRow({
21
+ legacyCodemodResults
22
+ }) {
23
+ if (!legacyCodemodResults || legacyCodemodResults.length < 1) return '';
24
+ const totalComps = legacyCodemodResults === null || legacyCodemodResults === void 0 ? void 0 : legacyCodemodResults.length;
25
+ const totalFiles = legacyCodemodResults.reduce((acc, curr) => {
26
+ return acc + curr.changedFiles.length || 0;
27
+ }, 0);
28
+ return `rewired ${_chalk().default.cyan(totalComps.toString())} components and total of ${_chalk().default.cyan(totalFiles.toString())} files\n`;
29
+ }
30
+
31
+ //# sourceMappingURL=rewire-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["RewireRow","legacyCodemodResults","length","totalComps","totalFiles","reduce","acc","curr","changedFiles","chalk","cyan","toString"],"sources":["rewire-row.ts"],"sourcesContent":["import { CodemodResult } from '@teambit/legacy/dist/consumer/component-ops/codemod-components';\nimport chalk from 'chalk';\n\ntype RewireRowProps = {\n legacyCodemodResults?: CodemodResult[];\n};\nexport function RewireRow({ legacyCodemodResults }: RewireRowProps) {\n if (!legacyCodemodResults || legacyCodemodResults.length < 1) return '';\n const totalComps = legacyCodemodResults?.length;\n const totalFiles = legacyCodemodResults.reduce((acc, curr) => {\n return acc + curr.changedFiles.length || 0;\n }, 0);\n\n return `rewired ${chalk.cyan(totalComps.toString())} components and total of ${chalk.cyan(\n totalFiles.toString()\n )} files\\n`;\n}\n"],"mappings":";;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAKO,SAASA,SAAT,CAAmB;EAAEC;AAAF,CAAnB,EAA6D;EAClE,IAAI,CAACA,oBAAD,IAAyBA,oBAAoB,CAACC,MAArB,GAA8B,CAA3D,EAA8D,OAAO,EAAP;EAC9D,MAAMC,UAAU,GAAGF,oBAAH,aAAGA,oBAAH,uBAAGA,oBAAoB,CAAEC,MAAzC;EACA,MAAME,UAAU,GAAGH,oBAAoB,CAACI,MAArB,CAA4B,CAACC,GAAD,EAAMC,IAAN,KAAe;IAC5D,OAAOD,GAAG,GAAGC,IAAI,CAACC,YAAL,CAAkBN,MAAxB,IAAkC,CAAzC;EACD,CAFkB,EAEhB,CAFgB,CAAnB;EAIA,OAAQ,WAAUO,gBAAA,CAAMC,IAAN,CAAWP,UAAU,CAACQ,QAAX,EAAX,CAAkC,4BAA2BF,gBAAA,CAAMC,IAAN,CAC7EN,UAAU,CAACO,QAAX,EAD6E,CAE7E,UAFF;AAGD"}
@@ -0,0 +1,16 @@
1
+ import { OutdatedPkg } from '@teambit/dependency-resolver';
2
+ /**
3
+ * Lets the user pick the packages that should be updated.
4
+ */
5
+ export declare function pickOutdatedPkgs(outdatedPkgs: OutdatedPkg[]): Promise<MergedOutdatedPkg[]>;
6
+ /**
7
+ * Groups the outdated packages and makes choices for enquirer's prompt.
8
+ */
9
+ export declare function makeOutdatedPkgChoices(outdatedPkgs: OutdatedPkg[]): {
10
+ message: string;
11
+ choices: unknown;
12
+ }[];
13
+ export interface MergedOutdatedPkg extends OutdatedPkg {
14
+ dependentComponents?: string[];
15
+ hasDifferentRanges?: boolean;
16
+ }
@@ -0,0 +1,308 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("core-js/modules/es.array.iterator.js");
6
+
7
+ require("core-js/modules/es.array.sort.js");
8
+
9
+ require("core-js/modules/es.promise.js");
10
+
11
+ require("core-js/modules/es.regexp.exec.js");
12
+
13
+ Object.defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
16
+ exports.makeOutdatedPkgChoices = makeOutdatedPkgChoices;
17
+ exports.pickOutdatedPkgs = pickOutdatedPkgs;
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
+
29
+ function _colorizeSemverDiff() {
30
+ const data = _interopRequireDefault(require("@pnpm/colorize-semver-diff"));
31
+
32
+ _colorizeSemverDiff = function () {
33
+ return data;
34
+ };
35
+
36
+ return data;
37
+ }
38
+
39
+ function _semverDiff() {
40
+ const data = _interopRequireDefault(require("@pnpm/semver-diff"));
41
+
42
+ _semverDiff = function () {
43
+ return data;
44
+ };
45
+
46
+ return data;
47
+ }
48
+
49
+ function _lodash() {
50
+ const data = require("lodash");
51
+
52
+ _lodash = function () {
53
+ return data;
54
+ };
55
+
56
+ return data;
57
+ }
58
+
59
+ function _table() {
60
+ const data = require("table");
61
+
62
+ _table = function () {
63
+ return data;
64
+ };
65
+
66
+ return data;
67
+ }
68
+
69
+ function _chalk() {
70
+ const data = _interopRequireDefault(require("chalk"));
71
+
72
+ _chalk = function () {
73
+ return data;
74
+ };
75
+
76
+ return data;
77
+ }
78
+
79
+ function _enquirer() {
80
+ const data = require("enquirer");
81
+
82
+ _enquirer = function () {
83
+ return data;
84
+ };
85
+
86
+ return data;
87
+ }
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
+
103
+ /**
104
+ * Lets the user pick the packages that should be updated.
105
+ */
106
+ async function pickOutdatedPkgs(outdatedPkgs) {
107
+ const {
108
+ updateDependencies
109
+ } = await (0, _enquirer().prompt)({
110
+ choices: makeOutdatedPkgChoices(outdatedPkgs),
111
+ footer: '\nEnter to start updating. Ctrl-c to cancel.',
112
+ indicator: (state, choice) => ` ${choice.enabled ? '●' : '○'}`,
113
+ message: 'Choose which packages to update ' + `(Press ${_chalk().default.cyan('<space>')} to select, ` + `${_chalk().default.cyan('<a>')} to toggle all, ` + `${_chalk().default.cyan('<i>')} to invert selection)
114
+ ${_chalk().default.green('Green')} - indicates a semantically safe update
115
+ ${_chalk().default.red('Red')} - indicates a semantically breaking change`,
116
+ name: 'updateDependencies',
117
+ pointer: '❯',
118
+ styles: {
119
+ dark: _chalk().default.white,
120
+ em: _chalk().default.bgBlack.whiteBright,
121
+ success: _chalk().default.white
122
+ },
123
+ type: 'multiselect',
124
+
125
+ validate(value) {
126
+ if (value.length === 0) {
127
+ return 'You must choose at least one package.';
128
+ }
129
+
130
+ return true;
131
+ },
132
+
133
+ j() {
134
+ return this.down();
135
+ },
136
+
137
+ k() {
138
+ return this.up();
139
+ },
140
+
141
+ result(names) {
142
+ // This is needed in order to have the values of the choices in the answer object.
143
+ // Otherwise, only the names of the selected choices would've been included.
144
+ return this.map(names);
145
+ },
146
+
147
+ cancel() {// By default, canceling the prompt via Ctrl+c throws an empty string.
148
+ // The custom cancel function prevents that behavior.
149
+ // Otherwise, Bit CLI would print an error and confuse users.
150
+ // See related issue: https://github.com/enquirer/enquirer/issues/225
151
+ }
152
+
153
+ });
154
+ return Object.values(updateDependencies !== null && updateDependencies !== void 0 ? updateDependencies : {}).filter(updateDependency => typeof updateDependency !== 'string');
155
+ }
156
+
157
+ const DEP_TYPE_PRIORITY = {
158
+ dependencies: 0,
159
+ devDependencies: 1,
160
+ peerDependencies: 2
161
+ };
162
+ /**
163
+ * Groups the outdated packages and makes choices for enquirer's prompt.
164
+ */
165
+
166
+ function makeOutdatedPkgChoices(outdatedPkgs) {
167
+ const mergedOutdatedPkgs = mergeOutdatedPkgs(outdatedPkgs);
168
+ mergedOutdatedPkgs.sort((pkg1, pkg2) => {
169
+ if (pkg1.targetField === pkg2.targetField) return pkg1.name.localeCompare(pkg2.name);
170
+ return DEP_TYPE_PRIORITY[pkg1.targetField] - DEP_TYPE_PRIORITY[pkg2.targetField];
171
+ });
172
+ const renderedTable = alignColumns(outdatedPkgsRows(mergedOutdatedPkgs));
173
+ const groupedChoices = {};
174
+ mergedOutdatedPkgs.forEach((outdatedPkg, index) => {
175
+ const context = renderContext(outdatedPkg);
176
+
177
+ if (!groupedChoices[context]) {
178
+ groupedChoices[context] = [];
179
+ }
180
+
181
+ groupedChoices[context].push({
182
+ message: renderedTable[index],
183
+ name: outdatedPkg.name,
184
+ value: outdatedPkg
185
+ });
186
+ });
187
+ const choices = Object.entries(groupedChoices).map(([context, subChoices]) => ({
188
+ message: _chalk().default.cyan(context),
189
+ choices: subChoices
190
+ }));
191
+ return choices;
192
+ }
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
+
243
+ function renderContext(outdatedPkg) {
244
+ if (outdatedPkg.variantPattern) {
245
+ return `${outdatedPkg.variantPattern} (variant)`;
246
+ }
247
+
248
+ if (outdatedPkg.componentId) {
249
+ return `${outdatedPkg.componentId} (component)`;
250
+ }
251
+
252
+ return 'Root policies';
253
+ }
254
+
255
+ const TARGET_FIELD_TO_DEP_TYPE = {
256
+ devDependencies: 'dev',
257
+ dependencies: 'runtime',
258
+ peerDependencies: 'peer'
259
+ };
260
+
261
+ function outdatedPkgsRows(outdatedPkgs) {
262
+ return outdatedPkgs.map(outdatedPkg => {
263
+ const {
264
+ change,
265
+ diff
266
+ } = (0, _semverDiff().default)(outdatedPkg.currentRange, outdatedPkg.latestRange);
267
+ let colorizeChange = change !== null && change !== void 0 ? change : 'breaking';
268
+
269
+ if (change === 'feature') {
270
+ colorizeChange = 'fix';
271
+ }
272
+
273
+ const latest = (0, _colorizeSemverDiff().default)({
274
+ change: colorizeChange,
275
+ diff
276
+ });
277
+ return [outdatedPkg.name, _chalk().default.grey(`(${TARGET_FIELD_TO_DEP_TYPE[outdatedPkg.targetField]})`), outdatedPkg.hasDifferentRanges ? '*' : outdatedPkg.currentRange, '❯', latest, outdatedPkg.dependentComponents ? renderDependents(outdatedPkg.dependentComponents) : ' '];
278
+ });
279
+ }
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
+
291
+ function alignColumns(rows) {
292
+ return (0, _table().table)(rows, {
293
+ border: (0, _table().getBorderCharacters)('void'),
294
+ columnDefault: {
295
+ paddingLeft: 0,
296
+ paddingRight: 1
297
+ },
298
+ columns: {
299
+ // This is the current range column
300
+ 2: {
301
+ alignment: 'right'
302
+ }
303
+ },
304
+ drawHorizontalLine: () => false
305
+ }).split('\n');
306
+ }
307
+
308
+ //# sourceMappingURL=pick-outdated-pkgs.js.map
@@ -0,0 +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","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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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+
3
+ function _pickOutdatedPkgs() {
4
+ const data = require("./pick-outdated-pkgs");
5
+
6
+ _pickOutdatedPkgs = function () {
7
+ return data;
8
+ };
9
+
10
+ return data;
11
+ }
12
+
13
+ describe('makeOutdatedPkgChoices', () => {
14
+ it('should render choices in correct order', () => {
15
+ const choices = (0, _pickOutdatedPkgs().makeOutdatedPkgChoices)([{
16
+ name: 'zoo',
17
+ currentRange: '1.0.0',
18
+ latestRange: '1.1.0',
19
+ source: 'rootPolicy',
20
+ targetField: 'devDependencies'
21
+ }, {
22
+ name: 'qar',
23
+ currentRange: '1.0.0',
24
+ latestRange: '1.1.0',
25
+ source: 'rootPolicy',
26
+ targetField: 'dependencies'
27
+ }, {
28
+ name: 'foo',
29
+ currentRange: '1.0.0',
30
+ latestRange: '2.0.0',
31
+ source: 'rootPolicy',
32
+ targetField: 'dependencies'
33
+ }, {
34
+ name: 'bar',
35
+ currentRange: '1.0.0',
36
+ latestRange: '1.1.0',
37
+ source: 'rootPolicy',
38
+ targetField: 'peerDependencies'
39
+ }]); // @ts-ignore
40
+
41
+ expect(choices).toMatchSnapshot();
42
+ });
43
+ it('should render choices with context information', () => {
44
+ const choices = (0, _pickOutdatedPkgs().makeOutdatedPkgChoices)([{
45
+ name: 'foo',
46
+ currentRange: '1.0.0',
47
+ latestRange: '2.0.0',
48
+ source: 'component',
49
+ componentId: 'comp1',
50
+ targetField: 'dependencies'
51
+ }, {
52
+ name: 'bar',
53
+ currentRange: '1.0.0',
54
+ latestRange: '1.1.0',
55
+ source: 'variants',
56
+ variantPattern: '{comp2}',
57
+ targetField: 'peerDependencies'
58
+ }]); // @ts-ignore
59
+
60
+ expect(choices).toMatchSnapshot();
61
+ });
62
+ it('should group component model updates of the same dependency', () => {
63
+ const choices = (0, _pickOutdatedPkgs().makeOutdatedPkgChoices)([{
64
+ name: 'foo',
65
+ currentRange: '1.0.0',
66
+ latestRange: '2.0.0',
67
+ source: 'component-model',
68
+ componentId: 'comp1',
69
+ targetField: 'devDependencies'
70
+ }, {
71
+ name: 'foo',
72
+ currentRange: '1.1.0',
73
+ latestRange: '2.0.0',
74
+ source: 'component-model',
75
+ componentId: 'comp2',
76
+ targetField: 'dependencies'
77
+ }]); // @ts-ignore
78
+
79
+ expect(choices).toMatchSnapshot();
80
+ });
81
+ it("should group component model updates of the same dependency and use * as current range when can't compare ranges", () => {
82
+ const choices = (0, _pickOutdatedPkgs().makeOutdatedPkgChoices)([{
83
+ name: 'foo',
84
+ currentRange: '<=10.0.0',
85
+ latestRange: '2.0.0',
86
+ source: 'component-model',
87
+ componentId: 'comp1',
88
+ targetField: 'dependencies'
89
+ }, {
90
+ name: 'foo',
91
+ currentRange: '1.1.0',
92
+ latestRange: '2.0.0',
93
+ source: 'component-model',
94
+ componentId: 'comp2',
95
+ targetField: 'dependencies'
96
+ }]); // @ts-ignore
97
+
98
+ expect(choices).toMatchSnapshot();
99
+ });
100
+ it('should group component model updates of the same dependency and display the current range when all components use the same range', () => {
101
+ const choices = (0, _pickOutdatedPkgs().makeOutdatedPkgChoices)([{
102
+ name: 'foo',
103
+ currentRange: '^1.2.3',
104
+ latestRange: '2.0.0',
105
+ source: 'component-model',
106
+ componentId: 'comp1',
107
+ targetField: 'dependencies'
108
+ }, {
109
+ name: 'foo',
110
+ currentRange: '^1.2.3',
111
+ latestRange: '2.0.0',
112
+ source: 'component-model',
113
+ componentId: 'comp2',
114
+ targetField: 'dependencies'
115
+ }]); // @ts-ignore
116
+
117
+ expect(choices).toMatchSnapshot();
118
+ });
119
+ });
120
+
121
+ //# sourceMappingURL=pick-outdated-pkgs.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","it","choices","makeOutdatedPkgChoices","name","currentRange","latestRange","source","targetField","expect","toMatchSnapshot","componentId","variantPattern"],"sources":["pick-outdated-pkgs.spec.ts"],"sourcesContent":["import { makeOutdatedPkgChoices } from './pick-outdated-pkgs';\n\ndescribe('makeOutdatedPkgChoices', () => {\n it('should render choices in correct order', () => {\n const choices = makeOutdatedPkgChoices([\n {\n name: 'zoo',\n currentRange: '1.0.0',\n latestRange: '1.1.0',\n source: 'rootPolicy',\n targetField: 'devDependencies',\n },\n {\n name: 'qar',\n currentRange: '1.0.0',\n latestRange: '1.1.0',\n source: 'rootPolicy',\n targetField: 'dependencies',\n },\n {\n name: 'foo',\n currentRange: '1.0.0',\n latestRange: '2.0.0',\n source: 'rootPolicy',\n targetField: 'dependencies',\n },\n {\n name: 'bar',\n currentRange: '1.0.0',\n latestRange: '1.1.0',\n source: 'rootPolicy',\n targetField: 'peerDependencies',\n },\n ]);\n // @ts-ignore\n expect(choices).toMatchSnapshot();\n });\n it('should render choices with context information', () => {\n const choices = makeOutdatedPkgChoices([\n {\n name: 'foo',\n currentRange: '1.0.0',\n latestRange: '2.0.0',\n source: 'component',\n componentId: 'comp1',\n targetField: 'dependencies',\n },\n {\n name: 'bar',\n currentRange: '1.0.0',\n latestRange: '1.1.0',\n source: 'variants',\n variantPattern: '{comp2}',\n targetField: 'peerDependencies',\n },\n ]);\n // @ts-ignore\n expect(choices).toMatchSnapshot();\n });\n it('should group component model updates of the same dependency', () => {\n const choices = makeOutdatedPkgChoices([\n {\n name: 'foo',\n currentRange: '1.0.0',\n latestRange: '2.0.0',\n source: 'component-model',\n componentId: 'comp1',\n targetField: 'devDependencies',\n },\n {\n name: 'foo',\n currentRange: '1.1.0',\n latestRange: '2.0.0',\n source: 'component-model',\n componentId: 'comp2',\n targetField: 'dependencies',\n },\n ]);\n // @ts-ignore\n expect(choices).toMatchSnapshot();\n });\n it(\"should group component model updates of the same dependency and use * as current range when can't compare ranges\", () => {\n const choices = makeOutdatedPkgChoices([\n {\n name: 'foo',\n currentRange: '<=10.0.0',\n latestRange: '2.0.0',\n source: 'component-model',\n componentId: 'comp1',\n targetField: 'dependencies',\n },\n {\n name: 'foo',\n currentRange: '1.1.0',\n latestRange: '2.0.0',\n source: 'component-model',\n componentId: 'comp2',\n targetField: 'dependencies',\n },\n ]);\n // @ts-ignore\n expect(choices).toMatchSnapshot();\n });\n it('should group component model updates of the same dependency and display the current range when all components use the same range', () => {\n const choices = makeOutdatedPkgChoices([\n {\n name: 'foo',\n currentRange: '^1.2.3',\n latestRange: '2.0.0',\n source: 'component-model',\n componentId: 'comp1',\n targetField: 'dependencies',\n },\n {\n name: 'foo',\n currentRange: '^1.2.3',\n latestRange: '2.0.0',\n source: 'component-model',\n componentId: 'comp2',\n targetField: 'dependencies',\n },\n ]);\n // @ts-ignore\n expect(choices).toMatchSnapshot();\n });\n});\n"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Command, CommandOptions } from '@teambit/cli';
2
+ import { InstallMain } from './install.main.runtime';
3
+ export default class UninstallCmd implements Command {
4
+ private install;
5
+ name: string;
6
+ description: string;
7
+ alias: string;
8
+ group: string;
9
+ options: CommandOptions;
10
+ constructor(install: InstallMain);
11
+ report([packages]: [string[]]): Promise<string>;
12
+ }