@teambit/dependencies 1.0.107 → 1.0.109

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.
@@ -0,0 +1,42 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuites>
3
+ <testsuite name="teambit.dependencies/dependencies@1.0.109" timestamp="2023-12-27T17:56:28.158Z" tests="37" failures="0" errors="0" skipped="0">
4
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/testing-library__jest-dom" time="0.069"/>
5
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/chai" time="0.001"/>
6
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/mocha"/>
7
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/classnames"/>
8
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/cors"/>
9
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/cross-spawn"/>
10
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/dagre"/>
11
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/didyoumean" time="0.001"/>
12
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/eslint"/>
13
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/express" time="0.001"/>
14
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/find-cache-dir"/>
15
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/find-root"/>
16
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/history" time="0.001"/>
17
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/http-proxy-agent"/>
18
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/lodash"/>
19
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/lodash.compact" time="0.001"/>
20
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/lodash.flatten"/>
21
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/lodash.head"/>
22
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/lodash.pick"/>
23
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/mdx-js__react"/>
24
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/memoizee"/>
25
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/mime" time="0.001"/>
26
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/mousetrap"/>
27
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/node"/>
28
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/puppeteer"/>
29
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react"/>
30
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react-dom" time="0.001"/>
31
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react-router-dom"/>
32
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react-tabs"/>
33
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/react-tooltip"/>
34
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/socket.io-client"/>
35
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/ua-parser-js"/>
36
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/url-join" time="0.001"/>
37
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/url-parse"/>
38
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/webpack"/>
39
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/webpack-dev-server"/>
40
+ <testcase classname="package-to-definetly-typed.spec.js" name="should map to @types/webpack-merge"/>
41
+ </testsuite>
42
+ </testsuites>
@@ -0,0 +1 @@
1
+ !function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports["teambit.dependencies/dependencies-preview"]=o():e["teambit.dependencies/dependencies-preview"]=o()}(self,(()=>(()=>{"use strict";var e={d:(o,t)=>{for(var n in t)e.o(t,n)&&!e.o(o,n)&&Object.defineProperty(o,n,{enumerable:!0,get:t[n]})},o:(e,o)=>Object.prototype.hasOwnProperty.call(e,o),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},o={};e.r(o),e.d(o,{compositions:()=>t,compositions_metadata:()=>i,overview:()=>n});const t=[],n=[],i={compositions:[]};return o})()));
@@ -1,14 +1,14 @@
1
1
  import { Command, CommandOptions } from '@teambit/cli';
2
2
  import { DependenciesMain } from './dependencies.main.runtime';
