@teambit/dependencies 1.0.330 → 1.0.331

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.
Files changed (276) hide show
  1. package/artifacts/__bit_junit.xml +203 -5
  2. package/artifacts/schema.json +2016 -1173
  3. package/dependencies-loader/apply-overrides.ts +3 -3
  4. package/dependencies-loader/auto-detect-deps.ts +16 -13
  5. package/dependencies-loader/dependencies-loader.ts +1 -1
  6. package/dist/dependencies-loader/apply-overrides.js +12 -5
  7. package/dist/dependencies-loader/apply-overrides.js.map +1 -1
  8. package/dist/dependencies-loader/auto-detect-deps.d.ts +4 -4
  9. package/dist/dependencies-loader/auto-detect-deps.js +14 -14
  10. package/dist/dependencies-loader/auto-detect-deps.js.map +1 -1
  11. package/dist/dependencies-loader/dependencies-loader.js +4 -4
  12. package/dist/dependencies-loader/dependencies-loader.js.map +1 -1
  13. package/dist/files-dependency-builder/build-tree.d.ts +11 -0
  14. package/dist/files-dependency-builder/build-tree.js +233 -0
  15. package/dist/files-dependency-builder/build-tree.js.map +1 -0
  16. package/dist/files-dependency-builder/build-tree.spec.d.ts +1 -0
  17. package/dist/files-dependency-builder/build-tree.spec.js +154 -0
  18. package/dist/files-dependency-builder/build-tree.spec.js.map +1 -0
  19. package/dist/files-dependency-builder/dependency-tree/Config.d.ts +4 -0
  20. package/dist/files-dependency-builder/dependency-tree/Config.js +74 -0
  21. package/dist/files-dependency-builder/dependency-tree/Config.js.map +1 -0
  22. package/dist/files-dependency-builder/dependency-tree/index.d.ts +15 -0
  23. package/dist/files-dependency-builder/dependency-tree/index.js +272 -0
  24. package/dist/files-dependency-builder/dependency-tree/index.js.map +1 -0
  25. package/dist/files-dependency-builder/dependency-tree/index.spec.d.ts +1 -0
  26. package/dist/files-dependency-builder/dependency-tree/index.spec.js +877 -0
  27. package/dist/files-dependency-builder/dependency-tree/index.spec.js.map +1 -0
  28. package/dist/files-dependency-builder/detectives/detective-css/index.d.ts +1 -0
  29. package/dist/files-dependency-builder/detectives/detective-css/index.js +18 -0
  30. package/dist/files-dependency-builder/detectives/detective-css/index.js.map +1 -0
  31. package/dist/files-dependency-builder/detectives/detective-es6/index.d.ts +1 -0
  32. package/dist/files-dependency-builder/detectives/detective-es6/index.js +18 -0
  33. package/dist/files-dependency-builder/detectives/detective-es6/index.js.map +1 -0
  34. package/dist/files-dependency-builder/detectives/detective-less/index.d.ts +1 -0
  35. package/dist/files-dependency-builder/detectives/detective-less/index.js +18 -0
  36. package/dist/files-dependency-builder/detectives/detective-less/index.js.map +1 -0
  37. package/dist/files-dependency-builder/detectives/detective-sass/index.d.ts +1 -0
  38. package/dist/files-dependency-builder/detectives/detective-sass/index.js +18 -0
  39. package/dist/files-dependency-builder/detectives/detective-sass/index.js.map +1 -0
  40. package/dist/files-dependency-builder/detectives/detective-scss/index.d.ts +1 -0
  41. package/dist/files-dependency-builder/detectives/detective-scss/index.js +18 -0
  42. package/dist/files-dependency-builder/detectives/detective-scss/index.js.map +1 -0
  43. package/dist/files-dependency-builder/detectives/detective-typescript/index.d.ts +1 -0
  44. package/dist/files-dependency-builder/detectives/detective-typescript/index.js +18 -0
  45. package/dist/files-dependency-builder/detectives/detective-typescript/index.js.map +1 -0
  46. package/dist/files-dependency-builder/detector-hook.d.ts +47 -0
  47. package/dist/files-dependency-builder/detector-hook.js +29 -0
  48. package/dist/files-dependency-builder/detector-hook.js.map +1 -0
  49. package/dist/files-dependency-builder/filing-cabinet/index.d.ts +17 -0
  50. package/dist/files-dependency-builder/filing-cabinet/index.js +140 -0
  51. package/dist/files-dependency-builder/filing-cabinet/index.js.map +1 -0
  52. package/dist/files-dependency-builder/filing-cabinet/index.spec.d.ts +1 -0
  53. package/dist/files-dependency-builder/filing-cabinet/index.spec.js +651 -0
  54. package/dist/files-dependency-builder/filing-cabinet/index.spec.js.map +1 -0
  55. package/dist/files-dependency-builder/fixtures/build-tree/a.d.ts +1 -0
  56. package/dist/files-dependency-builder/fixtures/build-tree/a.js +6 -0
  57. package/dist/files-dependency-builder/fixtures/build-tree/a.js.map +1 -0
  58. package/dist/files-dependency-builder/fixtures/build-tree/b.d.ts +1 -0
  59. package/dist/files-dependency-builder/fixtures/build-tree/b.js +6 -0
  60. package/dist/files-dependency-builder/fixtures/build-tree/b.js.map +1 -0
  61. package/dist/files-dependency-builder/fixtures/build-tree/not-link-file/file-a.d.ts +1 -0
  62. package/dist/files-dependency-builder/fixtures/build-tree/not-link-file/file-a.js +3 -0
  63. package/dist/files-dependency-builder/fixtures/build-tree/not-link-file/file-a.js.map +1 -0
  64. package/dist/files-dependency-builder/fixtures/build-tree/not-link-file/file-b.d.ts +1 -0
  65. package/dist/files-dependency-builder/fixtures/build-tree/not-link-file/file-b.js +3 -0
  66. package/dist/files-dependency-builder/fixtures/build-tree/not-link-file/file-b.js.map +1 -0
  67. package/dist/files-dependency-builder/fixtures/build-tree/not-link-file/file-c.d.ts +1 -0
  68. package/dist/files-dependency-builder/fixtures/build-tree/not-link-file/file-c.js +10 -0
  69. package/dist/files-dependency-builder/fixtures/build-tree/not-link-file/file-c.js.map +1 -0
  70. package/dist/files-dependency-builder/fixtures/build-tree/tree-shaking-cycle/foo.d.ts +1 -0
  71. package/dist/files-dependency-builder/fixtures/build-tree/tree-shaking-cycle/foo.js +3 -0
  72. package/dist/files-dependency-builder/fixtures/build-tree/tree-shaking-cycle/foo.js.map +1 -0
  73. package/dist/files-dependency-builder/fixtures/build-tree/tree-shaking-cycle/index.d.ts +1 -0
  74. package/dist/files-dependency-builder/fixtures/build-tree/tree-shaking-cycle/index.js +21 -0
  75. package/dist/files-dependency-builder/fixtures/build-tree/tree-shaking-cycle/index.js.map +1 -0
  76. package/dist/files-dependency-builder/fixtures/build-tree/tree-shaking-cycle/is-string.d.ts +2 -0
  77. package/dist/files-dependency-builder/fixtures/build-tree/tree-shaking-cycle/is-string.js +18 -0
  78. package/dist/files-dependency-builder/fixtures/build-tree/tree-shaking-cycle/is-string.js.map +1 -0
  79. package/dist/files-dependency-builder/fixtures/build-tree/tree-shaking-cycle/self-cycle.d.ts +2 -0
  80. package/dist/files-dependency-builder/fixtures/build-tree/tree-shaking-cycle/self-cycle.js +20 -0
  81. package/dist/files-dependency-builder/fixtures/build-tree/tree-shaking-cycle/self-cycle.js.map +1 -0
  82. package/dist/files-dependency-builder/fixtures/build-tree/unparsed.d.ts +0 -0
  83. package/dist/files-dependency-builder/fixtures/build-tree/unparsed.js +5 -0
  84. package/dist/files-dependency-builder/fixtures/build-tree/unparsed.js.map +1 -0
  85. package/dist/files-dependency-builder/fixtures/dependency-tree/amd/a.d.ts +0 -0
  86. package/dist/files-dependency-builder/fixtures/dependency-tree/amd/a.js +10 -0
  87. package/dist/files-dependency-builder/fixtures/dependency-tree/amd/a.js.map +1 -0
  88. package/dist/files-dependency-builder/fixtures/dependency-tree/amd/b.d.ts +0 -0
  89. package/dist/files-dependency-builder/fixtures/dependency-tree/amd/b.js +10 -0
  90. package/dist/files-dependency-builder/fixtures/dependency-tree/amd/b.js.map +1 -0
  91. package/dist/files-dependency-builder/fixtures/dependency-tree/amd/c.d.ts +0 -0
  92. package/dist/files-dependency-builder/fixtures/dependency-tree/amd/c.js +6 -0
  93. package/dist/files-dependency-builder/fixtures/dependency-tree/amd/c.js.map +1 -0
  94. package/dist/files-dependency-builder/fixtures/dependency-tree/commonjs/a.d.ts +1 -0
  95. package/dist/files-dependency-builder/fixtures/dependency-tree/commonjs/a.js +6 -0
  96. package/dist/files-dependency-builder/fixtures/dependency-tree/commonjs/a.js.map +1 -0
  97. package/dist/files-dependency-builder/fixtures/dependency-tree/commonjs/b.d.ts +1 -0
  98. package/dist/files-dependency-builder/fixtures/dependency-tree/commonjs/b.js +6 -0
  99. package/dist/files-dependency-builder/fixtures/dependency-tree/commonjs/b.js.map +1 -0
  100. package/dist/files-dependency-builder/fixtures/dependency-tree/commonjs/c.d.ts +1 -0
  101. package/dist/files-dependency-builder/fixtures/dependency-tree/commonjs/c.js +6 -0
  102. package/dist/files-dependency-builder/fixtures/dependency-tree/commonjs/c.js.map +1 -0
  103. package/dist/files-dependency-builder/fixtures/dependency-tree/onlyRealDeps/a.d.ts +1 -0
  104. package/dist/files-dependency-builder/fixtures/dependency-tree/onlyRealDeps/a.js +8 -0
  105. package/dist/files-dependency-builder/fixtures/dependency-tree/onlyRealDeps/a.js.map +1 -0
  106. package/dist/files-dependency-builder/fixtures/dependency-tree/webpack/aliased.d.ts +1 -0
  107. package/dist/files-dependency-builder/fixtures/dependency-tree/webpack/aliased.js +6 -0
  108. package/dist/files-dependency-builder/fixtures/dependency-tree/webpack/aliased.js.map +1 -0
  109. package/dist/files-dependency-builder/fixtures/dependency-tree/webpack/unaliased.d.ts +1 -0
  110. package/dist/files-dependency-builder/fixtures/dependency-tree/webpack/unaliased.js +6 -0
  111. package/dist/files-dependency-builder/fixtures/dependency-tree/webpack/unaliased.js.map +1 -0
  112. package/dist/files-dependency-builder/fixtures/filing-cabinet/ast.d.ts +221 -0
  113. package/dist/files-dependency-builder/fixtures/filing-cabinet/ast.js +259 -0
  114. package/dist/files-dependency-builder/fixtures/filing-cabinet/ast.js.map +1 -0
  115. package/dist/files-dependency-builder/fixtures/filing-cabinet/foo.d.ts +2 -0
  116. package/dist/files-dependency-builder/fixtures/filing-cabinet/foo.js +12 -0
  117. package/dist/files-dependency-builder/fixtures/filing-cabinet/foo.js.map +1 -0
  118. package/dist/files-dependency-builder/fixtures/filing-cabinet/foo.scss +1 -0
  119. package/dist/files-dependency-builder/fixtures/filing-cabinet/foo2.scss +0 -0
  120. package/dist/files-dependency-builder/fixtures/filing-cabinet/mockedJSFiles.d.ts +59 -0
  121. package/dist/files-dependency-builder/fixtures/filing-cabinet/mockedJSFiles.js +65 -0
  122. package/dist/files-dependency-builder/fixtures/filing-cabinet/mockedJSFiles.js.map +1 -0
  123. package/dist/files-dependency-builder/fixtures/filing-cabinet/root1/mod1.d.ts +1 -0
  124. package/dist/files-dependency-builder/fixtures/filing-cabinet/root1/mod1.js +5 -0
  125. package/dist/files-dependency-builder/fixtures/filing-cabinet/root1/mod1.js.map +1 -0
  126. package/dist/files-dependency-builder/fixtures/filing-cabinet/root2/mod2.d.ts +1 -0
  127. package/dist/files-dependency-builder/fixtures/filing-cabinet/root2/mod2.js +5 -0
  128. package/dist/files-dependency-builder/fixtures/filing-cabinet/root2/mod2.js.map +1 -0
  129. package/dist/files-dependency-builder/fixtures/filing-cabinet/webpack.config.d.ts +6 -0
  130. package/dist/files-dependency-builder/fixtures/filing-cabinet/webpack.config.js +12 -0
  131. package/dist/files-dependency-builder/fixtures/filing-cabinet/webpack.config.js.map +1 -0
  132. package/dist/files-dependency-builder/fixtures/missing-deps.d.ts +0 -0
  133. package/dist/files-dependency-builder/fixtures/missing-deps.js +5 -0
  134. package/dist/files-dependency-builder/fixtures/missing-deps.js.map +1 -0
  135. package/dist/files-dependency-builder/fixtures/precinct/Gruntfile.d.ts +2 -0
  136. package/dist/files-dependency-builder/fixtures/precinct/Gruntfile.js +24 -0
  137. package/dist/files-dependency-builder/fixtures/precinct/Gruntfile.js.map +1 -0
  138. package/dist/files-dependency-builder/fixtures/precinct/amd.d.ts +0 -0
  139. package/dist/files-dependency-builder/fixtures/precinct/amd.js +6 -0
  140. package/dist/files-dependency-builder/fixtures/precinct/amd.js.map +1 -0
  141. package/dist/files-dependency-builder/fixtures/precinct/bar.foo +1 -0
  142. package/dist/files-dependency-builder/fixtures/precinct/cjsExportLazy.d.ts +6 -0
  143. package/dist/files-dependency-builder/fixtures/precinct/cjsExportLazy.js +11 -0
  144. package/dist/files-dependency-builder/fixtures/precinct/cjsExportLazy.js.map +1 -0
  145. package/dist/files-dependency-builder/fixtures/precinct/commonjs.d.ts +1 -0
  146. package/dist/files-dependency-builder/fixtures/precinct/commonjs.js +7 -0
  147. package/dist/files-dependency-builder/fixtures/precinct/commonjs.js.map +1 -0
  148. package/dist/files-dependency-builder/fixtures/precinct/coreModules.d.ts +1 -0
  149. package/dist/files-dependency-builder/fixtures/precinct/coreModules.js +9 -0
  150. package/dist/files-dependency-builder/fixtures/precinct/coreModules.js.map +1 -0
  151. package/dist/files-dependency-builder/fixtures/precinct/es6.d.ts +1 -0
  152. package/dist/files-dependency-builder/fixtures/precinct/es6.js +15 -0
  153. package/dist/files-dependency-builder/fixtures/precinct/es6.js.map +1 -0
  154. package/dist/files-dependency-builder/fixtures/precinct/es6MixedExportLazy.d.ts +5 -0
  155. package/dist/files-dependency-builder/fixtures/precinct/es6MixedExportLazy.js +15 -0
  156. package/dist/files-dependency-builder/fixtures/precinct/es6MixedExportLazy.js.map +1 -0
  157. package/dist/files-dependency-builder/fixtures/precinct/es7.d.ts +1 -0
  158. package/dist/files-dependency-builder/fixtures/precinct/es7.js +7 -0
  159. package/dist/files-dependency-builder/fixtures/precinct/es7.js.map +1 -0
  160. package/dist/files-dependency-builder/fixtures/precinct/exampleAST.d.ts +24 -0
  161. package/dist/files-dependency-builder/fixtures/precinct/exampleAST.js +30 -0
  162. package/dist/files-dependency-builder/fixtures/precinct/exampleAST.js.map +1 -0
  163. package/dist/files-dependency-builder/fixtures/precinct/foo.foo +1 -0
  164. package/dist/files-dependency-builder/fixtures/precinct/styles.css +6 -0
  165. package/dist/files-dependency-builder/fixtures/precinct/styles.less +4 -0
  166. package/dist/files-dependency-builder/fixtures/precinct/styles.sass +2 -0
  167. package/dist/files-dependency-builder/fixtures/precinct/styles.scss +3 -0
  168. package/dist/files-dependency-builder/fixtures/precinct/styles.styl +5 -0
  169. package/dist/files-dependency-builder/fixtures/precinct/typescript.d.ts +0 -0
  170. package/dist/files-dependency-builder/fixtures/precinct/typescript.js +11 -0
  171. package/dist/files-dependency-builder/fixtures/precinct/typescript.js.map +1 -0
  172. package/dist/files-dependency-builder/fixtures/precinct/unparseable.d.ts +0 -0
  173. package/dist/files-dependency-builder/fixtures/precinct/unparseable.js +9 -0
  174. package/dist/files-dependency-builder/fixtures/precinct/unparseable.js.map +1 -0
  175. package/dist/files-dependency-builder/fixtures/unsupported-file.pdf +0 -0
  176. package/dist/files-dependency-builder/generate-tree-madge.d.ts +31 -0
  177. package/dist/files-dependency-builder/generate-tree-madge.js +196 -0
  178. package/dist/files-dependency-builder/generate-tree-madge.js.map +1 -0
  179. package/dist/files-dependency-builder/index.d.ts +3 -0
  180. package/dist/files-dependency-builder/index.js +34 -0
  181. package/dist/files-dependency-builder/index.js.map +1 -0
  182. package/dist/files-dependency-builder/missing-handler.d.ts +34 -0
  183. package/dist/files-dependency-builder/missing-handler.js +107 -0
  184. package/dist/files-dependency-builder/missing-handler.js.map +1 -0
  185. package/dist/files-dependency-builder/path-map.d.ts +20 -0
  186. package/dist/files-dependency-builder/path-map.js +46 -0
  187. package/dist/files-dependency-builder/path-map.js.map +1 -0
  188. package/dist/files-dependency-builder/precinct/index.d.ts +22 -0
  189. package/dist/files-dependency-builder/precinct/index.js +306 -0
  190. package/dist/files-dependency-builder/precinct/index.js.map +1 -0
  191. package/dist/files-dependency-builder/precinct/index.spec.d.ts +1 -0
  192. package/dist/files-dependency-builder/precinct/index.spec.js +300 -0
  193. package/dist/files-dependency-builder/precinct/index.spec.js.map +1 -0
  194. package/dist/files-dependency-builder/types/dependency-tree-type.d.ts +35 -0
  195. package/dist/files-dependency-builder/types/dependency-tree-type.js +34 -0
  196. package/dist/files-dependency-builder/types/dependency-tree-type.js.map +1 -0
  197. package/dist/files-dependency-builder/types/index.d.ts +0 -0
  198. package/dist/files-dependency-builder/types/index.js +7 -0
  199. package/dist/files-dependency-builder/types/index.js.map +1 -0
  200. package/dist/index.d.ts +1 -0
  201. package/dist/index.js +25 -0
  202. package/dist/index.js.map +1 -1
  203. package/dist/resolve-pkg-data.d.ts +23 -0
  204. package/dist/resolve-pkg-data.js +157 -0
  205. package/dist/resolve-pkg-data.js.map +1 -0
  206. package/files-dependency-builder/build-tree.spec.ts +130 -0
  207. package/files-dependency-builder/build-tree.ts +185 -0
  208. package/files-dependency-builder/dependency-tree/Config.ts +68 -0
  209. package/files-dependency-builder/dependency-tree/index.spec.ts +893 -0
  210. package/files-dependency-builder/dependency-tree/index.ts +244 -0
  211. package/files-dependency-builder/detectives/detective-css/index.ts +1 -0
  212. package/files-dependency-builder/detectives/detective-es6/index.ts +1 -0
  213. package/files-dependency-builder/detectives/detective-less/index.ts +1 -0
  214. package/files-dependency-builder/detectives/detective-sass/index.ts +1 -0
  215. package/files-dependency-builder/detectives/detective-scss/index.ts +1 -0
  216. package/files-dependency-builder/detectives/detective-typescript/index.ts +1 -0
  217. package/files-dependency-builder/detector-hook.ts +69 -0
  218. package/files-dependency-builder/filing-cabinet/index.spec.ts +718 -0
  219. package/files-dependency-builder/filing-cabinet/index.ts +119 -0
  220. package/files-dependency-builder/fixtures/build-tree/a.js +2 -0
  221. package/files-dependency-builder/fixtures/build-tree/b.js +2 -0
  222. package/files-dependency-builder/fixtures/build-tree/not-link-file/file-a.js +2 -0
  223. package/files-dependency-builder/fixtures/build-tree/not-link-file/file-b.js +4 -0
  224. package/files-dependency-builder/fixtures/build-tree/not-link-file/file-c.js +3 -0
  225. package/files-dependency-builder/fixtures/build-tree/tree-shaking-cycle/foo.js +2 -0
  226. package/files-dependency-builder/fixtures/build-tree/tree-shaking-cycle/index.js +2 -0
  227. package/files-dependency-builder/fixtures/build-tree/tree-shaking-cycle/is-string.js +3 -0
  228. package/files-dependency-builder/fixtures/build-tree/tree-shaking-cycle/self-cycle.js +3 -0
  229. package/files-dependency-builder/fixtures/build-tree/unparsed.js +2 -0
  230. package/files-dependency-builder/fixtures/dependency-tree/amd/a.js +6 -0
  231. package/files-dependency-builder/fixtures/dependency-tree/amd/b.js +6 -0
  232. package/files-dependency-builder/fixtures/dependency-tree/amd/c.js +2 -0
  233. package/files-dependency-builder/fixtures/dependency-tree/commonjs/a.js +2 -0
  234. package/files-dependency-builder/fixtures/dependency-tree/commonjs/b.js +3 -0
  235. package/files-dependency-builder/fixtures/dependency-tree/commonjs/c.js +3 -0
  236. package/files-dependency-builder/fixtures/dependency-tree/onlyRealDeps/a.js +4 -0
  237. package/files-dependency-builder/fixtures/dependency-tree/webpack/aliased.js +2 -0
  238. package/files-dependency-builder/fixtures/dependency-tree/webpack/unaliased.js +2 -0
  239. package/files-dependency-builder/fixtures/filing-cabinet/ast.js +266 -0
  240. package/files-dependency-builder/fixtures/filing-cabinet/foo.jsx +3 -0
  241. package/files-dependency-builder/fixtures/filing-cabinet/foo.scss +1 -0
  242. package/files-dependency-builder/fixtures/filing-cabinet/foo2.scss +0 -0
  243. package/files-dependency-builder/fixtures/filing-cabinet/mockedJSFiles.js +61 -0
  244. package/files-dependency-builder/fixtures/filing-cabinet/root1/mod1.js +1 -0
  245. package/files-dependency-builder/fixtures/filing-cabinet/root2/mod2.js +1 -0
  246. package/files-dependency-builder/fixtures/filing-cabinet/webpack.config.js +8 -0
  247. package/files-dependency-builder/fixtures/missing-deps.js +2 -0
  248. package/files-dependency-builder/fixtures/precinct/Gruntfile.js +22 -0
  249. package/files-dependency-builder/fixtures/precinct/amd.js +2 -0
  250. package/files-dependency-builder/fixtures/precinct/bar.foo +1 -0
  251. package/files-dependency-builder/fixtures/precinct/cjsExportLazy.js +7 -0
  252. package/files-dependency-builder/fixtures/precinct/commonjs.js +3 -0
  253. package/files-dependency-builder/fixtures/precinct/coreModules.js +5 -0
  254. package/files-dependency-builder/fixtures/precinct/es6.js +4 -0
  255. package/files-dependency-builder/fixtures/precinct/es6MixedExportLazy.js +7 -0
  256. package/files-dependency-builder/fixtures/precinct/es7.js +3 -0
  257. package/files-dependency-builder/fixtures/precinct/exampleAST.js +32 -0
  258. package/files-dependency-builder/fixtures/precinct/foo.foo +1 -0
  259. package/files-dependency-builder/fixtures/precinct/styles.css +6 -0
  260. package/files-dependency-builder/fixtures/precinct/styles.less +4 -0
  261. package/files-dependency-builder/fixtures/precinct/styles.sass +2 -0
  262. package/files-dependency-builder/fixtures/precinct/styles.scss +3 -0
  263. package/files-dependency-builder/fixtures/precinct/styles.styl +5 -0
  264. package/files-dependency-builder/fixtures/precinct/typescript.ts +8 -0
  265. package/files-dependency-builder/fixtures/precinct/unparseable.js +6 -0
  266. package/files-dependency-builder/fixtures/unsupported-file.pdf +0 -0
  267. package/files-dependency-builder/generate-tree-madge.ts +200 -0
  268. package/files-dependency-builder/index.ts +5 -0
  269. package/files-dependency-builder/missing-handler.ts +76 -0
  270. package/files-dependency-builder/path-map.ts +38 -0
  271. package/files-dependency-builder/precinct/index.spec.ts +342 -0
  272. package/files-dependency-builder/precinct/index.ts +250 -0
  273. package/files-dependency-builder/types/dependency-tree-type.ts +46 -0
  274. package/files-dependency-builder/types/index.ts +3 -0
  275. package/package.json +37 -13
  276. /package/dist/{preview-1720513025675.js → preview-1720667996237.js} +0 -0
