Files
Heimdall/vendor/aws/aws-sdk-php/src/AwsClientTrait.php
T
KodeStar f69cbba6cd Update dependencies flagged by security advisories and require PHP 8.4
Bumps the packages reported by CVE/GHSA scans in #1564 to their patched
releases (with transitive dependencies):

- symfony/http-foundation 7.3.1 -> 7.4.14 (CVE-2025-64500 / GHSA-3rg7-wf37-54rm)
- phpunit/phpunit 10.5.47 -> 10.5.64 (CVE-2026-24765 / GHSA-vvj3-c3rp-c85p)
- aws/aws-sdk-php 3.349.3 -> 3.388.0 (GHSA-27qh-8cxx-2cr5)
- enshrined/svg-sanitize 0.21.0 -> 0.22.0 (GHSA-22wq-q86m-83fh)

Some transitive dependencies now require PHP 8.4, which matches the runtime
shipped in the official LinuxServer image, so the composer requirement is
raised to ^8.4, CI is pinned to PHP 8.4, and the readme is updated to match.

The remaining advisories in the report (php84, curl, libpq, git, sqlite,
busybox, coreutils) come from the LinuxServer base image, not this
repository, and are addressed by rebuilding the image on an updated base.

Refs #1564
2026-07-08 16:30:22 +01:00

102 lines
2.7 KiB
PHP

<?php
namespace Aws;
use Aws\Api\Service;
/**
* A trait providing generic functionality for interacting with Amazon Web
* Services. This is meant to be used in classes implementing
* \Aws\AwsClientInterface
*/
trait AwsClientTrait
{
public function getPaginator($name, array $args = [])
{
$config = $this->getApi()->getPaginatorConfig($name);
return new ResultPaginator($this, $name, $args, $config);
}
public function getIterator($name, array $args = [])
{
$config = $this->getApi()->getPaginatorConfig($name);
if (!$config['result_key']) {
throw new \UnexpectedValueException(sprintf(
'There are no resources to iterate for the %s operation of %s',
$name, $this->getApi()['serviceFullName']
));
}
$key = is_array($config['result_key'])
? $config['result_key'][0]
: $config['result_key'];
if ($config['output_token'] && $config['input_token']) {
return $this->getPaginator($name, $args)->search($key);
}
$result = $this->execute($this->getCommand($name, $args))->search($key);
return new \ArrayIterator((array) $result);
}
public function waitUntil($name, array $args = [])
{
return $this->getWaiter($name, $args)->promise()->wait();
}
public function getWaiter($name, array $args = [])
{
$config = isset($args['@waiter']) ? $args['@waiter'] : [];
$config += $this->getApi()->getWaiterConfig($name);
return new Waiter($this, $name, $args, $config);
}
public function execute(CommandInterface $command)
{
return $this->executeAsync($command)->wait();
}
public function executeAsync(CommandInterface $command)
{
$handler = $command->getHandlerList()->resolve();
return $handler($command);
}
public function __call($name, array $args)
{
if (substr($name, -5) === 'Async') {
$name = substr($name, 0, -5);
$isAsync = true;
}
if (!empty($this->aliases[ucfirst($name)])) {
$name = $this->aliases[ucfirst($name)];
}
$params = $args['args'] ?? $args[0] ?? [];
if (!empty($isAsync)) {
return $this->executeAsync(
$this->getCommand($name, $params)
);
}
return $this->execute($this->getCommand($name, $params));
}
/**
* @param string $name
* @param array $args
*
* @return CommandInterface
*/
abstract public function getCommand($name, array $args = []);
/**
* @return Service
*/
abstract public function getApi();
}