@teambit/dependencies 1.0.425 → 1.0.426
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/__bit_junit.xml +29 -29
- package/artifacts/schema.json +1 -1
- package/dist/dependencies.main.runtime.js.map +1 -1
- package/dist/files-dependency-builder/missing-handler.js.map +1 -1
- package/files-dependency-builder/missing-handler.ts +5 -1
- package/package.json +13 -13
- /package/dist/{preview-1728184966899.js → preview-1728236174539.js} +0 -0
@@ -1,9 +1,9 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<testsuites tests="169" failures="0" errors="0" skipped="33">
|
3
|
-
<testsuite name="teambit.dependencies/dependencies@1.0.
|
4
|
-
<testcase classname="dist/dependencies.spec.js" name="should add the snap prefix" time="0.
|
5
|
-
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/testing-library__jest-dom" time="0.
|
6
|
-
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/chai"
|
3
|
+
<testsuite name="teambit.dependencies/dependencies@1.0.426" tests="169" failures="0" errors="0" skipped="33">
|
4
|
+
<testcase classname="dist/dependencies.spec.js" name="should add the snap prefix" time="0.002"/>
|
5
|
+
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/testing-library__jest-dom" time="0.002"/>
|
6
|
+
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/chai"/>
|
7
7
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/mocha"/>
|
8
8
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/classnames"/>
|
9
9
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/cors"/>
|
@@ -18,7 +18,7 @@
|
|
18
18
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/lodash"/>
|
19
19
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/lodash.compact"/>
|
20
20
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/lodash.flatten"/>
|
21
|
-
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/lodash.head"/>
|
21
|
+
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/lodash.head" time="0.001"/>
|
22
22
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/lodash.pick"/>
|
23
23
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/mdx-js__react"/>
|
24
24
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/memoizee"/>
|
@@ -40,7 +40,7 @@
|
|
40
40
|
<testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/webpack-merge"/>
|
41
41
|
<testcase classname="dist/files-dependency-builder/build-tree.spec.js" name="when no files are passed should return an empty tree" time="0.001"/>
|
42
42
|
<testcase classname="dist/files-dependency-builder/build-tree.spec.js" name="when unsupported files are passed should return them with no dependencies" time="0.001"/>
|
43
|
-
<testcase classname="dist/files-dependency-builder/build-tree.spec.js" name="when supported and unsupported files are passed should return them all" time="0.
|
43
|
+
<testcase classname="dist/files-dependency-builder/build-tree.spec.js" name="when supported and unsupported files are passed should return them all" time="0.077"/>
|
44
44
|
<testcase classname="dist/files-dependency-builder/build-tree.spec.js" name="when a js file has parsing error it should add the file to the tree with the error instance">
|
45
45
|
<skipped/>
|
46
46
|
</testcase>
|
@@ -66,13 +66,13 @@
|
|
66
66
|
<testcase classname="dist/files-dependency-builder/build-tree.spec.js" name="should not recognize the cycle dependencies as link files">
|
67
67
|
<skipped/>
|
68
68
|
</testcase>
|
69
|
-
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns an empty object for a non-existent filename" time="0.
|
70
|
-
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="handles nested tree structures" time="0.
|
69
|
+
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns an empty object for a non-existent filename" time="0.001"/>
|
70
|
+
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="handles nested tree structures" time="0.007"/>
|
71
71
|
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="does not include files that are not real (#13)" time="0.002"/>
|
72
|
-
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="does not choke on cyclic dependencies" time="0.
|
72
|
+
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="does not choke on cyclic dependencies" time="0.106"/>
|
73
73
|
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="excludes Nodejs core modules by default" time="0.001"/>
|
74
74
|
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns a list of absolutely pathed files"/>
|
75
|
-
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="passes it through to precinct" time="0.
|
75
|
+
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="passes it through to precinct" time="0.051"/>
|
76
76
|
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="stores the invalid partials" time="0.002"/>
|
77
77
|
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="does not store anything" time="0.002"/>
|
78
78
|
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="stores the invalid ones" time="0.002"/>
|
@@ -87,12 +87,12 @@
|
|
87
87
|
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns an object form of the dependency tree for a file" time="0.002"/>
|
88
88
|
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns an object form of the dependency tree for a file" time="0.002"/>
|
89
89
|
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="resolves files that have jsx" time="0.001"/>
|
90
|
-
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="resolves files with a jsx extension" time="0.
|
90
|
+
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="resolves files with a jsx extension" time="0.002"/>
|
91
91
|
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="resolves files that have es7" time="0.001"/>
|
92
|
-
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns an object form of the dependency tree for a file" time="0.01"/>
|
93
|
-
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns an object form of the dependency tree for a file" time="0.001"/>
|
94
92
|
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns an object form of the dependency tree for a file" time="0.006"/>
|
95
|
-
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns an object form of the dependency tree for a file" time="0.
|
93
|
+
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns an object form of the dependency tree for a file" time="0.001"/>
|
94
|
+
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns an object form of the dependency tree for a file" time="0.004"/>
|
95
|
+
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns an object form of the dependency tree for a file" time="0.018"/>
|
96
96
|
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="resolves unaliased modules">
|
97
97
|
<skipped/>
|
98
98
|
</testcase>
|
@@ -109,8 +109,8 @@
|
|
109
109
|
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should not crash with "RangeError: Maximum call stack size exceeded" error" time="0.001"/>
|
110
110
|
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should not show missing dependencies" time="0.001"/>
|
111
111
|
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should not show missing dependencies when importing from https" time="0.001"/>
|
112
|
-
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should not show missing dependencies when importing from http"/>
|
113
|
-
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="uses a generic resolve for unsupported file extensions" time="0.
|
112
|
+
<testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should not show missing dependencies when importing from http" time="0.001"/>
|
113
|
+
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="uses a generic resolve for unsupported file extensions" time="0.001"/>
|
114
114
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="reuses the ast when trying to determine the module type"/>
|
115
115
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves the dependency successfully"/>
|
116
116
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="uses the filename to look for the module type"/>
|
@@ -121,8 +121,8 @@
|
|
121
121
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="uses require's resolver">
|
122
122
|
<skipped/>
|
123
123
|
</testcase>
|
124
|
-
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="returns an empty string for an unresolved module"/>
|
125
|
-
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="adds the directory to the require resolution paths" time="0.
|
124
|
+
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="returns an empty string for an unresolved module" time="0.001"/>
|
125
|
+
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="adds the directory to the require resolution paths" time="0.001"/>
|
126
126
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves a relative dependency about the filename" time="0.001"/>
|
127
127
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves a .. dependency to its parent directory's index.js file" time="0.001"/>
|
128
128
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves a dependency within a directory outside of the given file">
|
@@ -133,11 +133,11 @@
|
|
133
133
|
</testcase>
|
134
134
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves a nested module" time="0.001"/>
|
135
135
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves to the index.js file of a directory" time="0.001"/>
|
136
|
-
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves implicit .jsx requires"/>
|
137
|
-
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves implicit .scss requires"
|
138
|
-
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves implicit .json requires"
|
136
|
+
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves implicit .jsx requires" time="0.001"/>
|
137
|
+
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves implicit .scss requires"/>
|
138
|
+
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves implicit .json requires"/>
|
139
139
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves an import"/>
|
140
|
-
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="returns an empty result" time="0.
|
140
|
+
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="returns an empty result" time="0.002"/>
|
141
141
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="uses the sass resolver for .scss files"/>
|
142
142
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="uses the sass resolver for .sass files"/>
|
143
143
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="uses the stylus resolver"/>
|
@@ -148,7 +148,7 @@
|
|
148
148
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="supports passing env detectors"/>
|
149
149
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="registers a custom resolver for a given extension" time="0.002"/>
|
150
150
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="allows does not break default resolvers" time="0.001"/>
|
151
|
-
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="can be called multiple times"
|
151
|
+
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="can be called multiple times"/>
|
152
152
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="does not add redundant extensions to supportedFileExtensions"/>
|
153
153
|
<testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="should resolve the dependency to a node_module package (using webpack under the hood)">
|
154
154
|
<skipped/>
|
@@ -198,15 +198,15 @@
|
|
198
198
|
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of commonjs modules" time="0.001"/>
|
199
199
|
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of es6 modules" time="0.001"/>
|
200
200
|
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of es6 modules with embedded jsx"/>
|
201
|
-
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of es6 modules with embedded es7"
|
201
|
+
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of es6 modules with embedded es7"/>
|
202
202
|
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="throws errors of es6 modules with syntax errors" time="0.001"/>
|
203
203
|
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of css files">
|
204
204
|
<skipped/>
|
205
205
|
</testcase>
|
206
206
|
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of scss files" time="0.001"/>
|
207
|
-
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of sass files"/>
|
208
|
-
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of stylus files"
|
209
|
-
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of less files"/>
|
207
|
+
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of sass files" time="0.001"/>
|
208
|
+
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of stylus files"/>
|
209
|
+
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of less files" time="0.001"/>
|
210
210
|
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of typescript files">
|
211
211
|
<skipped/>
|
212
212
|
</testcase>
|
@@ -227,12 +227,12 @@
|
|
227
227
|
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="supports passing detective configuration">
|
228
228
|
<skipped/>
|
229
229
|
</testcase>
|
230
|
-
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="supports passing env detectors"/>
|
230
|
+
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="supports passing env detectors" time="0.001"/>
|
231
231
|
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="still does not filter out core module by default">
|
232
232
|
<skipped/>
|
233
233
|
</testcase>
|
234
234
|
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="passes amd config to the amd detective" time="0.001"/>
|
235
|
-
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="returns both the commonjs and es6 dependencies"/>
|
235
|
+
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="returns both the commonjs and es6 dependencies" time="0.001"/>
|
236
236
|
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="returns both the commonjs and es6 dependencies"/>
|
237
237
|
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs those lazy dependencies" time="0.001"/>
|
238
238
|
<testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs the lazy imports" time="0.001"/>
|
package/artifacts/schema.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_cli","data","require","_moment","_interopRequireDefault","_dependencyResolver","_workspace","_lodash","_pMapSeries","_componentLoader","_devFiles","_graph","_aspectLoader","_componentPackageVersion","_scope","_dependenciesLoader","_dependenciesCmd","_dependencies","_dependentsCmd","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DependenciesMain","constructor","workspace","scope","dependencyResolver","devFiles","aspectLoader","graph","setPeer","componentId","range","compId","resolveComponentId","config","peer","defaultPeerRange","addSpecificComponentConfig","DependencyResolverAspect","id","shouldMergeWithExisting","shouldMergeWithPrevious","bitMap","write","unsetPeer","getAspectConfigForComponent","addComponentConfig","setDependency","componentPattern","packages","options","compIds","idsByPattern","getDepField","dev","packagesObj","Promise","all","map","pkg","name","version","getPackageNameAndVerResolved","optional","policy","changedComps","toStringWithoutVersion","addedPackages","removeDependency","removeOnlyIfExists","getLifeCycle","results","pMapSeries","component","get","depList","getDependencies","getCurrentConfig","currentConfigFromWorkspace","getSpecificComponentConfig","extFromScope","getExtensionsFromScopeAndSpecific","toConfigObject","currentDepResolverConfig","newDepResolverConfig","cloneDeep","removedPackagesWithNulls","splitPkgToNameAndVer","dependency","findByPkgNameOrCompId","depName","getPackageName","depField","KEY_NAME_BY_LIFECYCLE_TYPE","existsInSpecificConfig","set","removedPackages","compact","reset","eject","factory","comp","compIdWithVer","getGraphIds","host","loadDependencies","opts","dependenciesLoader","DependenciesLoader","load","loadDependenciesFromScope","dependenciesData","loadFromScope","debugDependencies","OutsideWorkspaceError","consumerComponent","state","_consumer","cacheResolvedDependencies","useDependenciesCache","missingPackageDependencies","manuallyAddedDependencies","manuallyRemovedDependencies","overridesDependencies","sources","dep","source","debugDependenciesData","coreAspects","blame","compName","log","getLogs","blameResults","lastVersion","logItem","changeVersion","tag","hash","snap","author","username","date","moment","Date","parseInt","format","message","usageDeep","isComponentId","getPackageManager","findUsages","lockfileDir","path","depth","undefined","usage","allComps","list","toString","resolveLatest","pkgName","versionResolver","getVersionResolver","resolved","resolveRemoteVersion","rootDir","Error","versionResolved","snapToSemver","packageSplit","split","startsWith","provider","cli","depsResolver","depsMain","depsCmd","DependenciesCmd","commands","DependenciesGetCmd","DependenciesRemoveCmd","DependenciesUnsetCmd","DependenciesDebugCmd","DependenciesSetCmd","DependenciesResetCmd","DependenciesEjectCmd","DependenciesBlameCmd","DependenciesUsageCmd","register","WhyCmd","SetPeerCmd","UnsetPeerCmd","DependentsCmd","ComponentLoader","loadDeps","bind","exports","CLIAspect","WorkspaceAspect","DevFilesAspect","AspectLoaderAspect","ScopeAspect","GraphAspect","MainRuntime","includes","DependenciesAspect","addRuntime","_default"],"sources":["dependencies.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport moment from 'moment';\nimport { ComponentID } from '@teambit/component-id';\nimport {\n DependencyResolverAspect,\n DependencyResolverMain,\n KEY_NAME_BY_LIFECYCLE_TYPE,\n} from '@teambit/dependency-resolver';\nimport { WorkspaceAspect, OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { cloneDeep, compact, set } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport ComponentLoader, { DependencyLoaderOpts } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { DevFilesAspect, DevFilesMain } from '@teambit/dev-files';\nimport { GraphAspect, ComponentIdGraph, GraphMain } from '@teambit/graph';\nimport { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { DependenciesLoader } from './dependencies-loader/dependencies-loader';\nimport { DependenciesData, OverridesDependenciesData } from './dependencies-loader/dependencies-data';\nimport {\n DependenciesBlameCmd,\n DependenciesCmd,\n DependenciesDebugCmd,\n DependenciesEjectCmd,\n DependenciesGetCmd,\n DependenciesRemoveCmd,\n DependenciesResetCmd,\n DependenciesSetCmd,\n DependenciesUnsetCmd,\n DependenciesUsageCmd,\n RemoveDependenciesFlags,\n SetDependenciesFlags,\n SetPeerCmd,\n UnsetPeerCmd,\n WhyCmd,\n} from './dependencies-cmd';\nimport { DependenciesAspect } from './dependencies.aspect';\nimport { DebugDependencies } from './dependencies-loader/auto-detect-deps';\nimport { DependentsCmd } from './dependents-cmd';\n\nexport type RemoveDependencyResult = { id: ComponentID; removedPackages: string[] };\nexport type SetDependenciesResult = { changedComps: string[]; addedPackages: Record<string, string> };\nexport type DependenciesResultsDebug = DebugDependencies &\n OverridesDependenciesData & { coreAspects: string[]; sources: { id: string; source: string }[] };\n\nexport type DependenciesResults = {\n graph: ComponentIdGraph;\n id: ComponentID;\n};\n\nexport type BlameResult = {\n snap: string;\n tag?: string;\n author: string;\n date: string;\n message: string;\n version: string;\n};\n\nexport class DependenciesMain {\n constructor(\n private workspace: Workspace,\n private scope: ScopeMain,\n private dependencyResolver: DependencyResolverMain,\n private devFiles: DevFilesMain,\n private aspectLoader: AspectLoaderMain,\n private graph: GraphMain\n ) {}\n\n async setPeer(componentId: string, range?: string): Promise<void> {\n const compId = await this.workspace.resolveComponentId(componentId);\n const config = { peer: true, defaultPeerRange: range };\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n\n await this.workspace.bitMap.write(`set-peer (${componentId})`);\n }\n\n async unsetPeer(componentId: string): Promise<void> {\n const compId = await this.workspace.resolveComponentId(componentId);\n // const config = { peer: true, defaultPeerRange: range };\n const config = await this.workspace.getAspectConfigForComponent(compId, DependencyResolverAspect.id);\n if (config) {\n if ('peer' in config) {\n delete config.peer;\n }\n if ('defaultPeerRange' in config) {\n delete config.defaultPeerRange;\n }\n }\n this.workspace.bitMap.addComponentConfig(compId, DependencyResolverAspect.id, config);\n\n await this.workspace.bitMap.write(`unset-peer (${componentId})`);\n }\n\n async setDependency(\n componentPattern: string,\n packages: string[],\n options: SetDependenciesFlags = {}\n ): Promise<SetDependenciesResult> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const getDepField = () => {\n if (options.dev) return 'devDependencies';\n if (options.peer) return 'peerDependencies';\n return 'dependencies';\n };\n const packagesObj = {};\n await Promise.all(\n packages.map(async (pkg) => {\n const [name, version] = await this.getPackageNameAndVerResolved(pkg);\n if (options.optional) {\n packagesObj[name] = { optional: true, version };\n } else {\n packagesObj[name] = version;\n }\n })\n );\n const config = {\n policy: {\n [getDepField()]: packagesObj,\n },\n };\n await Promise.all(\n compIds.map(async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n })\n );\n\n await this.workspace.bitMap.write(`deps-set (${componentPattern})`);\n\n return {\n changedComps: compIds.map((compId) => compId.toStringWithoutVersion()),\n addedPackages: packagesObj,\n };\n }\n\n async removeDependency(\n componentPattern: string,\n packages: string[],\n options: RemoveDependenciesFlags = {},\n removeOnlyIfExists = false // unset\n ): Promise<RemoveDependencyResult[]> {\n const getLifeCycle = () => {\n if (options.dev) return 'dev';\n if (options.peer) return 'peer';\n return 'runtime';\n };\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const results = await pMapSeries(compIds, async (compId) => {\n const component = await this.workspace.get(compId);\n const depList = this.dependencyResolver.getDependencies(component);\n const getCurrentConfig = async () => {\n const currentConfigFromWorkspace = await this.workspace.getSpecificComponentConfig(\n compId,\n DependencyResolverAspect.id\n );\n if (currentConfigFromWorkspace) return currentConfigFromWorkspace;\n const extFromScope = await this.workspace.getExtensionsFromScopeAndSpecific(compId);\n return extFromScope?.toConfigObject()[DependencyResolverAspect.id];\n };\n const currentDepResolverConfig = await getCurrentConfig();\n const newDepResolverConfig = cloneDeep(currentDepResolverConfig || {});\n const removedPackagesWithNulls = await pMapSeries(packages, async (pkg) => {\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const dependency = depList.findByPkgNameOrCompId(name, version, getLifeCycle());\n if (!dependency) return null;\n const depName = dependency.getPackageName?.() || dependency.id;\n const depField = KEY_NAME_BY_LIFECYCLE_TYPE[getLifeCycle()];\n const existsInSpecificConfig = newDepResolverConfig.policy?.[depField]?.[depName];\n if (existsInSpecificConfig) {\n if (existsInSpecificConfig === '-') return null;\n delete newDepResolverConfig.policy[depField][depName];\n } else {\n if (removeOnlyIfExists) return null;\n set(newDepResolverConfig, ['policy', depField, depName], '-');\n }\n return `${depName}@${dependency.version}`;\n });\n const removedPackages = compact(removedPackagesWithNulls);\n if (!removedPackages.length) return null;\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, newDepResolverConfig);\n return { id: compId, removedPackages };\n });\n await this.workspace.bitMap.write(`deps-remove (${componentPattern})`);\n\n return compact(results);\n }\n\n async reset(componentPattern: string): Promise<ComponentID[]> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n await pMapSeries(compIds, async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, { policy: {} });\n });\n await this.workspace.bitMap.write(`deps-reset (${componentPattern})`);\n\n return compIds;\n }\n\n async eject(componentPattern: string): Promise<ComponentID[]> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n await pMapSeries(compIds, async (compId) => {\n await this.workspace.addSpecificComponentConfig(\n compId,\n DependencyResolverAspect.id,\n {},\n {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n }\n );\n });\n await this.workspace.bitMap.write(`deps-eject (${componentPattern})`);\n\n return compIds;\n }\n\n async getDependencies(id: string, scope?: boolean): Promise<DependenciesResults> {\n const factory = this.workspace && !scope ? this.workspace : this.scope;\n const compId = await (this.workspace || this.scope).resolveComponentId(id);\n const comp = await (this.workspace || this.scope).get(compId);\n const compIdWithVer = comp.id;\n const graph = await this.graph.getGraphIds([compIdWithVer], { host: factory as any });\n\n return { graph, id: compIdWithVer };\n }\n\n async loadDependencies(component: ConsumerComponent, opts: DependencyLoaderOpts) {\n const dependenciesLoader = new DependenciesLoader(\n component,\n this.dependencyResolver,\n this.devFiles,\n this.aspectLoader\n );\n return dependenciesLoader.load(this.workspace, opts);\n }\n\n /**\n * load dependencies without the need for the workspace.\n * the \"auto-detect\" are passed here as \"dependenciesData\". the \"overrides\", such as dependencies from the env,\n * are calculated here.\n * eventually all these dependencies are added to the ConsumerComponent object.\n */\n async loadDependenciesFromScope(component: ConsumerComponent, dependenciesData: Partial<DependenciesData>) {\n const dependenciesLoader = new DependenciesLoader(\n component,\n this.dependencyResolver,\n this.devFiles,\n this.aspectLoader\n );\n return dependenciesLoader.loadFromScope(dependenciesData);\n }\n\n async debugDependencies(id: string): Promise<DependenciesResultsDebug> {\n // @todo: supports this on bare-scope.\n if (!this.workspace) throw new OutsideWorkspaceError();\n const compId = await this.workspace.resolveComponentId(id);\n const component = await this.workspace.get(compId);\n const consumerComponent = component.state._consumer as ConsumerComponent;\n\n const dependenciesData = await this.loadDependencies(consumerComponent, {\n cacheResolvedDependencies: {},\n useDependenciesCache: false,\n });\n\n const { missingPackageDependencies, manuallyAddedDependencies, manuallyRemovedDependencies } =\n dependenciesData.overridesDependencies;\n\n const results = this.dependencyResolver.getDependencies(component);\n const sources = results.map((dep) => ({ id: dep.id, source: dep.source }));\n\n return {\n ...dependenciesData.debugDependenciesData,\n manuallyRemovedDependencies,\n manuallyAddedDependencies,\n missingPackageDependencies,\n coreAspects: dependenciesData.dependenciesData.coreAspects,\n sources,\n };\n }\n\n /**\n * helps determine what snap/tag changed a specific dependency.\n * the results are sorted from the oldest to newest.\n */\n async blame(compName: string, depName: string) {\n const id = await this.workspace.resolveComponentId(compName);\n const log = await this.workspace.scope.getLogs(id);\n const blameResults: BlameResult[] = [];\n let lastVersion = '';\n await pMapSeries(log, async (logItem) => {\n const component = await this.workspace.get(id.changeVersion(logItem.tag || logItem.hash));\n const depList = this.dependencyResolver.getDependencies(component);\n const dependency = depList.findByPkgNameOrCompId(depName);\n if (dependency && dependency.version === lastVersion) {\n return;\n }\n let version: string;\n if (!dependency) {\n if (!lastVersion) return;\n version = '<REMOVED>';\n } else {\n version = dependency.version;\n }\n if (!dependency || dependency.version === lastVersion) return;\n lastVersion = dependency.version;\n blameResults.push({\n snap: logItem.hash,\n tag: logItem.tag,\n author: logItem.username || '<N/A>',\n date: logItem.date ? moment(new Date(parseInt(logItem.date))).format('YYYY-MM-DD HH:mm:ss') : '<N/A>',\n message: logItem.message,\n version,\n });\n });\n return blameResults;\n }\n\n async usageDeep(depName: string, opts?: { depth?: number }): Promise<string | undefined> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (!isComponentId(depName)) {\n return this.dependencyResolver.getPackageManager()?.findUsages?.(depName, {\n lockfileDir: this.workspace.path,\n depth: opts?.depth,\n });\n }\n return undefined;\n }\n\n /**\n * @param depName either component-id-string or package-name (of the component or not component)\n * @returns a map of component-id-string to the version of the dependency\n */\n async usage(depName: string): Promise<{ [compIdStr: string]: string }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const [name, version] = this.splitPkgToNameAndVer(depName);\n const allComps = await this.workspace.list();\n const results = {};\n await Promise.all(\n allComps.map(async (comp) => {\n const depList = this.dependencyResolver.getDependencies(comp);\n const dependency = depList.findByPkgNameOrCompId(name, version);\n if (dependency) {\n results[comp.id.toString()] = dependency.version;\n }\n })\n );\n return results;\n }\n\n private async getPackageNameAndVerResolved(pkg: string): Promise<[string, string]> {\n const resolveLatest = async (pkgName: string) => {\n const versionResolver = await this.dependencyResolver.getVersionResolver({});\n const resolved = await versionResolver.resolveRemoteVersion(pkgName, { rootDir: '' });\n if (!resolved.version) throw new Error(`unable to resolve version for ${pkgName}`);\n return resolved.version;\n };\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const versionResolved = !version || version === 'latest' ? await resolveLatest(name) : version;\n return [name, snapToSemver(versionResolved)];\n }\n\n private splitPkgToNameAndVer(pkg: string): [string, string | undefined] {\n const packageSplit = pkg.split('@');\n if (pkg.startsWith('@')) {\n // scoped package\n if (packageSplit.length > 3) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [`@${packageSplit[1]}`, packageSplit[2]];\n }\n if (packageSplit.length > 2) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [packageSplit[0], packageSplit[1]];\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n DependencyResolverAspect,\n DevFilesAspect,\n AspectLoaderAspect,\n ScopeAspect,\n GraphAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider([cli, workspace, depsResolver, devFiles, aspectLoader, scope, graph]: [\n CLIMain,\n Workspace,\n DependencyResolverMain,\n DevFilesMain,\n AspectLoaderMain,\n ScopeMain,\n GraphMain\n ]) {\n const depsMain = new DependenciesMain(workspace, scope, depsResolver, devFiles, aspectLoader, graph);\n const depsCmd = new DependenciesCmd();\n depsCmd.commands = [\n new DependenciesGetCmd(depsMain),\n new DependenciesRemoveCmd(depsMain),\n new DependenciesUnsetCmd(depsMain),\n new DependenciesDebugCmd(depsMain),\n new DependenciesSetCmd(depsMain),\n new DependenciesResetCmd(depsMain),\n new DependenciesEjectCmd(depsMain),\n new DependenciesBlameCmd(depsMain),\n new DependenciesUsageCmd(depsMain),\n ];\n cli.register(\n depsCmd,\n new WhyCmd(depsMain),\n new SetPeerCmd(depsMain),\n new UnsetPeerCmd(depsMain),\n new DependentsCmd()\n );\n\n ComponentLoader.loadDeps = depsMain.loadDependencies.bind(depsMain);\n\n return depsMain;\n }\n}\n\nfunction isComponentId(depName: string) {\n return depName.includes('/') && depName[0] !== '@';\n}\n\nDependenciesAspect.addRuntime(DependenciesMain);\n\nexport default DependenciesMain;\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_cli","data","require","_moment","_interopRequireDefault","_dependencyResolver","_workspace","_lodash","_pMapSeries","_componentLoader","_devFiles","_graph","_aspectLoader","_componentPackageVersion","_scope","_dependenciesLoader","_dependenciesCmd","_dependencies","_dependentsCmd","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DependenciesMain","constructor","workspace","scope","dependencyResolver","devFiles","aspectLoader","graph","setPeer","componentId","range","compId","resolveComponentId","config","peer","defaultPeerRange","addSpecificComponentConfig","DependencyResolverAspect","id","shouldMergeWithExisting","shouldMergeWithPrevious","bitMap","write","unsetPeer","getAspectConfigForComponent","addComponentConfig","setDependency","componentPattern","packages","options","compIds","idsByPattern","getDepField","dev","packagesObj","Promise","all","map","pkg","name","version","getPackageNameAndVerResolved","optional","policy","changedComps","toStringWithoutVersion","addedPackages","removeDependency","removeOnlyIfExists","getLifeCycle","results","pMapSeries","component","get","depList","getDependencies","getCurrentConfig","currentConfigFromWorkspace","getSpecificComponentConfig","extFromScope","getExtensionsFromScopeAndSpecific","toConfigObject","currentDepResolverConfig","newDepResolverConfig","cloneDeep","removedPackagesWithNulls","splitPkgToNameAndVer","dependency","findByPkgNameOrCompId","depName","getPackageName","depField","KEY_NAME_BY_LIFECYCLE_TYPE","existsInSpecificConfig","set","removedPackages","compact","reset","eject","factory","comp","compIdWithVer","getGraphIds","host","loadDependencies","opts","dependenciesLoader","DependenciesLoader","load","loadDependenciesFromScope","dependenciesData","loadFromScope","debugDependencies","OutsideWorkspaceError","consumerComponent","state","_consumer","cacheResolvedDependencies","useDependenciesCache","missingPackageDependencies","manuallyAddedDependencies","manuallyRemovedDependencies","overridesDependencies","sources","dep","source","debugDependenciesData","coreAspects","blame","compName","log","getLogs","blameResults","lastVersion","logItem","changeVersion","tag","hash","snap","author","username","date","moment","Date","parseInt","format","message","usageDeep","isComponentId","getPackageManager","findUsages","lockfileDir","path","depth","undefined","usage","allComps","list","toString","resolveLatest","pkgName","versionResolver","getVersionResolver","resolved","resolveRemoteVersion","rootDir","Error","versionResolved","snapToSemver","packageSplit","split","startsWith","provider","cli","depsResolver","depsMain","depsCmd","DependenciesCmd","commands","DependenciesGetCmd","DependenciesRemoveCmd","DependenciesUnsetCmd","DependenciesDebugCmd","DependenciesSetCmd","DependenciesResetCmd","DependenciesEjectCmd","DependenciesBlameCmd","DependenciesUsageCmd","register","WhyCmd","SetPeerCmd","UnsetPeerCmd","DependentsCmd","ComponentLoader","loadDeps","bind","exports","CLIAspect","WorkspaceAspect","DevFilesAspect","AspectLoaderAspect","ScopeAspect","GraphAspect","MainRuntime","includes","DependenciesAspect","addRuntime","_default"],"sources":["dependencies.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport moment from 'moment';\nimport { ComponentID } from '@teambit/component-id';\nimport {\n DependencyResolverAspect,\n DependencyResolverMain,\n KEY_NAME_BY_LIFECYCLE_TYPE,\n} from '@teambit/dependency-resolver';\nimport { WorkspaceAspect, OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { cloneDeep, compact, set } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport ComponentLoader, { DependencyLoaderOpts } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { DevFilesAspect, DevFilesMain } from '@teambit/dev-files';\nimport { GraphAspect, ComponentIdGraph, GraphMain } from '@teambit/graph';\nimport { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { DependenciesLoader } from './dependencies-loader/dependencies-loader';\nimport { DependenciesData, OverridesDependenciesData } from './dependencies-loader/dependencies-data';\nimport {\n DependenciesBlameCmd,\n DependenciesCmd,\n DependenciesDebugCmd,\n DependenciesEjectCmd,\n DependenciesGetCmd,\n DependenciesRemoveCmd,\n DependenciesResetCmd,\n DependenciesSetCmd,\n DependenciesUnsetCmd,\n DependenciesUsageCmd,\n RemoveDependenciesFlags,\n SetDependenciesFlags,\n SetPeerCmd,\n UnsetPeerCmd,\n WhyCmd,\n} from './dependencies-cmd';\nimport { DependenciesAspect } from './dependencies.aspect';\nimport { DebugDependencies } from './dependencies-loader/auto-detect-deps';\nimport { DependentsCmd } from './dependents-cmd';\n\nexport type RemoveDependencyResult = { id: ComponentID; removedPackages: string[] };\nexport type SetDependenciesResult = { changedComps: string[]; addedPackages: Record<string, string> };\nexport type DependenciesResultsDebug = DebugDependencies &\n OverridesDependenciesData & { coreAspects: string[]; sources: { id: string; source: string }[] };\n\nexport type DependenciesResults = {\n graph: ComponentIdGraph;\n id: ComponentID;\n};\n\nexport type BlameResult = {\n snap: string;\n tag?: string;\n author: string;\n date: string;\n message: string;\n version: string;\n};\n\nexport class DependenciesMain {\n constructor(\n private workspace: Workspace,\n private scope: ScopeMain,\n private dependencyResolver: DependencyResolverMain,\n private devFiles: DevFilesMain,\n private aspectLoader: AspectLoaderMain,\n private graph: GraphMain\n ) {}\n\n async setPeer(componentId: string, range?: string): Promise<void> {\n const compId = await this.workspace.resolveComponentId(componentId);\n const config = { peer: true, defaultPeerRange: range };\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n\n await this.workspace.bitMap.write(`set-peer (${componentId})`);\n }\n\n async unsetPeer(componentId: string): Promise<void> {\n const compId = await this.workspace.resolveComponentId(componentId);\n // const config = { peer: true, defaultPeerRange: range };\n const config = await this.workspace.getAspectConfigForComponent(compId, DependencyResolverAspect.id);\n if (config) {\n if ('peer' in config) {\n delete config.peer;\n }\n if ('defaultPeerRange' in config) {\n delete config.defaultPeerRange;\n }\n }\n this.workspace.bitMap.addComponentConfig(compId, DependencyResolverAspect.id, config);\n\n await this.workspace.bitMap.write(`unset-peer (${componentId})`);\n }\n\n async setDependency(\n componentPattern: string,\n packages: string[],\n options: SetDependenciesFlags = {}\n ): Promise<SetDependenciesResult> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const getDepField = () => {\n if (options.dev) return 'devDependencies';\n if (options.peer) return 'peerDependencies';\n return 'dependencies';\n };\n const packagesObj = {};\n await Promise.all(\n packages.map(async (pkg) => {\n const [name, version] = await this.getPackageNameAndVerResolved(pkg);\n if (options.optional) {\n packagesObj[name] = { optional: true, version };\n } else {\n packagesObj[name] = version;\n }\n })\n );\n const config = {\n policy: {\n [getDepField()]: packagesObj,\n },\n };\n await Promise.all(\n compIds.map(async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n })\n );\n\n await this.workspace.bitMap.write(`deps-set (${componentPattern})`);\n\n return {\n changedComps: compIds.map((compId) => compId.toStringWithoutVersion()),\n addedPackages: packagesObj,\n };\n }\n\n async removeDependency(\n componentPattern: string,\n packages: string[],\n options: RemoveDependenciesFlags = {},\n removeOnlyIfExists = false // unset\n ): Promise<RemoveDependencyResult[]> {\n const getLifeCycle = () => {\n if (options.dev) return 'dev';\n if (options.peer) return 'peer';\n return 'runtime';\n };\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const results = await pMapSeries(compIds, async (compId) => {\n const component = await this.workspace.get(compId);\n const depList = this.dependencyResolver.getDependencies(component);\n const getCurrentConfig = async () => {\n const currentConfigFromWorkspace = await this.workspace.getSpecificComponentConfig(\n compId,\n DependencyResolverAspect.id\n );\n if (currentConfigFromWorkspace) return currentConfigFromWorkspace;\n const extFromScope = await this.workspace.getExtensionsFromScopeAndSpecific(compId);\n return extFromScope?.toConfigObject()[DependencyResolverAspect.id];\n };\n const currentDepResolverConfig = await getCurrentConfig();\n const newDepResolverConfig = cloneDeep(currentDepResolverConfig || {});\n const removedPackagesWithNulls = await pMapSeries(packages, async (pkg) => {\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const dependency = depList.findByPkgNameOrCompId(name, version, getLifeCycle());\n if (!dependency) return null;\n const depName = dependency.getPackageName?.() || dependency.id;\n const depField = KEY_NAME_BY_LIFECYCLE_TYPE[getLifeCycle()];\n const existsInSpecificConfig = newDepResolverConfig.policy?.[depField]?.[depName];\n if (existsInSpecificConfig) {\n if (existsInSpecificConfig === '-') return null;\n delete newDepResolverConfig.policy[depField][depName];\n } else {\n if (removeOnlyIfExists) return null;\n set(newDepResolverConfig, ['policy', depField, depName], '-');\n }\n return `${depName}@${dependency.version}`;\n });\n const removedPackages = compact(removedPackagesWithNulls);\n if (!removedPackages.length) return null;\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, newDepResolverConfig);\n return { id: compId, removedPackages };\n });\n await this.workspace.bitMap.write(`deps-remove (${componentPattern})`);\n\n return compact(results);\n }\n\n async reset(componentPattern: string): Promise<ComponentID[]> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n await pMapSeries(compIds, async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, { policy: {} });\n });\n await this.workspace.bitMap.write(`deps-reset (${componentPattern})`);\n\n return compIds;\n }\n\n async eject(componentPattern: string): Promise<ComponentID[]> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n await pMapSeries(compIds, async (compId) => {\n await this.workspace.addSpecificComponentConfig(\n compId,\n DependencyResolverAspect.id,\n {},\n {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n }\n );\n });\n await this.workspace.bitMap.write(`deps-eject (${componentPattern})`);\n\n return compIds;\n }\n\n async getDependencies(id: string, scope?: boolean): Promise<DependenciesResults> {\n const factory = this.workspace && !scope ? this.workspace : this.scope;\n const compId = await (this.workspace || this.scope).resolveComponentId(id);\n const comp = await (this.workspace || this.scope).get(compId);\n const compIdWithVer = comp.id;\n const graph = await this.graph.getGraphIds([compIdWithVer], { host: factory as any });\n\n return { graph, id: compIdWithVer };\n }\n\n async loadDependencies(component: ConsumerComponent, opts: DependencyLoaderOpts) {\n const dependenciesLoader = new DependenciesLoader(\n component,\n this.dependencyResolver,\n this.devFiles,\n this.aspectLoader\n );\n return dependenciesLoader.load(this.workspace, opts);\n }\n\n /**\n * load dependencies without the need for the workspace.\n * the \"auto-detect\" are passed here as \"dependenciesData\". the \"overrides\", such as dependencies from the env,\n * are calculated here.\n * eventually all these dependencies are added to the ConsumerComponent object.\n */\n async loadDependenciesFromScope(component: ConsumerComponent, dependenciesData: Partial<DependenciesData>) {\n const dependenciesLoader = new DependenciesLoader(\n component,\n this.dependencyResolver,\n this.devFiles,\n this.aspectLoader\n );\n return dependenciesLoader.loadFromScope(dependenciesData);\n }\n\n async debugDependencies(id: string): Promise<DependenciesResultsDebug> {\n // @todo: supports this on bare-scope.\n if (!this.workspace) throw new OutsideWorkspaceError();\n const compId = await this.workspace.resolveComponentId(id);\n const component = await this.workspace.get(compId);\n const consumerComponent = component.state._consumer as ConsumerComponent;\n\n const dependenciesData = await this.loadDependencies(consumerComponent, {\n cacheResolvedDependencies: {},\n useDependenciesCache: false,\n });\n\n const { missingPackageDependencies, manuallyAddedDependencies, manuallyRemovedDependencies } =\n dependenciesData.overridesDependencies;\n\n const results = this.dependencyResolver.getDependencies(component);\n const sources = results.map((dep) => ({ id: dep.id, source: dep.source }));\n\n return {\n ...dependenciesData.debugDependenciesData,\n manuallyRemovedDependencies,\n manuallyAddedDependencies,\n missingPackageDependencies,\n coreAspects: dependenciesData.dependenciesData.coreAspects,\n sources,\n };\n }\n\n /**\n * helps determine what snap/tag changed a specific dependency.\n * the results are sorted from the oldest to newest.\n */\n async blame(compName: string, depName: string) {\n const id = await this.workspace.resolveComponentId(compName);\n const log = await this.workspace.scope.getLogs(id);\n const blameResults: BlameResult[] = [];\n let lastVersion = '';\n await pMapSeries(log, async (logItem) => {\n const component = await this.workspace.get(id.changeVersion(logItem.tag || logItem.hash));\n const depList = this.dependencyResolver.getDependencies(component);\n const dependency = depList.findByPkgNameOrCompId(depName);\n if (dependency && dependency.version === lastVersion) {\n return;\n }\n let version: string;\n if (!dependency) {\n if (!lastVersion) return;\n version = '<REMOVED>';\n } else {\n version = dependency.version;\n }\n if (!dependency || dependency.version === lastVersion) return;\n lastVersion = dependency.version;\n blameResults.push({\n snap: logItem.hash,\n tag: logItem.tag,\n author: logItem.username || '<N/A>',\n date: logItem.date ? moment(new Date(parseInt(logItem.date))).format('YYYY-MM-DD HH:mm:ss') : '<N/A>',\n message: logItem.message,\n version,\n });\n });\n return blameResults;\n }\n\n async usageDeep(depName: string, opts?: { depth?: number }): Promise<string | undefined> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (!isComponentId(depName)) {\n return this.dependencyResolver.getPackageManager()?.findUsages?.(depName, {\n lockfileDir: this.workspace.path,\n depth: opts?.depth,\n });\n }\n return undefined;\n }\n\n /**\n * @param depName either component-id-string or package-name (of the component or not component)\n * @returns a map of component-id-string to the version of the dependency\n */\n async usage(depName: string): Promise<{ [compIdStr: string]: string }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const [name, version] = this.splitPkgToNameAndVer(depName);\n const allComps = await this.workspace.list();\n const results = {};\n await Promise.all(\n allComps.map(async (comp) => {\n const depList = this.dependencyResolver.getDependencies(comp);\n const dependency = depList.findByPkgNameOrCompId(name, version);\n if (dependency) {\n results[comp.id.toString()] = dependency.version;\n }\n })\n );\n return results;\n }\n\n private async getPackageNameAndVerResolved(pkg: string): Promise<[string, string]> {\n const resolveLatest = async (pkgName: string) => {\n const versionResolver = await this.dependencyResolver.getVersionResolver({});\n const resolved = await versionResolver.resolveRemoteVersion(pkgName, { rootDir: '' });\n if (!resolved.version) throw new Error(`unable to resolve version for ${pkgName}`);\n return resolved.version;\n };\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const versionResolved = !version || version === 'latest' ? await resolveLatest(name) : version;\n return [name, snapToSemver(versionResolved)];\n }\n\n private splitPkgToNameAndVer(pkg: string): [string, string | undefined] {\n const packageSplit = pkg.split('@');\n if (pkg.startsWith('@')) {\n // scoped package\n if (packageSplit.length > 3) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [`@${packageSplit[1]}`, packageSplit[2]];\n }\n if (packageSplit.length > 2) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [packageSplit[0], packageSplit[1]];\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n DependencyResolverAspect,\n DevFilesAspect,\n AspectLoaderAspect,\n ScopeAspect,\n GraphAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider([cli, workspace, depsResolver, devFiles, aspectLoader, scope, graph]: [\n CLIMain,\n Workspace,\n DependencyResolverMain,\n DevFilesMain,\n AspectLoaderMain,\n ScopeMain,\n GraphMain,\n ]) {\n const depsMain = new DependenciesMain(workspace, scope, depsResolver, devFiles, aspectLoader, graph);\n const depsCmd = new DependenciesCmd();\n depsCmd.commands = [\n new DependenciesGetCmd(depsMain),\n new DependenciesRemoveCmd(depsMain),\n new DependenciesUnsetCmd(depsMain),\n new DependenciesDebugCmd(depsMain),\n new DependenciesSetCmd(depsMain),\n new DependenciesResetCmd(depsMain),\n new DependenciesEjectCmd(depsMain),\n new DependenciesBlameCmd(depsMain),\n new DependenciesUsageCmd(depsMain),\n ];\n cli.register(\n depsCmd,\n new WhyCmd(depsMain),\n new SetPeerCmd(depsMain),\n new UnsetPeerCmd(depsMain),\n new DependentsCmd()\n );\n\n ComponentLoader.loadDeps = depsMain.loadDependencies.bind(depsMain);\n\n return depsMain;\n }\n}\n\nfunction isComponentId(depName: string) {\n return depName.includes('/') && depName[0] !== '@';\n}\n\nDependenciesAspect.addRuntime(DependenciesMain);\n\nexport default DependenciesMain;\n"],"mappings":"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","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_legacy","data","require","_resolvePkgData","_generateTreeMadge","_lodash","MissingHandler","constructor","missing","componentDir","workspacePath","groupAndFindMissing","missingGroups","groupMissingByType","forEach","group","packages","map","resolvePackageNameByPath","foundPackages","components","processMissingGroup","missingPackages","packageName","includes","resolvedPath","resolvePackagePath","push","resolvedPackageData","resolvePackageData","componentId","version","versionUsedByDependent","concreteVersion","Error","packageWithVersion","name","Object","assign","byPathType","item","startsWith","keys","key","originFile","processPath","groupBy","exports"],"sources":["missing-handler.ts"],"sourcesContent":["import { resolvePackageNameByPath, resolvePackagePath } from '@teambit/legacy.utils';\nimport { ResolvedPackageData, resolvePackageData } from '../resolve-pkg-data';\nimport { processPath, Missing } from './generate-tree-madge';\nimport { groupBy } from 'lodash';\n\nexport type MissingGroupItem = { originFile: string; packages?: string[]; files?: string[] };\nexport type FoundPackages = {\n packages: { [packageName: string]: string };\n components: ResolvedPackageData[];\n};\n\nexport class MissingHandler {\n constructor(private missing: Missing
|
1
|
+
{"version":3,"names":["_legacy","data","require","_resolvePkgData","_generateTreeMadge","_lodash","MissingHandler","constructor","missing","componentDir","workspacePath","groupAndFindMissing","missingGroups","groupMissingByType","forEach","group","packages","map","resolvePackageNameByPath","foundPackages","components","processMissingGroup","missingPackages","packageName","includes","resolvedPath","resolvePackagePath","push","resolvedPackageData","resolvePackageData","componentId","version","versionUsedByDependent","concreteVersion","Error","packageWithVersion","name","Object","assign","byPathType","item","startsWith","keys","key","originFile","processPath","groupBy","exports"],"sources":["missing-handler.ts"],"sourcesContent":["import { resolvePackageNameByPath, resolvePackagePath } from '@teambit/legacy.utils';\nimport { ResolvedPackageData, resolvePackageData } from '../resolve-pkg-data';\nimport { processPath, Missing } from './generate-tree-madge';\nimport { groupBy } from 'lodash';\n\nexport type MissingGroupItem = { originFile: string; packages?: string[]; files?: string[] };\nexport type FoundPackages = {\n packages: { [packageName: string]: string };\n components: ResolvedPackageData[];\n};\n\nexport class MissingHandler {\n constructor(\n private missing: Missing,\n private componentDir: string,\n private workspacePath: string\n ) {}\n\n /**\n * Run over each entry in the missing array and transform the missing from list of paths\n * to object with missing types\n */\n groupAndFindMissing(): { missingGroups: MissingGroupItem[]; foundPackages: FoundPackages } {\n const missingGroups: MissingGroupItem[] = this.groupMissingByType();\n missingGroups.forEach((group: MissingGroupItem) => {\n if (group.packages) group.packages = group.packages.map(resolvePackageNameByPath);\n });\n // This is a hack to solve problems that madge has with packages for type script files\n // It see them as missing even if they are exists\n const foundPackages: FoundPackages = {\n packages: {},\n components: [],\n };\n missingGroups.forEach((group) => this.processMissingGroup(group, foundPackages));\n\n return { missingGroups, foundPackages };\n }\n\n private processMissingGroup(group: MissingGroupItem, foundPackages: FoundPackages) {\n if (!group.packages) return;\n const missingPackages: string[] = [];\n group.packages.forEach((packageName) => {\n // Don't try to resolve the same package twice\n if (missingPackages.includes(packageName)) return;\n const resolvedPath = resolvePackagePath(packageName, this.componentDir, this.workspacePath);\n if (!resolvedPath) {\n missingPackages.push(packageName);\n return;\n }\n const resolvedPackageData = resolvePackageData(this.componentDir, resolvedPath);\n if (!resolvedPackageData) {\n missingPackages.push(packageName);\n return;\n }\n // if the package is actually a component add it to the components list\n if (resolvedPackageData.componentId) {\n foundPackages.components.push(resolvedPackageData);\n } else {\n const version = resolvedPackageData.versionUsedByDependent || resolvedPackageData.concreteVersion;\n if (!version) throw new Error(`unable to find the version for a package ${packageName}`);\n const packageWithVersion = {\n [resolvedPackageData.name]: version,\n };\n Object.assign(foundPackages.packages, packageWithVersion);\n }\n });\n }\n\n /**\n * Group missing dependencies by types (files, packages)\n * @param {Array} missing list of missing paths to group\n * @returns {Function} function which group the dependencies\n */\n private groupMissingByType(): MissingGroupItem[] {\n const byPathType = (item) => (item.startsWith('.') ? 'files' : 'packages');\n return Object.keys(this.missing).map((key) =>\n Object.assign({ originFile: processPath(key, {}, this.componentDir) }, groupBy(this.missing[key], byPathType))\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -10,7 +10,11 @@ export type FoundPackages = {
|
|
10
10
|
};
|
11
11
|
|
12
12
|
export class MissingHandler {
|
13
|
-
constructor(
|
13
|
+
constructor(
|
14
|
+
private missing: Missing,
|
15
|
+
private componentDir: string,
|
16
|
+
private workspacePath: string
|
17
|
+
) {}
|
14
18
|
|
15
19
|
/**
|
16
20
|
* Run over each entry in the missing array and transform the missing from list of paths
|
package/package.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@teambit/dependencies",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.426",
|
4
4
|
"homepage": "https://bit.cloud/teambit/dependencies/dependencies",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"componentId": {
|
7
7
|
"scope": "teambit.dependencies",
|
8
8
|
"name": "dependencies",
|
9
|
-
"version": "1.0.
|
9
|
+
"version": "1.0.426"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
12
|
"archy": "1.0.0",
|
@@ -38,19 +38,19 @@
|
|
38
38
|
"@teambit/styling.deps-detectors.detective-sass": "0.0.9",
|
39
39
|
"@teambit/styling.deps-detectors.detective-scss": "0.0.9",
|
40
40
|
"@teambit/typescript.deps-detectors.detective-typescript": "0.0.8",
|
41
|
-
"@teambit/cli": "0.0.
|
42
|
-
"@teambit/graph": "1.0.
|
43
|
-
"@teambit/aspect-loader": "1.0.
|
41
|
+
"@teambit/cli": "0.0.1003",
|
42
|
+
"@teambit/graph": "1.0.426",
|
43
|
+
"@teambit/aspect-loader": "1.0.426",
|
44
44
|
"@teambit/component-package-version": "0.0.434",
|
45
|
-
"@teambit/dependency-resolver": "1.0.
|
46
|
-
"@teambit/dev-files": "1.0.
|
47
|
-
"@teambit/scope": "1.0.
|
48
|
-
"@teambit/workspace": "1.0.
|
49
|
-
"@teambit/component.sources": "0.0.
|
45
|
+
"@teambit/dependency-resolver": "1.0.426",
|
46
|
+
"@teambit/dev-files": "1.0.426",
|
47
|
+
"@teambit/scope": "1.0.426",
|
48
|
+
"@teambit/workspace": "1.0.426",
|
49
|
+
"@teambit/component.sources": "0.0.34",
|
50
50
|
"@teambit/legacy.utils": "0.0.6",
|
51
51
|
"@teambit/toolbox.path.path": "0.0.4",
|
52
52
|
"@teambit/component-issues": "0.0.151",
|
53
|
-
"@teambit/legacy.bit-map": "0.0.
|
53
|
+
"@teambit/legacy.bit-map": "0.0.38",
|
54
54
|
"@teambit/toolbox.fs.extension-getter": "0.0.1",
|
55
55
|
"@teambit/toolbox.fs.last-modified": "0.0.1"
|
56
56
|
},
|
@@ -65,8 +65,8 @@
|
|
65
65
|
"@types/mocha": "9.1.0",
|
66
66
|
"@teambit/defender.fs.global-bit-temp-dir": "0.0.1",
|
67
67
|
"@teambit/harmony.envs.core-aspect-env": "0.0.60",
|
68
|
-
"@teambit/component.testing.mock-components": "0.0.
|
69
|
-
"@teambit/harmony.testing.load-aspect": "0.0.
|
68
|
+
"@teambit/component.testing.mock-components": "0.0.240",
|
69
|
+
"@teambit/harmony.testing.load-aspect": "0.0.235",
|
70
70
|
"@teambit/workspace.testing.mock-workspace": "0.0.27"
|
71
71
|
},
|
72
72
|
"peerDependencies": {
|
File without changes
|