@teambit/dependencies 1.0.331 → 1.0.333

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.
@@ -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.331" tests="169" failures="0" errors="0" skipped="33">
4
- <testcase classname="dist/dependencies.spec.js" name="should add the snap prefix" time="0.001"/>
3
+ <testsuite name="teambit.dependencies/dependencies@1.0.333" 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
5
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/testing-library__jest-dom" time="0.001"/>
6
- <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/chai"/>
6
+ <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/chai" time="0.001"/>
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"/>
@@ -11,7 +11,7 @@
11
11
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/didyoumean"/>
12
12
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/eslint"/>
13
13
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/express"/>
14
- <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/find-cache-dir"/>
14
+ <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/find-cache-dir" time="0.001"/>
15
15
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/find-root"/>
16
16
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/history"/>
17
17
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/http-proxy-agent"/>
@@ -28,19 +28,19 @@
28
28
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/puppeteer"/>
29
29
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/react"/>
30
30
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/react-dom"/>
31
- <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/react-router-dom"/>
31
+ <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/react-router-dom" time="0.001"/>
32
32
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/react-tabs"/>
33
33
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/react-tooltip"/>
34
34
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/socket.io-client"/>
35
35
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/ua-parser-js"/>
36
36
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/url-join"/>
37
- <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/url-parse"/>
37
+ <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/url-parse" time="0.001"/>
38
38
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/webpack"/>
39
39
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/webpack-dev-server"/>
40
40
  <testcase classname="dist/dependencies-loader/package-to-definetly-typed.spec.js" name="should map to @types/webpack-merge"/>
41
- <testcase classname="dist/files-dependency-builder/build-tree.spec.js" name="when no files are passed should return an empty tree"/>
42
- <testcase classname="dist/files-dependency-builder/build-tree.spec.js" name="when unsupported files are passed should return them with no dependencies"/>
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.082"/>
41
+ <testcase classname="dist/files-dependency-builder/build-tree.spec.js" name="when no files are passed should return an empty tree" time="0.002"/>
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.094"/>
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>
@@ -62,49 +62,140 @@
62
62
  <testcase classname="dist/files-dependency-builder/build-tree.spec.js" name="it should add the missing package to the missing section in the tree">
63
63
  <skipped/>
64
64
  </testcase>
65
- <testcase classname="dist/files-dependency-builder/build-tree.spec.js" name="should not throw an error and should remove itself from the dependencies files"/>
65
+ <testcase classname="dist/files-dependency-builder/build-tree.spec.js" name="should not throw an error and should remove itself from the dependencies files" time="0.001"/>
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/filing-cabinet/index.spec.js" name="uses a generic resolve for unsupported file extensions" time="0.001"/>
69
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns an empty object for a non-existent filename" time="0.002"/>
70
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="handles nested tree structures" time="0.006"/>
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.192"/>
73
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="excludes Nodejs core modules by default" time="0.001"/>
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.055"/>
76
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="stores the invalid partials" time="0.001"/>
77
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="does not store anything" time="0.002"/>
78
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="stores the invalid ones" time="0.002"/>
79
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should include the non-existent partial per file" time="0.002"/>
80
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="throws if the filename is missing"/>
81
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="throws if the root is missing"/>
82
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="throws if a supplied filter is not a function"/>
83
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="does not throw on the legacy `root` option"/>
84
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="does not throw"/>
85
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns no dependencies"/>
86
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns the precomputed list of a cached entry point"/>
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.001"/>
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
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="resolves files that have jsx" time="0.002"/>
90
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="resolves files with a jsx extension" time="0.002"/>
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.006"/>
93
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns an object form of the dependency tree for a file"/>
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.003"/>
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.014"/>
96
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="resolves unaliased modules">
97
+ <skipped/>
98
+ </testcase>
99
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="uses the filter to determine if a file should be included in the results" time="0.002"/>
100
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="includes the lazy dependency" time="0.001"/>
101
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="includes the lazy dependency" time="0.001"/>
102
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="includes the dynamic import"/>
103
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should include it as a dependency and not throw an error" time="0.001"/>
104
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="it includes the module entry as dependency">
105
+ <skipped/>
106
+ </testcase>
107
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="retains the detective config in the clone" time="0.001"/>
108
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should not override the cache with wrong packages" time="0.003"/>
109
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should not crash with &quot;RangeError: Maximum call stack size exceeded&quot; error" time="0.001"/>
110
+ <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should not show missing dependencies" time="0.001"/>
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/precinct/index.spec.js" name="accepts an AST"/>
114
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="dangles off a given ast" time="0.001"/>
115
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="dangles off the parsed ast from a .js file" time="0.001"/>
116
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="dangles off the parsed ast from a scss detective" time="0.001"/>
117
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="dangles off the parsed ast from a sass detective" time="0.005"/>
118
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of amd modules" time="0.001"/>
119
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of commonjs modules" time="0.001"/>
120
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of es6 modules" time="0.001"/>
121
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of es6 modules with embedded jsx" time="0.001"/>
122
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of es6 modules with embedded es7"/>
123
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="throws errors of es6 modules with syntax errors" time="0.001"/>
124
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of css files">
125
+ <skipped/>
126
+ </testcase>
127
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of scss files" time="0.001"/>
128
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of sass files" time="0.001"/>
129
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of stylus files"/>
130
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of less files" time="0.001"/>
131
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of typescript files">
132
+ <skipped/>
133
+ </testcase>
134
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="throws errors of typescript modules with syntax errors" time="0.001"/>
135
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="supports the object form of type configuration"/>
136
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="yields no dependencies for es6 modules with no imports" time="0.001"/>
137
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="yields no dependencies for non-modules" time="0.001"/>
138
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="throw on unparsable .js files"/>
139
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="does not blow up when parsing a gruntfile #2" time="0.001"/>
140
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="returns the dependencies for the given filepath">
141
+ <skipped/>
142
+ </testcase>
143
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="throws if the file cannot be found" time="0.007"/>
144
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="filters out core modules if options.includeCore is false" time="0.001"/>
145
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="does not filter out core modules by default">
146
+ <skipped/>
147
+ </testcase>
148
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="supports passing detective configuration">
149
+ <skipped/>
150
+ </testcase>
151
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="supports passing env detectors" time="0.001"/>
152
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="still does not filter out core module by default">
153
+ <skipped/>
154
+ </testcase>
155
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="passes amd config to the amd detective" time="0.001"/>
156
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="returns both the commonjs and es6 dependencies" time="0.001"/>
157
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="returns both the commonjs and es6 dependencies" time="0.001"/>
158
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs those lazy dependencies" time="0.001"/>
159
+ <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs the lazy imports" time="0.001"/>
160
+ <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="uses a generic resolve for unsupported file extensions" time="0.002"/>
70
161
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="reuses the ast when trying to determine the module type"/>
71
162
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves the dependency successfully"/>
72
- <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="uses the filename to look for the module type" time="0.002"/>
163
+ <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="uses the filename to look for the module type" time="0.001"/>
73
164
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="assumes commonjs for es6 modules with no requirejs/webpack config">
74
165
  <skipped/>
