packtory 0.0.8 → 0.0.9

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 (339) hide show
  1. package/artifacts/artifacts-builder.d.ts +7 -5
  2. package/artifacts/artifacts-builder.d.ts.map +1 -1
  3. package/artifacts/artifacts-builder.js +47 -18
  4. package/artifacts/artifacts-builder.js.map +1 -1
  5. package/bundle-emitter/emitter.d.ts +12 -2
  6. package/bundle-emitter/emitter.d.ts.map +1 -1
  7. package/bundle-emitter/emitter.js +11 -6
  8. package/bundle-emitter/emitter.js.map +1 -1
  9. package/bundle-emitter/extract-package-tarball.js +1 -2
  10. package/bundle-emitter/extract-package-tarball.js.map +1 -1
  11. package/bundle-emitter/publish-settings-bridge.js +133 -0
  12. package/bundle-emitter/publish-settings-bridge.js.map +1 -0
  13. package/bundle-emitter/registry-client.d.ts +13 -6
  14. package/bundle-emitter/registry-client.d.ts.map +1 -1
  15. package/bundle-emitter/registry-client.js +217 -45
  16. package/bundle-emitter/registry-client.js.map +1 -1
  17. package/bundle-emitter/repository-coherence.js +54 -0
  18. package/bundle-emitter/repository-coherence.js.map +1 -0
  19. package/bundle-emitter/repository-url-normalizer.js +38 -0
  20. package/bundle-emitter/repository-url-normalizer.js.map +1 -0
  21. package/checks/check-runner.js +3 -9
  22. package/checks/check-runner.js.map +1 -1
  23. package/checks/rule.js +13 -0
  24. package/checks/rule.js.map +1 -0
  25. package/checks/rules/max-bundle-size.js +44 -0
  26. package/checks/rules/max-bundle-size.js.map +1 -0
  27. package/checks/rules/no-dev-dependency-imports.js +37 -0
  28. package/checks/rules/no-dev-dependency-imports.js.map +1 -0
  29. package/checks/rules/no-duplicated-files.js +102 -27
  30. package/checks/rules/no-duplicated-files.js.map +1 -1
  31. package/checks/rules/no-side-effects.js +51 -0
  32. package/checks/rules/no-side-effects.js.map +1 -0
  33. package/checks/rules/no-unused-bundle-dependencies.js +33 -0
  34. package/checks/rules/no-unused-bundle-dependencies.js.map +1 -0
  35. package/checks/rules/registry.js +17 -0
  36. package/checks/rules/registry.js.map +1 -0
  37. package/checks/rules/required-files.js +41 -0
  38. package/checks/rules/required-files.js.map +1 -0
  39. package/checks/rules/unique-target-paths.js +34 -0
  40. package/checks/rules/unique-target-paths.js.map +1 -0
  41. package/common/clock.d.ts +7 -0
  42. package/common/clock.d.ts.map +1 -0
  43. package/common/clock.js +11 -0
  44. package/common/clock.js.map +1 -0
  45. package/common/code-files.js +5 -0
  46. package/common/code-files.js.map +1 -0
  47. package/config/additional-package-json-attributes-schema.js +7 -0
  48. package/config/additional-package-json-attributes-schema.js.map +1 -0
  49. package/config/automatic-versioning-settings.js +7 -0
  50. package/config/automatic-versioning-settings.js.map +1 -0
  51. package/config/checks-schema.d.ts +74 -0
  52. package/config/checks-schema.d.ts.map +1 -0
  53. package/config/checks-schema.js +27 -0
  54. package/config/checks-schema.js.map +1 -0
  55. package/config/common-package-settings-schemas.js +20 -0
  56. package/config/common-package-settings-schemas.js.map +1 -0
  57. package/config/config.d.ts +16 -704
  58. package/config/config.d.ts.map +1 -1
  59. package/config/config.js +3 -71
  60. package/config/config.js.map +1 -1
  61. package/config/dead-code-elimination-settings.d.ts +6 -0
  62. package/config/dead-code-elimination-settings.d.ts.map +1 -0
  63. package/config/dead-code-elimination-settings.js +5 -0
  64. package/config/dead-code-elimination-settings.js.map +1 -0
  65. package/config/dependency-policy.d.ts +6 -0
  66. package/config/dependency-policy.d.ts.map +1 -0
  67. package/config/dependency-policy.js +6 -0
  68. package/config/dependency-policy.js.map +1 -0
  69. package/config/main-package-json-schema.js +14 -0
  70. package/config/main-package-json-schema.js.map +1 -0
  71. package/config/manual-versioning-settings.js +7 -0
  72. package/config/manual-versioning-settings.js.map +1 -0
  73. package/config/optional-package-settings-schema.js +15 -0
  74. package/config/optional-package-settings-schema.js.map +1 -0
  75. package/config/package-config.d.ts +49 -0
  76. package/config/package-config.d.ts.map +1 -0
  77. package/config/package-config.js +7 -0
  78. package/config/package-config.js.map +1 -0
  79. package/config/package-interface.d.ts +34 -0
  80. package/config/package-interface.d.ts.map +1 -0
  81. package/config/package-interface.js +26 -0
  82. package/config/package-interface.js.map +1 -0
  83. package/config/package-json.d.ts +11 -10
  84. package/config/package-json.d.ts.map +1 -1
  85. package/config/package-json.js +11 -19
  86. package/config/package-json.js.map +1 -1
  87. package/config/package-schemas.js +10 -0
  88. package/config/package-schemas.js.map +1 -0
  89. package/config/packtory-config-schema.js +7 -0
  90. package/config/packtory-config-schema.js.map +1 -0
  91. package/config/packtory-config-without-registry-schema.js +32 -0
  92. package/config/packtory-config-without-registry-schema.js.map +1 -0
  93. package/config/per-package-settings-schema.js +22 -0
  94. package/config/per-package-settings-schema.js.map +1 -0
  95. package/config/publish-settings.d.ts +22 -0
  96. package/config/publish-settings.d.ts.map +1 -0
  97. package/config/publish-settings.js +26 -0
  98. package/config/publish-settings.js.map +1 -0
  99. package/config/publish-settings.report.js +17 -0
  100. package/config/publish-settings.report.js.map +1 -0
  101. package/config/registry-settings.d.ts +83 -1
  102. package/config/registry-settings.d.ts.map +1 -1
  103. package/config/registry-settings.js +35 -1
  104. package/config/registry-settings.js.map +1 -1
  105. package/config/registry-settings.report.js +41 -0
  106. package/config/registry-settings.report.js.map +1 -0
  107. package/config/root.d.ts +7 -0
  108. package/config/root.d.ts.map +1 -0
  109. package/config/{entry-point.js → root.js} +2 -2
  110. package/config/root.js.map +1 -0
  111. package/config/sbom-settings.js +5 -0
  112. package/config/sbom-settings.js.map +1 -0
  113. package/config/validation.d.ts +2 -2
  114. package/config/validation.d.ts.map +1 -1
  115. package/config/validation.js +155 -37
  116. package/config/validation.js.map +1 -1
  117. package/config/versioning-settings.d.ts.map +1 -1
  118. package/config/versioning-settings.js +2 -9
  119. package/config/versioning-settings.js.map +1 -1
  120. package/dead-code-eliminator/analyzed-bundle.d.ts +27 -0
  121. package/dead-code-eliminator/analyzed-bundle.d.ts.map +1 -0
  122. package/dead-code-eliminator/analyzed-bundle.js +8 -0
  123. package/dead-code-eliminator/analyzed-bundle.js.map +1 -0
  124. package/dead-code-eliminator/cross-bundle/cross-bundle-seeds.js +126 -0
  125. package/dead-code-eliminator/cross-bundle/cross-bundle-seeds.js.map +1 -0
  126. package/dead-code-eliminator/elimination-emitter.js +53 -0
  127. package/dead-code-eliminator/elimination-emitter.js.map +1 -0
  128. package/dead-code-eliminator/eliminator.js +141 -0
  129. package/dead-code-eliminator/eliminator.js.map +1 -0
  130. package/dead-code-eliminator/load-bundle.js +52 -0
  131. package/dead-code-eliminator/load-bundle.js.map +1 -0
  132. package/dead-code-eliminator/reachability/binding-extractor.js +88 -0
  133. package/dead-code-eliminator/reachability/binding-extractor.js.map +1 -0
  134. package/dead-code-eliminator/reachability/impure-statements.js +12 -0
  135. package/dead-code-eliminator/reachability/impure-statements.js.map +1 -0
  136. package/dead-code-eliminator/reachability/reachability.js +141 -0
  137. package/dead-code-eliminator/reachability/reachability.js.map +1 -0
  138. package/dead-code-eliminator/side-effect-classifier.js +289 -0
  139. package/dead-code-eliminator/side-effect-classifier.js.map +1 -0
  140. package/dead-code-eliminator/side-effects-field.js +25 -0
  141. package/dead-code-eliminator/side-effects-field.js.map +1 -0
  142. package/dead-code-eliminator/transform/atom-translator.js +13 -0
  143. package/dead-code-eliminator/transform/atom-translator.js.map +1 -0
  144. package/dead-code-eliminator/transform/declaration-remover.js +92 -0
  145. package/dead-code-eliminator/transform/declaration-remover.js.map +1 -0
  146. package/dead-code-eliminator/transform/line-index.js +27 -0
  147. package/dead-code-eliminator/transform/line-index.js.map +1 -0
  148. package/dead-code-eliminator/transform/source-map-composer.js +68 -0
  149. package/dead-code-eliminator/transform/source-map-composer.js.map +1 -0
  150. package/dependency-scanner/dependency-graph.d.ts +1 -1
  151. package/dependency-scanner/dependency-graph.d.ts.map +1 -1
  152. package/dependency-scanner/dependency-graph.js +5 -7
  153. package/dependency-scanner/dependency-graph.js.map +1 -1
  154. package/dependency-scanner/external-dependencies.js +2 -2
  155. package/dependency-scanner/external-dependencies.js.map +1 -1
  156. package/dependency-scanner/scanner.d.ts +7 -7
  157. package/dependency-scanner/scanner.d.ts.map +1 -1
  158. package/dependency-scanner/scanner.js +9 -14
  159. package/dependency-scanner/scanner.js.map +1 -1
  160. package/dependency-scanner/source-file-references.js +3 -48
  161. package/dependency-scanner/source-file-references.js.map +1 -1
  162. package/dependency-scanner/source-map-file-locator.d.ts.map +1 -1
  163. package/dependency-scanner/source-map-file-locator.js +10 -3
  164. package/dependency-scanner/source-map-file-locator.js.map +1 -1
  165. package/dependency-scanner/typescript-file-host.d.ts +2 -0
  166. package/dependency-scanner/typescript-file-host.d.ts.map +1 -1
  167. package/dependency-scanner/typescript-file-host.js +99 -32
  168. package/dependency-scanner/typescript-file-host.js.map +1 -1
  169. package/dependency-scanner/typescript-project-analyzer.d.ts +4 -5
  170. package/dependency-scanner/typescript-project-analyzer.d.ts.map +1 -1
  171. package/dependency-scanner/typescript-project-analyzer.js +5 -17
  172. package/dependency-scanner/typescript-project-analyzer.js.map +1 -1
  173. package/directed-graph/graph.d.ts +1 -1
  174. package/directed-graph/graph.d.ts.map +1 -1
  175. package/directed-graph/graph.js +132 -97
  176. package/directed-graph/graph.js.map +1 -1
  177. package/file-manager/compare.js +11 -9
  178. package/file-manager/compare.js.map +1 -1
  179. package/file-manager/file-manager.d.ts +1 -1
  180. package/file-manager/file-manager.d.ts.map +1 -1
  181. package/file-manager/file-manager.js +7 -1
  182. package/file-manager/file-manager.js.map +1 -1
  183. package/file-manager/permissions.js +20 -6
  184. package/file-manager/permissions.js.map +1 -1
  185. package/linker/linked-bundle.d.ts +5 -3
  186. package/linker/linked-bundle.d.ts.map +1 -1
  187. package/linker/linker.d.ts.map +1 -1
  188. package/linker/linker.js +8 -7
  189. package/linker/linker.js.map +1 -1
  190. package/linker/resource-graph.js +5 -8
  191. package/linker/resource-graph.js.map +1 -1
  192. package/linker/source-modifier/import-paths.js +1 -12
  193. package/linker/source-modifier/import-paths.js.map +1 -1
  194. package/linker/substitute-bundles.js +55 -48
  195. package/linker/substitute-bundles.js.map +1 -1
  196. package/linker/substituted-resource-graph.js +5 -8
  197. package/linker/substituted-resource-graph.js.map +1 -1
  198. package/npm-oidc-id-token-resolver.js +56 -0
  199. package/npm-oidc-id-token-resolver.js.map +1 -0
  200. package/package-surface/modules.js +307 -0
  201. package/package-surface/modules.js.map +1 -0
  202. package/package-surface/public-module-usage.js +37 -0
  203. package/package-surface/public-module-usage.js.map +1 -0
  204. package/package-surface/surface.d.ts +14 -0
  205. package/package-surface/surface.d.ts.map +1 -0
  206. package/package-surface/surface.js +16 -0
  207. package/package-surface/surface.js.map +1 -0
  208. package/package.json +13 -9
  209. package/packages/package-processor.composition.js +127 -0
  210. package/packages/package-processor.composition.js.map +1 -0
  211. package/packages/packtory/packtory.entry-point.d.ts +10 -5
  212. package/packages/packtory/packtory.entry-point.d.ts.map +1 -1
  213. package/packages/packtory/packtory.entry-point.js +7 -43
  214. package/packages/packtory/packtory.entry-point.js.map +1 -1
  215. package/packtory/map-config.d.ts +7 -16
  216. package/packtory/map-config.d.ts.map +1 -1
  217. package/packtory/map-config.js +5 -60
  218. package/packtory/map-config.js.map +1 -1
  219. package/packtory/normalize-paths.js +2 -2
  220. package/packtory/normalize-paths.js.map +1 -1
  221. package/packtory/package-processor-build.js +75 -0
  222. package/packtory/package-processor-build.js.map +1 -0
  223. package/packtory/package-processor-publish.d.ts +29 -0
  224. package/packtory/package-processor-publish.d.ts.map +1 -0
  225. package/packtory/package-processor-publish.js +134 -0
  226. package/packtory/package-processor-publish.js.map +1 -0
  227. package/packtory/package-processor.d.ts +17 -21
  228. package/packtory/package-processor.d.ts.map +1 -1
  229. package/packtory/package-processor.js +6 -81
  230. package/packtory/package-processor.js.map +1 -1
  231. package/packtory/packtory-publish.js +66 -0
  232. package/packtory/packtory-publish.js.map +1 -0
  233. package/packtory/packtory-resolve.js +77 -0
  234. package/packtory/packtory-resolve.js.map +1 -0
  235. package/packtory/packtory-results.d.ts +47 -0
  236. package/packtory/packtory-results.d.ts.map +1 -0
  237. package/packtory/packtory-results.js +16 -0
  238. package/packtory/packtory-results.js.map +1 -0
  239. package/packtory/packtory.d.ts +16 -37
  240. package/packtory/packtory.d.ts.map +1 -1
  241. package/packtory/packtory.js +33 -114
  242. package/packtory/packtory.js.map +1 -1
  243. package/packtory/prepare-package-options.d.ts +28 -0
  244. package/packtory/prepare-package-options.d.ts.map +1 -0
  245. package/packtory/prepare-package-options.js +122 -0
  246. package/packtory/prepare-package-options.js.map +1 -0
  247. package/packtory/report-attachment.js +25 -0
  248. package/packtory/report-attachment.js.map +1 -0
  249. package/packtory/resolved-package.d.ts +17 -0
  250. package/packtory/resolved-package.d.ts.map +1 -0
  251. package/packtory/resolved-package.js +35 -0
  252. package/packtory/resolved-package.js.map +1 -0
  253. package/packtory/scheduler.d.ts.map +1 -1
  254. package/packtory/scheduler.js +17 -15
  255. package/packtory/scheduler.js.map +1 -1
  256. package/progress/progress-broadcaster.d.ts +128 -5
  257. package/progress/progress-broadcaster.d.ts.map +1 -1
  258. package/progress/progress-broadcaster.js +37 -8
  259. package/progress/progress-broadcaster.js.map +1 -1
  260. package/report/artifact-entry-merger.js +22 -0
  261. package/report/artifact-entry-merger.js.map +1 -0
  262. package/report/config-redactor.js +27 -0
  263. package/report/config-redactor.js.map +1 -0
  264. package/report/decorators.js +68 -0
  265. package/report/decorators.js.map +1 -0
  266. package/report/inspectors.js +74 -0
  267. package/report/inspectors.js.map +1 -0
  268. package/report/report-aggregator.d.ts +61 -0
  269. package/report/report-aggregator.d.ts.map +1 -0
  270. package/report/report-aggregator.js +187 -0
  271. package/report/report-aggregator.js.map +1 -0
  272. package/resource-resolver/content.js +14 -0
  273. package/resource-resolver/content.js.map +1 -1
  274. package/resource-resolver/resolved-bundle.d.ts +4 -2
  275. package/resource-resolver/resolved-bundle.d.ts.map +1 -1
  276. package/resource-resolver/resource-resolve-options.d.ts +12 -5
  277. package/resource-resolver/resource-resolve-options.d.ts.map +1 -1
  278. package/resource-resolver/resource-resolve-options.js +14 -0
  279. package/resource-resolver/resource-resolve-options.js.map +1 -0
  280. package/resource-resolver/resource-resolver.d.ts +1 -1
  281. package/resource-resolver/resource-resolver.d.ts.map +1 -1
  282. package/resource-resolver/resource-resolver.js +37 -22
  283. package/resource-resolver/resource-resolver.js.map +1 -1
  284. package/sbom/extract-license.js +12 -0
  285. package/sbom/extract-license.js.map +1 -0
  286. package/sbom/license-resolver.d.ts +14 -0
  287. package/sbom/license-resolver.d.ts.map +1 -0
  288. package/sbom/license-resolver.js +22 -0
  289. package/sbom/license-resolver.js.map +1 -0
  290. package/sbom/sbom-builder.js +68 -0
  291. package/sbom/sbom-builder.js.map +1 -0
  292. package/sbom/sbom-file.d.ts +19 -0
  293. package/sbom/sbom-file.d.ts.map +1 -0
  294. package/sbom/sbom-file.js +57 -0
  295. package/sbom/sbom-file.js.map +1 -0
  296. package/sbom/sbom-serializer.d.ts +6 -0
  297. package/sbom/sbom-serializer.d.ts.map +1 -0
  298. package/sbom/sbom-serializer.js +11 -0
  299. package/sbom/sbom-serializer.js.map +1 -0
  300. package/sbom/tool-version.js +44 -0
  301. package/sbom/tool-version.js.map +1 -0
  302. package/tar/extract-tar.js +28 -3
  303. package/tar/extract-tar.js.map +1 -1
  304. package/tar/tarball-builder.d.ts.map +1 -1
  305. package/tar/tarball-builder.js +10 -7
  306. package/tar/tarball-builder.js.map +1 -1
  307. package/version-manager/manager.d.ts +5 -1
  308. package/version-manager/manager.d.ts.map +1 -1
  309. package/version-manager/manager.js +9 -1
  310. package/version-manager/manager.js.map +1 -1
  311. package/version-manager/manifest/builder.js +52 -6
  312. package/version-manager/manifest/builder.js.map +1 -1
  313. package/version-manager/manifest/serialize.js +31 -39
  314. package/version-manager/manifest/serialize.js.map +1 -1
  315. package/version-manager/manifest/sort-values.js +17 -0
  316. package/version-manager/manifest/sort-values.js.map +1 -0
  317. package/version-manager/specifier-classifier.js +35 -0
  318. package/version-manager/specifier-classifier.js.map +1 -0
  319. package/version-manager/specifier-errors.js +44 -0
  320. package/version-manager/specifier-errors.js.map +1 -0
  321. package/version-manager/versioned-bundle-dependencies.js +112 -0
  322. package/version-manager/versioned-bundle-dependencies.js.map +1 -0
  323. package/version-manager/versioned-bundle-imports.d.ts +5 -0
  324. package/version-manager/versioned-bundle-imports.d.ts.map +1 -0
  325. package/version-manager/versioned-bundle-imports.js +75 -0
  326. package/version-manager/versioned-bundle-imports.js.map +1 -0
  327. package/version-manager/versioned-bundle.d.ts +16 -8
  328. package/version-manager/versioned-bundle.d.ts.map +1 -1
  329. package/version-manager/versioned-bundle.js +48 -62
  330. package/version-manager/versioned-bundle.js.map +1 -1
  331. package/config/entry-point.d.ts +0 -7
  332. package/config/entry-point.d.ts.map +0 -1
  333. package/config/entry-point.js.map +0 -1
  334. package/file-manager/sort.js +0 -13
  335. package/file-manager/sort.js.map +0 -1
  336. package/list/unique-list.js +0 -5
  337. package/list/unique-list.js.map +0 -1
  338. package/version-manager/manifest/builder.d.ts +0 -5
  339. package/version-manager/manifest/builder.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- import { uniqueList } from "../list/unique-list.js";
