Draft: [PoC] Add Composer script for npm dependency aggregation

I barely read the code, please don't spend time reviewing it, it's entirely generated by a LLM.

Adds composer npm-install command that:

  • Scans modules/themes for package.json files
  • Merges dependencies with conflict resolution (highest-satisfies, first-wins, fail)
  • Writes aggregated package.json with _drupalSources metadata
  • Installs packages via php-npm Arborist

New classes in composer/NpmDependencies/:

  • NpmInstallOptions: Configuration from composer.json extra section
  • DependencySource: DTO tracking dependency origins
  • PackageJsonFinder: Discovers package.json via Symfony Finder
  • MergeResult: Result object with merged deps and conflicts
  • PackageJsonMerger: Core merging algorithm using composer/semver
  • NpmDependencyManager: Main orchestrator

Merge request reports

Loading