code: function applyListOptions( clist, options ){
  
      var cmap =          {};
  
      if ( options.recursive || options.fillRequirements ){
          cmap =          clist.reduce( fillRequirements, {} );
      }
      if ( options.recursive ){
          clist =         getValues( cmap );
      }
  
      if ( options.sort ){
          clist =         modularity.sortComponents( clist, options );
      }
  
      if ( options && options.parts ){
          return clist.filter( byParts( options.parts ));
      } else {
          return clist;
      }
  
  
      function fillRequirements( cmap, component ){
  
          if ( !component || !component.name ){
              return cmap;
          }
  
          if ( !cmap[component.name] ){
              cmap[component.name] =  component;
          }
  
          if ( !component.requiredComponents ){
              component.requiredComponents =  {};
              var reqs =                      modularity.getRequirements( component, options );
              for ( var k in reqs ){
                  var reqUrl =                reqs[k];
                  if ( !cmap[reqUrl] ){
                      fillRequirements( cmap, readComponent( reqUrl, options ));
                  }
                  component.requiredComponents[k] =   cmap[reqUrl];
              }
          }
  
          return cmap;
      }///
  }
docs: / / Private functions ----------------------------------------------------------