1
+ import { unique } from 'remeda';
2
2
  export function mergeExternalDependencies(dependenciesA, dependenciesB) {
3
3
  const mergedDependencies = new Map(dependenciesA.entries());
4
4
  for (const dependencyB of dependenciesB.values()) {
@@ -9,7 +9,7 @@ export function mergeExternalDependencies(dependenciesA, dependenciesB) {
9
9
  else {
10
10
  mergedDependencies.set(dependencyA.name, {
11
11
  name: dependencyA.name,
12
- referencedFrom: uniqueList([...dependencyA.referencedFrom, ...dependencyB.referencedFrom])
12
+ referencedFrom: unique([...dependencyA.referencedFrom, ...dependencyB.referencedFrom])
13
13
  });
14
14
  }
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"external-dependencies.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/external-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AASpD,MAAM,UAAU,yBAAyB,CACrC,aAAmC,EACnC,aAAmC;IAEnC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAA6B,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAExF,KAAK,MAAM,WAAW,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE7D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACJ,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE;gBACrC,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,cAAc,EAAE,UAAU,CAAC,CAAC,GAAG,WAAW,CAAC,cAAc,EAAE,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;aAC7F,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"external-dependencies.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/external-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAShC,MAAM,UAAU,yBAAyB,CACrC,aAAmC,EACnC,aAAmC;IAEnC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAA6B,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAExF,KAAK,MAAM,WAAW,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE7D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACJ,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE;gBACrC,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,cAAc,EAAE,MAAM,CAAC,CAAC,GAAG,WAAW,CAAC,cAAc,EAAE,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;aACzF,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC9B,CAAC"}
@@ -1,18 +1,18 @@
1
+ import type { MainPackageJson } from '../config/package-json.ts';
1
2
  import type { SourceMapFileLocator } from './source-map-file-locator.ts';
2
- import type { ModuleResolution, TypescriptProjectAnalyzer } from './typescript-project-analyzer.ts';
3
+ import type { TypescriptProjectAnalyzer } from './typescript-project-analyzer.ts';
3
4
  import { type DependencyGraph } from './dependency-graph.ts';
4
- type ScanOptions = {
5
- readonly includeSourceMapFiles: boolean;
6
- readonly moduleResolution: ModuleResolution;
7
- readonly resolveDeclarationFiles: boolean;
8
- readonly failOnCompileErrors?: boolean;
5
+ type ScanOptionsInput = {
6
+ readonly mainPackageJson: MainPackageJson;
7
+ readonly includeSourceMapFiles?: boolean;
8
+ readonly resolveDeclarationFiles?: boolean;
9
9
  };
10
10
  export type DependencyScannerDependencies = {
11
11
  readonly sourceMapFileLocator: SourceMapFileLocator;
12
12
  readonly typescriptProjectAnalyzer: TypescriptProjectAnalyzer;
13
13
  };
14
14
  export type DependencyScanner = {
15
- scan: (entryPointFile: string, folder: string, options?: Partial<ScanOptions>) => Promise<DependencyGraph>;
15
+ scan: (entryPointFile: string, folder: string, options: ScanOptionsInput) => Promise<DependencyGraph>;
16
16
  };
17
17
  export declare function createDependencyScanner(dependencyScannerDependencies: Readonly<DependencyScannerDependencies>): DependencyScanner;
18
18
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../../source/dependency-scanner/scanner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAqB,MAAM,kCAAkC,CAAC;AACvH,OAAO,EAAuD,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAElH,KAAK,WAAW,GAAG;IACf,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAwCF,MAAM,MAAM,6BAA6B,GAAG;IACxC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpD,QAAQ,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,IAAI,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;CAC9G,CAAC;AAEF,wBAAgB,uBAAuB,CACnC,6BAA6B,EAAE,QAAQ,CAAC,6BAA6B,CAAC,GACvE,iBAAiB,CAuEnB"}
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../../source/dependency-scanner/scanner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,yBAAyB,EAAqB,MAAM,kCAAkC,CAAC;AACrG,OAAO,EAAuD,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQlH,KAAK,gBAAgB,GAAG;IACpB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAC9C,CAAC;AAmCF,MAAM,MAAM,6BAA6B,GAAG;IACxC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpD,QAAQ,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,IAAI,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;CACzG,CAAC;AAEF,wBAAgB,uBAAuB,CACnC,6BAA6B,EAAE,QAAQ,CAAC,6BAA6B,CAAC,GACvE,iBAAiB,CAgEnB"}
@@ -1,5 +1,5 @@
1
1
  import { Maybe } from 'true-myth/maybe';
2
- import { uniqueList } from "../list/unique-list.js";
2
+ import { unique } from 'remeda';
3
3
  import { createDependencyGraph } from "./dependency-graph.js";
4
4
  function isNodeModulesPath(filePath) {
5
5
  return filePath.includes('/node_modules/');
@@ -8,16 +8,13 @@ function isLocalPath(filePath) {
8
8
  return !isNodeModulesPath(filePath);
9
9
  }
10
10
  function extractModuleName(nodeModulePath) {
11
- const pattern = /\/node_modules\/(?<moduleName>[^@]+?|(?:@.+?\/.+?))\//;
11
+ const prefix = '/node_modules/';
12
+ const pattern = /\/node_modules\/(?:[^@]+?|(?:@.+?\/.+?))\//;
12
13
  const result = pattern.exec(nodeModulePath);
13
14
  if (result === null) {
14
15
  throw new Error(`Couldn’t find node_modules package name for '${nodeModulePath}'`);
15
16
  }
16
- const { groups: { moduleName } = {} } = result;
17
- if (moduleName === undefined) {
18
- throw new Error(`Couldn’t extract module name from path ${nodeModulePath}`);
19
- }
20
- return moduleName;
17
+ return result[0].slice(prefix.length, -1);
21
18
  }
22
19
  function determineLocalDependencies(dependencies) {
23
20
  return dependencies.filter(isLocalPath);
@@ -25,7 +22,7 @@ function determineLocalDependencies(dependencies) {
25
22
  function determineExternalDependencies(dependencies) {
26
23
  const modulePaths = dependencies.filter(isNodeModulesPath);
27
24
  const moduleNames = modulePaths.map(extractModuleName);
28
- const uniqueModuleNames = uniqueList(moduleNames);
25
+ const uniqueModuleNames = unique(moduleNames);
29
26
  return uniqueModuleNames;
30
27
  }
31
28
  export function createDependencyScanner(dependencyScannerDependencies) {
@@ -56,19 +53,17 @@ export function createDependencyScanner(dependencyScannerDependencies) {
56
53
  }
57
54
  }
58
55
  return {
59
- async scan(entryPointFile, folder, options = {}) {
60
- const { resolveDeclarationFiles = false, includeSourceMapFiles = false, moduleResolution = 'module', failOnCompileErrors = false } = options;
56
+ async scan(entryPointFile, folder, options) {
57
+ const { resolveDeclarationFiles = false, includeSourceMapFiles = false, mainPackageJson } = options;
61
58
  const scanOptions = {
62
59
  includeSourceMapFiles,
63
60
  resolveDeclarationFiles,
64
- moduleResolution,
65
- failOnCompileErrors
61
+ mainPackageJson
66
62
  };
67
63
  const graph = createDependencyGraph();
68
64
  const project = typescriptProjectAnalyzer.analyzeProject(folder, {
69
65
  resolveDeclarationFiles: scanOptions.resolveDeclarationFiles,
70
- failOnCompileErrors: scanOptions.failOnCompileErrors,
71
- moduleResolution: scanOptions.moduleResolution
66
+ mainPackageJson: scanOptions.mainPackageJson
72
67
  });
73
68
  await scanDependenciesOfSourceFile(project, entryPointFile, graph, scanOptions);
74
69
  return graph;
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/scanner.ts"],"names":[],"mappings":"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"}
@@ -1,45 +1,6 @@
1
1
  import { isBuiltin } from 'node:module';
2
- import { Maybe, first } from 'true-myth/maybe';
3
- import { ts, Node as ASTNode, SyntaxKind } from 'ts-morph';
4
- function getReferencedSourceFileFromSymbol(symbol) {
5
- if (symbol === undefined) {
6
- return Maybe.nothing();
7
- }
8
- const declarations = symbol.getDeclarations();
9
- return first(declarations)
10
- .andThen((firstDeclaration) => {
11
- return firstDeclaration;
12
- })
13
- .andThen((firstDeclaration) => {
14
- if (firstDeclaration.getKind() !== SyntaxKind.SourceFile) {
15
- return Maybe.nothing();
16
- }
17
- if (!ASTNode.isSourceFile(firstDeclaration)) {
18
- return Maybe.nothing();
19
- }
20
- return Maybe.just(firstDeclaration);
21
- });
22
- }
23
- function getSourceFileFromSymbol(literal, parent, grandParent) {
24
- if (ASTNode.isImportTypeNode(grandParent)) {
25
- return getReferencedSourceFileFromSymbol(grandParent.getSymbol());
26
- }
27
- if (ASTNode.isCallExpression(parent)) {
28
- return getReferencedSourceFileFromSymbol(literal.getSymbol());
29
- }
30
- return Maybe.nothing();
31
- }
32
- function getSourceFileForLiteral(literal) {
33
- const parent = literal.getParentOrThrow();
34
- const grandParent = parent.getParent();
35
- if (ASTNode.isImportDeclaration(parent) || ASTNode.isExportDeclaration(parent)) {
36
- return parent.getModuleSpecifierSourceFile();
37
- }
38
- if (ASTNode.isImportEqualsDeclaration(grandParent)) {
39
- return grandParent.getExternalModuleReferenceSourceFile();
40
- }
41
- return getSourceFileFromSymbol(literal, parent, grandParent).unwrapOr(undefined);
42
- }
2
+ import { isDefined } from 'remeda';
3
+ import { ts } from 'ts-morph';
43
4
  export function resolveSourceFileForLiteral(literal, containingSourceFile) {
44
5
  const project = containingSourceFile.getProject();
45
6
  const result = ts.resolveModuleName(literal.getLiteralValue(), containingSourceFile.getFilePath(), project.getCompilerOptions(), project.getModuleResolutionHost());
@@ -49,17 +10,11 @@ export function resolveSourceFileForLiteral(literal, containingSourceFile) {
49
10
  }
50
11
  return undefined;
51
12
  }
52
- function isDefined(value) {
53
- return value !== undefined;
54
- }
55
13
  export function getReferencedSourceFiles(sourceFile) {
56
14
  const importStringLiterals = sourceFile.getImportStringLiterals();
57
15
  return importStringLiterals
58
16
  .map((literal) => {
59
- let referencedSourceFile = getSourceFileForLiteral(literal);
60
- if (referencedSourceFile === undefined) {
61
- referencedSourceFile = resolveSourceFileForLiteral(literal, sourceFile);
62
- }
17
+ const referencedSourceFile = resolveSourceFileForLiteral(literal, sourceFile);
63
18
  if (referencedSourceFile === undefined) {
64
19
  const importValue = literal.getLiteralValue();
65
20
  if (isBuiltin(importValue)) {
@@ -1 +1 @@
1
- {"version":3,"file":"source-file-references.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/source-file-references.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source-file-references.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/source-file-references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,EAAE,EAAuC,MAAM,UAAU,CAAC;AAEnE,MAAM,UAAU,2BAA2B,CACvC,OAAsB,EACtB,oBAA0C;IAE1C,MAAM,OAAO,GAAG,oBAAoB,CAAC,UAAU,EAAE,CAAC;IAClD,MAAM,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAC/B,OAAO,CAAC,eAAe,EAAE,EACzB,oBAAoB,CAAC,WAAW,EAAE,EAClC,OAAO,CAAC,kBAAkB,EAAE,EAC5B,OAAO,CAAC,uBAAuB,EAAE,CACpC,CAAC;IAEF,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,gBAAgB,GAAG,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC;QAChE,OAAO,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,UAAgC;IACrE,MAAM,oBAAoB,GAAG,UAAU,CAAC,uBAAuB,EAAE,CAAC;IAClE,OAAO,oBAAoB;SACtB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACb,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE9E,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;YAE9C,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBACzB,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,MAAM,OAAO,GAAG,6BAA6B,WAAW,cAAc,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC;YAElG,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,oBAAoB,CAAC;IAChC,CAAC,CAAC;SACD,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"source-map-file-locator.d.ts","sourceRoot":"","sources":["../../../../source/dependency-scanner/source-map-file-locator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,MAAM,MAAM,gCAAgC,GAAG;IAC3C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;CAC1D,CAAC;AAIF,wBAAgB,0BAA0B,CACtC,YAAY,EAAE,QAAQ,CAAC,gCAAgC,CAAC,GACzD,oBAAoB,CAsBtB"}
1
+ {"version":3,"file":"source-map-file-locator.d.ts","sourceRoot":"","sources":["../../../../source/dependency-scanner/source-map-file-locator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,MAAM,MAAM,gCAAgC,GAAG;IAC3C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;CAC1D,CAAC;AAaF,wBAAgB,0BAA0B,CACtC,YAAY,EAAE,QAAQ,CAAC,gCAAgC,CAAC,GACzD,oBAAoB,CAqBtB"}
@@ -1,13 +1,20 @@
1
1
  import path from 'node:path';
2
2
  import { Maybe } from 'true-myth';
3
- const sourceMappingUrlPattern = /^\/\/# sourceMappingURL=(?<url>.+)$/m;
3
+ function getSourceMappingUrl(fileContent) {
4
+ for (const line of fileContent.split('\n')) {
5
+ if (line.startsWith('//# sourceMappingURL=')) {
6
+ const sourceMappingUrl = line.slice('//# sourceMappingURL='.length);
7
+ return sourceMappingUrl === '' ? undefined : sourceMappingUrl;
8
+ }
9
+ }
10
+ return undefined;
11
+ }
4
12
  export function createSourceMapFileLocator(dependencies) {
5
13
  const { fileManager } = dependencies;
6
14
  return {
7
15
  async locate(sourceFile) {
8
16
  const fileContent = await fileManager.readFile(sourceFile);
9
- const result = sourceMappingUrlPattern.exec(fileContent);
10
- const sourceMappingUrl = result?.groups?.url;
17
+ const sourceMappingUrl = getSourceMappingUrl(fileContent);
11
18
  if (sourceMappingUrl !== undefined) {
12
19
  const folder = path.dirname(sourceFile);
13
20
  const sourceMappingFile = path.join(folder, sourceMappingUrl);
@@ -1 +1 @@
1
- {"version":3,"file":"source-map-file-locator.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/source-map-file-locator.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAWlC,MAAM,uBAAuB,GAAG,sCAAsC,CAAC;AAEvE,MAAM,UAAU,0BAA0B,CACtC,YAAwD;IAExD,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;IAErC,OAAO;QACH,KAAK,CAAC,MAAM,CAAC,UAAU;YACnB,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzD,MAAM,gBAAgB,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC;YAE7C,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACxC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBAC9D,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;gBAE7E,IAAI,UAAU,EAAE,CAAC;oBACb,OAAO,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACzC,CAAC;YACL,CAAC;YAED,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;KACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"source-map-file-locator.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/source-map-file-locator.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAWlC,SAAS,mBAAmB,CAAC,WAAmB;IAC5C,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACpE,OAAO,gBAAgB,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAClE,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,0BAA0B,CACtC,YAAwD;IAExD,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;IAErC,OAAO;QACH,KAAK,CAAC,MAAM,CAAC,UAAU;YACnB,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC3D,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAE1D,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACxC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBAC9D,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;gBAE7E,IAAI,UAAU,EAAE,CAAC;oBACb,OAAO,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACzC,CAAC;YACL,CAAC;YAED,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -1,10 +1,12 @@
1
1
  import type { FileSystemHost } from 'ts-morph';
2
+ import type { MainPackageJson } from '../config/package-json.ts';
2
3
  export type FileSystemAdaptersDependencies = {
3
4
  fileSystemHost: FileSystemHost;
4
5
  };
5
6
  export type FileSystemAdapters = {
6
7
  fileSystemHostWithoutFilter: FileSystemHost;
7
8
  fileSystemHostFilteringDeclarationFiles: FileSystemHost;
9
+ withVirtualPackageJson: (fileSystemHost: FileSystemHost, folder: string, mainPackageJson: MainPackageJson) => FileSystemHost;
8
10
  };
9
11
  export declare function createFileSystemAdapters(dependencies: FileSystemAdaptersDependencies): FileSystemAdapters;
10
12
  //# sourceMappingURL=typescript-file-host.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-file-host.d.ts","sourceRoot":"","sources":["../../../../source/dependency-scanner/typescript-file-host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAoB/C,MAAM,MAAM,8BAA8B,GAAG;IACzC,cAAc,EAAE,cAAc,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,2BAA2B,EAAE,cAAc,CAAC;IAC5C,uCAAuC,EAAE,cAAc,CAAC;CAC3D,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,8BAA8B,GAAG,kBAAkB,CA2CzG"}
1
+ {"version":3,"file":"typescript-file-host.d.ts","sourceRoot":"","sources":["../../../../source/dependency-scanner/typescript-file-host.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAejE,MAAM,MAAM,8BAA8B,GAAG;IACzC,cAAc,EAAE,cAAc,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,2BAA2B,EAAE,cAAc,CAAC;IAC5C,uCAAuC,EAAE,cAAc,CAAC;IACxD,sBAAsB,EAAE,CACpB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,KAC/B,cAAc,CAAC;CACvB,CAAC;AA4FF,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,8BAA8B,GAAG,kBAAkB,CAmDzG"}
@@ -1,49 +1,116 @@
1
- const declarationFileExtensions = new Set(['.d.ts', '.d.cts', '.d.mts']);
1
+ import path from 'node:path';
2
2
  function isDeclarationFile(filePath) {
3
3
  const lowerCasedFilePath = filePath.toLowerCase();
4
- for (const declarationFileExtension of declarationFileExtensions) {
5
- if (lowerCasedFilePath.endsWith(declarationFileExtension)) {
6
- return true;
7
- }
8
- }
9
- return false;
4
+ return (lowerCasedFilePath.endsWith('.d.ts') ||
5
+ lowerCasedFilePath.endsWith('.d.cts') ||
6
+ lowerCasedFilePath.endsWith('.d.mts'));
10
7
  }
11
8
  function isTypesRootFolder(directoryPath) {
12
9
  return directoryPath.endsWith('/node_modules/@types') || directoryPath.includes('/node_modules/@types/');
13
10
  }
14
- export function createFileSystemAdapters(dependencies) {
15
- const { fileSystemHost } = dependencies;
16
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ok in this case
17
- const fileSystemHostFilteringDeclarationFiles = Object.create(fileSystemHost);
18
- fileSystemHostFilteringDeclarationFiles.fileExists = async (filePath) => {
19
- if (isDeclarationFile(filePath)) {
20
- return false;
21
- }
22
- return fileSystemHost.fileExists(filePath);
23
- };
24
- fileSystemHostFilteringDeclarationFiles.fileExistsSync = (filePath) => {
25
- if (isDeclarationFile(filePath)) {
26
- return false;
11
+ const syncMethodNames = {
12
+ fileExists: 'fileExistsSync',
13
+ directoryExists: 'directoryExistsSync',
14
+ readFile: 'readFileSync'
15
+ };
16
+ function bindRequiredMethod(object, methodName, expectedResultDescription, validateResult) {
17
+ const method = Reflect.get(object, methodName);
18
+ if (typeof method !== 'function') {
19
+ throw new TypeError(`Expected ${methodName} to be a function`);
20
+ }
21
+ return (filePath) => {
22
+ const result = Reflect.apply(method, object, [filePath]);
23
+ if (!validateResult(result)) {
24
+ throw new TypeError(`Expected ${methodName} to return ${expectedResultDescription}`);
27
25
  }
28
- // eslint-disable-next-line node/no-sync -- we need to provide this method to match the expected interface
29
- return fileSystemHost.fileExistsSync(filePath);
26
+ return result;
30
27
  };
31
- fileSystemHostFilteringDeclarationFiles.directoryExists = async (directoryPath) => {
32
- if (isTypesRootFolder(directoryPath)) {
33
- return false;
28
+ }
29
+ function isBoolean(value) {
30
+ return typeof value === 'boolean';
31
+ }
32
+ function isString(value) {
33
+ return typeof value === 'string';
34
+ }
35
+ const packageJsonIndentationSpaces = 2;
36
+ function serializeMainPackageJson(mainPackageJson) {
37
+ return JSON.stringify(mainPackageJson, null, packageJsonIndentationSpaces);
38
+ }
39
+ function createVirtualPackageJsonHost(fileSystemHost, folder, mainPackageJson) {
40
+ const packageJsonPath = path.resolve(folder, 'package.json');
41
+ const serializedPackageJson = serializeMainPackageJson(mainPackageJson);
42
+ const fileExistsSync = bindRequiredMethod(fileSystemHost, syncMethodNames.fileExists, 'a boolean', isBoolean);
43
+ const readFileSync = bindRequiredMethod(fileSystemHost, syncMethodNames.readFile, 'a string', isString);
44
+ const virtualFileSystemHost = {
45
+ ...fileSystemHost,
46
+ fileExists: async (filePath) => {
47
+ if (path.resolve(filePath) === packageJsonPath) {
48
+ return true;
49
+ }
50
+ return fileSystemHost.fileExists(filePath);
51
+ },
52
+ [syncMethodNames.fileExists]: (filePath) => {
53
+ if (path.resolve(filePath) === packageJsonPath) {
54
+ return true;
55
+ }
56
+ // eslint-disable-next-line node/no-sync -- the ts-morph host interface requires this synchronous method
57
+ return fileExistsSync(filePath);
58
+ },
59
+ readFile: async (filePath, encoding) => {
60
+ if (path.resolve(filePath) === packageJsonPath) {
61
+ return serializedPackageJson;
62
+ }
63
+ return fileSystemHost.readFile(filePath, encoding);
64
+ },
65
+ [syncMethodNames.readFile]: (filePath) => {
66
+ if (path.resolve(filePath) === packageJsonPath) {
67
+ return serializedPackageJson;
68
+ }
69
+ // eslint-disable-next-line node/no-sync -- the ts-morph host interface requires this synchronous method
70
+ return readFileSync(filePath);
34
71
  }
35
- return fileSystemHost.directoryExists(directoryPath);
36
72
  };
37
- fileSystemHostFilteringDeclarationFiles.directoryExistsSync = (directoryPath) => {
38
- if (isTypesRootFolder(directoryPath)) {
39
- return false;
73
+ Object.setPrototypeOf(virtualFileSystemHost, fileSystemHost);
74
+ return virtualFileSystemHost;
75
+ }
76
+ export function createFileSystemAdapters(dependencies) {
77
+ const { fileSystemHost } = dependencies;
78
+ const fileExistsSync = bindRequiredMethod(fileSystemHost, syncMethodNames.fileExists, 'a boolean', isBoolean);
79
+ const directoryExistsSync = bindRequiredMethod(fileSystemHost, syncMethodNames.directoryExists, 'a boolean', isBoolean);
80
+ const fileSystemHostFilteringDeclarationFiles = {
81
+ ...fileSystemHost,
82
+ fileExists: async (filePath) => {
83
+ if (isDeclarationFile(filePath)) {
84
+ return false;
85
+ }
86
+ return fileSystemHost.fileExists(filePath);
87
+ },
88
+ [syncMethodNames.fileExists]: (filePath) => {
89
+ if (isDeclarationFile(filePath)) {
90
+ return false;
91
+ }
92
+ // eslint-disable-next-line node/no-sync -- the ts-morph host interface requires this synchronous method
93
+ return fileExistsSync(filePath);
94
+ },
95
+ directoryExists: async (directoryPath) => {
96
+ if (isTypesRootFolder(directoryPath)) {
97
+ return false;
98
+ }
99
+ return fileSystemHost.directoryExists(directoryPath);
100
+ },
101
+ [syncMethodNames.directoryExists]: (directoryPath) => {
102
+ if (isTypesRootFolder(directoryPath)) {
103
+ return false;
104
+ }
105
+ // eslint-disable-next-line node/no-sync -- the ts-morph host interface requires this synchronous method
106
+ return directoryExistsSync(directoryPath);
40
107
  }
41
- // eslint-disable-next-line node/no-sync -- we need to provide this method to match the expected interface
42
- return fileSystemHost.directoryExistsSync(directoryPath);
43
108
  };
109
+ Object.setPrototypeOf(fileSystemHostFilteringDeclarationFiles, fileSystemHost);
44
110
  return {
45
111
  fileSystemHostWithoutFilter: fileSystemHost,
46
- fileSystemHostFilteringDeclarationFiles
112
+ fileSystemHostFilteringDeclarationFiles,
113
+ withVirtualPackageJson: createVirtualPackageJsonHost
47
114
  };
48
115
  }
49
116
  //# sourceMappingURL=typescript-file-host.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-file-host.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/typescript-file-host.ts"],"names":[],"mappings":"AAEA,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEzE,SAAS,iBAAiB,CAAC,QAAgB;IACvC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAElD,KAAK,MAAM,wBAAwB,IAAI,yBAAyB,EAAE,CAAC;QAC/D,IAAI,kBAAkB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAC,aAAqB;IAC5C,OAAO,aAAa,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AAC7G,CAAC;AAWD,MAAM,UAAU,wBAAwB,CAAC,YAA4C;IACjF,MAAM,EAAE,cAAc,EAAE,GAAG,YAAY,CAAC;IAExC,0FAA0F;IAC1F,MAAM,uCAAuC,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAA8B,CAAC;IAE3G,uCAAuC,CAAC,UAAU,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE;QACpE,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC,CAAC;IACF,uCAAuC,CAAC,cAAc,GAAG,CAAC,QAAQ,EAAE,EAAE;QAClE,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,0GAA0G;QAC1G,OAAO,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF,uCAAuC,CAAC,eAAe,GAAG,KAAK,EAAE,aAAa,EAAE,EAAE;QAC9E,IAAI,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,cAAc,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,uCAAuC,CAAC,mBAAmB,GAAG,CAAC,aAAa,EAAE,EAAE;QAC5E,IAAI,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,0GAA0G;QAC1G,OAAO,cAAc,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,OAAO;QACH,2BAA2B,EAAE,cAAc;QAC3C,uCAAuC;KAC1C,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"typescript-file-host.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/typescript-file-host.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,17 @@
1
1
  import { type Project as _Project, type SourceFile } from 'ts-morph';
2
+ import type { MainPackageJson } from '../config/package-json.ts';
2
3
  import type { FileSystemAdapters } from './typescript-file-host.ts';
3
- export type ModuleResolution = 'common-js' | 'module';
4
4
  export type TypescriptProjectAnalyzerDependencies = {
5
5
  readonly Project: typeof _Project;
6
6
  readonly fileSystemAdapters: FileSystemAdapters;
7
7
  getReferencedSourceFiles: (sourceFile: Readonly<SourceFile>) => readonly Readonly<SourceFile>[];
8
8
  };
9
- export type AnalyzationOptions = {
10
- readonly moduleResolution: ModuleResolution;
11
- readonly failOnCompileErrors: boolean;
9
+ type AnalyzationOptions = {
12
10
  readonly resolveDeclarationFiles: boolean;
11
+ readonly mainPackageJson: MainPackageJson;
13
12
  };
14
13
  export type TypescriptProject = {
15
14
  getReferencedSourceFilePaths: (containingSourceFilePath: string) => readonly string[];
16
- getSourceFile: (filePath: string) => SourceFile;
17
15
  getProject: () => _Project;
18
16
  };
19
17
  export type TypescriptProjectAnalyzer = {
@@ -21,4 +19,5 @@ export type TypescriptProjectAnalyzer = {
21
19
  };
22
20
  export declare function getSourcePathFromSourceFile(sourceFile: Readonly<SourceFile>): string;
23
21
  export declare function createTypescriptProjectAnalyzer(dependencies: TypescriptProjectAnalyzerDependencies): TypescriptProjectAnalyzer;
22
+ export {};
24
23
  //# sourceMappingURL=typescript-project-analyzer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-project-analyzer.d.ts","sourceRoot":"","sources":["../../../../source/dependency-scanner/typescript-project-analyzer.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,OAAO,IAAI,QAAQ,EACxB,KAAK,UAAU,EAGlB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEtD,MAAM,MAAM,qCAAqC,GAAG;IAChD,QAAQ,CAAC,OAAO,EAAE,OAAO,QAAQ,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAChD,wBAAwB,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,SAAS,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;CACnG,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,4BAA4B,EAAE,CAAC,wBAAwB,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC;IACtF,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,UAAU,CAAC;IAChD,UAAU,EAAE,MAAM,QAAQ,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACpC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,KAAK,iBAAiB,CAAC;CACtF,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,CAIpF;AAwBD,wBAAgB,+BAA+B,CAC3C,YAAY,EAAE,qCAAqC,GACpD,yBAAyB,CAsD3B"}
1
+ {"version":3,"file":"typescript-project-analyzer.d.ts","sourceRoot":"","sources":["../../../../source/dependency-scanner/typescript-project-analyzer.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,OAAO,IAAI,QAAQ,EACxB,KAAK,UAAU,EAGlB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,MAAM,qCAAqC,GAAG;IAChD,QAAQ,CAAC,OAAO,EAAE,OAAO,QAAQ,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAChD,wBAAwB,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,SAAS,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;CACnG,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACtB,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,4BAA4B,EAAE,CAAC,wBAAwB,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC;IACtF,UAAU,EAAE,MAAM,QAAQ,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACpC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,KAAK,iBAAiB,CAAC;CACtF,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,CAIpF;AAyBD,wBAAgB,+BAA+B,CAC3C,YAAY,EAAE,qCAAqC,GACpD,yBAAyB,CAwC3B"}
@@ -5,7 +5,7 @@ export function getSourcePathFromSourceFile(sourceFile) {
5
5
  return filePath;
6
6
  }
7
7
  function analyzationOptionsToCompilerOptions(options) {
8
- const { moduleResolution, resolveDeclarationFiles } = options;
8
+ const { resolveDeclarationFiles } = options;
9
9
  const compilerOptions = {
10
10
  moduleResolution: ModuleResolutionKind.Node16,
11
11
  esModuleInterop: true,
@@ -14,7 +14,8 @@ function analyzationOptionsToCompilerOptions(options) {
14
14
  allowJs: true,
15
15
  noLib: true,
16
16
  skipLibCheck: true,
17
- module: moduleResolution === 'module' ? ModuleKind.Node16 : ModuleKind.CommonJS
17
+ module: ModuleKind.Node16,
18
+ resolvePackageJsonImports: true
18
19
  };
19
20
  if (!resolveDeclarationFiles) {
20
21
  compilerOptions.types = [];
@@ -28,19 +29,13 @@ export function createTypescriptProjectAnalyzer(dependencies) {
28
29
  analyzeProject(folder, options) {
29
30
  const project = new Project({
30
31
  compilerOptions: analyzationOptionsToCompilerOptions(options),
31
- fileSystem: options.resolveDeclarationFiles
32
+ fileSystem: fileSystemAdapters.withVirtualPackageJson(options.resolveDeclarationFiles
32
33
  ? fileSystemAdapters.fileSystemHostWithoutFilter
33
- : fileSystemAdapters.fileSystemHostFilteringDeclarationFiles
34
+ : fileSystemAdapters.fileSystemHostFilteringDeclarationFiles, folder, options.mainPackageJson)
34
35
  });
35
36
  const fileExtension = options.resolveDeclarationFiles ? '.d.ts' : '.js';
36
37
  const filesPattern = path.join(folder, `**/*${fileExtension}`);
37
38
  project.addSourceFilesAtPaths([filesPattern]);
38
- if (options.failOnCompileErrors) {
39
- const diagnostics = project.getPreEmitDiagnostics();
40
- if (diagnostics.length > 0) {
41
- throw new Error('Failed to analyze source files');
42
- }
43
- }
44
39
  return {
45
40
  getReferencedSourceFilePaths(containingSourceFilePath) {
46
41
  const currentSourceFile = project.getSourceFile(containingSourceFilePath);
@@ -50,13 +45,6 @@ export function createTypescriptProjectAnalyzer(dependencies) {
50
45
  const referencedSourceFilePaths = getReferencedSourceFiles(currentSourceFile).map(getSourcePathFromSourceFile);
51
46
  return referencedSourceFilePaths;
52
47
  },
53
- getSourceFile(filePath) {
54
- const sourceFile = project.getSourceFile(filePath);
55
- if (sourceFile === undefined) {
56
- throw new Error(`Failed to find source file for "${filePath}"`);
57
- }
58
- return sourceFile;
59
- },
60
48
  getProject() {
61
49
  return project;
62
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-project-analyzer.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/typescript-project-analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript-project-analyzer.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/typescript-project-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACH,UAAU,EAGV,oBAAoB,EAEvB,MAAM,UAAU,CAAC;AAwBlB,MAAM,UAAU,2BAA2B,CAAC,UAAgC;IACxE,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAE1C,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,mCAAmC,CAAC,OAA2B;IACpE,MAAM,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC;IAE5C,MAAM,eAAe,GAAoB;QACrC,gBAAgB,EAAE,oBAAoB,CAAC,MAAM;QAC7C,eAAe,EAAE,IAAI;QACrB,oBAAoB,EAAE,CAAC;QACvB,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,yBAAyB,EAAE,IAAI;KAClC,CAAC;IAEF,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC3B,eAAe,CAAC,KAAK,GAAG,EAAE,CAAC;QAC3B,eAAe,CAAC,SAAS,GAAG,EAAE,CAAC;IACnC,CAAC;IAED,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC3C,YAAmD;IAEnD,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,wBAAwB,EAAE,GAAG,YAAY,CAAC;IAE/E,OAAO;QACH,cAAc,CAAC,MAAM,EAAE,OAAO;YAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;gBACxB,eAAe,EAAE,mCAAmC,CAAC,OAAO,CAAC;gBAC7D,UAAU,EAAE,kBAAkB,CAAC,sBAAsB,CACjD,OAAO,CAAC,uBAAuB;oBAC3B,CAAC,CAAC,kBAAkB,CAAC,2BAA2B;oBAChD,CAAC,CAAC,kBAAkB,CAAC,uCAAuC,EAChE,MAAM,EACN,OAAO,CAAC,eAAe,CAC1B;aACJ,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YACxE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,aAAa,EAAE,CAAC,CAAC;YAC/D,OAAO,CAAC,qBAAqB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAE9C,OAAO;gBACH,4BAA4B,CAAC,wBAAwB;oBACjD,MAAM,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;oBAE1E,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;wBAClC,OAAO,EAAE,CAAC;oBACd,CAAC;oBAED,MAAM,yBAAyB,GAC3B,wBAAwB,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;oBAEjF,OAAO,yBAAyB,CAAC;gBACrC,CAAC;gBAED,UAAU;oBACN,OAAO,OAAO,CAAC;gBACnB,CAAC;aACJ,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -5,7 +5,7 @@ type GraphNode<TId extends GraphNodeId, TData> = {
5
5
  readonly adjacentNodeIds: Set<TId>;
6
6
  readonly incomingEdges: number;
7
7
  };
8
- export type GraphEdge<TId extends GraphNodeId> = {
8
+ type GraphEdge<TId extends GraphNodeId> = {
9
9
  readonly from: TId;
10
10
  readonly to: TId;
11
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../source/directed-graph/graph.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnC,KAAK,SAAS,CAAC,GAAG,SAAS,WAAW,EAAE,KAAK,IAAI;IAC7C,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;IACjB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,GAAG,SAAS,WAAW,IAAI;IAC7C,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;CACpB,CAAC;AAEF,KAAK,OAAO,CAAC,GAAG,SAAS,WAAW,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC;AAE/F,MAAM,MAAM,aAAa,CAAC,GAAG,SAAS,WAAW,EAAE,KAAK,IAAI;IACxD,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;IAClD,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;IACrD,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,OAAO,CAAC;IAC9B,aAAa,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC;IAC3D,uBAAuB,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;IAC9E,YAAY,EAAE,MAAM,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC;IAChD,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,yBAAyB,EAAE,MAAM,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC;IAC7D,OAAO,EAAE,MAAM,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzC,cAAc,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9C,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;CACpD,CAAC;AA6DF,wBAAgB,mBAAmB,CAAC,GAAG,SAAS,WAAW,EAAE,KAAK,KAAK,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAoN/F"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../source/directed-graph/graph.ts"],"names":[],"mappings":"AACA,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnC,KAAK,SAAS,CAAC,GAAG,SAAS,WAAW,EAAE,KAAK,IAAI;IAC7C,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;IACjB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,KAAK,SAAS,CAAC,GAAG,SAAS,WAAW,IAAI;IACtC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;CACpB,CAAC;AAEF,KAAK,OAAO,CAAC,GAAG,SAAS,WAAW,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC;AAE/F,MAAM,MAAM,aAAa,CAAC,GAAG,SAAS,WAAW,EAAE,KAAK,IAAI;IACxD,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;IAClD,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;IACrD,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,OAAO,CAAC;IAC9B,aAAa,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC;IAC3D,uBAAuB,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;IAC9E,YAAY,EAAE,MAAM,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC;IAChD,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,yBAAyB,EAAE,MAAM,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC;IAC7D,OAAO,EAAE,MAAM,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzC,cAAc,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9C,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;CACpD,CAAC;AA8DF,wBAAgB,mBAAmB,CAAC,GAAG,SAAS,WAAW,EAAE,KAAK,KAAK,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CA+P/F"}