@teambit/install 0.0.28 → 0.0.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/exceptions/dependency-type-not-supported-in-policy.js +0 -6
- package/dist/exceptions/dependency-type-not-supported-in-policy.js.map +1 -1
- package/dist/exceptions/index.js +0 -3
- package/dist/exceptions/index.js.map +1 -1
- package/dist/index.js +0 -5
- package/dist/index.js.map +1 -1
- package/dist/install.aspect.js +0 -5
- package/dist/install.aspect.js.map +1 -1
- package/dist/install.cmd.js +0 -17
- package/dist/install.cmd.js.map +1 -1
- package/dist/install.main.runtime.js +11 -142
- package/dist/install.main.runtime.js.map +1 -1
- package/dist/link/component-list-links.js +0 -18
- package/dist/link/component-list-links.js.map +1 -1
- package/dist/link/core-aspects-links.js +0 -18
- package/dist/link/core-aspects-links.js.map +1 -1
- package/dist/link/get-package-name-from-target.js +0 -2
- package/dist/link/get-package-name-from-target.js.map +1 -1
- package/dist/link/index.js +0 -3
- package/dist/link/index.js.map +1 -1
- package/dist/link/link-row.js +0 -6
- package/dist/link/link-row.js.map +1 -1
- package/dist/link/link-to-dir.js +0 -10
- package/dist/link/link-to-dir.js.map +1 -1
- package/dist/link/link.cmd.js +2 -36
- package/dist/link/link.cmd.js.map +1 -1
- package/dist/link/nested-deps-in-nm-links.js +0 -15
- package/dist/link/nested-deps-in-nm-links.js.map +1 -1
- package/dist/link/rewire-row.js +0 -5
- package/dist/link/rewire-row.js.map +1 -1
- package/dist/pick-outdated-pkgs.js +3 -64
- package/dist/pick-outdated-pkgs.js.map +1 -1
- package/dist/pick-outdated-pkgs.spec.js +10 -13
- package/dist/pick-outdated-pkgs.spec.js.map +1 -1
- package/dist/uninstall.cmd.js +0 -10
- package/dist/uninstall.cmd.js.map +1 -1
- package/dist/update.cmd.js +0 -9
- package/dist/update.cmd.js.map +1 -1
- package/package-tar/teambit-install-0.0.30.tgz +0 -0
- package/package.json +4 -4
- /package/{preview-1666409808293.js → preview-1666669368175.js} +0 -0
- package/package-tar/teambit-install-0.0.28.tgz +0 -0
package/dist/link/link.cmd.js
CHANGED
@@ -1,96 +1,68 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
-
|
5
4
|
require("core-js/modules/es.array.iterator.js");
|
6
|
-
|
7
5
|
require("core-js/modules/es.promise.js");
|
8
|
-
|
9
6
|
Object.defineProperty(exports, "__esModule", {
|
10
7
|
value: true
|
11
8
|
});
|
12
9
|
exports.LinkCommand = void 0;
|
13
|
-
|
14
10
|
function _defineProperty2() {
|
15
11
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
16
|
-
|
17
12
|
_defineProperty2 = function () {
|
18
13
|
return data;
|
19
14
|
};
|
20
|
-
|
21
15
|
return data;
|
22
16
|
}
|
23
|
-
|
24
17
|
function _toolboxTime() {
|
25
18
|
const data = require("@teambit/toolbox.time.time-format");
|
26
|
-
|
27
19
|
_toolboxTime = function () {
|
28
20
|
return data;
|
29
21
|
};
|
30
|
-
|
31
22
|
return data;
|
32
23
|
}
|
33
|
-
|
34
24
|
function _chalk() {
|
35
25
|
const data = _interopRequireDefault(require("chalk"));
|
36
|
-
|
37
26
|
_chalk = function () {
|
38
27
|
return data;
|
39
28
|
};
|
40
|
-
|
41
29
|
return data;
|
42
30
|
}
|
43
|
-
|
44
31
|
function _componentListLinks() {
|
45
32
|
const data = require("./component-list-links");
|
46
|
-
|
47
33
|
_componentListLinks = function () {
|
48
34
|
return data;
|
49
35
|
};
|
50
|
-
|
51
36
|
return data;
|
52
37
|
}
|
53
|
-
|
54
38
|
function _coreAspectsLinks() {
|
55
39
|
const data = require("./core-aspects-links");
|
56
|
-
|
57
40
|
_coreAspectsLinks = function () {
|
58
41
|
return data;
|
59
42
|
};
|
60
|
-
|
61
43
|
return data;
|
62
44
|
}
|
63
|
-
|
64
45
|
function _nestedDepsInNmLinks() {
|
65
46
|
const data = require("./nested-deps-in-nm-links");
|
66
|
-
|
67
47
|
_nestedDepsInNmLinks = function () {
|
68
48
|
return data;
|
69
49
|
};
|
70
|
-
|
71
50
|
return data;
|
72
51
|
}
|
73
|
-
|
74
52
|
function _rewireRow() {
|
75
53
|
const data = require("./rewire-row");
|
76
|
-
|
77
54
|
_rewireRow = function () {
|
78
55
|
return data;
|
79
56
|
};
|
80
|
-
|
81
57
|
return data;
|
82
58
|
}
|
83
|
-
|
84
59
|
function _linkToDir() {
|
85
60
|
const data = require("./link-to-dir");
|
86
|
-
|
87
61
|
_linkToDir = function () {
|
88
62
|
return data;
|
89
63
|
};
|
90
|
-
|
91
64
|
return data;
|
92
65
|
}
|
93
|
-
|
94
66
|
class LinkCommand {
|
95
67
|
constructor(install,
|
96
68
|
/**
|
@@ -118,21 +90,17 @@ class LinkCommand {
|
|
118
90
|
(0, _defineProperty2().default)(this, "options", [['j', 'json', 'return the output as JSON'], ['', 'verbose', 'verbose output'], ['r', 'rewire', 'Replace relative paths with module paths in code (e.g. "../foo" => "@bit/foo")'], ['', 'target <dir>', 'EXPERIMENTAL. link to an external directory (similar to npm-link) so other projects could use these components'], ['', 'skip-fetching-objects', 'skip fetch missing objects from remotes before linking']]);
|
119
91
|
this.extendedDescription = `https://${this.docsDomain}/workspace/component-links`;
|
120
92
|
}
|
121
|
-
|
122
93
|
async report([ids], opts) {
|
123
94
|
var _linkResults$legacyLi;
|
124
|
-
|
125
95
|
const startTime = Date.now();
|
126
96
|
const linkResults = await this.json([ids], opts);
|
127
97
|
const endTime = Date.now();
|
128
98
|
const numOfComponents = (_linkResults$legacyLi = linkResults.legacyLinkResults) === null || _linkResults$legacyLi === void 0 ? void 0 : _linkResults$legacyLi.length;
|
129
99
|
const timeDiff = (0, _toolboxTime().timeFormat)(endTime - startTime);
|
130
100
|
const coreAspectsLinksWithMainAspect = linkResults.coreAspectsLinks || [];
|
131
|
-
|
132
101
|
if (linkResults.teambitBitLink) {
|
133
102
|
coreAspectsLinksWithMainAspect.unshift(linkResults.teambitBitLink);
|
134
103
|
}
|
135
|
-
|
136
104
|
const numOfCoreAspects = coreAspectsLinksWithMainAspect.length;
|
137
105
|
const title = `Linked ${numOfComponents} components and ${numOfCoreAspects} core aspects to node_modules for workspace: ${this.workspace.name}`;
|
138
106
|
const coreLinks = (0, _coreAspectsLinks().CoreAspectsLinks)({
|
@@ -153,9 +121,9 @@ class LinkCommand {
|
|
153
121
|
const targetLinks = (0, _linkToDir().linkToDir)(linkResults.linkToDirResults);
|
154
122
|
const footer = `Finished. ${timeDiff}`;
|
155
123
|
return `${title}\n${coreLinks}\n${compsLinks}\n${rewireRow}${nestedLinks}${targetLinks}${footer}`;
|
156
|
-
}
|
157
|
-
|
124
|
+
}
|
158
125
|
|
126
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
159
127
|
async json([ids], opts) {
|
160
128
|
this.logger.console(`Linking components and core aspects to node_modules for workspaces: '${_chalk().default.cyan(this.workspace.name)}'`);
|
161
129
|
const linkOpts = {
|
@@ -169,9 +137,7 @@ class LinkCommand {
|
|
169
137
|
const linkResults = await this.install.link(linkOpts);
|
170
138
|
return linkResults;
|
171
139
|
}
|
172
|
-
|
173
140
|
}
|
174
|
-
|
175
141
|
exports.LinkCommand = LinkCommand;
|
176
142
|
|
177
143
|
//# sourceMappingURL=link.cmd.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["LinkCommand","constructor","install","workspace","logger","docsDomain","name","description","extendedDescription","report","ids","opts","startTime","Date","now","linkResults","json","endTime","numOfComponents","legacyLinkResults","length","timeDiff","timeFormat","coreAspectsLinksWithMainAspect","coreAspectsLinks","teambitBitLink","unshift","numOfCoreAspects","title","coreLinks","CoreAspectsLinks","verbose","compsLinks","ComponentListLinks","componentListLinks","rewireRow","RewireRow","legacyCodemodResults","legacyLinkCodemodResults","nestedLinks","NestedComponentLinksLinks","nestedDepsInNmLinks","targetLinks","linkToDir","linkToDirResults","footer","console","chalk","cyan","linkOpts","legacyLink","rewire","linkCoreAspects","linkTeambitBit","target","fetchObject","skipFetchingObjects","link"],"sources":["link.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { LinkResults } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { timeFormat } from '@teambit/toolbox.time.time-format';\nimport chalk from 'chalk';\nimport { Workspace } from '@teambit/workspace';\nimport { InstallMain, WorkspaceLinkOptions } from '../install.main.runtime';\nimport { ComponentListLinks } from './component-list-links';\nimport { CoreAspectsLinks } from './core-aspects-links';\nimport { NestedComponentLinksLinks } from './nested-deps-in-nm-links';\nimport { RewireRow } from './rewire-row';\nimport { linkToDir } from './link-to-dir';\n\ntype LinkCommandOpts = {\n rewire: boolean;\n verbose: boolean;\n target: string;\n skipFetchingObjects?: boolean;\n};\nexport class LinkCommand implements Command {\n name = 'link [component-names...]';\n alias = '';\n description = 'create links in the node_modules directory, to core aspects and to components in the workspace';\n extendedDescription: string;\n group = 'development';\n private = false;\n arguments = [{ name: 'component-names...', description: 'names or IDs of the components to link' }];\n options = [\n ['j', 'json', 'return the output as JSON'],\n ['', 'verbose', 'verbose output'],\n ['r', 'rewire', 'Replace relative paths with module paths in code (e.g. \"../foo\" => \"@bit/foo\")'],\n [\n '',\n 'target <dir>',\n 'EXPERIMENTAL. link to an external directory (similar to npm-link) so other projects could use these components',\n ],\n ['', 'skip-fetching-objects', 'skip fetch missing objects from remotes before linking'],\n ] as CommandOptions;\n\n constructor(\n private install: InstallMain,\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n private docsDomain: string\n ) {\n this.extendedDescription = `https://${this.docsDomain}/workspace/component-links`;\n }\n\n async report([ids]: [string[]], opts: LinkCommandOpts) {\n const startTime = Date.now();\n const linkResults = await this.json([ids], opts);\n const endTime = Date.now();\n const numOfComponents = linkResults.legacyLinkResults?.length;\n const timeDiff = timeFormat(endTime - startTime);\n const coreAspectsLinksWithMainAspect = linkResults.coreAspectsLinks || [];\n if (linkResults.teambitBitLink) {\n coreAspectsLinksWithMainAspect.unshift(linkResults.teambitBitLink);\n }\n const numOfCoreAspects = coreAspectsLinksWithMainAspect.length;\n\n const title = `Linked ${numOfComponents} components and ${numOfCoreAspects} core aspects to node_modules for workspace: ${this.workspace.name}`;\n const coreLinks = CoreAspectsLinks({\n coreAspectsLinks: coreAspectsLinksWithMainAspect,\n verbose: opts.verbose,\n });\n const compsLinks = ComponentListLinks({ componentListLinks: linkResults.legacyLinkResults, verbose: opts.verbose });\n const rewireRow = RewireRow({ legacyCodemodResults: linkResults.legacyLinkCodemodResults });\n const nestedLinks = NestedComponentLinksLinks({\n nestedDepsInNmLinks: linkResults.nestedDepsInNmLinks,\n verbose: opts.verbose,\n });\n const targetLinks = linkToDir(linkResults.linkToDirResults);\n const footer = `Finished. ${timeDiff}`;\n return `${title}\\n${coreLinks}\\n${compsLinks}\\n${rewireRow}${nestedLinks}${targetLinks}${footer}`;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async json([ids]: [string[]], opts: LinkCommandOpts): Promise<LinkResults> {\n this.logger.console(\n `Linking components and core aspects to node_modules for workspaces: '${chalk.cyan(this.workspace.name)}'`\n );\n\n const linkOpts: WorkspaceLinkOptions = {\n legacyLink: true,\n rewire: opts.rewire,\n linkCoreAspects: true,\n linkTeambitBit: true,\n linkToDir: opts.target,\n fetchObject: !opts.skipFetchingObjects,\n };\n const linkResults = await this.install.link(linkOpts);\n return linkResults;\n }\n}\n"],"mappings":"
|
1
|
+
{"version":3,"names":["LinkCommand","constructor","install","workspace","logger","docsDomain","name","description","extendedDescription","report","ids","opts","startTime","Date","now","linkResults","json","endTime","numOfComponents","legacyLinkResults","length","timeDiff","timeFormat","coreAspectsLinksWithMainAspect","coreAspectsLinks","teambitBitLink","unshift","numOfCoreAspects","title","coreLinks","CoreAspectsLinks","verbose","compsLinks","ComponentListLinks","componentListLinks","rewireRow","RewireRow","legacyCodemodResults","legacyLinkCodemodResults","nestedLinks","NestedComponentLinksLinks","nestedDepsInNmLinks","targetLinks","linkToDir","linkToDirResults","footer","console","chalk","cyan","linkOpts","legacyLink","rewire","linkCoreAspects","linkTeambitBit","target","fetchObject","skipFetchingObjects","link"],"sources":["link.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { LinkResults } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { timeFormat } from '@teambit/toolbox.time.time-format';\nimport chalk from 'chalk';\nimport { Workspace } from '@teambit/workspace';\nimport { InstallMain, WorkspaceLinkOptions } from '../install.main.runtime';\nimport { ComponentListLinks } from './component-list-links';\nimport { CoreAspectsLinks } from './core-aspects-links';\nimport { NestedComponentLinksLinks } from './nested-deps-in-nm-links';\nimport { RewireRow } from './rewire-row';\nimport { linkToDir } from './link-to-dir';\n\ntype LinkCommandOpts = {\n rewire: boolean;\n verbose: boolean;\n target: string;\n skipFetchingObjects?: boolean;\n};\nexport class LinkCommand implements Command {\n name = 'link [component-names...]';\n alias = '';\n description = 'create links in the node_modules directory, to core aspects and to components in the workspace';\n extendedDescription: string;\n group = 'development';\n private = false;\n arguments = [{ name: 'component-names...', description: 'names or IDs of the components to link' }];\n options = [\n ['j', 'json', 'return the output as JSON'],\n ['', 'verbose', 'verbose output'],\n ['r', 'rewire', 'Replace relative paths with module paths in code (e.g. \"../foo\" => \"@bit/foo\")'],\n [\n '',\n 'target <dir>',\n 'EXPERIMENTAL. link to an external directory (similar to npm-link) so other projects could use these components',\n ],\n ['', 'skip-fetching-objects', 'skip fetch missing objects from remotes before linking'],\n ] as CommandOptions;\n\n constructor(\n private install: InstallMain,\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n private docsDomain: string\n ) {\n this.extendedDescription = `https://${this.docsDomain}/workspace/component-links`;\n }\n\n async report([ids]: [string[]], opts: LinkCommandOpts) {\n const startTime = Date.now();\n const linkResults = await this.json([ids], opts);\n const endTime = Date.now();\n const numOfComponents = linkResults.legacyLinkResults?.length;\n const timeDiff = timeFormat(endTime - startTime);\n const coreAspectsLinksWithMainAspect = linkResults.coreAspectsLinks || [];\n if (linkResults.teambitBitLink) {\n coreAspectsLinksWithMainAspect.unshift(linkResults.teambitBitLink);\n }\n const numOfCoreAspects = coreAspectsLinksWithMainAspect.length;\n\n const title = `Linked ${numOfComponents} components and ${numOfCoreAspects} core aspects to node_modules for workspace: ${this.workspace.name}`;\n const coreLinks = CoreAspectsLinks({\n coreAspectsLinks: coreAspectsLinksWithMainAspect,\n verbose: opts.verbose,\n });\n const compsLinks = ComponentListLinks({ componentListLinks: linkResults.legacyLinkResults, verbose: opts.verbose });\n const rewireRow = RewireRow({ legacyCodemodResults: linkResults.legacyLinkCodemodResults });\n const nestedLinks = NestedComponentLinksLinks({\n nestedDepsInNmLinks: linkResults.nestedDepsInNmLinks,\n verbose: opts.verbose,\n });\n const targetLinks = linkToDir(linkResults.linkToDirResults);\n const footer = `Finished. ${timeDiff}`;\n return `${title}\\n${coreLinks}\\n${compsLinks}\\n${rewireRow}${nestedLinks}${targetLinks}${footer}`;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async json([ids]: [string[]], opts: LinkCommandOpts): Promise<LinkResults> {\n this.logger.console(\n `Linking components and core aspects to node_modules for workspaces: '${chalk.cyan(this.workspace.name)}'`\n );\n\n const linkOpts: WorkspaceLinkOptions = {\n legacyLink: true,\n rewire: opts.rewire,\n linkCoreAspects: true,\n linkTeambitBit: true,\n linkToDir: opts.target,\n fetchObject: !opts.skipFetchingObjects,\n };\n const linkResults = await this.install.link(linkOpts);\n return linkResults;\n }\n}\n"],"mappings":"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"}
|
@@ -1,51 +1,39 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
-
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
6
5
|
value: true
|
7
6
|
});
|
8
7
|
exports.NestedComponentLinksLinks = NestedComponentLinksLinks;
|
9
|
-
|
10
8
|
function _chalk() {
|
11
9
|
const data = _interopRequireDefault(require("chalk"));
|
12
|
-
|
13
10
|
_chalk = function () {
|
14
11
|
return data;
|
15
12
|
};
|
16
|
-
|
17
13
|
return data;
|
18
14
|
}
|
19
|
-
|
20
15
|
function _linkRow() {
|
21
16
|
const data = require("./link-row");
|
22
|
-
|
23
17
|
_linkRow = function () {
|
24
18
|
return data;
|
25
19
|
};
|
26
|
-
|
27
20
|
return data;
|
28
21
|
}
|
29
|
-
|
30
22
|
function NestedComponentLinksLinks({
|
31
23
|
nestedDepsInNmLinks,
|
32
24
|
verbose = false
|
33
25
|
}) {
|
34
26
|
if (!verbose) return '';
|
35
|
-
|
36
27
|
if (!nestedDepsInNmLinks || !nestedDepsInNmLinks.length) {
|
37
28
|
return '';
|
38
29
|
}
|
39
|
-
|
40
30
|
const title = _chalk().default.bold.cyan('Nested dependencies links');
|
41
|
-
|
42
31
|
const links = nestedDepsInNmLinks.map(nestedComponentLinks => NestedComponentLinks({
|
43
32
|
nestedComponentLinks,
|
44
33
|
verbose
|
45
34
|
})).join('\n');
|
46
35
|
return `${title}\n${links}\n`;
|
47
36
|
}
|
48
|
-
|
49
37
|
function NestedComponentLinks({
|
50
38
|
nestedComponentLinks,
|
51
39
|
verbose = false
|
@@ -56,14 +44,11 @@ function NestedComponentLinks({
|
|
56
44
|
});
|
57
45
|
return '';
|
58
46
|
}
|
59
|
-
|
60
47
|
function VerboseNestedComponentLinks({
|
61
48
|
nestedComponentLinks
|
62
49
|
}) {
|
63
50
|
const id = nestedComponentLinks.componentId.toString();
|
64
|
-
|
65
51
|
const title = _chalk().default.cyan.bold(id);
|
66
|
-
|
67
52
|
const links = nestedComponentLinks.linksDetail.map(link => (0, _linkRow().VerboseLinkRow)({
|
68
53
|
from: link.from,
|
69
54
|
to: link.to
|
@@ -1 +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":"
|
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,yBAAyB,CAAC;EAAEC,mBAAmB;EAAEC,OAAO,GAAG;AAAsC,CAAC,EAAE;EAClH,IAAI,CAACA,OAAO,EAAE,OAAO,EAAE;EACvB,IAAI,CAACD,mBAAmB,IAAI,CAACA,mBAAmB,CAACE,MAAM,EAAE;IACvD,OAAO,EAAE;EACX;EACA,MAAMC,KAAK,GAAGC,gBAAK,CAACC,IAAI,CAACC,IAAI,CAAC,2BAA2B,CAAC;EAC1D,MAAMC,KAAK,GAAGP,mBAAmB,CAC9BQ,GAAG,CAAEC,oBAAoB,IACxBC,oBAAoB,CAAC;IACnBD,oBAAoB;IACpBR;EACF,CAAC,CAAC,CACH,CACAU,IAAI,CAAC,IAAI,CAAC;EACb,OAAQ,GAAER,KAAM,KAAII,KAAM,IAAG;AAC/B;AAMA,SAASG,oBAAoB,CAAC;EAAED,oBAAoB;EAAER,OAAO,GAAG;AAAiC,CAAC,EAAE;EAClG,IAAI,CAACQ,oBAAoB,CAACG,WAAW,IAAIH,oBAAoB,CAACG,WAAW,CAACV,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE;EAC/F,IAAID,OAAO,EAAE,OAAOY,2BAA2B,CAAC;IAAEJ;EAAqB,CAAC,CAAC;EACzE,OAAO,EAAE;AACX;AAKA,SAASI,2BAA2B,CAAC;EAAEJ;AAAuD,CAAC,EAAE;EAC/F,MAAMK,EAAE,GAAGL,oBAAoB,CAACM,WAAW,CAACC,QAAQ,EAAE;EACtD,MAAMb,KAAK,GAAGC,gBAAK,CAACE,IAAI,CAACD,IAAI,CAACS,EAAE,CAAC;EACjC,MAAMP,KAAK,GAAGE,oBAAoB,CAACG,WAAW,CAC3CJ,GAAG,CAAES,IAAI,IAAK,IAAAC,yBAAc,EAAC;IAAEC,IAAI,EAAEF,IAAI,CAACE,IAAI;IAAEC,EAAE,EAAEH,IAAI,CAACG;EAAG,CAAC,CAAC,CAAC,CAC/DT,IAAI,CAAC,IAAI,CAAC;EACb,OAAQ,GAAER,KAAM,KAAII,KAAM,IAAG;AAC/B"}
|
package/dist/link/rewire-row.js
CHANGED
@@ -1,22 +1,17 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
-
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
6
5
|
value: true
|
7
6
|
});
|
8
7
|
exports.RewireRow = RewireRow;
|
9
|
-
|
10
8
|
function _chalk() {
|
11
9
|
const data = _interopRequireDefault(require("chalk"));
|
12
|
-
|
13
10
|
_chalk = function () {
|
14
11
|
return data;
|
15
12
|
};
|
16
|
-
|
17
13
|
return data;
|
18
14
|
}
|
19
|
-
|
20
15
|
function RewireRow({
|
21
16
|
legacyCodemodResults
|
22
17
|
}) {
|
@@ -1 +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":"
|
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,SAAS,CAAC;EAAEC;AAAqC,CAAC,EAAE;EAClE,IAAI,CAACA,oBAAoB,IAAIA,oBAAoB,CAACC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE;EACvE,MAAMC,UAAU,GAAGF,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEC,MAAM;EAC/C,MAAME,UAAU,GAAGH,oBAAoB,CAACI,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAK;IAC5D,OAAOD,GAAG,GAAGC,IAAI,CAACC,YAAY,CAACN,MAAM,IAAI,CAAC;EAC5C,CAAC,EAAE,CAAC,CAAC;EAEL,OAAQ,WAAUO,gBAAK,CAACC,IAAI,CAACP,UAAU,CAACQ,QAAQ,EAAE,CAAE,4BAA2BF,gBAAK,CAACC,IAAI,CACvFN,UAAU,CAACO,QAAQ,EAAE,CACrB,UAAS;AACb"}
|
@@ -1,105 +1,73 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
-
|
5
4
|
require("core-js/modules/es.array.iterator.js");
|
6
|
-
|
7
5
|
require("core-js/modules/es.array.sort.js");
|
8
|
-
|
9
6
|
require("core-js/modules/es.promise.js");
|
10
|
-
|
11
7
|
require("core-js/modules/es.regexp.exec.js");
|
12
|
-
|
13
8
|
Object.defineProperty(exports, "__esModule", {
|
14
9
|
value: true
|
15
10
|
});
|
16
11
|
exports.makeOutdatedPkgChoices = makeOutdatedPkgChoices;
|
17
12
|
exports.pickOutdatedPkgs = pickOutdatedPkgs;
|
18
|
-
|
19
13
|
function _defineProperty2() {
|
20
14
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
21
|
-
|
22
15
|
_defineProperty2 = function () {
|
23
16
|
return data;
|
24
17
|
};
|
25
|
-
|
26
18
|
return data;
|
27
19
|
}
|
28
|
-
|
29
20
|
function _colorizeSemverDiff() {
|
30
21
|
const data = _interopRequireDefault(require("@pnpm/colorize-semver-diff"));
|
31
|
-
|
32
22
|
_colorizeSemverDiff = function () {
|
33
23
|
return data;
|
34
24
|
};
|
35
|
-
|
36
25
|
return data;
|
37
26
|
}
|
38
|
-
|
39
27
|
function _semverDiff() {
|
40
28
|
const data = _interopRequireDefault(require("@pnpm/semver-diff"));
|
41
|
-
|
42
29
|
_semverDiff = function () {
|
43
30
|
return data;
|
44
31
|
};
|
45
|
-
|
46
32
|
return data;
|
47
33
|
}
|
48
|
-
|
49
34
|
function _lodash() {
|
50
35
|
const data = require("lodash");
|
51
|
-
|
52
36
|
_lodash = function () {
|
53
37
|
return data;
|
54
38
|
};
|
55
|
-
|
56
39
|
return data;
|
57
40
|
}
|
58
|
-
|
59
41
|
function _table() {
|
60
42
|
const data = require("table");
|
61
|
-
|
62
43
|
_table = function () {
|
63
44
|
return data;
|
64
45
|
};
|
65
|
-
|
66
46
|
return data;
|
67
47
|
}
|
68
|
-
|
69
48
|
function _chalk() {
|
70
49
|
const data = _interopRequireDefault(require("chalk"));
|
71
|
-
|
72
50
|
_chalk = function () {
|
73
51
|
return data;
|
74
52
|
};
|
75
|
-
|
76
53
|
return data;
|
77
54
|
}
|
78
|
-
|
79
55
|
function _enquirer() {
|
80
56
|
const data = require("enquirer");
|
81
|
-
|
82
57
|
_enquirer = function () {
|
83
58
|
return data;
|
84
59
|
};
|
85
|
-
|
86
60
|
return data;
|
87
61
|
}
|
88
|
-
|
89
62
|
function _semver() {
|
90
63
|
const data = _interopRequireDefault(require("semver"));
|
91
|
-
|
92
64
|
_semver = function () {
|
93
65
|
return data;
|
94
66
|
};
|
95
|
-
|
96
67
|
return data;
|
97
68
|
}
|
98
|
-
|
99
69
|
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
70
|
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
71
|
/**
|
104
72
|
* Lets the user pick the packages that should be updated.
|
105
73
|
*/
|
@@ -121,48 +89,41 @@ ${_chalk().default.red('Red')} - indicates a semantically breaking change`,
|
|
121
89
|
success: _chalk().default.white
|
122
90
|
},
|
123
91
|
type: 'multiselect',
|
124
|
-
|
125
92
|
validate(value) {
|
126
93
|
if (value.length === 0) {
|
127
94
|
return 'You must choose at least one package.';
|
128
95
|
}
|
129
|
-
|
130
96
|
return true;
|
131
97
|
},
|
132
|
-
|
133
98
|
j() {
|
134
99
|
return this.down();
|
135
100
|
},
|
136
|
-
|
137
101
|
k() {
|
138
102
|
return this.up();
|
139
103
|
},
|
140
|
-
|
141
104
|
result(names) {
|
142
105
|
// This is needed in order to have the values of the choices in the answer object.
|
143
106
|
// Otherwise, only the names of the selected choices would've been included.
|
144
107
|
return this.map(names);
|
145
108
|
},
|
146
|
-
|
147
|
-
|
109
|
+
cancel() {
|
110
|
+
// By default, canceling the prompt via Ctrl+c throws an empty string.
|
148
111
|
// The custom cancel function prevents that behavior.
|
149
112
|
// Otherwise, Bit CLI would print an error and confuse users.
|
150
113
|
// See related issue: https://github.com/enquirer/enquirer/issues/225
|
151
114
|
}
|
152
|
-
|
153
115
|
});
|
154
116
|
return Object.values(updateDependencies !== null && updateDependencies !== void 0 ? updateDependencies : {}).filter(updateDependency => typeof updateDependency !== 'string');
|
155
117
|
}
|
156
|
-
|
157
118
|
const DEP_TYPE_PRIORITY = {
|
158
119
|
dependencies: 0,
|
159
120
|
devDependencies: 1,
|
160
121
|
peerDependencies: 2
|
161
122
|
};
|
123
|
+
|
162
124
|
/**
|
163
125
|
* Groups the outdated packages and makes choices for enquirer's prompt.
|
164
126
|
*/
|
165
|
-
|
166
127
|
function makeOutdatedPkgChoices(outdatedPkgs) {
|
167
128
|
const mergedOutdatedPkgs = mergeOutdatedPkgs(outdatedPkgs);
|
168
129
|
mergedOutdatedPkgs.sort((pkg1, pkg2) => {
|
@@ -173,11 +134,9 @@ function makeOutdatedPkgChoices(outdatedPkgs) {
|
|
173
134
|
const groupedChoices = {};
|
174
135
|
mergedOutdatedPkgs.forEach((outdatedPkg, index) => {
|
175
136
|
const context = renderContext(outdatedPkg);
|
176
|
-
|
177
137
|
if (!groupedChoices[context]) {
|
178
138
|
groupedChoices[context] = [];
|
179
139
|
}
|
180
|
-
|
181
140
|
groupedChoices[context].push({
|
182
141
|
message: renderedTable[index],
|
183
142
|
name: outdatedPkg.name,
|
@@ -190,11 +149,9 @@ function makeOutdatedPkgChoices(outdatedPkgs) {
|
|
190
149
|
}));
|
191
150
|
return choices;
|
192
151
|
}
|
193
|
-
|
194
152
|
function mergeOutdatedPkgs(outdatedPkgs) {
|
195
153
|
const mergedOutdatedPkgs = {};
|
196
154
|
const outdatedPkgsNotFromComponentModel = [];
|
197
|
-
|
198
155
|
for (const outdatedPkg of outdatedPkgs) {
|
199
156
|
if (outdatedPkg.source === 'component-model' && outdatedPkg.componentId) {
|
200
157
|
if (!mergedOutdatedPkgs[outdatedPkg.name]) {
|
@@ -206,10 +163,8 @@ function mergeOutdatedPkgs(outdatedPkgs) {
|
|
206
163
|
if (mergedOutdatedPkgs[outdatedPkg.name].currentRange !== outdatedPkg.currentRange) {
|
207
164
|
mergedOutdatedPkgs[outdatedPkg.name].hasDifferentRanges = true;
|
208
165
|
}
|
209
|
-
|
210
166
|
mergedOutdatedPkgs[outdatedPkg.name].currentRange = tryPickLowestRange(mergedOutdatedPkgs[outdatedPkg.name].currentRange, outdatedPkg.currentRange);
|
211
167
|
mergedOutdatedPkgs[outdatedPkg.name].dependentComponents.push(outdatedPkg.componentId);
|
212
|
-
|
213
168
|
if (outdatedPkg.targetField === 'dependencies') {
|
214
169
|
mergedOutdatedPkgs[outdatedPkg.name].targetField = outdatedPkg.targetField;
|
215
170
|
}
|
@@ -218,46 +173,36 @@ function mergeOutdatedPkgs(outdatedPkgs) {
|
|
218
173
|
outdatedPkgsNotFromComponentModel.push(outdatedPkg);
|
219
174
|
}
|
220
175
|
}
|
221
|
-
|
222
176
|
return [...Object.values(mergedOutdatedPkgs), ...outdatedPkgsNotFromComponentModel];
|
223
177
|
}
|
224
|
-
|
225
178
|
function tryPickLowestRange(range1, range2) {
|
226
179
|
if (range1 === '*' || range2 === '*') return '*';
|
227
|
-
|
228
180
|
try {
|
229
181
|
return _semver().default.lt(rangeToVersion(range1), rangeToVersion(range2)) ? range1 : range2;
|
230
182
|
} catch (_unused) {
|
231
183
|
return '*';
|
232
184
|
}
|
233
185
|
}
|
234
|
-
|
235
186
|
function rangeToVersion(range) {
|
236
187
|
if (range.startsWith('~') || range.startsWith('^')) {
|
237
188
|
return range.substring(1);
|
238
189
|
}
|
239
|
-
|
240
190
|
return range;
|
241
191
|
}
|
242
|
-
|
243
192
|
function renderContext(outdatedPkg) {
|
244
193
|
if (outdatedPkg.variantPattern) {
|
245
194
|
return `${outdatedPkg.variantPattern} (variant)`;
|
246
195
|
}
|
247
|
-
|
248
196
|
if (outdatedPkg.componentId) {
|
249
197
|
return `${outdatedPkg.componentId} (component)`;
|
250
198
|
}
|
251
|
-
|
252
199
|
return 'Root policies';
|
253
200
|
}
|
254
|
-
|
255
201
|
const TARGET_FIELD_TO_DEP_TYPE = {
|
256
202
|
devDependencies: 'dev',
|
257
203
|
dependencies: 'runtime',
|
258
204
|
peerDependencies: 'peer'
|
259
205
|
};
|
260
|
-
|
261
206
|
function outdatedPkgsRows(outdatedPkgs) {
|
262
207
|
return outdatedPkgs.map(outdatedPkg => {
|
263
208
|
const {
|
@@ -265,11 +210,9 @@ function outdatedPkgsRows(outdatedPkgs) {
|
|
265
210
|
diff
|
266
211
|
} = (0, _semverDiff().default)(outdatedPkg.currentRange, outdatedPkg.latestRange);
|
267
212
|
let colorizeChange = change !== null && change !== void 0 ? change : 'breaking';
|
268
|
-
|
269
213
|
if (change === 'feature') {
|
270
214
|
colorizeChange = 'fix';
|
271
215
|
}
|
272
|
-
|
273
216
|
const latest = (0, _colorizeSemverDiff().default)({
|
274
217
|
change: colorizeChange,
|
275
218
|
diff
|
@@ -277,17 +220,13 @@ function outdatedPkgsRows(outdatedPkgs) {
|
|
277
220
|
return [outdatedPkg.name, _chalk().default.grey(`(${TARGET_FIELD_TO_DEP_TYPE[outdatedPkg.targetField]})`), outdatedPkg.hasDifferentRanges ? '*' : outdatedPkg.currentRange, '❯', latest, outdatedPkg.dependentComponents ? renderDependents(outdatedPkg.dependentComponents) : ' '];
|
278
221
|
});
|
279
222
|
}
|
280
|
-
|
281
223
|
function renderDependents(dependentComponents) {
|
282
224
|
let result = `because of ${dependentComponents[0]}`;
|
283
|
-
|
284
225
|
if (dependentComponents.length > 1) {
|
285
226
|
result += ` and ${dependentComponents.length - 1} other components`;
|
286
227
|
}
|
287
|
-
|
288
228
|
return result;
|
289
229
|
}
|
290
|
-
|
291
230
|
function alignColumns(rows) {
|
292
231
|
return (0, _table().table)(rows, {
|
293
232
|
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","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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"}
|
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":";;;;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAA4B;AAAA;AAE5B;AACA;AACA;AACO,eAAeA,gBAAgB,CAACC,YAA2B,EAAgC;EAChG,MAAM;IAAEC;EAAmB,CAAC,GAAI,MAAM,IAAAC,kBAAM,EAAC;IAC3CC,OAAO,EAAEC,sBAAsB,CAACJ,YAAY,CAAC;IAC7CK,MAAM,EAAE,8CAA8C;IACtDC,SAAS,EAAE,CAACC,KAAU,EAAEC,MAAW,KAAM,IAAGA,MAAM,CAACC,OAAO,GAAG,GAAG,GAAG,GAAI,EAAC;IACxEC,OAAO,EACL,kCAAkC,GACjC,UAASC,gBAAK,CAACC,IAAI,CAAC,SAAS,CAAE,cAAa,GAC5C,GAAED,gBAAK,CAACC,IAAI,CAAC,KAAK,CAAE,kBAAiB,GACrC,GAAED,gBAAK,CAACC,IAAI,CAAC,KAAK,CAAE;AAC3B,EAAED,gBAAK,CAACE,KAAK,CAAC,OAAO,CAAE;AACvB,EAAEF,gBAAK,CAACG,GAAG,CAAC,KAAK,CAAE,6CAA4C;IAC3DC,IAAI,EAAE,oBAAoB;IAC1BC,OAAO,EAAE,GAAG;IACZC,MAAM,EAAE;MACNC,IAAI,EAAEP,gBAAK,CAACQ,KAAK;MACjBC,EAAE,EAAET,gBAAK,CAACU,OAAO,CAACC,WAAW;MAC7BC,OAAO,EAAEZ,gBAAK,CAACQ;IACjB,CAAC;IACDK,IAAI,EAAE,aAAa;IACnBC,QAAQ,CAACC,KAAe,EAAE;MACxB,IAAIA,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,uCAAuC;MAChD;MACA,OAAO,IAAI;IACb,CAAC;IACDC,CAAC,GAAG;MACF,OAAO,IAAI,CAACC,IAAI,EAAE;IACpB,CAAC;IACDC,CAAC,GAAG;MACF,OAAO,IAAI,CAACC,EAAE,EAAE;IAClB,CAAC;IACDC,MAAM,CAACC,KAAe,EAAE;MACtB;MACA;MACA,OAAO,IAAI,CAACC,GAAG,CAACD,KAAK,CAAC;IACxB,CAAC;IACDE,MAAM,GAAG;MACP;MACA;MACA;MACA;IACF;EACF,CAAC,CAA+E;EAChF,OAAOC,MAAM,CAACC,MAAM,CAACpC,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,CAAC,CAAC,CAAC,CAACqC,MAAM,CAClDC,gBAAgB,IAAK,OAAOA,gBAAgB,KAAK,QAAQ,CAC3D;AACH;AAEA,MAAMC,iBAAiB,GAAG;EACxBC,YAAY,EAAE,CAAC;EACfC,eAAe,EAAE,CAAC;EAClBC,gBAAgB,EAAE;AACpB,CAAC;;AAED;AACA;AACA;AACO,SAASvC,sBAAsB,CAACJ,YAA2B,EAAE;EAClE,MAAM4C,kBAAkB,GAAGC,iBAAiB,CAAC7C,YAAY,CAAC;EAC1D4C,kBAAkB,CAACE,IAAI,CAAC,CAACC,IAAI,EAAEC,IAAI,KAAK;IACtC,IAAID,IAAI,CAACE,WAAW,KAAKD,IAAI,CAACC,WAAW,EAAE,OAAOF,IAAI,CAAChC,IAAI,CAACmC,aAAa,CAACF,IAAI,CAACjC,IAAI,CAAC;IACpF,OAAOyB,iBAAiB,CAACO,IAAI,CAACE,WAAW,CAAC,GAAGT,iBAAiB,CAACQ,IAAI,CAACC,WAAW,CAAC;EAClF,CAAC,CAAC;EACF,MAAME,aAAa,GAAGC,YAAY,CAACC,gBAAgB,CAACT,kBAAkB,CAAC,CAAC;EACxE,MAAMU,cAAc,GAAG,CAAC,CAAC;EACzBV,kBAAkB,CAACW,OAAO,CAAC,CAACC,WAAW,EAAEC,KAAK,KAAK;IACjD,MAAMC,OAAO,GAAGC,aAAa,CAACH,WAAW,CAAC;IAC1C,IAAI,CAACF,cAAc,CAACI,OAAO,CAAC,EAAE;MAC5BJ,cAAc,CAACI,OAAO,CAAC,GAAG,EAAE;IAC9B;IACAJ,cAAc,CAACI,OAAO,CAAC,CAACE,IAAI,CAAC;MAC3BlD,OAAO,EAAEyC,aAAa,CAACM,KAAK,CAAC;MAC7B1C,IAAI,EAAEyC,WAAW,CAACzC,IAAI;MACtBW,KAAK,EAAE8B;IACT,CAAC,CAAC;EACJ,CAAC,CAAC;EACF,MAAMrD,OAAO,GAAGiC,MAAM,CAACyB,OAAO,CAACP,cAAc,CAAC,CAACpB,GAAG,CAAC,CAAC,CAACwB,OAAO,EAAEI,UAAU,CAAC,MAAM;IAC7EpD,OAAO,EAAEC,gBAAK,CAACC,IAAI,CAAC8C,OAAO,CAAC;IAC5BvD,OAAO,EAAE2D;EACX,CAAC,CAAC,CAAC;EACH,OAAO3D,OAAO;AAChB;AAOA,SAAS0C,iBAAiB,CAAC7C,YAA2B,EAAuB;EAC3E,MAAM4C,kBAGL,GAAG,CAAC,CAAC;EACN,MAAMmB,iCAAgD,GAAG,EAAE;EAC3D,KAAK,MAAMP,WAAW,IAAIxD,YAAY,EAAE;IACtC,IAAIwD,WAAW,CAACQ,MAAM,KAAK,iBAAiB,IAAIR,WAAW,CAACS,WAAW,EAAE;MACvE,IAAI,CAACrB,kBAAkB,CAACY,WAAW,CAACzC,IAAI,CAAC,EAAE;QACzC6B,kBAAkB,CAACY,WAAW,CAACzC,IAAI,CAAC,mCAC/B,IAAAmD,cAAI,EAACV,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC;UACrCQ,MAAM,EAAE,YAAY;UACpBG,mBAAmB,EAAE,CAACX,WAAW,CAACS,WAAW;QAAC,EAC/C;MACH,CAAC,MAAM;QACL,IAAIrB,kBAAkB,CAACY,WAAW,CAACzC,IAAI,CAAC,CAACqD,YAAY,KAAKZ,WAAW,CAACY,YAAY,EAAE;UAClFxB,kBAAkB,CAACY,WAAW,CAACzC,IAAI,CAAC,CAACsD,kBAAkB,GAAG,IAAI;QAChE;QACAzB,kBAAkB,CAACY,WAAW,CAACzC,IAAI,CAAC,CAACqD,YAAY,GAAGE,kBAAkB,CACpE1B,kBAAkB,CAACY,WAAW,CAACzC,IAAI,CAAC,CAACqD,YAAY,EACjDZ,WAAW,CAACY,YAAY,CACzB;QACDxB,kBAAkB,CAACY,WAAW,CAACzC,IAAI,CAAC,CAACoD,mBAAmB,CAACP,IAAI,CAACJ,WAAW,CAACS,WAAW,CAAC;QACtF,IAAIT,WAAW,CAACP,WAAW,KAAK,cAAc,EAAE;UAC9CL,kBAAkB,CAACY,WAAW,CAACzC,IAAI,CAAC,CAACkC,WAAW,GAAGO,WAAW,CAACP,WAAW;QAC5E;MACF;IACF,CAAC,MAAM;MACLc,iCAAiC,CAACH,IAAI,CAACJ,WAAW,CAAC;IACrD;EACF;EACA,OAAO,CAAC,GAAGpB,MAAM,CAACC,MAAM,CAACO,kBAAkB,CAAC,EAAE,GAAGmB,iCAAiC,CAAC;AACrF;AAEA,SAASO,kBAAkB,CAACC,MAAc,EAAEC,MAAc,EAAE;EAC1D,IAAID,MAAM,KAAK,GAAG,IAAIC,MAAM,KAAK,GAAG,EAAE,OAAO,GAAG;EAChD,IAAI;IACF,OAAOC,iBAAM,CAACC,EAAE,CAACC,cAAc,CAACJ,MAAM,CAAC,EAAEI,cAAc,CAACH,MAAM,CAAC,CAAC,GAAGD,MAAM,GAAGC,MAAM;EACpF,CAAC,CAAC,gBAAM;IACN,OAAO,GAAG;EACZ;AACF;AAEA,SAASG,cAAc,CAACC,KAAa,EAAE;EACrC,IAAIA,KAAK,CAACC,UAAU,CAAC,GAAG,CAAC,IAAID,KAAK,CAACC,UAAU,CAAC,GAAG,CAAC,EAAE;IAClD,OAAOD,KAAK,CAACE,SAAS,CAAC,CAAC,CAAC;EAC3B;EACA,OAAOF,KAAK;AACd;AAEA,SAASjB,aAAa,CAACH,WAA8B,EAAE;EACrD,IAAIA,WAAW,CAACuB,cAAc,EAAE;IAC9B,OAAQ,GAAEvB,WAAW,CAACuB,cAAe,YAAW;EAClD;EACA,IAAIvB,WAAW,CAACS,WAAW,EAAE;IAC3B,OAAQ,GAAET,WAAW,CAACS,WAAY,cAAa;EACjD;EACA,OAAO,eAAe;AACxB;AAEA,MAAMe,wBAAwB,GAAG;EAC/BtC,eAAe,EAAE,KAAK;EACtBD,YAAY,EAAE,SAAS;EACvBE,gBAAgB,EAAE;AACpB,CAAC;AAED,SAASU,gBAAgB,CAACrD,YAAiC,EAAE;EAC3D,OAAOA,YAAY,CAACkC,GAAG,CAAEsB,WAAW,IAAK;IACvC,MAAM;MAAEyB,MAAM;MAAEC;IAAK,CAAC,GAAG,IAAAC,qBAAU,EAAC3B,WAAW,CAACY,YAAY,EAAEZ,WAAW,CAAC4B,WAAW,CAAC;IACtF,IAAIC,cAAc,GAAGJ,MAAM,aAANA,MAAM,cAANA,MAAM,GAAI,UAAU;IACzC,IAAIA,MAAM,KAAK,SAAS,EAAE;MACxBI,cAAc,GAAG,KAAK;IACxB;IACA,MAAMC,MAAM,GAAG,IAAAC,6BAAkB,EAAC;MAChCN,MAAM,EAAEI,cAAc;MACtBH;IACF,CAAC,CAAC;IACF,OAAO,CACL1B,WAAW,CAACzC,IAAI,EAChBJ,gBAAK,CAAC6E,IAAI,CAAE,IAAGR,wBAAwB,CAACxB,WAAW,CAACP,WAAW,CAAE,GAAE,CAAC,EACpEO,WAAW,CAACa,kBAAkB,GAAG,GAAG,GAAGb,WAAW,CAACY,YAAY,EAC/D,GAAG,EACHkB,MAAM,EACN9B,WAAW,CAACW,mBAAmB,GAAGsB,gBAAgB,CAACjC,WAAW,CAACW,mBAAmB,CAAC,GAAG,GAAG,CAC1F;EACH,CAAC,CAAC;AACJ;AAEA,SAASsB,gBAAgB,CAACtB,mBAA6B,EAAU;EAC/D,IAAInC,MAAM,GAAI,cAAamC,mBAAmB,CAAC,CAAC,CAAE,EAAC;EACnD,IAAIA,mBAAmB,CAACxC,MAAM,GAAG,CAAC,EAAE;IAClCK,MAAM,IAAK,QAAOmC,mBAAmB,CAACxC,MAAM,GAAG,CAAE,mBAAkB;EACrE;EACA,OAAOK,MAAM;AACf;AAEA,SAASoB,YAAY,CAACsC,IAAgB,EAAE;EACtC,OAAO,IAAAC,cAAK,EAACD,IAAI,EAAE;IACjBE,MAAM,EAAE,IAAAC,4BAAmB,EAAC,MAAM,CAAC;IACnCC,aAAa,EAAE;MACbC,WAAW,EAAE,CAAC;MACdC,YAAY,EAAE;IAChB,CAAC;IACDC,OAAO,EAAE;MACP;MACA,CAAC,EAAE;QAAEC,SAAS,EAAE;MAAQ;IAC1B,CAAC;IACDC,kBAAkB,EAAE,MAAM;EAC5B,CAAC,CAAC,CAACC,KAAK,CAAC,IAAI,CAAC;AAChB"}
|