original_string: public function build()
      {
          $packages = [];
  
          if ($this->files->exists($path = $this->vendorPath.'/composer/installed.json')) {
              $packages = json_decode($this->files->get($path), true);
          }
  
          $ignoreAll = in_array('*', $ignore = $this->packagesToIgnore());
  
          $this->write($keys = collect($packages)->mapWithKeys(function ($package) {
              return [$this->format($package['name']) => $package['extra']['nano7'] ? $package['extra']['nano7'] : []];
          })->each(function ($configuration) use (&$ignore) {
              $ignore = array_merge($ignore, $configuration['dont-discover'] ? $configuration['dont-discover'] : []);
          })->reject(function ($configuration, $package) use ($ignore, $ignoreAll) {
              return $ignoreAll || in_array($package, $ignore);
          })->filter()->all());
  
          return $keys;
      }
code: public function build()
      {
          $packages = [];
  
          if ($this->files->exists($path = $this->vendorPath.'/composer/installed.json')) {
              $packages = json_decode($this->files->get($path), true);
          }
  
          $ignoreAll = in_array('*', $ignore = $this->packagesToIgnore());
  
          $this->write($keys = collect($packages)->mapWithKeys(function ($package) {
              return [$this->format($package['name']) => $package['extra']['nano7'] ? $package['extra']['nano7'] : []];
          })->each(function ($configuration) use (&$ignore) {
              $ignore = array_merge($ignore, $configuration['dont-discover'] ? $configuration['dont-discover'] : []);
          })->reject(function ($configuration, $package) use ($ignore, $ignoreAll) {
              return $ignoreAll || in_array($package, $ignore);
          })->filter()->all());
  
          return $keys;
      }
code_tokens: public function build ( ) { $ packages = [ ] ; if ( $ this -> files -> exists ( $ path = $ this -> vendorPath . '/composer/installed.json' ) ) { $ packages = json_decode ( $ this -> files -> get ( $ path ) , true ) ; } $ ignoreAll = in_array ( '*' , $ ignore = $ this -> packagesToIgnore ( ) ) ; $ this -> write ( $ keys = collect ( $ packages ) -> mapWithKeys ( function ( $ package ) { return [ $ this -> format ( $ package [ 'name' ] ) => $ package [ 'extra' ] [ 'nano7' ] ? $ package [ 'extra' ] [ 'nano7' ] : [ ] ] ; } ) -> each ( function ( $ configuration ) use ( & $ ignore ) { $ ignore = array_merge ( $ ignore , $ configuration [ 'dont-discover' ] ? $ configuration [ 'dont-discover' ] : [ ] ) ; } ) -> reject ( function ( $ configuration , $ package ) use ( $ ignore , $ ignoreAll ) { return $ ignoreAll || in_array ( $ package , $ ignore ) ; } ) -> filter ( ) -> all ( ) ) ; return $ keys ; }
docstring: Build the manifest and write it to disk.
  
  @return array
docstring_tokens: Build the manifest and write it to disk .