75
166
  </testcase>
76
- <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves files with the .jsx extension" time="0.002"/>
167
+ <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves files with the .jsx extension" time="0.001"/>
77
168
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="uses require's resolver">
78
169
  <skipped/>
79
170
  </testcase>
80
171
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="returns an empty string for an unresolved module" time="0.001"/>
81
172
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="adds the directory to the require resolution paths" time="0.002"/>
82
- <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves a relative dependency about the filename" time="0.001"/>
83
- <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"/>
173
+ <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves a relative dependency about the filename"/>
174
+ <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves a .. dependency to its parent directory's index.js file"/>
84
175
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves a dependency within a directory outside of the given file">
85
176
  <skipped/>
86
177
  </testcase>
87
178
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves a node module with module entry in package.json">
88
179
  <skipped/>
89
180
  </testcase>
90
- <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves a nested module"/>
181
+ <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves a nested module" time="0.001"/>
91
182
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves to the index.js file of a directory" time="0.001"/>
92
183
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves implicit .jsx requires" time="0.001"/>
93
184
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves implicit .scss requires"/>
94
- <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves implicit .json requires" time="0.001"/>
95
- <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves an import" time="0.003"/>
96
- <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="returns an empty result" time="0.002"/>
185
+ <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves implicit .json requires"/>
186
+ <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves an import" time="0.001"/>
187
+ <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="returns an empty result" time="0.001"/>
97
188
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="uses the sass resolver for .scss files"/>
98
189
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="uses the sass resolver for .sass files"/>
99
- <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="uses the stylus resolver" time="0.001"/>
100
- <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves extensionless dependencies"/>
190
+ <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="uses the stylus resolver"/>
191
+ <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves extensionless dependencies" time="0.001"/>
101
192
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves dependencies with a less extension"/>
102
- <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves dependencies with a css extension" time="0.001"/>
193
+ <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="resolves dependencies with a css extension"/>
103
194
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="uses a generic resolve for unsupported file extensions"/>
104
195
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="supports passing env detectors"/>
105
- <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="registers a custom resolver for a given extension" time="0.127"/>
196
+ <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="registers a custom resolver for a given extension" time="0.002"/>
106
197
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="allows does not break default resolvers" time="0.001"/>
107
- <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="can be called multiple times"/>
198
+ <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="can be called multiple times" time="0.001"/>
108
199
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="does not add redundant extensions to supportedFileExtensions"/>
109
200
  <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)">
110
201
  <skipped/>
@@ -145,96 +236,5 @@
145
236
  <testcase classname="dist/files-dependency-builder/filing-cabinet/index.spec.js" name="still works">
146
237
  <skipped/>
147
238
  </testcase>
