function pkgDeps( files, options ) {
	var aliases;
	var isStr;
	var cache;
	var list;
	var file;
	var opts;
	var err;
	var len;
	var dir;
	var i;
	var k;

	isStr = isString( files );
	if (
		!isStr &&
		!isStringArray( files )
	) {
		throw new TypeError( format( 'invalid argument. First argument must be either a string or array of strings. Value: `%s`.', files ) );
	}
	if ( isStr ) {
		list = [ files ];
	} else {
		list = files;
	}
	opts = copy( defaults );
	if ( arguments.length > 1 ) {
		err = validate( opts, options );
		if ( err ) {
			throw err;
		}
	}
	debug( 'Options: %s', JSON.stringify( opts ) );
	aliases = opts.aliases;

	dir = cwd();
	debug( 'Current working directory: %s', dir );

	len = list.length;
	cache = {};

	debug( 'Walking %s files...', len );
	for ( i = 0; i < len; i++ ) {
		k = i + 1;
		file = resolve( dir, list[ i ] );

		debug( 'Resolving aliases for file: %s (%d of %d)...', file, k, len );
		opts.aliases = resolveAliases( dirname( file ), aliases );
		debug( 'Resolved aliases for file: $s (%d of %d). Aliases: %s.', file, k, len, JSON.stringify( opts.aliases ) );

		debug( 'Walking file: %s (%d of %d)...', file, k, len );
		err = walkFile( cache, file, opts );
		if ( err instanceof Error ) {
			debug( 'Encountered an error when walking file: %s (%d of %d). Error: %s', file, k, len, err.message );
			return err;
		}
		debug( 'Successfully walked file: %s (%d of %d).', file, k, len );
	}
	debug( 'Finished walking %s files.', len );
	return toArray( cache );
}
Synchronously lists package dependencies.

@param {(string|StringArray)} files - file or file list
@param {Options} [options] - function options
@param {boolean} [options.builtins=true] - boolean indicating whether to include built-in packages
@param {boolean} [options.walk=true] - boolean indicating whether to walk relative module dependencies
@param {Object} [options.aliases={}] - object mapping relative module dependency identifiers to other module identifiers
@throws {TypeError} first argument must be an array of strings
@throws {TypeError} options argument must be an object
@throws {TypeError} must provide valid options
@returns {(ObjectArray|Error)} results or an error

@example
var files = [ '/foo/bar/index.js' ];

var deps = pkgDeps( files );