packtory 0.0.91 → 0.0.92

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 (650) hide show
  1. package/artifacts/artifacts-builder.js +4 -37
  2. package/artifacts/artifacts-builder.js.map +1 -1
  3. package/artifacts/content-collection.js +2 -59
  4. package/artifacts/content-collection.js.map +1 -1
  5. package/artifacts/folder-writer.js +2 -25
  6. package/artifacts/folder-writer.js.map +1 -1
  7. package/bundle-emitter/emitter.d.ts +0 -8
  8. package/bundle-emitter/emitter.d.ts.map +1 -1
  9. package/bundle-emitter/emitter.js +6 -106
  10. package/bundle-emitter/emitter.js.map +1 -1
  11. package/bundle-emitter/extract-package-tarball.js +2 -13
  12. package/bundle-emitter/extract-package-tarball.js.map +1 -1
  13. package/bundle-emitter/fetch-published-artifacts.js +2 -16
  14. package/bundle-emitter/fetch-published-artifacts.js.map +1 -1
  15. package/bundle-emitter/publication-outcome.d.ts +0 -3
  16. package/bundle-emitter/publication-outcome.d.ts.map +1 -1
  17. package/bundle-emitter/publication-outcome.js +0 -5
  18. package/bundle-emitter/publication-outcome.js.map +1 -1
  19. package/bundle-emitter/publish-error/auto-mode-error-matching.js +2 -28
  20. package/bundle-emitter/publish-error/auto-mode-error-matching.js.map +1 -1
  21. package/bundle-emitter/publish-error/error-shape-helpers.js +0 -9
  22. package/bundle-emitter/publish-error/error-shape-helpers.js.map +1 -1
  23. package/bundle-emitter/publish-error/file-mode-error-matching.js +2 -33
  24. package/bundle-emitter/publish-error/file-mode-error-matching.js.map +1 -1
  25. package/bundle-emitter/publish-error/publish-error-messages.js +0 -24
  26. package/bundle-emitter/publish-error/publish-error-messages.js.map +1 -1
  27. package/bundle-emitter/registry/metadata-auth-retry.js +1 -24
  28. package/bundle-emitter/registry/metadata-auth-retry.js.map +1 -1
  29. package/bundle-emitter/registry/oidc-token-exchange.js +3 -68
  30. package/bundle-emitter/registry/oidc-token-exchange.js.map +1 -1
  31. package/bundle-emitter/registry/package-metadata-fetcher.d.ts +0 -13
  32. package/bundle-emitter/registry/package-metadata-fetcher.d.ts.map +1 -1
  33. package/bundle-emitter/registry/package-metadata-fetcher.js +7 -186
  34. package/bundle-emitter/registry/package-metadata-fetcher.js.map +1 -1
  35. package/bundle-emitter/registry/publish-settings-bridge.js +3 -34
  36. package/bundle-emitter/registry/publish-settings-bridge.js.map +1 -1
  37. package/bundle-emitter/registry/registry-auth-config.js +0 -106
  38. package/bundle-emitter/registry/registry-auth-config.js.map +1 -1
  39. package/bundle-emitter/registry/registry-client.d.ts +1 -13
  40. package/bundle-emitter/registry/registry-client.d.ts.map +1 -1
  41. package/bundle-emitter/registry/registry-client.js +4 -71
  42. package/bundle-emitter/registry/registry-client.js.map +1 -1
  43. package/bundle-emitter/registry/registry-package-path.js +0 -3
  44. package/bundle-emitter/registry/registry-package-path.js.map +1 -1
  45. package/bundle-emitter/registry/registry-response-schemas.js +2 -50
  46. package/bundle-emitter/registry/registry-response-schemas.js.map +1 -1
  47. package/bundle-emitter/registry/tarball-integrity.d.ts +0 -1
  48. package/bundle-emitter/registry/tarball-integrity.d.ts.map +1 -1
  49. package/bundle-emitter/registry/tarball-integrity.js +1 -31
  50. package/bundle-emitter/registry/tarball-integrity.js.map +1 -1
  51. package/bundle-emitter/registry/validate-tarball-host.js +1 -26
  52. package/bundle-emitter/registry/validate-tarball-host.js.map +1 -1
  53. package/bundle-emitter/release-artifact-canonicalizer.js +5 -31
  54. package/bundle-emitter/release-artifact-canonicalizer.js.map +1 -1
  55. package/checks/check-runner.js +0 -8
  56. package/checks/check-runner.js.map +1 -1
  57. package/checks/rule.js +2 -12
  58. package/checks/rule.js.map +1 -1
  59. package/checks/rules/duplicate-detection.js +1 -23
  60. package/checks/rules/duplicate-detection.js.map +1 -1
  61. package/checks/rules/duplicate-messages.js +0 -22
  62. package/checks/rules/duplicate-messages.js.map +1 -1
  63. package/checks/rules/file-ownership.js +0 -15
  64. package/checks/rules/file-ownership.js.map +1 -1
  65. package/checks/rules/max-bundle-size.js +1 -55
  66. package/checks/rules/max-bundle-size.js.map +1 -1
  67. package/checks/rules/no-dev-dependency-imports.js +1 -51
  68. package/checks/rules/no-dev-dependency-imports.js.map +1 -1
  69. package/checks/rules/no-duplicated-files.js +3 -53
  70. package/checks/rules/no-duplicated-files.js.map +1 -1
  71. package/checks/rules/no-side-effects.js +1 -50
  72. package/checks/rules/no-side-effects.js.map +1 -1
  73. package/checks/rules/no-unexposed-executables.js +2 -43
  74. package/checks/rules/no-unexposed-executables.js.map +1 -1
  75. package/checks/rules/no-unused-bundle-dependencies.js +2 -30
  76. package/checks/rules/no-unused-bundle-dependencies.js.map +1 -1
  77. package/checks/rules/registry.js +9 -22
  78. package/checks/rules/registry.js.map +1 -1
  79. package/checks/rules/required-files.js +3 -41
  80. package/checks/rules/required-files.js.map +1 -1
  81. package/checks/rules/type-script-declaration-integrity.js +3 -81
  82. package/checks/rules/type-script-declaration-integrity.js.map +1 -1
  83. package/checks/rules/type-script-declaration-paths.js +1 -55
  84. package/checks/rules/type-script-declaration-paths.js.map +1 -1
  85. package/checks/rules/type-script-declaration-project.js +3 -202
  86. package/checks/rules/type-script-declaration-project.js.map +1 -1
  87. package/checks/rules/type-script-declaration-reachability.js +2 -38
  88. package/checks/rules/type-script-declaration-reachability.js.map +1 -1
  89. package/checks/rules/type-script-declaration-roots.js +0 -29
  90. package/checks/rules/type-script-declaration-roots.js.map +1 -1
  91. package/checks/rules/type-script-integrity.js +2 -72
  92. package/checks/rules/type-script-integrity.js.map +1 -1
  93. package/checks/rules/type-script-package-resolution.js +1 -42
  94. package/checks/rules/type-script-package-resolution.js.map +1 -1
  95. package/checks/rules/type-script-resolution-summary.js +0 -53
  96. package/checks/rules/type-script-resolution-summary.js.map +1 -1
  97. package/checks/rules/unique-target-paths.js +2 -34
  98. package/checks/rules/unique-target-paths.js.map +1 -1
  99. package/common/bundled-dependency-groups.js +0 -27
  100. package/common/bundled-dependency-groups.js.map +1 -1
  101. package/common/code-files.js +0 -28
  102. package/common/code-files.js.map +1 -1
  103. package/common/declaration-companion-paths.js +0 -24
  104. package/common/declaration-companion-paths.js.map +1 -1
  105. package/common/package-name-map.js +0 -7
  106. package/common/package-name-map.js.map +1 -1
  107. package/common/stable-json.js +2 -42
  108. package/common/stable-json.js.map +1 -1
  109. package/common/worklist.js +0 -22
  110. package/common/worklist.js.map +1 -1
  111. package/config/additional-files.js +2 -6
  112. package/config/additional-files.js.map +1 -1
  113. package/config/additional-package-json-attributes-schema.js +2 -6
  114. package/config/additional-package-json-attributes-schema.js.map +1 -1
  115. package/config/automatic-versioning-settings.js +2 -6
  116. package/config/automatic-versioning-settings.js.map +1 -1
  117. package/config/changelog-settings.d.ts +0 -44
  118. package/config/changelog-settings.d.ts.map +1 -1
  119. package/config/changelog-settings.js +3 -120
  120. package/config/changelog-settings.js.map +1 -1
  121. package/config/common-package-settings-schemas.js +3 -19
  122. package/config/common-package-settings-schemas.js.map +1 -1
  123. package/config/config.d.ts +1 -6
  124. package/config/config.d.ts.map +1 -1
  125. package/config/config.js +1 -3
  126. package/config/config.js.map +1 -1
  127. package/config/cross-package-validation.js +0 -17
  128. package/config/cross-package-validation.js.map +1 -1
  129. package/config/dead-code-elimination-settings.d.ts +0 -1
  130. package/config/dead-code-elimination-settings.d.ts.map +1 -1
  131. package/config/dead-code-elimination-settings.js +2 -36
  132. package/config/dead-code-elimination-settings.js.map +1 -1
  133. package/config/dependency-existence-validation.js +1 -19
  134. package/config/dependency-existence-validation.js.map +1 -1
  135. package/config/dependency-policy.js +2 -5
  136. package/config/dependency-policy.js.map +1 -1
  137. package/config/main-package-json-schema.js +2 -13
  138. package/config/main-package-json-schema.js.map +1 -1
  139. package/config/manual-versioning-settings.d.ts +0 -12
  140. package/config/manual-versioning-settings.d.ts.map +1 -1
  141. package/config/manual-versioning-settings.js +2 -29
  142. package/config/manual-versioning-settings.js.map +1 -1
  143. package/config/optional-package-settings-schema.js +7 -16
  144. package/config/optional-package-settings-schema.js.map +1 -1
  145. package/config/package-config.d.ts +0 -4
  146. package/config/package-config.d.ts.map +1 -1
  147. package/config/package-config.js +1 -2
  148. package/config/package-config.js.map +1 -1
  149. package/config/package-graph-builder.js +2 -14
  150. package/config/package-graph-builder.js.map +1 -1
  151. package/config/package-interface.js +2 -25
  152. package/config/package-interface.js.map +1 -1
  153. package/config/package-json.d.ts +0 -2
  154. package/config/package-json.d.ts.map +1 -1
  155. package/config/package-json.js +0 -16
  156. package/config/package-json.js.map +1 -1
  157. package/config/packtory-config-without-registry-schema.js +0 -6
  158. package/config/packtory-config-without-registry-schema.js.map +1 -1
  159. package/config/per-package-settings-schema.js +6 -22
  160. package/config/per-package-settings-schema.js.map +1 -1
  161. package/config/pre-graph-validation.js +5 -20
  162. package/config/pre-graph-validation.js.map +1 -1
  163. package/config/publish-settings.d.ts +0 -3
  164. package/config/publish-settings.d.ts.map +1 -1
  165. package/config/publish-settings.js +3 -25
  166. package/config/publish-settings.js.map +1 -1
  167. package/config/publish-settings.report.js +1 -17
  168. package/config/publish-settings.report.js.map +1 -1
  169. package/config/registry-settings.d.ts +0 -41
  170. package/config/registry-settings.d.ts.map +1 -1
  171. package/config/registry-settings.js +2 -40
  172. package/config/registry-settings.js.map +1 -1
  173. package/config/registry-settings.report.js +0 -46
  174. package/config/registry-settings.report.js.map +1 -1
  175. package/config/root-config-validation.js +0 -141
  176. package/config/root-config-validation.js.map +1 -1
  177. package/config/root.js +2 -6
  178. package/config/root.js.map +1 -1
  179. package/config/sbom-settings.js +1 -4
  180. package/config/sbom-settings.js.map +1 -1
  181. package/config/settings-validation.js +0 -28
  182. package/config/settings-validation.js.map +1 -1
  183. package/config/versioning-settings.d.ts +1 -18
  184. package/config/versioning-settings.d.ts.map +1 -1
  185. package/config/versioning-settings.js +3 -10
  186. package/config/versioning-settings.js.map +1 -1
  187. package/dead-code-eliminator/analyzed-bundle.d.ts +0 -11
  188. package/dead-code-eliminator/analyzed-bundle.d.ts.map +1 -1
  189. package/dead-code-eliminator/analyzed-bundle.js +0 -7
  190. package/dead-code-eliminator/analyzed-bundle.js.map +1 -1
  191. package/dead-code-eliminator/class-purity.js +2 -48
  192. package/dead-code-eliminator/class-purity.js.map +1 -1
  193. package/dead-code-eliminator/code-file-analyzer.js +4 -62
  194. package/dead-code-eliminator/code-file-analyzer.js.map +1 -1
  195. package/dead-code-eliminator/cross-bundle/bundle-index.js +1 -27
  196. package/dead-code-eliminator/cross-bundle/bundle-index.js.map +1 -1
  197. package/dead-code-eliminator/cross-bundle/cross-bundle-seeds.js +3 -18
  198. package/dead-code-eliminator/cross-bundle/cross-bundle-seeds.js.map +1 -1
  199. package/dead-code-eliminator/cross-bundle/import-export-walker.js +4 -75
  200. package/dead-code-eliminator/cross-bundle/import-export-walker.js.map +1 -1
  201. package/dead-code-eliminator/cross-bundle/seed-store.js +1 -22
  202. package/dead-code-eliminator/cross-bundle/seed-store.js.map +1 -1
  203. package/dead-code-eliminator/dependency-metadata.js +3 -205
  204. package/dead-code-eliminator/dependency-metadata.js.map +1 -1
  205. package/dead-code-eliminator/elimination-emitter.js +0 -52
  206. package/dead-code-eliminator/elimination-emitter.js.map +1 -1
  207. package/dead-code-eliminator/eliminator.js +8 -64
  208. package/dead-code-eliminator/eliminator.js.map +1 -1
  209. package/dead-code-eliminator/expression-unwrapping.js +1 -16
  210. package/dead-code-eliminator/expression-unwrapping.js.map +1 -1
  211. package/dead-code-eliminator/imported-expression-origin.js +2 -101
  212. package/dead-code-eliminator/imported-expression-origin.js.map +1 -1
  213. package/dead-code-eliminator/liveness/asset-side-effects.js +1 -9
  214. package/dead-code-eliminator/liveness/asset-side-effects.js.map +1 -1
  215. package/dead-code-eliminator/liveness/boolean-facts.js +2 -98
  216. package/dead-code-eliminator/liveness/boolean-facts.js.map +1 -1
  217. package/dead-code-eliminator/liveness/external-module-resolution.js +2 -172
  218. package/dead-code-eliminator/liveness/external-module-resolution.js.map +1 -1
  219. package/dead-code-eliminator/liveness/external-purity-summary.js +3 -294
  220. package/dead-code-eliminator/liveness/external-purity-summary.js.map +1 -1
  221. package/dead-code-eliminator/liveness/external-purity.js +3 -39
  222. package/dead-code-eliminator/liveness/external-purity.js.map +1 -1
  223. package/dead-code-eliminator/liveness/module-analysis.js +2 -27
  224. package/dead-code-eliminator/liveness/module-analysis.js.map +1 -1
  225. package/dead-code-eliminator/liveness/resource-retention.js +1 -78
  226. package/dead-code-eliminator/liveness/resource-retention.js.map +1 -1
  227. package/dead-code-eliminator/liveness/runtime-code.js +1 -15
  228. package/dead-code-eliminator/liveness/runtime-code.js.map +1 -1
  229. package/dead-code-eliminator/load-bundle.js +5 -70
  230. package/dead-code-eliminator/load-bundle.js.map +1 -1
  231. package/dead-code-eliminator/pure-expression.js +5 -178
  232. package/dead-code-eliminator/pure-expression.js.map +1 -1
  233. package/dead-code-eliminator/reachability/bfs-closure.js +0 -50
  234. package/dead-code-eliminator/reachability/bfs-closure.js.map +1 -1
  235. package/dead-code-eliminator/reachability/binding-extractor.js +2 -100
  236. package/dead-code-eliminator/reachability/binding-extractor.js.map +1 -1
  237. package/dead-code-eliminator/reachability/binding-id.js +0 -32
  238. package/dead-code-eliminator/reachability/binding-id.js.map +1 -1
  239. package/dead-code-eliminator/reachability/identifier-target-collector.js +1 -39
  240. package/dead-code-eliminator/reachability/identifier-target-collector.js.map +1 -1
  241. package/dead-code-eliminator/reachability/impure-statements.js +2 -11
  242. package/dead-code-eliminator/reachability/impure-statements.js.map +1 -1
  243. package/dead-code-eliminator/reachability/local-seed-gathering.js +4 -43
  244. package/dead-code-eliminator/reachability/local-seed-gathering.js.map +1 -1
  245. package/dead-code-eliminator/reachability/reachability.js +4 -38
  246. package/dead-code-eliminator/reachability/reachability.js.map +1 -1
  247. package/dead-code-eliminator/side-effect-classifier.js +4 -39
  248. package/dead-code-eliminator/side-effect-classifier.js.map +1 -1
  249. package/dead-code-eliminator/side-effects-field.js +1 -23
  250. package/dead-code-eliminator/side-effects-field.js.map +1 -1
  251. package/dead-code-eliminator/source-map-recomposition.js +2 -29
  252. package/dead-code-eliminator/source-map-recomposition.js.map +1 -1
  253. package/dead-code-eliminator/statement-classifiers.js +4 -94
  254. package/dead-code-eliminator/statement-classifiers.js.map +1 -1
  255. package/dead-code-eliminator/syntax-kind-sets.js +0 -16
  256. package/dead-code-eliminator/syntax-kind-sets.js.map +1 -1
  257. package/dead-code-eliminator/transform/atom-translator.d.ts +0 -8
  258. package/dead-code-eliminator/transform/atom-translator.d.ts.map +1 -1
  259. package/dead-code-eliminator/transform/atom-translator.js +2 -57
  260. package/dead-code-eliminator/transform/atom-translator.js.map +1 -1
  261. package/dead-code-eliminator/transform/declaration-removal.js +4 -135
  262. package/dead-code-eliminator/transform/declaration-removal.js.map +1 -1
  263. package/dead-code-eliminator/transform/declaration-remover.js +2 -17
  264. package/dead-code-eliminator/transform/declaration-remover.js.map +1 -1
  265. package/dead-code-eliminator/transform/line-index.d.ts +0 -7
  266. package/dead-code-eliminator/transform/line-index.d.ts.map +1 -1
  267. package/dead-code-eliminator/transform/line-index.js +0 -20
  268. package/dead-code-eliminator/transform/line-index.js.map +1 -1
  269. package/dead-code-eliminator/transform/named-declaration-kinds.js +0 -3
  270. package/dead-code-eliminator/transform/named-declaration-kinds.js.map +1 -1
  271. package/dead-code-eliminator/transform/source-map-composer.js +3 -84
  272. package/dead-code-eliminator/transform/source-map-composer.js.map +1 -1
  273. package/dead-code-eliminator/variable-declaration-bindings.js +1 -25
  274. package/dead-code-eliminator/variable-declaration-bindings.js.map +1 -1
  275. package/dependency-scanner/dependency-graph.js +3 -74
  276. package/dependency-scanner/dependency-graph.js.map +1 -1
  277. package/dependency-scanner/external-dependencies.d.ts +0 -9
  278. package/dependency-scanner/external-dependencies.d.ts.map +1 -1
  279. package/dependency-scanner/external-dependencies.js +1 -55
  280. package/dependency-scanner/external-dependencies.js.map +1 -1
  281. package/dependency-scanner/file-host-predicates.js +0 -9
  282. package/dependency-scanner/file-host-predicates.js.map +1 -1
  283. package/dependency-scanner/host-method-binding.js +0 -18
  284. package/dependency-scanner/host-method-binding.js.map +1 -1
  285. package/dependency-scanner/injected-dynamic-imports.js +1 -232
  286. package/dependency-scanner/injected-dynamic-imports.js.map +1 -1
  287. package/dependency-scanner/node-modules-manifest-synthesizer.js +4 -52
  288. package/dependency-scanner/node-modules-manifest-synthesizer.js.map +1 -1
  289. package/dependency-scanner/package-owned-asset-file-path.js +1 -9
  290. package/dependency-scanner/package-owned-asset-file-path.js.map +1 -1
  291. package/dependency-scanner/scanner.js +4 -102
  292. package/dependency-scanner/scanner.js.map +1 -1
  293. package/dependency-scanner/source-file-references.js +6 -174
  294. package/dependency-scanner/source-file-references.js.map +1 -1
  295. package/dependency-scanner/source-map-file-locator.js +2 -66
  296. package/dependency-scanner/source-map-file-locator.js.map +1 -1
  297. package/dependency-scanner/typescript-compiler-options.js +1 -21
  298. package/dependency-scanner/typescript-compiler-options.js.map +1 -1
  299. package/dependency-scanner/typescript-file-host.js +5 -49
  300. package/dependency-scanner/typescript-file-host.js.map +1 -1
  301. package/dependency-scanner/typescript-project-analyzer.js +3 -35
  302. package/dependency-scanner/typescript-project-analyzer.js.map +1 -1
  303. package/dependency-scanner/virtual-package-json-host.js +4 -45
  304. package/dependency-scanner/virtual-package-json-host.js.map +1 -1
  305. package/directed-graph/graph.d.ts +0 -1
  306. package/directed-graph/graph.d.ts.map +1 -1
  307. package/directed-graph/graph.js +1 -240
  308. package/directed-graph/graph.js.map +1 -1
  309. package/file-manager/compare.js +2 -23
  310. package/file-manager/compare.js.map +1 -1
  311. package/file-manager/equal.js +0 -5
  312. package/file-manager/equal.js.map +1 -1
  313. package/file-manager/file-description.d.ts +0 -1
  314. package/file-manager/file-description.d.ts.map +1 -1
  315. package/file-manager/file-description.js +0 -3
  316. package/file-manager/file-description.js.map +1 -1
  317. package/file-manager/permissions.js +1 -28
  318. package/file-manager/permissions.js.map +1 -1
  319. package/git/current-git-head.js +0 -24
  320. package/git/current-git-head.js.map +1 -1
  321. package/git/git-command.js +1 -49
  322. package/git/git-command.js.map +1 -1
  323. package/linker/linked-bundle.d.ts +0 -8
  324. package/linker/linked-bundle.d.ts.map +1 -1
  325. package/linker/linked-bundle.js +0 -5
  326. package/linker/linked-bundle.js.map +1 -1
  327. package/linker/linker.js +5 -51
  328. package/linker/linker.js.map +1 -1
  329. package/linker/replacement-lookup.js +8 -295
  330. package/linker/replacement-lookup.js.map +1 -1
  331. package/linker/resource-graph.js +2 -44
  332. package/linker/resource-graph.js.map +1 -1
  333. package/linker/source-modifier/import-paths.js +3 -76
  334. package/linker/source-modifier/import-paths.js.map +1 -1
  335. package/linker/substitute-bundles.js +3 -140
  336. package/linker/substitute-bundles.js.map +1 -1
  337. package/linker/substituted-resource-graph.js +2 -99
  338. package/linker/substituted-resource-graph.js.map +1 -1
  339. package/npm-oidc-id-token-resolver.js +0 -82
  340. package/npm-oidc-id-token-resolver.js.map +1 -1
  341. package/pack-emitter/pack-emitter.d.ts +0 -20
  342. package/pack-emitter/pack-emitter.d.ts.map +1 -1
  343. package/pack-emitter/pack-emitter.js +0 -27
  344. package/pack-emitter/pack-emitter.js.map +1 -1
  345. package/package-surface/bin-field.js +2 -8
  346. package/package-surface/bin-field.js.map +1 -1
  347. package/package-surface/explicit-bin.js +2 -24
  348. package/package-surface/explicit-bin.js.map +1 -1
  349. package/package-surface/explicit-exports.js +3 -26
  350. package/package-surface/explicit-exports.js.map +1 -1
  351. package/package-surface/export-map.js +2 -9
  352. package/package-surface/export-map.js.map +1 -1
  353. package/package-surface/implicit-bin.js +1 -25
  354. package/package-surface/implicit-bin.js.map +1 -1
  355. package/package-surface/implicit-exports.js +3 -10
  356. package/package-surface/implicit-exports.js.map +1 -1
  357. package/package-surface/implicit-root-exports.js +2 -13
  358. package/package-surface/implicit-root-exports.js.map +1 -1
  359. package/package-surface/package-json-export.js +0 -9
  360. package/package-surface/package-json-export.js.map +1 -1
  361. package/package-surface/package-shape.js +1 -10
  362. package/package-surface/package-shape.js.map +1 -1
  363. package/package-surface/package-surface-index.js +3 -165
  364. package/package-surface/package-surface-index.js.map +1 -1
  365. package/package-surface/public-module-usage.js +3 -46
  366. package/package-surface/public-module-usage.js.map +1 -1
  367. package/package-surface/public-specifiers.js +1 -7
  368. package/package-surface/public-specifiers.js.map +1 -1
  369. package/package-surface/root-registry.js +0 -26
  370. package/package-surface/root-registry.js.map +1 -1
  371. package/package-surface/specifier-syntax.js +0 -4
  372. package/package-surface/specifier-syntax.js.map +1 -1
  373. package/package-surface/substitution-exports.js +3 -101
  374. package/package-surface/substitution-exports.js.map +1 -1
  375. package/package-surface/surface.d.ts +0 -2
  376. package/package-surface/surface.d.ts.map +1 -1
  377. package/package-surface/surface.js +0 -12
  378. package/package-surface/surface.js.map +1 -1
  379. package/package.json +1 -1
  380. package/packages/package-processor.composition.d.ts +0 -22
  381. package/packages/package-processor.composition.d.ts.map +1 -1
  382. package/packages/package-processor.composition.js +34 -160
  383. package/packages/package-processor.composition.js.map +1 -1
  384. package/packtory/map-config.d.ts +3 -22
  385. package/packtory/map-config.d.ts.map +1 -1
  386. package/packtory/map-config.js +4 -35
  387. package/packtory/map-config.js.map +1 -1
  388. package/packtory/normalize-paths.js +1 -25
  389. package/packtory/normalize-paths.js.map +1 -1
  390. package/packtory/options/bundle-dependency-resolution.js +1 -17
  391. package/packtory/options/bundle-dependency-resolution.js.map +1 -1
  392. package/packtory/options/dead-code-elimination-resolution.js +1 -10
  393. package/packtory/options/dead-code-elimination-resolution.js.map +1 -1
  394. package/packtory/options/prepare-package-options.d.ts +0 -14
  395. package/packtory/options/prepare-package-options.d.ts.map +1 -1
  396. package/packtory/options/prepare-package-options.js +5 -46
  397. package/packtory/options/prepare-package-options.js.map +1 -1
  398. package/packtory/options/required-value-helpers.js +0 -17
  399. package/packtory/options/required-value-helpers.js.map +1 -1
  400. package/packtory/options/setting-resolvers.d.ts +0 -18
  401. package/packtory/options/setting-resolvers.d.ts.map +1 -1
  402. package/packtory/options/setting-resolvers.js +3 -47
  403. package/packtory/options/setting-resolvers.js.map +1 -1
  404. package/packtory/options/surface-resolution.js +2 -15
  405. package/packtory/options/surface-resolution.js.map +1 -1
  406. package/packtory/options/version-provider-context.js +2 -24
  407. package/packtory/options/version-provider-context.js.map +1 -1
  408. package/packtory/options/version-trigger.js +2 -39
  409. package/packtory/options/version-trigger.js.map +1 -1
  410. package/packtory/pack-output-preflight.js +3 -60
  411. package/packtory/pack-output-preflight.js.map +1 -1
  412. package/packtory/package-processor-build.js +3 -97
  413. package/packtory/package-processor-build.js.map +1 -1
  414. package/packtory/package-processor-publish.d.ts +0 -13
  415. package/packtory/package-processor-publish.d.ts.map +1 -1
  416. package/packtory/package-processor-publish.js +5 -293
  417. package/packtory/package-processor-publish.js.map +1 -1
  418. package/packtory/package-processor.d.ts +1 -34
  419. package/packtory/package-processor.d.ts.map +1 -1
  420. package/packtory/package-processor.js +2 -10
  421. package/packtory/package-processor.js.map +1 -1
  422. package/packtory/packtory-pack.js +10 -298
  423. package/packtory/packtory-pack.js.map +1 -1
  424. package/packtory/packtory-package-dependencies.js +7 -135
  425. package/packtory/packtory-package-dependencies.js.map +1 -1
  426. package/packtory/packtory-package-tree.js +4 -43
  427. package/packtory/packtory-package-tree.js.map +1 -1
  428. package/packtory/packtory-publish.js +4 -17
  429. package/packtory/packtory-publish.js.map +1 -1
  430. package/packtory/packtory-release-analysis.js +6 -64
  431. package/packtory/packtory-release-analysis.js.map +1 -1
  432. package/packtory/packtory-release-diff.js +5 -48
  433. package/packtory/packtory-release-diff.js.map +1 -1
  434. package/packtory/packtory-release-plan.js +6 -87
  435. package/packtory/packtory-release-plan.js.map +1 -1
  436. package/packtory/packtory-resolve.js +5 -16
  437. package/packtory/packtory-resolve.js.map +1 -1
  438. package/packtory/packtory.d.ts +1 -28
  439. package/packtory/packtory.d.ts.map +1 -1
  440. package/packtory/packtory.js +12 -225
  441. package/packtory/packtory.js.map +1 -1
  442. package/packtory/publish-failure-mapping.js +0 -6
  443. package/packtory/publish-failure-mapping.js.map +1 -1
  444. package/packtory/published-release-state.d.ts +0 -19
  445. package/packtory/published-release-state.d.ts.map +1 -1
  446. package/packtory/published-release-state.js +0 -11
  447. package/packtory/published-release-state.js.map +1 -1
  448. package/packtory/release-analysis.js +5 -153
  449. package/packtory/release-analysis.js.map +1 -1
  450. package/packtory/release-diff-failure-mapping.js +0 -6
  451. package/packtory/release-diff-failure-mapping.js.map +1 -1
  452. package/packtory/release-plan.js +7 -135
  453. package/packtory/release-plan.js.map +1 -1
  454. package/packtory/report-attachment.js +2 -35
  455. package/packtory/report-attachment.js.map +1 -1
  456. package/packtory/resolved-package.d.ts +0 -11
  457. package/packtory/resolved-package.d.ts.map +1 -1
  458. package/packtory/resolved-package.js +3 -97
  459. package/packtory/resolved-package.js.map +1 -1
  460. package/packtory/scheduler.d.ts +0 -47
  461. package/packtory/scheduler.d.ts.map +1 -1
  462. package/packtory/scheduler.js +1 -99
  463. package/packtory/scheduler.js.map +1 -1
  464. package/packtory/stages/package-analysis-stage.js +2 -50
  465. package/packtory/stages/package-analysis-stage.js.map +1 -1
  466. package/packtory/stages/package-resolution-stage.js +5 -80
  467. package/packtory/stages/package-resolution-stage.js.map +1 -1
  468. package/packtory/stages/publish-stage.js +3 -54
  469. package/packtory/stages/publish-stage.js.map +1 -1
  470. package/packtory/stages/release-diff-stage.js +5 -84
  471. package/packtory/stages/release-diff-stage.js.map +1 -1
  472. package/progress/progress-broadcaster.d.ts +0 -1
  473. package/progress/progress-broadcaster.d.ts.map +1 -1
  474. package/progress/progress-broadcaster.js +0 -45
  475. package/progress/progress-broadcaster.js.map +1 -1
  476. package/published-package/published-package.d.ts +0 -2
  477. package/published-package/published-package.d.ts.map +1 -1
  478. package/published-package/published-package.js +1 -12
  479. package/published-package/published-package.js.map +1 -1
  480. package/report/aggregator/artifact-entry-merger.js +0 -20
  481. package/report/aggregator/artifact-entry-merger.js.map +1 -1
  482. package/report/aggregator/package-report-materialization.js +2 -75
  483. package/report/aggregator/package-report-materialization.js.map +1 -1
  484. package/report/aggregator/report-aggregator.js +2 -37
  485. package/report/aggregator/report-aggregator.js.map +1 -1
  486. package/report/aggregator/report-event-handlers.js +2 -141
  487. package/report/aggregator/report-event-handlers.js.map +1 -1
  488. package/report/aggregator/report-types.d.ts +0 -21
  489. package/report/aggregator/report-types.d.ts.map +1 -1
  490. package/report/aggregator/report-types.js +0 -3
  491. package/report/aggregator/report-types.js.map +1 -1
  492. package/report/config-redactor.js +3 -29
  493. package/report/config-redactor.js.map +1 -1
  494. package/report/decorators.js +0 -76
  495. package/report/decorators.js.map +1 -1
  496. package/report/inspectors/inspect-artifact-sizes.js +1 -34
  497. package/report/inspectors/inspect-artifact-sizes.js.map +1 -1
  498. package/report/inspectors/inspect-linker-rewrites.js +1 -14
  499. package/report/inspectors/inspect-linker-rewrites.js.map +1 -1
  500. package/report/inspectors/inspect-package-json-provenance.js +0 -15
  501. package/report/inspectors/inspect-package-json-provenance.js.map +1 -1
  502. package/report/inspectors/inspect-scan-results.js +0 -15
  503. package/report/inspectors/inspect-scan-results.js.map +1 -1
  504. package/report/release-diff/release-version-transition.js +0 -18
  505. package/report/release-diff/release-version-transition.js.map +1 -1
  506. package/resource-resolver/bundle-resource-lookup.js +0 -25
  507. package/resource-resolver/bundle-resource-lookup.js.map +1 -1
  508. package/resource-resolver/content.js +3 -81
  509. package/resource-resolver/content.js.map +1 -1
  510. package/resource-resolver/dependency-resolution-walker.js +2 -73
  511. package/resource-resolver/dependency-resolution-walker.js.map +1 -1
  512. package/resource-resolver/resolved-bundle.d.ts +0 -17
  513. package/resource-resolver/resolved-bundle.d.ts.map +1 -1
  514. package/resource-resolver/resolved-bundle.js +0 -3
  515. package/resource-resolver/resolved-bundle.js.map +1 -1
  516. package/resource-resolver/resource-resolve-options.d.ts +0 -5
  517. package/resource-resolver/resource-resolve-options.d.ts.map +1 -1
  518. package/resource-resolver/resource-resolve-options.js +1 -13
  519. package/resource-resolver/resource-resolve-options.js.map +1 -1
  520. package/resource-resolver/resource-resolver.js +5 -83
  521. package/resource-resolver/resource-resolver.js.map +1 -1
  522. package/sbom/extract-license.js +1 -11
  523. package/sbom/extract-license.js.map +1 -1
  524. package/sbom/license-resolver.js +2 -23
  525. package/sbom/license-resolver.js.map +1 -1
  526. package/sbom/sbom-builder.js +2 -57
  527. package/sbom/sbom-builder.js.map +1 -1
  528. package/sbom/sbom-canonicalizer.js +3 -45
  529. package/sbom/sbom-canonicalizer.js.map +1 -1
  530. package/sbom/sbom-file.d.ts +0 -10
  531. package/sbom/sbom-file.d.ts.map +1 -1
  532. package/sbom/sbom-file.js +5 -54
  533. package/sbom/sbom-file.js.map +1 -1
  534. package/sbom/sbom-serializer.js +1 -14
  535. package/sbom/sbom-serializer.js.map +1 -1
  536. package/sbom/tool-version.js +1 -49
  537. package/sbom/tool-version.js.map +1 -1
  538. package/sbom.cdx.json +5 -5
  539. package/tar/extract-tar.js +3 -83
  540. package/tar/extract-tar.js.map +1 -1
  541. package/tar/gzipped-pack.js +0 -20
  542. package/tar/gzipped-pack.js.map +1 -1
  543. package/tar/tarball-builder.js +4 -44
  544. package/tar/tarball-builder.js.map +1 -1
  545. package/vendor-materializer/vendor-entry.js +1 -20
  546. package/vendor-materializer/vendor-entry.js.map +1 -1
  547. package/vendor-materializer/vendor-materializer.js +8 -240
  548. package/vendor-materializer/vendor-materializer.js.map +1 -1
  549. package/version-manager/dependencies/bundle-dependency-grouping.js +2 -32
  550. package/version-manager/dependencies/bundle-dependency-grouping.js.map +1 -1
  551. package/version-manager/dependencies/dependency-groups.js +1 -11
  552. package/version-manager/dependencies/dependency-groups.js.map +1 -1
  553. package/version-manager/dependencies/external-dependency-classification.js +3 -82
  554. package/version-manager/dependencies/external-dependency-classification.js.map +1 -1
  555. package/version-manager/dependencies/versioned-bundle-dependencies.js +3 -8
  556. package/version-manager/dependencies/versioned-bundle-dependencies.js.map +1 -1
  557. package/version-manager/imports/hash-import-scanner.js +2 -20
  558. package/version-manager/imports/hash-import-scanner.js.map +1 -1
  559. package/version-manager/imports/imports-key-matcher.js +0 -22
  560. package/version-manager/imports/imports-key-matcher.js.map +1 -1
  561. package/version-manager/imports/versioned-bundle-imports.js +2 -44
  562. package/version-manager/imports/versioned-bundle-imports.js.map +1 -1
  563. package/version-manager/manager.d.ts +0 -5
  564. package/version-manager/manager.d.ts.map +1 -1
  565. package/version-manager/manager.js +6 -46
  566. package/version-manager/manager.js.map +1 -1
  567. package/version-manager/manifest/builder.js +1 -51
  568. package/version-manager/manifest/builder.js.map +1 -1
  569. package/version-manager/manifest/serialize.js +1 -8
  570. package/version-manager/manifest/serialize.js.map +1 -1
  571. package/version-manager/optional-bundle-fields.js +1 -5
  572. package/version-manager/optional-bundle-fields.js.map +1 -1
  573. package/version-manager/representative-root.js +1 -9
  574. package/version-manager/representative-root.js.map +1 -1
  575. package/version-manager/specifier-classifier.js +2 -42
  576. package/version-manager/specifier-classifier.js.map +1 -1
  577. package/version-manager/specifier-errors.js +0 -58
  578. package/version-manager/specifier-errors.js.map +1 -1
  579. package/version-manager/versioned-bundle.d.ts +1 -3
  580. package/version-manager/versioned-bundle.d.ts.map +1 -1
  581. package/version-manager/versioned-bundle.js +6 -31
  582. package/version-manager/versioned-bundle.js.map +1 -1
  583. package/zip/zip-builder.js +2 -81
  584. package/zip/zip-builder.js.map +1 -1
  585. package/artifacts/artifacts-builder.d.ts +0 -28
  586. package/artifacts/artifacts-builder.d.ts.map +0 -1
  587. package/bundle-emitter/registry/registry-auth-config.d.ts +0 -17
  588. package/bundle-emitter/registry/registry-auth-config.d.ts.map +0 -1
  589. package/checks/check-runner.d.ts +0 -18
  590. package/checks/check-runner.d.ts.map +0 -1
  591. package/checks/rule.d.ts +0 -42
  592. package/checks/rule.d.ts.map +0 -1
  593. package/checks/rules/max-bundle-size.d.ts +0 -13
  594. package/checks/rules/max-bundle-size.d.ts.map +0 -1
  595. package/checks/rules/no-dev-dependency-imports.d.ts +0 -11
  596. package/checks/rules/no-dev-dependency-imports.d.ts.map +0 -1
  597. package/checks/rules/no-duplicated-files.d.ts +0 -11
  598. package/checks/rules/no-duplicated-files.d.ts.map +0 -1
  599. package/checks/rules/no-side-effects.d.ts +0 -15
  600. package/checks/rules/no-side-effects.d.ts.map +0 -1
  601. package/checks/rules/no-unexposed-executables.d.ts +0 -8
  602. package/checks/rules/no-unexposed-executables.d.ts.map +0 -1
  603. package/checks/rules/no-unused-bundle-dependencies.d.ts +0 -8
  604. package/checks/rules/no-unused-bundle-dependencies.d.ts.map +0 -1
  605. package/checks/rules/registry.d.ts +0 -23
  606. package/checks/rules/registry.d.ts.map +0 -1
  607. package/checks/rules/required-files.d.ts +0 -15
  608. package/checks/rules/required-files.d.ts.map +0 -1
  609. package/checks/rules/type-script-declaration-integrity.d.ts +0 -9
  610. package/checks/rules/type-script-declaration-integrity.d.ts.map +0 -1
  611. package/checks/rules/type-script-declaration-project.d.ts +0 -29
  612. package/checks/rules/type-script-declaration-project.d.ts.map +0 -1
  613. package/checks/rules/type-script-integrity.d.ts +0 -24
  614. package/checks/rules/type-script-integrity.d.ts.map +0 -1
  615. package/checks/rules/type-script-package-resolution.d.ts +0 -29
  616. package/checks/rules/type-script-package-resolution.d.ts.map +0 -1
  617. package/checks/rules/unique-target-paths.d.ts +0 -8
  618. package/checks/rules/unique-target-paths.d.ts.map +0 -1
  619. package/dependency-scanner/dependency-graph.d.ts +0 -38
  620. package/dependency-scanner/dependency-graph.d.ts.map +0 -1
  621. package/dependency-scanner/scanner.d.ts +0 -20
  622. package/dependency-scanner/scanner.d.ts.map +0 -1
  623. package/dependency-scanner/source-file-references.d.ts +0 -30
  624. package/dependency-scanner/source-file-references.d.ts.map +0 -1
  625. package/dependency-scanner/source-map-file-locator.d.ts +0 -10
  626. package/dependency-scanner/source-map-file-locator.d.ts.map +0 -1
  627. package/dependency-scanner/typescript-compiler-options.d.ts +0 -8
  628. package/dependency-scanner/typescript-compiler-options.d.ts.map +0 -1
  629. package/dependency-scanner/typescript-file-host.d.ts +0 -12
  630. package/dependency-scanner/typescript-file-host.d.ts.map +0 -1
  631. package/dependency-scanner/typescript-project-analyzer.d.ts +0 -19
  632. package/dependency-scanner/typescript-project-analyzer.d.ts.map +0 -1
  633. package/git/current-git-head.d.ts +0 -12
  634. package/git/current-git-head.d.ts.map +0 -1
  635. package/linker/linker.d.ts +0 -13
  636. package/linker/linker.d.ts.map +0 -1
  637. package/resource-resolver/resource-resolver.d.ts +0 -15
  638. package/resource-resolver/resource-resolver.d.ts.map +0 -1
  639. package/sbom/license-resolver.d.ts +0 -14
  640. package/sbom/license-resolver.d.ts.map +0 -1
  641. package/sbom/sbom-serializer.d.ts +0 -8
  642. package/sbom/sbom-serializer.d.ts.map +0 -1
  643. package/tar/tarball-builder.d.ts +0 -14
  644. package/tar/tarball-builder.d.ts.map +0 -1
  645. package/vendor-materializer/vendor-entry.d.ts +0 -12
  646. package/vendor-materializer/vendor-entry.d.ts.map +0 -1
  647. package/vendor-materializer/vendor-materializer.d.ts +0 -55
  648. package/vendor-materializer/vendor-materializer.d.ts.map +0 -1
  649. package/zip/zip-builder.d.ts +0 -22
  650. package/zip/zip-builder.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sbom-file.d.ts","sourceRoot":"","sources":["../../../../source/sbom/sbom-file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAEjG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,KAAK,mBAAmB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;AAEjD,KAAK,2BAA2B,GAAG;IAC/B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAClD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,EAAE,CACN,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,SAAS,kBAAkB,EAAE,EACvC,eAAe,EAAE,eAAe,KAC/B,OAAO,CAAC,SAAS,eAAe,EAAE,GAAG,SAAS,CAAC,CAAC;CACxD,CAAC;AAuBF,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,2BAA2B,GAAG,eAAe,CA6ChG"}
