@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,272 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+ function _fs() {
8
+ const data = _interopRequireDefault(require("fs"));
9
+ _fs = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ function _debug() {
15
+ const data = _interopRequireDefault(require("debug"));
16
+ _debug = function () {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
21
+ function _filingCabinet() {
22
+ const data = _interopRequireDefault(require("../filing-cabinet"));
23
+ _filingCabinet = function () {
24
+ return data;
25
+ };
26
+ return data;
27
+ }
28
+ function _precinct() {
29
+ const data = _interopRequireDefault(require("../precinct"));
30
+ _precinct = function () {
31
+ return data;
32
+ };
33
+ return data;
34
+ }
35
+ function _Config() {
36
+ const data = _interopRequireDefault(require("./Config"));
37
+ _Config = function () {
38
+ return data;
39
+ };
40
+ return data;
41
+ }
42
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
43
+ /**
44
+ * this file had been forked from https://github.com/dependents/node-dependency-tree
45
+ */
46
+
47
+ const debug = (0, _debug().default)('tree');
48
+
49
+ /**
50
+ * Recursively find all dependencies (avoiding circular) traversing the entire dependency tree
51
+ * and returns a flat list of all unique, visited nodes
52
+ *
53
+ * @param {Object} options
54
+ * @param {String} options.filename - The path of the module whose tree to traverse
55
+ * @param {String} options.directory - The directory containing all JS files
56
+ * @param {String} [options.requireConfig] - The path to a requirejs config
57
+ * @param {String} [options.webpackConfig] - The path to a webpack config
58
+ * @param {Object} [options.visited] - Cache of visited, absolutely pathed files that should not be reprocessed.
59
+ * Format is a filename -> tree as list lookup table
60
+ * @param {Array} [options.nonExistent] - List of partials that do not exist
61
+ * @return {Object}
62
+ */
63
+ function _default(options) {
64
+ const config = new (_Config().default)(options);
65
+ if (!_fs().default.existsSync(config.filename)) {
66
+ debug(`file ${config.filename} does not exist`);
67
+ return {};
68
+ }
69
+ return traverse(config);
70
+ }
71
+
72
+ /**
73
+ * Executes a post-order depth first search on the dependency tree and returns a
74
+ * list of absolute file paths. The order of files in the list will be the
75
+ * proper concatenation order for bundling.
76
+ *
77
+ * In other words, for any file in the list, all of that file's dependencies (direct or indirect) will appear at
78
+ * lower indices in the list. The root (entry point) file will therefore appear last.
79
+ *
80
+ * The list will not contain duplicates.
81
+ *
82
+ * Params are those of module.exports
83
+ */
84
+ module.exports.toList = function (options) {
85
+ options.isListForm = true;
86
+ return module.exports(options);
87
+ };
88
+
89
+ /**
90
+ * Returns the list of dependencies for the given filename
91
+ *
92
+ * Protected for testing
93
+ *
94
+ * @param {Config} config
95
+ * @return {Array}
96
+ */
97
+ module.exports._getDependencies = function (config) {
98
+ let dependenciesRaw; // from some detectives it comes as an array, from some it is an object
99
+ const precinctOptions = config.detectiveConfig;
100
+ precinctOptions.includeCore = false;
101
+ precinctOptions.envDetectors = config.envDetectors;
102
+ // @ts-ignore
103
+ delete _precinct().default.ast;
104
+ try {
105
+ dependenciesRaw = _precinct().default.paperwork(config.filename, precinctOptions);
106
+ } catch (e) {
107
+ debug(`error getting dependencies: ${e.message}`);
108
+ debug(e.stack);
109
+ e.code = 'PARSING_ERROR';
110
+ config.errors[config.filename] = e;
111
+ dependenciesRaw = [];
112
+ }
113
+ const dependencies = typeof dependenciesRaw === 'object' && !Array.isArray(dependenciesRaw) ? Object.keys(dependenciesRaw) : dependenciesRaw;
114
+ const isDependenciesArray = Array.isArray(dependenciesRaw);
115
+ debug(`extracted ${dependencies.length} dependencies: `, dependencies);
116
+ const resolvedDependencies = [];
117
+ const pathMapDependencies = [];
118
+ const pathMapFile = {
119
+ file: config.filename
120
+ };
121
+ dependencies.forEach(dependency => processDependency(dependency));
122
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
123
+ pathMapFile.dependencies = pathMapDependencies;
124
+ config.pathMap.push(pathMapFile);
125
+ return resolvedDependencies;
126
+ function processDependency(dependency) {
127
+ if (isHttp(dependency)) {
128
+ debug(`skipping an http dependency: ${dependency}`);
129
+ return;
130
+ }
131
+ const cabinetParams = {
132
+ dependency,
133
+ filename: config.filename,
134
+ directory: config.directory,
135
+ // @ts-ignore
136
+ ast: _precinct().default.ast,
137
+ config: config.requireConfig,
138
+ webpackConfig: config.webpackConfig,
139
+ resolveConfig: config.resolveConfig,
140
+ envDetectors: config.envDetectors
141
+ };
142
+ if (!isDependenciesArray && dependenciesRaw[dependency].isScript !== undefined) {
143
+ // used for vue
144
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
145
+ cabinetParams.isScript = dependenciesRaw[dependency].isScript;
146
+ }
147
+ let result;
148
+ try {
149
+ result = (0, _filingCabinet().default)(cabinetParams);
150
+ } catch (err) {
151
+ debug(`error resolving dependencies: ${err.message}`);
152
+ debug(err.stack);
153
+ err.code = 'RESOLVE_ERROR';
154
+ throw err;
155
+ }
156
+ if (!result) {
157
+ debug(`skipping an empty filepath resolution for dependency: ${dependency}`);
158
+ addToNonExistent(dependency);
159
+ return;
160
+ }
161
+ const exists = _fs().default.existsSync(result);
162
+ if (!exists) {
163
+ addToNonExistent(dependency);
164
+ debug(`skipping non-empty but non-existent resolution: ${result} for dependency: ${dependency}`);
165
+ return;
166
+ }
167
+ const pathMap = {
168
+ importSource: dependency,
169
+ resolvedDep: result
170
+ };
171
+ if (!isDependenciesArray && dependenciesRaw[dependency].importSpecifiers) {
172
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
173
+ pathMap.importSpecifiers = dependenciesRaw[dependency].importSpecifiers;
174
+ }
175
+
176
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
177
+ pathMapDependencies.push(pathMap);
178
+
179
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
180
+ resolvedDependencies.push(result);
181
+ }
182
+ function addToNonExistent(dependency) {
183
+ if (config.nonExistent[config.filename]) {
184
+ config.nonExistent[config.filename].push(dependency);
185
+ } else {
186
+ config.nonExistent[config.filename] = [dependency];
187
+ }
188
+ }
189
+ };
190
+
191
+ /**
192
+ * the traverse is not a recursive function anymore, it has been changed to be iterative to fix
193
+ * some performance issues.
194
+ * @todo: we have some redundancy here with the `tree` and pathMap`. the `tree` has only the dependencies,
195
+ * `pathMap` has the dependencies and some more info, such as importSpecifiers. we should use only
196
+ * pathMap and get rid of tree.
197
+ */
198
+ function traverse(config) {
199
+ const tree = [];
200
+ const stack = [config.filename];
201
+ while (stack.length) {
202
+ const dependency = stack.pop();
203
+ debug(`traversing ${dependency}`);
204
+ if (config.visited[dependency]) {
205
+ populateFromCache(dependency);
206
+ } else {
207
+ traverseDependency(dependency);
208
+ }
209
+ }
210
+ return tree;
211
+ function traverseDependency(dependency) {
212
+ const localConfig = config.clone();
213
+ localConfig.filename = dependency;
214
+ let dependencies = module.exports._getDependencies(localConfig);
215
+ if (config.filter) {
216
+ debug('using filter function to filter out dependencies');
217
+ debug(`number of dependencies before filtering: ${dependencies.length}`);
218
+ dependencies = dependencies.filter(function (filePath) {
219
+ return localConfig.filter(filePath, localConfig.filename);
220
+ });
221
+ debug(`number of dependencies after filtering: ${dependencies.length}`);
222
+ }
223
+ debug('cabinet-resolved all dependencies: ', dependencies);
224
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
225
+ tree[dependency] = dependencies;
226
+ const filePathMap = config.pathMap.find(pathMapEntry => pathMapEntry.file === dependency);
227
+ if (!filePathMap) throw new Error(`file ${dependency} is missing from PathMap`);
228
+ config.visited[dependency] = {
229
+ pathMap: filePathMap,
230
+ missing: config.nonExistent[dependency],
231
+ error: config.errors[dependency]
232
+ };
233
+ stack.push(...dependencies);
234
+ }
235
+ function populateFromCache(dependency) {
236
+ debug(`already visited ${dependency}. Will try to find it and its dependencies in the cache`);
237
+ const dependenciesStack = [dependency];
238
+ while (dependenciesStack.length) {
239
+ findAllDependenciesInCache(dependenciesStack);
240
+ }
241
+ }
242
+ function findAllDependenciesInCache(dependenciesStack) {
243
+ const dependency = dependenciesStack.pop();
244
+ if (!config.visited[dependency]) {
245
+ debug(`unable to find ${dependency} in the cache, it was probably filtered before`);
246
+ return;
247
+ }
248
+ debug(`found ${dependency} in the cache`);
249
+ const dependencies = config.visited[dependency].pathMap.dependencies.map(d => d.resolvedDep);
250
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
251
+ tree[dependency] = dependencies;
252
+ config.pathMap.push(config.visited[dependency].pathMap);
253
+ if (config.visited[dependency].missing) {
254
+ config.nonExistent[dependency] = config.visited[dependency].missing;
255
+ }
256
+ if (config.visited[dependency].error) {
257
+ config.errors[dependency] = config.visited[dependency].error;
258
+ }
259
+ dependencies.forEach(d => {
260
+ if (!tree[d]) dependenciesStack.push(d);
261
+ });
262
+ }
263
+ }
264
+
265
+ /**
266
+ * whether the dependency is from CDN. (http/https)
267
+ */
268
+ function isHttp(dependency) {
269
+ return Boolean(dependency.startsWith('http://') || dependency.startsWith('https://'));
270
+ }
271
+
272
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_fs","data","_interopRequireDefault","require","_debug","_filingCabinet","_precinct","_Config","e","__esModule","default","debug","debugFactory","_default","options","config","Config","fs","existsSync","filename","traverse","module","exports","toList","isListForm","_getDependencies","dependenciesRaw","precinctOptions","detectiveConfig","includeCore","envDetectors","precinct","ast","paperwork","message","stack","code","errors","dependencies","Array","isArray","Object","keys","isDependenciesArray","length","resolvedDependencies","pathMapDependencies","pathMapFile","file","forEach","dependency","processDependency","pathMap","push","isHttp","cabinetParams","directory","requireConfig","webpackConfig","resolveConfig","isScript","undefined","result","cabinet","err","addToNonExistent","exists","importSource","resolvedDep","importSpecifiers","nonExistent","tree","pop","visited","populateFromCache","traverseDependency","localConfig","clone","filter","filePath","filePathMap","find","pathMapEntry","Error","missing","error","dependenciesStack","findAllDependenciesInCache","map","d","Boolean","startsWith"],"sources":["index.ts"],"sourcesContent":["/**\n * this file had been forked from https://github.com/dependents/node-dependency-tree\n */\nimport fs from 'fs';\nimport debugFactory from 'debug';\nimport cabinet from '../filing-cabinet';\nimport precinct from '../precinct';\nimport Config from './Config';\n\nconst debug = debugFactory('tree');\n\n/**\n * Recursively find all dependencies (avoiding circular) traversing the entire dependency tree\n * and returns a flat list of all unique, visited nodes\n *\n * @param {Object} options\n * @param {String} options.filename - The path of the module whose tree to traverse\n * @param {String} options.directory - The directory containing all JS files\n * @param {String} [options.requireConfig] - The path to a requirejs config\n * @param {String} [options.webpackConfig] - The path to a webpack config\n * @param {Object} [options.visited] - Cache of visited, absolutely pathed files that should not be reprocessed.\n * Format is a filename -> tree as list lookup table\n * @param {Array} [options.nonExistent] - List of partials that do not exist\n * @return {Object}\n */\nexport default function (options) {\n const config = new Config(options);\n\n if (!fs.existsSync(config.filename)) {\n debug(`file ${config.filename} does not exist`);\n return {};\n }\n return traverse(config);\n}\n\n/**\n * Executes a post-order depth first search on the dependency tree and returns a\n * list of absolute file paths. The order of files in the list will be the\n * proper concatenation order for bundling.\n *\n * In other words, for any file in the list, all of that file's dependencies (direct or indirect) will appear at\n * lower indices in the list. The root (entry point) file will therefore appear last.\n *\n * The list will not contain duplicates.\n *\n * Params are those of module.exports\n */\nmodule.exports.toList = function (options) {\n options.isListForm = true;\n\n return module.exports(options);\n};\n\n/**\n * Returns the list of dependencies for the given filename\n *\n * Protected for testing\n *\n * @param {Config} config\n * @return {Array}\n */\nmodule.exports._getDependencies = function (config) {\n let dependenciesRaw; // from some detectives it comes as an array, from some it is an object\n const precinctOptions = config.detectiveConfig;\n precinctOptions.includeCore = false;\n precinctOptions.envDetectors = config.envDetectors;\n // @ts-ignore\n delete precinct.ast;\n\n try {\n dependenciesRaw = precinct.paperwork(config.filename, precinctOptions);\n } catch (e: any) {\n debug(`error getting dependencies: ${e.message}`);\n debug(e.stack);\n e.code = 'PARSING_ERROR';\n config.errors[config.filename] = e;\n dependenciesRaw = [];\n }\n const dependencies =\n typeof dependenciesRaw === 'object' && !Array.isArray(dependenciesRaw)\n ? Object.keys(dependenciesRaw)\n : dependenciesRaw;\n const isDependenciesArray = Array.isArray(dependenciesRaw);\n debug(`extracted ${dependencies.length} dependencies: `, dependencies);\n\n const resolvedDependencies = [];\n const pathMapDependencies = [];\n const pathMapFile = { file: config.filename };\n\n dependencies.forEach((dependency) => processDependency(dependency));\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n pathMapFile.dependencies = pathMapDependencies;\n config.pathMap.push(pathMapFile);\n return resolvedDependencies;\n\n function processDependency(dependency) {\n if (isHttp(dependency)) {\n debug(`skipping an http dependency: ${dependency}`);\n return;\n }\n const cabinetParams = {\n dependency,\n filename: config.filename,\n directory: config.directory,\n // @ts-ignore\n ast: precinct.ast,\n config: config.requireConfig,\n webpackConfig: config.webpackConfig,\n resolveConfig: config.resolveConfig,\n envDetectors: config.envDetectors,\n };\n if (!isDependenciesArray && dependenciesRaw[dependency].isScript !== undefined) {\n // used for vue\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n cabinetParams.isScript = dependenciesRaw[dependency].isScript;\n }\n let result;\n try {\n result = cabinet(cabinetParams);\n } catch (err: any) {\n debug(`error resolving dependencies: ${err.message}`);\n debug(err.stack);\n err.code = 'RESOLVE_ERROR';\n throw err;\n }\n\n if (!result) {\n debug(`skipping an empty filepath resolution for dependency: ${dependency}`);\n addToNonExistent(dependency);\n return;\n }\n\n const exists = fs.existsSync(result);\n\n if (!exists) {\n addToNonExistent(dependency);\n debug(`skipping non-empty but non-existent resolution: ${result} for dependency: ${dependency}`);\n return;\n }\n const pathMap = { importSource: dependency, resolvedDep: result };\n if (!isDependenciesArray && dependenciesRaw[dependency].importSpecifiers) {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n pathMap.importSpecifiers = dependenciesRaw[dependency].importSpecifiers;\n }\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n pathMapDependencies.push(pathMap);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n resolvedDependencies.push(result);\n }\n function addToNonExistent(dependency) {\n if (config.nonExistent[config.filename]) {\n config.nonExistent[config.filename].push(dependency);\n } else {\n config.nonExistent[config.filename] = [dependency];\n }\n }\n};\n\n/**\n * the traverse is not a recursive function anymore, it has been changed to be iterative to fix\n * some performance issues.\n * @todo: we have some redundancy here with the `tree` and pathMap`. the `tree` has only the dependencies,\n * `pathMap` has the dependencies and some more info, such as importSpecifiers. we should use only\n * pathMap and get rid of tree.\n */\nfunction traverse(config) {\n const tree = [];\n const stack = [config.filename];\n while (stack.length) {\n const dependency = stack.pop();\n debug(`traversing ${dependency}`);\n if (config.visited[dependency]) {\n populateFromCache(dependency);\n } else {\n traverseDependency(dependency);\n }\n }\n\n return tree;\n\n function traverseDependency(dependency) {\n const localConfig = config.clone();\n localConfig.filename = dependency;\n let dependencies = module.exports._getDependencies(localConfig);\n if (config.filter) {\n debug('using filter function to filter out dependencies');\n debug(`number of dependencies before filtering: ${dependencies.length}`);\n dependencies = dependencies.filter(function (filePath) {\n return localConfig.filter(filePath, localConfig.filename);\n });\n debug(`number of dependencies after filtering: ${dependencies.length}`);\n }\n debug('cabinet-resolved all dependencies: ', dependencies);\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tree[dependency] = dependencies;\n const filePathMap = config.pathMap.find((pathMapEntry) => pathMapEntry.file === dependency);\n if (!filePathMap) throw new Error(`file ${dependency} is missing from PathMap`);\n config.visited[dependency] = {\n pathMap: filePathMap,\n missing: config.nonExistent[dependency],\n error: config.errors[dependency],\n };\n stack.push(...dependencies);\n }\n\n function populateFromCache(dependency) {\n debug(`already visited ${dependency}. Will try to find it and its dependencies in the cache`);\n const dependenciesStack = [dependency];\n while (dependenciesStack.length) {\n findAllDependenciesInCache(dependenciesStack);\n }\n }\n\n function findAllDependenciesInCache(dependenciesStack) {\n const dependency = dependenciesStack.pop();\n if (!config.visited[dependency]) {\n debug(`unable to find ${dependency} in the cache, it was probably filtered before`);\n return;\n }\n debug(`found ${dependency} in the cache`);\n const dependencies = config.visited[dependency].pathMap.dependencies.map((d) => d.resolvedDep);\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tree[dependency] = dependencies;\n config.pathMap.push(config.visited[dependency].pathMap);\n if (config.visited[dependency].missing) {\n config.nonExistent[dependency] = config.visited[dependency].missing;\n }\n if (config.visited[dependency].error) {\n config.errors[dependency] = config.visited[dependency].error;\n }\n dependencies.forEach((d) => {\n if (!tree[d]) dependenciesStack.push(d);\n });\n }\n}\n\n/**\n * whether the dependency is from CDN. (http/https)\n */\nfunction isHttp(dependency) {\n return Boolean(dependency.startsWith('http://') || dependency.startsWith('https://'));\n}\n"],"mappings":"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","ignoreList":[]}