@@ -0,0 +1,651 @@
1
+ "use strict";
2
+
3
+ function _defenderFs() {
4
+ const data = require("@teambit/defender.fs.global-bit-temp-dir");
5
+ _defenderFs = function () {
6
+ return data;
7
+ };
8
+ return data;
9
+ }
10
+ function _fsExtra() {
11
+ const data = _interopRequireDefault(require("fs-extra"));
12
+ _fsExtra = function () {
13
+ return data;
14
+ };
15
+ return data;
16
+ }
17
+ function _assert() {
18
+ const data = _interopRequireDefault(require("assert"));
19
+ _assert = function () {
20
+ return data;
21
+ };
22
+ return data;
23
+ }
24
+ function _path() {
25
+ const data = _interopRequireDefault(require("path"));
26
+ _path = function () {
27
+ return data;
28
+ };
29
+ return data;
30
+ }
31
+ function _rewire() {
32
+ const data = _interopRequireDefault(require("rewire"));
33
+ _rewire = function () {
34
+ return data;
35
+ };
36
+ return data;
37
+ }
38
+ function _sinon() {
39
+ const data = _interopRequireDefault(require("sinon"));
40
+ _sinon = function () {
41
+ return data;
42
+ };
43
+ return data;
44
+ }
45
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
46
+ const UNIT_TEST_DIR = _path().default.join(_defenderFs().BIT_TEMP_ROOT, 'unit-test');
47
+ const cabinetNonDefault = (0, _rewire().default)('./');
48
+ const cabinet = cabinetNonDefault.default;
49
+ const fixtures = _path().default.resolve(`${__dirname}/../fixtures/filing-cabinet`);
50
+
51
+ // eslint-disable-next-line import/no-dynamic-require, global-require
52
+ const mockedFiles = require(`${fixtures}/mockedJSFiles`);
53
+ // eslint-disable-next-line import/no-dynamic-require, global-require
54
+ const mockAST = require(`${fixtures}/ast`);
55
+ function mockfs(obj, acc) {
56
+ Object.entries(obj).forEach(([key, value]) => {
57
+ if (typeof value === 'string') {
58
+ const filePath = acc ? _path().default.join(acc, key) : key;
59
+ const fullFilePath = _path().default.join(UNIT_TEST_DIR, filePath);
60
+ const content = value;
61
+ return _fsExtra().default.outputFileSync(fullFilePath, content);
62
+ }
63
+ mockfs(value, acc ? _path().default.join(acc, key) : key);
64
+ return undefined;
65
+ });
66
+ }
67
+ function cleanUnitDir() {
68
+ _fsExtra().default.removeSync(UNIT_TEST_DIR);
69
+ }
70
+
71
+ // try {
72
+ // // eslint-disable-next-line global-require
73
+ // require('module-lookup-amd');
74
+ // } catch (err: any) {
75
+ // // eslint-disable-next-line no-console
76
+ // console.log(`mocha suppresses the error, so console.error is needed to show the error on the screen.
77
+ // the problem is with module-lookup-amd that calls requirejs package and uses rewire package.
78
+ // see https://github.com/jhnns/rewire/issues/178 for more details.
79
+ // the error occurs since node v12.16.0. for the time being, to run the tests, use an earlier version.
80
+ // `);
81
+ // // eslint-disable-next-line no-console
82
+ // console.error(err);
83
+ // throw err;
84
+ // }
85
+
86
+ describe('filing-cabinet', () => {
87
+ describe('JavaScript', () => {
88
+ beforeEach(() => {
89
+ mockfs(mockedFiles);
90
+ });
91
+ afterEach(() => {
92
+ cleanUnitDir();
93
+ });
94
+ it('uses a generic resolve for unsupported file extensions', () => {
95
+ const resolvedFile = cabinet({
96
+ dependency: './bar',
97
+ filename: `${UNIT_TEST_DIR}/js/commonjs/foo.baz`,
98
+ directory: `${UNIT_TEST_DIR}/js/commonjs/`
99
+ });
100
+ _assert().default.ok(resolvedFile.endsWith('bar.baz'));
101
+ });
102
+ describe('when given an ast for a JS file', () => {
103
+ it('reuses the ast when trying to determine the module type', () => {
104
+ const ast = {};
105
+ const result = cabinet({
106
+ dependency: './bar',
107
+ filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,
108
+ directory: `${UNIT_TEST_DIR}/js/es6/`,
109
+ ast
110
+ });
111
+ _assert().default.ok(result.endsWith('es6/bar.js'));
112
+ });
113
+ it('resolves the dependency successfully', () => {
114
+ const result = cabinet({
115
+ dependency: './bar',
116
+ filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,
117
+ directory: `${UNIT_TEST_DIR}/js/es6/`,
118
+ ast: mockAST
119
+ });
120
+ _assert().default.equal(result, _path().default.join(UNIT_TEST_DIR, 'js/es6/bar.js'));
121
+ });
122
+ });
123
+ describe('when not given an ast', () => {
124
+ it('uses the filename to look for the module type', () => {
125
+ const options = {
126
+ dependency: './bar',
127
+ filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,
128
+ directory: `${UNIT_TEST_DIR}/js/es6/`
129
+ };
130
+ const result = cabinet(options);
131
+ _assert().default.equal(result, _path().default.join(UNIT_TEST_DIR, 'js/es6/bar.js'));
132
+ });
133
+ });
134
+ describe('es6', () => {
135
+ // TODO: commonJSLookup is not able to be stubbed after the revamp, but keep the test case temporarily for reference
136
+ it.skip('assumes commonjs for es6 modules with no requirejs/webpack config', () => {
137
+ const stub = _sinon().default.stub();
138
+ const revert = cabinetNonDefault.__set__('commonJSLookup', stub);
139
+ cabinet({
140
+ dependency: './bar',
141
+ filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,
142
+ directory: `${UNIT_TEST_DIR}/js/es6/`
143
+ });
144
+ _assert().default.ok(stub.called);
145
+ revert();
146
+ });
147
+ });
148
+ describe('jsx', () => {
149
+ it('resolves files with the .jsx extension', () => {
150
+ const result = cabinet({
151
+ dependency: './bar',
152
+ filename: `${UNIT_TEST_DIR}/js/es6/foo.jsx`,
153
+ directory: `${UNIT_TEST_DIR}/js/es6/`
154
+ });
155
+ _assert().default.equal(result, `${_path().default.join(UNIT_TEST_DIR, 'js/es6/bar.js')}`);
156
+ });
157
+ });
158
+
159
+ // describe('amd', () => {
160
+ // it('uses the amd resolver', () => {
161
+ // const resolvedFile = cabinet({
162
+ // dependency: './bar',
163
+ // filename: `${UNIT_TEST_DIR}/js/amd/foo.js`,
164
+ // directory: `${UNIT_TEST_DIR}/js/amd/`,
165
+ // });
166
+ // assert.ok(resolvedFile.endsWith('amd/bar.js'));
167
+ // });
168
+
169
+ // // skipped as part of lazy loading fix. not seems to be super helpful test
170
+ // it.skip('passes along arguments', () => {
171
+ // const stub = sinon.stub();
172
+ // const revert = cabinet.__set__('amdLookup', stub);
173
+ // const config = { baseUrl: 'js' };
174
+
175
+ // cabinet({
176
+ // dependency: 'bar',
177
+ // config,
178
+ // configPath: 'config.js',
179
+ // filename: `${UNIT_TEST_DIR}/js/amd/foo.js`,
180
+ // directory: `${UNIT_TEST_DIR}/js/amd/`,
181
+ // });
182
+
183
+ // const args = stub.getCall(0).args[0];
184
+
185
+ // assert.equal(args.dependency, 'bar');
186
+ // assert.equal(args.config, config);
187
+ // assert.equal(args.configPath, 'config.js');
188
+ // assert.equal(args.filename, 'js/amd/foo.js');
189
+ // assert.equal(args.directory, 'js/amd/');
190
+
191
+ // assert.ok(stub.called);
192
+
193
+ // revert();
194
+ // });
195
+ // });
196
+
197
+ describe('commonjs', () => {
198
+ // TODO: commonJSLookup is not able to be stubbed after the revamp, but keep the test case temporarily for reference
199
+ it.skip("uses require's resolver", () => {
200
+ const stub = _sinon().default.stub();
201
+ const revert = cabinetNonDefault.__set__('commonJSLookup', stub);
202
+ cabinet({
203
+ dependency: './bar',
204
+ filename: `${UNIT_TEST_DIR}/js/commonjs/foo.js`,
205
+ directory: `${UNIT_TEST_DIR}/js/commonjs/`
206
+ });
207
+ _assert().default.ok(stub.called);
208
+ revert();
209
+ });
210
+ it('returns an empty string for an unresolved module', () => {
211
+ const result = cabinet({
212
+ dependency: 'foobar',
213
+ filename: `${UNIT_TEST_DIR}/js/commonjs/foo.js`,
214
+ directory: `${UNIT_TEST_DIR}/js/commonjs/`
215
+ });
216
+ _assert().default.equal(result, '');
217
+ });
218
+ it('adds the directory to the require resolution paths', () => {
219
+ const directory = `${UNIT_TEST_DIR}/js/commonjs/`;
220
+ cabinet({
221
+ dependency: 'foobar',
222
+ filename: `${UNIT_TEST_DIR}/js/commonjs/foo.js`,
223
+ directory
224
+ });
225
+ _assert().default.ok(
226
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
227
+ require.main.paths.some(function (p) {
228
+ return p.indexOf(_path().default.normalize(directory)) !== -1;
229
+ }));
230
+ });
231
+ it('resolves a relative dependency about the filename', () => {
232
+ const directory = `${UNIT_TEST_DIR}/js/commonjs/`;
233
+ const filename = `${directory}foo.js`;
234
+ const result = cabinet({
235
+ dependency: './bar',
236
+ filename,
237
+ directory
238
+ });
239
+ _assert().default.equal(result, _path().default.join(_path().default.resolve(directory), 'bar.js'));
240
+ });
241
+ it("resolves a .. dependency to its parent directory's index.js file", () => {
242
+ const directory = `${UNIT_TEST_DIR}/js/commonjs/`;
243
+ const filename = `${directory}subdir/module.js`;
244
+ const result = cabinet({
245
+ dependency: '../',
246
+ filename,
247
+ directory
248
+ });
249
+ _assert().default.equal(result, _path().default.join(_path().default.resolve(directory), 'index.js'));
250
+ });
251
+
252
+ // @todo: fix
253
+ it.skip('resolves a dependency within a directory outside of the given file', () => {
254
+ const directory = `${UNIT_TEST_DIR}/js/commonjs/`;
255
+ const filename = `${directory}test/index.spec.js`;
256
+ const result = cabinet({
257
+ dependency: 'subdir',
258
+ filename,
259
+ directory
260
+ });
261
+ _assert().default.equal(result, _path().default.join(_path().default.resolve(directory), 'subdir/index.js'));
262
+ });
263
+
264
+ // @todo: fix
265
+ it.skip('resolves a node module with module entry in package.json', () => {
266
+ const directory = `${UNIT_TEST_DIR}/js/commonjs/`;
267
+ const filename = `${directory}module.entry.js`;
268
+ const result = cabinet({
269
+ dependency: 'module.entry',
270
+ filename,
271
+ directory,
272
+ nodeModulesConfig: {
273
+ entry: 'module'
274
+ }
275
+ });
276
+ _assert().default.equal(result, _path().default.join(_path().default.resolve(directory), '..', 'node_modules', 'module.entry', 'index.module.js'));
277
+ });
278
+ it('resolves a nested module', () => {
279
+ const directory = `${UNIT_TEST_DIR}/js/node_modules/nested/`;
280
+ const filename = `${directory}index.js`;
281
+ const result = cabinet({
282
+ dependency: 'lodash.assign',
283
+ filename,
284
+ directory
285
+ });
286
+ _assert().default.equal(result, _path().default.join(_path().default.resolve(directory), 'node_modules', 'lodash.assign', 'index.js'));
287
+ });
288
+ it('resolves to the index.js file of a directory', () => {
289
+ const directory = `${UNIT_TEST_DIR}/js/withIndex`;
290
+ const filename = `${directory}/index.js`;
291
+ const result = cabinet({
292
+ dependency: './subdir',
293
+ filename,
294
+ directory
295
+ });
296
+ _assert().default.equal(result, _path().default.normalize(`${_path().default.resolve(directory)}/subdir/index.js`));
297
+ });
298
+ it('resolves implicit .jsx requires', () => {
299
+ const result = cabinet({
300
+ dependency: './bar',
301
+ filename: `${UNIT_TEST_DIR}/js/cjs/foo.js`,
302
+ directory: `${UNIT_TEST_DIR}/js/cjs/`
303
+ });
304
+ _assert().default.equal(result, `${_path().default.join(UNIT_TEST_DIR, 'js/cjs/bar.jsx')}`);
305
+ });
306
+ it('resolves implicit .scss requires', () => {
307
+ const result = cabinet({
308
+ dependency: './baz',
309
+ filename: `${UNIT_TEST_DIR}/js/cjs/foo.js`,
310
+ directory: `${UNIT_TEST_DIR}/js/cjs/`
311
+ });
312
+ _assert().default.equal(result, `${_path().default.join(UNIT_TEST_DIR, 'js/cjs/baz.scss')}`);
313
+ });
314
+ it('resolves implicit .json requires', () => {
315
+ const result = cabinet({
316
+ dependency: './pkg',
317
+ filename: `${UNIT_TEST_DIR}/js/cjs/foo.js`,
318
+ directory: `${UNIT_TEST_DIR}/js/cjs/`
319
+ });
320
+ _assert().default.equal(result, `${_path().default.join(UNIT_TEST_DIR, 'js/cjs/pkg.json')}`);
321
+ });
322
+ });
323
+ describe('typescript', () => {
324
+ it('resolves an import', () => {
325
+ const directory = `${UNIT_TEST_DIR}/js/ts`;
326
+ const filename = `${directory}/index.ts`;
327
+ const result = cabinet({
328
+ dependency: './foo',
329
+ filename,
330
+ directory
331
+ });
332
+ _assert().default.equal(result, _path().default.join(_path().default.resolve(directory), 'foo.ts'));
333
+ });
334
+ describe('when a dependency does not exist', () => {
335
+ it('returns an empty result', () => {
336
+ const directory = `${UNIT_TEST_DIR}/js/ts`;
337
+ const filename = `${directory}/index.ts`;
338
+ const result = cabinet({
339
+ dependency: './barbar',
340
+ filename,
341
+ directory
342
+ });
343
+ _assert().default.equal(result, '');
344
+ });
345
+ });
346
+ });
347
+ });
348
+ describe('CSS', () => {
349
+ beforeEach(() => {
350
+ mockfs({
351
+ stylus: {
352
+ 'foo.styl': '',
353
+ 'bar.styl': ''
354
+ },
355
+ sass: {
356
+ 'foo.scss': '',
357
+ 'bar.scss': '',
358
+ 'foo.sass': '',
359
+ 'bar.sass': ''
360
+ },
361
+ less: {
362
+ 'foo.less': '',
363
+ 'bar.less': '',
364
+ 'bar.css': ''
365
+ }
366
+ });
367
+
368
+ // mockJSDir = path.resolve(__dirname, '../');
369
+ });
370
+ afterEach(() => {
371
+ cleanUnitDir();
372
+ });
373
+ describe('sass', () => {
374
+ it('uses the sass resolver for .scss files', () => {
375
+ const result = cabinet({
376
+ dependency: 'bar',
377
+ filename: `${UNIT_TEST_DIR}/sass/foo.scss`,
378
+ directory: `${UNIT_TEST_DIR}/sass/`
379
+ });
380
+ _assert().default.equal(result, _path().default.normalize(`${UNIT_TEST_DIR}/sass/bar.scss`));
381
+ });
382
+ it('uses the sass resolver for .sass files', () => {
383
+ const result = cabinet({
384
+ dependency: 'bar',
385
+ filename: `${UNIT_TEST_DIR}/sass/foo.sass`,
386
+ directory: `${UNIT_TEST_DIR}/sass/`
387
+ });
388
+ _assert().default.equal(result, _path().default.normalize(`${UNIT_TEST_DIR}/sass/bar.sass`));
389
+ });
390
+ });
391
+ describe('stylus', () => {
392
+ it('uses the stylus resolver', () => {
393
+ const result = cabinet({
394
+ dependency: 'bar',
395
+ filename: `${UNIT_TEST_DIR}/stylus/foo.styl`,
396
+ directory: `${UNIT_TEST_DIR}/stylus/`
397
+ });
398
+ _assert().default.equal(result, _path().default.normalize(`${UNIT_TEST_DIR}/stylus/bar.styl`));
399
+ });
400
+ });
401
+ describe('less', () => {
402
+ it('resolves extensionless dependencies', () => {
403
+ const result = cabinet({
404
+ dependency: 'bar',
405
+ filename: `${UNIT_TEST_DIR}/less/foo.less`,
406
+ directory: `${UNIT_TEST_DIR}/less/`
407
+ });
408
+ _assert().default.equal(result, _path().default.normalize(`${UNIT_TEST_DIR}/less/bar.less`));
409
+ });
410
+ it('resolves dependencies with a less extension', () => {
411
+ const result = cabinet({
412
+ dependency: 'bar.less',
413
+ filename: `${UNIT_TEST_DIR}/less/foo.less`,
414
+ directory: `${UNIT_TEST_DIR}/less/`
415
+ });
416
+ _assert().default.equal(result, _path().default.normalize(`${UNIT_TEST_DIR}/less/bar.less`));
417
+ });
418
+ it('resolves dependencies with a css extension', () => {
419
+ const result = cabinet({
420
+ dependency: 'bar.css',
421
+ filename: `${UNIT_TEST_DIR}/less/foo.less`,
422
+ directory: `${UNIT_TEST_DIR}/less/`
423
+ });
424
+ _assert().default.equal(result, _path().default.normalize(`${UNIT_TEST_DIR}/less/bar.css`));
425
+ });
426
+ });
427
+ });
428
+ describe('unrecognized extension', () => {
429
+ it('uses a generic resolve for unsupported file extensions', () => {
430
+ const result = cabinet({
431
+ dependency: './bar',
432
+ filename: `${UNIT_TEST_DIR}/barbazim/foo.baz`,
433
+ directory: `${UNIT_TEST_DIR}/barbazim/`
434
+ });
435
+ _assert().default.equal(result, _path().default.normalize(`${UNIT_TEST_DIR}/barbazim/bar.baz`));
436
+ });
437
+ });
438
+ describe('custom env lookups', () => {
439
+ it('supports passing env detectors', () => {
440
+ const detector = {
441
+ detect: fileContent => {
442
+ return fileContent.indexOf('foo') === -1 ? [] : ['foo'];
443
+ },
444
+ isSupported: ({
445
+ ext
446
+ }) => {
447
+ return ext === '.foo';
448
+ },
449
+ dependencyLookup: ({
450
+ dependency
451
+ }) => {
452
+ return `/xyz/${dependency}.baz`;
453
+ },
454
+ type: 'foo'
455
+ };
456
+ const result = cabinet({
457
+ directory: `${UNIT_TEST_DIR}/barbazim/`,
458
+ filename: `${UNIT_TEST_DIR}/barbazim/xxx.foo`,
459
+ ext: '.foo',
460
+ dependency: 'bar',
461
+ envDetectors: [detector]
462
+ });
463
+ _assert().default.equal(result, '/xyz/bar.baz');
464
+ });
465
+ });
466
+ describe('.register', () => {
467
+ it('registers a custom resolver for a given extension', () => {
468
+ const stub = _sinon().default.stub().returns('foo.foobar');
469
+ cabinetNonDefault.register('.foobar', stub);
470
+ const pathResult = cabinet({
471
+ dependency: './bar',
472
+ filename: `${UNIT_TEST_DIR}/js/amd/foo.foobar`,
473
+ directory: `${UNIT_TEST_DIR}/js/amd/`
474
+ });
475
+ _assert().default.ok(stub.called);
476
+ _assert().default.equal(pathResult, 'foo.foobar');
477
+ });
478
+ it('allows does not break default resolvers', () => {
479
+ mockfs({
480
+ stylus: {
481
+ 'foo.styl': '',
482
+ 'bar.styl': ''
483
+ }
484
+ });
485
+ const stub = _sinon().default.stub().returns('foo');
486
+ cabinetNonDefault.register('.foobar', stub);
487
+ cabinet({
488
+ dependency: './bar',
489
+ filename: `${UNIT_TEST_DIR}/js/amd/foo.foobar`,
490
+ directory: `${UNIT_TEST_DIR}/js/amd/`
491
+ });
492
+ const result = cabinet({
493
+ dependency: './bar',
494
+ filename: `${UNIT_TEST_DIR}/stylus/foo.styl`,
495
+ directory: `${UNIT_TEST_DIR}/stylus/`
496
+ });
497
+ _assert().default.ok(stub.called);
498
+ _assert().default.ok(result);
499
+ cleanUnitDir();
500
+ });
501
+ it('can be called multiple times', () => {
502
+ const stub = _sinon().default.stub().returns('foo');
503
+ const stub2 = _sinon().default.stub().returns('foo');
504
+ cabinetNonDefault.register('.foobar', stub);
505
+ cabinetNonDefault.register('.barbar', stub2);
506
+ cabinet({
507
+ dependency: './bar',
508
+ filename: `${UNIT_TEST_DIR}/js/amd/foo.foobar`,
509
+ directory: `${UNIT_TEST_DIR}/js/amd/`
510
+ });
511
+ cabinet({
512
+ dependency: './bar',
513
+ filename: `${UNIT_TEST_DIR}/js/amd/foo.barbar`,
514
+ directory: `${UNIT_TEST_DIR}/js/amd/`
515
+ });
516
+ _assert().default.ok(stub.called);
517
+ _assert().default.ok(stub2.called);
518
+ });
519
+ it('does not add redundant extensions to supportedFileExtensions', () => {
520
+ const stub = _sinon().default.stub;
521
+ const newExt = '.foobar';
522
+ cabinetNonDefault.register(newExt, stub);
523
+ cabinetNonDefault.register(newExt, stub);
524
+ const {
525
+ supportedFileExtensions
526
+ } = cabinetNonDefault;
527
+ _assert().default.equal(supportedFileExtensions.indexOf(newExt), supportedFileExtensions.lastIndexOf(newExt));
528
+ });
529
+ });
530
+
531
+ // skip temporarily to make PR 9000 pass
532
+ describe.skip('.scss with a dependency prefix with a tilda', () => {
533
+ it('should resolve the dependency to a node_module package (using webpack under the hood)', () => {
534
+ const result = cabinet({
535
+ dependency: '~bootstrap/index',
536
+ filename: `${fixtures}/foo.scss`,
537
+ directory: fixtures
538
+ });
539
+ _assert().default.equal(result, _path().default.resolve(`${fixtures}/node_modules/bootstrap/index.scss`));
540
+ });
541
+ });
542
+ // skip temporarily to make PR 9000 pass
543
+ describe.skip('.scss with a dependency prefix with a tilda and resolve config', () => {
544
+ describe('when the alias in resolve-config does not match the dependency', () => {
545
+ it('should fallback to the node-module resolution', () => {
546
+ const resolveConfig = {
547
+ aliases: {
548
+ '~non-exist': 'some-dir'
549
+ }
550
+ };
551
+ const result = cabinet({
552
+ resolveConfig,
553
+ dependency: '~bootstrap/index',
554
+ filename: `${fixtures}/foo.scss`,
555
+ directory: fixtures
556
+ });
557
+ _assert().default.equal(result, _path().default.resolve(`${fixtures}/node_modules/bootstrap/index.scss`));
558
+ });
559
+ });
560
+ });
561
+
562
+ // @todo: fix.
563
+ describe.skip('webpack', () => {
564
+ let directory;
565
+ beforeEach(() => {
566
+ directory = _path().default.resolve(__dirname, '../../../');
567
+ });
568
+ function testResolution(dependency, expected) {
569
+ const resolved = cabinet({
570
+ dependency,
571
+ filename: `${__dirname}/index.js`,
572
+ directory,
573
+ webpackConfig: `${fixtures}/webpack.config.js`
574
+ });
575
+ _assert().default.equal(resolved, _path().default.normalize(expected));
576
+ }
577
+ it('resolves an aliased path', () => {
578
+ testResolution('R', `${directory}/node_modules/resolve/index.js`);
579
+ });
580
+ it('resolves a non-aliased path', () => {
581
+ testResolution('resolve', `${directory}/node_modules/resolve/index.js`);
582
+ });
583
+ it('resolves a relative path', () => {
584
+ testResolution('./test/ast', `${fixtures}/test/ast.js`);
585
+ });
586
+ it('resolves an absolute path from a file within a subdirectory', () => {
587
+ const resolved = cabinet({
588
+ dependency: 'R',
589
+ filename: `${fixtures}/test/ast.js`,
590
+ directory,
591
+ webpackConfig: `${fixtures}/webpack.config.js`
592
+ });
593
+ _assert().default.equal(resolved, `${directory}/node_modules/resolve/index.js`);
594
+ });
595
+ it('resolves a path using resolve.root', () => {
596
+ const resolved = cabinet({
597
+ dependency: 'mod1',
598
+ filename: `${directory}/index.js`,
599
+ directory,
600
+ webpackConfig: `${directory}/webpack-root.config.js`
601
+ });
602
+ _assert().default.equal(resolved, `${directory}/test/root1/mod1.js`);
603
+ });
604
+ it('resolves NPM module when using resolve.root', () => {
605
+ const resolved = cabinet({
606
+ dependency: 'resolve',
607
+ filename: `${directory}/index.js`,
608
+ directory,
609
+ webpackConfig: `${directory}/webpack-root.config.js`
610
+ });
611
+ _assert().default.equal(resolved, `${directory}/node_modules/resolve/index.js`);
612
+ });
613
+ it('resolves NPM module when using resolve.modulesDirectories', () => {
614
+ const resolved = cabinet({
615
+ dependency: 'resolve',
616
+ filename: `${directory}/index.js`,
617
+ directory,
618
+ webpackConfig: `${directory}/webpack-root.config.js`
619
+ });
620
+ _assert().default.equal(resolved, `${directory}/node_modules/resolve/index.js`);
621
+ });
622
+ it('resolves a path using resolve.modulesDirectories', () => {
623
+ const resolved = cabinet({
624
+ dependency: 'mod2',
625
+ filename: `${directory}/index.js`,
626
+ directory,
627
+ webpackConfig: `${directory}/webpack-root.config.js`
628
+ });
629
+ _assert().default.equal(resolved, `${directory}/test/root2/mod2.js`);
630
+ });
631
+ it('resolves a path using webpack config that exports a function', () => {
632
+ const resolved = cabinet({
633
+ dependency: 'R',
634
+ filename: `${directory}/index.js`,
635
+ directory,
636
+ webpackConfig: `${directory}/webpack-env.config.js`
637
+ });
638
+ _assert().default.equal(resolved, `${directory}/node_modules/resolve/index.js`);
639
+ });
640
+ it('resolves files with a .jsx extension', () => {
641
+ testResolution('./test/foo.jsx', `${directory}/test/foo.jsx`);
642
+ });
643
+ describe('when the dependency contains a loader', () => {
644
+ it('still works', () => {
645
+ testResolution('hgn!resolve', `${directory}/node_modules/resolve/index.js`);
646
+ });
647
+ });
648
+ });
649
+ });
650
+
651
+ //# sourceMappingURL=index.spec.js.map