1
+ {"version":3,"file":"sbom-file.d.ts","sourceRoot":"","sources":["../../../../source/sbom/sbom-file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;MAe3F,MAAM,eAAe,GAAG;IAC1B,QAAQ,EAAE,CACN,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,SAAS,kBAAkB,EAAE,EACvC,eAAe,EAAE,eAAe,KAC/B,OAAO,CAAC,SAAS,eAAe,EAAE,GAAG,SAAS,CAAC,CAAC;CACxD,CAAC;AAuBF"}
package/sbom/sbom-file.js CHANGED
@@ -1,55 +1,6 @@
1
- import * as cdx from '@cyclonedx/cyclonedx-library';
2
- import { sbomArtifactFilePath } from "../common/package-layout.js";
3
- import { createFileDescription } from "../file-manager/file-description.js";
4
- import { extractLicenseFromManifest } from "./extract-license.js";
5
- import { buildSbom } from "./sbom-builder.js";
6
- function isSbomEnabled(publishSettings) {
7
- return publishSettings.sbom?.enabled ?? true;
8
- }
9
- function listDependencyEntries(bundle) {
10
- return [
11
- ...Object.entries(bundle.dependencies).map(function ([name, specifier]) {
12
- return { name, specifier, scope: cdx.Enums.ComponentScope.Required };
13
- }),
14
- ...Object.entries(bundle.peerDependencies).map(function ([name, specifier]) {
15
- return { name, specifier, scope: cdx.Enums.ComponentScope.Optional };
16
- })
17
- ];
18
- }
19
- export function createSbomFileBuilder(dependencies) {
20
- const { licenseResolver, sbomSerializer, toolVersionProvider, projectFolder } = dependencies;
21
- async function resolveDependencyEntries(bundle, siblings) {
22
- const siblingsByName = new Map(siblings.map(function (sibling) {
23
- return [sibling.name, sibling];
24
- }));
25
- const entries = listDependencyEntries(bundle);
26
- return Promise.all(entries.map(async function (entry) {
27
- const sibling = siblingsByName.get(entry.name);
28
- const license = sibling === undefined
29
- ? await licenseResolver.resolveLicense({ projectFolder, dependencyName: entry.name })
30
- : extractLicenseFromManifest(sibling.packageJson);
31
- return { ...entry, license };
32
- }));
33
- }
34
- async function buildFile(bundle, siblings) {
35
- const [resolvedToolVersion, sbomDependencies] = await Promise.all([
36
- toolVersionProvider(),
37
- resolveDependencyEntries(bundle, siblings)
38
- ]);
39
- const bom = buildSbom({
40
- toolVersion: resolvedToolVersion,
41
- rootComponent: { name: bundle.packageJson.name, version: bundle.packageJson.version },
42
- dependencies: sbomDependencies
43
- });
44
- return createFileDescription(sbomArtifactFilePath, sbomSerializer.serialize(bom));
45
- }
46
- return {
47
- async generate(bundle, siblings, publishSettings) {
48
- if (!isSbomEnabled(publishSettings)) {
49
- return undefined;
50
- }
51
- return [await buildFile(bundle, siblings)];
52
- }
53
- };
54
- }
1
+ import '@cyclonedx/cyclonedx-library';
2
+ import "../common/package-layout.js";
3
+ import "../file-manager/file-description.js";
4
+ import "./extract-license.js";
5
+ import "./sbom-builder.js";
55
6
  //# sourceMappingURL=sbom-file.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sbom-file.js","sourceRoot":"","sources":["../../../../source/sbom/sbom-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sbom-file.js","sourceRoot":"","sources":["../../../../source/sbom/sbom-file.ts"],"names":[],"mappings":"AAAA,OAAqB,8BAA8B,CAAC;AACpD,OAAqC,6BAA6B,CAAC;AAEnE,OAA4D,qCAAqC,CAAC;AAElG,OAA2C,sBAAsB,CAAC;AAGlE,OAA+C,mBAAmB,CAAC"}
@@ -1,15 +1,2 @@
1
- import * as cdx from '@cyclonedx/cyclonedx-library';
2
- function createCycloneDxJsonSerializer() {
3
- return new cdx.Serialize.JsonSerializer(new cdx.Serialize.JSON.Normalize.Factory(cdx.Spec.Spec1dot6));
4
- }
5
- function serializeBom(serializer, bom) {
6
- return String(Reflect.apply(serializer.serialize, serializer, [bom, { sortLists: true, space: 4 }]));
7
- }
8
- export function createSbomSerializer() {
9
- const serializer = createCycloneDxJsonSerializer();
10
- const serialize = function (bom) {
11
- return serializeBom(serializer, bom);
12
- };
13
- return { serialize };
14
- }
1
+ import '@cyclonedx/cyclonedx-library';
15
2
  //# sourceMappingURL=sbom-serializer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sbom-serializer.js","sourceRoot":"","sources":["../../../../source/sbom/sbom-serializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,8BAA8B,CAAC;AAQpD,SAAS,6BAA6B;IAClC,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1G,CAAC;AAED,SAAS,YAAY,CAAC,UAAwC,EAAE,GAAoB;IAChF,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,CAAE,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAE,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED,MAAM,UAAU,oBAAoB;IAChC,MAAM,UAAU,GAAG,6BAA6B,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,UAAU,GAAoB;QAC5C,OAAO,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,OAAO,EAAE,SAAS,EAAE,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"sbom-serializer.js","sourceRoot":"","sources":["../../../../source/sbom/sbom-serializer.ts"],"names":[],"mappings":"AAAA,OAAqB,8BAA8B,CAAC"}
@@ -1,50 +1,2 @@
1
- import { isObjectType, isPlainObject } from 'remeda';
2
- const candidatePackageNames = ['@packtory/cli', 'packtory'];
3
- function buildUnresolvableMessage() {
4
- const intro = 'Cannot determine packtory tool version: neither "@packtory/cli" nor "packtory" is resolvable.';
5
- return `${intro} Install packtory via npm so it lives under node_modules/.`;
6
- }
7
- function isCandidatePackageName(value) {
8
- return value === '@packtory/cli' || value === 'packtory';
9
- }
10
- function isImportResolutionError(error) {
11
- if (!isObjectType(error) || !Object.hasOwn(error, 'code')) {
12
- return false;
13
- }
14
- const code = Reflect.get(error, 'code');
15
- return code === 'ERR_MODULE_NOT_FOUND' || code === 'ERR_PACKAGE_PATH_NOT_EXPORTED';
16
- }
17
- function unwrapJsonModule(importedModule) {
18
- if (!isPlainObject(importedModule) || !Object.hasOwn(importedModule, 'default')) {
19
- return importedModule;
20
- }
21
- return importedModule.default;
22
- }
23
- function parseToolPackageJson(specifier, importedModule) {
24
- const parsed = unwrapJsonModule(importedModule);
25
- if (!isPlainObject(parsed) || typeof parsed.version !== 'string') {
26
- throw new Error(`Imported packtory package.json from "${specifier}" is missing a version field`);
27
- }
28
- if (!isCandidatePackageName(parsed.name)) {
29
- throw new Error(`Imported packtory package.json from "${specifier}" has unexpected package name`);
30
- }
31
- return parsed.version;
32
- }
33
- export function createPacktoryToolVersionResolver(dependencies) {
34
- const { importPackageJson } = dependencies;
35
- return async function resolvePacktoryToolVersion() {
36
- for (const candidatePackageName of candidatePackageNames) {
37
- const specifier = `${candidatePackageName}/package.json`;
38
- try {
39
- return parseToolPackageJson(specifier, await importPackageJson(specifier));
40
- }
41
- catch (error) {
42
- if (!isImportResolutionError(error)) {
43
- throw error;
44
- }
45
- }
46
- }
47
- throw new Error(buildUnresolvableMessage());
48
- };
49
- }
1
+ import 'remeda';
50
2
  //# sourceMappingURL=tool-version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-version.js","sourceRoot":"","sources":["../../../../source/sbom/tool-version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAErD,MAAM,qBAAqB,GAAG,CAAE,eAAe,EAAE,UAAU,CAAW,CAAC;AAQvE,SAAS,wBAAwB;IAC7B,MAAM,KAAK,GAAG,+FAA+F,CAAC;IAC9G,OAAO,GAAG,KAAK,4DAA4D,CAAC;AAChF,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC1C,OAAO,KAAK,KAAK,eAAe,IAAI,KAAK,KAAK,UAAU,CAAC;AAC7D,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc;IAC3C,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,GAAY,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,IAAI,KAAK,sBAAsB,IAAI,IAAI,KAAK,+BAA+B,CAAC;AACvF,CAAC;AAED,SAAS,gBAAgB,CAAC,cAAuB;IAC7C,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,CAAC;QAC9E,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED,OAAO,cAAc,CAAC,OAAO,CAAC;AAClC,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB,EAAE,cAAuB;IACpE,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAChD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,wCAAwC,SAAS,8BAA8B,CAAC,CAAC;IACrG,CAAC;IACD,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,wCAAwC,SAAS,+BAA+B,CAAC,CAAC;IACtG,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC7C,YAA6C;IAE7C,MAAM,EAAE,iBAAiB,EAAE,GAAG,YAAY,CAAC;IAE3C,OAAO,KAAK,UAAU,0BAA0B;QAC5C,KAAK,MAAM,oBAAoB,IAAI,qBAAqB,EAAE,CAAC;YACvD,MAAM,SAAS,GAAG,GAAG,oBAAoB,eAAe,CAAC;YACzD,IAAI,CAAC;gBACD,OAAO,oBAAoB,CAAC,SAAS,EAAE,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;YAC/E,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClC,MAAM,KAAK,CAAC;gBAChB,CAAC;YACL,CAAC;QACL,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"tool-version.js","sourceRoot":"","sources":["../../../../source/sbom/tool-version.ts"],"names":[],"mappings":"AAAA,OAA4C,QAAQ,CAAC"}
package/sbom.cdx.json CHANGED
@@ -9,16 +9,16 @@
9
9
  {
10
10
  "type": "application",
11
11
  "name": "packtory",
12
- "version": "0.0.97"
12
+ "version": "0.0.98"
13
13
  }
14
14
  ]