3
- declare type GetDependenciesFlags = {
3
+ type GetDependenciesFlags = {
4
4
  tree: boolean;
5
5
  };
6
- export declare type SetDependenciesFlags = {
6
+ export type SetDependenciesFlags = {
7
7
  dev?: boolean;
8
8
  optional?: boolean;
9
9
  peer?: boolean;
10
10
  };
11
- export declare type RemoveDependenciesFlags = SetDependenciesFlags;
11
+ export type RemoveDependenciesFlags = SetDependenciesFlags;
12
12
  export declare class DependenciesGetCmd implements Command {
13
13
  private deps;
14
14
  name: string;
@@ -121,7 +121,7 @@ export declare class DependenciesBlameCmd implements Command {
121
121
  constructor(deps: DependenciesMain);
122
122
  report([compName, depName]: [string, string]): Promise<string>;
123
123
  }
124
- declare type DependenciesUsageCmdOptions = {
124
+ type DependenciesUsageCmdOptions = {
125
125
  depth?: number;
126
126
  };
127
127
  export declare class DependenciesUsageCmd implements Command {
@@ -145,7 +145,7 @@ export declare class DependenciesCmd implements Command {
145
145
  name: string;
146
146
  alias: string;
147
147
  description: string;
148
- options: never[];
148
+ options: any[];
149
149
  group: string;
150
150
  commands: Command[];
151
151
  helpUrl: string;
@@ -8,11 +8,11 @@ import Consumer from '@teambit/legacy/dist/consumer/consumer';
8
8
  import OverridesDependencies from './overrides-dependencies';
9
9
  import { DependenciesData } from './dependencies-data';
10
10
  import { DebugDependencies } from './auto-detect-deps';
11
- export declare type AllDependencies = {
11
+ export type AllDependencies = {
12
12
  dependencies: Dependency[];
13
13
  devDependencies: Dependency[];
14
14
  };
15
- export declare type AllPackagesDependencies = {
15
+ export type AllPackagesDependencies = {
16
16
  packageDependencies: Record<string, string>;
17
17
  devPackageDependencies: Record<string, string>;
18
18
  peerPackageDependencies: Record<string, string>;
@@ -36,7 +36,7 @@ export declare class ApplyOverrides {
36
36
  overridesDependencies: OverridesDependencies;
37
37
  debugDependenciesData: DebugDependencies;
38
38
  autoDetectOverrides: Record<string, any> | undefined;
39
- constructor(component: Component, depsResolver: DependencyResolverMain, workspace?: Workspace | undefined);
39
+ constructor(component: Component, depsResolver: DependencyResolverMain, workspace?: Workspace);
40
40
  get consumer(): Consumer | undefined;
41
41
  getDependenciesData(): Promise<{
42
42
  dependenciesData: DependenciesData;
@@ -131,8 +131,7 @@ class ApplyOverrides {
131
131
  };
132
132
  }
133
133
  get consumer() {
134
- var _this$workspace;
135
- return (_this$workspace = this.workspace) === null || _this$workspace === void 0 ? void 0 : _this$workspace.consumer;
134
+ return this.workspace?.consumer;
136
135
  }
137
136
  async getDependenciesData() {
138
137
  await this.populateDependencies();
@@ -204,8 +203,7 @@ class ApplyOverrides {
204
203
  if (!missingIssue.data.length) this.issues.delete(_componentIssues().IssuesClasses.MissingPackagesDependenciesOnFs);
205
204
  }
206
205
  async loadAutoDetectOverrides() {
207
- var _this$workspace2;
208
- this.autoDetectOverrides = await ((_this$workspace2 = this.workspace) === null || _this$workspace2 === void 0 ? void 0 : _this$workspace2.getAutoDetectOverrides(this.component.extensions, this.component.id, this.component.files));
206
+ this.autoDetectOverrides = await this.workspace?.getAutoDetectOverrides(this.component.extensions, this.component.id, this.component.files);
209
207
  }
210
208
  cloneAllPackagesDependencies() {
211
209
  this.originAllPackagesDependencies = (0, _lodash().cloneDeep)(this.allPackagesDependencies);
@@ -235,8 +233,8 @@ class ApplyOverrides {
235
233
  if (field === 'peerDependencies') return undefined;
236
234
  const packageData = this._resolvePackageData(dependency);
237
235
  return {
238
- componentId: packageData === null || packageData === void 0 ? void 0 : packageData.componentId,
239
- packageName: packageData === null || packageData === void 0 ? void 0 : packageData.name
236
+ componentId: packageData?.componentId,
237
+ packageName: packageData?.name
240
238
  };
241
239
  }
242
240
  getDependenciesToAddManually(packageJson, existingDependencies) {
@@ -249,7 +247,7 @@ class ApplyOverrides {
249
247
  Object.keys(overrides[depField]).forEach(dependency => {
250
248
  const dependencyValue = overrides[depField][dependency];
251
249
  const componentData = this._getComponentIdToAdd(depField, dependency);
252
- if (componentData !== null && componentData !== void 0 && componentData.componentId) {
250
+ if (componentData?.componentId) {
253
251
  const dependencyExist = existingDependencies[depField].find(d => d.id.isEqualWithoutVersion(componentData.componentId));
254
252
  if (!dependencyExist) {
255
253
  this.overridesDependencies._addManuallyAddedDep(depField, componentData.componentId.toString());
@@ -353,8 +351,7 @@ class ApplyOverrides {
353
351
  delete this.allPackagesDependencies[field][pkgName];
354
352
  peerDeps[pkgName] = peerVersionFromPkgJson;
355
353
  } else if (regularVersionFromPkgJson) {
356
- var _this$allPackagesDepe;
357
- (_this$allPackagesDepe = this.allPackagesDependencies.peerPackageDependencies) === null || _this$allPackagesDepe === void 0 || delete _this$allPackagesDepe[pkgName];
354
+ delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];
358
355
  this.allPackagesDependencies[field][pkgName] = regularVersionFromPkgJson;
359
356
  }
360
357
  }, this.allPackagesDependencies[field]);
@@ -377,8 +374,7 @@ class ApplyOverrides {
377
374
  delete this.allPackagesDependencies[field][pkgName];
378
375
  peerDeps[pkgName] = peerVersionFromWsPolicy;
379
376
  } else if (regularVersionFromWsPolicy) {
380
- var _this$allPackagesDepe2;
381
- (_this$allPackagesDepe2 = this.allPackagesDependencies.peerPackageDependencies) === null || _this$allPackagesDepe2 === void 0 || delete _this$allPackagesDepe2[pkgName];
377
+ delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];
382
378
  this.allPackagesDependencies[field][pkgName] = regularVersionFromWsPolicy;
383
379
  }
384
380
  }, this.allPackagesDependencies[field]);
@@ -405,7 +401,6 @@ class ApplyOverrides {
405
401
  }
406
402
  }
407
403
  async applyAutoDetectOverridesOnComponent() {
408
- var _this$issues$getIssue;
409
404
  const autoDetectOverrides = this.autoDetectOverrides;
410
405
  if (!autoDetectOverrides || !Object.keys(autoDetectOverrides).length) {
411
406
  return;
@@ -413,7 +408,7 @@ class ApplyOverrides {
413
408
  const originallyExists = [];
414
409
  let missingPackages = [];
415
410
  // We want to also add missing packages to the peer list as we know to resolve the version from the env anyway
416
- const missingData = (_this$issues$getIssue = this.issues.getIssueByName('MissingPackagesDependenciesOnFs')) === null || _this$issues$getIssue === void 0 ? void 0 : _this$issues$getIssue.data;
411
+ const missingData = this.issues.getIssueByName('MissingPackagesDependenciesOnFs')?.data;
417
412
  if (missingData) {
418
413
  missingPackages = (0, _lodash().uniq)(missingData.map(d => d.missingPackages).flat());
419
414
  }
@@ -506,8 +501,7 @@ class ApplyOverrides {
506
501
  * when it's authored.
507
502
  */
508
503
  _getPackageJson() {
509
- var _this$consumer;
510
- return (_this$consumer = this.consumer) === null || _this$consumer === void 0 ? void 0 : _this$consumer.packageJson.packageJsonObject;
504
+ return this.consumer?.packageJson.packageJsonObject;
511
505
  }
512
506
  _getPackageJsonFromComponentModel() {
513
507
  if (this.componentFromModel && this.component.componentMap) {
@@ -1 +1 @@
1
- {"version":3,"names":["_ramda","data","_interopRequireDefault","require","_path","_componentId","_lodash","_componentIssues","_constants","_packageJsonFile","_packages","_dependencies","_overridesDependencies","_dependenciesData","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","DepsKeysToAllPackagesDepsKeys","dependencies","devDependencies","peerDependencies","ApplyOverrides","constructor","component","depsResolver","workspace","componentId","componentFromModel","allDependencies","allPackagesDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","processedFiles","issues","setLegacyInsideHarmonyIssue","overridesDependencies","OverridesDependencies","debugDependenciesData","components","consumer","_this$workspace","getDependenciesData","populateDependencies","dependenciesData","DependenciesData","coreAspects","autoDetectOverrides","loadAutoDetectOverrides","removeIgnoredComponentsByOverrides","cloneAllPackagesDependencies","removeIgnoredPackagesByOverrides","removeDevAndEnvDepsIfTheyAlsoRegulars","applyPeersFromComponentModel","applyPackageJson","applyWorkspacePolicy","makeLegacyAsPeer","applyAutoDetectOverridesOnComponent","manuallyAddDependencies","applyAutoDetectedPeersFromEnvOnEnvItSelf","R","uniq","shouldBeIncluded","dep","fileType","shouldIgnorePackage","packageName","filter","isTestFile","missingIssue","getIssueByName","missingData","forEach","m","missingPackages","pkg","isDevFile","length","delete","IssuesClasses","MissingPackagesDependenciesOnFs","_this$workspace2","getAutoDetectOverrides","extensions","id","files","originAllPackagesDependencies","cloneDeep","pkgVersion","pkgName","shouldIgnorePackageByType","shouldBeIncludedDev","pickBy","_resolvePackageData","undefined","componentMap","rootDir","consumerPath","getPath","basePath","path","join","modulePath","resolvePackagePath","packageObject","resolvePackageData","_getComponentIdToAdd","field","dependency","packageData","name","getDependenciesToAddManually","packageJson","existingDependencies","overrides","packages","DEPENDENCIES_FIELDS","depField","keys","dependencyValue","componentData","dependencyExist","find","d","isEqualWithoutVersion","_addManuallyAddedDep","toString","push","addedPkg","_manuallyAddPackage","assign","missingPackageDependencies","_getPackageJson","depData","Dependency","isEmpty","_pkgFieldMapping","peerName","getNotRegularPackages","difference","pick","componentDepsIds","ComponentIdList","map","c","has","getPeerDependencies","_getPackageJsonFromComponentModel","projectPeerDependencies","peerPackages","shouldIgnorePeerPackage","includes","pkgJsonPeer","pkgJsonRegularDeps","peerDeps","forEachObjIndexed","_pkgVal","peerVersionFromPkgJson","regularVersionFromPkgJson","_this$allPackagesDepe","wsPolicy","getWorkspacePolicyManifest","wsPeer","wsRegular","peerVersionFromWsPolicy","regularVersionFromWsPolicy","_this$allPackagesDepe2","version","isNaN","_this$issues$getIssue","originallyExists","flat","pkgVal","existsInCompsDeps","existsInCompsDevDeps","MANUALLY_REMOVE_DEPENDENCY","envPolicy","getEnvPolicyFromEnvLegacyId","envPolicyManifest","selfPolicy","toVersionManifest","deps","peerVersionFromEnvPolicy","_this$consumer","packageJsonObject","PackageJsonFile","createFromComponent","isLegacy","getOrCreate","LegacyInsideHarmony","Error","exports"],"sources":["apply-overrides.ts"],"sourcesContent":["import R from 'ramda';\nimport path from 'path';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { cloneDeep, uniq } from 'lodash';\nimport { IssuesList, IssuesClasses, MissingPackagesData } from '@teambit/component-issues';\nimport { DEPENDENCIES_FIELDS, MANUALLY_REMOVE_DEPENDENCY } from '@teambit/legacy/dist/constants';\nimport Component from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport PackageJsonFile from '@teambit/legacy/dist/consumer/component/package-json-file';\nimport { ResolvedPackageData, resolvePackageData, resolvePackagePath } from '@teambit/legacy/dist/utils/packages';\nimport { PathLinux } from '@teambit/legacy/dist/utils/path';\nimport { Workspace } from '@teambit/workspace';\nimport { Dependency } from '@teambit/legacy/dist/consumer/component/dependencies';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport Consumer from '@teambit/legacy/dist/consumer/consumer';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport OverridesDependencies from './overrides-dependencies';\nimport { DependenciesData } from './dependencies-data';\nimport { DebugDependencies, FileType } from './auto-detect-deps';\n\nexport type AllDependencies = {\n dependencies: Dependency[];\n devDependencies: Dependency[];\n};\n\nexport type AllPackagesDependencies = {\n packageDependencies: Record<string, string>;\n devPackageDependencies: Record<string, string>;\n peerPackageDependencies: Record<string, string>;\n};\n\nconst DepsKeysToAllPackagesDepsKeys = {\n dependencies: 'packageDependencies',\n devDependencies: 'devPackageDependencies',\n peerDependencies: 'peerPackageDependencies',\n};\n\nexport class ApplyOverrides {\n componentId: ComponentID;\n componentFromModel: Component;\n allDependencies: AllDependencies;\n allPackagesDependencies: AllPackagesDependencies;\n /**\n * This will store a copy of the package deps before removal\n * in order to apply auto detected rules that are running after the removal\n */\n originAllPackagesDependencies: AllPackagesDependencies;\n issues: IssuesList;\n coreAspects: string[] = [];\n processedFiles: string[];\n overridesDependencies: OverridesDependencies;\n debugDependenciesData: DebugDependencies;\n autoDetectOverrides: Record<string, any> | undefined;\n constructor(\n private component: Component,\n private depsResolver: DependencyResolverMain,\n private workspace?: Workspace\n ) {\n this.componentId = component.componentId;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.componentFromModel = this.component.componentFromModel;\n this.allDependencies = {\n dependencies: [],\n devDependencies: [],\n };\n this.allPackagesDependencies = {\n packageDependencies: {},\n devPackageDependencies: {},\n peerPackageDependencies: {},\n };\n this.processedFiles = [];\n this.issues = component.issues;\n this.setLegacyInsideHarmonyIssue();\n this.overridesDependencies = new OverridesDependencies(component);\n this.debugDependenciesData = { components: [] };\n }\n\n get consumer(): Consumer | undefined {\n return this.workspace?.consumer;\n }\n\n async getDependenciesData(): Promise<{\n dependenciesData: DependenciesData;\n overridesDependencies: OverridesDependencies;\n autoDetectOverrides?: Record<string, any>;\n }> {\n await this.populateDependencies();\n const dependenciesData = new DependenciesData(\n this.allDependencies,\n this.allPackagesDependencies,\n this.issues,\n this.coreAspects\n );\n return {\n dependenciesData,\n overridesDependencies: this.overridesDependencies,\n autoDetectOverrides: this.autoDetectOverrides,\n };\n }\n\n /**\n * Given the tree of file dependencies from the driver, find the components of these files.\n * Each dependency file has a path, use bit.map to search for the component name by that path.\n * If the component is found, add it to \"this.allDependencies.dependencies\". Otherwise, add it to \"this.issues.untrackedDependencies\".\n *\n * For the found components, add their sourceRelativePath and destinationRelativePath, they are being used for\n * generating links upon import:\n * sourceRelativePath - location of the link file.\n * destinationRelativePath - destination written inside the link file.\n *\n * When a dependency is found in a regular (implementation) file, it goes to `dependencies`. If\n * it found on a test file, it goes to `devDependencies`.\n * Similarly, when a package is found in a regular file, it goes to `packageDependencies`. When\n * if found in a test file, it goes to `devPackageDependencies`.\n * An exception for the above is when a package is required in a regular or test file but is also\n * mentioned in the `package.json` file as a peerDependency, in that case, the package is added\n * to `peerPackageDependencies` and removed from other places. Unless this package is overridden\n * and marked as ignored in the consumer or component config file.\n */\n private async populateDependencies() {\n await this.loadAutoDetectOverrides();\n this.removeIgnoredComponentsByOverrides();\n this.cloneAllPackagesDependencies();\n this.removeIgnoredPackagesByOverrides();\n this.removeDevAndEnvDepsIfTheyAlsoRegulars();\n this.applyPeersFromComponentModel();\n this.applyPackageJson();\n this.applyWorkspacePolicy();\n this.makeLegacyAsPeer();\n await this.applyAutoDetectOverridesOnComponent();\n this.manuallyAddDependencies();\n // Doing this here (after manuallyAddDependencies) because usually the env of the env is adding dependencies as peer of the env\n // which will make this not work if it come before\n // example:\n // custom react has peers with react 16.4.0.\n // the custom react uses the \"teambit.envs/env\" env, which will add react ^17.0.0 to every component that uses it\n // we want to make sure that the custom react is using 16.4.0 not 17.\n await this.applyAutoDetectedPeersFromEnvOnEnvItSelf();\n this.coreAspects = R.uniq(this.coreAspects);\n }\n\n private removeIgnoredComponentsByOverrides() {\n const shouldBeIncluded = (dep: Dependency, fileType: FileType) =>\n !this.overridesDependencies.shouldIgnorePackage(dep.packageName as string, fileType);\n this.allDependencies.dependencies = this.allDependencies.dependencies.filter((dep) =>\n shouldBeIncluded(dep, { isTestFile: false })\n );\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter((dep) =>\n shouldBeIncluded(dep, { isTestFile: true })\n );\n\n const missingIssue = this.issues.getIssueByName('MissingPackagesDependenciesOnFs');\n if (!missingIssue) return;\n const missingData = missingIssue.data as MissingPackagesData[];\n missingData.forEach((m) => {\n m.missingPackages = m.missingPackages.filter(\n (pkg) => !this.overridesDependencies.shouldIgnorePackage(pkg, { isTestFile: m.isDevFile })\n );\n });\n missingIssue.data = missingData.filter((m) => m.missingPackages.length);\n if (!missingIssue.data.length) this.issues.delete(IssuesClasses.MissingPackagesDependenciesOnFs);\n }\n\n private async loadAutoDetectOverrides() {\n this.autoDetectOverrides = await this.workspace?.getAutoDetectOverrides(\n this.component.extensions,\n this.component.id,\n this.component.files\n );\n }\n\n private cloneAllPackagesDependencies() {\n this.originAllPackagesDependencies = cloneDeep(this.allPackagesDependencies);\n }\n\n private removeIgnoredPackagesByOverrides() {\n const shouldBeIncluded = (pkgVersion, pkgName) =>\n !this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'dependencies');\n const shouldBeIncludedDev = (pkgVersion, pkgName) =>\n !this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'devDependencies');\n\n this.allPackagesDependencies.packageDependencies = R.pickBy(\n shouldBeIncluded,\n this.allPackagesDependencies.packageDependencies\n );\n this.allPackagesDependencies.devPackageDependencies = R.pickBy(\n shouldBeIncludedDev,\n this.allPackagesDependencies.devPackageDependencies\n );\n }\n\n // TODO: maybe cache those results??\n private _resolvePackageData(packageName: string): ResolvedPackageData | undefined {\n const consumer = this.consumer;\n if (!consumer) return undefined;\n // if consumer is defined, then it has componentMap prop.\n const componentMap = this.component.componentMap as ComponentMap;\n const rootDir: PathLinux | null | undefined = componentMap.rootDir as string;\n const consumerPath = consumer.getPath();\n const basePath = rootDir ? path.join(consumerPath, rootDir) : consumerPath;\n const modulePath = resolvePackagePath(packageName, basePath, consumerPath);\n if (!modulePath) return undefined; // e.g. it's author and wasn't exported yet, so there's no node_modules of that component\n const packageObject = resolvePackageData(basePath, modulePath);\n return packageObject;\n }\n\n private _getComponentIdToAdd(\n field: string,\n dependency: string\n ): { componentId?: ComponentID; packageName?: string } | undefined {\n if (field === 'peerDependencies') return undefined;\n const packageData = this._resolvePackageData(dependency);\n return { componentId: packageData?.componentId, packageName: packageData?.name };\n }\n\n getDependenciesToAddManually(\n packageJson: Record<string, any> | null | undefined,\n existingDependencies: AllDependencies\n ): { components: Record<string, any>; packages: Record<string, any> } | undefined {\n const overrides = this.overridesDependencies.getDependenciesToAddManually();\n if (!overrides) return undefined;\n const components = {};\n const packages = {};\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!overrides[depField]) return;\n Object.keys(overrides[depField]).forEach((dependency) => {\n const dependencyValue = overrides[depField][dependency];\n const componentData = this._getComponentIdToAdd(depField, dependency);\n if (componentData?.componentId) {\n const dependencyExist = existingDependencies[depField].find((d) =>\n d.id.isEqualWithoutVersion(componentData.componentId)\n );\n if (!dependencyExist) {\n this.overridesDependencies._addManuallyAddedDep(depField, componentData.componentId.toString());\n components[depField] ? components[depField].push(componentData) : (components[depField] = [componentData]);\n }\n return;\n }\n const addedPkg = this.overridesDependencies._manuallyAddPackage(\n depField,\n dependency,\n dependencyValue,\n packageJson\n );\n if (addedPkg) {\n packages[depField] = Object.assign(packages[depField] || {}, addedPkg);\n if (componentData && !componentData.packageName) {\n this.overridesDependencies.missingPackageDependencies.push(dependency);\n }\n }\n });\n });\n return { components, packages };\n }\n\n private manuallyAddDependencies() {\n const packageJson = this._getPackageJson();\n const dependencies = this.getDependenciesToAddManually(packageJson, this.allDependencies);\n if (!dependencies) return;\n const { components, packages } = dependencies;\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (components[depField] && components[depField].length) {\n components[depField].forEach((depData) =>\n this.allDependencies[depField].push(new Dependency(depData.componentId, [], depData.packageName))\n );\n }\n if (packages[depField] && !R.isEmpty(packages[depField])) {\n Object.assign(this.allPackagesDependencies[this._pkgFieldMapping(depField)], packages[depField]);\n }\n });\n // The automatic dependency detector considers all found dependencies to be runtime dependencies.\n // But this breaks proper installation of injected subdependencies that are resolved from workspace components.\n if (this.allPackagesDependencies.packageDependencies && packages.peerDependencies) {\n for (const peerName of Object.keys(packages.peerDependencies)) {\n delete this.allPackagesDependencies.packageDependencies[peerName];\n }\n }\n if (this.allPackagesDependencies.packageDependencies && packages.peerPackageDependencies) {\n for (const peerName of Object.keys(packages.peerPackageDependencies)) {\n delete this.allPackagesDependencies.packageDependencies[peerName];\n }\n }\n }\n\n /**\n * Remove the dependencies which appear both in dev and regular deps from the dev\n * Because if a dependency is both dev dependency and regular dependency it should be treated as regular one\n * Apply for both packages and components dependencies\n */\n private removeDevAndEnvDepsIfTheyAlsoRegulars() {\n // remove dev and env packages that are also regular packages\n const getNotRegularPackages = (packages) =>\n R.difference(R.keys(packages), R.keys(this.allPackagesDependencies.packageDependencies));\n this.allPackagesDependencies.devPackageDependencies = R.pick(\n getNotRegularPackages(this.allPackagesDependencies.devPackageDependencies),\n this.allPackagesDependencies.devPackageDependencies\n );\n // remove dev dependencies that are also regular dependencies\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const componentDepsIds = new ComponentIdList(...this.allDependencies.dependencies.map((c) => c.id));\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter(\n (d) => !componentDepsIds.has(d.id)\n );\n }\n\n private applyPeersFromComponentModel(): void {\n const getPeerDependencies = (): Record<string, any> => {\n const packageJson = this._getPackageJsonFromComponentModel();\n if (packageJson && packageJson.peerDependencies) return packageJson.peerDependencies;\n return {};\n };\n const projectPeerDependencies = getPeerDependencies();\n const peerPackages = {};\n if (R.isEmpty(projectPeerDependencies)) return;\n\n // check whether the peer-dependencies was actually require in the code. if so, remove it from\n // the packages/dev-packages and add it as a peer-package.\n // if it was not required in the code, don't add it to the peerPackages\n Object.keys(projectPeerDependencies).forEach((pkg) => {\n if (this.overridesDependencies.shouldIgnorePeerPackage(pkg)) return;\n ['packageDependencies', 'devPackageDependencies'].forEach((field) => {\n if (Object.keys(this.allPackagesDependencies[field]).includes(pkg)) {\n delete this.allPackagesDependencies[field][pkg];\n peerPackages[pkg] = projectPeerDependencies[pkg];\n }\n });\n });\n this.allPackagesDependencies.peerPackageDependencies = peerPackages;\n }\n\n private applyPackageJson(): void {\n const packageJson = this._getPackageJson();\n if (!packageJson) return;\n const pkgJsonPeer = packageJson.peerDependencies || {};\n const pkgJsonRegularDeps = packageJson.dependencies || {};\n const peerDeps = this.allPackagesDependencies.peerPackageDependencies || {};\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n R.forEachObjIndexed((_pkgVal, pkgName) => {\n const peerVersionFromPkgJson = pkgJsonPeer[pkgName];\n const regularVersionFromPkgJson = pkgJsonRegularDeps[pkgName];\n if (peerVersionFromPkgJson) {\n delete this.allPackagesDependencies[field][pkgName];\n peerDeps[pkgName] = peerVersionFromPkgJson;\n } else if (regularVersionFromPkgJson) {\n delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];\n this.allPackagesDependencies[field][pkgName] = regularVersionFromPkgJson;\n }\n }, this.allPackagesDependencies[field]);\n });\n this.allPackagesDependencies.peerPackageDependencies = peerDeps;\n }\n\n private applyWorkspacePolicy(): void {\n const wsPolicy = this.depsResolver.getWorkspacePolicyManifest();\n if (!wsPolicy) return;\n const wsPeer = wsPolicy.peerDependencies || {};\n const wsRegular = wsPolicy.dependencies || {};\n const peerDeps = this.allPackagesDependencies.peerPackageDependencies || {};\n // we are not iterate component deps since they are resolved from what actually installed\n // the policy used for installation only in that case\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n R.forEachObjIndexed((_pkgVal, pkgName) => {\n const peerVersionFromWsPolicy = wsPeer[pkgName];\n const regularVersionFromWsPolicy = wsRegular[pkgName];\n if (peerVersionFromWsPolicy) {\n delete this.allPackagesDependencies[field][pkgName];\n peerDeps[pkgName] = peerVersionFromWsPolicy;\n } else if (regularVersionFromWsPolicy) {\n delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];\n this.allPackagesDependencies[field][pkgName] = regularVersionFromWsPolicy;\n }\n }, this.allPackagesDependencies[field]);\n });\n this.allPackagesDependencies.peerPackageDependencies = peerDeps;\n }\n\n /**\n * It removes the @teambit/legacy dependency from the dependencies/devDeps and adds it as a peer dependency with ^.\n */\n private makeLegacyAsPeer(): void {\n let version;\n if (this.allPackagesDependencies.packageDependencies['@teambit/legacy']) {\n version = this.allPackagesDependencies.packageDependencies['@teambit/legacy'];\n delete this.allPackagesDependencies.packageDependencies['@teambit/legacy'];\n }\n if (this.allPackagesDependencies.devPackageDependencies['@teambit/legacy']) {\n if (!version) version = this.allPackagesDependencies.devPackageDependencies['@teambit/legacy'];\n delete this.allPackagesDependencies.devPackageDependencies['@teambit/legacy'];\n }\n if (version) {\n if (!Number.isNaN(version[0])) version = `^${version}`;\n this.allPackagesDependencies.peerPackageDependencies['@teambit/legacy'] = version;\n }\n }\n\n private async applyAutoDetectOverridesOnComponent(): Promise<void> {\n const autoDetectOverrides = this.autoDetectOverrides;\n\n if (!autoDetectOverrides || !Object.keys(autoDetectOverrides).length) {\n return;\n }\n\n const originallyExists: string[] = [];\n let missingPackages: string[] = [];\n // We want to also add missing packages to the peer list as we know to resolve the version from the env anyway\n const missingData = this.issues.getIssueByName('MissingPackagesDependenciesOnFs')?.data as\n | MissingPackagesData[]\n | undefined;\n if (missingData) {\n missingPackages = uniq(missingData.map((d) => d.missingPackages).flat());\n }\n ['dependencies', 'devDependencies', 'peerDependencies'].forEach((field) => {\n R.forEachObjIndexed((pkgVal, pkgName) => {\n if (this.overridesDependencies.shouldIgnorePeerPackage(pkgName)) return;\n // Validate it was auto detected, we only affect stuff that were detected\n const existsInCompsDeps = this.allDependencies.dependencies.find((dep) => {\n return dep.packageName === pkgName;\n });\n\n const existsInCompsDevDeps = this.allDependencies.devDependencies.find((dep) => {\n return dep.packageName === pkgName;\n });\n\n if (\n // We are checking originAllPackagesDependencies instead of allPackagesDependencies\n // as it might be already removed from allPackagesDependencies at this point if it was set with\n // \"-\" in runtime/dev\n // in such case we still want to apply it here\n !this.originAllPackagesDependencies.packageDependencies[pkgName] &&\n !this.originAllPackagesDependencies.devPackageDependencies[pkgName] &&\n !this.originAllPackagesDependencies.peerPackageDependencies[pkgName] &&\n !existsInCompsDeps &&\n !existsInCompsDevDeps &&\n // Check if it was orignally exists in the component\n // as we might have a policy which looks like this:\n // \"components\": {\n // \"dependencies\": {\n // \"my-dep\": \"-\"\n // },\n // \"devDependencies\": {\n // \"my-dep\": \"1.0.0\"\n // },\n // }\n // in that case we might remove it before getting to the devDeps then we will think that it wasn't required in the component\n // which is incorrect\n !originallyExists.includes(pkgName) &&\n !missingPackages.includes(pkgName)\n ) {\n return;\n }\n originallyExists.push(pkgName);\n const key = DepsKeysToAllPackagesDepsKeys[field];\n\n delete this.allPackagesDependencies[key][pkgName];\n // When changing peer dependency we want it to be stronger than the other types\n if (field === 'peerDependencies') {\n delete this.allPackagesDependencies.devPackageDependencies[pkgName];\n delete this.allPackagesDependencies.packageDependencies[pkgName];\n if (existsInCompsDeps) {\n this.allDependencies.dependencies = this.allDependencies.dependencies.filter(\n (dep) => dep.packageName !== pkgName\n );\n }\n if (existsInCompsDevDeps) {\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter(\n (dep) => dep.packageName !== pkgName\n );\n }\n }\n // delete this.allPackagesDependencies.packageDependencies[pkgName];\n // delete this.allPackagesDependencies.devPackageDependencies[pkgName];\n // delete this.allPackagesDependencies.peerPackageDependencies[pkgName];\n\n // If it exists in comps deps / comp dev deps, we don't want to add it to the allPackagesDependencies\n // as it will make the same dep both a dev and runtime dep\n // since we are here only for auto detected deps, it means we already resolved the version correctly\n // so we don't need to really modify the version\n // also the version here might have a range (^ or ~ for example) so we can't\n // just put it as is, as it is not valid for component deps to have range\n if (\n pkgVal !== MANUALLY_REMOVE_DEPENDENCY &&\n ((!existsInCompsDeps && !existsInCompsDevDeps) || field === 'peerDependencies')\n ) {\n this.allPackagesDependencies[key][pkgName] = pkgVal;\n }\n }, autoDetectOverrides[field]);\n });\n }\n\n private async applyAutoDetectedPeersFromEnvOnEnvItSelf(): Promise<void> {\n const envPolicy = await this.depsResolver.getEnvPolicyFromEnvLegacyId(this.component.id, this.component.files);\n if (!envPolicy) return;\n const envPolicyManifest = envPolicy.selfPolicy.toVersionManifest();\n\n if (!envPolicyManifest || !Object.keys(envPolicyManifest).length) {\n return;\n }\n const deps = this.allPackagesDependencies.packageDependencies || {};\n // we are not iterate component deps since they are resolved from what actually installed\n // the policy used for installation only in that case\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n R.forEachObjIndexed((_pkgVal, pkgName) => {\n const peerVersionFromEnvPolicy = envPolicyManifest[pkgName];\n if (peerVersionFromEnvPolicy) {\n delete this.allPackagesDependencies[field][pkgName];\n }\n }, this.allPackagesDependencies[field]);\n });\n Object.assign(deps, envPolicyManifest);\n // TODO: handle component deps once we support peers between components\n this.allPackagesDependencies.packageDependencies = deps;\n }\n\n /**\n * returns `package.json` of the component when it's imported, or `package.json` of the workspace\n * when it's authored.\n */\n private _getPackageJson(): Record<string, any> | undefined {\n return this.consumer?.packageJson.packageJsonObject;\n }\n\n private _getPackageJsonFromComponentModel(): Record<string, any> | undefined {\n if (this.componentFromModel && this.component.componentMap) {\n // a component is imported but the package.json file is missing or never written\n // read the values from the model\n const packageJson = PackageJsonFile.createFromComponent(\n this.component.componentMap.rootDir,\n this.componentFromModel\n );\n return packageJson.packageJsonObject;\n }\n return undefined;\n }\n\n private setLegacyInsideHarmonyIssue() {\n if (this.componentFromModel && this.componentFromModel.isLegacy) {\n this.issues.getOrCreate(IssuesClasses.LegacyInsideHarmony).data = true;\n }\n }\n\n private _pkgFieldMapping(field: string) {\n switch (field) {\n case 'dependencies':\n return 'packageDependencies';\n case 'devDependencies':\n return 'devPackageDependencies';\n case 'peerDependencies':\n return 'peerPackageDependencies';\n default:\n throw new Error(`${field} is not recognized`);\n }\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,MAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,aAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,YAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,iBAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,gBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,WAAA;EAAA,MAAAP,IAAA,GAAAE,OAAA;EAAAK,UAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAQ,iBAAA;EAAA,MAAAR,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAM,gBAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,UAAA;EAAA,MAAAT,IAAA,GAAAE,OAAA;EAAAO,SAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAU,cAAA;EAAA,MAAAV,IAAA,GAAAE,OAAA;EAAAQ,aAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA,SAAAW,uBAAA;EAAA,MAAAX,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAS,sBAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAY,kBAAA;EAAA,MAAAZ,IAAA,GAAAE,OAAA;EAAAU,iBAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAuD,SAAAC,uBAAAY,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,gBAAAH,GAAA,EAAAI,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAJ,GAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAR,GAAA,EAAAI,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAX,GAAA,CAAAI,GAAA,IAAAC,KAAA,WAAAL,GAAA;AAAA,SAAAM,eAAAM,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAF,CAAA,uCAAAC,CAAA,GAAAA,CAAA,GAAAE,MAAA,CAAAF,CAAA;AAAA,SAAAC,aAAAF,CAAA,EAAAI,CAAA,2BAAAJ,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAK,CAAA,GAAAL,CAAA,CAAAM,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAAJ,CAAA,GAAAI,CAAA,CAAAG,IAAA,CAAAR,CAAA,EAAAI,CAAA,uCAAAH,CAAA,SAAAA,CAAA,YAAAQ,SAAA,yEAAAL,CAAA,GAAAD,MAAA,GAAAO,MAAA,EAAAV,CAAA;AAcvD,MAAMW,6BAA6B,GAAG;EACpCC,YAAY,EAAE,qBAAqB;EACnCC,eAAe,EAAE,wBAAwB;EACzCC,gBAAgB,EAAE;AACpB,CAAC;AAEM,MAAMC,cAAc,CAAC;EAgB1BC,WAAWA,CACDC,SAAoB,EACpBC,YAAoC,EACpCC,SAAqB,EAC7B;IAAA,KAHQF,SAAoB,GAApBA,SAAoB;IAAA,KACpBC,YAAoC,GAApCA,YAAoC;IAAA,KACpCC,SAAqB,GAArBA,SAAqB;IAAA5B,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAd/B;AACF;AACA;AACA;IAHEA,eAAA;IAAAA,eAAA;IAAAA,eAAA,sBAMwB,EAAE;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAUxB,IAAI,CAAC6B,WAAW,GAAGH,SAAS,CAACG,WAAW;IACxC;IACA,IAAI,CAACC,kBAAkB,GAAG,IAAI,CAACJ,SAAS,CAACI,kBAAkB;IAC3D,IAAI,CAACC,eAAe,GAAG;MACrBV,YAAY,EAAE,EAAE;MAChBC,eAAe,EAAE;IACnB,CAAC;IACD,IAAI,CAACU,uBAAuB,GAAG;MAC7BC,mBAAmB,EAAE,CAAC,CAAC;MACvBC,sBAAsB,EAAE,CAAC,CAAC;MAC1BC,uBAAuB,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,CAACC,cAAc,GAAG,EAAE;IACxB,IAAI,CAACC,MAAM,GAAGX,SAAS,CAACW,MAAM;IAC9B,IAAI,CAACC,2BAA2B,CAAC,CAAC;IAClC,IAAI,CAACC,qBAAqB,GAAG,KAAIC,gCAAqB,EAACd,SAAS,CAAC;IACjE,IAAI,CAACe,qBAAqB,GAAG;MAAEC,UAAU,EAAE;IAAG,CAAC;EACjD;EAEA,IAAIC,QAAQA,CAAA,EAAyB;IAAA,IAAAC,eAAA;IACnC,QAAAA,eAAA,GAAO,IAAI,CAAChB,SAAS,cAAAgB,eAAA,uBAAdA,eAAA,CAAgBD,QAAQ;EACjC;EAEA,MAAME,mBAAmBA,CAAA,EAItB;IACD,MAAM,IAAI,CAACC,oBAAoB,CAAC,CAAC;IACjC,MAAMC,gBAAgB,GAAG,KAAIC,oCAAgB,EAC3C,IAAI,CAACjB,eAAe,EACpB,IAAI,CAACC,uBAAuB,EAC5B,IAAI,CAACK,MAAM,EACX,IAAI,CAACY,WACP,CAAC;IACD,OAAO;MACLF,gBAAgB;MAChBR,qBAAqB,EAAE,IAAI,CAACA,qBAAqB;MACjDW,mBAAmB,EAAE,IAAI,CAACA;IAC5B,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAcJ,oBAAoBA,CAAA,EAAG;IACnC,MAAM,IAAI,CAACK,uBAAuB,CAAC,CAAC;IACpC,IAAI,CAACC,kCAAkC,CAAC,CAAC;IACzC,IAAI,CAACC,4BAA4B,CAAC,CAAC;IACnC,IAAI,CAACC,gCAAgC,CAAC,CAAC;IACvC,IAAI,CAACC,qCAAqC,CAAC,CAAC;IAC5C,IAAI,CAACC,4BAA4B,CAAC,CAAC;IACnC,IAAI,CAACC,gBAAgB,CAAC,CAAC;IACvB,IAAI,CAACC,oBAAoB,CAAC,CAAC;IAC3B,IAAI,CAACC,gBAAgB,CAAC,CAAC;IACvB,MAAM,IAAI,CAACC,mCAAmC,CAAC,CAAC;IAChD,IAAI,CAACC,uBAAuB,CAAC,CAAC;IAC9B;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,IAAI,CAACC,wCAAwC,CAAC,CAAC;IACrD,IAAI,CAACb,WAAW,GAAGc,gBAAC,CAACC,IAAI,CAAC,IAAI,CAACf,WAAW,CAAC;EAC7C;EAEQG,kCAAkCA,CAAA,EAAG;IAC3C,MAAMa,gBAAgB,GAAGA,CAACC,GAAe,EAAEC,QAAkB,KAC3D,CAAC,IAAI,CAAC5B,qBAAqB,CAAC6B,mBAAmB,CAACF,GAAG,CAACG,WAAW,EAAYF,QAAQ,CAAC;IACtF,IAAI,CAACpC,eAAe,CAACV,YAAY,GAAG,IAAI,CAACU,eAAe,CAACV,YAAY,CAACiD,MAAM,CAAEJ,GAAG,IAC/ED,gBAAgB,CAACC,GAAG,EAAE;MAAEK,UAAU,EAAE;IAAM,CAAC,CAC7C,CAAC;IACD,IAAI,CAACxC,eAAe,CAACT,eAAe,GAAG,IAAI,CAACS,eAAe,CAACT,eAAe,CAACgD,MAAM,CAAEJ,GAAG,IACrFD,gBAAgB,CAACC,GAAG,EAAE;MAAEK,UAAU,EAAE;IAAK,CAAC,CAC5C,CAAC;IAED,MAAMC,YAAY,GAAG,IAAI,CAACnC,MAAM,CAACoC,cAAc,CAAC,iCAAiC,CAAC;IAClF,IAAI,CAACD,YAAY,EAAE;IACnB,MAAME,WAAW,GAAGF,YAAY,CAACxF,IAA6B;IAC9D0F,WAAW,CAACC,OAAO,CAAEC,CAAC,IAAK;MACzBA,CAAC,CAACC,eAAe,GAAGD,CAAC,CAACC,eAAe,CAACP,MAAM,CACzCQ,GAAG,IAAK,CAAC,IAAI,CAACvC,qBAAqB,CAAC6B,mBAAmB,CAACU,GAAG,EAAE;QAAEP,UAAU,EAAEK,CAAC,CAACG;MAAU,CAAC,CAC3F,CAAC;IACH,CAAC,CAAC;IACFP,YAAY,CAACxF,IAAI,GAAG0F,WAAW,CAACJ,MAAM,CAAEM,CAAC,IAAKA,CAAC,CAACC,eAAe,CAACG,MAAM,CAAC;IACvE,IAAI,CAACR,YAAY,CAACxF,IAAI,CAACgG,MAAM,EAAE,IAAI,CAAC3C,MAAM,CAAC4C,MAAM,CAACC,gCAAa,CAACC,+BAA+B,CAAC;EAClG;EAEA,MAAchC,uBAAuBA,CAAA,EAAG;IAAA,IAAAiC,gBAAA;IACtC,IAAI,CAAClC,mBAAmB,GAAG,QAAAkC,gBAAA,GAAM,IAAI,CAACxD,SAAS,cAAAwD,gBAAA,uBAAdA,gBAAA,CAAgBC,sBAAsB,CACrE,IAAI,CAAC3D,SAAS,CAAC4D,UAAU,EACzB,IAAI,CAAC5D,SAAS,CAAC6D,EAAE,EACjB,IAAI,CAAC7D,SAAS,CAAC8D,KACjB,CAAC;EACH;EAEQnC,4BAA4BA,CAAA,EAAG;IACrC,IAAI,CAACoC,6BAA6B,GAAG,IAAAC,mBAAS,EAAC,IAAI,CAAC1D,uBAAuB,CAAC;EAC9E;EAEQsB,gCAAgCA,CAAA,EAAG;IACzC,MAAMW,gBAAgB,GAAGA,CAAC0B,UAAU,EAAEC,OAAO,KAC3C,CAAC,IAAI,CAACrD,qBAAqB,CAACsD,yBAAyB,CAACD,OAAO,EAAE,cAAc,CAAC;IAChF,MAAME,mBAAmB,GAAGA,CAACH,UAAU,EAAEC,OAAO,KAC9C,CAAC,IAAI,CAACrD,qBAAqB,CAACsD,yBAAyB,CAACD,OAAO,EAAE,iBAAiB,CAAC;IAEnF,IAAI,CAAC5D,uBAAuB,CAACC,mBAAmB,GAAG8B,gBAAC,CAACgC,MAAM,CACzD9B,gBAAgB,EAChB,IAAI,CAACjC,uBAAuB,CAACC,mBAC/B,CAAC;IACD,IAAI,CAACD,uBAAuB,CAACE,sBAAsB,GAAG6B,gBAAC,CAACgC,MAAM,CAC5DD,mBAAmB,EACnB,IAAI,CAAC9D,uBAAuB,CAACE,sBAC/B,CAAC;EACH;;EAEA;EACQ8D,mBAAmBA,CAAC3B,WAAmB,EAAmC;IAChF,MAAM1B,QAAQ,GAAG,IAAI,CAACA,QAAQ;IAC9B,IAAI,CAACA,QAAQ,EAAE,OAAOsD,SAAS;IAC/B;IACA,MAAMC,YAAY,GAAG,IAAI,CAACxE,SAAS,CAACwE,YAA4B;IAChE,MAAMC,OAAqC,GAAGD,YAAY,CAACC,OAAiB;IAC5E,MAAMC,YAAY,GAAGzD,QAAQ,CAAC0D,OAAO,CAAC,CAAC;IACvC,MAAMC,QAAQ,GAAGH,OAAO,GAAGI,eAAI,CAACC,IAAI,CAACJ,YAAY,EAAED,OAAO,CAAC,GAAGC,YAAY;IAC1E,MAAMK,UAAU,GAAG,IAAAC,8BAAkB,EAACrC,WAAW,EAAEiC,QAAQ,EAAEF,YAAY,CAAC;IAC1E,IAAI,CAACK,UAAU,EAAE,OAAOR,SAAS,CAAC,CAAC;IACnC,MAAMU,aAAa,GAAG,IAAAC,8BAAkB,EAACN,QAAQ,EAAEG,UAAU,CAAC;IAC9D,OAAOE,aAAa;EACtB;EAEQE,oBAAoBA,CAC1BC,KAAa,EACbC,UAAkB,EAC+C;IACjE,IAAID,KAAK,KAAK,kBAAkB,EAAE,OAAOb,SAAS;IAClD,MAAMe,WAAW,GAAG,IAAI,CAAChB,mBAAmB,CAACe,UAAU,CAAC;IACxD,OAAO;MAAElF,WAAW,EAAEmF,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEnF,WAAW;MAAEwC,WAAW,EAAE2C,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEC;IAAK,CAAC;EAClF;EAEAC,4BAA4BA,CAC1BC,WAAmD,EACnDC,oBAAqC,EAC2C;IAChF,MAAMC,SAAS,GAAG,IAAI,CAAC9E,qBAAqB,CAAC2E,4BAA4B,CAAC,CAAC;IAC3E,IAAI,CAACG,SAAS,EAAE,OAAOpB,SAAS;IAChC,MAAMvD,UAAU,GAAG,CAAC,CAAC;IACrB,MAAM4E,QAAQ,GAAG,CAAC,CAAC;IACnBC,gCAAmB,CAAC5C,OAAO,CAAE6C,QAAQ,IAAK;MACxC,IAAI,CAACH,SAAS,CAACG,QAAQ,CAAC,EAAE;MAC1BpH,MAAM,CAACqH,IAAI,CAACJ,SAAS,CAACG,QAAQ,CAAC,CAAC,CAAC7C,OAAO,CAAEoC,UAAU,IAAK;QACvD,MAAMW,eAAe,GAAGL,SAAS,CAACG,QAAQ,CAAC,CAACT,UAAU,CAAC;QACvD,MAAMY,aAAa,GAAG,IAAI,CAACd,oBAAoB,CAACW,QAAQ,EAAET,UAAU,CAAC;QACrE,IAAIY,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAE9F,WAAW,EAAE;UAC9B,MAAM+F,eAAe,GAAGR,oBAAoB,CAACI,QAAQ,CAAC,CAACK,IAAI,CAAEC,CAAC,IAC5DA,CAAC,CAACvC,EAAE,CAACwC,qBAAqB,CAACJ,aAAa,CAAC9F,WAAW,CACtD,CAAC;UACD,IAAI,CAAC+F,eAAe,EAAE;YACpB,IAAI,CAACrF,qBAAqB,CAACyF,oBAAoB,CAACR,QAAQ,EAAEG,aAAa,CAAC9F,WAAW,CAACoG,QAAQ,CAAC,CAAC,CAAC;YAC/FvF,UAAU,CAAC8E,QAAQ,CAAC,GAAG9E,UAAU,CAAC8E,QAAQ,CAAC,CAACU,IAAI,CAACP,aAAa,CAAC,GAAIjF,UAAU,CAAC8E,QAAQ,CAAC,GAAG,CAACG,aAAa,CAAE;UAC5G;UACA;QACF;QACA,MAAMQ,QAAQ,GAAG,IAAI,CAAC5F,qBAAqB,CAAC6F,mBAAmB,CAC7DZ,QAAQ,EACRT,UAAU,EACVW,eAAe,EACfP,WACF,CAAC;QACD,IAAIgB,QAAQ,EAAE;UACZb,QAAQ,CAACE,QAAQ,CAAC,GAAGpH,MAAM,CAACiI,MAAM,CAACf,QAAQ,CAACE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAEW,QAAQ,CAAC;UACtE,IAAIR,aAAa,IAAI,CAACA,aAAa,CAACtD,WAAW,EAAE;YAC/C,IAAI,CAAC9B,qBAAqB,CAAC+F,0BAA0B,CAACJ,IAAI,CAACnB,UAAU,CAAC;UACxE;QACF;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,OAAO;MAAErE,UAAU;MAAE4E;IAAS,CAAC;EACjC;EAEQzD,uBAAuBA,CAAA,EAAG;IAChC,MAAMsD,WAAW,GAAG,IAAI,CAACoB,eAAe,CAAC,CAAC;IAC1C,MAAMlH,YAAY,GAAG,IAAI,CAAC6F,4BAA4B,CAACC,WAAW,EAAE,IAAI,CAACpF,eAAe,CAAC;IACzF,IAAI,CAACV,YAAY,EAAE;IACnB,MAAM;MAAEqB,UAAU;MAAE4E;IAAS,CAAC,GAAGjG,YAAY;IAC7CkG,gCAAmB,CAAC5C,OAAO,CAAE6C,QAAQ,IAAK;MACxC,IAAI9E,UAAU,CAAC8E,QAAQ,CAAC,IAAI9E,UAAU,CAAC8E,QAAQ,CAAC,CAACxC,MAAM,EAAE;QACvDtC,UAAU,CAAC8E,QAAQ,CAAC,CAAC7C,OAAO,CAAE6D,OAAO,IACnC,IAAI,CAACzG,eAAe,CAACyF,QAAQ,CAAC,CAACU,IAAI,CAAC,KAAIO,0BAAU,EAACD,OAAO,CAAC3G,WAAW,EAAE,EAAE,EAAE2G,OAAO,CAACnE,WAAW,CAAC,CAClG,CAAC;MACH;MACA,IAAIiD,QAAQ,CAACE,QAAQ,CAAC,IAAI,CAACzD,gBAAC,CAAC2E,OAAO,CAACpB,QAAQ,CAACE,QAAQ,CAAC,CAAC,EAAE;QACxDpH,MAAM,CAACiI,MAAM,CAAC,IAAI,CAACrG,uBAAuB,CAAC,IAAI,CAAC2G,gBAAgB,CAACnB,QAAQ,CAAC,CAAC,EAAEF,QAAQ,CAACE,QAAQ,CAAC,CAAC;MAClG;IACF,CAAC,CAAC;IACF;IACA;IACA,IAAI,IAAI,CAACxF,uBAAuB,CAACC,mBAAmB,IAAIqF,QAAQ,CAAC/F,gBAAgB,EAAE;MACjF,KAAK,MAAMqH,QAAQ,IAAIxI,MAAM,CAACqH,IAAI,CAACH,QAAQ,CAAC/F,gBAAgB,CAAC,EAAE;QAC7D,OAAO,IAAI,CAACS,uBAAuB,CAACC,mBAAmB,CAAC2G,QAAQ,CAAC;MACnE;IACF;IACA,IAAI,IAAI,CAAC5G,uBAAuB,CAACC,mBAAmB,IAAIqF,QAAQ,CAACnF,uBAAuB,EAAE;MACxF,KAAK,MAAMyG,QAAQ,IAAIxI,MAAM,CAACqH,IAAI,CAACH,QAAQ,CAACnF,uBAAuB,CAAC,EAAE;QACpE,OAAO,IAAI,CAACH,uBAAuB,CAACC,mBAAmB,CAAC2G,QAAQ,CAAC;MACnE;IACF;EACF;;EAEA;AACF;AACA;AACA;AACA;EACUrF,qCAAqCA,CAAA,EAAG;IAC9C;IACA,MAAMsF,qBAAqB,GAAIvB,QAAQ,IACrCvD,gBAAC,CAAC+E,UAAU,CAAC/E,gBAAC,CAAC0D,IAAI,CAACH,QAAQ,CAAC,EAAEvD,gBAAC,CAAC0D,IAAI,CAAC,IAAI,CAACzF,uBAAuB,CAACC,mBAAmB,CAAC,CAAC;IAC1F,IAAI,CAACD,uBAAuB,CAACE,sBAAsB,GAAG6B,gBAAC,CAACgF,IAAI,CAC1DF,qBAAqB,CAAC,IAAI,CAAC7G,uBAAuB,CAACE,sBAAsB,CAAC,EAC1E,IAAI,CAACF,uBAAuB,CAACE,sBAC/B,CAAC;IACD;IACA;IACA,MAAM8G,gBAAgB,GAAG,KAAIC,8BAAe,EAAC,GAAG,IAAI,CAAClH,eAAe,CAACV,YAAY,CAAC6H,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAAC5D,EAAE,CAAC,CAAC;IACnG,IAAI,CAACxD,eAAe,CAACT,eAAe,GAAG,IAAI,CAACS,eAAe,CAACT,eAAe,CAACgD,MAAM,CAC/EwD,CAAC,IAAK,CAACkB,gBAAgB,CAACI,GAAG,CAACtB,CAAC,CAACvC,EAAE,CACnC,CAAC;EACH;EAEQ/B,4BAA4BA,CAAA,EAAS;IAC3C,MAAM6F,mBAAmB,GAAGA,CAAA,KAA2B;MACrD,MAAMlC,WAAW,GAAG,IAAI,CAACmC,iCAAiC,CAAC,CAAC;MAC5D,IAAInC,WAAW,IAAIA,WAAW,CAAC5F,gBAAgB,EAAE,OAAO4F,WAAW,CAAC5F,gBAAgB;MACpF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAMgI,uBAAuB,GAAGF,mBAAmB,CAAC,CAAC;IACrD,MAAMG,YAAY,GAAG,CAAC,CAAC;IACvB,IAAIzF,gBAAC,CAAC2E,OAAO,CAACa,uBAAuB,CAAC,EAAE;;IAExC;IACA;IACA;IACAnJ,MAAM,CAACqH,IAAI,CAAC8B,uBAAuB,CAAC,CAAC5E,OAAO,CAAEG,GAAG,IAAK;MACpD,IAAI,IAAI,CAACvC,qBAAqB,CAACkH,uBAAuB,CAAC3E,GAAG,CAAC,EAAE;MAC7D,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,CAACH,OAAO,CAAEmC,KAAK,IAAK;QACnE,IAAI1G,MAAM,CAACqH,IAAI,CAAC,IAAI,CAACzF,uBAAuB,CAAC8E,KAAK,CAAC,CAAC,CAAC4C,QAAQ,CAAC5E,GAAG,CAAC,EAAE;UAClE,OAAO,IAAI,CAAC9C,uBAAuB,CAAC8E,KAAK,CAAC,CAAChC,GAAG,CAAC;UAC/C0E,YAAY,CAAC1E,GAAG,CAAC,GAAGyE,uBAAuB,CAACzE,GAAG,CAAC;QAClD;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,IAAI,CAAC9C,uBAAuB,CAACG,uBAAuB,GAAGqH,YAAY;EACrE;EAEQ/F,gBAAgBA,CAAA,EAAS;IAC/B,MAAM0D,WAAW,GAAG,IAAI,CAACoB,eAAe,CAAC,CAAC;IAC1C,IAAI,CAACpB,WAAW,EAAE;IAClB,MAAMwC,WAAW,GAAGxC,WAAW,CAAC5F,gBAAgB,IAAI,CAAC,CAAC;IACtD,MAAMqI,kBAAkB,GAAGzC,WAAW,CAAC9F,YAAY,IAAI,CAAC,CAAC;IACzD,MAAMwI,QAAQ,GAAG,IAAI,CAAC7H,uBAAuB,CAACG,uBAAuB,IAAI,CAAC,CAAC;IAC3E,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,yBAAyB,CAAC,CAACwC,OAAO,CAAEmC,KAAK,IAAK;MAC9F/C,gBAAC,CAAC+F,iBAAiB,CAAC,CAACC,OAAO,EAAEnE,OAAO,KAAK;QACxC,MAAMoE,sBAAsB,GAAGL,WAAW,CAAC/D,OAAO,CAAC;QACnD,MAAMqE,yBAAyB,GAAGL,kBAAkB,CAAChE,OAAO,CAAC;QAC7D,IAAIoE,sBAAsB,EAAE;UAC1B,OAAO,IAAI,CAAChI,uBAAuB,CAAC8E,KAAK,CAAC,CAAClB,OAAO,CAAC;UACnDiE,QAAQ,CAACjE,OAAO,CAAC,GAAGoE,sBAAsB;QAC5C,CAAC,MAAM,IAAIC,yBAAyB,EAAE;UAAA,IAAAC,qBAAA;UACpC,CAAAA,qBAAA,GAAO,IAAI,CAAClI,uBAAuB,CAACG,uBAAuB,cAAA+H,qBAAA,eAA3D,OAAOA,qBAAA,CAAuDtE,OAAO,CAAC;UACtE,IAAI,CAAC5D,uBAAuB,CAAC8E,KAAK,CAAC,CAAClB,OAAO,CAAC,GAAGqE,yBAAyB;QAC1E;MACF,CAAC,EAAE,IAAI,CAACjI,uBAAuB,CAAC8E,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC;IACF,IAAI,CAAC9E,uBAAuB,CAACG,uBAAuB,GAAG0H,QAAQ;EACjE;EAEQnG,oBAAoBA,CAAA,EAAS;IACnC,MAAMyG,QAAQ,GAAG,IAAI,CAACxI,YAAY,CAACyI,0BAA0B,CAAC,CAAC;IAC/D,IAAI,CAACD,QAAQ,EAAE;IACf,MAAME,MAAM,GAAGF,QAAQ,CAAC5I,gBAAgB,IAAI,CAAC,CAAC;IAC9C,MAAM+I,SAAS,GAAGH,QAAQ,CAAC9I,YAAY,IAAI,CAAC,CAAC;IAC7C,MAAMwI,QAAQ,GAAG,IAAI,CAAC7H,uBAAuB,CAACG,uBAAuB,IAAI,CAAC,CAAC;IAC3E;IACA;IACA,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,yBAAyB,CAAC,CAACwC,OAAO,CAAEmC,KAAK,IAAK;MAC9F/C,gBAAC,CAAC+F,iBAAiB,CAAC,CAACC,OAAO,EAAEnE,OAAO,KAAK;QACxC,MAAM2E,uBAAuB,GAAGF,MAAM,CAACzE,OAAO,CAAC;QAC/C,MAAM4E,0BAA0B,GAAGF,SAAS,CAAC1E,OAAO,CAAC;QACrD,IAAI2E,uBAAuB,EAAE;UAC3B,OAAO,IAAI,CAACvI,uBAAuB,CAAC8E,KAAK,CAAC,CAAClB,OAAO,CAAC;UACnDiE,QAAQ,CAACjE,OAAO,CAAC,GAAG2E,uBAAuB;QAC7C,CAAC,MAAM,IAAIC,0BAA0B,EAAE;UAAA,IAAAC,sBAAA;UACrC,CAAAA,sBAAA,GAAO,IAAI,CAACzI,uBAAuB,CAACG,uBAAuB,cAAAsI,sBAAA,eAA3D,OAAOA,sBAAA,CAAuD7E,OAAO,CAAC;UACtE,IAAI,CAAC5D,uBAAuB,CAAC8E,KAAK,CAAC,CAAClB,OAAO,CAAC,GAAG4E,0BAA0B;QAC3E;MACF,CAAC,EAAE,IAAI,CAACxI,uBAAuB,CAAC8E,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC;IACF,IAAI,CAAC9E,uBAAuB,CAACG,uBAAuB,GAAG0H,QAAQ;EACjE;;EAEA;AACF;AACA;EACUlG,gBAAgBA,CAAA,EAAS;IAC/B,IAAI+G,OAAO;IACX,IAAI,IAAI,CAAC1I,uBAAuB,CAACC,mBAAmB,CAAC,iBAAiB,CAAC,EAAE;MACvEyI,OAAO,GAAG,IAAI,CAAC1I,uBAAuB,CAACC,mBAAmB,CAAC,iBAAiB,CAAC;MAC7E,OAAO,IAAI,CAACD,uBAAuB,CAACC,mBAAmB,CAAC,iBAAiB,CAAC;IAC5E;IACA,IAAI,IAAI,CAACD,uBAAuB,CAACE,sBAAsB,CAAC,iBAAiB,CAAC,EAAE;MAC1E,IAAI,CAACwI,OAAO,EAAEA,OAAO,GAAG,IAAI,CAAC1I,uBAAuB,CAACE,sBAAsB,CAAC,iBAAiB,CAAC;MAC9F,OAAO,IAAI,CAACF,uBAAuB,CAACE,sBAAsB,CAAC,iBAAiB,CAAC;IAC/E;IACA,IAAIwI,OAAO,EAAE;MACX,IAAI,CAACvJ,MAAM,CAACwJ,KAAK,CAACD,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,OAAO,GAAI,IAAGA,OAAQ,EAAC;MACtD,IAAI,CAAC1I,uBAAuB,CAACG,uBAAuB,CAAC,iBAAiB,CAAC,GAAGuI,OAAO;IACnF;EACF;EAEA,MAAc9G,mCAAmCA,CAAA,EAAkB;IAAA,IAAAgH,qBAAA;IACjE,MAAM1H,mBAAmB,GAAG,IAAI,CAACA,mBAAmB;IAEpD,IAAI,CAACA,mBAAmB,IAAI,CAAC9C,MAAM,CAACqH,IAAI,CAACvE,mBAAmB,CAAC,CAAC8B,MAAM,EAAE;MACpE;IACF;IAEA,MAAM6F,gBAA0B,GAAG,EAAE;IACrC,IAAIhG,eAAyB,GAAG,EAAE;IAClC;IACA,MAAMH,WAAW,IAAAkG,qBAAA,GAAG,IAAI,CAACvI,MAAM,CAACoC,cAAc,CAAC,iCAAiC,CAAC,cAAAmG,qBAAA,uBAA7DA,qBAAA,CAA+D5L,IAEtE;IACb,IAAI0F,WAAW,EAAE;MACfG,eAAe,GAAG,IAAAb,cAAI,EAACU,WAAW,CAACwE,GAAG,CAAEpB,CAAC,IAAKA,CAAC,CAACjD,eAAe,CAAC,CAACiG,IAAI,CAAC,CAAC,CAAC;IAC1E;IACA,CAAC,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAACnG,OAAO,CAAEmC,KAAK,IAAK;MACzE/C,gBAAC,CAAC+F,iBAAiB,CAAC,CAACiB,MAAM,EAAEnF,OAAO,KAAK;QACvC,IAAI,IAAI,CAACrD,qBAAqB,CAACkH,uBAAuB,CAAC7D,OAAO,CAAC,EAAE;QACjE;QACA,MAAMoF,iBAAiB,GAAG,IAAI,CAACjJ,eAAe,CAACV,YAAY,CAACwG,IAAI,CAAE3D,GAAG,IAAK;UACxE,OAAOA,GAAG,CAACG,WAAW,KAAKuB,OAAO;QACpC,CAAC,CAAC;QAEF,MAAMqF,oBAAoB,GAAG,IAAI,CAAClJ,eAAe,CAACT,eAAe,CAACuG,IAAI,CAAE3D,GAAG,IAAK;UAC9E,OAAOA,GAAG,CAACG,WAAW,KAAKuB,OAAO;QACpC,CAAC,CAAC;QAEF;QACE;QACA;QACA;QACA;QACA,CAAC,IAAI,CAACH,6BAA6B,CAACxD,mBAAmB,CAAC2D,OAAO,CAAC,IAChE,CAAC,IAAI,CAACH,6BAA6B,CAACvD,sBAAsB,CAAC0D,OAAO,CAAC,IACnE,CAAC,IAAI,CAACH,6BAA6B,CAACtD,uBAAuB,CAACyD,OAAO,CAAC,IACpE,CAACoF,iBAAiB,IAClB,CAACC,oBAAoB;QACrB;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,CAACJ,gBAAgB,CAACnB,QAAQ,CAAC9D,OAAO,CAAC,IACnC,CAACf,eAAe,CAAC6E,QAAQ,CAAC9D,OAAO,CAAC,EAClC;UACA;QACF;QACAiF,gBAAgB,CAAC3C,IAAI,CAACtC,OAAO,CAAC;QAC9B,MAAM3F,GAAG,GAAGmB,6BAA6B,CAAC0F,KAAK,CAAC;QAEhD,OAAO,IAAI,CAAC9E,uBAAuB,CAAC/B,GAAG,CAAC,CAAC2F,OAAO,CAAC;QACjD;QACA,IAAIkB,KAAK,KAAK,kBAAkB,EAAE;UAChC,OAAO,IAAI,CAAC9E,uBAAuB,CAACE,sBAAsB,CAAC0D,OAAO,CAAC;UACnE,OAAO,IAAI,CAAC5D,uBAAuB,CAACC,mBAAmB,CAAC2D,OAAO,CAAC;UAChE,IAAIoF,iBAAiB,EAAE;YACrB,IAAI,CAACjJ,eAAe,CAACV,YAAY,GAAG,IAAI,CAACU,eAAe,CAACV,YAAY,CAACiD,MAAM,CACzEJ,GAAG,IAAKA,GAAG,CAACG,WAAW,KAAKuB,OAC/B,CAAC;UACH;UACA,IAAIqF,oBAAoB,EAAE;YACxB,IAAI,CAAClJ,eAAe,CAACT,eAAe,GAAG,IAAI,CAACS,eAAe,CAACT,eAAe,CAACgD,MAAM,CAC/EJ,GAAG,IAAKA,GAAG,CAACG,WAAW,KAAKuB,OAC/B,CAAC;UACH;QACF;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA,IACEmF,MAAM,KAAKG,uCAA0B,KACnC,CAACF,iBAAiB,IAAI,CAACC,oBAAoB,IAAKnE,KAAK,KAAK,kBAAkB,CAAC,EAC/E;UACA,IAAI,CAAC9E,uBAAuB,CAAC/B,GAAG,CAAC,CAAC2F,OAAO,CAAC,GAAGmF,MAAM;QACrD;MACF,CAAC,EAAE7H,mBAAmB,CAAC4D,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC;EACJ;EAEA,MAAchD,wCAAwCA,CAAA,EAAkB;IACtE,MAAMqH,SAAS,GAAG,MAAM,IAAI,CAACxJ,YAAY,CAACyJ,2BAA2B,CAAC,IAAI,CAAC1J,SAAS,CAAC6D,EAAE,EAAE,IAAI,CAAC7D,SAAS,CAAC8D,KAAK,CAAC;IAC9G,IAAI,CAAC2F,SAAS,EAAE;IAChB,MAAME,iBAAiB,GAAGF,SAAS,CAACG,UAAU,CAACC,iBAAiB,CAAC,CAAC;IAElE,IAAI,CAACF,iBAAiB,IAAI,CAACjL,MAAM,CAACqH,IAAI,CAAC4D,iBAAiB,CAAC,CAACrG,MAAM,EAAE;MAChE;IACF;IACA,MAAMwG,IAAI,GAAG,IAAI,CAACxJ,uBAAuB,CAACC,mBAAmB,IAAI,CAAC,CAAC;IACnE;IACA;IACA,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,yBAAyB,CAAC,CAAC0C,OAAO,CAAEmC,KAAK,IAAK;MAC9F/C,gBAAC,CAAC+F,iBAAiB,CAAC,CAACC,OAAO,EAAEnE,OAAO,KAAK;QACxC,MAAM6F,wBAAwB,GAAGJ,iBAAiB,CAACzF,OAAO,CAAC;QAC3D,IAAI6F,wBAAwB,EAAE;UAC5B,OAAO,IAAI,CAACzJ,uBAAuB,CAAC8E,KAAK,CAAC,CAAClB,OAAO,CAAC;QACrD;MACF,CAAC,EAAE,IAAI,CAAC5D,uBAAuB,CAAC8E,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC;IACF1G,MAAM,CAACiI,MAAM,CAACmD,IAAI,EAAEH,iBAAiB,CAAC;IACtC;IACA,IAAI,CAACrJ,uBAAuB,CAACC,mBAAmB,GAAGuJ,IAAI;EACzD;;EAEA;AACF;AACA;AACA;EACUjD,eAAeA,CAAA,EAAoC;IAAA,IAAAmD,cAAA;IACzD,QAAAA,cAAA,GAAO,IAAI,CAAC/I,QAAQ,cAAA+I,cAAA,uBAAbA,cAAA,CAAevE,WAAW,CAACwE,iBAAiB;EACrD;EAEQrC,iCAAiCA,CAAA,EAAoC;IAC3E,IAAI,IAAI,CAACxH,kBAAkB,IAAI,IAAI,CAACJ,SAAS,CAACwE,YAAY,EAAE;MAC1D;MACA;MACA,MAAMiB,WAAW,GAAGyE,0BAAe,CAACC,mBAAmB,CACrD,IAAI,CAACnK,SAAS,CAACwE,YAAY,CAACC,OAAO,EACnC,IAAI,CAACrE,kBACP,CAAC;MACD,OAAOqF,WAAW,CAACwE,iBAAiB;IACtC;IACA,OAAO1F,SAAS;EAClB;EAEQ3D,2BAA2BA,CAAA,EAAG;IACpC,IAAI,IAAI,CAACR,kBAAkB,IAAI,IAAI,CAACA,kBAAkB,CAACgK,QAAQ,EAAE;MAC/D,IAAI,CAACzJ,MAAM,CAAC0J,WAAW,CAAC7G,gCAAa,CAAC8G,mBAAmB,CAAC,CAAChN,IAAI,GAAG,IAAI;IACxE;EACF;EAEQ2J,gBAAgBA,CAAC7B,KAAa,EAAE;IACtC,QAAQA,KAAK;MACX,KAAK,cAAc;QACjB,OAAO,qBAAqB;MAC9B,KAAK,iBAAiB;QACpB,OAAO,wBAAwB;MACjC,KAAK,kBAAkB;QACrB,OAAO,yBAAyB;MAClC;QACE,MAAM,IAAImF,KAAK,CAAE,GAAEnF,KAAM,oBAAmB,CAAC;IACjD;EACF;AACF;AAACoF,OAAA,CAAA1K,cAAA,GAAAA,cAAA"}
1
+ {"version":3,"names":["_ramda","data","_interopRequireDefault","require","_path","_componentId","_lodash","_componentIssues","_constants","_packageJsonFile","_packages","_dependencies","_overridesDependencies","_dependenciesData","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","DepsKeysToAllPackagesDepsKeys","dependencies","devDependencies","peerDependencies","ApplyOverrides","constructor","component","depsResolver","workspace","componentId","componentFromModel","allDependencies","allPackagesDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","processedFiles","issues","setLegacyInsideHarmonyIssue","overridesDependencies","OverridesDependencies","debugDependenciesData","components","consumer","getDependenciesData","populateDependencies","dependenciesData","DependenciesData","coreAspects","autoDetectOverrides","loadAutoDetectOverrides","removeIgnoredComponentsByOverrides","cloneAllPackagesDependencies","removeIgnoredPackagesByOverrides","removeDevAndEnvDepsIfTheyAlsoRegulars","applyPeersFromComponentModel","applyPackageJson","applyWorkspacePolicy","makeLegacyAsPeer","applyAutoDetectOverridesOnComponent","manuallyAddDependencies","applyAutoDetectedPeersFromEnvOnEnvItSelf","R","uniq","shouldBeIncluded","dep","fileType","shouldIgnorePackage","packageName","filter","isTestFile","missingIssue","getIssueByName","missingData","forEach","m","missingPackages","pkg","isDevFile","length","delete","IssuesClasses","MissingPackagesDependenciesOnFs","getAutoDetectOverrides","extensions","id","files","originAllPackagesDependencies","cloneDeep","pkgVersion","pkgName","shouldIgnorePackageByType","shouldBeIncludedDev","pickBy","_resolvePackageData","undefined","componentMap","rootDir","consumerPath","getPath","basePath","path","join","modulePath","resolvePackagePath","packageObject","resolvePackageData","_getComponentIdToAdd","field","dependency","packageData","name","getDependenciesToAddManually","packageJson","existingDependencies","overrides","packages","DEPENDENCIES_FIELDS","depField","keys","dependencyValue","componentData","dependencyExist","find","d","isEqualWithoutVersion","_addManuallyAddedDep","toString","push","addedPkg","_manuallyAddPackage","assign","missingPackageDependencies","_getPackageJson","depData","Dependency","isEmpty","_pkgFieldMapping","peerName","getNotRegularPackages","difference","pick","componentDepsIds","ComponentIdList","map","c","has","getPeerDependencies","_getPackageJsonFromComponentModel","projectPeerDependencies","peerPackages","shouldIgnorePeerPackage","includes","pkgJsonPeer","pkgJsonRegularDeps","peerDeps","forEachObjIndexed","_pkgVal","peerVersionFromPkgJson","regularVersionFromPkgJson","wsPolicy","getWorkspacePolicyManifest","wsPeer","wsRegular","peerVersionFromWsPolicy","regularVersionFromWsPolicy","version","isNaN","originallyExists","flat","pkgVal","existsInCompsDeps","existsInCompsDevDeps","MANUALLY_REMOVE_DEPENDENCY","envPolicy","getEnvPolicyFromEnvLegacyId","envPolicyManifest","selfPolicy","toVersionManifest","deps","peerVersionFromEnvPolicy","packageJsonObject","PackageJsonFile","createFromComponent","isLegacy","getOrCreate","LegacyInsideHarmony","Error","exports"],"sources":["apply-overrides.ts"],"sourcesContent":["import R from 'ramda';\nimport path from 'path';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { cloneDeep, uniq } from 'lodash';\nimport { IssuesList, IssuesClasses, MissingPackagesData } from '@teambit/component-issues';\nimport { DEPENDENCIES_FIELDS, MANUALLY_REMOVE_DEPENDENCY } from '@teambit/legacy/dist/constants';\nimport Component from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport PackageJsonFile from '@teambit/legacy/dist/consumer/component/package-json-file';\nimport { ResolvedPackageData, resolvePackageData, resolvePackagePath } from '@teambit/legacy/dist/utils/packages';\nimport { PathLinux } from '@teambit/legacy/dist/utils/path';\nimport { Workspace } from '@teambit/workspace';\nimport { Dependency } from '@teambit/legacy/dist/consumer/component/dependencies';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport Consumer from '@teambit/legacy/dist/consumer/consumer';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport OverridesDependencies from './overrides-dependencies';\nimport { DependenciesData } from './dependencies-data';\nimport { DebugDependencies, FileType } from './auto-detect-deps';\n\nexport type AllDependencies = {\n dependencies: Dependency[];\n devDependencies: Dependency[];\n};\n\nexport type AllPackagesDependencies = {\n packageDependencies: Record<string, string>;\n devPackageDependencies: Record<string, string>;\n peerPackageDependencies: Record<string, string>;\n};\n\nconst DepsKeysToAllPackagesDepsKeys = {\n dependencies: 'packageDependencies',\n devDependencies: 'devPackageDependencies',\n peerDependencies: 'peerPackageDependencies',\n};\n\nexport class ApplyOverrides {\n componentId: ComponentID;\n componentFromModel: Component;\n allDependencies: AllDependencies;\n allPackagesDependencies: AllPackagesDependencies;\n /**\n * This will store a copy of the package deps before removal\n * in order to apply auto detected rules that are running after the removal\n */\n originAllPackagesDependencies: AllPackagesDependencies;\n issues: IssuesList;\n coreAspects: string[] = [];\n processedFiles: string[];\n overridesDependencies: OverridesDependencies;\n debugDependenciesData: DebugDependencies;\n autoDetectOverrides: Record<string, any> | undefined;\n constructor(\n private component: Component,\n private depsResolver: DependencyResolverMain,\n private workspace?: Workspace\n ) {\n this.componentId = component.componentId;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.componentFromModel = this.component.componentFromModel;\n this.allDependencies = {\n dependencies: [],\n devDependencies: [],\n };\n this.allPackagesDependencies = {\n packageDependencies: {},\n devPackageDependencies: {},\n peerPackageDependencies: {},\n };\n this.processedFiles = [];\n this.issues = component.issues;\n this.setLegacyInsideHarmonyIssue();\n this.overridesDependencies = new OverridesDependencies(component);\n this.debugDependenciesData = { components: [] };\n }\n\n get consumer(): Consumer | undefined {\n return this.workspace?.consumer;\n }\n\n async getDependenciesData(): Promise<{\n dependenciesData: DependenciesData;\n overridesDependencies: OverridesDependencies;\n autoDetectOverrides?: Record<string, any>;\n }> {\n await this.populateDependencies();\n const dependenciesData = new DependenciesData(\n this.allDependencies,\n this.allPackagesDependencies,\n this.issues,\n this.coreAspects\n );\n return {\n dependenciesData,\n overridesDependencies: this.overridesDependencies,\n autoDetectOverrides: this.autoDetectOverrides,\n };\n }\n\n /**\n * Given the tree of file dependencies from the driver, find the components of these files.\n * Each dependency file has a path, use bit.map to search for the component name by that path.\n * If the component is found, add it to \"this.allDependencies.dependencies\". Otherwise, add it to \"this.issues.untrackedDependencies\".\n *\n * For the found components, add their sourceRelativePath and destinationRelativePath, they are being used for\n * generating links upon import:\n * sourceRelativePath - location of the link file.\n * destinationRelativePath - destination written inside the link file.\n *\n * When a dependency is found in a regular (implementation) file, it goes to `dependencies`. If\n * it found on a test file, it goes to `devDependencies`.\n * Similarly, when a package is found in a regular file, it goes to `packageDependencies`. When\n * if found in a test file, it goes to `devPackageDependencies`.\n * An exception for the above is when a package is required in a regular or test file but is also\n * mentioned in the `package.json` file as a peerDependency, in that case, the package is added\n * to `peerPackageDependencies` and removed from other places. Unless this package is overridden\n * and marked as ignored in the consumer or component config file.\n */\n private async populateDependencies() {\n await this.loadAutoDetectOverrides();\n this.removeIgnoredComponentsByOverrides();\n this.cloneAllPackagesDependencies();\n this.removeIgnoredPackagesByOverrides();\n this.removeDevAndEnvDepsIfTheyAlsoRegulars();\n this.applyPeersFromComponentModel();\n this.applyPackageJson();\n this.applyWorkspacePolicy();\n this.makeLegacyAsPeer();\n await this.applyAutoDetectOverridesOnComponent();\n this.manuallyAddDependencies();\n // Doing this here (after manuallyAddDependencies) because usually the env of the env is adding dependencies as peer of the env\n // which will make this not work if it come before\n // example:\n // custom react has peers with react 16.4.0.\n // the custom react uses the \"teambit.envs/env\" env, which will add react ^17.0.0 to every component that uses it\n // we want to make sure that the custom react is using 16.4.0 not 17.\n await this.applyAutoDetectedPeersFromEnvOnEnvItSelf();\n this.coreAspects = R.uniq(this.coreAspects);\n }\n\n private removeIgnoredComponentsByOverrides() {\n const shouldBeIncluded = (dep: Dependency, fileType: FileType) =>\n !this.overridesDependencies.shouldIgnorePackage(dep.packageName as string, fileType);\n this.allDependencies.dependencies = this.allDependencies.dependencies.filter((dep) =>\n shouldBeIncluded(dep, { isTestFile: false })\n );\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter((dep) =>\n shouldBeIncluded(dep, { isTestFile: true })\n );\n\n const missingIssue = this.issues.getIssueByName('MissingPackagesDependenciesOnFs');\n if (!missingIssue) return;\n const missingData = missingIssue.data as MissingPackagesData[];\n missingData.forEach((m) => {\n m.missingPackages = m.missingPackages.filter(\n (pkg) => !this.overridesDependencies.shouldIgnorePackage(pkg, { isTestFile: m.isDevFile })\n );\n });\n missingIssue.data = missingData.filter((m) => m.missingPackages.length);\n if (!missingIssue.data.length) this.issues.delete(IssuesClasses.MissingPackagesDependenciesOnFs);\n }\n\n private async loadAutoDetectOverrides() {\n this.autoDetectOverrides = await this.workspace?.getAutoDetectOverrides(\n this.component.extensions,\n this.component.id,\n this.component.files\n );\n }\n\n private cloneAllPackagesDependencies() {\n this.originAllPackagesDependencies = cloneDeep(this.allPackagesDependencies);\n }\n\n private removeIgnoredPackagesByOverrides() {\n const shouldBeIncluded = (pkgVersion, pkgName) =>\n !this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'dependencies');\n const shouldBeIncludedDev = (pkgVersion, pkgName) =>\n !this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'devDependencies');\n\n this.allPackagesDependencies.packageDependencies = R.pickBy(\n shouldBeIncluded,\n this.allPackagesDependencies.packageDependencies\n );\n this.allPackagesDependencies.devPackageDependencies = R.pickBy(\n shouldBeIncludedDev,\n this.allPackagesDependencies.devPackageDependencies\n );\n }\n\n // TODO: maybe cache those results??\n private _resolvePackageData(packageName: string): ResolvedPackageData | undefined {\n const consumer = this.consumer;\n if (!consumer) return undefined;\n // if consumer is defined, then it has componentMap prop.\n const componentMap = this.component.componentMap as ComponentMap;\n const rootDir: PathLinux | null | undefined = componentMap.rootDir as string;\n const consumerPath = consumer.getPath();\n const basePath = rootDir ? path.join(consumerPath, rootDir) : consumerPath;\n const modulePath = resolvePackagePath(packageName, basePath, consumerPath);\n if (!modulePath) return undefined; // e.g. it's author and wasn't exported yet, so there's no node_modules of that component\n const packageObject = resolvePackageData(basePath, modulePath);\n return packageObject;\n }\n\n private _getComponentIdToAdd(\n field: string,\n dependency: string\n ): { componentId?: ComponentID; packageName?: string } | undefined {\n if (field === 'peerDependencies') return undefined;\n const packageData = this._resolvePackageData(dependency);\n return { componentId: packageData?.componentId, packageName: packageData?.name };\n }\n\n getDependenciesToAddManually(\n packageJson: Record<string, any> | null | undefined,\n existingDependencies: AllDependencies\n ): { components: Record<string, any>; packages: Record<string, any> } | undefined {\n const overrides = this.overridesDependencies.getDependenciesToAddManually();\n if (!overrides) return undefined;\n const components = {};\n const packages = {};\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!overrides[depField]) return;\n Object.keys(overrides[depField]).forEach((dependency) => {\n const dependencyValue = overrides[depField][dependency];\n const componentData = this._getComponentIdToAdd(depField, dependency);\n if (componentData?.componentId) {\n const dependencyExist = existingDependencies[depField].find((d) =>\n d.id.isEqualWithoutVersion(componentData.componentId)\n );\n if (!dependencyExist) {\n this.overridesDependencies._addManuallyAddedDep(depField, componentData.componentId.toString());\n components[depField] ? components[depField].push(componentData) : (components[depField] = [componentData]);\n }\n return;\n }\n const addedPkg = this.overridesDependencies._manuallyAddPackage(\n depField,\n dependency,\n dependencyValue,\n packageJson\n );\n if (addedPkg) {\n packages[depField] = Object.assign(packages[depField] || {}, addedPkg);\n if (componentData && !componentData.packageName) {\n this.overridesDependencies.missingPackageDependencies.push(dependency);\n }\n }\n });\n });\n return { components, packages };\n }\n\n private manuallyAddDependencies() {\n const packageJson = this._getPackageJson();\n const dependencies = this.getDependenciesToAddManually(packageJson, this.allDependencies);\n if (!dependencies) return;\n const { components, packages } = dependencies;\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (components[depField] && components[depField].length) {\n components[depField].forEach((depData) =>\n this.allDependencies[depField].push(new Dependency(depData.componentId, [], depData.packageName))\n );\n }\n if (packages[depField] && !R.isEmpty(packages[depField])) {\n Object.assign(this.allPackagesDependencies[this._pkgFieldMapping(depField)], packages[depField]);\n }\n });\n // The automatic dependency detector considers all found dependencies to be runtime dependencies.\n // But this breaks proper installation of injected subdependencies that are resolved from workspace components.\n if (this.allPackagesDependencies.packageDependencies && packages.peerDependencies) {\n for (const peerName of Object.keys(packages.peerDependencies)) {\n delete this.allPackagesDependencies.packageDependencies[peerName];\n }\n }\n if (this.allPackagesDependencies.packageDependencies && packages.peerPackageDependencies) {\n for (const peerName of Object.keys(packages.peerPackageDependencies)) {\n delete this.allPackagesDependencies.packageDependencies[peerName];\n }\n }\n }\n\n /**\n * Remove the dependencies which appear both in dev and regular deps from the dev\n * Because if a dependency is both dev dependency and regular dependency it should be treated as regular one\n * Apply for both packages and components dependencies\n */\n private removeDevAndEnvDepsIfTheyAlsoRegulars() {\n // remove dev and env packages that are also regular packages\n const getNotRegularPackages = (packages) =>\n R.difference(R.keys(packages), R.keys(this.allPackagesDependencies.packageDependencies));\n this.allPackagesDependencies.devPackageDependencies = R.pick(\n getNotRegularPackages(this.allPackagesDependencies.devPackageDependencies),\n this.allPackagesDependencies.devPackageDependencies\n );\n // remove dev dependencies that are also regular dependencies\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const componentDepsIds = new ComponentIdList(...this.allDependencies.dependencies.map((c) => c.id));\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter(\n (d) => !componentDepsIds.has(d.id)\n );\n }\n\n private applyPeersFromComponentModel(): void {\n const getPeerDependencies = (): Record<string, any> => {\n const packageJson = this._getPackageJsonFromComponentModel();\n if (packageJson && packageJson.peerDependencies) return packageJson.peerDependencies;\n return {};\n };\n const projectPeerDependencies = getPeerDependencies();\n const peerPackages = {};\n if (R.isEmpty(projectPeerDependencies)) return;\n\n // check whether the peer-dependencies was actually require in the code. if so, remove it from\n // the packages/dev-packages and add it as a peer-package.\n // if it was not required in the code, don't add it to the peerPackages\n Object.keys(projectPeerDependencies).forEach((pkg) => {\n if (this.overridesDependencies.shouldIgnorePeerPackage(pkg)) return;\n ['packageDependencies', 'devPackageDependencies'].forEach((field) => {\n if (Object.keys(this.allPackagesDependencies[field]).includes(pkg)) {\n delete this.allPackagesDependencies[field][pkg];\n peerPackages[pkg] = projectPeerDependencies[pkg];\n }\n });\n });\n this.allPackagesDependencies.peerPackageDependencies = peerPackages;\n }\n\n private applyPackageJson(): void {\n const packageJson = this._getPackageJson();\n if (!packageJson) return;\n const pkgJsonPeer = packageJson.peerDependencies || {};\n const pkgJsonRegularDeps = packageJson.dependencies || {};\n const peerDeps = this.allPackagesDependencies.peerPackageDependencies || {};\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n R.forEachObjIndexed((_pkgVal, pkgName) => {\n const peerVersionFromPkgJson = pkgJsonPeer[pkgName];\n const regularVersionFromPkgJson = pkgJsonRegularDeps[pkgName];\n if (peerVersionFromPkgJson) {\n delete this.allPackagesDependencies[field][pkgName];\n peerDeps[pkgName] = peerVersionFromPkgJson;\n } else if (regularVersionFromPkgJson) {\n delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];\n this.allPackagesDependencies[field][pkgName] = regularVersionFromPkgJson;\n }\n }, this.allPackagesDependencies[field]);\n });\n this.allPackagesDependencies.peerPackageDependencies = peerDeps;\n }\n\n private applyWorkspacePolicy(): void {\n const wsPolicy = this.depsResolver.getWorkspacePolicyManifest();\n if (!wsPolicy) return;\n const wsPeer = wsPolicy.peerDependencies || {};\n const wsRegular = wsPolicy.dependencies || {};\n const peerDeps = this.allPackagesDependencies.peerPackageDependencies || {};\n // we are not iterate component deps since they are resolved from what actually installed\n // the policy used for installation only in that case\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n R.forEachObjIndexed((_pkgVal, pkgName) => {\n const peerVersionFromWsPolicy = wsPeer[pkgName];\n const regularVersionFromWsPolicy = wsRegular[pkgName];\n if (peerVersionFromWsPolicy) {\n delete this.allPackagesDependencies[field][pkgName];\n peerDeps[pkgName] = peerVersionFromWsPolicy;\n } else if (regularVersionFromWsPolicy) {\n delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];\n this.allPackagesDependencies[field][pkgName] = regularVersionFromWsPolicy;\n }\n }, this.allPackagesDependencies[field]);\n });\n this.allPackagesDependencies.peerPackageDependencies = peerDeps;\n }\n\n /**\n * It removes the @teambit/legacy dependency from the dependencies/devDeps and adds it as a peer dependency with ^.\n */\n private makeLegacyAsPeer(): void {\n let version;\n if (this.allPackagesDependencies.packageDependencies['@teambit/legacy']) {\n version = this.allPackagesDependencies.packageDependencies['@teambit/legacy'];\n delete this.allPackagesDependencies.packageDependencies['@teambit/legacy'];\n }\n if (this.allPackagesDependencies.devPackageDependencies['@teambit/legacy']) {\n if (!version) version = this.allPackagesDependencies.devPackageDependencies['@teambit/legacy'];\n delete this.allPackagesDependencies.devPackageDependencies['@teambit/legacy'];\n }\n if (version) {\n if (!Number.isNaN(version[0])) version = `^${version}`;\n this.allPackagesDependencies.peerPackageDependencies['@teambit/legacy'] = version;\n }\n }\n\n private async applyAutoDetectOverridesOnComponent(): Promise<void> {\n const autoDetectOverrides = this.autoDetectOverrides;\n\n if (!autoDetectOverrides || !Object.keys(autoDetectOverrides).length) {\n return;\n }\n\n const originallyExists: string[] = [];\n let missingPackages: string[] = [];\n // We want to also add missing packages to the peer list as we know to resolve the version from the env anyway\n const missingData = this.issues.getIssueByName('MissingPackagesDependenciesOnFs')?.data as\n | MissingPackagesData[]\n | undefined;\n if (missingData) {\n missingPackages = uniq(missingData.map((d) => d.missingPackages).flat());\n }\n ['dependencies', 'devDependencies', 'peerDependencies'].forEach((field) => {\n R.forEachObjIndexed((pkgVal, pkgName) => {\n if (this.overridesDependencies.shouldIgnorePeerPackage(pkgName)) return;\n // Validate it was auto detected, we only affect stuff that were detected\n const existsInCompsDeps = this.allDependencies.dependencies.find((dep) => {\n return dep.packageName === pkgName;\n });\n\n const existsInCompsDevDeps = this.allDependencies.devDependencies.find((dep) => {\n return dep.packageName === pkgName;\n });\n\n if (\n // We are checking originAllPackagesDependencies instead of allPackagesDependencies\n // as it might be already removed from allPackagesDependencies at this point if it was set with\n // \"-\" in runtime/dev\n // in such case we still want to apply it here\n !this.originAllPackagesDependencies.packageDependencies[pkgName] &&\n !this.originAllPackagesDependencies.devPackageDependencies[pkgName] &&\n !this.originAllPackagesDependencies.peerPackageDependencies[pkgName] &&\n !existsInCompsDeps &&\n !existsInCompsDevDeps &&\n // Check if it was orignally exists in the component\n // as we might have a policy which looks like this:\n // \"components\": {\n // \"dependencies\": {\n // \"my-dep\": \"-\"\n // },\n // \"devDependencies\": {\n // \"my-dep\": \"1.0.0\"\n // },\n // }\n // in that case we might remove it before getting to the devDeps then we will think that it wasn't required in the component\n // which is incorrect\n !originallyExists.includes(pkgName) &&\n !missingPackages.includes(pkgName)\n ) {\n return;\n }\n originallyExists.push(pkgName);\n const key = DepsKeysToAllPackagesDepsKeys[field];\n\n delete this.allPackagesDependencies[key][pkgName];\n // When changing peer dependency we want it to be stronger than the other types\n if (field === 'peerDependencies') {\n delete this.allPackagesDependencies.devPackageDependencies[pkgName];\n delete this.allPackagesDependencies.packageDependencies[pkgName];\n if (existsInCompsDeps) {\n this.allDependencies.dependencies = this.allDependencies.dependencies.filter(\n (dep) => dep.packageName !== pkgName\n );\n }\n if (existsInCompsDevDeps) {\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter(\n (dep) => dep.packageName !== pkgName\n );\n }\n }\n // delete this.allPackagesDependencies.packageDependencies[pkgName];\n // delete this.allPackagesDependencies.devPackageDependencies[pkgName];\n // delete this.allPackagesDependencies.peerPackageDependencies[pkgName];\n\n // If it exists in comps deps / comp dev deps, we don't want to add it to the allPackagesDependencies\n // as it will make the same dep both a dev and runtime dep\n // since we are here only for auto detected deps, it means we already resolved the version correctly\n // so we don't need to really modify the version\n // also the version here might have a range (^ or ~ for example) so we can't\n // just put it as is, as it is not valid for component deps to have range\n if (\n pkgVal !== MANUALLY_REMOVE_DEPENDENCY &&\n ((!existsInCompsDeps && !existsInCompsDevDeps) || field === 'peerDependencies')\n ) {\n this.allPackagesDependencies[key][pkgName] = pkgVal;\n }\n }, autoDetectOverrides[field]);\n });\n }\n\n private async applyAutoDetectedPeersFromEnvOnEnvItSelf(): Promise<void> {\n const envPolicy = await this.depsResolver.getEnvPolicyFromEnvLegacyId(this.component.id, this.component.files);\n if (!envPolicy) return;\n const envPolicyManifest = envPolicy.selfPolicy.toVersionManifest();\n\n if (!envPolicyManifest || !Object.keys(envPolicyManifest).length) {\n return;\n }\n const deps = this.allPackagesDependencies.packageDependencies || {};\n // we are not iterate component deps since they are resolved from what actually installed\n // the policy used for installation only in that case\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n R.forEachObjIndexed((_pkgVal, pkgName) => {\n const peerVersionFromEnvPolicy = envPolicyManifest[pkgName];\n if (peerVersionFromEnvPolicy) {\n delete this.allPackagesDependencies[field][pkgName];\n }\n }, this.allPackagesDependencies[field]);\n });\n Object.assign(deps, envPolicyManifest);\n // TODO: handle component deps once we support peers between components\n this.allPackagesDependencies.packageDependencies = deps;\n }\n\n /**\n * returns `package.json` of the component when it's imported, or `package.json` of the workspace\n * when it's authored.\n */\n private _getPackageJson(): Record<string, any> | undefined {\n return this.consumer?.packageJson.packageJsonObject;\n }\n\n private _getPackageJsonFromComponentModel(): Record<string, any> | undefined {\n if (this.componentFromModel && this.component.componentMap) {\n // a component is imported but the package.json file is missing or never written\n // read the values from the model\n const packageJson = PackageJsonFile.createFromComponent(\n this.component.componentMap.rootDir,\n this.componentFromModel\n );\n return packageJson.packageJsonObject;\n }\n return undefined;\n }\n\n private setLegacyInsideHarmonyIssue() {\n if (this.componentFromModel && this.componentFromModel.isLegacy) {\n this.issues.getOrCreate(IssuesClasses.LegacyInsideHarmony).data = true;\n }\n }\n\n private _pkgFieldMapping(field: string) {\n switch (field) {\n case 'dependencies':\n return 'packageDependencies';\n case 'devDependencies':\n return 'devPackageDependencies';\n case 'peerDependencies':\n return 'peerPackageDependencies';\n default:\n throw new Error(`${field} is not recognized`);\n }\n }\n}\n"],"mappings":"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"}
@@ -12,14 +12,14 @@ import { AspectLoaderMain } from '@teambit/aspect-loader';
12
12
  import { DependencyDetector } from '@teambit/legacy/dist/consumer/component/dependencies/files-dependency-builder/detector-hook';
13
13
  import { DependenciesData } from './dependencies-data';
14
14
  import { AllDependencies, AllPackagesDependencies } from './apply-overrides';
15
- export declare type FileType = {
15
+ export type FileType = {
16
16
  isTestFile: boolean;
17
17
  };
18
- export declare type DebugDependencies = {
18
+ export type DebugDependencies = {
19
19
  components: DebugComponentsDependency[];
20
20
  unidentifiedPackages?: string[];
21
21
  };
22
- export declare type DebugComponentsDependency = {
22
+ export type DebugComponentsDependency = {
23
23
  id: ComponentID;
24
24
  importSource?: string;
25
25
  dependencyPackageJsonPath?: string;
@@ -162,4 +162,4 @@ export declare class AutoDetectDeps {
162
162
  private _pushToMissingDependenciesOnFs;
163
163
  private _pushToMissingPackagesDependenciesIssues;
164
164
  }
165
- export declare function getValidVersion(version: string | undefined): string | null;
165
+ export declare function getValidVersion(version: string | undefined): string;
@@ -437,12 +437,10 @@ class AutoDetectDeps {
437
437
  });
438
438
  }
439
439
  isPkgInWorkspacePolicies(pkgName) {
440
- var _this$depsResolver$ge;
441
- return (_this$depsResolver$ge = this.depsResolver.getWorkspacePolicyManifest().dependencies) === null || _this$depsResolver$ge === void 0 ? void 0 : _this$depsResolver$ge[pkgName];
440
+ return this.depsResolver.getWorkspacePolicyManifest().dependencies?.[pkgName];
442
441
  }
443
442
  addImportNonMainIssueIfNeeded(filePath, dependencyPkgData) {
444
- var _dependencyPkgData$pa, _dependencyPkgData$pa2;
445
- const depMain = (_dependencyPkgData$pa = dependencyPkgData.packageJsonContent) === null || _dependencyPkgData$pa === void 0 ? void 0 : _dependencyPkgData$pa.main;
443
+ const depMain = dependencyPkgData.packageJsonContent?.main;
446
444
  if (!depMain) {
447
445
  return;
448
446
  }
@@ -456,7 +454,7 @@ class AutoDetectDeps {
456
454
  // some files such as scss/json are needed to be imported as non-main
457
455
  return;
458
456
  }
459
- const pkgRootDir = (_dependencyPkgData$pa2 = dependencyPkgData.packageJsonContent) === null || _dependencyPkgData$pa2 === void 0 ? void 0 : _dependencyPkgData$pa2.componentRootFolder;
457
+ const pkgRootDir = dependencyPkgData.packageJsonContent?.componentRootFolder;
460
458
  if (pkgRootDir && !_fsExtra().default.existsSync(path().join(pkgRootDir, _constants().DEFAULT_DIST_DIRNAME))) {
461
459
  // the dependency wasn't compiled yet. the issue is probably because depMain points to the dist
462
460
  // and depFullPath is in the source.
@@ -472,7 +470,6 @@ class AutoDetectDeps {
472
470
  (this.issues.getOrCreate(_componentIssues().IssuesClasses.ImportNonMainFiles).data[filePath] ||= []).push(nonMainFileShort);
473
471
  }
474
472
  processPackages(originFile, fileType) {
475
- var _this$tree$originFile;
476
473
  const packages = this.tree[originFile].packages;
477
474
  if (this.componentFromModel) {
478
475
  const modelDeps = this.componentFromModel.getAllPackageDependencies();
@@ -483,7 +480,7 @@ class AutoDetectDeps {
483
480
  }
484
481
  }
485
482
  }
486
- const packageNames = Object.keys(packages).concat(((_this$tree$originFile = this.tree[originFile].missing) === null || _this$tree$originFile === void 0 ? void 0 : _this$tree$originFile.packages) ?? []);
483
+ const packageNames = Object.keys(packages).concat(this.tree[originFile].missing?.packages ?? []);
487
484
  this._addTypesPackagesForTypeScript(packageNames, originFile);
488
485
  if (!packages || _ramda().default.isEmpty(packages)) return;
489
486
  if (fileType.isTestFile) {
@@ -567,14 +564,14 @@ class AutoDetectDeps {
567
564
  const findMatchingCoreAspect = packageName => {
568
565
  return coreAspectsPackages.find(coreAspectName => packageName === coreAspectName);
569
566
  };
570
- const unidentifiedPackagesFiltered = unidentifiedPackages === null || unidentifiedPackages === void 0 ? void 0 : unidentifiedPackages.filter(packageName => {
567
+ const unidentifiedPackagesFiltered = unidentifiedPackages?.filter(packageName => {
571
568
  const matchingCoreAspectPackageName = findMatchingCoreAspect(packageName);
572
569
  if (matchingCoreAspectPackageName) {
573
570
  usedCoreAspects.push(coreAspects[matchingCoreAspectPackageName]);
574
571
  }
575
572
  return !matchingCoreAspectPackageName;
576
573
  });
577
- const bitsFiltered = components === null || components === void 0 ? void 0 : components.filter(packageInfo => {
574
+ const bitsFiltered = components?.filter(packageInfo => {
578
575
  const matchingCoreAspectPackageName = findMatchingCoreAspect(packageInfo.name);
579
576
  if (matchingCoreAspectPackageName) {
580
577
  usedCoreAspects.push(coreAspects[matchingCoreAspectPackageName]);
@@ -684,7 +681,6 @@ class AutoDetectDeps {
684
681
  }
685
682
  _pushToUntrackDependenciesIssues(originFile, depFileRelative, nested = false) {
686
683
  const findExisting = () => {
687
- var _this$issues$getIssue;
688
684
  let result;
689
685
  _ramda().default.forEachObjIndexed(currentUntracked => {
690
686
  const found = currentUntracked.untrackedFiles.find(file => {
@@ -693,7 +689,7 @@ class AutoDetectDeps {
693
689
  if (found) {
694
690
  result = found;
695
691
  }
696
- }, ((_this$issues$getIssue = this.issues.getIssue(_componentIssues().IssuesClasses.UntrackedDependencies)) === null || _this$issues$getIssue === void 0 ? void 0 : _this$issues$getIssue.data) || {});
692
+ }, this.issues.getIssue(_componentIssues().IssuesClasses.UntrackedDependencies)?.data || {});
697
693
  return result;
698
694
  };
699
695
  const existing = findExisting();
@@ -707,7 +703,7 @@ class AutoDetectDeps {
707
703
  existing.existing = true;
708
704
  }
709
705
  const untrackIssue = this.issues.getOrCreate(_componentIssues().IssuesClasses.UntrackedDependencies);
710
- const untrackedCurrentFile = untrackIssue === null || untrackIssue === void 0 ? void 0 : untrackIssue.data[originFile];
706
+ const untrackedCurrentFile = untrackIssue?.data[originFile];
711
707
  if (untrackedCurrentFile) {
712
708
  untrackedCurrentFile.untrackedFiles.push(newUntrackedFile);
713
709
  } else {