From 9fddbeaa5473d43b6a92d3eb1dfb629c1336d6dc Mon Sep 17 00:00:00 2001 From: jld3103 Date: Fri, 24 Mar 2023 12:55:29 +0100 Subject: [PATCH] Use psalm 5 Signed-off-by: jld3103 --- build/psalm-baseline-ocp.xml | 86 +- build/psalm-baseline.xml | 2774 ++++++++++++++++++++------------ psalm-ocp.xml | 2 +- psalm.xml | 2 +- vendor-bin/psalm/composer.json | 2 +- vendor-bin/psalm/composer.lock | 435 ++--- 6 files changed, 2016 insertions(+), 1285 deletions(-) diff --git a/build/psalm-baseline-ocp.xml b/build/psalm-baseline-ocp.xml index e993e85e5a2..21a2ce27001 100644 --- a/build/psalm-baseline-ocp.xml +++ b/build/psalm-baseline-ocp.xml @@ -1,130 +1,152 @@ - + - + OC - - $this->request->server + + request->server]]> - - new RouteConfig($this->container, $router, $routes) + + container, $router, $routes)]]> - + \OC - + string - + $column - - $this->data + + data]]> - + array - + \OC - + \OC \OC - + + $jobList $jobList + + + \ArrayAccess + + - + \OC - + mixed + + + ArrayAccess + IteratorAggregate + + - + \OC - + \OC - + \OC - + \OC - + \OC - + \OC_App::getStorage($app) - + \OC + + + ArrayAccess + + - + \OC - + \OC - + \OC - + \OC - + \OC - + \OC + + + \Iterator + + - + \html_select_options($options, $selected, $params) \human_file_size($bytes) \image_path($app, $image) @@ -135,7 +157,7 @@ - + \OC \OC \OC diff --git a/build/psalm-baseline.xml b/build/psalm-baseline.xml index 05d05aff1b1..ac20e6ffbad 100644 --- a/build/psalm-baseline.xml +++ b/build/psalm-baseline.xml @@ -1,222 +1,348 @@ - + - + $calendarData - + $data - + $data - + array - + $vcardData - + $principalUri - + $data - + array + + + IEventListener + + - + !is_array($notification) + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + - - (int) $comment->getId() - + + getId()]]> + + + + + IEventListener + - + $baseuri - + $baseuri - + \OC\Files\Filesystem::logWarningWhenAddingStorageWrapper($previousLog) \OC\Files\Filesystem::logWarningWhenAddingStorageWrapper(false) - + $baseuri - - 'OCA\DAV\Connector\Sabre::addPlugin' + + - + dispatch - + $baseuri - + $baseuri - + $baseuri - + CalendarDeletionDefaultUpdaterListener::class - + setDateTime setDateTime - - $existingBirthday->VEVENT->DTSTART - $existingBirthday->VEVENT->SUMMARY - $newCalendarData->VEVENT->DTSTART - $newCalendarData->VEVENT->SUMMARY + + VEVENT->DTSTART]]> + VEVENT->SUMMARY]]> + VEVENT->DTSTART]]> + VEVENT->SUMMARY]]> - + $calendarData - - $this->objectData['calendardata'] + + objectData['calendardata']]]> - + + $calendarData $calendarData - + array array - + $objectData $uris + $uris - + + atomic(function () use ($calendarId, $syncToken, $syncLevel, $limit, $calendarType) { + // Current synctoken + $qb = $this->db->getQueryBuilder(); + $qb->select('synctoken') + ->from('calendars') + ->where( + $qb->expr()->eq('id', $qb->createNamedParameter($calendarId)) + ); + $stmt = $qb->executeQuery(); + $currentToken = $stmt->fetchOne(); + + if ($currentToken === false) { + return null; + } + + $result = [ + 'syncToken' => $currentToken, + 'added' => [], + 'modified' => [], + 'deleted' => [], + ]; + + if ($syncToken) { + $qb = $this->db->getQueryBuilder(); + + $qb->select('uri', 'operation') + ->from('calendarchanges') + ->where( + $qb->expr()->andX( + $qb->expr()->gte('synctoken', $qb->createNamedParameter($syncToken)), + $qb->expr()->lt('synctoken', $qb->createNamedParameter($currentToken)), + $qb->expr()->eq('calendarid', $qb->createNamedParameter($calendarId)), + $qb->expr()->eq('calendartype', $qb->createNamedParameter($calendarType)) + ) + )->orderBy('synctoken'); + if (is_int($limit) && $limit > 0) { + $qb->setMaxResults($limit); + } + + // Fetching all changes + $stmt = $qb->executeQuery(); + $changes = []; + + // This loop ensures that any duplicates are overwritten, only the + // last change on a node is relevant. + while ($row = $stmt->fetch()) { + $changes[$row['uri']] = $row['operation']; + } + $stmt->closeCursor(); + + foreach ($changes as $uri => $operation) { + switch ($operation) { + case 1: + $result['added'][] = $uri; + break; + case 2: + $result['modified'][] = $uri; + break; + case 3: + $result['deleted'][] = $uri; + break; + } + } + } else { + // No synctoken supplied, this is the initial sync. + $qb = $this->db->getQueryBuilder(); + $qb->select('uri') + ->from('calendarobjects') + ->where( + $qb->expr()->andX( + $qb->expr()->eq('calendarid', $qb->createNamedParameter($calendarId)), + $qb->expr()->eq('calendartype', $qb->createNamedParameter($calendarType)) + ) + ); + $stmt = $qb->executeQuery(); + $result['added'] = $stmt->fetchAll(\PDO::FETCH_COLUMN); + $stmt->closeCursor(); + } + return $result; + }, $this->db)]]> null - + INode - + INode - - $calendarPlugin->getCalendarInCalendarHome($this->principalInfo['uri'], $calendarUri) + + getCalendarInCalendarHome($this->principalInfo['uri'], $calendarUri)]]> - + calendarSearch - + $principal - + string|null - + $principalInfo - + $paths - + hasTime isFloating isFloating - + getDateTime getDateTime isFloating - + $provider::NOTIFICATION_TYPE + + + $diff === false + + - - getDateInterval + getDateTime getDateTime - - $valarm->parent->UID + + parent->UID]]> - + array - + $principals - + string[] - + null null + + + recipientName]]> + + + + + + + + + getNormalizedValue + getNormalizedValue + + - - [$aclPlugin, 'propFind'] - [$aclPlugin, 'propFind'] + + + - + get getChildren - + getDateTime hasTime isFloating @@ -225,186 +351,206 @@ - + bool - - + + $property, + 'parameter' => $parameter, + ]]]> + + string - - !is_array($newProps['filters']['comps']) - !is_array($newProps['filters']['params']) - !is_array($newProps['filters']['props']) + + + + + + + - + $webcalData - - $this->getKey() - $this->getKey() - + + getKey()]]> + getKey()]]> + - + $principal - + false - - $addressBooks[$row['id']][$readOnlyPropertyName] === 0 + + - + bool - + string - + $type - + string|null - - $this->principalUri - $this->principalUri + + principalUri]]> + principalUri]]> - + $groups - + int - + null - - $args['datetime'] + 200 + + + - + \Sabre\HTTP\toDate($value) + + + !is_string($name) + + - + CommentsEntityEvent::EVENT_ENTITY - + \Sabre\DAV\INode[] int - - $this->entityTypeCollections + + entityTypeCollections]]> null - + dispatch - + bool - + tryTokenLogin - + $nodes - - $this->dirContent + + dirContent]]> - + \Sabre\DAV\INode[] - + null null null - + $fullSourcePath - + $data - - bool - - + 0 200 - - + + + bool + + $resultFileIds - - new PreconditionFailed('Cannot filter by non-existing tag', 0, $e) + + - + \OCA\Circles\Api\v1\Circles - + getById getPath - + int integer - - $this->info->getId() - $this->info->getId() + + info->getId()]]> + info->getId()]]> - + array - + $principals - + string[] - + + $results + + + circleToPrincipal($decodedName) + ?: $this->circleToPrincipal($name)]]> null null null @@ -413,65 +559,65 @@ null null - + \OCA\Circles\Api\v1\Circles \OCA\Circles\Api\v1\Circles - + getPath getPath - + new \OCA\DAV\Connector\Sabre\QuotaPlugin($view, true) - + $shareType - + - - $share->getShareType() - + + getShareType()]]> + - + null - + getId - - $vEvent->DTSTAMP + + DTSTAMP]]> - + $whereValues - + array string - + $principals - + string[] - + $members - + null null null @@ -482,73 +628,145 @@ - + array - + null - - $this->enablePropfindDepthInfinityf + + enablePropfindDepthInfinityf]]> - - - $body - - - + $value - + ?string - + $search - - $operator->arguments[0]->name + + getTimestamp() !== false]]> + + + arguments[0]->name]]> + arguments[0]->name]]> - - $this->backend->getArbiterPath() + + backend->getArbiterPath()]]> - + bool - - $this->usersToDelete - $this->usersToDelete + + usersToDelete]]> + usersToDelete]]> + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + - + $arguments - + $arguments + + + getCursor()]]> + + - - $this->l10n->l('date', $startDateTime, ['width' => 'medium']) + + l10n->l('date', $startDateTime, ['width' => 'medium'])]]> - - - $this->l10n->l('date', $startDateTime, ['width' => 'medium']) + + getCursor()]]> + + + ['CN'], + 'ORGANIZER' => ['CN'], + ]]]> + + + l10n->l('date', $startDateTime, ['width' => 'medium'])]]> - + string - + getDateTime getDateTime hasTime @@ -557,106 +775,116 @@ - + + getCursor()]]> + + getDateTime getDateTime hasTime - - 'OCA\DAV\Connector\Sabre::addPlugin' - 'OCA\DAV\Connector\Sabre::authInit' + + + - + dispatch dispatch - + $tagId $tagName - + $objectName - + SystemTagsEntityEvent::EVENT_ENTITY - + dispatch - + $members - + false - - $this->currentStream + + currentStream]]> - + $context - + array - + array_values + + + getId + getId + getId + getInternalPath + getNode + getSize + + - - $this->scanFolder($output, '/' . $user) + + scanFolder($output, '/' . $user)]]> - - $userSession + $userSession - - get_class($res) === 'OpenSSLAsymmetricKey' + + - - $position + $position - + time() time() time() - + throw $exception; - - new Exceptions\PrivateKeyMissingException('please try to log-out and log-in again', 0) + + - - $userSession + $userSession - + $id $id $id @@ -664,97 +892,117 @@ $id $id $remoteId - - + + + $id === null || + $token === null || + $shareWith === null || + $permission === null $permission === null $remoteId === null - + $shareId $shareId $shareId $shareId - (int)$data['id'] - + + + + + + IEventListener + - + bool bool bool - - $shareId - - - string - - + $id $id $id $id - (int)$share['id'] + + + $shareId + + + string + + + + + + IEventListener + + - + $files_list - - $this->fileEncrypted[$fileId] + + fileEncrypted[$fileId]]]> - - $id - - - $this->fileIsEncrypted - $this->fileIsEncrypted - $this->fileIsEncrypted - $this->fileIsEncrypted - $this->fileIsEncrypted - $this->fileIsEncrypted - $this->fileIsEncrypted + + fileIsEncrypted]]> + fileIsEncrypted]]> + fileIsEncrypted]]> + fileIsEncrypted]]> + fileIsEncrypted]]> + fileIsEncrypted]]> + fileIsEncrypted]]> + fileIsEncrypted]]> + fileIsEncrypted]]> + fileIsEncrypted]]> + fileIsEncrypted]]> + fileIsEncrypted]]> + fileIsEncrypted]]> + fileIsEncrypted]]> - + null - + null null - + $templateId - + getTemplates open - + $fileId - - + + getById getRelativePath getRelativePath - + $file $i $i @@ -771,509 +1019,745 @@ - + $legacyEvent + + IEventListener + + + + + IEventListener + + + + + IEventListener + - - $encryptedFiles - - + empty($encryptedFiles) - + isReadyForUser - - self::class . '::' . $eventName + + - + dispatch - + $this - - - new $objectClass($objectStore) - + + + getCode()]]> + (int)$status + - + getUniqueStorages - - - addServiceListener - addServiceListener - + + + + + + opendir + - + put + + IteratorDirectory::wrap($dirStream) + + + opendir + + + + + IteratorDirectory::wrap($names) + + + opendir + + + getCode()]]> + getCode()]]> + getCode()]]> + getCode()]]> + getCode()]]> + getCode()]]> + getCode()]]> + - - $object->lastModified + + lastModified]]> - + filetype fopen + + IteratorDirectory::wrap($files) + + + opendir + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + - + login - + decrypt encrypt setIV setIV - + test - - 'OCA\\Files_External::loadAdditionalBackends' + + - + dispatch - - - addServiceListener - addServiceListener - addServiceListener - addServiceListener - addServiceListener - addServiceListener - - - + + (int)$code + (int)$code + + \OCA\Circles\Api\v1\Circles \OCA\Circles\Api\v1\Circles - - $this->getRoomShareHelper() - $this->getRoomShareHelper() - $this->getRoomShareHelper() + + getRoomShareHelper()]]> + getRoomShareHelper()]]> + getRoomShareHelper()]]> \OCA\Talk\Share\Helper\ShareAPIController - + $files_list - + $cacheData - + $legacyEvent + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + - - $exception->getMessage() + + getMessage()]]> - + array_values - + $itemSource $itemSource - - + + $shareWith - + fetchRow - + bool - - $this->sourceRootInfo + + sourceRootInfo]]> - + ICacheEntry - + new FailedCache() - - $this->sourceRootInfo + + sourceRootInfo]]> - + moveMount + + + + + + + + + IEventListener + + - + int - - $this->data->getId() + + data->getId()]]> - + $entry - + ITrash - + getChild - + null - + INode - + $entry - + ITrash - - 'OCA\Files_Trashbin::moveToTrash' + + - - $this->mountPoint + + mountPoint]]> - + dispatch - - $trashFiles + $trashFiles - + null - + $file getById - + false - + $timestamp + + $timestamp - + $this $this + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + - + getChild - + null - + getChild + + + instanceOfStorage('\OC\Files\ObjectStore\ObjectStoreStorage')]]> + + - - $this->retries + 1 - + + retries + 1]]> + - - $this->request->server + + request->server]]> - + $groupid === null $groupid === null + + + IEventListener + + + + + Response + + - + AppPasswordCreatedActivityListener::class - + getSettingsManager - + ignoreNextcloudRequirementForApp - + IDBConnection::CHECK_MISSING_COLUMNS_EVENT IDBConnection::CHECK_MISSING_INDEXES_EVENT IDBConnection::CHECK_MISSING_PRIMARY_KEYS_EVENT - + dispatch dispatch dispatch - - [$user->getEMailAddress() => $user->getDisplayName()] + + getEMailAddress() => $user->getDisplayName()]]]> + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + - + isReady - + null - - $share->getId() - (int)$data['id'] - + + getId()]]> + + - - $event->getObjectId() - $event->getObjectId() - + + getObjectId()]]> + getObjectId()]]> + + + + + TIME_SENSITIVE + + + + + IEventListener + + + + + IEventListener + + + + + getRgb())]]> + + + array{0: int, 1: int, 2: int} + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + - + false - - $this->users + + users]]> - + $ln + 1 - + $this - + $uuid $values - + string[] + + getCode()]]> + - - 'OCA\\User_LDAP\\User\\User::postLDAPBackendAdded' + + - + dispatch - + + $subj + + + default: + $subj = $key; + break; + - + $groupID - + $gid - + $i - + null - + isset($qb) - + isset($qb) - + protected function handleRequest($id, $method, $parameters, $passOnWhen = false) { - + public function setLdapAccess(Access $access) { - - $this->avatarImage + + avatarImage]]> - - $this->refreshedFeatures + + refreshedFeatures]]> - + null + + 0)]]> + - + string|false - + $limit $offset - + null + + 0)]]> + is_string($dn) + - + $uid + + + $possibleAttrs[$i] + + - + registerProvider + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + - + null - - $this->size + + size]]> - + $size - - $this->size + + size]]> - + string + + + storage]]> + + - + $decodedValue[1] $decodedValue[1] $decodedValue[1] $decodedValue[1] - + - + $hour1 $minute1 - - ['app' => Application::APP_ID, 'class' => get_class($subject)] + + Application::APP_ID, 'class' => get_class($subject)]]]> - + string - + $uid + + + IEventListener + + - + + $missingCheck IManager::EVENT_NAME_REG_CHECK IManager::EVENT_NAME_REG_ENTITY IManager::EVENT_NAME_REG_OPERATION - + $result - + $result - + bool - - $missingCheck - - + dispatch dispatch dispatch - + getAllConfiguredScopesForOperation getChecks getOperations @@ -1281,805 +1765,919 @@ isUserScopeEnabled - - - addServiceListener - addServiceListener - addServiceListener - addServiceListener - addServiceListener - addServiceListener - addServiceListener - addServiceListener - addServiceListener - addServiceListener - - - + $arguments - + $arguments - + $arguments - + $result === false - + array + + + $result === true + + - + 0 1 - - $this->appConfig->getValues($app, false) + + appConfig->getValues($app, false)]]> - + getFilteredValues - + IDBConnection::ADD_MISSING_COLUMNS_EVENT - + dispatch - + IDBConnection::ADD_MISSING_INDEXES_EVENT - + dispatch - + IDBConnection::ADD_MISSING_PRIMARY_KEYS_EVENT - + dispatch - + 0 1 - + null - + [0] - + string[] - + $levelNum - + - - $this->timeFactory->getTime() + + timeFactory->getTime()]]> - + getAllMappings updateFilecache - + getAllAliases - + section section - + [] - + !is_string($stateToken) - + searchCollections + + + getCode()]]> + + - + null - + findMatchingRoute + + + IEventListener + + - - $this->request->server + + request->server]]> - + + $this $this + create('core_ajax_update', '/core/ajax/update.php')]]> - + getIcon - - $this->memoryCache - $this->memoryCache + + memoryCache]]> - + $restrictions - - 'OC\AccountManager::userUpdated' + + - + dispatch - + $affectedUser - - $this->filterClasses - $this->providerClasses - $this->settingsClasses + + filterClasses]]> + providerClasses]]> + settingsClasses]]> - - !is_string($currentUserId) && $currentUserId !== null + + - + $key + + !is_array($userIds) + - + ManagerEvent::EVENT_APP_DISABLE ManagerEvent::EVENT_APP_ENABLE ManagerEvent::EVENT_APP_ENABLE_FOR_GROUPS - + array array - + dispatch dispatch dispatch - + fetch - + bool - + version_compare($first, $second, $operator) - + $array[$element][] $array[$element][] - + (string)$xml - + array - + $values - + $default - - $this->bootedApps + + bootedApps]]> - + getName - + boolean|null - - $this->server + + server]]> - + \OCP\IServerContainer mixed - + getAppDataDir - - $throwable->getCode() - - - $this->request->method + + request->method]]> - + null - + @readfile($path) http_response_code() - + bool int - - $host + + \ArrayAccess + + $name $remoteAddress - $this->getOverwriteHost() - $this->method + getOverwriteHost()]]> + method]]> $uri - isset($this->cookies[$key]) ? $this->cookies[$key] : null - isset($this->env[$key]) ? $this->env[$key] : null - isset($this->files[$key]) ? $this->files[$key] : null + cookies[$key]) ? $this->cookies[$key] : null]]> + env[$key]) ? $this->env[$key] : null]]> + files[$key]) ? $this->files[$key] : null]]> - + \is_array($params) - + \Sabre\HTTP\decodePath($pathInfo) - + log - + TemplateResponse::EVENT_LOAD_ADDITIONAL_SCRIPTS TemplateResponse::EVENT_LOAD_ADDITIONAL_SCRIPTS_LOGGEDIN - + dispatch dispatch - + setOCSVersion - - $this->request->server - $this->request->server + + request->server]]> + request->server]]> - - $this->request->server + + request->server]]> - + \OCA\Talk\Controller\PageController - - $action['url-postfix'] + + - + $default + + + ArrayAccess + + + getCode()]]> + + - - $this->tar->extractInString($path) + + tar->extractInString($path)]]> + + + IEventListener + + + + + IEventListener + + - + $trySession + + + DO_NOT_REMEMBER + PERMANENT_TOKEN + REMEMBER + TEMPORARY_TOKEN + WIPE_TOKEN + + - + + getExpires + getLastCheck + getLoginName + getName + getPassword + getRemember + getScope + setExpires + setLastCheck + setName + setPassword + setPasswordInvalid + setScope + setScope + setToken + setType + - - + + $row['provider_id'], + 'uid' => $row['uid'], + 'enabled' => 1 === (int) $row['enabled'], + ]; + }, $rows)]]> + + int[] - + IProvider::EVENT_FAILED IProvider::EVENT_SUCCESS - + dispatch dispatch - - $this->providers + + providers]]> - - $this->providers + + providers]]> [] - - $this->providers + + providers]]> - + IProvider[] - - $this->providers + + providers]]> - - $provider['provider_id'] + + - + + $jobList $jobList + + + \ArrayAccess + + - + bool|mixed bool|mixed - - - addServiceListener - addServiceListener - addServiceListener - - - - - addServiceListener - + + + container->get($registration->getService()); + } catch (Throwable $e) { + $this->logger->error('Could not load calendar provider ' . $registration->getService() . ': ' . $e->getMessage(), [ + 'exception' => $e, + ]); + return []; + } + + return $provider->getCalendars($principalUri, $calendarUris); + }, $context->getCalendarProviders())]]> + - + $serializedCallable - + + [LaravelClosure::class, OpisClosure::class] + + $serializedCallable - + $serializedCommand - + \DateTime|null - + $timestamp - + !is_array($mentions[0]) - + public function getForObjectSince( + + (string)$id + - - $this->delete($key) - $this->set($key, $value) + + delete($key)]]> + set($key, $value)]]> - + $CONFIG $CONFIG - + ConsoleEvent::EVENT_RUN - - $this->request->server + + request->server]]> - + dispatch - + + $searchOptions + + IAddressBook array bool - + null null null null null - + $addressBook $addressBook - - $builder->execute() + + execute()]]> - + int - + getParams + + + - + getParams - - $this->adapter->lastInsertId($seqName) + + $params + + + + + + + adapter->lastInsertId($seqName)]]> - + string - + $seqName $statement + + + getCode())]]> + + + 0 + + - + $offset $offset - + $key[0] - - $this->functionBuilder->lower($x) + + functionBuilder->lower($x)]]> - + $y $y - + - + getParams + + + - + string - + $alias - + $groupBys $selects - + string - + $string - - + + l($type, $timestamp, [ + 'width' => $format, + ])]]> + + public function formatDateSpan($timestamp, $baseTimestamp = null, \OCP\IL10N $l = null) { public function formatTimeSpan($timestamp, $baseTimestamp = null, \OCP\IL10N $l = null) { - - + + l($type, $timestamp, [ + 'width' => $format, + ])]]> + + string - + $timestamp - + float - + + microtime(true) + + stopQuery - - microtime(true) - - - $query->execute() + + execute()]]> - + TemplateResponse int - + + $template + $template $template $template - + getShareForToken - + deleteUserKey - + null null null - + bool - + dispatch - + $eventName - + + $listener + + $eventName - + dispatch - + $providerId - + $parentData - + array - - $path + $path \OC_Util::normalizeUnicode($path) - + null null - + $searchQuery - + [] - + getIncomplete insert put - + $data - + + $file + $file + - + + self::SCAN_RECURSIVE_INCOMPLETE + + $existingChildren - + array[] - - self::SCAN_RECURSIVE_INCOMPLETE - - + array - - self::getGlobalCache()->getStorageInfo($storageId) + + getStorageInfo($storageId)]]> - - $this->cache instanceof Cache + + cache instanceof Cache]]> - + + array array - + $searchQuery - + $user - - get_class($provider) !== 'OCA\Files_Sharing\MountProvider' + + - - get_class($provider) === 'OCA\Files_Sharing\MountProvider' + + - + remoteStorageMounts removeUserStorageMount - + array + + + \ArrayAccess + + - + addStorageWrapper - - $exception->getCode() - - + wrap - + \OCP\Files\Mount\IMountPoint - + null - - $this->view->hash($type, $this->path, $raw) + + view->hash($type, $this->path, $raw)]]> - - string + string - + $node - - '\OCP\Files::postCopy' - '\OCP\Files::postCreate' - '\OCP\Files::postDelete' - '\OCP\Files::postRename' - '\OCP\Files::postTouch' - '\OCP\Files::postWrite' - '\OCP\Files::preCopy' - '\OCP\Files::preCreate' - '\OCP\Files::preDelete' - '\OCP\Files::preRename' - '\OCP\Files::preTouch' - '\OCP\Files::preWrite' - '\OCP\Files::read' + + + + + + + + + + + + + + - + dispatch dispatch dispatch @@ -2094,7 +2692,7 @@ dispatch dispatch - + emit emit emit @@ -2111,344 +2709,317 @@ - - $this->__call(__FUNCTION__, func_get_args()) + + __call(__FUNCTION__, func_get_args())]]> - + Node - - '\OCP\Files::' . $hook + + - - + + FileInfo + + getChecksum - - + + fileInfo]]> + + $type - + dispatch - - $this->fileInfo + + fileInfo]]> + fileInfo]]> - + Node - + \OC\User\User - - $this->user + + user]]> - + remove - + false|string - + $cacheData - + $source - + + ClientResolver::_default_signature_provider() ClientResolver::_default_signature_provider() - + ClientResolver::_default_signature_provider() - - \Aws\or_chain([self::class, 'legacySignatureProvider'], ClientResolver::_default_signature_provider()) + + Promise\promise_for( + new Credentials($key, $secret) + ) + - + upload - + \Aws\serialize($command) - + null - + string - + string|false - + !$permissions - $this->copyFromStorage($sourceStorage, $sourceInternalPath . '/' . $file, $targetInternalPath . '/' . $file) + copyFromStorage($sourceStorage, $sourceInternalPath . '/' . $file, $targetInternalPath . '/' . $file)]]> - - $storage->cache - $storage->cache - $storage->propagator - $storage->propagator - $storage->scanner - $storage->scanner - $storage->updater - $storage->updater + + cache]]> + cache]]> + propagator]]> + propagator]]> + scanner]]> + scanner]]> + updater]]> + updater]]> - + ArrayCache ArrayCache - + getETag - - $response->getBody() + + getBody()]]> + IteratorDirectory::wrap($content) - + fopen + opendir - + null - + new FailedCache() true - + getCache verifyPath - - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - $this->e->getCode() - - + $file - + $result - + $result - + rename - + $space === false || is_null($space) is_null($space) - + $stat === false - - $storage->scanner - $storage->scanner + + scanner]]> + scanner]]> - + \Normalizer::FORM_C \Normalizer::FORM_C \Normalizer::FORM_D - - - $this->namesCache - $this->namesCache - $this->namesCache - $this->namesCache - $this->namesCache - $this->namesCache - $this->namesCache - $this->namesCache - $this->namesCache - $this->namesCache - $this->namesCache - $this->namesCache - $this->namesCache + + + namesCache]]> + namesCache]]> + namesCache]]> + namesCache]]> + namesCache]]> + namesCache]]> + namesCache]]> + namesCache]]> + namesCache]]> + namesCache]]> + namesCache]]> + namesCache]]> + namesCache]]> + namesCache]]> + namesCache]]> + namesCache]]> + namesCache]]> - + false - + $result $result - $this->copyFromStorage($sourceStorage, $sourceInternalPath . '/' . $file, $targetInternalPath . '/' . $file, false, $isRename) + copyFromStorage($sourceStorage, $sourceInternalPath . '/' . $file, $targetInternalPath . '/' . $file, false, $isRename)]]> - + $newUnencryptedSize $result - $this->storage->file_get_contents($path) + storage->file_get_contents($path)]]> - + bool int string - + $lastChunkPos - $newUnencryptedSize $size - $size - $sourceStorage->filemtime($sourceInternalPath) - - $this->getWrapperStorage()->filetype($this->getUnjailedPath($path)) + + getWrapperStorage()->filetype($this->getUnjailedPath($path))]]> - + bool - - - $free - - - - $this->getWrapperStorage()->test() + + getWrapperStorage()->test()]]> - + true - + stream_close stream_flush - + !$isDefaultTemplates - + $mimetype - - $update->execute() + + execute()]]> - + int - + $mtime + + acquireLock + changeLock + releaseLock + - - is_null($this->getContent()) + + getContent())]]> - - $this->groupCache[$gid]['displayname'] + + groupCache[$gid]['displayname']]]> - - $this->groupCache - $this->groupCache - $this->groupCache + + groupCache]]> + groupCache]]> + groupCache]]> + + + IEventListener + + - - IGroup::class . '::postAddUser' - IGroup::class . '::postDelete' - IGroup::class . '::postRemoveUser' - IGroup::class . '::preAddUser' - IGroup::class . '::preDelete' - IGroup::class . '::preRemoveUser' + + + + + + + bool - + $hide - + $user - - $this->emitter - $this->emitter - $this->emitter - $this->emitter - $this->emitter - $this->emitter + + emitter]]> + emitter]]> + emitter]]> - + dispatch dispatch dispatch @@ -2456,7 +3027,7 @@ dispatch dispatch - + addToGroup countUsersInGroup deleteGroup @@ -2464,170 +3035,225 @@ - + createGroup getGroupDetails isAdmin - + string|resource - + + stream ? + $this->response->getBody()->detach(): + $this->response->getBody()->getContents()]]> + - + false - + false false - - $app['path'] - $app['path'] + + + - + null - - $x509->getDN(X509::DN_OPENSSL)['CN'] - $x509->getDN(X509::DN_OPENSSL)['CN'] - $x509->getDN(true)['CN'] + + getDN(X509::DN_OPENSSL)['CN']]]> + getDN(X509::DN_OPENSSL)['CN']]]> + getDN(true)['CN']]]> - + getAllAliases getOnlyDefaultAliases + + + ExcludeFileByNameFilterIterator + + + + + ExcludeFoldersByPathFilterIterator + + - + null|string - + array|mixed - + $matches[1] - - $data - - + get - + [] - + getIncomplete - + + -1, + 'parent' => -1, + 'name' => '', + 'path' => '', + 'size' => '0', + 'mtime' => time(), + 'storage_mtime' => time(), + 'etag' => '', + 'mimetype' => FileInfo::MIMETYPE_FOLDER, + 'mimepart' => 'httpd', + 'permissions' => Constants::PERMISSION_READ + ])]]> + - + getOwner getPermissions - + new IteratorDirectory([]) new NullCache() - + getCache opendir - + null null - + new IteratorDirectory([]) - + $callback() - + $sessionCallback - - $request + $request - + $limit === null - - is_string($request->getMethod()) + + getMethod())]]> - + $dummy - + + syslogId, + 'MESSAGE=' . $this->logDetailsAsJSON($app, $message, $level))]]> + - - apcu_add($this->getPrefix() . $key, $value, $ttl) + + \APCUIterator + + + getPrefix() . $key, $value, $ttl)]]> - + bool - + mixed mixed mixed mixed + + \ArrayAccess + + + + + \ArrayAccess + - + exec exec + + + $exifData + + + + + - + $id - + [] - + $maxPreviewImage + $semId IPreview::EVENT - + + $sem + + + false|resource + + ISimpleFile - + dispatch - + height height preciseResizeCopy @@ -2638,118 +3264,123 @@ - + $thumbnail === false ? null: $thumbnail - + ?IImage - + \RedisCluster::OPT_SLAVE_FAILOVER - + - + array - - $request->getBody() + + getBody()]]> - + bool|string - + $response - + false - + $arguments - + $arguments - + $counter % 100 === 0 - - $this->userToNotify + + userToNotify]]> - + $out - + $out - + $out - + \OC_APP - + string - - $this->collectionName + + collectionName]]> - + $provider instanceof Provider - - $data->getId() - $data->getMtime() - $data->getPermissions() - $this->hasPreview($data) + + getId()]]> + getMtime()]]> + getPermissions()]]> + hasPreview($data)]]> - + null - - $this->request->server + + request->server]]> + + + value)]]> + + - - $qb->execute() - $qb->execute() + + execute()]]> + execute()]]> - + int int - + decrypt encrypt setIV @@ -2759,85 +3390,99 @@ - + \OCP\Calendar\Resource\IManager \OCP\Calendar\Room\IManager \OCP\Files\Folder|null - + new GenericEvent($user) - + \OC\OCSClient - - $this->hasNoAppContainer + + hasNoAppContainer]]> + + appContainers[$namespace];]]> + + + + + \ArrayAccess + - + $value - + $value + + + \ArrayAccess + + - - $content !== '' - $type === 'pdo' + + + - + $vendor - - $this->dbprettyname - $this->dbprettyname - $this->dbprettyname - $this->dbprettyname + + dbPort)]]> + + + dbprettyname]]> + dbprettyname]]> + dbprettyname]]> + dbprettyname]]> - + !self::isResharingAllowed() - + getParents getParents - - $share->getId() - $share->getId() - (int)$data['id'] - - + + getId()]]> + getId()]]> + + + set - + getParent - - 'OCP\Share::postAcceptShare' - 'OCP\Share::postShare' - 'OCP\Share::postUnshare' - 'OCP\Share::postUnshareFromSelf' - 'OCP\Share::preShare' - 'OCP\Share::preUnshare' - - + $id - - + + + + + + + + dispatch dispatch dispatch @@ -2846,27 +3491,27 @@ dispatch update - + \OCA\Circles\Api\v1\Circles - + getChildren - + FederatedShareProvider ShareByMailProvider - + $provider $provider - $this->shareByCircleProvider + shareByCircleProvider]]> - + getProviderForType - + null null null @@ -2874,20 +3519,20 @@ null null - + $shareProviderClass - + \OCA\Circles\ShareByCircleProvider - + RoomShareProvider \OCA\Circles\ShareByCircleProvider \OCA\Talk\Share\RoomShareProvider private $roomShareProvider = null; private $shareByCircleProvider = null; - + getLazyRootFolder getLazyRootFolder getLazyRootFolder @@ -2895,262 +3540,317 @@ - + $stream - + get - + listen listen - + getSupportedApps - + ManagerEvent::EVENT_CREATE ManagerEvent::EVENT_DELETE ManagerEvent::EVENT_UPDATE - + dispatch dispatch dispatch - + MapperEvent::EVENT_ASSIGN MapperEvent::EVENT_UNASSIGN - + dispatch dispatch - + \OCP\ITags - + null - + $from $names - + $tag - + false false - + $style $style - + null null - + false - + $script $script - + string string - + $appName $appName - + getInitialStates - + $path - + false + + + IEventListener + + - + IUser|false - + $backend - + createUser getUsersForUserValueCaseInsensitive - + boolean|null - - IUser::class . '::firstLogin' + + - - $request->server - $request->server + + server]]> + server]]> - + dispatch - - IUser::class . '::changeUser' - IUser::class . '::postDelete' - IUser::class . '::postSetPassword' - IUser::class . '::preDelete' - IUser::class . '::preSetPassword' + + + + + + - + dispatch dispatch dispatch dispatch dispatch + + emit + emit + emit + emit + emit + - + int - + null - + $groupsList ManagerEvent::EVENT_APP_UPDATE - - $dir['path'] - $dir['url'] + + + - + null - + null - + dispatch - + $appId === null $appId === null - + \OC\InsufficientStorageException - + $getType === self::ZIP_DIR $getType === self::ZIP_DIR - + get get - - $matches[1][$last_match][0] - - + + $matches[0][$last_match] + $matches[1][$last_match] + + $path - - count($obd_values) > 0 - + + getQuota + + + + + bool|string + - + \Test\Util\User\Dummy + + + $version + $version + + + void + + - - $this->request->server + + request->server]]> - - new RouteConfig($this->container, $router, $routes) + + container, $router, $routes)]]> - + string - + $column - - $this->data + + data]]> - + array + + + EVENT_FAILED + EVENT_SUCCESS + + - + + $jobList $jobList + + + \ArrayAccess + + - + mixed + + + ArrayAccess + IteratorAggregate + + - + \OC_App::getStorage($app) + + + ArrayAccess + + - + array + + + \Iterator + + diff --git a/psalm-ocp.xml b/psalm-ocp.xml index 47804e30fde..e5cef0a28b0 100644 --- a/psalm-ocp.xml +++ b/psalm-ocp.xml @@ -6,7 +6,7 @@ xmlns="https://getpsalm.org/schema/config" xsi:schemaLocation="https://getpsalm.org/schema/config" errorBaseline="build/psalm-baseline-ocp.xml" - findUnusedBaselineEntry="true" + findUnusedBaselineEntry="false" findUnusedCode="false" > diff --git a/psalm.xml b/psalm.xml index cd50a2722da..dbe6d1f29df 100644 --- a/psalm.xml +++ b/psalm.xml @@ -6,7 +6,7 @@ xmlns="https://getpsalm.org/schema/config" xsi:schemaLocation="https://getpsalm.org/schema/config" errorBaseline="build/psalm-baseline.xml" - findUnusedBaselineEntry="true" + findUnusedBaselineEntry="false" findUnusedCode="false" > diff --git a/vendor-bin/psalm/composer.json b/vendor-bin/psalm/composer.json index 4274f9323ab..b342aeedd91 100644 --- a/vendor-bin/psalm/composer.json +++ b/vendor-bin/psalm/composer.json @@ -1,6 +1,6 @@ { "require": { - "vimeo/psalm": "^4.30" + "vimeo/psalm": "^5.9" }, "config": { "platform": { diff --git a/vendor-bin/psalm/composer.lock b/vendor-bin/psalm/composer.lock index 617f6cf5075..1794df5aa8d 100644 --- a/vendor-bin/psalm/composer.lock +++ b/vendor-bin/psalm/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "74200460a7dbe18316eb477367d697a8", + "content-hash": "3c6bc45f8cc92ede530a2a5c08b4ad70", "packages": [ { "name": "amphp/amp", @@ -172,79 +172,6 @@ ], "time": "2021-03-30T17:13:30+00:00" }, - { - "name": "composer/package-versions-deprecated", - "version": "1.11.99.5", - "source": { - "type": "git", - "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d", - "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1.0 || ^2.0", - "php": "^7 || ^8" - }, - "replace": { - "ocramius/package-versions": "1.11.99" - }, - "require-dev": { - "composer/composer": "^1.9.3 || ^2.0@dev", - "ext-zip": "^1.13", - "phpunit/phpunit": "^6.5 || ^7" - }, - "type": "composer-plugin", - "extra": { - "class": "PackageVersions\\Installer", - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "PackageVersions\\": "src/PackageVersions" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" - } - ], - "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", - "support": { - "issues": "https://github.com/composer/package-versions-deprecated/issues", - "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-01-17T14:14:24+00:00" - }, { "name": "composer/pcre", "version": "3.0.2", @@ -601,6 +528,67 @@ }, "time": "2022-03-02T22:36:06+00:00" }, + { + "name": "fidry/cpu-core-counter", + "version": "0.5.1", + "source": { + "type": "git", + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/b58e5a3933e541dc286cc91fc4f3898bbc6f1623", + "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "fidry/makefile": "^0.2.0", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^1.9.2", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-phpunit": "^1.2.2", + "phpstan/phpstan-strict-rules": "^1.4.4", + "phpunit/phpunit": "^9.5.26 || ^8.5.31", + "theofidry/php-cs-fixer-config": "^1.0", + "webmozarts/strict-phpunit": "^7.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "description": "Tiny utility to get the number of CPU cores.", + "keywords": [ + "CPU", + "core" + ], + "support": { + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/0.5.1" + }, + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "time": "2022-12-24T12:35:10+00:00" + }, { "name": "netresearch/jsonmapper", "version": "v4.0.0", @@ -708,59 +696,6 @@ }, "time": "2022-09-04T07:30:47+00:00" }, - { - "name": "openlss/lib-array2xml", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/nullivex/lib-array2xml.git", - "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", - "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "type": "library", - "autoload": { - "psr-0": { - "LSS": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Bryan Tong", - "email": "bryan@nullivex.com", - "homepage": "https://www.nullivex.com" - }, - { - "name": "Tony Butler", - "email": "spudz76@gmail.com", - "homepage": "https://www.nullivex.com" - } - ], - "description": "Array2XML conversion library credit to lalit.org", - "homepage": "https://www.nullivex.com", - "keywords": [ - "array", - "array conversion", - "xml", - "xml conversion" - ], - "support": { - "issues": "https://github.com/nullivex/lib-array2xml/issues", - "source": "https://github.com/nullivex/lib-array2xml/tree/master" - }, - "time": "2019-03-29T20:06:56+00:00" - }, { "name": "phpdocumentor/reflection-common", "version": "2.2.0", @@ -1090,6 +1025,69 @@ ], "time": "2020-10-26T13:10:38+00:00" }, + { + "name": "spatie/array-to-xml", + "version": "3.1.5", + "source": { + "type": "git", + "url": "https://github.com/spatie/array-to-xml.git", + "reference": "13f76acef5362d15c71ae1ac6350cc3df5e25e43" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/13f76acef5362d15c71ae1ac6350cc3df5e25e43", + "reference": "13f76acef5362d15c71ae1ac6350cc3df5e25e43", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.2", + "pestphp/pest": "^1.21", + "spatie/pest-plugin-snapshots": "^1.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\ArrayToXml\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://freek.dev", + "role": "Developer" + } + ], + "description": "Convert an array to xml", + "homepage": "https://github.com/spatie/array-to-xml", + "keywords": [ + "array", + "convert", + "xml" + ], + "support": { + "source": "https://github.com/spatie/array-to-xml/tree/3.1.5" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-12-24T13:43:51+00:00" + }, { "name": "symfony/console", "version": "v5.4.15", @@ -1256,6 +1254,70 @@ ], "time": "2022-01-02T09:53:40+00:00" }, + { + "name": "symfony/filesystem", + "version": "v5.4.21", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "e75960b1bbfd2b8c9e483e0d74811d555ca3de9f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/e75960b1bbfd2b8c9e483e0d74811d555ca3de9f", + "reference": "e75960b1bbfd2b8c9e483e0d74811d555ca3de9f", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v5.4.21" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-02-14T08:03:56+00:00" + }, { "name": "symfony/polyfill-ctype", "version": "v1.26.0", @@ -1919,24 +1981,24 @@ }, { "name": "vimeo/psalm", - "version": "4.30.0", + "version": "5.9.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69" + "reference": "8b9ad1eb9e8b7d3101f949291da2b9f7767cd163" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/d0bc6e25d89f649e4f36a534f330f8bb4643dd69", - "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/8b9ad1eb9e8b7d3101f949291da2b9f7767cd163", + "reference": "8b9ad1eb9e8b7d3101f949291da2b9f7767cd163", "shasum": "" }, "require": { "amphp/amp": "^2.4.2", "amphp/byte-stream": "^1.5", - "composer/package-versions-deprecated": "^1.8.0", + "composer-runtime-api": "^2", "composer/semver": "^1.4 || ^2.0 || ^3.0", - "composer/xdebug-handler": "^1.1 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^2.0 || ^3.0", "dnoegel/php-xdg-base-dir": "^0.1.1", "ext-ctype": "*", "ext-dom": "*", @@ -1945,35 +2007,35 @@ "ext-mbstring": "*", "ext-simplexml": "*", "ext-tokenizer": "*", - "felixfbecker/advanced-json-rpc": "^3.0.3", - "felixfbecker/language-server-protocol": "^1.5", + "felixfbecker/advanced-json-rpc": "^3.1", + "felixfbecker/language-server-protocol": "^1.5.2", + "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1", "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "nikic/php-parser": "^4.13", - "openlss/lib-array2xml": "^1.0", - "php": "^7.1|^8", - "sebastian/diff": "^3.0 || ^4.0", - "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0 || ^6.0", - "symfony/polyfill-php80": "^1.25", - "webmozart/path-util": "^2.3" + "nikic/php-parser": "^4.14", + "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0", + "sebastian/diff": "^4.0 || ^5.0", + "spatie/array-to-xml": "^2.17.0 || ^3.0", + "symfony/console": "^4.1.6 || ^5.0 || ^6.0", + "symfony/filesystem": "^5.4 || ^6.0" }, "provide": { "psalm/psalm": "self.version" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.2", - "brianium/paratest": "^4.0||^6.0", + "amphp/phpunit-util": "^2.0", + "bamarni/composer-bin-plugin": "^1.4", + "brianium/paratest": "^6.9", "ext-curl": "*", + "mockery/mockery": "^1.5", + "nunomaduro/mock-final-classes": "^1.1", "php-parallel-lint/php-parallel-lint": "^1.2", - "phpdocumentor/reflection-docblock": "^5", - "phpmyadmin/sql-parser": "5.1.0||dev-master", - "phpspec/prophecy": ">=1.9.0", - "phpstan/phpdoc-parser": "1.2.* || 1.6.4", - "phpunit/phpunit": "^9.0", - "psalm/plugin-phpunit": "^0.16", - "slevomat/coding-standard": "^7.0", - "squizlabs/php_codesniffer": "^3.5", - "symfony/process": "^4.3 || ^5.0 || ^6.0", - "weirdan/prophecy-shim": "^1.0 || ^2.0" + "phpstan/phpdoc-parser": "^1.6", + "phpunit/phpunit": "^9.6", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.6", + "symfony/process": "^4.4 || ^5.0 || ^6.0" }, "suggest": { "ext-curl": "In order to send data to shepherd", @@ -1989,17 +2051,14 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.x-dev", + "dev-master": "5.x-dev", + "dev-4.x": "4.x-dev", "dev-3.x": "3.x-dev", "dev-2.x": "2.x-dev", "dev-1.x": "1.x-dev" } }, "autoload": { - "files": [ - "src/functions.php", - "src/spl_object_id.php" - ], "psr-4": { "Psalm\\": "src/Psalm/" } @@ -2017,13 +2076,14 @@ "keywords": [ "code", "inspection", - "php" + "php", + "static analysis" ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.30.0" + "source": "https://github.com/vimeo/psalm/tree/5.9.0" }, - "time": "2022-11-06T20:37:08+00:00" + "time": "2023-03-29T21:38:21+00:00" }, { "name": "webmozart/assert", @@ -2082,57 +2142,6 @@ "source": "https://github.com/webmozarts/assert/tree/1.11.0" }, "time": "2022-06-03T18:03:27+00:00" - }, - { - "name": "webmozart/path-util", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/path-util.git", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "webmozart/assert": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\PathUtil\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", - "support": { - "issues": "https://github.com/webmozart/path-util/issues", - "source": "https://github.com/webmozart/path-util/tree/2.3.0" - }, - "abandoned": "symfony/filesystem", - "time": "2015-12-17T08:42:14+00:00" } ], "packages-dev": [],