15
15
  },
16
16
  "component": {
17
17
  "type": "library",
18
18
  "name": "packtory",
19
- "version": "0.0.91",
20
- "bom-ref": "pkg:npm/packtory@0.0.91",
21
- "purl": "pkg:npm/packtory@0.0.91"
19
+ "version": "0.0.92",
20
+ "bom-ref": "pkg:npm/packtory@0.0.92",
21
+ "purl": "pkg:npm/packtory@0.0.92"
22
22
  }
23
23
  },
24
24
  "components": [
@@ -376,7 +376,7 @@
376
376
  "ref": "pkg:npm/npm-registry-fetch@20.0.1"
377
377
  },
378
378
  {
379
- "ref": "pkg:npm/packtory@0.0.91",
379
+ "ref": "pkg:npm/packtory@0.0.92",
380
380
  "dependsOn": [
381
381
  "pkg:npm/@arethetypeswrong/core@0.18.5",
382
382
  "pkg:npm/@cyclonedx/cyclonedx-library@10.2.0",
@@ -1,84 +1,4 @@
1
- import { createGunzip } from 'node:zlib';
2
- import { Readable } from 'node:stream';
3
- import { extract } from 'tar-stream';
4
- function defaultExtractTarLimits() {
5
- return {
6
- maxEntryCount: 50_000,
7
- maxEntryPathLength: 4096,
8
- maxExtractedBytes: 1_073_741_824
9
- };
10
- }
11
- function toError(error) {
12
- return error instanceof Error ? error : new Error(String(error));
13
- }
14
- function assertWithinEntryCountLimit(entries, limits) {
15
- if (entries.length >= limits.maxEntryCount) {
16
- throw new Error(`Refusing to extract tarball with more than ${limits.maxEntryCount} entries`);
17
- }
18
- }
19
- function assertWithinEntryPathLimit(entry, limits) {
20
- if (entry.header.name.length > limits.maxEntryPathLength) {
21
- throw new Error(`Refusing to extract tarball entry with path longer than ${limits.maxEntryPathLength} characters`);
22
- }
23
- }
24
- function assertWithinExtractedSizeLimit(extractedBytes, limits) {
25
- if (extractedBytes > limits.maxExtractedBytes) {
26
- throw new Error(`Refusing to extract tarball larger than ${limits.maxExtractedBytes} bytes`);
27
- }
28
- }
29
- async function readEntryContent(entry, currentExtractedBytes, limits) {
30
- let result = '';
31
- let extractedBytes = currentExtractedBytes;
32
- for await (const chunk of entry) {
33
- extractedBytes += chunk.length;
34
- assertWithinExtractedSizeLimit(extractedBytes, limits);
35
- result += chunk.toString();
36
- }
37
- return { content: result, extractedBytes };
38
- }
39
- function stableTarHeader(header) {
40
- const contentHeader = { ...header };
41
- Reflect.deleteProperty(contentHeader, 'byteOffset');
42
- return contentHeader;
43
- }
44
- async function collectTarEntries(stream, limits) {
45
- const entries = [];
46
- let extractedBytes = 0;
47
- for await (const entry of stream) {
48
- assertWithinEntryCountLimit(entries, limits);
49
- assertWithinEntryPathLimit(entry, limits);
50
- const content = await readEntryContent(entry, extractedBytes, limits);
51
- extractedBytes = content.extractedBytes;
52
- entries.push({ header: stableTarHeader(entry.header), content: content.content });
53
- }
54
- return entries;
55
- }
56
- async function waitForStreamError(stream) {
57
- return await new Promise(function (_resolve, reject) {
58
- stream.once('error', function (error) {
59
- reject(toError(error));
60
- });
61
- });
62
- }
63
- function appendOutcome(outcomes, outcome) {
64
- outcomes.add(outcome);
65
- return outcomes;
66
- }
67
- async function raceExtractionOutcomes(streams, limits) {
68
- const entries = await Promise.race(appendOutcome(appendOutcome(appendOutcome(appendOutcome(new Set(), collectTarEntries(streams.tarEntries, limits)), waitForStreamError(streams.source)), waitForStreamError(streams.gunzip)), waitForStreamError(streams.extractStream)));
69
- return Array.from(entries);
70
- }
71
- export async function extractTarEntries(buffer, dependencies = {}, limits = defaultExtractTarLimits()) {
72
- const createSource = dependencies.createSource ?? Readable.from;
73
- const extractStream = extract();
74
- const source = createSource(buffer);
75
- const gunzip = createGunzip();
76
- const tarEntries = source.pipe(gunzip).pipe(extractStream);
77
- try {
78
- return await raceExtractionOutcomes({ extractStream, gunzip, source, tarEntries }, limits);
79
- }
80
- catch (error) {
81
- throw toError(error);
82
- }
83
- }
1
+ import 'node:zlib';
2
+ import 'node:stream';
3
+ import 'tar-stream';
84
4
  //# sourceMappingURL=extract-tar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract-tar.js","sourceRoot":"","sources":["../../../../source/tar/extract-tar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAmC,MAAM,YAAY,CAAC;AA6BtE,SAAS,uBAAuB;IAC5B,OAAO;QACH,aAAa,EAAE,MAAM;QACrB,kBAAkB,EAAE,IAAI;QACxB,iBAAiB,EAAE,aAAa;KACnC,CAAC;AACN,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC3B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,CAAC;AAUD,SAAS,2BAA2B,CAAC,OAA4B,EAAE,MAAwB;IACvF,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,8CAA8C,MAAM,CAAC,aAAa,UAAU,CAAC,CAAC;IAClG,CAAC;AACL,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAqB,EAAE,MAAwB;IAC/E,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CACX,2DAA2D,MAAM,CAAC,kBAAkB,aAAa,CACpG,CAAC;IACN,CAAC;AACL,CAAC;AAED,SAAS,8BAA8B,CAAC,cAAsB,EAAE,MAAwB;IACpF,IAAI,cAAc,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,2CAA2C,MAAM,CAAC,iBAAiB,QAAQ,CAAC,CAAC;IACjG,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC3B,KAAqB,EACrB,qBAA6B,EAC7B,MAAwB;IAExB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,cAAc,GAAG,qBAAqB,CAAC;IAE3C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC9B,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC;QAC/B,8BAA8B,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,eAAe,CAAC,MAAuB;IAC5C,MAAM,aAAa,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IACpC,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACpD,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,MAAqC,EAAE,MAAwB;IAC5F,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC/B,2BAA2B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7C,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QACtE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,MAAoB;IAClD,OAAO,MAAM,IAAI,OAAO,CAAQ,UAAU,QAAQ,EAAE,MAAM;QACtD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,KAAc;YACzC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAOD,SAAS,aAAa,CAClB,QAAqC,EACrC,OAAqC;IAErC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtB,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,OAA0B,EAAE,MAAwB;IACtF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAC9B,aAAa,CACT,aAAa,CACT,aAAa,CACT,aAAa,CACT,IAAI,GAAG,EAAgC,EACvC,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAChD,EACD,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CACrC,EACD,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CACrC,EACD,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,CAC5C,CACJ,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,MAAc,EACd,eAAgD,EAAE,EAClD,SAA2B,uBAAuB,EAAE;IAEpD,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,IAAI,QAAQ,CAAC,IAAI,CAAC;IAChE,MAAM,aAAa,GAAG,OAAO,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAkC,CAAC;IAE5F,IAAI,CAAC;QACD,OAAO,MAAM,sBAAsB,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;IAC/F,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"extract-tar.js","sourceRoot":"","sources":["../../../../source/tar/extract-tar.ts"],"names":[],"mappings":"AAAA,OAA6B,WAAW,CAAC;AACzC,OAAyB,aAAa,CAAC;AACvC,OAAyD,YAAY,CAAC"}
@@ -1,21 +1 @@
1
- const gzipHeaderOperatingSystemFieldIndex = 9;
2
- const gzipHeaderOperatingSystemUnknown = 255;
3
- function normalizeGzipHeader(data) {
4
- const normalized = Buffer.from(data);
5
- normalized[gzipHeaderOperatingSystemFieldIndex] = gzipHeaderOperatingSystemUnknown;
6
- return normalized;
7
- }
8
- function gzipStreamChunkToBuffer(chunk) {
9
- if (typeof chunk === 'string' || chunk instanceof Uint8Array) {
10
- return Buffer.from(chunk);
11
- }
12
- throw new TypeError('Expected gzip stream to yield Buffer, Uint8Array, or string chunks');
13
- }
14
- export async function collectGzippedPack(pack, gzip) {
15
- const chunks = [];
16
- for await (const chunk of pack.pipe(gzip)) {
17
- chunks.push(gzipStreamChunkToBuffer(chunk));
18
- }
19
- return normalizeGzipHeader(Buffer.concat(chunks));
20
- }
21
1
  //# sourceMappingURL=gzipped-pack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gzipped-pack.js","sourceRoot":"","sources":["../../../../source/tar/gzipped-pack.ts"],"names":[],"mappings":"AAGA,MAAM,mCAAmC,GAAG,CAAC,CAAC;AAC9C,MAAM,gCAAgC,GAAG,GAAG,CAAC;AAE7C,SAAS,mBAAmB,CAAC,IAAY;IACrC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,UAAU,CAAC,mCAAmC,CAAC,GAAG,gCAAgC,CAAC;IACnF,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,oEAAoE,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,IAAwB,EACxB,IAAwC;IAExC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"gzipped-pack.js","sourceRoot":"","sources":["../../../../source/tar/gzipped-pack.ts"],"names":[],"mappings":""}
@@ -1,46 +1,6 @@
1
- import zlib from 'node:zlib';
2
- import tar, {} from 'tar-stream';
3
- import { validateVendorEntrySource } from "../vendor-materializer/vendor-entry.js";
4
- import { collectGzippedPack } from "./gzipped-pack.js";
1
+ import 'node:zlib';
2
+ import 'tar-stream';
3
+ import "../vendor-materializer/vendor-entry.js";
4
+ import "./gzipped-pack.js";
5
5
  const staticFileModificationTime = new Date(0);
6
- const executableFileMode = 493;
7
- const nonExecutableFileMode = 420;
8
- export function createTarballBuilder(dependencies = {}) {
9
- const createGzip = dependencies.createGzip ?? zlib.createGzip;
10
- const fileManager = dependencies.fileManager ?? {
11
- async getRealPath(filePath) {
12
- return filePath;
13
- },
14
- async readFileBytes() {
15
- throw new Error('readFileBytes is required to materialize vendor entries into the tarball');
16
- }
17
- };
18
- function addEntry(pack, filePath, isExecutable, payload) {
19
- const entry = pack.entry({
20
- name: filePath,
21
- mtime: staticFileModificationTime,
22
- mode: isExecutable ? executableFileMode : nonExecutableFileMode
23
- }, payload);
24
- entry.end();
25
- }
26
- async function createPack(fileDescriptions, vendorEntries) {
27
- const pack = tar.pack();
28
- for (const fileDescription of fileDescriptions) {
29
- addEntry(pack, fileDescription.filePath, fileDescription.isExecutable, fileDescription.content);
30
- }
31
- for (const vendorEntry of vendorEntries) {
32
- await validateVendorEntrySource(fileManager, vendorEntry);
33
- const payload = await fileManager.readFileBytes(vendorEntry.sourceAbsolutePath);
34
- addEntry(pack, vendorEntry.targetRelativePath, vendorEntry.isExecutable, payload);
35
- }
36
- pack.finalize();
37
- return pack;
38
- }
39
- return {
40
- async build(fileDescriptions, vendorEntries = []) {
41
- const pack = await createPack(fileDescriptions, vendorEntries);
42
- return collectGzippedPack(pack, createGzip({ level: 9 }));
43
- }
44
- };
45
- }
46
6
  //# sourceMappingURL=tarball-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tarball-builder.js","sourceRoot":"","sources":["../../../../source/tar/tarball-builder.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,GAAG,EAAE,EAAa,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,yBAAyB,EAAoB,MAAM,wCAAwC,CAAC;AACrG,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAWvD,MAAM,0BAA0B,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC,MAAM,UAAU,oBAAoB,CAAC,eAAoD,EAAE;IACvF,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;IAC9D,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI;QAC5C,KAAK,CAAC,WAAW,CAAC,QAAgB;YAC9B,OAAO,QAAQ,CAAC;QACpB,CAAC;QACD,KAAK,CAAC,aAAa;YACf,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAChG,CAAC;KACJ,CAAC;IAEF,SAAS,QAAQ,CAAC,IAAU,EAAE,QAAgB,EAAE,YAAqB,EAAE,OAAwB;QAC3F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACpB;YACI,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,0BAA0B;YACjC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,qBAAqB;SAClE,EACD,OAAO,CACV,CAAC;QACF,KAAK,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,KAAK,UAAU,UAAU,CACrB,gBAA4C,EAC5C,aAAqC;QAErC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAExB,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;YAC7C,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;QACpG,CAAC;QACD,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE,CAAC;YACtC,MAAM,yBAAyB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;YAChF,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,kBAAkB,EAAE,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO;QACH,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,aAAa,GAAG,EAAE;YAC5C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;YAC/D,OAAO,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;KACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"tarball-builder.js","sourceRoot":"","sources":["../../../../source/tar/tarball-builder.ts"],"names":[],"mappings":"AAAA,OAAiB,WAAW,CAAC;AAC7B,OAA+B,YAAY,CAAC;AAG5C,OAA4D,wCAAwC,CAAC;AACrG,OAAmC,mBAAmB,CAAC;AAWvD,MAAM,0BAA0B,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC"}
@@ -1,21 +1,2 @@
1
- import path from 'node:path';
2
- function isInFolder(folder, candidate) {
3
- const relativePath = path.relative(folder, candidate);
4
- return !relativePath.startsWith('..') && !path.isAbsolute(relativePath);
5
- }
6
- export async function validateVendorEntrySource(validator, entry) {
7
- const rootPath = path.resolve(entry.sourcePackageRootPath);
8
- const realSourcePath = await validator.getRealPath(entry.sourceAbsolutePath);
9
- if (!isInFolder(rootPath, path.resolve(realSourcePath))) {
10
- throw new Error(`Vendored file "${entry.sourceAbsolutePath}" resolved outside package root "${entry.sourcePackageRootPath}"`);
11
- }
12
- }
13
- export function applyPrefixToVendorEntry(prefix, entry) {
14
- return {
15
- sourceAbsolutePath: entry.sourceAbsolutePath,
16
- sourcePackageRootPath: entry.sourcePackageRootPath,
17
- targetRelativePath: `${prefix}/${entry.targetRelativePath}`,
18
- isExecutable: entry.isExecutable
19
- };
20
- }
1
+ import 'node:path';
21
2
  //# sourceMappingURL=vendor-entry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vendor-entry.js","sourceRoot":"","sources":["../../../../source/vendor-materializer/vendor-entry.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAY7B,SAAS,UAAU,CAAC,MAAc,EAAE,SAAiB;IACjD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC3C,SAAqC,EACrC,KAAkB;IAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAE7E,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CACX,kBAAkB,KAAK,CAAC,kBAAkB,oCAAoC,KAAK,CAAC,qBAAqB,GAAG,CAC/G,CAAC;IACN,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAc,EAAE,KAAkB;IACvE,OAAO;QACH,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;QAClD,kBAAkB,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,kBAAkB,EAAE;QAC3D,YAAY,EAAE,KAAK,CAAC,YAAY;KACnC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"vendor-entry.js","sourceRoot":"","sources":["../../../../source/vendor-materializer/vendor-entry.ts"],"names":[],"mappings":"AAAA,OAAiB,WAAW,CAAC"}
@@ -1,241 +1,9 @@
1
- import path from 'node:path';
2
- import parsePackageArgument from 'npm-package-arg';
3
- import { Result } from 'true-myth';
4
- import { tryOr } from 'true-myth/result';
5
- import { z } from 'zod/mini';
6
- import { safeParse } from "../common/schema-validation.js";
7
- import { ancestorInstalledDependencyPathCandidates, bundledInstalledDependencyPath, installedDependenciesFolderName, packageManifestPathIn } from "../common/package-layout.js";
8
- import { createWorklist } from "../common/worklist.js";
9
- export const vendorMaterializerFailureType = {
10
- dependencyNotFound: 'dependency-not-found',
11
- invalidDependencyName: 'invalid-dependency-name',
12
- symlinkTargetOutsidePackage: 'symlink-target-outside-package'
13
- };
14
- const dependencyMapSchema = z.optional(z.record(z.string(), z.string()));
15
- function packageManifestSchema() {
16
- return z.object({
17
- dependencies: dependencyMapSchema,
18
- peerDependencies: dependencyMapSchema
19
- });
20
- }
21
- function getPackageArgumentName(name) {
22
- const parsed = tryOr(undefined, function () {
23
- return parsePackageArgument(name).name ?? undefined;
24
- });
25
- return parsed.isOk ? parsed.value : undefined;
26
- }
27
- function findFirstInvalidDependencyName(names) {
28
- for (const name of names) {
29
- if (getPackageArgumentName(name) !== name) {
30
- return name;
31
- }
32
- }
33
- return undefined;
34
- }
35
- function parseManifestSummary(sourcePackageName, content) {
36
- const parsed = safeParse(packageManifestSchema(), JSON.parse(content));
37
- if (!parsed.success) {
38
- return Result.ok({ dependencies: [], peers: [] });
39
- }
40
- const dependencyNames = Object.keys(parsed.data.dependencies ?? {});
41
- const peerDependencyNames = Object.keys(parsed.data.peerDependencies ?? {});
42
- const invalidDependencyName = findFirstInvalidDependencyName(dependencyNames.concat(peerDependencyNames));
43
- if (invalidDependencyName !== undefined) {
44
- return Result.err({
45
- type: vendorMaterializerFailureType.invalidDependencyName,
46
- sourcePackageName,
47
- invalidDependencyName
48
- });
49
- }
50
- return Result.ok({
51
- dependencies: dependencyNames,
52
- peers: peerDependencyNames
53
- });
54
- }
55
- async function collectPackageFileEntry(walker, state, relativeEntryPath) {
56
- const sourceAbsolutePath = path.join(state.packageDirectory.rootDirectory, relativeEntryPath);
57
- const targetRelativePath = bundledInstalledDependencyPath(state.packageDirectory.packageName, relativeEntryPath);
58
- const fileDescription = await walker.getTransferableFileDescriptionFromPath(sourceAbsolutePath, targetRelativePath);
59
- state.collected.push({
60
- sourceAbsolutePath,
61
- sourcePackageRootPath: state.packageDirectory.rootDirectory,
62
- targetRelativePath,
63
- isExecutable: fileDescription.isExecutable
64
- });
65
- }
66
- async function getResolvedTargetPath(walker, absoluteEntryPath) {
67
- try {
68
- return Result.ok(await walker.getRealPath(absoluteEntryPath));
69
- }
70
- catch {
71
- return Result.err(absoluteEntryPath);
72
- }
73
- }
74
- function isPathInsideRoot(rootDirectory, candidatePath) {
75
- const normalizedRoot = path.resolve(rootDirectory);
76
- const normalizedCandidate = path.resolve(candidatePath);
77
- return normalizedCandidate === normalizedRoot || normalizedCandidate.startsWith(`${normalizedRoot}${path.sep}`);
78
- }
79
- async function checkSymlinkInsidePackage(walker, rootDirectory, packageName, relativeEntryPath) {
80
- const absoluteEntryPath = path.join(rootDirectory, relativeEntryPath);
81
- const normalizedEntryRelativePath = relativeEntryPath.split(path.sep).join('/');
82
- const resolvedTarget = await getResolvedTargetPath(walker, absoluteEntryPath);
83
- const resolvedTargetPath = resolvedTarget.isOk ? resolvedTarget.value : resolvedTarget.error;
84
- if (resolvedTarget.isErr) {
85
- return Result.err({
86
- type: vendorMaterializerFailureType.symlinkTargetOutsidePackage,
87
- packageName,
88
- entryRelativePath: normalizedEntryRelativePath,
89
- resolvedTargetPath
90
- });
91
- }
92
- if (!isPathInsideRoot(rootDirectory, resolvedTargetPath)) {
93
- return Result.err({
94
- type: vendorMaterializerFailureType.symlinkTargetOutsidePackage,
95
- packageName,
96
- entryRelativePath: normalizedEntryRelativePath,
97
- resolvedTargetPath
98
- });
99
- }
100
- return Result.ok(undefined);
101
- }
102
- async function validatePackageDirectoryEntry(walker, packageDirectory, relativeEntryPath, entry) {
103
- if (!entry.isSymbolicLink) {
104
- return Result.ok(undefined);
105
- }
106
- return checkSymlinkInsidePackage(walker, packageDirectory.rootDirectory, packageDirectory.packageName, relativeEntryPath);
107
- }
108
- const walkPackageDirectory = async function (walker, state, relativeDirectory) {
109
- const absoluteDirectory = path.join(state.packageDirectory.rootDirectory, relativeDirectory);
110
- const entries = await walker.listDirectoryEntries(absoluteDirectory);
111
- const collectDirectoryEntry = async function (entry) {
112
- if (entry.name === installedDependenciesFolderName) {
113
- return Result.ok(undefined);
114
- }
115
- const relativeEntryPath = path.join(relativeDirectory, entry.name);
116
- const symlinkCheck = await validatePackageDirectoryEntry(walker, state.packageDirectory, relativeEntryPath, entry);
117
- if (symlinkCheck.isErr) {
118
- return symlinkCheck;
119
- }
120
- if (entry.isDirectory) {
121
- return walkPackageDirectory(walker, state, relativeEntryPath);
122
- }
123
- await collectPackageFileEntry(walker, state, relativeEntryPath);
124
- return Result.ok(undefined);
125
- };
126
- for (const entry of entries) {
127
- const result = await collectDirectoryEntry(entry);
128
- if (result.isErr) {
129
- return result;
130
- }
131
- }
132
- return Result.ok(undefined);
133
- };
134
- export function createVendorMaterializer(dependencies) {
135
- const { fileManager } = dependencies;
136
- function queueItem(name, fromFolder, sourcePackageName, required) {
137
- return { name, fromFolder, required, sourcePackageName };
138
- }
139
- function scheduleManifestDependencies(closure, name, realPath, summary) {
140
- closure.pendingPackages.scheduleAll(summary.dependencies.map(function (dependencyName) {
141
- return queueItem(dependencyName, realPath, name, true);
142
- }));
143
- closure.pendingPackages.scheduleAll(summary.peers.map(function (dependencyName) {
144
- return queueItem(dependencyName, realPath, name, false);
145
- }));
146
- }
147
- async function collectVendorEntries(packageName, realPath) {
148
- const collected = [];
149
- const walkResult = await walkPackageDirectory(fileManager, { packageDirectory: { rootDirectory: realPath, packageName }, collected }, '');
150
- if (walkResult.isErr) {
151
- return Result.err(walkResult.error);
152
- }
153
- return Result.ok(Array.from(collected));
154
- }
155
- async function readManifestSummary(packageName, realPath) {
156
- const manifestPath = packageManifestPathIn(realPath);
157
- const content = await fileManager.readFile(manifestPath);
158
- return parseManifestSummary(packageName, content);
159
- }
160
- async function findPackageRealPath(packageName, startFolder) {
161
- for (const candidatePath of ancestorInstalledDependencyPathCandidates(startFolder, packageName)) {
162
- const readability = await fileManager.checkReadability(candidatePath);
163
- if (readability.isReadable) {
164
- return await fileManager.getRealPath(candidatePath);
165
- }
166
- }
167
- return undefined;
168
- }
169
- async function ingestResolvedPackage(closure, name, realPath) {
170
- const summaryResult = await readManifestSummary(name, realPath);
171
- if (summaryResult.isErr) {
172
- return Result.err(summaryResult.error);
173
- }
174
- scheduleManifestDependencies(closure, name, realPath, summaryResult.value);
175
- closure.peerRequirements.set(name, summaryResult.value.peers);
176
- const collectedResult = await collectVendorEntries(name, realPath);
177
- if (collectedResult.isErr) {
178
- return Result.err(collectedResult.error);
179
- }
180
- closure.entries.push(...collectedResult.value);
181
- return Result.ok(undefined);
182
- }
183
- async function processPendingPackageItem(closure, item) {
184
- if (closure.visited.has(item.name)) {
185
- return Result.ok(undefined);
186
- }
187
- const realPath = await findPackageRealPath(item.name, item.fromFolder);
188
- if (realPath === undefined) {
189
- if (item.required) {
190
- return Result.err({
191
- type: vendorMaterializerFailureType.dependencyNotFound,
192
- sourcePackageName: item.sourcePackageName,
193
- dependencyName: item.name
194
- });
195
- }
196
- return Result.ok(undefined);
197
- }
198
- closure.visited.add(item.name);
199
- return ingestResolvedPackage(closure, item.name, realPath);
200
- }
201
- async function drainPendingPackages(closure) {
202
- for (let item = closure.pendingPackages.takeNext(); item !== undefined; item = closure.pendingPackages.takeNext()) {
203
- const processed = await processPendingPackageItem(closure, item);
204
- if (processed.isErr) {
205
- return processed;
206
- }
207
- }
208
- return Result.ok(undefined);
209
- }
210
- return {
211
- async materializeExternals(options) {
212
- const invalidInitialName = findFirstInvalidDependencyName(options.initialDependencyNames);
213
- if (invalidInitialName !== undefined) {
214
- return Result.err({
215
- type: vendorMaterializerFailureType.invalidDependencyName,
216
- sourcePackageName: undefined,
217
- invalidDependencyName: invalidInitialName
218
- });
219
- }
220
- const entries = [];
221
- const closure = {
222
- visited: new Set(),
223
- entries,
224
- pendingPackages: createWorklist(options.initialDependencyNames.map(function (name) {
225
- return queueItem(name, options.projectFolder, undefined, true);
226
- })),
227
- peerRequirements: new Map()
228
- };
229
- const drained = await drainPendingPackages(closure);
230
- if (drained.isErr) {
231
- return Result.err(drained.error);
232
- }
233
- return Result.ok({
234
- entries: Array.from(closure.entries),
235
- packageNames: Array.from(closure.visited),
236
- peerRequirements: new Map(closure.peerRequirements)
237
- });
238
- }
239
- };
240
- }
1
+ import 'node:path';
2
+ import 'npm-package-arg';
3
+ import 'true-myth';
4
+ import 'true-myth/result';
5
+ import 'zod/mini';
6
+ import "../common/schema-validation.js";
7
+ import "../common/package-layout.js";
8
+ import "../common/worklist.js";
241
9
  //# sourceMappingURL=vendor-materializer.js.map