148
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns an empty object for a non-existent filename" time="0.001"/>
149
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="handles nested tree structures" time="0.009"/>
150
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="does not include files that are not real (#13)" time="0.002"/>
151
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="does not choke on cyclic dependencies" time="0.005"/>
152
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="excludes Nodejs core modules by default" time="0.001"/>
153
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns a list of absolutely pathed files"/>
154
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="passes it through to precinct" time="0.058"/>
155
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="stores the invalid partials" time="0.002"/>
156
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="does not store anything" time="0.001"/>
157
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="stores the invalid ones" time="0.002"/>
158
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should include the non-existent partial per file" time="0.003"/>
159
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="throws if the filename is missing"/>
160
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="throws if the root is missing"/>
161
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="throws if a supplied filter is not a function"/>
162
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="does not throw on the legacy `root` option" time="0.001"/>
163
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="does not throw"/>
164
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns no dependencies"/>
165
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="returns the precomputed list of a cached entry point"/>
166
- <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"/>
167
- <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"/>
168
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="resolves files that have jsx" time="0.001"/>
169
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="resolves files with a jsx extension" time="0.002"/>
170
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="resolves files that have es7" time="0.001"/>
171
- <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"/>
172
- <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"/>
173
- <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"/>
174
- <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"/>
175
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="resolves unaliased modules">
176
- <skipped/>
177
- </testcase>
178
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="uses the filter to determine if a file should be included in the results" time="0.002"/>
179
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="includes the lazy dependency" time="0.001"/>
180
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="includes the lazy dependency" time="0.001"/>
181
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="includes the dynamic import" time="0.001"/>
182
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should include it as a dependency and not throw an error" time="0.001"/>
183
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="it includes the module entry as dependency">
184
- <skipped/>
185
- </testcase>
186
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="retains the detective config in the clone" time="0.001"/>
187
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should not override the cache with wrong packages" time="0.003"/>
188
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should not crash with &quot;RangeError: Maximum call stack size exceeded&quot; error" time="0.001"/>
189
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should not show missing dependencies" time="0.001"/>
190
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should not show missing dependencies when importing from https" time="0.001"/>
191
- <testcase classname="dist/files-dependency-builder/dependency-tree/index.spec.js" name="should not show missing dependencies when importing from http" time="0.001"/>
192
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="accepts an AST" time="0.001"/>
193
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="dangles off a given ast"/>
194
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="dangles off the parsed ast from a .js file" time="0.002"/>
195
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="dangles off the parsed ast from a scss detective" time="0.001"/>
196
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="dangles off the parsed ast from a sass detective" time="0.004"/>
197
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of amd modules" time="0.001"/>
198
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of commonjs modules" time="0.001"/>
199
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of es6 modules" time="0.001"/>
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" time="0.001"/>
202
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="throws errors of es6 modules with syntax errors" time="0.001"/>
203
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of css files">
204
- <skipped/>
205
- </testcase>
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"/>
210
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs dependencies of typescript files">
211
- <skipped/>
212
- </testcase>
213
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="throws errors of typescript modules with syntax errors"/>
214
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="supports the object form of type configuration"/>
215
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="yields no dependencies for es6 modules with no imports" time="0.001"/>
216
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="yields no dependencies for non-modules" time="0.001"/>
217
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="throw on unparsable .js files"/>
218
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="does not blow up when parsing a gruntfile #2" time="0.001"/>
219
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="returns the dependencies for the given filepath">
220
- <skipped/>
221
- </testcase>
222
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="throws if the file cannot be found" time="0.001"/>
223
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="filters out core modules if options.includeCore is false" time="0.001"/>
224
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="does not filter out core modules by default">
225
- <skipped/>
226
- </testcase>
227
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="supports passing detective configuration">
228
- <skipped/>
229
- </testcase>
230
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="supports passing env detectors" time="0.001"/>
231
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="still does not filter out core module by default">
232
- <skipped/>
233
- </testcase>
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"/>
236
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="returns both the commonjs and es6 dependencies"/>
237
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs those lazy dependencies" time="0.001"/>
238
- <testcase classname="dist/files-dependency-builder/precinct/index.spec.js" name="grabs the lazy imports" time="0.001"/>
239
239
  </testsuite>
240
240
  </testsuites>
@@ -4525,7 +4525,7 @@
4525
4525
  "componentId": {
4526
4526
  "scope": "teambit.dependencies",
4527
4527
  "name": "dependencies",
4528
- "version": "1.0.331"
4528
+ "version": "1.0.333"
4529
4529
  },
4530
4530
  "taggedModuleExports": []
4531
4531
  }
@@ -4,7 +4,7 @@ import { cloneDeep, difference, forEach, isEmpty, pick, pickBy, uniq } from 'lod
4
4
  import { IssuesList, IssuesClasses, MissingPackagesData } from '@teambit/component-issues';
5
5
  import { DEPENDENCIES_FIELDS, MANUALLY_REMOVE_DEPENDENCY } from '@teambit/legacy/dist/constants';
6
6
  import Component from '@teambit/legacy/dist/consumer/component/consumer-component';
7
- import PackageJsonFile from '@teambit/legacy/dist/consumer/component/package-json-file';
7
+ import { PackageJsonFile } from '@teambit/component.sources';
8
8
  import { PathLinux, resolvePackagePath } from '@teambit/legacy.utils';
9
9
  import { ResolvedPackageData, resolvePackageData } from '../resolve-pkg-data';
10
10
  import { Workspace } from '@teambit/workspace';
@@ -39,9 +39,9 @@ function _constants() {
39
39
  };
40
40
  return data;
41
41
  }
