code: function followPage( pageRef ) {
        const name = basename( pageRef );
  
        return resolveRef( pageRef + '.json', paths.pages )
           .then( path => readJson( path ).then( page => {
              const items = flatten( values( page.areas ) )
                 .filter( item => item.enabled !== false );
  
              const pages = items
                 .filter( hasField( 'composition' ) )
                 .map( getField( 'composition' ) )
                 .concat( page.extends ? [ page.extends ] : [] );
  
              const layouts = items
                 .filter( hasField( 'layout' ) )
                 .map( getField( 'layout' ) )
                 .concat( page.layout ? [ page.layout ] : [] )
                 .filter( unique() );
  
              const widgets = items
                 .filter( hasField( 'widget' ) )
                 .map( getField( 'widget' ) )
                 .filter( unique() );
  
              return [ {
                 refs: [ pageRef ],
                 path,
                 name,
                 definition: page,
                 descriptor: { name },
                 category: 'pages',
                 schemas: [ 'page' ],
  
                 pages,
                 widgets,
                 layouts
              } ];
           } ) );
     }
docs: //////////////////////////////////////////////////////////////////////////////////////////////////////// 
  Collect meta information about the single page.
  
  @private
  @memberOf ArtifactCollector
  @param {String} pageRef the page reference (relative to `paths.pages`) to follow
  @return {Promise<Array>} a promise for an array with a single page-meta object