public function composer($full = false)
    {
        $cacheKey = "composer({$this->_packageName}, {$full})";
        if ($cache = static::cache($cacheKey)) {
            return $cache;
        }

        $jsonPath = normalizePath($this->path() . '/composer.json');
        if (!is_readable($jsonPath)) {
            return [];
        }

        $json = json_decode(file_get_contents($jsonPath), true);
        if (empty($json)) {
            return [];
        }

        if ($full) {
            $json = Hash::merge(JsonSchema::$schema, $json);
        }

        return static::cache($cacheKey, $json);
    }