/** * Get all of the new versions available for a given package * * Unlike getAvailableUpgrades(), this gets the full dataset * * @param array $package * @return array */ protected function getNewVersions(array $package) : array { $current = $this->db->cell('SELECT versionid FROM airship_package_versions WHERE package = ? AND version = ?', $package['packageid'], $package['current_version']); if (!$current) { $current = 0; } $available = $this->db->run('SELECT * FROM airship_package_versions WHERE package = ? AND versionid > ?', $package['packageid'], $current); $version = new Version($package['current_version'] ?? '0.0.0'); $results = []; foreach ($available as $ver) { if ($version->isUpgrade($ver['version'])) { $results[] = $ver; } } return $results; }