42
- function _packageJsonFile() {
43
- const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/component/package-json-file"));
44
- _packageJsonFile = function () {
42
+ function _component() {
43
+ const data = require("@teambit/component.sources");
44
+ _component = function () {
45
45
  return data;
46
46
  };
47
47
  return data;
@@ -544,7 +544,7 @@ class ApplyOverrides {
544
544
  if (this.componentFromModel && this.component.componentMap) {
545
545
  // a component is imported but the package.json file is missing or never written
546
546
  // read the values from the model
547
- const packageJson = _packageJsonFile().default.createFromComponent(this.component.componentMap.rootDir, this.componentFromModel);
547
+ const packageJson = _component().PackageJsonFile.createFromComponent(this.component.componentMap.rootDir, this.componentFromModel);
548
548
  return packageJson.packageJsonObject;
549
549
  }
550
550
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"names":["_path","data","_interopRequireDefault","require","_componentId","_lodash","_componentIssues","_constants","_packageJsonFile","_legacy","_resolvePkgData","_dependencies","_overridesDependencies","_dependenciesData","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","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","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","dependency","versionRange","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","componentPeers","Set","map","has","getNotRegularPackages","difference","pick","componentDepsIds","ComponentIdList","c","getPeerDependencies","_getPackageJsonFromComponentModel","projectPeerDependencies","peerPackages","shouldIgnorePeerPackage","field","includes","pkgJsonPeer","pkgJsonRegularDeps","peerDeps","_pkgVal","peerVersionFromPkgJson","regularVersionFromPkgJson","wsPolicy","getWorkspacePolicyManifest","wsPeer","wsRegular","peerPackageDeps","peerVersionFromWsPolicy","regularVersionFromWsPolicy","version","isNaN","originallyExists","flat","pkgVal","existsInCompsDeps","existsInCompsDevDeps","existsInCompsPeerDeps","key","MANUALLY_REMOVE_DEPENDENCY","comp","envPolicy","getEnvPolicyFromEnvId","envPolicyManifest","selfPolicy","toVersionManifest","deps","peerVersionFromEnvPolicy","packageJsonObject","PackageJsonFile","createFromComponent","isLegacy","getOrCreate","LegacyInsideHarmony","Error","exports"],"sources":["apply-overrides.ts"],"sourcesContent":["import path from 'path';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { cloneDeep, difference, forEach, isEmpty, pick, pickBy, 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 { PathLinux, resolvePackagePath } from '@teambit/legacy.utils';\nimport { ResolvedPackageData, resolvePackageData } from '../resolve-pkg-data';\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.bit-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 peerDependencies: 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 peerDependencies: [],\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 = 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 = pickBy(\n this.allPackagesDependencies.packageDependencies,\n shouldBeIncluded\n );\n this.allPackagesDependencies.devPackageDependencies = pickBy(\n this.allPackagesDependencies.devPackageDependencies,\n shouldBeIncludedDev\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 dependency: string,\n versionRange: string\n ): { componentId?: ComponentID; packageName?: string; versionRange: string } {\n const packageData = this._resolvePackageData(dependency);\n return { componentId: packageData?.componentId, packageName: packageData?.name, versionRange };\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(dependency, dependencyValue);\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(\n new Dependency(depData.componentId, [], depData.packageName, depData.versionRange)\n )\n );\n }\n if (packages[depField] && !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 if (components.peerDependencies) {\n const componentPeers = new Set(components.peerDependencies.map(({ packageName }) => packageName));\n this.allDependencies.dependencies = this.allDependencies.dependencies.filter(\n (dep) => !dep.packageName || !componentPeers.has(dep.packageName)\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 difference(Object.keys(packages), Object.keys(this.allPackagesDependencies.packageDependencies));\n this.allPackagesDependencies.devPackageDependencies = pick(\n this.allPackagesDependencies.devPackageDependencies,\n getNotRegularPackages(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 (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 forEach(this.allPackagesDependencies[field], (_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 });\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 peerPackageDeps = 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 forEach(this.allPackagesDependencies[field], (_pkgVal, pkgName) => {\n const peerVersionFromWsPolicy = wsPeer[pkgName];\n const regularVersionFromWsPolicy = wsRegular[pkgName];\n if (peerVersionFromWsPolicy) {\n delete this.allPackagesDependencies[field][pkgName];\n peerPackageDeps[pkgName] = peerVersionFromWsPolicy;\n } else if (regularVersionFromWsPolicy) {\n delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];\n this.allPackagesDependencies[field][pkgName] = regularVersionFromWsPolicy;\n }\n });\n });\n this.allPackagesDependencies.peerPackageDependencies = peerPackageDeps;\n\n const peerDeps = this.allDependencies.peerDependencies ?? [];\n ['dependencies', 'devDependencies'].forEach((field) => {\n for (const dep of this.allDependencies[field]) {\n const pkgName = dep.packageName;\n const peerVersionFromWsPolicy = wsPeer[pkgName];\n const regularVersionFromWsPolicy = wsRegular[pkgName];\n if (peerVersionFromWsPolicy) {\n dep.versionRange = peerVersionFromWsPolicy;\n peerDeps.push(dep);\n } else if (regularVersionFromWsPolicy) {\n dep.versionRange = regularVersionFromWsPolicy;\n }\n }\n this.allDependencies[field] = this.allDependencies[field].filter(({ packageName }) => !wsPeer[packageName]);\n });\n this.allDependencies.peerDependencies = 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 forEach(autoDetectOverrides[field], (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 const existsInCompsPeerDeps = this.allDependencies.peerDependencies.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 !existsInCompsPeerDeps &&\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 if ((existsInCompsDeps || existsInCompsDevDeps) && field === 'peerDependencies') {\n const comp = (existsInCompsDeps ?? existsInCompsDevDeps) as Dependency;\n comp.versionRange = pkgVal;\n this.allDependencies.peerDependencies.push(comp);\n } else {\n this.allPackagesDependencies[key][pkgName] = pkgVal;\n }\n if (existsInCompsPeerDeps) {\n existsInCompsPeerDeps.versionRange = pkgVal;\n }\n }\n });\n });\n }\n\n private async applyAutoDetectedPeersFromEnvOnEnvItSelf(): Promise<void> {\n const envPolicy = await this.depsResolver.getEnvPolicyFromEnvId(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 forEach(this.allPackagesDependencies[field], (_pkgVal, pkgName) => {\n const peerVersionFromEnvPolicy = envPolicyManifest[pkgName];\n if (peerVersionFromEnvPolicy) {\n delete this.allPackagesDependencies[field][pkgName];\n }\n });\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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","ignoreList":[]}
1
+ {"version":3,"names":["_path","data","_interopRequireDefault","require","_componentId","_lodash","_componentIssues","_constants","_component","_legacy","_resolvePkgData","_dependencies","_overridesDependencies","_dependenciesData","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","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","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","dependency","versionRange","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","componentPeers","Set","map","has","getNotRegularPackages","difference","pick","componentDepsIds","ComponentIdList","c","getPeerDependencies","_getPackageJsonFromComponentModel","projectPeerDependencies","peerPackages","shouldIgnorePeerPackage","field","includes","pkgJsonPeer","pkgJsonRegularDeps","peerDeps","_pkgVal","peerVersionFromPkgJson","regularVersionFromPkgJson","wsPolicy","getWorkspacePolicyManifest","wsPeer","wsRegular","peerPackageDeps","peerVersionFromWsPolicy","regularVersionFromWsPolicy","version","isNaN","originallyExists","flat","pkgVal","existsInCompsDeps","existsInCompsDevDeps","existsInCompsPeerDeps","key","MANUALLY_REMOVE_DEPENDENCY","comp","envPolicy","getEnvPolicyFromEnvId","envPolicyManifest","selfPolicy","toVersionManifest","deps","peerVersionFromEnvPolicy","packageJsonObject","PackageJsonFile","createFromComponent","isLegacy","getOrCreate","LegacyInsideHarmony","Error","exports"],"sources":["apply-overrides.ts"],"sourcesContent":["import path from 'path';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { cloneDeep, difference, forEach, isEmpty, pick, pickBy, 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/component.sources';\nimport { PathLinux, resolvePackagePath } from '@teambit/legacy.utils';\nimport { ResolvedPackageData, resolvePackageData } from '../resolve-pkg-data';\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.bit-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 peerDependencies: 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 peerDependencies: [],\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 = 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 = pickBy(\n this.allPackagesDependencies.packageDependencies,\n shouldBeIncluded\n );\n this.allPackagesDependencies.devPackageDependencies = pickBy(\n this.allPackagesDependencies.devPackageDependencies,\n shouldBeIncludedDev\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 dependency: string,\n versionRange: string\n ): { componentId?: ComponentID; packageName?: string; versionRange: string } {\n const packageData = this._resolvePackageData(dependency);\n return { componentId: packageData?.componentId, packageName: packageData?.name, versionRange };\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(dependency, dependencyValue);\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(\n new Dependency(depData.componentId, [], depData.packageName, depData.versionRange)\n )\n );\n }\n if (packages[depField] && !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 if (components.peerDependencies) {\n const componentPeers = new Set(components.peerDependencies.map(({ packageName }) => packageName));\n this.allDependencies.dependencies = this.allDependencies.dependencies.filter(\n (dep) => !dep.packageName || !componentPeers.has(dep.packageName)\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 difference(Object.keys(packages), Object.keys(this.allPackagesDependencies.packageDependencies));\n this.allPackagesDependencies.devPackageDependencies = pick(\n this.allPackagesDependencies.devPackageDependencies,\n getNotRegularPackages(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 (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 forEach(this.allPackagesDependencies[field], (_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 });\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 peerPackageDeps = 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 forEach(this.allPackagesDependencies[field], (_pkgVal, pkgName) => {\n const peerVersionFromWsPolicy = wsPeer[pkgName];\n const regularVersionFromWsPolicy = wsRegular[pkgName];\n if (peerVersionFromWsPolicy) {\n delete this.allPackagesDependencies[field][pkgName];\n peerPackageDeps[pkgName] = peerVersionFromWsPolicy;\n } else if (regularVersionFromWsPolicy) {\n delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];\n this.allPackagesDependencies[field][pkgName] = regularVersionFromWsPolicy;\n }\n });\n });\n this.allPackagesDependencies.peerPackageDependencies = peerPackageDeps;\n\n const peerDeps = this.allDependencies.peerDependencies ?? [];\n ['dependencies', 'devDependencies'].forEach((field) => {\n for (const dep of this.allDependencies[field]) {\n const pkgName = dep.packageName;\n const peerVersionFromWsPolicy = wsPeer[pkgName];\n const regularVersionFromWsPolicy = wsRegular[pkgName];\n if (peerVersionFromWsPolicy) {\n dep.versionRange = peerVersionFromWsPolicy;\n peerDeps.push(dep);\n } else if (regularVersionFromWsPolicy) {\n dep.versionRange = regularVersionFromWsPolicy;\n }\n }\n this.allDependencies[field] = this.allDependencies[field].filter(({ packageName }) => !wsPeer[packageName]);\n });\n this.allDependencies.peerDependencies = 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 forEach(autoDetectOverrides[field], (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 const existsInCompsPeerDeps = this.allDependencies.peerDependencies.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 !existsInCompsPeerDeps &&\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 if ((existsInCompsDeps || existsInCompsDevDeps) && field === 'peerDependencies') {\n const comp = (existsInCompsDeps ?? existsInCompsDevDeps) as Dependency;\n comp.versionRange = pkgVal;\n this.allDependencies.peerDependencies.push(comp);\n } else {\n this.allPackagesDependencies[key][pkgName] = pkgVal;\n }\n if (existsInCompsPeerDeps) {\n existsInCompsPeerDeps.versionRange = pkgVal;\n }\n }\n });\n });\n }\n\n private async applyAutoDetectedPeersFromEnvOnEnvItSelf(): Promise<void> {\n const envPolicy = await this.depsResolver.getEnvPolicyFromEnvId(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 forEach(this.allPackagesDependencies[field], (_pkgVal, pkgName) => {\n const peerVersionFromEnvPolicy = envPolicyManifest[pkgName];\n if (peerVersionFromEnvPolicy) {\n delete this.allPackagesDependencies[field][pkgName];\n }\n });\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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","ignoreList":[]}
@@ -32,9 +32,9 @@ function _constants() {
32
32
  };
33
33
  return data;
34
34
  }
35
- function _packageJsonFile() {
36
- const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/component/package-json-file"));
37
- _packageJsonFile = function () {
35
+ function _component() {
36
+ const data = require("@teambit/component.sources");
37
+ _component = function () {
38
38
  return data;
39
39
  };
40
40
  return data;
@@ -104,7 +104,7 @@ function enrichDataFromDependency(packageData) {
104
104
  // if you have 2 authored component which one dependent on the other
105
105
  // we will look for the package.json on the dependency but won't find it
106
106
  // if we propagate we will take the version from the root's package json which has nothing with the component version
107
- const packageJsonFile = _packageJsonFile().default.loadSync(packageDir);
107
+ const packageJsonFile = _component().PackageJsonFile.loadSync(packageDir);
108
108
  const packageInfo = packageJsonFile.packageJsonObject;
109
109
 
110
110
  // the version can be empty when creating the package.json for author, or when using custom-module-resolution
@@ -1 +1 @@
1
- {"version":3,"names":["_componentId","data","require","_path","_interopRequireDefault","_readPkgUp","_constants","_packageJsonFile","_legacy","e","__esModule","default","resolvePackageData","dependentDir","packageFullPath","packageData","fullPath","name","componentId","undefined","enrichDataFromDependent","enrichDataFromDependency","NODE_MODULES","packageJsonInfo","readPkgUp","sync","cwd","normalize","dependentPackageJson","packageJson","packageRelativePath","substring","lastIndexOf","length","packageName","resolvePackageNameByPath","packageVersion","dependencies","devDependencies","peerDependencies","dependentPackageJsonPath","path","versionUsedByDependent","packageDir","resolvePackageDirFromFilePath","packageJsonFile","PackageJsonFile","loadSync","packageInfo","packageJsonObject","packageJsonPath","join","PACKAGE_JSON","packageJsonContent","concreteVersion","version","scope","exported","ComponentID","fromObject","hasVersion","absolutePackageFilePath","indexOfLastNodeModules","pathInsideNodeModules","pathUntilNodeModules"],"sources":["resolve-pkg-data.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport path from 'path';\nimport readPkgUp from 'read-pkg-up';\nimport { PACKAGE_JSON } from '@teambit/legacy/dist/constants';\nimport PackageJsonFile from '@teambit/legacy/dist/consumer/component/package-json-file';\nimport { PathLinuxAbsolute, PathOsBased, PathOsBasedAbsolute } from '@teambit/toolbox.path.path';\nimport { resolvePackageNameByPath } from '@teambit/legacy.utils';\n\nexport interface ResolvedPackageData {\n fullPath: PathOsBasedAbsolute; // package path\n packageJsonPath?: PathOsBased;\n packageJsonContent?: Record<string, any>;\n dependentPackageJsonPath?: PathOsBased;\n name: string; // package name\n concreteVersion?: string; // version from the package.json of the package itself\n versionUsedByDependent?: string; // version from the dependent package.json\n componentId?: ComponentID; // component id in case it's a bit component\n}\n\n/**\n * find data such as name/version/component-id from the package.json of a component and its dependent.\n * the version from the dependent may have range (such as ~ or ^).\n * the version from the dependency is an exact version.\n * for a package that is not bit-component, we're interested in the range because that's how it was\n * set in the first place and changing it to an exact version result in the component modified.\n * for a bit-component, we're interested in the exact version because this is the version that gets\n * entered into \"dependency\" field, which not supports range. (when a component is installed via\n * npm, it can be saved into the package.json with range: ^, ~).\n */\nexport function resolvePackageData(\n dependentDir: string,\n packageFullPath: PathLinuxAbsolute\n): ResolvedPackageData | undefined {\n const packageData: ResolvedPackageData = {\n fullPath: packageFullPath,\n name: '',\n componentId: undefined,\n };\n enrichDataFromDependent(packageData, dependentDir);\n enrichDataFromDependency(packageData);\n if (!packageData.name) {\n // data was not found in dependent nor in dependency\n return undefined;\n }\n return packageData;\n}\n\nfunction enrichDataFromDependent(packageData: ResolvedPackageData, dependentDir: string) {\n const NODE_MODULES = 'node_modules';\n // @todo: currently, the \"normalize\" makes sure that the package.json is valid, however, due to a\n // bug, when importing snaps not from hub, it saves them in .dependencies and generate pkg.json\n // with version that has the hash, which is invalid. later, this .dependencies will be gone.\n const packageJsonInfo = readPkgUp.sync({ cwd: dependentDir, normalize: false });\n if (!packageJsonInfo) {\n return;\n }\n const dependentPackageJson = packageJsonInfo.packageJson;\n const packageFullPath = packageData.fullPath;\n // The +1 is for the / after the node_modules, we didn't enter it into the NODE_MODULES const because it makes problems on windows\n const packageRelativePath = packageFullPath.substring(\n packageFullPath.lastIndexOf(NODE_MODULES) + NODE_MODULES.length + 1,\n packageFullPath.length\n );\n\n const packageName = resolvePackageNameByPath(packageRelativePath);\n const packageVersion =\n dependentPackageJson.dependencies?.packageName ||\n dependentPackageJson.devDependencies?.packageName ||\n dependentPackageJson.peerDependencies?.packageName;\n if (packageVersion) {\n packageData.dependentPackageJsonPath = packageJsonInfo.path;\n packageData.name = packageName;\n packageData.versionUsedByDependent = packageVersion;\n }\n}\n\nfunction enrichDataFromDependency(packageData: ResolvedPackageData) {\n // Get the package relative path to the node_modules dir\n const packageDir = resolvePackageDirFromFilePath(packageData.fullPath);\n\n // don't propagate here since loading a package.json of another folder and taking the version from it will result wrong version\n // This for example happen in the following case:\n // if you have 2 authored component which one dependent on the other\n // we will look for the package.json on the dependency but won't find it\n // if we propagate we will take the version from the root's package json which has nothing with the component version\n const packageJsonFile = PackageJsonFile.loadSync(packageDir);\n const packageInfo = packageJsonFile.packageJsonObject;\n\n // the version can be empty when creating the package.json for author, or when using custom-module-resolution\n // that's fine, we still need the component-id in this case.\n if (!packageInfo || !packageInfo.name) {\n return;\n }\n packageData.packageJsonPath = path.join(packageDir, PACKAGE_JSON);\n packageData.packageJsonContent = packageInfo;\n packageData.name = packageInfo.name;\n packageData.concreteVersion = packageInfo.version;\n if (packageInfo.componentId) {\n const scope = packageInfo.componentId.scope as string;\n if (packageInfo.exported === false) {\n // @ts-ignore\n delete packageInfo.componentId.scope;\n }\n const componentId = ComponentID.fromObject(packageInfo.componentId, scope);\n packageData.componentId = componentId;\n if (packageData.componentId.hasVersion() && packageInfo.version) {\n // if packageInfo.version is not defined, it's coming from the workspace and the package.json is auto-generated\n // during bit-link. ignore the componentId.version in this case, it's not up do date.\n // otherwise, use it, because if it's a snap, the component-version is the snap. the pkg version is 0.0.0-snap.\n packageData.concreteVersion = packageData.componentId.version;\n }\n }\n}\n\n/**\n * given the full path of a package file, returns the root dir of the package, so then we could\n * find the package.json in that directory.\n *\n * example of a normal package:\n * absolutePackageFilePath: /user/workspace/node_modules/lodash.isboolean/index.js\n * returns: /user/workspace/node_modules/lodash.isboolean\n *\n * example of a scoped package:\n * absolutePackageFilePath: /user/workspace/node_modules/@babel/core/lib/index.js\n * returns: /user/workspace/node_modules/@babel/core\n */\nfunction resolvePackageDirFromFilePath(absolutePackageFilePath: string): string {\n const NODE_MODULES = 'node_modules';\n const indexOfLastNodeModules = absolutePackageFilePath.lastIndexOf(NODE_MODULES) + NODE_MODULES.length + 1;\n const pathInsideNodeModules = absolutePackageFilePath.substring(indexOfLastNodeModules);\n const packageName = resolvePackageNameByPath(pathInsideNodeModules);\n const pathUntilNodeModules = absolutePackageFilePath.substring(0, indexOfLastNodeModules);\n return pathUntilNodeModules + packageName;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_componentId","data","require","_path","_interopRequireDefault","_readPkgUp","_constants","_component","_legacy","e","__esModule","default","resolvePackageData","dependentDir","packageFullPath","packageData","fullPath","name","componentId","undefined","enrichDataFromDependent","enrichDataFromDependency","NODE_MODULES","packageJsonInfo","readPkgUp","sync","cwd","normalize","dependentPackageJson","packageJson","packageRelativePath","substring","lastIndexOf","length","packageName","resolvePackageNameByPath","packageVersion","dependencies","devDependencies","peerDependencies","dependentPackageJsonPath","path","versionUsedByDependent","packageDir","resolvePackageDirFromFilePath","packageJsonFile","PackageJsonFile","loadSync","packageInfo","packageJsonObject","packageJsonPath","join","PACKAGE_JSON","packageJsonContent","concreteVersion","version","scope","exported","ComponentID","fromObject","hasVersion","absolutePackageFilePath","indexOfLastNodeModules","pathInsideNodeModules","pathUntilNodeModules"],"sources":["resolve-pkg-data.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport path from 'path';\nimport readPkgUp from 'read-pkg-up';\nimport { PACKAGE_JSON } from '@teambit/legacy/dist/constants';\nimport { PackageJsonFile } from '@teambit/component.sources';\nimport { PathLinuxAbsolute, PathOsBased, PathOsBasedAbsolute } from '@teambit/toolbox.path.path';\nimport { resolvePackageNameByPath } from '@teambit/legacy.utils';\n\nexport interface ResolvedPackageData {\n fullPath: PathOsBasedAbsolute; // package path\n packageJsonPath?: PathOsBased;\n packageJsonContent?: Record<string, any>;\n dependentPackageJsonPath?: PathOsBased;\n name: string; // package name\n concreteVersion?: string; // version from the package.json of the package itself\n versionUsedByDependent?: string; // version from the dependent package.json\n componentId?: ComponentID; // component id in case it's a bit component\n}\n\n/**\n * find data such as name/version/component-id from the package.json of a component and its dependent.\n * the version from the dependent may have range (such as ~ or ^).\n * the version from the dependency is an exact version.\n * for a package that is not bit-component, we're interested in the range because that's how it was\n * set in the first place and changing it to an exact version result in the component modified.\n * for a bit-component, we're interested in the exact version because this is the version that gets\n * entered into \"dependency\" field, which not supports range. (when a component is installed via\n * npm, it can be saved into the package.json with range: ^, ~).\n */\nexport function resolvePackageData(\n dependentDir: string,\n packageFullPath: PathLinuxAbsolute\n): ResolvedPackageData | undefined {\n const packageData: ResolvedPackageData = {\n fullPath: packageFullPath,\n name: '',\n componentId: undefined,\n };\n enrichDataFromDependent(packageData, dependentDir);\n enrichDataFromDependency(packageData);\n if (!packageData.name) {\n // data was not found in dependent nor in dependency\n return undefined;\n }\n return packageData;\n}\n\nfunction enrichDataFromDependent(packageData: ResolvedPackageData, dependentDir: string) {\n const NODE_MODULES = 'node_modules';\n // @todo: currently, the \"normalize\" makes sure that the package.json is valid, however, due to a\n // bug, when importing snaps not from hub, it saves them in .dependencies and generate pkg.json\n // with version that has the hash, which is invalid. later, this .dependencies will be gone.\n const packageJsonInfo = readPkgUp.sync({ cwd: dependentDir, normalize: false });\n if (!packageJsonInfo) {\n return;\n }\n const dependentPackageJson = packageJsonInfo.packageJson;\n const packageFullPath = packageData.fullPath;\n // The +1 is for the / after the node_modules, we didn't enter it into the NODE_MODULES const because it makes problems on windows\n const packageRelativePath = packageFullPath.substring(\n packageFullPath.lastIndexOf(NODE_MODULES) + NODE_MODULES.length + 1,\n packageFullPath.length\n );\n\n const packageName = resolvePackageNameByPath(packageRelativePath);\n const packageVersion =\n dependentPackageJson.dependencies?.packageName ||\n dependentPackageJson.devDependencies?.packageName ||\n dependentPackageJson.peerDependencies?.packageName;\n if (packageVersion) {\n packageData.dependentPackageJsonPath = packageJsonInfo.path;\n packageData.name = packageName;\n packageData.versionUsedByDependent = packageVersion;\n }\n}\n\nfunction enrichDataFromDependency(packageData: ResolvedPackageData) {\n // Get the package relative path to the node_modules dir\n const packageDir = resolvePackageDirFromFilePath(packageData.fullPath);\n\n // don't propagate here since loading a package.json of another folder and taking the version from it will result wrong version\n // This for example happen in the following case:\n // if you have 2 authored component which one dependent on the other\n // we will look for the package.json on the dependency but won't find it\n // if we propagate we will take the version from the root's package json which has nothing with the component version\n const packageJsonFile = PackageJsonFile.loadSync(packageDir);\n const packageInfo = packageJsonFile.packageJsonObject;\n\n // the version can be empty when creating the package.json for author, or when using custom-module-resolution\n // that's fine, we still need the component-id in this case.\n if (!packageInfo || !packageInfo.name) {\n return;\n }\n packageData.packageJsonPath = path.join(packageDir, PACKAGE_JSON);\n packageData.packageJsonContent = packageInfo;\n packageData.name = packageInfo.name;\n packageData.concreteVersion = packageInfo.version;\n if (packageInfo.componentId) {\n const scope = packageInfo.componentId.scope as string;\n if (packageInfo.exported === false) {\n // @ts-ignore\n delete packageInfo.componentId.scope;\n }\n const componentId = ComponentID.fromObject(packageInfo.componentId, scope);\n packageData.componentId = componentId;\n if (packageData.componentId.hasVersion() && packageInfo.version) {\n // if packageInfo.version is not defined, it's coming from the workspace and the package.json is auto-generated\n // during bit-link. ignore the componentId.version in this case, it's not up do date.\n // otherwise, use it, because if it's a snap, the component-version is the snap. the pkg version is 0.0.0-snap.\n packageData.concreteVersion = packageData.componentId.version;\n }\n }\n}\n\n/**\n * given the full path of a package file, returns the root dir of the package, so then we could\n * find the package.json in that directory.\n *\n * example of a normal package:\n * absolutePackageFilePath: /user/workspace/node_modules/lodash.isboolean/index.js\n * returns: /user/workspace/node_modules/lodash.isboolean\n *\n * example of a scoped package:\n * absolutePackageFilePath: /user/workspace/node_modules/@babel/core/lib/index.js\n * returns: /user/workspace/node_modules/@babel/core\n */\nfunction resolvePackageDirFromFilePath(absolutePackageFilePath: string): string {\n const NODE_MODULES = 'node_modules';\n const indexOfLastNodeModules = absolutePackageFilePath.lastIndexOf(NODE_MODULES) + NODE_MODULES.length + 1;\n const pathInsideNodeModules = absolutePackageFilePath.substring(indexOfLastNodeModules);\n const packageName = resolvePackageNameByPath(pathInsideNodeModules);\n const pathUntilNodeModules = absolutePackageFilePath.substring(0, indexOfLastNodeModules);\n return pathUntilNodeModules + packageName;\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/dependencies",
3
- "version": "1.0.331",
3
+ "version": "1.0.333",
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.331"
9
+ "version": "1.0.333"
10
10
  },
11
11
  "dependencies": {
12
12
  "archy": "1.0.0",
@@ -20,36 +20,37 @@
20
20
  "fs-extra": "10.0.0",
21
21
  "semver": "7.5.2",
22
22
  "debug": "4.3.4",
23
- "resolve-dependency-path": "2.0.0",
24
- "stylus-lookup": "3.0.2",
25
23
  "detective-amd": "3.0.1",
26
24
  "detective-stylus": "1.0.0",
27
25
  "module-definition": "3.3.1",
28
26
  "node-source-walk": "4.2.0",
27
+ "resolve-dependency-path": "2.0.0",
28
+ "stylus-lookup": "3.0.2",
29
29
  "@teambit/harmony": "0.4.6",
30
30
  "@teambit/component-id": "1.2.0",
31
31
  "@teambit/bit-error": "0.0.404",
32
32
  "@teambit/component-version": "1.0.3",
33
- "@teambit/styling.deps-lookups.lookup-styling": "0.0.2",
34
- "@teambit/typescript.deps-lookups.lookup-typescript": "0.0.2",
35
33
  "@teambit/node.deps-detectors.detective-es6": "0.0.5",
36
34
  "@teambit/styling.deps-detectors.detective-css": "0.0.3",
37
35
  "@teambit/styling.deps-detectors.detective-less": "0.0.3",
38
36
  "@teambit/styling.deps-detectors.detective-sass": "0.0.6",
39
37
  "@teambit/styling.deps-detectors.detective-scss": "0.0.6",
40
38
  "@teambit/typescript.deps-detectors.detective-typescript": "0.0.6",
41
- "@teambit/cli": "0.0.908",
42
- "@teambit/graph": "1.0.331",
43
- "@teambit/aspect-loader": "1.0.331",
39
+ "@teambit/styling.deps-lookups.lookup-styling": "0.0.2",
40
+ "@teambit/typescript.deps-lookups.lookup-typescript": "0.0.2",
41
+ "@teambit/cli": "0.0.910",
42
+ "@teambit/graph": "1.0.333",
43
+ "@teambit/aspect-loader": "1.0.333",
44
44
  "@teambit/component-package-version": "0.0.433",
45
- "@teambit/dependency-resolver": "1.0.331",
46
- "@teambit/dev-files": "1.0.331",
47
- "@teambit/scope": "1.0.331",
48
- "@teambit/workspace": "1.0.331",
45
+ "@teambit/dependency-resolver": "1.0.333",
46
+ "@teambit/dev-files": "1.0.333",
47
+ "@teambit/scope": "1.0.333",
48
+ "@teambit/workspace": "1.0.333",
49
+ "@teambit/component.sources": "0.0.2",
49
50
  "@teambit/legacy.utils": "0.0.3",
50
51
  "@teambit/toolbox.path.path": "0.0.2",
51
52
  "@teambit/component-issues": "0.0.150",
52
- "@teambit/legacy.bit-map": "0.0.5",
53
+ "@teambit/legacy.bit-map": "0.0.6",
53
54
  "@teambit/toolbox.fs.extension-getter": "0.0.1",
54
55
  "@teambit/toolbox.fs.last-modified": "0.0.1"
55
56
  },
@@ -65,8 +66,8 @@
65
66
  "@types/mocha": "9.1.0",
66
67
  "@teambit/defender.fs.global-bit-temp-dir": "0.0.1",
67
68
  "@teambit/harmony.envs.core-aspect-env": "0.0.42",
68
- "@teambit/component.testing.mock-components": "0.0.207",
69
- "@teambit/harmony.testing.load-aspect": "0.0.202",
69
+ "@teambit/component.testing.mock-components": "0.0.208",
70
+ "@teambit/harmony.testing.load-aspect": "0.0.203",
70
71
  "@teambit/workspace.testing.mock-workspace": "0.0.27"
71
72
  },
72
73
  "peerDependencies": {