@teambit/dependencies 1.0.604 → 1.0.608

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.
@@ -50,7 +50,11 @@ export class ApplyOverrides {
50
50
  processedFiles: string[];
51
51
  overridesDependencies: OverridesDependencies;
52
52
  debugDependenciesData: DebugDependencies;
53
- autoDetectOverrides: Record<string, any> | undefined;
53
+ /**
54
+ * see workspace.getAutoDetectOverrides docs.
55
+ * these overrides are from env/variants/merge-config. not ones with "force: true".
56
+ */
57
+ public autoDetectOverrides: Record<string, any> | undefined;
54
58
  constructor(
55
59
  private component: Component,
56
60
  private depsResolver: DependencyResolverMain,
@@ -513,31 +517,26 @@ export class ApplyOverrides {
513
517
  }
514
518
  ['dependencies', 'devDependencies', 'peerDependencies'].forEach((field) => {
515
519
  forEach(autoDetectOverrides[field], (pkgVal, pkgName) => {
516
- if (this.overridesDependencies.shouldIgnorePeerPackage(pkgName)) return;
517
- // Validate it was auto detected, we only affect stuff that were detected
518
- const existsInCompsDeps = this.allDependencies.dependencies.find((dep) => {
519
- return dep.packageName === pkgName;
520
- });
520
+ if (this.overridesDependencies.shouldIgnorePeerPackage(pkgName)) {
521
+ return;
522
+ }
521
523
 
522
- const existsInCompsDevDeps = this.allDependencies.devDependencies.find((dep) => {
523
- return dep.packageName === pkgName;
524
- });
524
+ const existsInCompsDeps = this.allDependencies.dependencies.find((dep) => dep.packageName === pkgName);
525
+ const existsInCompsDevDeps = this.allDependencies.devDependencies.find((dep) => dep.packageName === pkgName);
526
+ const existsInCompsPeerDeps = this.allDependencies.peerDependencies.find((dep) => dep.packageName === pkgName);
525
527
 
526
- const existsInCompsPeerDeps = this.allDependencies.peerDependencies.find((dep) => {
527
- return dep.packageName === pkgName;
528
- });
529
- if (
528
+ // Validate it was auto detected, we only affect stuff that were detected
529
+ const isAutoDetected = existsInCompsDeps ||
530
+ existsInCompsDevDeps ||
531
+ existsInCompsPeerDeps ||
530
532
  // We are checking originAllPackagesDependencies instead of allPackagesDependencies
531
533
  // as it might be already removed from allPackagesDependencies at this point if it was set with
532
534
  // "-" in runtime/dev
533
535
  // in such case we still want to apply it here
534
- !this.originAllPackagesDependencies.packageDependencies[pkgName] &&
535
- !this.originAllPackagesDependencies.devPackageDependencies[pkgName] &&
536
- !this.originAllPackagesDependencies.peerPackageDependencies[pkgName] &&
537
- !existsInCompsDeps &&
538
- !existsInCompsDevDeps &&
539
- !existsInCompsPeerDeps &&
540
- // Check if it was orignally exists in the component
536
+ this.originAllPackagesDependencies.packageDependencies[pkgName] ||
537
+ this.originAllPackagesDependencies.devPackageDependencies[pkgName] ||
538
+ this.originAllPackagesDependencies.peerPackageDependencies[pkgName] ||
539
+ // Check if it was originally exists in the component
541
540
  // as we might have a policy which looks like this:
542
541
  // "components": {
543
542
  // "dependencies": {
@@ -549,9 +548,10 @@ export class ApplyOverrides {
549
548
  // }
550
549
  // in that case we might remove it before getting to the devDeps then we will think that it wasn't required in the component
551
550
  // which is incorrect
552
- !originallyExists.includes(pkgName) &&
553
- !missingPackages.includes(pkgName)
554
- ) {
551
+ originallyExists.includes(pkgName) ||
552
+ missingPackages.includes(pkgName)
553
+
554
+ if (!isAutoDetected) {
555
555
  return;
556
556
  }
557
557
  originallyExists.push(pkgName);
@@ -399,12 +399,12 @@ export class AutoDetectDeps {
399
399
  depDebug.importSource = 'env.jsonc';
400
400
  }
401
401
  const getVersionFromPkgJson = (): string | null => {
402
- const versionFromDependencyPkgJson = getValidVersion(compDep.concreteVersion);
402
+ const { version: versionFromDependencyPkgJson } = getValidComponentVersion(compDep.concreteVersion);
403
403
  if (versionFromDependencyPkgJson) {
404
404
  depDebug.versionResolvedFrom = 'DependencyPkgJson';
405
405
  return versionFromDependencyPkgJson;
406
406
  }
407
- const versionFromDependentPkgJson = getValidVersion(compDep.versionUsedByDependent);
407
+ const { version: versionFromDependentPkgJson } = getValidComponentVersion(compDep.versionUsedByDependent);
408
408
  if (versionFromDependentPkgJson) {
409
409
  depDebug.versionResolvedFrom = 'DependentPkgJson';
410
410
  return versionFromDependentPkgJson;
@@ -764,30 +764,34 @@ export class AutoDetectDeps {
764
764
  }
765
765
  }
766
766
 
767
- export function getValidVersion(version: string | undefined) {
767
+ /**
768
+ * this is not necessarily a valid semver version. in case of a snap, it returns the hash only, not a valid semver.
769
+ * this is for the ComponentID.version.
770
+ */
771
+ export function getValidComponentVersion(version?: string): { version?: string, range?: string } {
768
772
  if (!version) {
769
- return null;
773
+ return { version: undefined };
770
774
  }
771
775
  if (version.startsWith(SNAP_VERSION_PREFIX)) {
772
776
  const versionWithoutSnapPrefix = version.replace(SNAP_VERSION_PREFIX, '');
773
777
  if (isSnap(versionWithoutSnapPrefix)) {
774
- return versionWithoutSnapPrefix;
778
+ return { version: versionWithoutSnapPrefix };
775
779
  }
776
780
  }
777
781
  if (semver.valid(version)) {
778
782
  // this takes care of pre-releases as well, as they're considered valid semver.
779
- return version;
783
+ return { version };
780
784
  }
781
785
  if (semver.validRange(version)) {
782
786
  // if this is a range, e.g. ^1.0.0, return a valid version: 1.0.0.
783
787
  const coerced = semver.coerce(version);
784
788
  if (coerced) {
785
- return coerced.version;
789
+ return { version: coerced.version, range: version };
786
790
  }
787
791
  }
788
792
  if (isSnap(version)) {
789
- return version;
793
+ return { version };
790
794
  }
791
795
  // it's probably a relative path to the component
792
- return null;
796
+ return { version: undefined };
793
797
  }
@@ -1,4 +1,5 @@
1
1
  import { ComponentID } from '@teambit/component-id';
2
+ import semver from 'semver';
2
3
  import { Consumer } from '@teambit/legacy.consumer';
3
4
  import { Workspace } from '@teambit/workspace';
4
5
  import { logger } from '@teambit/legacy.logger';
@@ -8,7 +9,7 @@ import { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy.extension
8
9
  import { DependencyResolverMain } from '@teambit/dependency-resolver';
9
10
  import { DEPENDENCIES_FIELDS } from '@teambit/legacy.constants';
10
11
  import OverridesDependencies from './overrides-dependencies';
11
- import { DebugComponentsDependency, getValidVersion } from './auto-detect-deps';
12
+ import { DebugComponentsDependency, getValidComponentVersion } from './auto-detect-deps';
12
13
 
13
14
  type DepType = 'dependencies' | 'devDependencies' | 'peerDependencies';
14
15
 
@@ -24,7 +25,8 @@ export async function updateDependenciesVersions(
24
25
  const consumer: Consumer = workspace.consumer;
25
26
  const autoDetectConfigMerge = workspace.getAutoDetectConfigMerge(component.id) || {};
26
27
  const currentLane = await workspace.getCurrentLaneObject();
27
-
28
+ const componentRangePrefix = depsResolver.componentRangePrefix();
29
+ const supportComponentRange = depsResolver.supportComponentRange();
28
30
  updateDependencies(component.dependencies, 'dependencies');
29
31
  updateDependencies(component.devDependencies, 'devDependencies');
30
32
  updateDependencies(component.peerDependencies, 'peerDependencies');
@@ -38,7 +40,7 @@ export async function updateDependenciesVersions(
38
40
  * running bit link --rewire).
39
41
  * 2: this gets called for extension-id.
40
42
  */
41
- function resolveVersion(id: ComponentID, depType: DepType, pkg?: string): string | undefined {
43
+ function resolveVersion(id: ComponentID, depType: DepType, pkg?: string): { version?: string, range?: string} {
42
44
  const idFromBitMap = getIdFromBitMap(id);
43
45
  const idFromComponentConfig = getIdFromComponentConfig(id);
44
46
  const getFromComponentConfig = () => idFromComponentConfig;
@@ -51,8 +53,15 @@ export async function updateDependenciesVersions(
51
53
  const getFromDepPackageJson = () => (id.hasVersion() ? id : null);
52
54
  // In case it's resolved from the node_modules, and it's also in the ws policy or variants,
53
55
  // use the resolved version from the node_modules / package folder
54
- const getFromDepPackageJsonDueToWorkspacePolicy = () =>
55
- pkg && id.hasVersion() && isPkgInWorkspacePolicies(pkg) ? id : null;
56
+ const getFromDepPackageJsonDueToWorkspacePolicy = () => {
57
+ if (!pkg || !id.hasVersion()) return null;
58
+ const fromPolicy = pkgVersionFromWorkspacePolicies(pkg);
59
+ if (!fromPolicy) return null;
60
+ return {
61
+ compId: id,
62
+ range: supportComponentRange && semver.validRange(fromPolicy) ? fromPolicy : undefined,
63
+ }
64
+ }
56
65
  // merge config here is only auto-detected ones. their priority is less then the ws policy
57
66
  // otherwise, imagine you merge a lane, you don't like the dependency you got from the other lane, you run
58
67
  // bit-install to change it, but it won't do anything.
@@ -77,26 +86,35 @@ export async function updateDependenciesVersions(
77
86
 
78
87
  for (const strategy of strategies) {
79
88
  const strategyId = strategy();
80
- if (strategyId) {
81
- logger.trace(
82
- `found dependency version ${strategyId.version} for ${id.toString()} in strategy ${strategy.name}`
83
- );
84
- if (debugDep) {
85
- debugDep.versionResolvedFrom = strategy.name.replace('getFrom', '');
86
- debugDep.version = strategyId.version;
87
- }
88
-
89
- return strategyId.version;
89
+ if (!strategyId) continue;
90
+ const version = strategyId instanceof ComponentID ? strategyId.version : strategyId.compId?.version;
91
+ if (!version) continue;
92
+ logger.trace(
93
+ `found dependency version ${version} for ${id.toString()} in strategy ${strategy.name}`
94
+ );
95
+ if (debugDep) {
96
+ debugDep.versionResolvedFrom = strategy.name.replace('getFrom', '');
97
+ debugDep.version = version;
90
98
  }
99
+
100
+ return { version, range: strategyId instanceof ComponentID ? undefined : strategyId.range };
91
101
  }
92
- return undefined;
102
+ return {};
93
103
  }
94
104
 
95
105
  function updateDependency(dependency: Dependency, depType: DepType) {
96
106
  const { id, packageName } = dependency;
97
- const resolvedVersion = resolveVersion(id, depType, packageName);
107
+ const { version: resolvedVersion, range } = resolveVersion(id, depType, packageName);
98
108
  if (resolvedVersion) {
99
109
  dependency.id = dependency.id.changeVersion(resolvedVersion);
110
+ if (supportComponentRange) {
111
+ if (range) dependency.versionRange = range;
112
+ else if (resolvedVersion !== 'latest' && (componentRangePrefix === '^' || componentRangePrefix === '~')) {
113
+ dependency.versionRange = `${componentRangePrefix}${resolvedVersion}`;
114
+ }
115
+ } else if (dependency.versionRange && depType !== 'peerDependencies' && dependency.versionRange !== '+') {
116
+ dependency.versionRange = undefined;
117
+ }
100
118
  }
101
119
  }
102
120
  function updateDependencies(dependencies: Dependencies, depType: DepType) {
@@ -105,7 +123,7 @@ export async function updateDependenciesVersions(
105
123
 
106
124
  function updateExtension(extension: ExtensionDataEntry) {
107
125
  if (extension.extensionId) {
108
- const resolvedVersion = resolveVersion(extension.extensionId, 'devDependencies');
126
+ const { version: resolvedVersion } = resolveVersion(extension.extensionId, 'devDependencies');
109
127
  if (resolvedVersion) {
110
128
  extension.extensionId = extension.extensionId.changeVersion(resolvedVersion);
111
129
  }
@@ -141,13 +159,18 @@ export async function updateDependenciesVersions(
141
159
  return componentId.changeVersion(dependencies[dependency]);
142
160
  }
143
161
 
144
- function resolveFromOverrides(id: ComponentID, depType: DepType, pkgName?: string): ComponentID | undefined {
162
+ /**
163
+ * config in .bitmap or component.json are resolved here.
164
+ */
165
+ function resolveFromOverrides(id: ComponentID, depType: DepType, pkgName?: string):
166
+ { compId?: ComponentID; range?: string } | undefined {
145
167
  if (!pkgName) return undefined;
146
168
  const dependencies = overridesDependencies.getDependenciesToAddManually();
147
169
  const found = dependencies?.[depType]?.[pkgName];
148
170
  if (!found) return undefined;
149
- const validVersion = getValidVersion(found);
150
- return validVersion ? id.changeVersion(validVersion) : undefined;
171
+ const { version: validVersion, range } = getValidComponentVersion(found);
172
+ const compId = validVersion ? id.changeVersion(validVersion) : undefined;
173
+ return { compId, range };
151
174
  }
152
175
 
153
176
  function isPkgInAutoDetectOverrides(pkgName: string): boolean {
@@ -156,7 +179,7 @@ export async function updateDependenciesVersions(
156
179
  );
157
180
  }
158
181
 
159
- function isPkgInWorkspacePolicies(pkgName: string) {
182
+ function pkgVersionFromWorkspacePolicies(pkgName: string): string | undefined {
160
183
  return depsResolver.getWorkspacePolicyManifest().dependencies?.[pkgName];
161
184
  }
162
185
 
@@ -165,9 +188,9 @@ export async function updateDependenciesVersions(
165
188
  DEPENDENCIES_FIELDS.forEach((field) => {
166
189
  if (autoDetectConfigMerge[field]?.[pkgName]) {
167
190
  foundVersion = autoDetectConfigMerge[field]?.[pkgName];
168
- foundVersion = foundVersion ? getValidVersion(foundVersion) : null;
169
191
  }
170
192
  });
171
- return foundVersion ? id.changeVersion(foundVersion) : undefined;
193
+ const foundValidVersion = foundVersion ? getValidComponentVersion(foundVersion) : undefined;
194
+ return foundValidVersion?.version ? id.changeVersion(foundValidVersion.version) : undefined;
172
195
  }
173
196
  }
@@ -1,5 +1,6 @@
1
1
  import { Command, CommandOptions } from '@teambit/cli';
2
2
  import { DependenciesMain } from './dependencies.main.runtime';
3
+ import { Workspace } from '@teambit/workspace';
3
4
  type GetDependenciesFlags = {
4
5
  tree: boolean;
5
6
  scope?: boolean;
@@ -182,4 +183,18 @@ export declare class UnsetPeerCmd implements Command {
182
183
  constructor(deps: DependenciesMain);
183
184
  report([componentId]: [string]): Promise<string>;
184
185
  }
186
+ type DependenciesWriteCmdOptions = {
187
+ target?: 'workspace.jsonc' | 'package.json';
188
+ };
189
+ export declare class DependenciesWriteCmd implements Command {
190
+ private workspace;
191
+ name: string;
192
+ arguments: never[];
193
+ group: string;
194
+ description: string;
195
+ alias: string;
196
+ options: CommandOptions;
197
+ constructor(workspace: Workspace);
198
+ report(_: any, options: DependenciesWriteCmdOptions): Promise<string>;
199
+ }
185
200
  export {};
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.WhyCmd = exports.UnsetPeerCmd = exports.SetPeerCmd = exports.DependenciesUsageCmd = exports.DependenciesUnsetCmd = exports.DependenciesSetCmd = exports.DependenciesResetCmd = exports.DependenciesRemoveCmd = exports.DependenciesGetCmd = exports.DependenciesEjectCmd = exports.DependenciesDebugCmd = exports.DependenciesCmd = exports.DependenciesBlameCmd = void 0;
6
+ exports.WhyCmd = exports.UnsetPeerCmd = exports.SetPeerCmd = exports.DependenciesWriteCmd = exports.DependenciesUsageCmd = exports.DependenciesUnsetCmd = exports.DependenciesSetCmd = exports.DependenciesResetCmd = exports.DependenciesRemoveCmd = exports.DependenciesGetCmd = exports.DependenciesEjectCmd = exports.DependenciesDebugCmd = exports.DependenciesCmd = exports.DependenciesBlameCmd = void 0;
7
7
  function _cliTable() {
8
8
  const data = _interopRequireDefault(require("cli-table"));
9
9
  _cliTable = function () {
@@ -382,5 +382,21 @@ class UnsetPeerCmd {
382
382
  }
383
383
  }
384
384
  exports.UnsetPeerCmd = UnsetPeerCmd;
385
+ class DependenciesWriteCmd {
386
+ constructor(workspace) {
387
+ this.workspace = workspace;
388
+ _defineProperty(this, "name", 'write');
389
+ _defineProperty(this, "arguments", []);
390
+ _defineProperty(this, "group", 'info');
391
+ _defineProperty(this, "description", 'write all workspace component dependencies to package.json or workspace.jsonc, resolving conflicts by picking the ranges that match the highest versions');
392
+ _defineProperty(this, "alias", '');
393
+ _defineProperty(this, "options", [['', 'target <workspace.jsonc|package.json>', 'specify where the dependencies should be written. By default they are saved to workspace.jsonc']]);
394
+ }
395
+ async report(_, options) {
396
+ await this.workspace.writeDependencies(options.target);
397
+ return '';
398
+ }
399
+ }
400
+ exports.DependenciesWriteCmd = DependenciesWriteCmd;
385
401
 
386
402
  //# sourceMappingURL=dependencies-cmd.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_cliTable","data","_interopRequireDefault","require","_chalk","_archy","_legacy","_template","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DependenciesGetCmd","constructor","deps","name","description","report","id","tree","scope","results","getDependencies","idWithVersion","getGraphAsTree","graph","graphAsTree","getDependenciesAsObjectTree","toString","archy","err","chalk","red","graphTree","depsInfo","getDependenciesInfo","length","toStringWithoutVersion","depsTable","generateDependenciesInfoTable","exports","DependenciesDebugCmd","debugDependencies","JSON","stringify","undefined","DependenciesSetCmd","COMPONENT_PATTERN_HELP","pattern","packages","setDepsFlags","changedComps","addedPackages","setDependency","green","bold","join","DependenciesRemoveCmd","removeDepsFlags","removeDependency","yellow","output","map","removedPackages","underline","DependenciesUnsetCmd","DependenciesResetCmd","reset","comps","DependenciesEjectCmd","eject","DependenciesBlameCmd","compName","depName","blame","table","Table","chars","top","bottom","left","mid","right","middle","style","snap","tag","author","date","message","version","push","DependenciesUsageCmd","options","deepUsageResult","usageDeep","usage","keys","compIdStr","WhyCmd","args","DependenciesCmd","unrecognizedSubcommand","SetPeerCmd","componentId","range","setPeer","UnsetPeerCmd","unsetPeer"],"sources":["dependencies-cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport { Command, CommandOptions } from '@teambit/cli';\nimport Table from 'cli-table';\nimport chalk from 'chalk';\nimport archy from 'archy';\nimport { ComponentIdGraph } from '@teambit/graph';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';\nimport { generateDependenciesInfoTable } from './template';\nimport { DependenciesMain } from './dependencies.main.runtime';\n\ntype GetDependenciesFlags = {\n tree: boolean;\n scope?: boolean;\n};\n\nexport type SetDependenciesFlags = {\n dev?: boolean;\n optional?: boolean;\n peer?: boolean;\n};\n\nexport type RemoveDependenciesFlags = SetDependenciesFlags;\n\nexport class DependenciesGetCmd implements Command {\n name = 'get <component-name>';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n group = 'info';\n description = 'show direct and indirect dependencies of the given component';\n alias = '';\n options = [\n ['', 'scope', 'get the data from the scope instead of the workspace'],\n ['t', 'tree', 'render dependencies as a tree, similar to \"npm ls\"'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([id]: [string], { tree = false, scope = false }: GetDependenciesFlags) {\n const results = await this.deps.getDependencies(id, scope);\n\n if (tree) {\n const idWithVersion = results.id;\n const getGraphAsTree = (graph: ComponentIdGraph) => {\n try {\n const graphAsTree = graph.getDependenciesAsObjectTree(idWithVersion.toString());\n return archy(graphAsTree);\n } catch (err: any) {\n if (err.constructor.name === 'RangeError') {\n return `${chalk.red(\n 'unable to generate a tree representation, the graph is too big or has cyclic dependencies'\n )}`;\n }\n throw err;\n }\n };\n const graphTree = getGraphAsTree(results.graph);\n return graphTree;\n }\n const depsInfo = results.graph.getDependenciesInfo(results.id);\n if (!depsInfo.length) {\n return `no dependencies found for ${results.id.toString()}.\ntry running \"bit cat-component ${results.id.toStringWithoutVersion()}\" to see whether the component/version exists locally`;\n }\n\n const depsTable = generateDependenciesInfoTable(depsInfo, results.id);\n return `${depsTable || '<none>'}`;\n }\n}\n\nexport class DependenciesDebugCmd implements Command {\n name = 'debug <component-name>';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n group = 'info';\n description = 'show the immediate dependencies and how their versions were determined';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([id]: [string]) {\n const results = await this.deps.debugDependencies(id);\n return JSON.stringify(results, undefined, 4);\n }\n}\n\nexport class DependenciesSetCmd implements Command {\n name = 'set <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will be resolved to the latest',\n },\n ];\n group = 'info';\n description = 'set a dependency to component(s)';\n alias = '';\n options = [\n ['d', 'dev', 'add to the devDependencies'],\n ['o', 'optional', 'add to the optionalDependencies'],\n ['p', 'peer', 'add to the peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], setDepsFlags: SetDependenciesFlags) {\n const { changedComps, addedPackages } = await this.deps.setDependency(pattern, packages, setDepsFlags);\n\n return `${chalk.green('successfully updated dependencies')}\n${chalk.bold('changed components')}\n${changedComps.join('\\n')}\n\n${chalk.bold('added packages')}\n${JSON.stringify(addedPackages, undefined, 4)}`;\n }\n}\n\nexport class DependenciesRemoveCmd implements Command {\n name = 'remove <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will remove all lodash instances of any version',\n },\n ];\n group = 'info';\n description = 'remove a dependency from one or more components';\n extendedDescription = `this command removes the dependency whether it was set by 'bit deps set'/variants or by auto-detection.\nif the dependency was auto-detected, it will be marked with a minus sign in the .bitmap file.\notherwise, the config is written to .bitmap without the dependency.\nsee also 'bit deps unset'`;\n alias = '';\n options = [\n ['d', 'dev', 'remove from devDependencies'],\n ['p', 'peer', 'remove from peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], removeDepsFlags: RemoveDependenciesFlags) {\n const results = await this.deps.removeDependency(pattern, packages, removeDepsFlags);\n if (!results.length) {\n return chalk.yellow('the specified component-pattern do not use the entered packages. nothing to remove');\n }\n\n const output = results\n .map(({ id, removedPackages }) => `${chalk.underline(id.toString())}\\n${removedPackages.join('\\n')}`)\n .join('\\n\\n');\n\n return `${chalk.green('successfully removed dependencies')}\\n${output}`;\n }\n}\n\nexport class DependenciesUnsetCmd implements Command {\n name = 'unset <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will remove all lodash instances of any version',\n },\n ];\n group = 'info';\n description = 'unset a dependency to component(s) that was set via config (e.g. \"bit deps set\" or variants)';\n extendedDescription = `this command removes the dependency only when it was set by config not if it was auto detected.\nin the .bitmap file, the config is written without the dependency.\nsee also \"bit deps remove\"`;\n alias = '';\n options = [\n ['d', 'dev', 'unset from devDependencies'],\n ['p', 'peer', 'unset from peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], removeDepsFlags: RemoveDependenciesFlags) {\n const results = await this.deps.removeDependency(pattern, packages, removeDepsFlags, true);\n if (!results.length) {\n return chalk.yellow('the specified component-pattern do not use the entered packages. nothing to unset');\n }\n\n const output = results\n .map(({ id, removedPackages }) => `${chalk.underline(id.toString())}\\n${removedPackages.join('\\n')}`)\n .join('\\n\\n');\n\n return `${chalk.green('successfully unset dependencies')}\\n${output}`;\n }\n}\n\nexport class DependenciesResetCmd implements Command {\n name = 'reset <component-pattern>';\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n group = 'info';\n description = 'reset dependencies to the default values (revert any previously \"bit deps set\")';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern]: [string]) {\n const results = await this.deps.reset(pattern);\n const comps = results.map((id) => id.toString());\n\n return `${chalk.green('successfully reset dependencies for the following component(s)')}\\n${comps}`;\n }\n}\n\nexport class DependenciesEjectCmd implements Command {\n name = 'eject <component-pattern>';\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n group = 'info';\n description = 'write dependencies that were previously set via \"bit deps set\" into .bitmap';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern]: [string]) {\n const results = await this.deps.eject(pattern);\n const comps = results.map((id) => id.toString());\n\n return `${chalk.green('successfully ejected dependencies for the following component(s)')}\\n${comps}`;\n }\n}\n\nexport class DependenciesBlameCmd implements Command {\n name = 'blame <component-name> <dependency-name>';\n arguments = [\n {\n name: 'dependency-name',\n description: 'package-name. for components, you can use either component-id or package-name',\n },\n ];\n group = 'info';\n description = 'find out which snap/tag changed a dependency version';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([compName, depName]: [string, string]) {\n const results = await this.deps.blame(compName, depName);\n if (!results.length) {\n return chalk.yellow(`the specified component ${compName} does not use the entered dependency ${depName}`);\n }\n // table with no style and no borders, just to align the columns.\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n middle: ' ',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n });\n\n results.map(({ snap, tag, author, date, message, version }) =>\n table.push([snap, tag || '', author, date, message, version])\n );\n\n return table.toString();\n }\n}\n\ntype DependenciesUsageCmdOptions = {\n depth?: number;\n};\n\nexport class DependenciesUsageCmd implements Command {\n name = 'usage <dependency-name>';\n arguments = [\n {\n name: 'dependency-name',\n description:\n 'package-name. for components, you can use either component-id or package-name. if version is specified, it will search for the exact version',\n },\n ];\n group = 'info';\n description = 'find components that use the specified dependency';\n alias = '';\n options = [['', 'depth <number>', 'max display depth of the dependency graph']] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([depName]: [string], options: DependenciesUsageCmdOptions) {\n const deepUsageResult = await this.deps.usageDeep(depName, options);\n if (deepUsageResult != null) return deepUsageResult;\n const results = await this.deps.usage(depName);\n if (!Object.keys(results).length) {\n return chalk.yellow(`the specified dependency ${depName} is not used by any component`);\n }\n return Object.keys(results)\n .map((compIdStr) => `${chalk.bold(compIdStr)} (using dep in version ${results[compIdStr]})`)\n .join('\\n');\n }\n}\n\nexport class WhyCmd extends DependenciesUsageCmd {\n name = 'why <dependency-name>';\n}\n\nexport class DependenciesCmd implements Command {\n name = 'deps <sub-command>';\n alias = 'dependencies';\n description = 'manage dependencies';\n options = [];\n group = 'info';\n commands: Command[] = [];\n helpUrl = 'reference/dependencies/configuring-dependencies';\n\n async report([unrecognizedSubcommand]: [string]) {\n return chalk.red(\n `\"${unrecognizedSubcommand}\" is not a subcommand of \"dependencies\", please run \"bit dependencies --help\" to list the subcommands`\n );\n }\n}\n\nexport class SetPeerCmd implements Command {\n name = 'set-peer <component-id> <range>';\n arguments = [\n { name: 'component-id', description: 'the component to set as always peer' },\n {\n name: 'range',\n description: 'the default range to use for the componnent, when added to peerDependencies',\n },\n ];\n group = 'info';\n description = 'set a component as always peer';\n alias = '';\n options = [];\n\n constructor(private deps: DependenciesMain) {}\n\n async report([componentId, range]: [string, string]) {\n await this.deps.setPeer(componentId, range != null ? range.toString() : range);\n return `${chalk.green('successfully marked the component as a peer component')}`;\n }\n}\n\nexport class UnsetPeerCmd implements Command {\n name = 'unset-peer <component-id>';\n arguments = [{ name: 'component-id', description: 'the component to unset as always peer' }];\n group = 'info';\n description = 'unset a component as always peer';\n alias = '';\n options = [];\n\n constructor(private deps: DependenciesMain) {}\n\n async report([componentId]: [string]) {\n await this.deps.unsetPeer(componentId);\n return `${chalk.green('successfully marked the component as not a peer component')}`;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_cliTable","data","_interopRequireDefault","require","_chalk","_archy","_legacy","_template","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DependenciesGetCmd","constructor","deps","name","description","report","id","tree","scope","results","getDependencies","idWithVersion","getGraphAsTree","graph","graphAsTree","getDependenciesAsObjectTree","toString","archy","err","chalk","red","graphTree","depsInfo","getDependenciesInfo","length","toStringWithoutVersion","depsTable","generateDependenciesInfoTable","exports","DependenciesDebugCmd","debugDependencies","JSON","stringify","undefined","DependenciesSetCmd","COMPONENT_PATTERN_HELP","pattern","packages","setDepsFlags","changedComps","addedPackages","setDependency","green","bold","join","DependenciesRemoveCmd","removeDepsFlags","removeDependency","yellow","output","map","removedPackages","underline","DependenciesUnsetCmd","DependenciesResetCmd","reset","comps","DependenciesEjectCmd","eject","DependenciesBlameCmd","compName","depName","blame","table","Table","chars","top","bottom","left","mid","right","middle","style","snap","tag","author","date","message","version","push","DependenciesUsageCmd","options","deepUsageResult","usageDeep","usage","keys","compIdStr","WhyCmd","args","DependenciesCmd","unrecognizedSubcommand","SetPeerCmd","componentId","range","setPeer","UnsetPeerCmd","unsetPeer","DependenciesWriteCmd","workspace","_","writeDependencies","target"],"sources":["dependencies-cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport { Command, CommandOptions } from '@teambit/cli';\nimport Table from 'cli-table';\nimport chalk from 'chalk';\nimport archy from 'archy';\nimport { ComponentIdGraph } from '@teambit/graph';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';\nimport { generateDependenciesInfoTable } from './template';\nimport { DependenciesMain } from './dependencies.main.runtime';\nimport { Workspace } from '@teambit/workspace';\n\ntype GetDependenciesFlags = {\n tree: boolean;\n scope?: boolean;\n};\n\nexport type SetDependenciesFlags = {\n dev?: boolean;\n optional?: boolean;\n peer?: boolean;\n};\n\nexport type RemoveDependenciesFlags = SetDependenciesFlags;\n\nexport class DependenciesGetCmd implements Command {\n name = 'get <component-name>';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n group = 'info';\n description = 'show direct and indirect dependencies of the given component';\n alias = '';\n options = [\n ['', 'scope', 'get the data from the scope instead of the workspace'],\n ['t', 'tree', 'render dependencies as a tree, similar to \"npm ls\"'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([id]: [string], { tree = false, scope = false }: GetDependenciesFlags) {\n const results = await this.deps.getDependencies(id, scope);\n\n if (tree) {\n const idWithVersion = results.id;\n const getGraphAsTree = (graph: ComponentIdGraph) => {\n try {\n const graphAsTree = graph.getDependenciesAsObjectTree(idWithVersion.toString());\n return archy(graphAsTree);\n } catch (err: any) {\n if (err.constructor.name === 'RangeError') {\n return `${chalk.red(\n 'unable to generate a tree representation, the graph is too big or has cyclic dependencies'\n )}`;\n }\n throw err;\n }\n };\n const graphTree = getGraphAsTree(results.graph);\n return graphTree;\n }\n const depsInfo = results.graph.getDependenciesInfo(results.id);\n if (!depsInfo.length) {\n return `no dependencies found for ${results.id.toString()}.\ntry running \"bit cat-component ${results.id.toStringWithoutVersion()}\" to see whether the component/version exists locally`;\n }\n\n const depsTable = generateDependenciesInfoTable(depsInfo, results.id);\n return `${depsTable || '<none>'}`;\n }\n}\n\nexport class DependenciesDebugCmd implements Command {\n name = 'debug <component-name>';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n group = 'info';\n description = 'show the immediate dependencies and how their versions were determined';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([id]: [string]) {\n const results = await this.deps.debugDependencies(id);\n return JSON.stringify(results, undefined, 4);\n }\n}\n\nexport class DependenciesSetCmd implements Command {\n name = 'set <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will be resolved to the latest',\n },\n ];\n group = 'info';\n description = 'set a dependency to component(s)';\n alias = '';\n options = [\n ['d', 'dev', 'add to the devDependencies'],\n ['o', 'optional', 'add to the optionalDependencies'],\n ['p', 'peer', 'add to the peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], setDepsFlags: SetDependenciesFlags) {\n const { changedComps, addedPackages } = await this.deps.setDependency(pattern, packages, setDepsFlags);\n\n return `${chalk.green('successfully updated dependencies')}\n${chalk.bold('changed components')}\n${changedComps.join('\\n')}\n\n${chalk.bold('added packages')}\n${JSON.stringify(addedPackages, undefined, 4)}`;\n }\n}\n\nexport class DependenciesRemoveCmd implements Command {\n name = 'remove <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will remove all lodash instances of any version',\n },\n ];\n group = 'info';\n description = 'remove a dependency from one or more components';\n extendedDescription = `this command removes the dependency whether it was set by 'bit deps set'/variants or by auto-detection.\nif the dependency was auto-detected, it will be marked with a minus sign in the .bitmap file.\notherwise, the config is written to .bitmap without the dependency.\nsee also 'bit deps unset'`;\n alias = '';\n options = [\n ['d', 'dev', 'remove from devDependencies'],\n ['p', 'peer', 'remove from peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], removeDepsFlags: RemoveDependenciesFlags) {\n const results = await this.deps.removeDependency(pattern, packages, removeDepsFlags);\n if (!results.length) {\n return chalk.yellow('the specified component-pattern do not use the entered packages. nothing to remove');\n }\n\n const output = results\n .map(({ id, removedPackages }) => `${chalk.underline(id.toString())}\\n${removedPackages.join('\\n')}`)\n .join('\\n\\n');\n\n return `${chalk.green('successfully removed dependencies')}\\n${output}`;\n }\n}\n\nexport class DependenciesUnsetCmd implements Command {\n name = 'unset <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will remove all lodash instances of any version',\n },\n ];\n group = 'info';\n description = 'unset a dependency to component(s) that was set via config (e.g. \"bit deps set\" or variants)';\n extendedDescription = `this command removes the dependency only when it was set by config not if it was auto detected.\nin the .bitmap file, the config is written without the dependency.\nsee also \"bit deps remove\"`;\n alias = '';\n options = [\n ['d', 'dev', 'unset from devDependencies'],\n ['p', 'peer', 'unset from peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], removeDepsFlags: RemoveDependenciesFlags) {\n const results = await this.deps.removeDependency(pattern, packages, removeDepsFlags, true);\n if (!results.length) {\n return chalk.yellow('the specified component-pattern do not use the entered packages. nothing to unset');\n }\n\n const output = results\n .map(({ id, removedPackages }) => `${chalk.underline(id.toString())}\\n${removedPackages.join('\\n')}`)\n .join('\\n\\n');\n\n return `${chalk.green('successfully unset dependencies')}\\n${output}`;\n }\n}\n\nexport class DependenciesResetCmd implements Command {\n name = 'reset <component-pattern>';\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n group = 'info';\n description = 'reset dependencies to the default values (revert any previously \"bit deps set\")';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern]: [string]) {\n const results = await this.deps.reset(pattern);\n const comps = results.map((id) => id.toString());\n\n return `${chalk.green('successfully reset dependencies for the following component(s)')}\\n${comps}`;\n }\n}\n\nexport class DependenciesEjectCmd implements Command {\n name = 'eject <component-pattern>';\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n group = 'info';\n description = 'write dependencies that were previously set via \"bit deps set\" into .bitmap';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern]: [string]) {\n const results = await this.deps.eject(pattern);\n const comps = results.map((id) => id.toString());\n\n return `${chalk.green('successfully ejected dependencies for the following component(s)')}\\n${comps}`;\n }\n}\n\nexport class DependenciesBlameCmd implements Command {\n name = 'blame <component-name> <dependency-name>';\n arguments = [\n {\n name: 'dependency-name',\n description: 'package-name. for components, you can use either component-id or package-name',\n },\n ];\n group = 'info';\n description = 'find out which snap/tag changed a dependency version';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([compName, depName]: [string, string]) {\n const results = await this.deps.blame(compName, depName);\n if (!results.length) {\n return chalk.yellow(`the specified component ${compName} does not use the entered dependency ${depName}`);\n }\n // table with no style and no borders, just to align the columns.\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n middle: ' ',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n });\n\n results.map(({ snap, tag, author, date, message, version }) =>\n table.push([snap, tag || '', author, date, message, version])\n );\n\n return table.toString();\n }\n}\n\ntype DependenciesUsageCmdOptions = {\n depth?: number;\n};\n\nexport class DependenciesUsageCmd implements Command {\n name = 'usage <dependency-name>';\n arguments = [\n {\n name: 'dependency-name',\n description:\n 'package-name. for components, you can use either component-id or package-name. if version is specified, it will search for the exact version',\n },\n ];\n group = 'info';\n description = 'find components that use the specified dependency';\n alias = '';\n options = [['', 'depth <number>', 'max display depth of the dependency graph']] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([depName]: [string], options: DependenciesUsageCmdOptions) {\n const deepUsageResult = await this.deps.usageDeep(depName, options);\n if (deepUsageResult != null) return deepUsageResult;\n const results = await this.deps.usage(depName);\n if (!Object.keys(results).length) {\n return chalk.yellow(`the specified dependency ${depName} is not used by any component`);\n }\n return Object.keys(results)\n .map((compIdStr) => `${chalk.bold(compIdStr)} (using dep in version ${results[compIdStr]})`)\n .join('\\n');\n }\n}\n\nexport class WhyCmd extends DependenciesUsageCmd {\n name = 'why <dependency-name>';\n}\n\nexport class DependenciesCmd implements Command {\n name = 'deps <sub-command>';\n alias = 'dependencies';\n description = 'manage dependencies';\n options = [];\n group = 'info';\n commands: Command[] = [];\n helpUrl = 'reference/dependencies/configuring-dependencies';\n\n async report([unrecognizedSubcommand]: [string]) {\n return chalk.red(\n `\"${unrecognizedSubcommand}\" is not a subcommand of \"dependencies\", please run \"bit dependencies --help\" to list the subcommands`\n );\n }\n}\n\nexport class SetPeerCmd implements Command {\n name = 'set-peer <component-id> <range>';\n arguments = [\n { name: 'component-id', description: 'the component to set as always peer' },\n {\n name: 'range',\n description: 'the default range to use for the componnent, when added to peerDependencies',\n },\n ];\n group = 'info';\n description = 'set a component as always peer';\n alias = '';\n options = [];\n\n constructor(private deps: DependenciesMain) {}\n\n async report([componentId, range]: [string, string]) {\n await this.deps.setPeer(componentId, range != null ? range.toString() : range);\n return `${chalk.green('successfully marked the component as a peer component')}`;\n }\n}\n\nexport class UnsetPeerCmd implements Command {\n name = 'unset-peer <component-id>';\n arguments = [{ name: 'component-id', description: 'the component to unset as always peer' }];\n group = 'info';\n description = 'unset a component as always peer';\n alias = '';\n options = [];\n\n constructor(private deps: DependenciesMain) {}\n\n async report([componentId]: [string]) {\n await this.deps.unsetPeer(componentId);\n return `${chalk.green('successfully marked the component as not a peer component')}`;\n }\n}\n\ntype DependenciesWriteCmdOptions = {\n target?: 'workspace.jsonc' | 'package.json';\n};\n\nexport class DependenciesWriteCmd implements Command {\n name = 'write';\n arguments = [];\n group = 'info';\n description = 'write all workspace component dependencies to package.json or workspace.jsonc, resolving conflicts by picking the ranges that match the highest versions';\n alias = '';\n options = [['', 'target <workspace.jsonc|package.json>', 'specify where the dependencies should be written. By default they are saved to workspace.jsonc']] as CommandOptions;\n\n constructor(private workspace: Workspace) {}\n\n async report(_, options: DependenciesWriteCmdOptions) {\n await this.workspace.writeDependencies(options.target);\n return '';\n }\n}\n"],"mappings":";;;;;;AAEA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,OAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,MAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,OAAA;EAAA,MAAAJ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAE,MAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,UAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,SAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA2D,SAAAC,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,gBAAAH,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAJ,CAAA,GAAAO,MAAA,CAAAC,cAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAZ,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAM,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAhB,CAAA,QAAAa,CAAA,GAAAb,CAAA,CAAAiB,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA,KAP3D;AAwBO,MAAMgB,kBAAkB,CAAoB;EAWjDC,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAApB,eAAA,eAVnC,sBAAsB;IAAAA,eAAA,oBACjB,CAAC;MAAEqB,IAAI,EAAE,gBAAgB;MAAEC,WAAW,EAAE;IAAiC,CAAC,CAAC;IAAAtB,eAAA,gBAC/E,MAAM;IAAAA,eAAA,sBACA,8DAA8D;IAAAA,eAAA,gBACpE,EAAE;IAAAA,eAAA,kBACA,CACR,CAAC,EAAE,EAAE,OAAO,EAAE,sDAAsD,CAAC,EACrE,CAAC,GAAG,EAAE,MAAM,EAAE,oDAAoD,CAAC,CACpE;EAE4C;EAE7C,MAAMuB,MAAMA,CAAC,CAACC,EAAE,CAAW,EAAE;IAAEC,IAAI,GAAG,KAAK;IAAEC,KAAK,GAAG;EAA4B,CAAC,EAAE;IAClF,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACP,IAAI,CAACQ,eAAe,CAACJ,EAAE,EAAEE,KAAK,CAAC;IAE1D,IAAID,IAAI,EAAE;MACR,MAAMI,aAAa,GAAGF,OAAO,CAACH,EAAE;MAChC,MAAMM,cAAc,GAAIC,KAAuB,IAAK;QAClD,IAAI;UACF,MAAMC,WAAW,GAAGD,KAAK,CAACE,2BAA2B,CAACJ,aAAa,CAACK,QAAQ,CAAC,CAAC,CAAC;UAC/E,OAAO,IAAAC,gBAAK,EAACH,WAAW,CAAC;QAC3B,CAAC,CAAC,OAAOI,GAAQ,EAAE;UACjB,IAAIA,GAAG,CAACjB,WAAW,CAACE,IAAI,KAAK,YAAY,EAAE;YACzC,OAAO,GAAGgB,gBAAK,CAACC,GAAG,CACjB,2FACF,CAAC,EAAE;UACL;UACA,MAAMF,GAAG;QACX;MACF,CAAC;MACD,MAAMG,SAAS,GAAGT,cAAc,CAACH,OAAO,CAACI,KAAK,CAAC;MAC/C,OAAOQ,SAAS;IAClB;IACA,MAAMC,QAAQ,GAAGb,OAAO,CAACI,KAAK,CAACU,mBAAmB,CAACd,OAAO,CAACH,EAAE,CAAC;IAC9D,IAAI,CAACgB,QAAQ,CAACE,MAAM,EAAE;MACpB,OAAO,6BAA6Bf,OAAO,CAACH,EAAE,CAACU,QAAQ,CAAC,CAAC;AAC/D,iCAAiCP,OAAO,CAACH,EAAE,CAACmB,sBAAsB,CAAC,CAAC,uDAAuD;IACvH;IAEA,MAAMC,SAAS,GAAG,IAAAC,yCAA6B,EAACL,QAAQ,EAAEb,OAAO,CAACH,EAAE,CAAC;IACrE,OAAO,GAAGoB,SAAS,IAAI,QAAQ,EAAE;EACnC;AACF;AAACE,OAAA,CAAA5B,kBAAA,GAAAA,kBAAA;AAEM,MAAM6B,oBAAoB,CAAoB;EAQnD5B,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAApB,eAAA,eAPnC,wBAAwB;IAAAA,eAAA,oBACnB,CAAC;MAAEqB,IAAI,EAAE,gBAAgB;MAAEC,WAAW,EAAE;IAAiC,CAAC,CAAC;IAAAtB,eAAA,gBAC/E,MAAM;IAAAA,eAAA,sBACA,wEAAwE;IAAAA,eAAA,gBAC9E,EAAE;IAAAA,eAAA,kBACA,EAAE;EAEiC;EAE7C,MAAMuB,MAAMA,CAAC,CAACC,EAAE,CAAW,EAAE;IAC3B,MAAMG,OAAO,GAAG,MAAM,IAAI,CAACP,IAAI,CAAC4B,iBAAiB,CAACxB,EAAE,CAAC;IACrD,OAAOyB,IAAI,CAACC,SAAS,CAACvB,OAAO,EAAEwB,SAAS,EAAE,CAAC,CAAC;EAC9C;AACF;AAACL,OAAA,CAAAC,oBAAA,GAAAA,oBAAA;AAEM,MAAMK,kBAAkB,CAAoB;EAmBjDjC,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAApB,eAAA,eAlBnC,sCAAsC;IAAAA,eAAA,oBACjC,CACV;MAAEqB,IAAI,EAAE,mBAAmB;MAAEC,WAAW,EAAE+B;IAAuB,CAAC,EAClE;MACEhC,IAAI,EAAE,YAAY;MAClBC,WAAW,EACT;IACJ,CAAC,CACF;IAAAtB,eAAA,gBACO,MAAM;IAAAA,eAAA,sBACA,kCAAkC;IAAAA,eAAA,gBACxC,EAAE;IAAAA,eAAA,kBACA,CACR,CAAC,GAAG,EAAE,KAAK,EAAE,4BAA4B,CAAC,EAC1C,CAAC,GAAG,EAAE,UAAU,EAAE,iCAAiC,CAAC,EACpD,CAAC,GAAG,EAAE,MAAM,EAAE,6BAA6B,CAAC,CAC7C;EAE4C;EAE7C,MAAMuB,MAAMA,CAAC,CAAC+B,OAAO,EAAEC,QAAQ,CAAqB,EAAEC,YAAkC,EAAE;IACxF,MAAM;MAAEC,YAAY;MAAEC;IAAc,CAAC,GAAG,MAAM,IAAI,CAACtC,IAAI,CAACuC,aAAa,CAACL,OAAO,EAAEC,QAAQ,EAAEC,YAAY,CAAC;IAEtG,OAAO,GAAGnB,gBAAK,CAACuB,KAAK,CAAC,mCAAmC,CAAC;AAC9D,EAAEvB,gBAAK,CAACwB,IAAI,CAAC,oBAAoB,CAAC;AAClC,EAAEJ,YAAY,CAACK,IAAI,CAAC,IAAI,CAAC;AACzB;AACA,EAAEzB,gBAAK,CAACwB,IAAI,CAAC,gBAAgB,CAAC;AAC9B,EAAEZ,IAAI,CAACC,SAAS,CAACQ,aAAa,EAAEP,SAAS,EAAE,CAAC,CAAC,EAAE;EAC7C;AACF;AAACL,OAAA,CAAAM,kBAAA,GAAAA,kBAAA;AAEM,MAAMW,qBAAqB,CAAoB;EAsBpD5C,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAApB,eAAA,eArBnC,yCAAyC;IAAAA,eAAA,oBACpC,CACV;MAAEqB,IAAI,EAAE,mBAAmB;MAAEC,WAAW,EAAE+B;IAAuB,CAAC,EAClE;MACEhC,IAAI,EAAE,YAAY;MAClBC,WAAW,EACT;IACJ,CAAC,CACF;IAAAtB,eAAA,gBACO,MAAM;IAAAA,eAAA,sBACA,iDAAiD;IAAAA,eAAA,8BACzC;AACxB;AACA;AACA,0BAA0B;IAAAA,eAAA,gBAChB,EAAE;IAAAA,eAAA,kBACA,CACR,CAAC,GAAG,EAAE,KAAK,EAAE,6BAA6B,CAAC,EAC3C,CAAC,GAAG,EAAE,MAAM,EAAE,8BAA8B,CAAC,CAC9C;EAE4C;EAE7C,MAAMuB,MAAMA,CAAC,CAAC+B,OAAO,EAAEC,QAAQ,CAAqB,EAAES,eAAwC,EAAE;IAC9F,MAAMrC,OAAO,GAAG,MAAM,IAAI,CAACP,IAAI,CAAC6C,gBAAgB,CAACX,OAAO,EAAEC,QAAQ,EAAES,eAAe,CAAC;IACpF,IAAI,CAACrC,OAAO,CAACe,MAAM,EAAE;MACnB,OAAOL,gBAAK,CAAC6B,MAAM,CAAC,oFAAoF,CAAC;IAC3G;IAEA,MAAMC,MAAM,GAAGxC,OAAO,CACnByC,GAAG,CAAC,CAAC;MAAE5C,EAAE;MAAE6C;IAAgB,CAAC,KAAK,GAAGhC,gBAAK,CAACiC,SAAS,CAAC9C,EAAE,CAACU,QAAQ,CAAC,CAAC,CAAC,KAAKmC,eAAe,CAACP,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CACpGA,IAAI,CAAC,MAAM,CAAC;IAEf,OAAO,GAAGzB,gBAAK,CAACuB,KAAK,CAAC,mCAAmC,CAAC,KAAKO,MAAM,EAAE;EACzE;AACF;AAACrB,OAAA,CAAAiB,qBAAA,GAAAA,qBAAA;AAEM,MAAMQ,oBAAoB,CAAoB;EAqBnDpD,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAApB,eAAA,eApBnC,wCAAwC;IAAAA,eAAA,oBACnC,CACV;MAAEqB,IAAI,EAAE,mBAAmB;MAAEC,WAAW,EAAE+B;IAAuB,CAAC,EAClE;MACEhC,IAAI,EAAE,YAAY;MAClBC,WAAW,EACT;IACJ,CAAC,CACF;IAAAtB,eAAA,gBACO,MAAM;IAAAA,eAAA,sBACA,8FAA8F;IAAAA,eAAA,8BACtF;AACxB;AACA,2BAA2B;IAAAA,eAAA,gBACjB,EAAE;IAAAA,eAAA,kBACA,CACR,CAAC,GAAG,EAAE,KAAK,EAAE,4BAA4B,CAAC,EAC1C,CAAC,GAAG,EAAE,MAAM,EAAE,6BAA6B,CAAC,CAC7C;EAE4C;EAE7C,MAAMuB,MAAMA,CAAC,CAAC+B,OAAO,EAAEC,QAAQ,CAAqB,EAAES,eAAwC,EAAE;IAC9F,MAAMrC,OAAO,GAAG,MAAM,IAAI,CAACP,IAAI,CAAC6C,gBAAgB,CAACX,OAAO,EAAEC,QAAQ,EAAES,eAAe,EAAE,IAAI,CAAC;IAC1F,IAAI,CAACrC,OAAO,CAACe,MAAM,EAAE;MACnB,OAAOL,gBAAK,CAAC6B,MAAM,CAAC,mFAAmF,CAAC;IAC1G;IAEA,MAAMC,MAAM,GAAGxC,OAAO,CACnByC,GAAG,CAAC,CAAC;MAAE5C,EAAE;MAAE6C;IAAgB,CAAC,KAAK,GAAGhC,gBAAK,CAACiC,SAAS,CAAC9C,EAAE,CAACU,QAAQ,CAAC,CAAC,CAAC,KAAKmC,eAAe,CAACP,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CACpGA,IAAI,CAAC,MAAM,CAAC;IAEf,OAAO,GAAGzB,gBAAK,CAACuB,KAAK,CAAC,iCAAiC,CAAC,KAAKO,MAAM,EAAE;EACvE;AACF;AAACrB,OAAA,CAAAyB,oBAAA,GAAAA,oBAAA;AAEM,MAAMC,oBAAoB,CAAoB;EAQnDrD,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAApB,eAAA,eAPnC,2BAA2B;IAAAA,eAAA,oBACtB,CAAC;MAAEqB,IAAI,EAAE,mBAAmB;MAAEC,WAAW,EAAE+B;IAAuB,CAAC,CAAC;IAAArD,eAAA,gBACxE,MAAM;IAAAA,eAAA,sBACA,iFAAiF;IAAAA,eAAA,gBACvF,EAAE;IAAAA,eAAA,kBACA,EAAE;EAEiC;EAE7C,MAAMuB,MAAMA,CAAC,CAAC+B,OAAO,CAAW,EAAE;IAChC,MAAM3B,OAAO,GAAG,MAAM,IAAI,CAACP,IAAI,CAACqD,KAAK,CAACnB,OAAO,CAAC;IAC9C,MAAMoB,KAAK,GAAG/C,OAAO,CAACyC,GAAG,CAAE5C,EAAE,IAAKA,EAAE,CAACU,QAAQ,CAAC,CAAC,CAAC;IAEhD,OAAO,GAAGG,gBAAK,CAACuB,KAAK,CAAC,gEAAgE,CAAC,KAAKc,KAAK,EAAE;EACrG;AACF;AAAC5B,OAAA,CAAA0B,oBAAA,GAAAA,oBAAA;AAEM,MAAMG,oBAAoB,CAAoB;EAQnDxD,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAApB,eAAA,eAPnC,2BAA2B;IAAAA,eAAA,oBACtB,CAAC;MAAEqB,IAAI,EAAE,mBAAmB;MAAEC,WAAW,EAAE+B;IAAuB,CAAC,CAAC;IAAArD,eAAA,gBACxE,MAAM;IAAAA,eAAA,sBACA,6EAA6E;IAAAA,eAAA,gBACnF,EAAE;IAAAA,eAAA,kBACA,EAAE;EAEiC;EAE7C,MAAMuB,MAAMA,CAAC,CAAC+B,OAAO,CAAW,EAAE;IAChC,MAAM3B,OAAO,GAAG,MAAM,IAAI,CAACP,IAAI,CAACwD,KAAK,CAACtB,OAAO,CAAC;IAC9C,MAAMoB,KAAK,GAAG/C,OAAO,CAACyC,GAAG,CAAE5C,EAAE,IAAKA,EAAE,CAACU,QAAQ,CAAC,CAAC,CAAC;IAEhD,OAAO,GAAGG,gBAAK,CAACuB,KAAK,CAAC,kEAAkE,CAAC,KAAKc,KAAK,EAAE;EACvG;AACF;AAAC5B,OAAA,CAAA6B,oBAAA,GAAAA,oBAAA;AAEM,MAAME,oBAAoB,CAAoB;EAanD1D,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAApB,eAAA,eAZnC,0CAA0C;IAAAA,eAAA,oBACrC,CACV;MACEqB,IAAI,EAAE,iBAAiB;MACvBC,WAAW,EAAE;IACf,CAAC,CACF;IAAAtB,eAAA,gBACO,MAAM;IAAAA,eAAA,sBACA,sDAAsD;IAAAA,eAAA,gBAC5D,EAAE;IAAAA,eAAA,kBACA,EAAE;EAEiC;EAE7C,MAAMuB,MAAMA,CAAC,CAACuD,QAAQ,EAAEC,OAAO,CAAmB,EAAE;IAClD,MAAMpD,OAAO,GAAG,MAAM,IAAI,CAACP,IAAI,CAAC4D,KAAK,CAACF,QAAQ,EAAEC,OAAO,CAAC;IACxD,IAAI,CAACpD,OAAO,CAACe,MAAM,EAAE;MACnB,OAAOL,gBAAK,CAAC6B,MAAM,CAAC,2BAA2BY,QAAQ,wCAAwCC,OAAO,EAAE,CAAC;IAC3G;IACA;IACA,MAAME,KAAK,GAAG,KAAIC,mBAAK,EAAC;MACtBC,KAAK,EAAE;QACLC,GAAG,EAAE,EAAE;QACP,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;QACfC,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE;QAChB,aAAa,EAAE,EAAE;QACjB,cAAc,EAAE,EAAE;QAClBC,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,EAAE;QACdC,GAAG,EAAE,EAAE;QACP,SAAS,EAAE,EAAE;QACbC,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACfC,MAAM,EAAE;MACV,CAAC;MACDC,KAAK,EAAE;QAAE,cAAc,EAAE,CAAC;QAAE,eAAe,EAAE;MAAE;IACjD,CAAC,CAAC;IAEF/D,OAAO,CAACyC,GAAG,CAAC,CAAC;MAAEuB,IAAI;MAAEC,GAAG;MAAEC,MAAM;MAAEC,IAAI;MAAEC,OAAO;MAAEC;IAAQ,CAAC,KACxDf,KAAK,CAACgB,IAAI,CAAC,CAACN,IAAI,EAAEC,GAAG,IAAI,EAAE,EAAEC,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAEC,OAAO,CAAC,CAC9D,CAAC;IAED,OAAOf,KAAK,CAAC/C,QAAQ,CAAC,CAAC;EACzB;AACF;AAACY,OAAA,CAAA+B,oBAAA,GAAAA,oBAAA;AAMM,MAAMqB,oBAAoB,CAAoB;EAcnD/E,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAApB,eAAA,eAbnC,yBAAyB;IAAAA,eAAA,oBACpB,CACV;MACEqB,IAAI,EAAE,iBAAiB;MACvBC,WAAW,EACT;IACJ,CAAC,CACF;IAAAtB,eAAA,gBACO,MAAM;IAAAA,eAAA,sBACA,mDAAmD;IAAAA,eAAA,gBACzD,EAAE;IAAAA,eAAA,kBACA,CAAC,CAAC,EAAE,EAAE,gBAAgB,EAAE,2CAA2C,CAAC,CAAC;EAElC;EAE7C,MAAMuB,MAAMA,CAAC,CAACwD,OAAO,CAAW,EAAEoB,OAAoC,EAAE;IACtE,MAAMC,eAAe,GAAG,MAAM,IAAI,CAAChF,IAAI,CAACiF,SAAS,CAACtB,OAAO,EAAEoB,OAAO,CAAC;IACnE,IAAIC,eAAe,IAAI,IAAI,EAAE,OAAOA,eAAe;IACnD,MAAMzE,OAAO,GAAG,MAAM,IAAI,CAACP,IAAI,CAACkF,KAAK,CAACvB,OAAO,CAAC;IAC9C,IAAI,CAAC3E,MAAM,CAACmG,IAAI,CAAC5E,OAAO,CAAC,CAACe,MAAM,EAAE;MAChC,OAAOL,gBAAK,CAAC6B,MAAM,CAAC,4BAA4Ba,OAAO,+BAA+B,CAAC;IACzF;IACA,OAAO3E,MAAM,CAACmG,IAAI,CAAC5E,OAAO,CAAC,CACxByC,GAAG,CAAEoC,SAAS,IAAK,GAAGnE,gBAAK,CAACwB,IAAI,CAAC2C,SAAS,CAAC,0BAA0B7E,OAAO,CAAC6E,SAAS,CAAC,GAAG,CAAC,CAC3F1C,IAAI,CAAC,IAAI,CAAC;EACf;AACF;AAAChB,OAAA,CAAAoD,oBAAA,GAAAA,oBAAA;AAEM,MAAMO,MAAM,SAASP,oBAAoB,CAAC;EAAA/E,YAAA,GAAAuF,IAAA;IAAA,SAAAA,IAAA;IAAA1G,eAAA,eACxC,uBAAuB;EAAA;AAChC;AAAC8C,OAAA,CAAA2D,MAAA,GAAAA,MAAA;AAEM,MAAME,eAAe,CAAoB;EAAAxF,YAAA;IAAAnB,eAAA,eACvC,oBAAoB;IAAAA,eAAA,gBACnB,cAAc;IAAAA,eAAA,sBACR,qBAAqB;IAAAA,eAAA,kBACzB,EAAE;IAAAA,eAAA,gBACJ,MAAM;IAAAA,eAAA,mBACQ,EAAE;IAAAA,eAAA,kBACd,iDAAiD;EAAA;EAE3D,MAAMuB,MAAMA,CAAC,CAACqF,sBAAsB,CAAW,EAAE;IAC/C,OAAOvE,gBAAK,CAACC,GAAG,CACd,IAAIsE,sBAAsB,uGAC5B,CAAC;EACH;AACF;AAAC9D,OAAA,CAAA6D,eAAA,GAAAA,eAAA;AAEM,MAAME,UAAU,CAAoB;EAczC1F,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAApB,eAAA,eAbnC,iCAAiC;IAAAA,eAAA,oBAC5B,CACV;MAAEqB,IAAI,EAAE,cAAc;MAAEC,WAAW,EAAE;IAAsC,CAAC,EAC5E;MACED,IAAI,EAAE,OAAO;MACbC,WAAW,EAAE;IACf,CAAC,CACF;IAAAtB,eAAA,gBACO,MAAM;IAAAA,eAAA,sBACA,gCAAgC;IAAAA,eAAA,gBACtC,EAAE;IAAAA,eAAA,kBACA,EAAE;EAEiC;EAE7C,MAAMuB,MAAMA,CAAC,CAACuF,WAAW,EAAEC,KAAK,CAAmB,EAAE;IACnD,MAAM,IAAI,CAAC3F,IAAI,CAAC4F,OAAO,CAACF,WAAW,EAAEC,KAAK,IAAI,IAAI,GAAGA,KAAK,CAAC7E,QAAQ,CAAC,CAAC,GAAG6E,KAAK,CAAC;IAC9E,OAAO,GAAG1E,gBAAK,CAACuB,KAAK,CAAC,uDAAuD,CAAC,EAAE;EAClF;AACF;AAACd,OAAA,CAAA+D,UAAA,GAAAA,UAAA;AAEM,MAAMI,YAAY,CAAoB;EAQ3C9F,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAApB,eAAA,eAPnC,2BAA2B;IAAAA,eAAA,oBACtB,CAAC;MAAEqB,IAAI,EAAE,cAAc;MAAEC,WAAW,EAAE;IAAwC,CAAC,CAAC;IAAAtB,eAAA,gBACpF,MAAM;IAAAA,eAAA,sBACA,kCAAkC;IAAAA,eAAA,gBACxC,EAAE;IAAAA,eAAA,kBACA,EAAE;EAEiC;EAE7C,MAAMuB,MAAMA,CAAC,CAACuF,WAAW,CAAW,EAAE;IACpC,MAAM,IAAI,CAAC1F,IAAI,CAAC8F,SAAS,CAACJ,WAAW,CAAC;IACtC,OAAO,GAAGzE,gBAAK,CAACuB,KAAK,CAAC,2DAA2D,CAAC,EAAE;EACtF;AACF;AAACd,OAAA,CAAAmE,YAAA,GAAAA,YAAA;AAMM,MAAME,oBAAoB,CAAoB;EAQnDhG,WAAWA,CAASiG,SAAoB,EAAE;IAAA,KAAtBA,SAAoB,GAApBA,SAAoB;IAAApH,eAAA,eAPjC,OAAO;IAAAA,eAAA,oBACF,EAAE;IAAAA,eAAA,gBACN,MAAM;IAAAA,eAAA,sBACA,0JAA0J;IAAAA,eAAA,gBAChK,EAAE;IAAAA,eAAA,kBACA,CAAC,CAAC,EAAE,EAAE,uCAAuC,EAAE,gGAAgG,CAAC,CAAC;EAEhH;EAE3C,MAAMuB,MAAMA,CAAC8F,CAAC,EAAElB,OAAoC,EAAE;IACpD,MAAM,IAAI,CAACiB,SAAS,CAACE,iBAAiB,CAACnB,OAAO,CAACoB,MAAM,CAAC;IACtD,OAAO,EAAE;EACX;AACF;AAACzE,OAAA,CAAAqE,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -37,6 +37,10 @@ export declare class ApplyOverrides {
37
37
  processedFiles: string[];
38
38
  overridesDependencies: OverridesDependencies;
39
39
  debugDependenciesData: DebugDependencies;
40
+ /**
41
+ * see workspace.getAutoDetectOverrides docs.
42
+ * these overrides are from env/variants/merge-config. not ones with "force: true".
43
+ */
40
44
  autoDetectOverrides: Record<string, any> | undefined;
41
45
  constructor(component: Component, depsResolver: DependencyResolverMain, logger: Logger, workspace?: Workspace | undefined);
42
46
  private setOverridesDependencies;
@@ -119,6 +119,10 @@ class ApplyOverrides {
119
119
  _defineProperty(this, "processedFiles", void 0);
120
120
  _defineProperty(this, "overridesDependencies", void 0);
121
121
  _defineProperty(this, "debugDependenciesData", void 0);
122
+ /**
123
+ * see workspace.getAutoDetectOverrides docs.
124
+ * these overrides are from env/variants/merge-config. not ones with "force: true".
125
+ */
122
126
  _defineProperty(this, "autoDetectOverrides", void 0);
123
127
  this.componentId = component.componentId;
124
128
  // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
@@ -515,24 +519,21 @@ class ApplyOverrides {
515
519
  }
516
520
  ['dependencies', 'devDependencies', 'peerDependencies'].forEach(field => {
517
521
  (0, _lodash().forEach)(autoDetectOverrides[field], (pkgVal, pkgName) => {
518
- if (this.overridesDependencies.shouldIgnorePeerPackage(pkgName)) return;
522
+ if (this.overridesDependencies.shouldIgnorePeerPackage(pkgName)) {
523
+ return;
524
+ }
525
+ const existsInCompsDeps = this.allDependencies.dependencies.find(dep => dep.packageName === pkgName);
526
+ const existsInCompsDevDeps = this.allDependencies.devDependencies.find(dep => dep.packageName === pkgName);
527
+ const existsInCompsPeerDeps = this.allDependencies.peerDependencies.find(dep => dep.packageName === pkgName);
528
+
519
529
  // Validate it was auto detected, we only affect stuff that were detected
520
- const existsInCompsDeps = this.allDependencies.dependencies.find(dep => {
521
- return dep.packageName === pkgName;
522
- });
523
- const existsInCompsDevDeps = this.allDependencies.devDependencies.find(dep => {
524
- return dep.packageName === pkgName;
525
- });
526
- const existsInCompsPeerDeps = this.allDependencies.peerDependencies.find(dep => {
527
- return dep.packageName === pkgName;
528
- });
529
- if (
530
+ const isAutoDetected = existsInCompsDeps || existsInCompsDevDeps || existsInCompsPeerDeps ||
530
531
  // We are checking originAllPackagesDependencies instead of allPackagesDependencies
531
532
  // as it might be already removed from allPackagesDependencies at this point if it was set with
532
533
  // "-" in runtime/dev
533
534
  // in such case we still want to apply it here
534
- !this.originAllPackagesDependencies.packageDependencies[pkgName] && !this.originAllPackagesDependencies.devPackageDependencies[pkgName] && !this.originAllPackagesDependencies.peerPackageDependencies[pkgName] && !existsInCompsDeps && !existsInCompsDevDeps && !existsInCompsPeerDeps &&
535
- // Check if it was orignally exists in the component
535
+ this.originAllPackagesDependencies.packageDependencies[pkgName] || this.originAllPackagesDependencies.devPackageDependencies[pkgName] || this.originAllPackagesDependencies.peerPackageDependencies[pkgName] ||
536
+ // Check if it was originally exists in the component
536
537
  // as we might have a policy which looks like this:
537
538
  // "components": {
538
539
  // "dependencies": {
@@ -544,7 +545,8 @@ class ApplyOverrides {
544
545
  // }
545
546
  // in that case we might remove it before getting to the devDeps then we will think that it wasn't required in the component
546
547
  // which is incorrect
547
- !originallyExists.includes(pkgName) && !missingPackages.includes(pkgName)) {
548
+ originallyExists.includes(pkgName) || missingPackages.includes(pkgName);
549
+ if (!isAutoDetected) {
548
550
  return;
549
551
  }
550
552
  originallyExists.push(pkgName);