Rebuild missing composer.json, thx to @Creativeloper

This commit is contained in:
Andreas Palm 2024-10-28 09:47:43 +01:00
parent 95cb03f43b
commit d155c99bfc
50 changed files with 10946 additions and 3324 deletions

59
composer.json Normal file
View File

@ -0,0 +1,59 @@
{
"require": {
"php": "^7.4|^8",
"ext-gd": "*",
"aura/sqlquery": "2.7.1",
"aws/aws-sdk-php": "3.175.2",
"container-interop/container-interop": "1.2.0",
"ezyang/htmlpurifier": "v4.13.0",
"fiskaly/fiskaly-sdk-php": "1.2.100",
"guzzlehttp/guzzle": "6.5.5",
"guzzlehttp/promises": "1.4.1",
"guzzlehttp/psr7": "1.8.1",
"laminas/laminas-loader": "2.6.1",
"laminas/laminas-mime": "2.7.4",
"laminas/laminas-mail": "2.12.5",
"laminas/laminas-stdlib": "3.2.1",
"laminas/laminas-validator": "2.13.5",
"league/color-extractor": "0.3.2",
"league/flysystem": "1.0.70",
"league/oauth1-client": "v1.9.0",
"league/oauth2-client": "2.6.0",
"lfkeitel/phptotp": "v1.0.0",
"mtdowling/jmespath.php": "2.6.0",
"nikic/fast-route": "v1.3.0",
"phpmailer/phpmailer": "v6.3.0",
"phpseclib/phpseclib": "2.0.30",
"psr/container": "1.1.1",
"psr/http-message": "1.0.1",
"psr/log": "1.1.3",
"rakit/validation": "v0.22.3",
"sabre/dav": "3.2.3",
"smarty/smarty": "v3.1.39",
"swiss-payment-slip/swiss-payment-slip": "0.13.0 as 0.11.1",
"swiss-payment-slip/swiss-payment-slip-fpdf": "0.6.0",
"symfony/polyfill-intl-idn": "v1.22.1",
"symfony/polyfill-intl-normalizer": "v1.22.1",
"symfony/polyfill-mbstring": "v1.22.1",
"symfony/polyfill-php72": "v1.22.1",
"tecnickcom/tcpdf": "6.3.5",
"y0lk/oauth1-etsy": "1.1.0"
},
"replace": {
"itbz/fpdf": "*",
"laminas/laminas-zendframework-bridge": "*"
},
"autoload": {
"psr-4": {
"Xentral\\": "classes"
},
"classmap": ["www/lib/versandarten/"]
},
"config": {
"platform": {
"php": "7.4",
"ext-gd": "7.4"
},
"optimize-autoloader": true
}
}

3104
composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

18
vendor/autoload.php vendored
View File

@ -2,6 +2,24 @@
// autoload.php @generated by Composer
if (PHP_VERSION_ID < 50600) {
if (!headers_sent()) {
header('HTTP/1.1 500 Internal Server Error');
}
$err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
if (!ini_get('display_errors')) {
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
fwrite(STDERR, $err);
} elseif (!headers_sent()) {
echo $err;
}
}
trigger_error(
$err,
E_USER_ERROR
);
}
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit0c49a81c1214ef2f7493c6ce921b17ee::getLoader();

163
vendor/bin/jp.php vendored Normal file → Executable file
View File

@ -1,74 +1,119 @@
#!/usr/bin/env php
<?php
if (file_exists(__DIR__ . '/../vendor/autoload.php')) {
require __DIR__ . '/../vendor/autoload.php';
} elseif (file_exists(__DIR__ . '/../../../autoload.php')) {
require __DIR__ . '/../../../autoload.php';
} elseif (file_exists(__DIR__ . '/../autoload.php')) {
require __DIR__ . '/../autoload.php';
} else {
throw new RuntimeException('Unable to locate autoload.php file.');
}
/**
* Proxy PHP file generated by Composer
*
* This file includes the referenced bin path (../mtdowling/jmespath.php/bin/jp.php)
* using a stream wrapper to prevent the shebang from being output on PHP<8
*
* @generated
*/
use JmesPath\Env;
use JmesPath\DebugRuntime;
namespace Composer;
$description = <<<EOT
Runs a JMESPath expression on the provided input or a test case.
$GLOBALS['_composer_bin_dir'] = __DIR__;
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
Provide the JSON input and expression:
echo '{}' | jp.php expression
if (PHP_VERSION_ID < 80000) {
if (!class_exists('Composer\BinProxyWrapper')) {
/**
* @internal
*/
final class BinProxyWrapper
{
private $handle;
private $position;
private $realpath;
Or provide the path to a compliance script, a suite, and test case number:
jp.php --script path_to_script --suite test_suite_number --case test_case_number [expression]
public function stream_open($path, $mode, $options, &$opened_path)
{
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
$opened_path = substr($path, 17);
$this->realpath = realpath($opened_path) ?: $opened_path;
$opened_path = $this->realpath;
$this->handle = fopen($this->realpath, $mode);
$this->position = 0;
EOT;
return (bool) $this->handle;
}
$args = [];
$currentKey = null;
for ($i = 1, $total = count($argv); $i < $total; $i++) {
if ($i % 2) {
if (substr($argv[$i], 0, 2) == '--') {
$currentKey = str_replace('--', '', $argv[$i]);
} else {
$currentKey = trim($argv[$i]);
}
} else {
$args[$currentKey] = $argv[$i];
$currentKey = null;
}
}
public function stream_read($count)
{
$data = fread($this->handle, $count);
$expression = $currentKey;
if ($this->position === 0) {
$data = preg_replace('{^#!.*\r?\n}', '', $data);
}
if (isset($args['file']) || isset($args['suite']) || isset($args['case'])) {
if (!isset($args['file']) || !isset($args['suite']) || !isset($args['case'])) {
die($description);
}
// Manually run a compliance test
$path = realpath($args['file']);
file_exists($path) or die('File not found at ' . $path);
$json = json_decode(file_get_contents($path), true);
$set = $json[$args['suite']];
$data = $set['given'];
if (!isset($expression)) {
$expression = $set['cases'][$args['case']]['expression'];
echo "Expects\n=======\n";
if (isset($set['cases'][$args['case']]['result'])) {
echo json_encode($set['cases'][$args['case']]['result'], JSON_PRETTY_PRINT) . "\n\n";
} elseif (isset($set['cases'][$args['case']]['error'])) {
echo "{$set['cases'][$argv['case']]['error']} error\n\n";
} else {
echo "NULL\n\n";
$this->position += strlen($data);
return $data;
}
public function stream_cast($castAs)
{
return $this->handle;
}
public function stream_close()
{
fclose($this->handle);
}
public function stream_lock($operation)
{
return $operation ? flock($this->handle, $operation) : true;
}
public function stream_seek($offset, $whence)
{
if (0 === fseek($this->handle, $offset, $whence)) {
$this->position = ftell($this->handle);
return true;
}
return false;
}
public function stream_tell()
{
return $this->position;
}
public function stream_eof()
{
return feof($this->handle);
}
public function stream_stat()
{
return array();
}
public function stream_set_option($option, $arg1, $arg2)
{
return true;
}
public function url_stat($path, $flags)
{
$path = substr($path, 17);
if (file_exists($path)) {
return stat($path);
}
return false;
}
}
}
} elseif (isset($expression)) {
// Pass in an expression and STDIN as a standalone argument
$data = json_decode(stream_get_contents(STDIN), true);
} else {
die($description);
if (
(function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
|| (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
) {
return include("phpvfscomposer://" . __DIR__ . '/..'.'/mtdowling/jmespath.php/bin/jp.php');
}
}
$runtime = new DebugRuntime(Env::createRuntime());
$runtime($expression, $data);
return include __DIR__ . '/..'.'/mtdowling/jmespath.php/bin/jp.php';

View File

@ -37,57 +37,126 @@ namespace Composer\Autoload;
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Jordi Boggiano <j.boggiano@seld.be>
* @see http://www.php-fig.org/psr/psr-0/
* @see http://www.php-fig.org/psr/psr-4/
* @see https://www.php-fig.org/psr/psr-0/
* @see https://www.php-fig.org/psr/psr-4/
*/
class ClassLoader
{
/** @var \Closure(string):void */
private static $includeFile;
/** @var string|null */
private $vendorDir;
// PSR-4
/**
* @var array<string, array<string, int>>
*/
private $prefixLengthsPsr4 = array();
/**
* @var array<string, list<string>>
*/
private $prefixDirsPsr4 = array();
/**
* @var list<string>
*/
private $fallbackDirsPsr4 = array();
// PSR-0
/**
* List of PSR-0 prefixes
*
* Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
*
* @var array<string, array<string, list<string>>>
*/
private $prefixesPsr0 = array();
/**
* @var list<string>
*/
private $fallbackDirsPsr0 = array();
/** @var bool */
private $useIncludePath = false;
/**
* @var array<string, string>
*/
private $classMap = array();
/** @var bool */
private $classMapAuthoritative = false;
/**
* @var array<string, bool>
*/
private $missingClasses = array();
/** @var string|null */
private $apcuPrefix;
/**
* @var array<string, self>
*/
private static $registeredLoaders = array();
/**
* @param string|null $vendorDir
*/
public function __construct($vendorDir = null)
{
$this->vendorDir = $vendorDir;
self::initializeIncludeClosure();
}
/**
* @return array<string, list<string>>
*/
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
return call_user_func_array('array_merge', $this->prefixesPsr0);
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
}
return array();
}
/**
* @return array<string, list<string>>
*/
public function getPrefixesPsr4()
{
return $this->prefixDirsPsr4;
}
/**
* @return list<string>
*/
public function getFallbackDirs()
{
return $this->fallbackDirsPsr0;
}
/**
* @return list<string>
*/
public function getFallbackDirsPsr4()
{
return $this->fallbackDirsPsr4;
}
/**
* @return array<string, string> Array of classname => path
*/
public function getClassMap()
{
return $this->classMap;
}
/**
* @param array $classMap Class to filename map
* @param array<string, string> $classMap Class to filename map
*
* @return void
*/
public function addClassMap(array $classMap)
{
@ -102,22 +171,25 @@ class ClassLoader
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
* @param string $prefix The prefix
* @param array|string $paths The PSR-0 root directories
* @param bool $prepend Whether to prepend the directories
* @param string $prefix The prefix
* @param list<string>|string $paths The PSR-0 root directories
* @param bool $prepend Whether to prepend the directories
*
* @return void
*/
public function add($prefix, $paths, $prepend = false)
{
$paths = (array) $paths;
if (!$prefix) {
if ($prepend) {
$this->fallbackDirsPsr0 = array_merge(
(array) $paths,
$paths,
$this->fallbackDirsPsr0
);
} else {
$this->fallbackDirsPsr0 = array_merge(
$this->fallbackDirsPsr0,
(array) $paths
$paths
);
}
@ -126,19 +198,19 @@ class ClassLoader
$first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) {
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
$this->prefixesPsr0[$first][$prefix] = $paths;
return;
}
if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge(
(array) $paths,
$paths,
$this->prefixesPsr0[$first][$prefix]
);
} else {
$this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix],
(array) $paths
$paths
);
}
}
@ -147,25 +219,28 @@ class ClassLoader
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param array|string $paths The PSR-4 base directories
* @param bool $prepend Whether to prepend the directories
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param list<string>|string $paths The PSR-4 base directories
* @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
*
* @return void
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
$paths = (array) $paths;
if (!$prefix) {
// Register directories for the root namespace.
if ($prepend) {
$this->fallbackDirsPsr4 = array_merge(
(array) $paths,
$paths,
$this->fallbackDirsPsr4
);
} else {
$this->fallbackDirsPsr4 = array_merge(
$this->fallbackDirsPsr4,
(array) $paths
$paths
);
}
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
@ -175,18 +250,18 @@ class ClassLoader
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
$this->prefixDirsPsr4[$prefix] = $paths;
} elseif ($prepend) {
// Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
(array) $paths,
$paths,
$this->prefixDirsPsr4[$prefix]
);
} else {
// Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
$this->prefixDirsPsr4[$prefix],
(array) $paths
$paths
);
}
}
@ -195,8 +270,10 @@ class ClassLoader
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
* @param string $prefix The prefix
* @param array|string $paths The PSR-0 base directories
* @param string $prefix The prefix
* @param list<string>|string $paths The PSR-0 base directories
*
* @return void
*/
public function set($prefix, $paths)
{
@ -211,10 +288,12 @@ class ClassLoader
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param array|string $paths The PSR-4 base directories
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param list<string>|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
*
* @return void
*/
public function setPsr4($prefix, $paths)
{
@ -234,6 +313,8 @@ class ClassLoader
* Turns on searching the include path for class files.
*
* @param bool $useIncludePath
*
* @return void
*/
public function setUseIncludePath($useIncludePath)
{
@ -256,6 +337,8 @@ class ClassLoader
* that have not been registered with the class map.
*
* @param bool $classMapAuthoritative
*
* @return void
*/
public function setClassMapAuthoritative($classMapAuthoritative)
{
@ -276,6 +359,8 @@ class ClassLoader
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
*
* @param string|null $apcuPrefix
*
* @return void
*/
public function setApcuPrefix($apcuPrefix)
{
@ -296,33 +381,55 @@ class ClassLoader
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
*
* @return void
*/
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
if (null === $this->vendorDir) {
return;
}
if ($prepend) {
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
} else {
unset(self::$registeredLoaders[$this->vendorDir]);
self::$registeredLoaders[$this->vendorDir] = $this;
}
}
/**
* Unregisters this instance as an autoloader.
*
* @return void
*/
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
if (null !== $this->vendorDir) {
unset(self::$registeredLoaders[$this->vendorDir]);
}
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
* @return bool|null True if loaded, null otherwise
* @return true|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
includeFile($file);
$includeFile = self::$includeFile;
$includeFile($file);
return true;
}
return null;
}
/**
@ -367,6 +474,21 @@ class ClassLoader
return $file;
}
/**
* Returns the currently registered loaders keyed by their corresponding vendor directories.
*
* @return array<string, self>
*/
public static function getRegisteredLoaders()
{
return self::$registeredLoaders;
}
/**
* @param string $class
* @param string $ext
* @return string|false
*/
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup
@ -432,14 +554,26 @@ class ClassLoader
return false;
}
}
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*/
function includeFile($file)
{
include $file;
/**
* @return void
*/
private static function initializeIncludeClosure()
{
if (self::$includeFile !== null) {
return;
}
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*
* @param string $file
* @return void
*/
self::$includeFile = \Closure::bind(static function($file) {
include $file;
}, null, null);
}
}

359
vendor/composer/InstalledVersions.php vendored Normal file
View File

@ -0,0 +1,359 @@
<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Composer;
use Composer\Autoload\ClassLoader;
use Composer\Semver\VersionParser;
/**
* This class is copied in every Composer installed project and available to all
*
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
*
* To require its presence, you can require `composer-runtime-api ^2.0`
*
* @final
*/
class InstalledVersions
{
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
/**
* @var bool|null
*/
private static $canGetVendors;
/**
* @var array[]
* @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
*/
private static $installedByVendor = array();
/**
* Returns a list of all package names which are present, either by being installed, replaced or provided
*
* @return string[]
* @psalm-return list<string>
*/
public static function getInstalledPackages()
{
$packages = array();
foreach (self::getInstalled() as $installed) {
$packages[] = array_keys($installed['versions']);
}
if (1 === \count($packages)) {
return $packages[0];
}
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
}
/**
* Returns a list of all package names with a specific type e.g. 'library'
*
* @param string $type
* @return string[]
* @psalm-return list<string>
*/
public static function getInstalledPackagesByType($type)
{
$packagesByType = array();
foreach (self::getInstalled() as $installed) {
foreach ($installed['versions'] as $name => $package) {
if (isset($package['type']) && $package['type'] === $type) {
$packagesByType[] = $name;
}
}
}
return $packagesByType;
}
/**
* Checks whether the given package is installed
*
* This also returns true if the package name is provided or replaced by another package
*
* @param string $packageName
* @param bool $includeDevRequirements
* @return bool
*/
public static function isInstalled($packageName, $includeDevRequirements = true)
{
foreach (self::getInstalled() as $installed) {
if (isset($installed['versions'][$packageName])) {
return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
}
}
return false;
}
/**
* Checks whether the given package satisfies a version constraint
*
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
*
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
*
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
* @param string $packageName
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
* @return bool
*/
public static function satisfies(VersionParser $parser, $packageName, $constraint)
{
$constraint = $parser->parseConstraints((string) $constraint);
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
return $provided->matches($constraint);
}
/**
* Returns a version constraint representing all the range(s) which are installed for a given package
*
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
* whether a given version of a package is installed, and not just whether it exists
*
* @param string $packageName
* @return string Version constraint usable with composer/semver
*/
public static function getVersionRanges($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
$ranges = array();
if (isset($installed['versions'][$packageName]['pretty_version'])) {
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
}
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
}
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
}
if (array_key_exists('provided', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
}
return implode(' || ', $ranges);
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
/**
* @param string $packageName
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
*/
public static function getVersion($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['version'])) {
return null;
}
return $installed['versions'][$packageName]['version'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
/**
* @param string $packageName
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
*/
public static function getPrettyVersion($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
return null;
}
return $installed['versions'][$packageName]['pretty_version'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
/**
* @param string $packageName
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
*/
public static function getReference($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['reference'])) {
return null;
}
return $installed['versions'][$packageName]['reference'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
/**
* @param string $packageName
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
*/
public static function getInstallPath($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
/**
* @return array
* @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
*/
public static function getRootPackage()
{
$installed = self::getInstalled();
return $installed[0]['root'];
}
/**
* Returns the raw installed.php data for custom implementations
*
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
* @return array[]
* @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}
*/
public static function getRawData()
{
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
if (null === self::$installed) {
// only require the installed.php file if this file is loaded from its dumped location,
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
if (substr(__DIR__, -8, 1) !== 'C') {
self::$installed = include __DIR__ . '/installed.php';
} else {
self::$installed = array();
}
}
return self::$installed;
}
/**
* Returns the raw data of all installed.php which are currently loaded for custom implementations
*
* @return array[]
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
*/
public static function getAllRawData()
{
return self::getInstalled();
}
/**
* Lets you reload the static array from another file
*
* This is only useful for complex integrations in which a project needs to use
* this class but then also needs to execute another project's autoloader in process,
* and wants to ensure both projects have access to their version of installed.php.
*
* A typical case would be PHPUnit, where it would need to make sure it reads all
* the data it needs from this class, then call reload() with
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
* the project in which it runs can then also use this class safely, without
* interference between PHPUnit's dependencies and the project's dependencies.
*
* @param array[] $data A vendor/composer/installed.php data set
* @return void
*
* @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data
*/
public static function reload($data)
{
self::$installed = $data;
self::$installedByVendor = array();
}
/**
* @return array[]
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
*/
private static function getInstalled()
{
if (null === self::$canGetVendors) {
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
}
$installed = array();
if (self::$canGetVendors) {
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require $vendorDir.'/composer/installed.php';
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
}
}
}
}
if (null === self::$installed) {
// only require the installed.php file if this file is loaded from its dumped location,
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
if (substr(__DIR__, -8, 1) !== 'C') {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require __DIR__ . '/installed.php';
self::$installed = $required;
} else {
self::$installed = array();
}
}
if (self::$installed !== array()) {
$installed[] = self::$installed;
}
return $installed;
}
}

View File

@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
@ -812,6 +812,7 @@ return array(
'Aws\\kendra\\kendraClient' => $vendorDir . '/aws/aws-sdk-php/src/kendra/kendraClient.php',
'Aws\\signer\\Exception\\signerException' => $vendorDir . '/aws/aws-sdk-php/src/signer/Exception/signerException.php',
'Aws\\signer\\signerClient' => $vendorDir . '/aws/aws-sdk-php/src/signer/signerClient.php',
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
'Datamatrix' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/datamatrix.php',
'Datto\\JsonRpc\\Client' => $vendorDir . '/datto/json-rpc/src/Client.php',
'Datto\\JsonRpc\\Evaluator' => $vendorDir . '/datto/json-rpc/src/Evaluator.php',
@ -1116,9 +1117,6 @@ return array(
'HTMLPurifier_Printer' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer.php',
'HTMLPurifier_Printer_CSSDefinition' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/CSSDefinition.php',
'HTMLPurifier_Printer_ConfigForm' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php',
'HTMLPurifier_Printer_ConfigForm_NullDecorator' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php',
'HTMLPurifier_Printer_ConfigForm_bool' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php',
'HTMLPurifier_Printer_ConfigForm_default' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php',
'HTMLPurifier_Printer_HTMLDefinition' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/HTMLDefinition.php',
'HTMLPurifier_PropertyList' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/PropertyList.php',
'HTMLPurifier_PropertyListIterator' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/PropertyListIterator.php',
@ -2190,6 +2188,57 @@ return array(
'TrueBV\\Exception\\LabelOutOfBoundsException' => $vendorDir . '/true/punycode/src/Exception/LabelOutOfBoundsException.php',
'TrueBV\\Exception\\OutOfBoundsException' => $vendorDir . '/true/punycode/src/Exception/OutOfBoundsException.php',
'TrueBV\\Punycode' => $vendorDir . '/true/punycode/src/Punycode.php',
'Versandart_dhl' => $baseDir . '/www/lib/versandarten/dhl.php',
'Versandart_sendcloud' => $baseDir . '/www/lib/versandarten/sendcloud.php',
'Xentral\\Carrier\\Dhl\\Data\\Bank' => $baseDir . '/classes/Carrier/Dhl/Data/Bank.php',
'Xentral\\Carrier\\Dhl\\Data\\Communication' => $baseDir . '/classes/Carrier/Dhl/Data/Communication.php',
'Xentral\\Carrier\\Dhl\\Data\\Contact' => $baseDir . '/classes/Carrier/Dhl/Data/Contact.php',
'Xentral\\Carrier\\Dhl\\Data\\Country' => $baseDir . '/classes/Carrier/Dhl/Data/Country.php',
'Xentral\\Carrier\\Dhl\\Data\\CreateShipmentOrderRequest' => $baseDir . '/classes/Carrier/Dhl/Data/CreateShipmentOrderRequest.php',
'Xentral\\Carrier\\Dhl\\Data\\CreateShipmentOrderResponse' => $baseDir . '/classes/Carrier/Dhl/Data/CreateShipmentOrderResponse.php',
'Xentral\\Carrier\\Dhl\\Data\\CreationState' => $baseDir . '/classes/Carrier/Dhl/Data/CreationState.php',
'Xentral\\Carrier\\Dhl\\Data\\Customer' => $baseDir . '/classes/Carrier/Dhl/Data/Customer.php',
'Xentral\\Carrier\\Dhl\\Data\\DeleteShipmentOrderRequest' => $baseDir . '/classes/Carrier/Dhl/Data/DeleteShipmentOrderRequest.php',
'Xentral\\Carrier\\Dhl\\Data\\DeleteShipmentOrderResponse' => $baseDir . '/classes/Carrier/Dhl/Data/DeleteShipmentOrderResponse.php',
'Xentral\\Carrier\\Dhl\\Data\\DeletionState' => $baseDir . '/classes/Carrier/Dhl/Data/DeletionState.php',
'Xentral\\Carrier\\Dhl\\Data\\DeliveryAddress' => $baseDir . '/classes/Carrier/Dhl/Data/DeliveryAddress.php',
'Xentral\\Carrier\\Dhl\\Data\\Dimension' => $baseDir . '/classes/Carrier/Dhl/Data/Dimension.php',
'Xentral\\Carrier\\Dhl\\Data\\ExportDocPosition' => $baseDir . '/classes/Carrier/Dhl/Data/ExportDocPosition.php',
'Xentral\\Carrier\\Dhl\\Data\\ExportDocument' => $baseDir . '/classes/Carrier/Dhl/Data/ExportDocument.php',
'Xentral\\Carrier\\Dhl\\Data\\LabelData' => $baseDir . '/classes/Carrier/Dhl/Data/LabelData.php',
'Xentral\\Carrier\\Dhl\\Data\\Name' => $baseDir . '/classes/Carrier/Dhl/Data/Name.php',
'Xentral\\Carrier\\Dhl\\Data\\NativeAddress' => $baseDir . '/classes/Carrier/Dhl/Data/NativeAddress.php',
'Xentral\\Carrier\\Dhl\\Data\\NativeAddressNew' => $baseDir . '/classes/Carrier/Dhl/Data/NativeAddressNew.php',
'Xentral\\Carrier\\Dhl\\Data\\PackStation' => $baseDir . '/classes/Carrier/Dhl/Data/PackStation.php',
'Xentral\\Carrier\\Dhl\\Data\\Postfiliale' => $baseDir . '/classes/Carrier/Dhl/Data/Postfiliale.php',
'Xentral\\Carrier\\Dhl\\Data\\Receiver' => $baseDir . '/classes/Carrier/Dhl/Data/Receiver.php',
'Xentral\\Carrier\\Dhl\\Data\\ReceiverNativeAddress' => $baseDir . '/classes/Carrier/Dhl/Data/ReceiverNativeAddress.php',
'Xentral\\Carrier\\Dhl\\Data\\Shipment' => $baseDir . '/classes/Carrier/Dhl/Data/Shipment.php',
'Xentral\\Carrier\\Dhl\\Data\\ShipmentDetails' => $baseDir . '/classes/Carrier/Dhl/Data/ShipmentDetails.php',
'Xentral\\Carrier\\Dhl\\Data\\ShipmentItem' => $baseDir . '/classes/Carrier/Dhl/Data/ShipmentItem.php',
'Xentral\\Carrier\\Dhl\\Data\\ShipmentNotification' => $baseDir . '/classes/Carrier/Dhl/Data/ShipmentNotification.php',
'Xentral\\Carrier\\Dhl\\Data\\ShipmentOrder' => $baseDir . '/classes/Carrier/Dhl/Data/ShipmentOrder.php',
'Xentral\\Carrier\\Dhl\\Data\\ShipmentService' => $baseDir . '/classes/Carrier/Dhl/Data/ShipmentService.php',
'Xentral\\Carrier\\Dhl\\Data\\Shipper' => $baseDir . '/classes/Carrier/Dhl/Data/Shipper.php',
'Xentral\\Carrier\\Dhl\\Data\\Status' => $baseDir . '/classes/Carrier/Dhl/Data/Status.php',
'Xentral\\Carrier\\Dhl\\Data\\StatusElement' => $baseDir . '/classes/Carrier/Dhl/Data/StatusElement.php',
'Xentral\\Carrier\\Dhl\\Data\\Statusinformation' => $baseDir . '/classes/Carrier/Dhl/Data/Statusinformation.php',
'Xentral\\Carrier\\Dhl\\Data\\Version' => $baseDir . '/classes/Carrier/Dhl/Data/Version.php',
'Xentral\\Carrier\\Dhl\\DhlApi' => $baseDir . '/classes/Carrier/Dhl/DhlApi.php',
'Xentral\\Carrier\\SendCloud\\Data\\Document' => $baseDir . '/classes/Carrier/SendCloud/Data/Document.php',
'Xentral\\Carrier\\SendCloud\\Data\\Label' => $baseDir . '/classes/Carrier/SendCloud/Data/Label.php',
'Xentral\\Carrier\\SendCloud\\Data\\ParcelBase' => $baseDir . '/classes/Carrier/SendCloud/Data/ParcelBase.php',
'Xentral\\Carrier\\SendCloud\\Data\\ParcelCreation' => $baseDir . '/classes/Carrier/SendCloud/Data/ParcelCreation.php',
'Xentral\\Carrier\\SendCloud\\Data\\ParcelCreationError' => $baseDir . '/classes/Carrier/SendCloud/Data/ParcelCreationError.php',
'Xentral\\Carrier\\SendCloud\\Data\\ParcelItem' => $baseDir . '/classes/Carrier/SendCloud/Data/ParcelItem.php',
'Xentral\\Carrier\\SendCloud\\Data\\ParcelResponse' => $baseDir . '/classes/Carrier/SendCloud/Data/ParcelResponse.php',
'Xentral\\Carrier\\SendCloud\\Data\\SenderAddress' => $baseDir . '/classes/Carrier/SendCloud/Data/SenderAddress.php',
'Xentral\\Carrier\\SendCloud\\Data\\Shipment' => $baseDir . '/classes/Carrier/SendCloud/Data/Shipment.php',
'Xentral\\Carrier\\SendCloud\\Data\\ShippingMethod' => $baseDir . '/classes/Carrier/SendCloud/Data/ShippingMethod.php',
'Xentral\\Carrier\\SendCloud\\Data\\ShippingProduct' => $baseDir . '/classes/Carrier/SendCloud/Data/ShippingProduct.php',
'Xentral\\Carrier\\SendCloud\\Data\\Status' => $baseDir . '/classes/Carrier/SendCloud/Data/Status.php',
'Xentral\\Carrier\\SendCloud\\SendCloudApi' => $baseDir . '/classes/Carrier/SendCloud/SendCloudApi.php',
'Xentral\\Carrier\\SendCloud\\SendcloudApiException' => $baseDir . '/classes/Carrier/SendCloud/SendcloudApiException.php',
'Xentral\\Components\\Backup\\Adapter\\AdapterInterface' => $baseDir . '/classes/Components/Backup/Adapter/AdapterInterface.php',
'Xentral\\Components\\Backup\\Adapter\\ExecAdapter' => $baseDir . '/classes/Components/Backup/Adapter/ExecAdapter.php',
'Xentral\\Components\\Backup\\Bootstrap' => $baseDir . '/classes/Components/Backup/Bootstrap.php',
@ -2726,6 +2775,7 @@ return array(
'Xentral\\Modules\\Article\\Exception\\InvalidArgumentException' => $baseDir . '/classes/Modules/Article/Exception/InvalidArgumentException.php',
'Xentral\\Modules\\Article\\Exception\\SellingPriceNotFoundException' => $baseDir . '/classes/Modules/Article/Exception/SellingPriceNotFoundException.php',
'Xentral\\Modules\\Article\\Gateway\\ArticleGateway' => $baseDir . '/classes/Modules/Article/Gateway/ArticleGateway.php',
'Xentral\\Modules\\Article\\Service\\ArticleService' => $baseDir . '/classes/Modules/Article/Service/ArticleService.php',
'Xentral\\Modules\\Article\\Service\\CurrencyConversionService' => $baseDir . '/classes/Modules/Article/Service/CurrencyConversionService.php',
'Xentral\\Modules\\Article\\Service\\PurchasePriceService' => $baseDir . '/classes/Modules/Article/Service/PurchasePriceService.php',
'Xentral\\Modules\\Article\\Service\\SellingPriceService' => $baseDir . '/classes/Modules/Article/Service/SellingPriceService.php',
@ -2832,10 +2882,7 @@ return array(
'Xentral\\Modules\\Datanorm\\Service\\DatanormIntermediateService' => $baseDir . '/classes/Modules/Datanorm/Service/DatanormIntermediateService.php',
'Xentral\\Modules\\Datanorm\\Service\\DatanormReader' => $baseDir . '/classes/Modules/Datanorm/Service/DatanormReader.php',
'Xentral\\Modules\\Datanorm\\Wrapper\\AddressWrapper' => $baseDir . '/classes/Modules/Datanorm/Wrapper/AddressWrapper.php',
'Xentral\\Modules\\DatevApi\\Bootstrap' => $baseDir . '/classes/Modules/DatevApi/Bootstrap.php',
'Xentral\\Modules\\DatevApi\\DataTable\\DatevExportDataTable' => $baseDir . '/classes/Modules/DatevApi/DataTable/DatevExportDataTable.php',
'Xentral\\Modules\\DatevApi\\DatevApiService' => $baseDir . '/classes/Modules/DatevApi/DatevApiService.php',
'Xentral\\Modules\\DatevApi\\DatevZipStream' => $baseDir . '/classes/Modules/DatevApi/DatevZipStream.php',
'Xentral\\Modules\\DemoExporter\\Bootstrap' => $baseDir . '/classes/Modules/DemoExporter/Bootstrap.php',
'Xentral\\Modules\\DemoExporter\\DemoExporterCleanerService' => $baseDir . '/classes/Modules/DemoExporter/DemoExporterCleanerService.php',
'Xentral\\Modules\\DemoExporter\\DemoExporterDateiService' => $baseDir . '/classes/Modules/DemoExporter/DemoExporterDateiService.php',
@ -3007,7 +3054,6 @@ return array(
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyApi' => $baseDir . '/classes/Modules/FiskalyApi/Service/FiskalyApi.php',
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyCashPointClosingDBInterface' => $baseDir . '/classes/Modules/FiskalyApi/Service/FiskalyCashPointClosingDBInterface.php',
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyCashPointClosingDBService' => $baseDir . '/classes/Modules/FiskalyApi/Service/FiskalyCashPointClosingDBService.php',
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyConfig' => $baseDir . '/classes/Modules/FiskalyApi/Service/FiskalyConfig.php',
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyDSFinVKApi' => $baseDir . '/classes/Modules/FiskalyApi/Service/FiskalyDSFinVKApi.php',
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyEReceiptApi' => $baseDir . '/classes/Modules/FiskalyApi/Service/FiskalyEReceiptApi.php',
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyKassenSichVApi' => $baseDir . '/classes/Modules/FiskalyApi/Service/FiskalyKassenSichVApi.php',
@ -3188,6 +3234,15 @@ return array(
'Xentral\\Modules\\MandatoryFields\\Service\\MandatoryFieldsGateway' => $baseDir . '/classes/Modules/MandatoryFields/Service/MandatoryFieldsGateway.php',
'Xentral\\Modules\\MandatoryFields\\Service\\MandatoryFieldsService' => $baseDir . '/classes/Modules/MandatoryFields/Service/MandatoryFieldsService.php',
'Xentral\\Modules\\MandatoryFields\\Service\\MandatoryFieldsValidator' => $baseDir . '/classes/Modules/MandatoryFields/Service/MandatoryFieldsValidator.php',
'Xentral\\Modules\\MatrixProduct\\Bootstrap' => $baseDir . '/classes/Modules/MatrixProduct/Bootstrap.php',
'Xentral\\Modules\\MatrixProduct\\Data\\Group' => $baseDir . '/classes/Modules/MatrixProduct/Data/Group.php',
'Xentral\\Modules\\MatrixProduct\\Data\\Option' => $baseDir . '/classes/Modules/MatrixProduct/Data/Option.php',
'Xentral\\Modules\\MatrixProduct\\Data\\Translation' => $baseDir . '/classes/Modules/MatrixProduct/Data/Translation.php',
'Xentral\\Modules\\MatrixProduct\\MatrixProductGateway' => $baseDir . '/classes/Modules/MatrixProduct/MatrixProductGateway.php',
'Xentral\\Modules\\MatrixProduct\\MatrixProductService' => $baseDir . '/classes/Modules/MatrixProduct/MatrixProductService.php',
'Xentral\\Modules\\Onlineshop\\Data\\OrderStatus' => $baseDir . '/classes/Modules/Onlineshop/Data/OrderStatus.php',
'Xentral\\Modules\\Onlineshop\\Data\\OrderStatusUpdateRequest' => $baseDir . '/classes/Modules/Onlineshop/Data/OrderStatusUpdateRequest.php',
'Xentral\\Modules\\Onlineshop\\Data\\Shipment' => $baseDir . '/classes/Modules/Onlineshop/Data/Shipment.php',
'Xentral\\Modules\\Onlineshop\\Data\\ShopConnectorOrderStatusUpdateResponse' => $baseDir . '/classes/Modules/Onlineshop/Data/ShopConnectorOrderStatusUpdateResponse.php',
'Xentral\\Modules\\Onlineshop\\Data\\ShopConnectorResponseInterface' => $baseDir . '/classes/Modules/Onlineshop/Data/ShopConnectorResponseInterface.php',
'Xentral\\Modules\\PartialDelivery\\Bootstrap' => $baseDir . '/classes/Modules/PartialDelivery/Bootstrap.php',
@ -3345,6 +3400,9 @@ return array(
'Xentral\\Modules\\ScanArticle\\Wrapper\\PriceWrapper' => $baseDir . '/classes/Modules/ScanArticle/Wrapper/PriceWrapper.php',
'Xentral\\Modules\\ScanArticle\\Wrapper\\SavePositionWrapper' => $baseDir . '/classes/Modules/ScanArticle/Wrapper/SavePositionWrapper.php',
'Xentral\\Modules\\Setting\\Bootstrap' => $baseDir . '/classes/Modules/Setting/Bootstrap.php',
'Xentral\\Modules\\ShippingMethod\\Model\\CreateShipmentResult' => $baseDir . '/classes/Modules/ShippingMethod/Model/CreateShipmentResult.php',
'Xentral\\Modules\\ShippingMethod\\Model\\CustomsInfo' => $baseDir . '/classes/Modules/ShippingMethod/Model/CustomsInfo.php',
'Xentral\\Modules\\ShippingMethod\\Model\\Product' => $baseDir . '/classes/Modules/ShippingMethod/Model/Product.php',
'Xentral\\Modules\\ShippingTaxSplit\\Bootstrap' => $baseDir . '/classes/Modules/ShippingTaxSplit/Bootstrap.php',
'Xentral\\Modules\\ShippingTaxSplit\\Exception\\InvalidArgumentException' => $baseDir . '/classes/Modules/ShippingTaxSplit/Exception/InvalidArgumentException.php',
'Xentral\\Modules\\ShippingTaxSplit\\Exception\\ShippingTaxSplitExceptionInterface' => $baseDir . '/classes/Modules/ShippingTaxSplit/Exception/ShippingTaxSplitExceptionInterface.php',
@ -3404,6 +3462,7 @@ return array(
'Xentral\\Modules\\SubscriptionCycle\\Service\\SubscriptionCycleJobService' => $baseDir . '/classes/Modules/SubscriptionCycle/Service/SubscriptionCycleJobService.php',
'Xentral\\Modules\\SubscriptionCycle\\SubscriptionCycleCacheFiller' => $baseDir . '/classes/Modules/SubscriptionCycle/SubscriptionCycleCacheFiller.php',
'Xentral\\Modules\\SubscriptionCycle\\SubscriptionCycleModuleInterface' => $baseDir . '/classes/Modules/SubscriptionCycle/SubscriptionCycleModuleInterface.php',
'Xentral\\Modules\\SubscriptionCycle\\SubscriptionModule' => $baseDir . '/classes/Modules/SubscriptionCycle/SubscriptionModule.php',
'Xentral\\Modules\\SubscriptionCycle\\SubscriptionModuleInterface' => $baseDir . '/classes/Modules/SubscriptionCycle/SubscriptionModuleInterface.php',
'Xentral\\Modules\\SubscriptionCycle\\Wrapper\\BusinessLetterWrapper' => $baseDir . '/classes/Modules/SubscriptionCycle/Wrapper/BusinessLetterWrapper.php',
'Xentral\\Modules\\SuperSearch\\Bootstrap' => $baseDir . '/classes/Modules/SuperSearch/Bootstrap.php',

View File

@ -2,24 +2,24 @@
// autoload_files.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
'7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
'383eaff206634a77a1be54e64e6459c7' => $vendorDir . '/sabre/uri/lib/functions.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
'3569eecfeed3bcf0bad3c998a494ecb8' => $vendorDir . '/sabre/xml/lib/Deserializer/functions.php',
'93aa591bc4ca510c520999e34229ee79' => $vendorDir . '/sabre/xml/lib/Serializer/functions.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
'2b9d0f43f9552984cfa82fee95491826' => $vendorDir . '/sabre/event/lib/coroutine.php',
'd81bab31d3feb45bfe2f283ea3c8fdf7' => $vendorDir . '/sabre/event/lib/Loop/functions.php',
'a1cce3d26cc15c00fcd0b3354bd72c88' => $vendorDir . '/sabre/event/lib/Promise/functions.php',
'3569eecfeed3bcf0bad3c998a494ecb8' => $vendorDir . '/sabre/xml/lib/Deserializer/functions.php',
'93aa591bc4ca510c520999e34229ee79' => $vendorDir . '/sabre/xml/lib/Serializer/functions.php',
'b067bc7112e384b61c701452d53a14a8' => $vendorDir . '/mtdowling/jmespath.php/src/JmesPath.php',
'ebdb698ed4152ae445614b69b5e4bb6a' => $vendorDir . '/sabre/http/lib/functions.php',
'8a9dc1de0ca7e01f3e08231539562f61' => $vendorDir . '/aws/aws-sdk-php/src/functions.php',

View File

@ -2,7 +2,7 @@
// autoload_namespaces.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(

View File

@ -2,7 +2,7 @@
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(

View File

@ -22,52 +22,29 @@ class ComposerAutoloaderInit0c49a81c1214ef2f7493c6ce921b17ee
return self::$loader;
}
require __DIR__ . '/platform_check.php';
spl_autoload_register(array('ComposerAutoloaderInit0c49a81c1214ef2f7493c6ce921b17ee', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInit0c49a81c1214ef2f7493c6ce921b17ee', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require_once __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee::getInitializer($loader));
} else {
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
$loader->set($namespace, $path);
}
$map = require __DIR__ . '/autoload_psr4.php';
foreach ($map as $namespace => $path) {
$loader->setPsr4($namespace, $path);
}
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}
}
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee::getInitializer($loader));
$loader->register(true);
if ($useStaticLoader) {
$includeFiles = Composer\Autoload\ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequire0c49a81c1214ef2f7493c6ce921b17ee($fileIdentifier, $file);
$filesToLoad = \Composer\Autoload\ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee::$files;
$requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
require $file;
}
}, null, null);
foreach ($filesToLoad as $fileIdentifier => $file) {
$requireFile($fileIdentifier, $file);
}
return $loader;
}
}
function composerRequire0c49a81c1214ef2f7493c6ce921b17ee($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
require $file;
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
}
}

View File

@ -9,18 +9,18 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
public static $files = array (
'7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
'383eaff206634a77a1be54e64e6459c7' => __DIR__ . '/..' . '/sabre/uri/lib/functions.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
'3569eecfeed3bcf0bad3c998a494ecb8' => __DIR__ . '/..' . '/sabre/xml/lib/Deserializer/functions.php',
'93aa591bc4ca510c520999e34229ee79' => __DIR__ . '/..' . '/sabre/xml/lib/Serializer/functions.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
'2b9d0f43f9552984cfa82fee95491826' => __DIR__ . '/..' . '/sabre/event/lib/coroutine.php',
'd81bab31d3feb45bfe2f283ea3c8fdf7' => __DIR__ . '/..' . '/sabre/event/lib/Loop/functions.php',
'a1cce3d26cc15c00fcd0b3354bd72c88' => __DIR__ . '/..' . '/sabre/event/lib/Promise/functions.php',
'3569eecfeed3bcf0bad3c998a494ecb8' => __DIR__ . '/..' . '/sabre/xml/lib/Deserializer/functions.php',
'93aa591bc4ca510c520999e34229ee79' => __DIR__ . '/..' . '/sabre/xml/lib/Serializer/functions.php',
'b067bc7112e384b61c701452d53a14a8' => __DIR__ . '/..' . '/mtdowling/jmespath.php/src/JmesPath.php',
'ebdb698ed4152ae445614b69b5e4bb6a' => __DIR__ . '/..' . '/sabre/http/lib/functions.php',
'8a9dc1de0ca7e01f3e08231539562f61' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/functions.php',
@ -1131,6 +1131,7 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
'Aws\\kendra\\kendraClient' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/kendra/kendraClient.php',
'Aws\\signer\\Exception\\signerException' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/signer/Exception/signerException.php',
'Aws\\signer\\signerClient' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/signer/signerClient.php',
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
'Datamatrix' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/barcodes/datamatrix.php',
'Datto\\JsonRpc\\Client' => __DIR__ . '/..' . '/datto/json-rpc/src/Client.php',
'Datto\\JsonRpc\\Evaluator' => __DIR__ . '/..' . '/datto/json-rpc/src/Evaluator.php',
@ -1435,9 +1436,6 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
'HTMLPurifier_Printer' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer.php',
'HTMLPurifier_Printer_CSSDefinition' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/CSSDefinition.php',
'HTMLPurifier_Printer_ConfigForm' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php',
'HTMLPurifier_Printer_ConfigForm_NullDecorator' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php',
'HTMLPurifier_Printer_ConfigForm_bool' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php',
'HTMLPurifier_Printer_ConfigForm_default' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php',
'HTMLPurifier_Printer_HTMLDefinition' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/HTMLDefinition.php',
'HTMLPurifier_PropertyList' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/PropertyList.php',
'HTMLPurifier_PropertyListIterator' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/PropertyListIterator.php',
@ -2509,6 +2507,57 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
'TrueBV\\Exception\\LabelOutOfBoundsException' => __DIR__ . '/..' . '/true/punycode/src/Exception/LabelOutOfBoundsException.php',
'TrueBV\\Exception\\OutOfBoundsException' => __DIR__ . '/..' . '/true/punycode/src/Exception/OutOfBoundsException.php',
'TrueBV\\Punycode' => __DIR__ . '/..' . '/true/punycode/src/Punycode.php',
'Versandart_dhl' => __DIR__ . '/../..' . '/www/lib/versandarten/dhl.php',
'Versandart_sendcloud' => __DIR__ . '/../..' . '/www/lib/versandarten/sendcloud.php',
'Xentral\\Carrier\\Dhl\\Data\\Bank' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Bank.php',
'Xentral\\Carrier\\Dhl\\Data\\Communication' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Communication.php',
'Xentral\\Carrier\\Dhl\\Data\\Contact' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Contact.php',
'Xentral\\Carrier\\Dhl\\Data\\Country' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Country.php',
'Xentral\\Carrier\\Dhl\\Data\\CreateShipmentOrderRequest' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/CreateShipmentOrderRequest.php',
'Xentral\\Carrier\\Dhl\\Data\\CreateShipmentOrderResponse' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/CreateShipmentOrderResponse.php',
'Xentral\\Carrier\\Dhl\\Data\\CreationState' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/CreationState.php',
'Xentral\\Carrier\\Dhl\\Data\\Customer' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Customer.php',
'Xentral\\Carrier\\Dhl\\Data\\DeleteShipmentOrderRequest' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/DeleteShipmentOrderRequest.php',
'Xentral\\Carrier\\Dhl\\Data\\DeleteShipmentOrderResponse' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/DeleteShipmentOrderResponse.php',
'Xentral\\Carrier\\Dhl\\Data\\DeletionState' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/DeletionState.php',
'Xentral\\Carrier\\Dhl\\Data\\DeliveryAddress' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/DeliveryAddress.php',
'Xentral\\Carrier\\Dhl\\Data\\Dimension' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Dimension.php',
'Xentral\\Carrier\\Dhl\\Data\\ExportDocPosition' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/ExportDocPosition.php',
'Xentral\\Carrier\\Dhl\\Data\\ExportDocument' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/ExportDocument.php',
'Xentral\\Carrier\\Dhl\\Data\\LabelData' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/LabelData.php',
'Xentral\\Carrier\\Dhl\\Data\\Name' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Name.php',
'Xentral\\Carrier\\Dhl\\Data\\NativeAddress' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/NativeAddress.php',
'Xentral\\Carrier\\Dhl\\Data\\NativeAddressNew' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/NativeAddressNew.php',
'Xentral\\Carrier\\Dhl\\Data\\PackStation' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/PackStation.php',
'Xentral\\Carrier\\Dhl\\Data\\Postfiliale' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Postfiliale.php',
'Xentral\\Carrier\\Dhl\\Data\\Receiver' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Receiver.php',
'Xentral\\Carrier\\Dhl\\Data\\ReceiverNativeAddress' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/ReceiverNativeAddress.php',
'Xentral\\Carrier\\Dhl\\Data\\Shipment' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Shipment.php',
'Xentral\\Carrier\\Dhl\\Data\\ShipmentDetails' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/ShipmentDetails.php',
'Xentral\\Carrier\\Dhl\\Data\\ShipmentItem' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/ShipmentItem.php',
'Xentral\\Carrier\\Dhl\\Data\\ShipmentNotification' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/ShipmentNotification.php',
'Xentral\\Carrier\\Dhl\\Data\\ShipmentOrder' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/ShipmentOrder.php',
'Xentral\\Carrier\\Dhl\\Data\\ShipmentService' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/ShipmentService.php',
'Xentral\\Carrier\\Dhl\\Data\\Shipper' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Shipper.php',
'Xentral\\Carrier\\Dhl\\Data\\Status' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Status.php',
'Xentral\\Carrier\\Dhl\\Data\\StatusElement' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/StatusElement.php',
'Xentral\\Carrier\\Dhl\\Data\\Statusinformation' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Statusinformation.php',
'Xentral\\Carrier\\Dhl\\Data\\Version' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Version.php',
'Xentral\\Carrier\\Dhl\\DhlApi' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/DhlApi.php',
'Xentral\\Carrier\\SendCloud\\Data\\Document' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/Document.php',
'Xentral\\Carrier\\SendCloud\\Data\\Label' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/Label.php',
'Xentral\\Carrier\\SendCloud\\Data\\ParcelBase' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/ParcelBase.php',
'Xentral\\Carrier\\SendCloud\\Data\\ParcelCreation' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/ParcelCreation.php',
'Xentral\\Carrier\\SendCloud\\Data\\ParcelCreationError' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/ParcelCreationError.php',
'Xentral\\Carrier\\SendCloud\\Data\\ParcelItem' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/ParcelItem.php',
'Xentral\\Carrier\\SendCloud\\Data\\ParcelResponse' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/ParcelResponse.php',
'Xentral\\Carrier\\SendCloud\\Data\\SenderAddress' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/SenderAddress.php',
'Xentral\\Carrier\\SendCloud\\Data\\Shipment' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/Shipment.php',
'Xentral\\Carrier\\SendCloud\\Data\\ShippingMethod' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/ShippingMethod.php',
'Xentral\\Carrier\\SendCloud\\Data\\ShippingProduct' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/ShippingProduct.php',
'Xentral\\Carrier\\SendCloud\\Data\\Status' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/Status.php',
'Xentral\\Carrier\\SendCloud\\SendCloudApi' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/SendCloudApi.php',
'Xentral\\Carrier\\SendCloud\\SendcloudApiException' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/SendcloudApiException.php',
'Xentral\\Components\\Backup\\Adapter\\AdapterInterface' => __DIR__ . '/../..' . '/classes/Components/Backup/Adapter/AdapterInterface.php',
'Xentral\\Components\\Backup\\Adapter\\ExecAdapter' => __DIR__ . '/../..' . '/classes/Components/Backup/Adapter/ExecAdapter.php',
'Xentral\\Components\\Backup\\Bootstrap' => __DIR__ . '/../..' . '/classes/Components/Backup/Bootstrap.php',
@ -3045,6 +3094,7 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
'Xentral\\Modules\\Article\\Exception\\InvalidArgumentException' => __DIR__ . '/../..' . '/classes/Modules/Article/Exception/InvalidArgumentException.php',
'Xentral\\Modules\\Article\\Exception\\SellingPriceNotFoundException' => __DIR__ . '/../..' . '/classes/Modules/Article/Exception/SellingPriceNotFoundException.php',
'Xentral\\Modules\\Article\\Gateway\\ArticleGateway' => __DIR__ . '/../..' . '/classes/Modules/Article/Gateway/ArticleGateway.php',
'Xentral\\Modules\\Article\\Service\\ArticleService' => __DIR__ . '/../..' . '/classes/Modules/Article/Service/ArticleService.php',
'Xentral\\Modules\\Article\\Service\\CurrencyConversionService' => __DIR__ . '/../..' . '/classes/Modules/Article/Service/CurrencyConversionService.php',
'Xentral\\Modules\\Article\\Service\\PurchasePriceService' => __DIR__ . '/../..' . '/classes/Modules/Article/Service/PurchasePriceService.php',
'Xentral\\Modules\\Article\\Service\\SellingPriceService' => __DIR__ . '/../..' . '/classes/Modules/Article/Service/SellingPriceService.php',
@ -3151,10 +3201,7 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
'Xentral\\Modules\\Datanorm\\Service\\DatanormIntermediateService' => __DIR__ . '/../..' . '/classes/Modules/Datanorm/Service/DatanormIntermediateService.php',
'Xentral\\Modules\\Datanorm\\Service\\DatanormReader' => __DIR__ . '/../..' . '/classes/Modules/Datanorm/Service/DatanormReader.php',
'Xentral\\Modules\\Datanorm\\Wrapper\\AddressWrapper' => __DIR__ . '/../..' . '/classes/Modules/Datanorm/Wrapper/AddressWrapper.php',
'Xentral\\Modules\\DatevApi\\Bootstrap' => __DIR__ . '/../..' . '/classes/Modules/DatevApi/Bootstrap.php',
'Xentral\\Modules\\DatevApi\\DataTable\\DatevExportDataTable' => __DIR__ . '/../..' . '/classes/Modules/DatevApi/DataTable/DatevExportDataTable.php',
'Xentral\\Modules\\DatevApi\\DatevApiService' => __DIR__ . '/../..' . '/classes/Modules/DatevApi/DatevApiService.php',
'Xentral\\Modules\\DatevApi\\DatevZipStream' => __DIR__ . '/../..' . '/classes/Modules/DatevApi/DatevZipStream.php',
'Xentral\\Modules\\DemoExporter\\Bootstrap' => __DIR__ . '/../..' . '/classes/Modules/DemoExporter/Bootstrap.php',
'Xentral\\Modules\\DemoExporter\\DemoExporterCleanerService' => __DIR__ . '/../..' . '/classes/Modules/DemoExporter/DemoExporterCleanerService.php',
'Xentral\\Modules\\DemoExporter\\DemoExporterDateiService' => __DIR__ . '/../..' . '/classes/Modules/DemoExporter/DemoExporterDateiService.php',
@ -3326,7 +3373,6 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyApi' => __DIR__ . '/../..' . '/classes/Modules/FiskalyApi/Service/FiskalyApi.php',
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyCashPointClosingDBInterface' => __DIR__ . '/../..' . '/classes/Modules/FiskalyApi/Service/FiskalyCashPointClosingDBInterface.php',
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyCashPointClosingDBService' => __DIR__ . '/../..' . '/classes/Modules/FiskalyApi/Service/FiskalyCashPointClosingDBService.php',
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyConfig' => __DIR__ . '/../..' . '/classes/Modules/FiskalyApi/Service/FiskalyConfig.php',
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyDSFinVKApi' => __DIR__ . '/../..' . '/classes/Modules/FiskalyApi/Service/FiskalyDSFinVKApi.php',
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyEReceiptApi' => __DIR__ . '/../..' . '/classes/Modules/FiskalyApi/Service/FiskalyEReceiptApi.php',
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyKassenSichVApi' => __DIR__ . '/../..' . '/classes/Modules/FiskalyApi/Service/FiskalyKassenSichVApi.php',
@ -3507,6 +3553,15 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
'Xentral\\Modules\\MandatoryFields\\Service\\MandatoryFieldsGateway' => __DIR__ . '/../..' . '/classes/Modules/MandatoryFields/Service/MandatoryFieldsGateway.php',
'Xentral\\Modules\\MandatoryFields\\Service\\MandatoryFieldsService' => __DIR__ . '/../..' . '/classes/Modules/MandatoryFields/Service/MandatoryFieldsService.php',
'Xentral\\Modules\\MandatoryFields\\Service\\MandatoryFieldsValidator' => __DIR__ . '/../..' . '/classes/Modules/MandatoryFields/Service/MandatoryFieldsValidator.php',
'Xentral\\Modules\\MatrixProduct\\Bootstrap' => __DIR__ . '/../..' . '/classes/Modules/MatrixProduct/Bootstrap.php',
'Xentral\\Modules\\MatrixProduct\\Data\\Group' => __DIR__ . '/../..' . '/classes/Modules/MatrixProduct/Data/Group.php',
'Xentral\\Modules\\MatrixProduct\\Data\\Option' => __DIR__ . '/../..' . '/classes/Modules/MatrixProduct/Data/Option.php',
'Xentral\\Modules\\MatrixProduct\\Data\\Translation' => __DIR__ . '/../..' . '/classes/Modules/MatrixProduct/Data/Translation.php',
'Xentral\\Modules\\MatrixProduct\\MatrixProductGateway' => __DIR__ . '/../..' . '/classes/Modules/MatrixProduct/MatrixProductGateway.php',
'Xentral\\Modules\\MatrixProduct\\MatrixProductService' => __DIR__ . '/../..' . '/classes/Modules/MatrixProduct/MatrixProductService.php',
'Xentral\\Modules\\Onlineshop\\Data\\OrderStatus' => __DIR__ . '/../..' . '/classes/Modules/Onlineshop/Data/OrderStatus.php',
'Xentral\\Modules\\Onlineshop\\Data\\OrderStatusUpdateRequest' => __DIR__ . '/../..' . '/classes/Modules/Onlineshop/Data/OrderStatusUpdateRequest.php',
'Xentral\\Modules\\Onlineshop\\Data\\Shipment' => __DIR__ . '/../..' . '/classes/Modules/Onlineshop/Data/Shipment.php',
'Xentral\\Modules\\Onlineshop\\Data\\ShopConnectorOrderStatusUpdateResponse' => __DIR__ . '/../..' . '/classes/Modules/Onlineshop/Data/ShopConnectorOrderStatusUpdateResponse.php',
'Xentral\\Modules\\Onlineshop\\Data\\ShopConnectorResponseInterface' => __DIR__ . '/../..' . '/classes/Modules/Onlineshop/Data/ShopConnectorResponseInterface.php',
'Xentral\\Modules\\PartialDelivery\\Bootstrap' => __DIR__ . '/../..' . '/classes/Modules/PartialDelivery/Bootstrap.php',
@ -3664,6 +3719,9 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
'Xentral\\Modules\\ScanArticle\\Wrapper\\PriceWrapper' => __DIR__ . '/../..' . '/classes/Modules/ScanArticle/Wrapper/PriceWrapper.php',
'Xentral\\Modules\\ScanArticle\\Wrapper\\SavePositionWrapper' => __DIR__ . '/../..' . '/classes/Modules/ScanArticle/Wrapper/SavePositionWrapper.php',
'Xentral\\Modules\\Setting\\Bootstrap' => __DIR__ . '/../..' . '/classes/Modules/Setting/Bootstrap.php',
'Xentral\\Modules\\ShippingMethod\\Model\\CreateShipmentResult' => __DIR__ . '/../..' . '/classes/Modules/ShippingMethod/Model/CreateShipmentResult.php',
'Xentral\\Modules\\ShippingMethod\\Model\\CustomsInfo' => __DIR__ . '/../..' . '/classes/Modules/ShippingMethod/Model/CustomsInfo.php',
'Xentral\\Modules\\ShippingMethod\\Model\\Product' => __DIR__ . '/../..' . '/classes/Modules/ShippingMethod/Model/Product.php',
'Xentral\\Modules\\ShippingTaxSplit\\Bootstrap' => __DIR__ . '/../..' . '/classes/Modules/ShippingTaxSplit/Bootstrap.php',
'Xentral\\Modules\\ShippingTaxSplit\\Exception\\InvalidArgumentException' => __DIR__ . '/../..' . '/classes/Modules/ShippingTaxSplit/Exception/InvalidArgumentException.php',
'Xentral\\Modules\\ShippingTaxSplit\\Exception\\ShippingTaxSplitExceptionInterface' => __DIR__ . '/../..' . '/classes/Modules/ShippingTaxSplit/Exception/ShippingTaxSplitExceptionInterface.php',
@ -3723,6 +3781,7 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
'Xentral\\Modules\\SubscriptionCycle\\Service\\SubscriptionCycleJobService' => __DIR__ . '/../..' . '/classes/Modules/SubscriptionCycle/Service/SubscriptionCycleJobService.php',
'Xentral\\Modules\\SubscriptionCycle\\SubscriptionCycleCacheFiller' => __DIR__ . '/../..' . '/classes/Modules/SubscriptionCycle/SubscriptionCycleCacheFiller.php',
'Xentral\\Modules\\SubscriptionCycle\\SubscriptionCycleModuleInterface' => __DIR__ . '/../..' . '/classes/Modules/SubscriptionCycle/SubscriptionCycleModuleInterface.php',
'Xentral\\Modules\\SubscriptionCycle\\SubscriptionModule' => __DIR__ . '/../..' . '/classes/Modules/SubscriptionCycle/SubscriptionModule.php',
'Xentral\\Modules\\SubscriptionCycle\\SubscriptionModuleInterface' => __DIR__ . '/../..' . '/classes/Modules/SubscriptionCycle/SubscriptionModuleInterface.php',
'Xentral\\Modules\\SubscriptionCycle\\Wrapper\\BusinessLetterWrapper' => __DIR__ . '/../..' . '/classes/Modules/SubscriptionCycle/Wrapper/BusinessLetterWrapper.php',
'Xentral\\Modules\\SuperSearch\\Bootstrap' => __DIR__ . '/../..' . '/classes/Modules/SuperSearch/Bootstrap.php',

File diff suppressed because it is too large Load Diff

502
vendor/composer/installed.php vendored Normal file
View File

@ -0,0 +1,502 @@
<?php return array(
'root' => array(
'name' => '__root__',
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'reference' => '95cb03f43b1395537a50c081cd9287e4f5ea50c1',
'type' => 'library',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
'dev' => true,
),
'versions' => array(
'__root__' => array(
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'reference' => '95cb03f43b1395537a50c081cd9287e4f5ea50c1',
'type' => 'library',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
'dev_requirement' => false,
),
'aura/sqlquery' => array(
'pretty_version' => '2.7.1',
'version' => '2.7.1.0',
'reference' => 'dd81b57aeb43628180a9c70a4df58d872024d7f2',
'type' => 'library',
'install_path' => __DIR__ . '/../aura/sqlquery',
'aliases' => array(),
'dev_requirement' => false,
),
'aws/aws-sdk-php' => array(
'pretty_version' => '3.175.2',
'version' => '3.175.2.0',
'reference' => 'a8e88eac60b403ed76643327e74f55831570a64b',
'type' => 'library',
'install_path' => __DIR__ . '/../aws/aws-sdk-php',
'aliases' => array(),
'dev_requirement' => false,
),
'container-interop/container-interop' => array(
'pretty_version' => '1.2.0',
'version' => '1.2.0.0',
'reference' => '79cbf1341c22ec75643d841642dd5d6acd83bdb8',
'type' => 'library',
'install_path' => __DIR__ . '/../container-interop/container-interop',
'aliases' => array(),
'dev_requirement' => false,
),
'datto/json-rpc' => array(
'pretty_version' => '6.1.0',
'version' => '6.1.0.0',
'reference' => 'ad4d735f48d80c6b53f7405e5007d97c996533f6',
'type' => 'library',
'install_path' => __DIR__ . '/../datto/json-rpc',
'aliases' => array(),
'dev_requirement' => false,
),
'datto/json-rpc-http' => array(
'pretty_version' => '5.0.6',
'version' => '5.0.6.0',
'reference' => 'db15a075f3562c4e8d297b9082acc5b2869bd4b4',
'type' => 'library',
'install_path' => __DIR__ . '/../datto/json-rpc-http',
'aliases' => array(),
'dev_requirement' => false,
),
'ezyang/htmlpurifier' => array(
'pretty_version' => 'v4.13.0',
'version' => '4.13.0.0',
'reference' => '08e27c97e4c6ed02f37c5b2b20488046c8d90d75',
'type' => 'library',
'install_path' => __DIR__ . '/../ezyang/htmlpurifier',
'aliases' => array(),
'dev_requirement' => false,
),
'fiskaly/fiskaly-sdk-php' => array(
'pretty_version' => '1.2.100',
'version' => '1.2.100.0',
'reference' => 'f2598d32f51ca18f81615df2b63deff7d9569097',
'type' => 'library',
'install_path' => __DIR__ . '/../fiskaly/fiskaly-sdk-php',
'aliases' => array(),
'dev_requirement' => false,
),
'guzzlehttp/guzzle' => array(
'pretty_version' => '6.5.5',
'version' => '6.5.5.0',
'reference' => '9d4290de1cfd701f38099ef7e183b64b4b7b0c5e',
'type' => 'library',
'install_path' => __DIR__ . '/../guzzlehttp/guzzle',
'aliases' => array(),
'dev_requirement' => false,
),
'guzzlehttp/promises' => array(
'pretty_version' => '1.4.1',
'version' => '1.4.1.0',
'reference' => '8e7d04f1f6450fef59366c399cfad4b9383aa30d',
'type' => 'library',
'install_path' => __DIR__ . '/../guzzlehttp/promises',
'aliases' => array(),
'dev_requirement' => false,
),
'guzzlehttp/psr7' => array(
'pretty_version' => '1.8.1',
'version' => '1.8.1.0',
'reference' => '35ea11d335fd638b5882ff1725228b3d35496ab1',
'type' => 'library',
'install_path' => __DIR__ . '/../guzzlehttp/psr7',
'aliases' => array(),
'dev_requirement' => false,
),
'itbz/fpdf' => array(
'dev_requirement' => false,
'replaced' => array(
0 => '*',
),
),
'laminas/laminas-loader' => array(
'pretty_version' => '2.6.1',
'version' => '2.6.1.0',
'reference' => '5d01c2c237ae9e68bec262f339947e2ea18979bc',
'type' => 'library',
'install_path' => __DIR__ . '/../laminas/laminas-loader',
'aliases' => array(),
'dev_requirement' => false,
),
'laminas/laminas-mail' => array(
'pretty_version' => '2.12.5',
'version' => '2.12.5.0',
'reference' => 'ed5b36a0deef4ffafe6138c2ae9cafcffafab856',
'type' => 'library',
'install_path' => __DIR__ . '/../laminas/laminas-mail',
'aliases' => array(),
'dev_requirement' => false,
),
'laminas/laminas-mime' => array(
'pretty_version' => '2.7.4',
'version' => '2.7.4.0',
'reference' => 'e45a7d856bf7b4a7b5bd00d6371f9961dc233add',
'type' => 'library',
'install_path' => __DIR__ . '/../laminas/laminas-mime',
'aliases' => array(),
'dev_requirement' => false,
),
'laminas/laminas-stdlib' => array(
'pretty_version' => '3.2.1',
'version' => '3.2.1.0',
'reference' => '2b18347625a2f06a1a485acfbc870f699dbe51c6',
'type' => 'library',
'install_path' => __DIR__ . '/../laminas/laminas-stdlib',
'aliases' => array(),
'dev_requirement' => false,
),
'laminas/laminas-validator' => array(
'pretty_version' => '2.13.5',
'version' => '2.13.5.0',
'reference' => 'd334dddda43af263d6a7e5024fd2b013cb6981f7',
'type' => 'library',
'install_path' => __DIR__ . '/../laminas/laminas-validator',
'aliases' => array(),
'dev_requirement' => false,
),
'laminas/laminas-zendframework-bridge' => array(
'dev_requirement' => false,
'replaced' => array(
0 => '*',
),
),
'league/color-extractor' => array(
'pretty_version' => '0.3.2',
'version' => '0.3.2.0',
'reference' => '837086ec60f50c84c611c613963e4ad2e2aec806',
'type' => 'library',
'install_path' => __DIR__ . '/../league/color-extractor',
'aliases' => array(),
'dev_requirement' => false,
),
'league/flysystem' => array(
'pretty_version' => '1.0.70',
'version' => '1.0.70.0',
'reference' => '585824702f534f8d3cf7fab7225e8466cc4b7493',
'type' => 'library',
'install_path' => __DIR__ . '/../league/flysystem',
'aliases' => array(),
'dev_requirement' => false,
),
'league/oauth1-client' => array(
'pretty_version' => 'v1.9.0',
'version' => '1.9.0.0',
'reference' => '1e7e6be2dc543bf466236fb171e5b20e1b06aee6',
'type' => 'library',
'install_path' => __DIR__ . '/../league/oauth1-client',
'aliases' => array(),
'dev_requirement' => false,
),
'league/oauth2-client' => array(
'pretty_version' => '2.6.0',
'version' => '2.6.0.0',
'reference' => 'badb01e62383430706433191b82506b6df24ad98',
'type' => 'library',
'install_path' => __DIR__ . '/../league/oauth2-client',
'aliases' => array(),
'dev_requirement' => false,
),
'lfkeitel/phptotp' => array(
'pretty_version' => 'v1.0.0',
'version' => '1.0.0.0',
'reference' => '2211fb6e025d3c10362771c54c9a9ad5593a3469',
'type' => 'library',
'install_path' => __DIR__ . '/../lfkeitel/phptotp',
'aliases' => array(),
'dev_requirement' => false,
),
'matthecat/colorextractor' => array(
'dev_requirement' => false,
'replaced' => array(
0 => '*',
),
),
'mtdowling/jmespath.php' => array(
'pretty_version' => '2.6.0',
'version' => '2.6.0.0',
'reference' => '42dae2cbd13154083ca6d70099692fef8ca84bfb',
'type' => 'library',
'install_path' => __DIR__ . '/../mtdowling/jmespath.php',
'aliases' => array(),
'dev_requirement' => false,
),
'nikic/fast-route' => array(
'pretty_version' => 'v1.3.0',
'version' => '1.3.0.0',
'reference' => '181d480e08d9476e61381e04a71b34dc0432e812',
'type' => 'library',
'install_path' => __DIR__ . '/../nikic/fast-route',
'aliases' => array(),
'dev_requirement' => false,
),
'paragonie/random_compat' => array(
'pretty_version' => 'v9.99.100',
'version' => '9.99.100.0',
'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a',
'type' => 'library',
'install_path' => __DIR__ . '/../paragonie/random_compat',
'aliases' => array(),
'dev_requirement' => false,
),
'phpmailer/phpmailer' => array(
'pretty_version' => 'v6.3.0',
'version' => '6.3.0.0',
'reference' => '4a08cf4cdd2c38d12ee2b9fa69e5d235f37a6dcb',
'type' => 'library',
'install_path' => __DIR__ . '/../phpmailer/phpmailer',
'aliases' => array(),
'dev_requirement' => false,
),
'phpseclib/phpseclib' => array(
'pretty_version' => '2.0.30',
'version' => '2.0.30.0',
'reference' => '136b9ca7eebef78be14abf90d65c5e57b6bc5d36',
'type' => 'library',
'install_path' => __DIR__ . '/../phpseclib/phpseclib',
'aliases' => array(),
'dev_requirement' => false,
),
'psr/container' => array(
'pretty_version' => '1.1.1',
'version' => '1.1.1.0',
'reference' => '8622567409010282b7aeebe4bb841fe98b58dcaf',
'type' => 'library',
'install_path' => __DIR__ . '/../psr/container',
'aliases' => array(),
'dev_requirement' => false,
),
'psr/http-message' => array(
'pretty_version' => '1.0.1',
'version' => '1.0.1.0',
'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363',
'type' => 'library',
'install_path' => __DIR__ . '/../psr/http-message',
'aliases' => array(),
'dev_requirement' => false,
),
'psr/http-message-implementation' => array(
'dev_requirement' => false,
'provided' => array(
0 => '1.0',
),
),
'psr/log' => array(
'pretty_version' => '1.1.3',
'version' => '1.1.3.0',
'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc',
'type' => 'library',
'install_path' => __DIR__ . '/../psr/log',
'aliases' => array(),
'dev_requirement' => false,
),
'rakit/validation' => array(
'pretty_version' => 'v0.22.3',
'version' => '0.22.3.0',
'reference' => '61ed77b772c214faa67aaf1c4adf81502b06cd4b',
'type' => 'library',
'install_path' => __DIR__ . '/../rakit/validation',
'aliases' => array(),
'dev_requirement' => false,
),
'ralouphie/getallheaders' => array(
'pretty_version' => '3.0.3',
'version' => '3.0.3.0',
'reference' => '120b605dfeb996808c31b6477290a714d356e822',
'type' => 'library',
'install_path' => __DIR__ . '/../ralouphie/getallheaders',
'aliases' => array(),
'dev_requirement' => false,
),
'sabre/dav' => array(
'pretty_version' => '3.2.3',
'version' => '3.2.3.0',
'reference' => 'a9780ce4f35560ecbd0af524ad32d9d2c8954b80',
'type' => 'library',
'install_path' => __DIR__ . '/../sabre/dav',
'aliases' => array(),
'dev_requirement' => false,
),
'sabre/event' => array(
'pretty_version' => '3.0.0',
'version' => '3.0.0.0',
'reference' => '831d586f5a442dceacdcf5e9c4c36a4db99a3534',
'type' => 'library',
'install_path' => __DIR__ . '/../sabre/event',
'aliases' => array(),
'dev_requirement' => false,
),
'sabre/http' => array(
'pretty_version' => 'v4.2.4',
'version' => '4.2.4.0',
'reference' => 'acccec4ba863959b2d10c1fa0fb902736c5c8956',
'type' => 'library',
'install_path' => __DIR__ . '/../sabre/http',
'aliases' => array(),
'dev_requirement' => false,
),
'sabre/uri' => array(
'pretty_version' => '1.2.1',
'version' => '1.2.1.0',
'reference' => 'ada354d83579565949d80b2e15593c2371225e61',
'type' => 'library',
'install_path' => __DIR__ . '/../sabre/uri',
'aliases' => array(),
'dev_requirement' => false,
),
'sabre/vobject' => array(
'pretty_version' => '4.2.2',
'version' => '4.2.2.0',
'reference' => '449616b2d45b95c8973975de23f34a3d14f63b4b',
'type' => 'library',
'install_path' => __DIR__ . '/../sabre/vobject',
'aliases' => array(),
'dev_requirement' => false,
),
'sabre/xml' => array(
'pretty_version' => '1.5.1',
'version' => '1.5.1.0',
'reference' => 'a367665f1df614c3b8fefc30a54de7cd295e444e',
'type' => 'library',
'install_path' => __DIR__ . '/../sabre/xml',
'aliases' => array(),
'dev_requirement' => false,
),
'smarty/smarty' => array(
'pretty_version' => 'v3.1.39',
'version' => '3.1.39.0',
'reference' => 'e27da524f7bcd7361e3ea5cdfa99c4378a7b5419',
'type' => 'library',
'install_path' => __DIR__ . '/../smarty/smarty',
'aliases' => array(),
'dev_requirement' => false,
),
'swiss-payment-slip/swiss-payment-slip' => array(
'pretty_version' => '0.13.0',
'version' => '0.13.0.0',
'reference' => '3f5e23552e59ff486318c3af66b0374fa61a176f',
'type' => 'library',
'install_path' => __DIR__ . '/../swiss-payment-slip/swiss-payment-slip',
'aliases' => array(
0 => '0.11.1',
),
'dev_requirement' => false,
),
'swiss-payment-slip/swiss-payment-slip-fpdf' => array(
'pretty_version' => '0.6.0',
'version' => '0.6.0.0',
'reference' => '72f722188d89b2651d4751ab812146cb1f165061',
'type' => 'library',
'install_path' => __DIR__ . '/../swiss-payment-slip/swiss-payment-slip-fpdf',
'aliases' => array(),
'dev_requirement' => false,
),
'swiss-payment-slip/swiss-payment-slip-pdf' => array(
'pretty_version' => '0.13.1',
'version' => '0.13.1.0',
'reference' => '4355743b2406875e9fed2117d8df445ba6848be4',
'type' => 'library',
'install_path' => __DIR__ . '/../swiss-payment-slip/swiss-payment-slip-pdf',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/polyfill-intl-idn' => array(
'pretty_version' => 'v1.22.1',
'version' => '1.22.1.0',
'reference' => '2d63434d922daf7da8dd863e7907e67ee3031483',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-intl-idn',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/polyfill-intl-normalizer' => array(
'pretty_version' => 'v1.22.1',
'version' => '1.22.1.0',
'reference' => '43a0283138253ed1d48d352ab6d0bdb3f809f248',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/polyfill-mbstring' => array(
'pretty_version' => 'v1.22.1',
'version' => '1.22.1.0',
'reference' => '5232de97ee3b75b0360528dae24e73db49566ab1',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-mbstring',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/polyfill-php72' => array(
'pretty_version' => 'v1.22.1',
'version' => '1.22.1.0',
'reference' => 'cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-php72',
'aliases' => array(),
'dev_requirement' => false,
),
'tecnickcom/tcpdf' => array(
'pretty_version' => '6.3.5',
'version' => '6.3.5.0',
'reference' => '19a535eaa7fb1c1cac499109deeb1a7a201b4549',
'type' => 'library',
'install_path' => __DIR__ . '/../tecnickcom/tcpdf',
'aliases' => array(),
'dev_requirement' => false,
),
'true/punycode' => array(
'pretty_version' => 'v2.1.1',
'version' => '2.1.1.0',
'reference' => 'a4d0c11a36dd7f4e7cd7096076cab6d3378a071e',
'type' => 'library',
'install_path' => __DIR__ . '/../true/punycode',
'aliases' => array(),
'dev_requirement' => false,
),
'y0lk/oauth1-etsy' => array(
'pretty_version' => '1.1.0',
'version' => '1.1.0.0',
'reference' => '3fef9d03787e01a72ef19cdcbbc243c166a5d425',
'type' => 'library',
'install_path' => __DIR__ . '/../y0lk/oauth1-etsy',
'aliases' => array(),
'dev_requirement' => false,
),
'zendframework/zend-loader' => array(
'dev_requirement' => false,
'replaced' => array(
0 => '2.6.1',
),
),
'zendframework/zend-mail' => array(
'dev_requirement' => false,
'replaced' => array(
0 => '^2.10.0',
),
),
'zendframework/zend-mime' => array(
'dev_requirement' => false,
'replaced' => array(
0 => '^2.7.2',
),
),
'zendframework/zend-stdlib' => array(
'dev_requirement' => false,
'replaced' => array(
0 => '3.2.1',
),
),
'zendframework/zend-validator' => array(
'dev_requirement' => false,
'replaced' => array(
0 => '^2.13.0',
),
),
),
);

26
vendor/composer/platform_check.php vendored Normal file
View File

@ -0,0 +1,26 @@
<?php
// platform_check.php @generated by Composer
$issues = array();
if (!(PHP_VERSION_ID >= 70400)) {
$issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0". You are running ' . PHP_VERSION . '.';
}
if ($issues) {
if (!headers_sent()) {
header('HTTP/1.1 500 Internal Server Error');
}
if (!ini_get('display_errors')) {
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
} elseif (!headers_sent()) {
echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
}
}
trigger_error(
'Composer detected issues in your platform: ' . implode(' ', $issues),
E_USER_ERROR
);
}

View File

@ -0,0 +1,58 @@
{
"name": "laminas/laminas-loader",
"description": "Autoloading and plugin loading strategies",
"license": "BSD-3-Clause",
"keywords": [
"laminas",
"loader"
],
"homepage": "https://laminas.dev",
"support": {
"docs": "https://docs.laminas.dev/laminas-loader/",
"issues": "https://github.com/laminas/laminas-loader/issues",
"source": "https://github.com/laminas/laminas-loader",
"rss": "https://github.com/laminas/laminas-loader/releases.atom",
"chat": "https://laminas.dev/chat",
"forum": "https://discourse.laminas.dev"
},
"config": {
"sort-packages": true
},
"extra": {
"branch-alias": {
"dev-master": "2.6.x-dev",
"dev-develop": "2.7.x-dev"
}
},
"require": {
"php": "^5.6 || ^7.0",
"laminas/laminas-zendframework-bridge": "^1.0"
},
"require-dev": {
"laminas/laminas-coding-standard": "~1.0.0",
"phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4"
},
"autoload": {
"psr-4": {
"Laminas\\Loader\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"LaminasTest\\Loader\\": "test/"
}
},
"scripts": {
"check": [
"@cs-check",
"@test"
],
"cs-check": "phpcs",
"cs-fix": "phpcbf",
"test": "phpunit --colors=always",
"test-coverage": "phpunit --colors=always --coverage-clover clover.xml"
},
"replace": {
"zendframework/zend-loader": "self.version"
}
}

View File

@ -0,0 +1,63 @@
{
"name": "laminas/laminas-mime",
"description": "Create and parse MIME messages and parts",
"license": "BSD-3-Clause",
"keywords": [
"laminas",
"mime"
],
"homepage": "https://laminas.dev",
"support": {
"docs": "https://docs.laminas.dev/laminas-mime/",
"issues": "https://github.com/laminas/laminas-mime/issues",
"source": "https://github.com/laminas/laminas-mime",
"rss": "https://github.com/laminas/laminas-mime/releases.atom",
"chat": "https://laminas.dev/chat",
"forum": "https://discourse.laminas.dev"
},
"config": {
"sort-packages": true
},
"extra": {
"branch-alias": {
"dev-master": "2.7.x-dev",
"dev-develop": "2.8.x-dev"
}
},
"require": {
"php": "^5.6 || ^7.0",
"laminas/laminas-stdlib": "^2.7 || ^3.0",
"laminas/laminas-zendframework-bridge": "^1.0"
},
"require-dev": {
"laminas/laminas-coding-standard": "~1.0.0",
"laminas/laminas-mail": "^2.6",
"phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20"
},
"suggest": {
"laminas/laminas-mail": "Laminas\\Mail component"
},
"autoload": {
"psr-4": {
"Laminas\\Mime\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"LaminasTest\\Mime\\": "test/"
}
},
"scripts": {
"check": [
"@cs-check",
"@test"
],
"cs-check": "phpcs",
"cs-fix": "phpcbf",
"test": "phpunit --colors=always",
"test-coverage": "phpunit --colors=always --coverage-clover clover.xml"
},
"replace": {
"zendframework/zend-mime": "^2.7.2"
}
}

View File

@ -0,0 +1,60 @@
{
"name": "laminas/laminas-stdlib",
"description": "SPL extensions, array utilities, error handlers, and more",
"license": "BSD-3-Clause",
"keywords": [
"laminas",
"stdlib"
],
"homepage": "https://laminas.dev",
"support": {
"docs": "https://docs.laminas.dev/laminas-stdlib/",
"issues": "https://github.com/laminas/laminas-stdlib/issues",
"source": "https://github.com/laminas/laminas-stdlib",
"rss": "https://github.com/laminas/laminas-stdlib/releases.atom",
"chat": "https://laminas.dev/chat",
"forum": "https://discourse.laminas.dev"
},
"config": {
"sort-packages": true
},
"extra": {
"branch-alias": {
"dev-master": "3.2.x-dev",
"dev-develop": "3.3.x-dev"
}
},
"require": {
"php": "^5.6 || ^7.0",
"laminas/laminas-zendframework-bridge": "^1.0"
},
"require-dev": {
"laminas/laminas-coding-standard": "~1.0.0",
"phpbench/phpbench": "^0.13",
"phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2"
},
"autoload": {
"psr-4": {
"Laminas\\Stdlib\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"LaminasTest\\Stdlib\\": "test/",
"LaminasBench\\Stdlib\\": "benchmark/"
}
},
"scripts": {
"check": [
"@cs-check",
"@test"
],
"cs-check": "phpcs",
"cs-fix": "phpcbf",
"test": "phpunit --colors=always",
"test-coverage": "phpunit --colors=always --coverage-clover clover.xml"
},
"replace": {
"zendframework/zend-stdlib": "self.version"
}
}

View File

@ -0,0 +1,84 @@
{
"name": "laminas/laminas-validator",
"description": "Validation classes for a wide range of domains, and the ability to chain validators to create complex validation criteria",
"license": "BSD-3-Clause",
"keywords": [
"laminas",
"validator"
],
"homepage": "https://laminas.dev",
"support": {
"docs": "https://docs.laminas.dev/laminas-validator/",
"issues": "https://github.com/laminas/laminas-validator/issues",
"source": "https://github.com/laminas/laminas-validator",
"rss": "https://github.com/laminas/laminas-validator/releases.atom",
"chat": "https://laminas.dev/chat",
"forum": "https://discourse.laminas.dev"
},
"config": {
"sort-packages": true
},
"extra": {
"laminas": {
"component": "Laminas\\Validator",
"config-provider": "Laminas\\Validator\\ConfigProvider"
}
},
"require": {
"php": "^7.1",
"container-interop/container-interop": "^1.1",
"laminas/laminas-stdlib": "^3.2.1",
"laminas/laminas-zendframework-bridge": "^1.0"
},
"require-dev": {
"laminas/laminas-cache": "^2.6.1",
"laminas/laminas-coding-standard": "~1.0.0",
"laminas/laminas-config": "^2.6",
"laminas/laminas-db": "^2.7",
"laminas/laminas-filter": "^2.6",
"laminas/laminas-http": "^2.5.4",
"laminas/laminas-i18n": "^2.6",
"laminas/laminas-math": "^2.6",
"laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3",
"laminas/laminas-session": "^2.8",
"laminas/laminas-uri": "^2.5",
"phpunit/phpunit": "^7.5.20 || ^8.5.2",
"psr/http-client": "^1.0",
"psr/http-factory": "^1.0",
"psr/http-message": "^1.0"
},
"suggest": {
"laminas/laminas-db": "Laminas\\Db component, required by the (No)RecordExists validator",
"laminas/laminas-filter": "Laminas\\Filter component, required by the Digits validator",
"laminas/laminas-i18n": "Laminas\\I18n component to allow translation of validation error messages",
"laminas/laminas-i18n-resources": "Translations of validator messages",
"laminas/laminas-math": "Laminas\\Math component, required by the Csrf validator",
"laminas/laminas-servicemanager": "Laminas\\ServiceManager component to allow using the ValidatorPluginManager and validator chains",
"laminas/laminas-session": "Laminas\\Session component, ^2.8; required by the Csrf validator",
"laminas/laminas-uri": "Laminas\\Uri component, required by the Uri and Sitemap\\Loc validators",
"psr/http-message": "psr/http-message, required when validating PSR-7 UploadedFileInterface instances via the Upload and UploadFile validators"
},
"autoload": {
"psr-4": {
"Laminas\\Validator\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"LaminasTest\\Validator\\": "test/"
}
},
"scripts": {
"check": [
"@cs-check",
"@test"
],
"cs-check": "phpcs",
"cs-fix": "phpcbf",
"test": "phpunit --colors=always",
"test-coverage": "phpunit --colors=always --coverage-clover clover.xml"
},
"replace": {
"zendframework/zend-validator": "^2.13.0"
}
}

0
vendor/laminas/laminas-validator/src/Db/AbstractDb.php vendored Normal file → Executable file
View File

0
vendor/laminas/laminas-validator/src/Isbn/Isbn10.php vendored Normal file → Executable file
View File

0
vendor/laminas/laminas-validator/src/Isbn/Isbn13.php vendored Normal file → Executable file
View File

View File

@ -0,0 +1,7 @@
/build
/vendor
/composer.lock
/coverage.xml
/.phpunit.result.cache
/.php_cs.cache
.DS_Store

View File

@ -0,0 +1,29 @@
<?php
$finder = PhpCsFixer\Finder::create()->in([__DIR__ . '/src', __DIR__ . '/tests']);
return PhpCsFixer\Config::create()
->setRules([
'@PSR2' => true,
'array_syntax' => ['syntax' => 'short'],
'binary_operator_spaces' => true,
'blank_line_before_return' => true,
'cast_spaces' => true,
'concat_space' => ['spacing' => 'one'],
'no_singleline_whitespace_before_semicolons' => true,
'not_operator_with_space' => true,
'ordered_imports' => true,
'phpdoc_align' => true,
'phpdoc_indent' => true,
'phpdoc_no_access' => true,
'phpdoc_no_alias_tag' => true,
'phpdoc_no_package' => true,
'phpdoc_scalar' => true,
'phpdoc_separation' => true,
'phpdoc_summary' => true,
'phpdoc_to_comment' => true,
'phpdoc_trim' => true,
'single_blank_line_at_eof' => true,
'ternary_operator_spaces' => true,
])
->setFinder($finder);

View File

@ -0,0 +1,35 @@
filter:
excluded_paths: [tests/*]
checks:
php:
code_rating: true
remove_extra_empty_lines: true
remove_php_closing_tag: true
remove_trailing_whitespace: true
fix_use_statements:
remove_unused: true
preserve_multiple: false
preserve_blanklines: true
order_alphabetically: true
fix_php_opening_tag: true
fix_linefeed: true
fix_line_ending: true
fix_identation_4spaces: true
fix_doc_comments: true
tools:
external_code_coverage:
timeout: 600
runs: 4
php_analyzer: true
php_code_coverage: false
php_code_sniffer:
config:
standard: PSR2
filter:
paths: ['src']
php_loc:
enabled: true
excluded_dirs: [vendor, tests]
php_cpd:
enabled: true
excluded_dirs: [vendor, tests]

57
vendor/league/oauth1-client/.travis.yml vendored Normal file
View File

@ -0,0 +1,57 @@
language: php
matrix:
include:
- php: 7.1
dist: bionic
env: COMPOSER_OPTS=""
- php: 7.1
dist: bionic
env: COMPOSER_OPTS="--prefer-lowest"
- php: 7.2
dist: bionic
env: COMPOSER_OPTS=""
- php: 7.2
dist: bionic
env: COMPOSER_OPTS="--prefer-lowest"
- php: 7.3
dist: bionic
env: COMPOSER_OPTS=""
- php: 7.3
dist: bionic
env: COMPOSER_OPTS="--prefer-lowest"
- php: 7.4
dist: bionic
env: COMPOSER_OPTS=""
- php: 7.4
dist: bionic
env: COMPOSER_OPTS="--prefer-lowest"
- php: 8.0
dist: bionic
env: COMPOSER_OPTS=""
- php: 8.0
dist: bionic
env: COMPOSER_OPTS="--prefer-lowest"
- php: nightly
dist: bionic
env: COMPOSER_OPTS="--ignore-platform-reqs"
- php: nightly
dist: bionic
env: COMPOSER_OPTS="--ignore-platform-reqs --prefer-lowest"
allow_failures:
- php: nightly
env: COMPOSER_OPTS="--ignore-platform-reqs"
- php: nightly
env: COMPOSER_OPTS="--ignore-platform-reqs --prefer-lowest"
install:
- travis_retry composer update --prefer-dist $COMPOSER_OPTS
script:
- composer php-cs-fixer:lint
- composer test:unit
- composer analyze
after_script:
- wget https://scrutinizer-ci.com/ocular.phar
- php ocular.phar code-coverage:upload --format=php-clover coverage.xml

View File

@ -0,0 +1,65 @@
{
"name": "league/oauth1-client",
"description": "OAuth 1.0 Client Library",
"license": "MIT",
"require": {
"php": ">=7.1||>=8.0",
"ext-json": "*",
"ext-openssl": "*",
"guzzlehttp/guzzle": "^6.0|^7.0"
},
"require-dev": {
"ext-simplexml": "*",
"phpunit/phpunit": "^7.5||9.5",
"mockery/mockery": "^1.3.3",
"phpstan/phpstan": "^0.12.42",
"friendsofphp/php-cs-fixer": "^2.17"
},
"scripts": {
"analyze": "vendor/bin/phpstan analyse -l 6 src/",
"php-cs-fixer:lint": "PHP_CS_FIXER_IGNORE_ENV=1 vendor/bin/php-cs-fixer fix --verbose --dry-run",
"php-cs-fixer:format": "PHP_CS_FIXER_IGNORE_ENV=1 vendor/bin/php-cs-fixer fix",
"test:unit": "vendor/bin/phpunit --coverage-text --coverage-clover coverage.xml"
},
"suggest": {
"ext-simplexml": "For decoding XML-based responses."
},
"keywords": [
"oauth",
"oauth1",
"authorization",
"authentication",
"idp",
"identity",
"sso",
"single sign on",
"bitbucket",
"trello",
"tumblr",
"twitter"
],
"authors": [
{
"name": "Ben Corlett",
"email": "bencorlett@me.com",
"homepage": "http://www.webcomm.com.au",
"role": "Developer"
}
],
"autoload": {
"psr-4": {
"League\\OAuth1\\Client\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"League\\OAuth1\\Client\\Tests\\": "tests/"
}
},
"extra": {
"branch-alias": {
"dev-master": "1.0-dev",
"dev-develop": "2.0-dev"
}
}
}

View File

@ -0,0 +1,28 @@
<?php
namespace League\OAuth1\Client\Tests;
use League\OAuth1\Client\Credentials\ClientCredentials;
use Mockery as m;
use PHPUnit\Framework\TestCase;
class ClientCredentialsTest extends TestCase
{
protected function tearDown(): void
{
m::close();
parent::tearDown();
}
public function testManipulating()
{
$credentials = new ClientCredentials;
$this->assertNull($credentials->getIdentifier());
$credentials->setIdentifier('foo');
$this->assertEquals('foo', $credentials->getIdentifier());
$this->assertNull($credentials->getSecret());
$credentials->setSecret('foo');
$this->assertEquals('foo', $credentials->getSecret());
}
}

View File

@ -0,0 +1,156 @@
<?php
namespace League\OAuth1\Client\Tests;
use League\OAuth1\Client\Signature\HmacSha1Signature;
use Mockery as m;
use PHPUnit\Framework\TestCase;
class HmacSha1SignatureTest extends TestCase
{
protected function tearDown(): void
{
m::close();
parent::tearDown();
}
public function testSigningRequest()
{
$signature = new HmacSha1Signature($this->getMockClientCredentials());
$uri = 'http://www.example.com/?qux=corge';
$parameters = ['foo' => 'bar', 'baz' => null];
$this->assertEquals('A3Y7C1SUHXR1EBYIUlT3d6QT1cQ=', $signature->sign($uri, $parameters));
}
public function testSigningRequestWhereThePortIsNotStandard()
{
$signature = new HmacSha1Signature($this->getMockClientCredentials());
$uri = 'http://www.example.com:8080/?qux=corge';
$parameters = ['foo' => 'bar', 'baz' => null];
$this->assertEquals('ECcWxyi5UOC1G0MxH0ygm6Pd6JE=', $signature->sign($uri, $parameters));
}
public function testQueryStringFromArray()
{
$array = ['a' => 'b'];
$res = $this->invokeQueryStringFromData($array);
$this->assertSame(
'a%3Db',
$res
);
}
public function testQueryStringFromIndexedArray()
{
$array = ['a', 'b'];
$res = $this->invokeQueryStringFromData($array);
$this->assertSame(
'0%3Da%261%3Db',
$res
);
}
public function testQueryStringFromMultiDimensionalArray()
{
$array = [
'a' => [
'b' => [
'c' => 'd',
],
'e' => [
'f' => 'g',
],
],
'h' => 'i',
'empty' => '',
'null' => null,
'false' => false,
];
// Convert to query string.
$res = $this->invokeQueryStringFromData($array);
$this->assertSame(
'a%5Bb%5D%5Bc%5D%3Dd%26a%5Be%5D%5Bf%5D%3Dg%26h%3Di%26empty%3D%26null%3D%26false%3D',
$res
);
// Reverse engineer the string.
$res = urldecode($res);
$this->assertSame(
'a[b][c]=d&a[e][f]=g&h=i&empty=&null=&false=',
$res
);
// Finally, parse the string back to an array.
parse_str($res, $original_array);
// And ensure it matches the orignal array (approximately).
$this->assertSame(
[
'a' => [
'b' => [
'c' => 'd',
],
'e' => [
'f' => 'g',
],
],
'h' => 'i',
'empty' => '',
'null' => '', // null value gets lost in string translation
'false' => '', // false value gets lost in string translation
],
$original_array
);
}
public function testSigningRequestWithMultiDimensionalParams()
{
$signature = new HmacSha1Signature($this->getMockClientCredentials());
$uri = 'http://www.example.com/';
$parameters = [
'a' => [
'b' => [
'c' => 'd',
],
'e' => [
'f' => 'g',
],
],
'h' => 'i',
'empty' => '',
'null' => null,
'false' => false,
];
$this->assertEquals('ZUxiJKugeEplaZm9e4hshN0I70U=', $signature->sign($uri, $parameters));
}
protected function invokeQueryStringFromData(array $args)
{
$signature = new HmacSha1Signature(m::mock('League\OAuth1\Client\Credentials\ClientCredentialsInterface'));
$refl = new \ReflectionObject($signature);
$method = $refl->getMethod('queryStringFromData');
$method->setAccessible(true);
return $method->invokeArgs($signature, [$args]);
}
protected function getMockClientCredentials()
{
$clientCredentials = m::mock('League\OAuth1\Client\Credentials\ClientCredentialsInterface');
$clientCredentials->shouldReceive('getSecret')->andReturn('clientsecret');
return $clientCredentials;
}
}

View File

@ -0,0 +1,43 @@
<?php
namespace League\OAuth1\Client\Tests;
use League\OAuth1\Client\Signature\PlainTextSignature;
use Mockery as m;
use PHPUnit\Framework\TestCase;
class PlainTextSignatureTest extends TestCase
{
protected function tearDown(): void
{
m::close();
parent::tearDown();
}
public function testSigningRequest()
{
$signature = new PlainTextSignature($this->getMockClientCredentials());
$this->assertEquals('clientsecret&', $signature->sign($uri = 'http://www.example.com/'));
$signature->setCredentials($this->getMockCredentials());
$this->assertEquals('clientsecret&tokensecret', $signature->sign($uri));
$this->assertEquals('PLAINTEXT', $signature->method());
}
protected function getMockClientCredentials()
{
$clientCredentials = m::mock('League\OAuth1\Client\Credentials\ClientCredentialsInterface');
$clientCredentials->shouldReceive('getSecret')->andReturn('clientsecret');
return $clientCredentials;
}
protected function getMockCredentials()
{
$credentials = m::mock('League\OAuth1\Client\Credentials\CredentialsInterface');
$credentials->shouldReceive('getSecret')->andReturn('tokensecret');
return $credentials;
}
}

View File

@ -0,0 +1,75 @@
<?php
namespace League\OAuth1\Client\Tests;
use League\OAuth1\Client\Credentials\CredentialsException;
use League\OAuth1\Client\Credentials\RsaClientCredentials;
use OpenSSLAsymmetricKey;
use PHPUnit\Framework\TestCase;
class RsaClientCredentialsTest extends TestCase
{
public function testGetRsaPublicKey()
{
$credentials = new RsaClientCredentials();
$credentials->setRsaPublicKey(__DIR__ . '/test_rsa_publickey.pem');
/** @var resource|OpenSSLAsymmetricKey $key */
$key = $credentials->getRsaPublicKey();
$this->assertFalse(is_null($key));
$this->assertEquals($key, $credentials->getRsaPublicKey());
}
public function testGetRsaPublicKeyNotExists()
{
$this->expectException(CredentialsException::class);
$credentials = new RsaClientCredentials();
$credentials->setRsaPublicKey('fail');
$credentials->getRsaPublicKey();
}
public function testGetRsaPublicKeyInvalid()
{
$this->expectException(CredentialsException::class);
$credentials = new RsaClientCredentials();
$credentials->setRsaPublicKey(__DIR__ . '/test_rsa_invalidkey.pem');
$credentials->getRsaPublicKey();
}
public function testGetRsaPrivateKey()
{
$credentials = new RsaClientCredentials();
$credentials->setRsaPrivateKey(__DIR__ . '/test_rsa_privatekey.pem');
/** @var resource|OpenSSLAsymmetricKey $key */
$key = $credentials->getRsaPrivateKey();
$this->assertFalse(is_null($key));
$this->assertEquals($key, $credentials->getRsaPrivateKey());
}
public function testGetRsaPrivateKeyNotExists()
{
$this->expectException(CredentialsException::class);
$credentials = new RsaClientCredentials();
$credentials->setRsaPrivateKey('fail');
$credentials->getRsaPrivateKey();
}
public function testGetRsaPrivateKeyInvalid()
{
$this->expectException(CredentialsException::class);
$credentials = new RsaClientCredentials();
$credentials->setRsaPrivateKey(__DIR__ . '/test_rsa_invalidkey.pem');
$credentials->getRsaPrivateKey();
}
}

View File

@ -0,0 +1,148 @@
<?php
namespace League\OAuth1\Client\Tests;
use League\OAuth1\Client\Credentials\ClientCredentialsInterface;
use League\OAuth1\Client\Credentials\RsaClientCredentials;
use League\OAuth1\Client\Signature\RsaSha1Signature;
use Mockery;
use PHPUnit\Framework\TestCase;
class RsaSha1SignatureTest extends TestCase
{
public function testMethod()
{
$signature = new RsaSha1Signature($this->getClientCredentials());
$this->assertEquals('RSA-SHA1', $signature->method());
}
public function testSigningRequest()
{
$signature = new RsaSha1Signature($this->getClientCredentials());
$uri = 'http://www.example.com/?qux=corge';
$parameters = ['foo' => 'bar', 'baz' => null];
$this->assertEquals('h8vpV4CYnLwss+rWicKE4sY6AiW2+DT6Fe7qB8jA7LSLhX5jvLEeX1D8E2ynSePSksAY48j+OSLu9vo5juS2duwNK8UA2Rtnnvuj6UFxpx70dpjHAsQg6EbycGptL/SChDkxfpG8LhuwX1FlFa+H0jLYXI5Dy8j90g51GRJbj48=', $signature->sign($uri, $parameters));
}
public function testQueryStringFromArray()
{
$array = ['a' => 'b'];
$res = $this->invokeQueryStringFromData($array);
$this->assertSame(
'a%3Db',
$res
);
}
public function testQueryStringFromIndexedArray()
{
$array = ['a', 'b'];
$res = $this->invokeQueryStringFromData($array);
$this->assertSame(
'0%3Da%261%3Db',
$res
);
}
public function testQueryStringFromMultiDimensionalArray()
{
$array = [
'a' => [
'b' => [
'c' => 'd',
],
'e' => [
'f' => 'g',
],
],
'h' => 'i',
'empty' => '',
'null' => null,
'false' => false,
];
// Convert to query string.
$res = $this->invokeQueryStringFromData($array);
$this->assertSame(
'a%5Bb%5D%5Bc%5D%3Dd%26a%5Be%5D%5Bf%5D%3Dg%26h%3Di%26empty%3D%26null%3D%26false%3D',
$res
);
// Reverse engineer the string.
$res = urldecode($res);
$this->assertSame(
'a[b][c]=d&a[e][f]=g&h=i&empty=&null=&false=',
$res
);
// Finally, parse the string back to an array.
parse_str($res, $original_array);
// And ensure it matches the orignal array (approximately).
$this->assertSame(
[
'a' => [
'b' => [
'c' => 'd',
],
'e' => [
'f' => 'g',
],
],
'h' => 'i',
'empty' => '',
'null' => '', // null value gets lost in string translation
'false' => '', // false value gets lost in string translation
],
$original_array
);
}
public function testSigningRequestWithMultiDimensionalParams()
{
$signature = new RsaSha1Signature($this->getClientCredentials());
$uri = 'http://www.example.com/';
$parameters = [
'a' => [
'b' => [
'c' => 'd',
],
'e' => [
'f' => 'g',
],
],
'h' => 'i',
'empty' => '',
'null' => null,
'false' => false,
];
$this->assertEquals('X9EkmOEbA5CoF2Hicf3ciAumpp1zkKxnVZkh/mEwWyF2DDcrfou9XF11WvbBu3G4loJGeX4GY1FsIrQpsjEILbn0e7Alyii/x8VA9mBwdqMhQVl49jF0pdowocc03M04cAbAOMNObT7tMmDs+YTFgRxEGCiUkq9AizP1cW3+eBo=', $signature->sign($uri, $parameters));
}
protected function invokeQueryStringFromData(array $args)
{
$signature = new RsaSha1Signature(Mockery::mock(ClientCredentialsInterface::class));
$refl = new \ReflectionObject($signature);
$method = $refl->getMethod('queryStringFromData');
$method->setAccessible(true);
return $method->invokeArgs($signature, [$args]);
}
protected function getClientCredentials()
{
$credentials = new RsaClientCredentials();
$credentials->setRsaPublicKey(__DIR__ . '/test_rsa_publickey.pem');
$credentials->setRsaPrivateKey(__DIR__ . '/test_rsa_privatekey.pem');
return $credentials;
}
}

View File

@ -0,0 +1,313 @@
<?php
namespace League\OAuth1\Client\Tests;
use InvalidArgumentException;
use League\OAuth1\Client\Credentials\ClientCredentials;
use League\OAuth1\Client\Credentials\RsaClientCredentials;
use League\OAuth1\Client\Signature\RsaSha1Signature;
use Mockery as m;
use PHPUnit\Framework\TestCase;
use Psr\Http\Message\ResponseInterface;
class ServerTest extends TestCase
{
/**
* Setup resources and dependencies.
*/
public static function setUpBeforeClass(): void
{
parent::setUpBeforeClass();
require_once __DIR__ . '/stubs/ServerStub.php';
}
protected function tearDown(): void
{
m::close();
parent::tearDown();
}
public function testCreatingWithArray()
{
$server = new ServerStub($this->getMockClientCredentials());
$credentials = $server->getClientCredentials();
$this->assertInstanceOf('League\OAuth1\Client\Credentials\ClientCredentialsInterface', $credentials);
$this->assertEquals('myidentifier', $credentials->getIdentifier());
$this->assertEquals('mysecret', $credentials->getSecret());
$this->assertEquals('http://app.dev/', $credentials->getCallbackUri());
}
public function testCreatingWithArrayRsa()
{
$config = [
'identifier' => 'app_key',
'secret' => 'secret',
'callback_uri' => 'https://example.com/callback',
'rsa_public_key' => __DIR__ . '/test_rsa_publickey.pem',
'rsa_private_key' => __DIR__ . '/test_rsa_privatekey.pem',
];
$server = new ServerStub($config);
$credentials = $server->getClientCredentials();
$this->assertInstanceOf(RsaClientCredentials::class, $credentials);
$signature = $server->getSignature();
$this->assertInstanceOf(RsaSha1Signature::class, $signature);
}
public function testCreatingWithObject()
{
$credentials = new ClientCredentials;
$credentials->setIdentifier('myidentifier');
$credentials->setSecret('mysecret');
$credentials->setCallbackUri('http://app.dev/');
$server = new ServerStub($credentials);
$this->assertEquals($credentials, $server->getClientCredentials());
}
public function testCreatingWithInvalidInput()
{
$this->expectException(InvalidArgumentException::class);
new ServerStub(uniqid());
}
public function testGettingTemporaryCredentials()
{
$server = m::mock('League\OAuth1\Client\Tests\ServerStub[createHttpClient]', [$this->getMockClientCredentials()]);
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
$me = $this;
$client->shouldReceive('post')->with('http://www.example.com/temporary', m::on(function ($options) use ($me) {
$headers = $options['headers'];
$me->assertTrue(isset($headers['Authorization']));
// OAuth protocol specifies a strict number of
// headers should be sent, in the correct order.
// We'll validate that here.
$pattern
= '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_callback="'
. preg_quote('http%3A%2F%2Fapp.dev%2F', '/') . '", oauth_signature=".*?"/';
$matches = preg_match($pattern, $headers['Authorization']);
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
return true;
}))->once()->andReturn($response = m::mock('stdClass'));
$response->shouldReceive('getBody')
->andReturn('oauth_token=temporarycredentialsidentifier&oauth_token_secret=temporarycredentialssecret&oauth_callback_confirmed=true');
$credentials = $server->getTemporaryCredentials();
$this->assertInstanceOf('League\OAuth1\Client\Credentials\TemporaryCredentials', $credentials);
$this->assertEquals('temporarycredentialsidentifier', $credentials->getIdentifier());
$this->assertEquals('temporarycredentialssecret', $credentials->getSecret());
}
public function testGettingAuthorizationUrl()
{
$server = new ServerStub($this->getMockClientCredentials());
$expected = 'http://www.example.com/authorize?oauth_token=foo';
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
}
public function testGettingAuthorizationUrlWithOptions()
{
$server = new ServerStub($this->getMockClientCredentials());
$expected = 'http://www.example.com/authorize?oauth_token=foo';
$this->assertEquals($expected, $server->getAuthorizationUrl('foo', ['oauth_token' => 'bar']));
$expected = 'http://www.example.com/authorize?test=bar&oauth_token=foo';
$this->assertEquals($expected, $server->getAuthorizationUrl('foo', ['test' => 'bar']));
}
public function testGettingTokenCredentialsFailsWithManInTheMiddle()
{
$server = new ServerStub($this->getMockClientCredentials());
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
$this->expectException(InvalidArgumentException::class);
$server->getTokenCredentials($credentials, 'bar', 'verifier');
}
public function testGettingTokenCredentials()
{
$server = m::mock('League\OAuth1\Client\Tests\ServerStub[createHttpClient]', [$this->getMockClientCredentials()]);
$temporaryCredentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
$temporaryCredentials->shouldReceive('getIdentifier')->andReturn('temporarycredentialsidentifier');
$temporaryCredentials->shouldReceive('getSecret')->andReturn('temporarycredentialssecret');
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
$me = $this;
$client->shouldReceive('post')->with('http://www.example.com/token', m::on(function ($options) use ($me) {
$headers = $options['headers'];
$body = $options['form_params'];
$me->assertTrue(isset($headers['Authorization']));
$me->assertFalse(isset($headers['User-Agent']));
// OAuth protocol specifies a strict number of
// headers should be sent, in the correct order.
// We'll validate that here.
$pattern
= '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_token="temporarycredentialsidentifier", oauth_signature=".*?"/';
$matches = preg_match($pattern, $headers['Authorization']);
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
$me->assertSame($body, ['oauth_verifier' => 'myverifiercode']);
return true;
}))->once()->andReturn($response = m::mock('stdClass'));
$response->shouldReceive('getBody')
->andReturn('oauth_token=tokencredentialsidentifier&oauth_token_secret=tokencredentialssecret');
$credentials = $server->getTokenCredentials($temporaryCredentials, 'temporarycredentialsidentifier', 'myverifiercode');
$this->assertInstanceOf('League\OAuth1\Client\Credentials\TokenCredentials', $credentials);
$this->assertEquals('tokencredentialsidentifier', $credentials->getIdentifier());
$this->assertEquals('tokencredentialssecret', $credentials->getSecret());
}
public function testGettingTokenCredentialsWithUserAgent()
{
$userAgent = 'FooBar';
$server = m::mock('League\OAuth1\Client\Tests\ServerStub[createHttpClient]', [$this->getMockClientCredentials()]);
$temporaryCredentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
$temporaryCredentials->shouldReceive('getIdentifier')->andReturn('temporarycredentialsidentifier');
$temporaryCredentials->shouldReceive('getSecret')->andReturn('temporarycredentialssecret');
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
$me = $this;
$client->shouldReceive('post')->with('http://www.example.com/token', m::on(function ($options) use ($me, $userAgent) {
$headers = $options['headers'];
$body = $options['form_params'];
$me->assertTrue(isset($headers['Authorization']));
$me->assertTrue(isset($headers['User-Agent']));
$me->assertEquals($userAgent, $headers['User-Agent']);
// OAuth protocol specifies a strict number of
// headers should be sent, in the correct order.
// We'll validate that here.
$pattern
= '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_token="temporarycredentialsidentifier", oauth_signature=".*?"/';
$matches = preg_match($pattern, $headers['Authorization']);
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
$me->assertSame($body, ['oauth_verifier' => 'myverifiercode']);
return true;
}))->once()->andReturn($response = m::mock('stdClass'));
$response->shouldReceive('getBody')
->andReturn('oauth_token=tokencredentialsidentifier&oauth_token_secret=tokencredentialssecret');
$credentials = $server->setUserAgent($userAgent)
->getTokenCredentials($temporaryCredentials, 'temporarycredentialsidentifier', 'myverifiercode');
$this->assertInstanceOf('League\OAuth1\Client\Credentials\TokenCredentials', $credentials);
$this->assertEquals('tokencredentialsidentifier', $credentials->getIdentifier());
$this->assertEquals('tokencredentialssecret', $credentials->getSecret());
}
public function testGettingUserDetails()
{
$server = m::mock(
'League\OAuth1\Client\Tests\ServerStub[createHttpClient,protocolHeader]',
[$this->getMockClientCredentials()]
);
$temporaryCredentials = m::mock('League\OAuth1\Client\Credentials\TokenCredentials');
$temporaryCredentials->shouldReceive('getIdentifier')->andReturn('tokencredentialsidentifier');
$temporaryCredentials->shouldReceive('getSecret')->andReturn('tokencredentialssecret');
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
$me = $this;
$client->shouldReceive('get')->with('http://www.example.com/user', m::on(function ($options) use ($me) {
$headers = $options['headers'];
$me->assertTrue(isset($headers['Authorization']));
// OAuth protocol specifies a strict number of
// headers should be sent, in the correct order.
// We'll validate that here.
$pattern
= '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_token="tokencredentialsidentifier", oauth_signature=".*?"/';
$matches = preg_match($pattern, $headers['Authorization']);
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
return true;
}))->once()->andReturn($response = m::mock(ResponseInterface::class));
$response->shouldReceive('getBody')->once()->andReturn(json_encode([
'foo' => 'bar',
'id' => 123,
'contact_email' => 'baz@qux.com',
'username' => 'fred',
]));
$user = $server->getUserDetails($temporaryCredentials);
$this->assertInstanceOf('League\OAuth1\Client\Server\User', $user);
$this->assertEquals('bar', $user->firstName);
$this->assertEquals(123, $server->getUserUid($temporaryCredentials));
$this->assertEquals('baz@qux.com', $server->getUserEmail($temporaryCredentials));
$this->assertEquals('fred', $server->getUserScreenName($temporaryCredentials));
}
public function testGettingHeaders()
{
$server = new ServerStub($this->getMockClientCredentials());
$tokenCredentials = m::mock('League\OAuth1\Client\Credentials\TokenCredentials');
$tokenCredentials->shouldReceive('getIdentifier')->andReturn('mock_identifier');
$tokenCredentials->shouldReceive('getSecret')->andReturn('mock_secret');
// OAuth protocol specifies a strict number of
// headers should be sent, in the correct order.
// We'll validate that here.
$pattern
= '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_token="mock_identifier", oauth_signature=".*?"/';
// With a GET request
$headers = $server->getHeaders($tokenCredentials, 'GET', 'http://example.com/');
$this->assertTrue(isset($headers['Authorization']));
$matches = preg_match($pattern, $headers['Authorization']);
$this->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
// With a POST request
$headers = $server->getHeaders($tokenCredentials, 'POST', 'http://example.com/', ['body' => 'params']);
$this->assertTrue(isset($headers['Authorization']));
$matches = preg_match($pattern, $headers['Authorization']);
$this->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
}
protected function getMockClientCredentials()
{
return [
'identifier' => 'myidentifier',
'secret' => 'mysecret',
'callback_uri' => 'http://app.dev/',
];
}
}

View File

@ -0,0 +1,349 @@
<?php namespace League\OAuth1\Client\Tests;
use InvalidArgumentException;
use League\OAuth1\Client\Credentials\ClientCredentials;
use League\OAuth1\Client\Server\Trello;
use Mockery as m;
use PHPUnit\Framework\TestCase;
use Psr\Http\Message\ResponseInterface;
class TrelloTest extends TestCase
{
protected function tearDown(): void
{
m::close();
parent::tearDown();
}
public function testCreatingWithArray()
{
$server = new Trello($this->getMockClientCredentials());
$credentials = $server->getClientCredentials();
$this->assertInstanceOf('League\OAuth1\Client\Credentials\ClientCredentialsInterface', $credentials);
$this->assertEquals($this->getApplicationKey(), $credentials->getIdentifier());
$this->assertEquals('mysecret', $credentials->getSecret());
$this->assertEquals('http://app.dev/', $credentials->getCallbackUri());
}
public function testCreatingWithObject()
{
$credentials = new ClientCredentials;
$credentials->setIdentifier('myidentifier');
$credentials->setSecret('mysecret');
$credentials->setCallbackUri('http://app.dev/');
$server = new Trello($credentials);
$this->assertEquals($credentials, $server->getClientCredentials());
}
public function testGettingTemporaryCredentials()
{
$server = m::mock('League\OAuth1\Client\Server\Trello[createHttpClient]', [$this->getMockClientCredentials()]);
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
$me = $this;
$client->shouldReceive('post')->with('https://trello.com/1/OAuthGetRequestToken', m::on(function ($options) use ($me) {
$headers = $options['headers'];
$me->assertTrue(isset($headers['Authorization']));
// OAuth protocol specifies a strict number of
// headers should be sent, in the correct order.
// We'll validate that here.
$pattern = '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_callback="' . preg_quote('http%3A%2F%2Fapp.dev%2F', '/') . '", oauth_signature=".*?"/';
$matches = preg_match($pattern, $headers['Authorization']);
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
return true;
}))->once()->andReturn($response = m::mock(ResponseInterface::class));
$response->shouldReceive('getBody')->andReturn('oauth_token=temporarycredentialsidentifier&oauth_token_secret=temporarycredentialssecret&oauth_callback_confirmed=true');
$credentials = $server->getTemporaryCredentials();
$this->assertInstanceOf('League\OAuth1\Client\Credentials\TemporaryCredentials', $credentials);
$this->assertEquals('temporarycredentialsidentifier', $credentials->getIdentifier());
$this->assertEquals('temporarycredentialssecret', $credentials->getSecret());
}
public function testGettingDefaultAuthorizationUrl()
{
$server = new Trello($this->getMockClientCredentials());
$expected = 'https://trello.com/1/OAuthAuthorizeToken?response_type=fragment&scope=read&expiration=1day&oauth_token=foo';
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
}
public function testGettingAuthorizationUrlWithExpirationAfterConstructingWithExpiration()
{
$credentials = $this->getMockClientCredentials();
$expiration = $this->getApplicationExpiration(2);
$credentials['expiration'] = $expiration;
$server = new Trello($credentials);
$expected = 'https://trello.com/1/OAuthAuthorizeToken?response_type=fragment&scope=read&expiration=' . urlencode($expiration) . '&oauth_token=foo';
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
}
public function testGettingAuthorizationUrlWithExpirationAfterSettingExpiration()
{
$expiration = $this->getApplicationExpiration(2);
$server = new Trello($this->getMockClientCredentials());
$server->setApplicationExpiration($expiration);
$expected = 'https://trello.com/1/OAuthAuthorizeToken?response_type=fragment&scope=read&expiration=' . urlencode($expiration) . '&oauth_token=foo';
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
}
public function testGettingAuthorizationUrlWithNameAfterConstructingWithName()
{
$credentials = $this->getMockClientCredentials();
$name = $this->getApplicationName();
$credentials['name'] = $name;
$server = new Trello($credentials);
$expected = 'https://trello.com/1/OAuthAuthorizeToken?response_type=fragment&scope=read&expiration=1day&name=' . urlencode($name) . '&oauth_token=foo';
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
}
public function testGettingAuthorizationUrlWithNameAfterSettingName()
{
$name = $this->getApplicationName();
$server = new Trello($this->getMockClientCredentials());
$server->setApplicationName($name);
$expected = 'https://trello.com/1/OAuthAuthorizeToken?response_type=fragment&scope=read&expiration=1day&name=' . urlencode($name) . '&oauth_token=foo';
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
}
public function testGettingAuthorizationUrlWithScopeAfterConstructingWithScope()
{
$credentials = $this->getMockClientCredentials();
$scope = $this->getApplicationScope(false);
$credentials['scope'] = $scope;
$server = new Trello($credentials);
$expected = 'https://trello.com/1/OAuthAuthorizeToken?response_type=fragment&scope=' . urlencode($scope) . '&expiration=1day&oauth_token=foo';
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
}
public function testGettingAuthorizationUrlWithScopeAfterSettingScope()
{
$scope = $this->getApplicationScope(false);
$server = new Trello($this->getMockClientCredentials());
$server->setApplicationScope($scope);
$expected = 'https://trello.com/1/OAuthAuthorizeToken?response_type=fragment&scope=' . urlencode($scope) . '&expiration=1day&oauth_token=foo';
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
}
public function testGettingTokenCredentialsFailsWithManInTheMiddle()
{
$server = new Trello($this->getMockClientCredentials());
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
$this->expectException(InvalidArgumentException::class);
$server->getTokenCredentials($credentials, 'bar', 'verifier');
}
public function testGettingTokenCredentials()
{
$server = m::mock('League\OAuth1\Client\Server\Trello[createHttpClient]', [$this->getMockClientCredentials()]);
$temporaryCredentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
$temporaryCredentials->shouldReceive('getIdentifier')->andReturn('temporarycredentialsidentifier');
$temporaryCredentials->shouldReceive('getSecret')->andReturn('temporarycredentialssecret');
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
$me = $this;
$client->shouldReceive('post')->with('https://trello.com/1/OAuthGetAccessToken', m::on(function ($options) use ($me) {
$headers = $options['headers'];
$body = $options['form_params'];
$me->assertTrue(isset($headers['Authorization']));
// OAuth protocol specifies a strict number of
// headers should be sent, in the correct order.
// We'll validate that here.
$pattern = '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_token="temporarycredentialsidentifier", oauth_signature=".*?"/';
$matches = preg_match($pattern, $headers['Authorization']);
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
$me->assertSame($body, ['oauth_verifier' => 'myverifiercode']);
return true;
}))->once()->andReturn($response = m::mock(ResponseInterface::class));
$response->shouldReceive('getBody')->andReturn('oauth_token=tokencredentialsidentifier&oauth_token_secret=tokencredentialssecret');
$credentials = $server->getTokenCredentials($temporaryCredentials, 'temporarycredentialsidentifier', 'myverifiercode');
$this->assertInstanceOf('League\OAuth1\Client\Credentials\TokenCredentials', $credentials);
$this->assertEquals('tokencredentialsidentifier', $credentials->getIdentifier());
$this->assertEquals('tokencredentialssecret', $credentials->getSecret());
}
public function testGettingUserDetails()
{
$server = m::mock('League\OAuth1\Client\Server\Trello[createHttpClient,protocolHeader]', [$this->getMockClientCredentials()]);
$temporaryCredentials = m::mock('League\OAuth1\Client\Credentials\TokenCredentials');
$temporaryCredentials->shouldReceive('getIdentifier')->andReturn('tokencredentialsidentifier');
$temporaryCredentials->shouldReceive('getSecret')->andReturn('tokencredentialssecret');
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
$me = $this;
$client->shouldReceive('get')->with('https://trello.com/1/members/me?key=' . $this->getApplicationKey() . '&token=' . $this->getAccessToken(), m::on(function ($options) use ($me) {
$headers = $options['headers'];
$me->assertTrue(isset($headers['Authorization']));
// OAuth protocol specifies a strict number of
// headers should be sent, in the correct order.
// We'll validate that here.
$pattern = '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_token="tokencredentialsidentifier", oauth_signature=".*?"/';
$matches = preg_match($pattern, $headers['Authorization']);
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
return true;
}))->once()->andReturn($response = m::mock(ResponseInterface::class));
$response->shouldReceive('getBody')->once()->andReturn($this->getUserPayload());
$user = $server
->setAccessToken($this->getAccessToken())
->getUserDetails($temporaryCredentials);
$this->assertInstanceOf('League\OAuth1\Client\Server\User', $user);
$this->assertEquals('Matilda Wormwood', $user->name);
$this->assertEquals('545df696e29c0dddaed31967', $server->getUserUid($temporaryCredentials));
$this->assertEquals(null, $server->getUserEmail($temporaryCredentials));
$this->assertEquals('matildawormwood12', $server->getUserScreenName($temporaryCredentials));
}
protected function getMockClientCredentials()
{
return [
'identifier' => $this->getApplicationKey(),
'secret' => 'mysecret',
'callback_uri' => 'http://app.dev/',
];
}
protected function getAccessToken()
{
return 'lmnopqrstuvwxyz';
}
protected function getApplicationKey()
{
return 'abcdefghijk';
}
protected function getApplicationExpiration($days = 0)
{
return is_numeric($days) && $days > 0 ? $days . 'day' . ($days == 1 ? '' : 's') : 'never';
}
protected function getApplicationName()
{
return 'fizz buzz';
}
protected function getApplicationScope($readonly = true)
{
return $readonly ? 'read' : 'read,write';
}
private function getUserPayload()
{
return '{
"id": "545df696e29c0dddaed31967",
"avatarHash": null,
"bio": "I have magical powers",
"bioData": null,
"confirmed": true,
"fullName": "Matilda Wormwood",
"idPremOrgsAdmin": [],
"initials": "MW",
"memberType": "normal",
"products": [],
"status": "idle",
"url": "https://trello.com/matildawormwood12",
"username": "matildawormwood12",
"avatarSource": "none",
"email": null,
"gravatarHash": "39aaaada0224f26f0bb8f1965326dcb7",
"idBoards": [
"545df696e29c0dddaed31968",
"545e01d6c7b2dd962b5b46cb"
],
"idOrganizations": [
"54adfd79f9aea14f84009a85",
"54adfde13b0e706947bc4789"
],
"loginTypes": null,
"oneTimeMessagesDismissed": [],
"prefs": {
"sendSummaries": true,
"minutesBetweenSummaries": 1,
"minutesBeforeDeadlineToNotify": 1440,
"colorBlind": false,
"timezoneInfo": {
"timezoneNext": "CDT",
"dateNext": "2015-03-08T08:00:00.000Z",
"offsetNext": 300,
"timezoneCurrent": "CST",
"offsetCurrent": 360
}
},
"trophies": [],
"uploadedAvatarHash": null,
"premiumFeatures": [],
"idBoardsPinned": null
}';
}
}

View File

@ -0,0 +1,255 @@
<?php namespace League\OAuth1\Client\Tests;
use InvalidArgumentException;
use League\OAuth1\Client\Credentials\ClientCredentials;
use League\OAuth1\Client\Server\Xing;
use Mockery as m;
use PHPUnit\Framework\TestCase;
use Psr\Http\Message\ResponseInterface;
class XingTest extends TestCase
{
protected function tearDown(): void
{
m::close();
parent::tearDown();
}
public function testCreatingWithArray()
{
$server = new Xing($this->getMockClientCredentials());
$credentials = $server->getClientCredentials();
$this->assertInstanceOf('League\OAuth1\Client\Credentials\ClientCredentialsInterface', $credentials);
$this->assertEquals($this->getApplicationKey(), $credentials->getIdentifier());
$this->assertEquals('mysecret', $credentials->getSecret());
$this->assertEquals('http://app.dev/', $credentials->getCallbackUri());
}
public function testCreatingWithObject()
{
$credentials = new ClientCredentials;
$credentials->setIdentifier('myidentifier');
$credentials->setSecret('mysecret');
$credentials->setCallbackUri('http://app.dev/');
$server = new Xing($credentials);
$this->assertEquals($credentials, $server->getClientCredentials());
}
public function testGettingTemporaryCredentials()
{
$server = m::mock('League\OAuth1\Client\Server\Xing[createHttpClient]', [$this->getMockClientCredentials()]);
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
$me = $this;
$client->shouldReceive('post')->with('https://api.xing.com/v1/request_token', m::on(function ($options) use ($me) {
$headers = $options['headers'];
$me->assertTrue(isset($headers['Authorization']));
// OAuth protocol specifies a strict number of
// headers should be sent, in the correct order.
// We'll validate that here.
$pattern = '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_callback="' . preg_quote('http%3A%2F%2Fapp.dev%2F', '/') . '", oauth_signature=".*?"/';
$matches = preg_match($pattern, $headers['Authorization']);
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
return true;
}))->once()->andReturn($response = m::mock(ResponseInterface::class));
$response->shouldReceive('getBody')->andReturn('oauth_token=temporarycredentialsidentifier&oauth_token_secret=temporarycredentialssecret&oauth_callback_confirmed=true');
$credentials = $server->getTemporaryCredentials();
$this->assertInstanceOf('League\OAuth1\Client\Credentials\TemporaryCredentials', $credentials);
$this->assertEquals('temporarycredentialsidentifier', $credentials->getIdentifier());
$this->assertEquals('temporarycredentialssecret', $credentials->getSecret());
}
public function testGettingDefaultAuthorizationUrl()
{
$server = new Xing($this->getMockClientCredentials());
$expected = 'https://api.xing.com/v1/authorize?oauth_token=foo';
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
}
public function testGettingTokenCredentialsFailsWithManInTheMiddle()
{
$server = new Xing($this->getMockClientCredentials());
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
$this->expectException(InvalidArgumentException::class);
$server->getTokenCredentials($credentials, 'bar', 'verifier');
}
public function testGettingTokenCredentials()
{
$server = m::mock('League\OAuth1\Client\Server\Xing[createHttpClient]', [$this->getMockClientCredentials()]);
$temporaryCredentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
$temporaryCredentials->shouldReceive('getIdentifier')->andReturn('temporarycredentialsidentifier');
$temporaryCredentials->shouldReceive('getSecret')->andReturn('temporarycredentialssecret');
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
$me = $this;
$client->shouldReceive('post')->with('https://api.xing.com/v1/access_token', m::on(function ($options) use ($me) {
$headers = $options['headers'];
$body = $options['form_params'];
$me->assertTrue(isset($headers['Authorization']));
// OAuth protocol specifies a strict number of
// headers should be sent, in the correct order.
// We'll validate that here.
$pattern = '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_token="temporarycredentialsidentifier", oauth_signature=".*?"/';
$matches = preg_match($pattern, $headers['Authorization']);
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
$me->assertSame($body, ['oauth_verifier' => 'myverifiercode']);
return true;
}))->once()->andReturn($response = m::mock(ResponseInterface::class));
$response->shouldReceive('getBody')->andReturn('oauth_token=tokencredentialsidentifier&oauth_token_secret=tokencredentialssecret');
$credentials = $server->getTokenCredentials($temporaryCredentials, 'temporarycredentialsidentifier', 'myverifiercode');
$this->assertInstanceOf('League\OAuth1\Client\Credentials\TokenCredentials', $credentials);
$this->assertEquals('tokencredentialsidentifier', $credentials->getIdentifier());
$this->assertEquals('tokencredentialssecret', $credentials->getSecret());
}
public function testGettingUserDetails()
{
$server = m::mock('League\OAuth1\Client\Server\Xing[createHttpClient,protocolHeader]', [$this->getMockClientCredentials()]);
$temporaryCredentials = m::mock('League\OAuth1\Client\Credentials\TokenCredentials');
$temporaryCredentials->shouldReceive('getIdentifier')->andReturn('tokencredentialsidentifier');
$temporaryCredentials->shouldReceive('getSecret')->andReturn('tokencredentialssecret');
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
$me = $this;
$client->shouldReceive('get')->with('https://api.xing.com/v1/users/me', m::on(function ($options) use ($me) {
$headers = $options['headers'];
$me->assertTrue(isset($headers['Authorization']));
// OAuth protocol specifies a strict number of
// headers should be sent, in the correct order.
// We'll validate that here.
$pattern = '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_token="tokencredentialsidentifier", oauth_signature=".*?"/';
$matches = preg_match($pattern, $headers['Authorization']);
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
return true;
}))->once()->andReturn($response = m::mock(ResponseInterface::class));
$response->shouldReceive('getBody')->once()->andReturn($this->getUserPayload());
$user = $server->getUserDetails($temporaryCredentials);
$this->assertInstanceOf('League\OAuth1\Client\Server\User', $user);
$this->assertEquals('Roman Gelembjuk', $user->name);
$this->assertEquals('17144430_0f9409', $server->getUserUid($temporaryCredentials));
$this->assertEquals('XXXXXXXXXX@gmail.com', $server->getUserEmail($temporaryCredentials));
$this->assertEquals('Roman Gelembjuk', $server->getUserScreenName($temporaryCredentials));
}
protected function getMockClientCredentials()
{
return [
'identifier' => $this->getApplicationKey(),
'secret' => 'mysecret',
'callback_uri' => 'http://app.dev/',
];
}
protected function getApplicationKey()
{
return 'abcdefghijk';
}
protected function getApplicationExpiration($days = 0)
{
return is_numeric($days) && $days > 0 ? $days . 'day' . ($days == 1 ? '' : 's') : 'never';
}
protected function getApplicationName()
{
return 'fizz buzz';
}
private function getUserPayload()
{
return '{
"users":[
{
"id":"17144430_0f9409",
"active_email":"XXXXXXXXXX@gmail.com",
"time_zone":
{
"utc_offset":3.0,
"name":"Europe/Kiev"
},
"display_name":"Roman Gelembjuk",
"first_name":"Roman",
"last_name":"Gelembjuk",
"gender":"m",
"page_name":"Roman_Gelembjuk",
"birth_date":
{"year":null,"month":null,"day":null},
"wants":null,
"haves":null,
"interests":null,
"web_profiles":{},
"badges":[],
"photo_urls":
{
"large":"https://x1.xingassets.com/assets/frontend_minified/img/users/nobody_m.140x185.jpg",
"maxi_thumb":"https://x1.xingassets.com/assets/frontend_minified/img/users/nobody_m.70x93.jpg",
"medium_thumb":"https://x1.xingassets.com/assets/frontend_minified/img/users/nobody_m.57x75.jpg"
},
"permalink":"https://www.xing.com/profile/Roman_Gelembjuk",
"languages":{"en":null},
"employment_status":"EMPLOYEE",
"organisation_member":null,
"instant_messaging_accounts":{},
"educational_background":
{"degree":null,"primary_school":null,"schools":[],"qualifications":[]},
"private_address":{
"street":null,
"zip_code":null,
"city":null,
"province":null,
"country":null,
"email":"XXXXXXXX@gmail.com",
"fax":null,
"phone":null,
"mobile_phone":null}
,"business_address":
{
"street":null,
"zip_code":null,
"city":"Ivano-Frankivsk",
"province":null,
"country":"UA",
"email":null,
"fax":null,"phone":null,"mobile_phone":null
},
"premium_services":[]
}]}';
}
}

View File

@ -0,0 +1,77 @@
<?php
namespace League\OAuth1\Client\Tests;
use League\OAuth1\Client\Credentials\TokenCredentials;
use League\OAuth1\Client\Server\Server;
use League\OAuth1\Client\Server\User;
class ServerStub extends Server
{
/**
* @inheritDoc
*/
public function urlTemporaryCredentials()
{
return 'http://www.example.com/temporary';
}
/**
* @inheritDoc
*/
public function urlAuthorization()
{
return 'http://www.example.com/authorize';
}
/**
* @inheritDoc
*/
public function urlTokenCredentials()
{
return 'http://www.example.com/token';
}
/**
* @inheritDoc
*/
public function urlUserDetails()
{
return 'http://www.example.com/user';
}
/**
* @inheritDoc
*/
public function userDetails($data, TokenCredentials $tokenCredentials)
{
$user = new User;
$user->firstName = $data['foo'];
return $user;
}
/**
* @inheritDoc
*/
public function userUid($data, TokenCredentials $tokenCredentials)
{
return isset($data['id']) ? $data['id'] : null;
}
/**
* @inheritDoc
*/
public function userEmail($data, TokenCredentials $tokenCredentials)
{
return isset($data['contact_email']) ? $data['contact_email'] : null;
}
/**
* @inheritDoc
*/
public function userScreenName($data, TokenCredentials $tokenCredentials)
{
return isset($data['username']) ? $data['username'] : null;
}
}

View File

@ -0,0 +1 @@
not a valid RSA key

View File

@ -0,0 +1,15 @@
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDJScPCpHHPakw9v4nhxi+cBumCml3WpMNDaE3Cxnkf6HALzoi8
fQPx3XRfKSoLG6b7uTG+vDoLCL49ZCyYwrnggsFF08bJMqIhUHlZrkiyT5UhdTIh
XEEFfb6XmieHNtra+ur8E3PVal4PEdOCEmJehBMJkiCsxNOJ/kCeYSMdbQIDAQAB
AoGAMo7JkcEWKP/NCJFsg33xBWKjEj/NpBUcSnkPVwXc9IvAYObOZ3GLJRv3l9NS
ERov9fgNK5hBh/X5OphHr1LxtqU5gAFYx5Qgt/WG3ZH9KScXkaPS3Oq2qK9krbA2
BXYKP4NEqhjJTecy7M8bju5+lsjteyqVSsVLHdLhUfPRbE0CQQDyYP6iChqZm1AK
A8x8PKvJsd4zSdxWXUYSmD7mAtek5VeWblbcXYYdeYPN6hNmqzaLelmrZI51x1Uf
hf1ryIfrAkEA1JmdSsNuxi9MOY3HqErWYsqZ//mVOxVyCAwf7OWQ0rTHEQBhQwpS
9nk0YFHI9t6nVUwXrZ7/7UJPTu8OjPKyBwJAYw2OomwcqM/XKvCYfeFRl1DwbOdv
e4AM5gaAFgHtXP85B0o6hz5VU/BYFCvoF9o6pU+wG6IxsiJvQD3C7mx6VwJAbXYW
PVs4WsQZe/ya0vSNQ1pLRjdr9XrKNoh/m4prMYGwiPloGotjQdIP/JO/ZBQplcpS
2qrl3HPqv5poJHwE2wJBAM37BVINHR0zcSHfFLmSYrqmLx2oC3UAB3exmpYSUgOz
wJqPfmPWuuXuu6h0Z2DazUan+2EiecX6C4ywkm+qk1I=
-----END RSA PRIVATE KEY-----

View File

@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDEDCCAnmgAwIBAgIJAMhMVuHMz+EgMA0GCSqGSIb3DQEBBQUAMGQxCzAJBgNV
BAYTAlVTMQswCQYDVQQIEwJUWDEPMA0GA1UEBxMGQXVzdGluMSEwHwYDVQQKExhJ
bnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxFDASBgNVBAMTC2V4YW1wbGUuY29tMB4X
DTE2MTEwMjIxMDUzNVoXDTIxMTEwMTIxMDUzNVowZDELMAkGA1UEBhMCVVMxCzAJ
BgNVBAgTAlRYMQ8wDQYDVQQHEwZBdXN0aW4xITAfBgNVBAoTGEludGVybmV0IFdp
ZGdpdHMgUHR5IEx0ZDEUMBIGA1UEAxMLZXhhbXBsZS5jb20wgZ8wDQYJKoZIhvcN
AQEBBQADgY0AMIGJAoGBAMlJw8Kkcc9qTD2/ieHGL5wG6YKaXdakw0NoTcLGeR/o
cAvOiLx9A/HddF8pKgsbpvu5Mb68OgsIvj1kLJjCueCCwUXTxskyoiFQeVmuSLJP
lSF1MiFcQQV9vpeaJ4c22tr66vwTc9VqXg8R04ISYl6EEwmSIKzE04n+QJ5hIx1t
AgMBAAGjgckwgcYwHQYDVR0OBBYEFLYKQbsK2oqRO83NbNXC2R6MkNcRMIGWBgNV
HSMEgY4wgYuAFLYKQbsK2oqRO83NbNXC2R6MkNcRoWikZjBkMQswCQYDVQQGEwJV
UzELMAkGA1UECBMCVFgxDzANBgNVBAcTBkF1c3RpbjEhMB8GA1UEChMYSW50ZXJu
ZXQgV2lkZ2l0cyBQdHkgTHRkMRQwEgYDVQQDEwtleGFtcGxlLmNvbYIJAMhMVuHM
z+EgMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEASwEwGQnRCqcNrb6k
g6/xpeyHE9/ruTBIE4dtArQI0NosaERC3i4nRKbgfJfIuYEaYiga4dC51CQqKrbH
YZ0dgYMzzp21OMQyKdz3E7csMJv5xxe5D2svdPzbBGU5+N80FYLx17f3UqsYFaAC
X0/YTQsdlM5tHZOd1ZbQUrERqLs=
-----END CERTIFICATE-----

0
vendor/mtdowling/jmespath.php/bin/jp.php vendored Normal file → Executable file
View File

0
vendor/mtdowling/jmespath.php/bin/perf.php vendored Normal file → Executable file
View File

View File

@ -0,0 +1,39 @@
{
"name": "mtdowling/jmespath.php",
"description": "Declaratively specify how to extract elements from a JSON document",
"keywords": ["json", "jsonpath"],
"license": "MIT",
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
}
],
"require": {
"php": "^5.4 || ^7.0 || ^8.0",
"symfony/polyfill-mbstring": "^1.17"
},
"require-dev": {
"composer/xdebug-handler": "^1.4",
"phpunit/phpunit": "^4.8.36 || ^7.5.15"
},
"autoload": {
"psr-4": {
"JmesPath\\": "src/"
},
"files": ["src/JmesPath.php"]
},
"bin": ["bin/jp.php"],
"extra": {
"branch-alias": {
"dev-master": "2.6-dev"
}
}
}

3
vendor/psr/container/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
composer.lock
composer.phar
/vendor/

22
vendor/psr/container/composer.json vendored Normal file
View File

@ -0,0 +1,22 @@
{
"name": "psr/container",
"type": "library",
"description": "Common Container Interface (PHP FIG PSR-11)",
"keywords": ["psr", "psr-11", "container", "container-interop", "container-interface"],
"homepage": "https://github.com/php-fig/container",
"license": "MIT",
"authors": [
{
"name": "PHP-FIG",
"homepage": "https://www.php-fig.org/"
}
],
"require": {
"php": ">=7.2.0"
},
"autoload": {
"psr-4": {
"Psr\\Container\\": "src/"
}
}
}

26
vendor/psr/http-message/composer.json vendored Normal file
View File

@ -0,0 +1,26 @@
{
"name": "psr/http-message",
"description": "Common interface for HTTP messages",
"keywords": ["psr", "psr-7", "http", "http-message", "request", "response"],
"homepage": "https://github.com/php-fig/http-message",
"license": "MIT",
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"require": {
"php": ">=5.3.0"
},
"autoload": {
"psr-4": {
"Psr\\Http\\Message\\": "src/"
}
},
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
}
}

26
vendor/psr/log/composer.json vendored Normal file
View File

@ -0,0 +1,26 @@
{
"name": "psr/log",
"description": "Common interface for logging libraries",
"keywords": ["psr", "psr-3", "log"],
"homepage": "https://github.com/php-fig/log",
"license": "MIT",
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"require": {
"php": ">=5.3.0"
},
"autoload": {
"psr-4": {
"Psr\\Log\\": "Psr/Log/"
}
},
"extra": {
"branch-alias": {
"dev-master": "1.1.x-dev"
}
}
}

View File

@ -0,0 +1,5 @@
linters:
phpcs:
standard: PSR2
extensions: '.php,.ctp'
tab_width: 4

View File

@ -0,0 +1,63 @@
{
"name": "swiss-payment-slip/swiss-payment-slip",
"description": "A library for creating Swiss payment slips (ESR)",
"license": "MIT",
"homepage": "https://github.com/ravage84/SwissPaymentSlip",
"keywords": [
"Payment slip",
"Inpayment slip",
"Einzahlungsschein",
"ESR"
],
"require": {
"php": ">=5.4.0"
},
"require-dev": {
"phpunit/phpunit": "^4.0.0",
"squizlabs/php_codesniffer": "^2.1.0"
},
"authors": [
{
"name": "Marc Würth",
"email": "ravage@bluewin.ch",
"role": "Lead developer"
},
{
"name": "Manuel Reinhard",
"email": "manu@sprain.ch",
"homepage": "http://www.sprain.ch",
"role": "Developer of the original class"
},
{
"name": "Peter Siska",
"email": "pesche@gridonic.ch",
"homepage": "http://www.gridonic.ch",
"role": "Contributor"
}
],
"support": {
"email": "ravage@bluewin.ch",
"issues": "https://github.com/ravage84/SwissPaymentSlip/issues",
"source": "https://github.com/ravage84/SwissPaymentSlip"
},
"autoload": {
"psr-4": {
"SwissPaymentSlip\\SwissPaymentSlip\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"SwissPaymentSlip\\SwissPaymentSlip\\Tests\\": "tests"
}
},
"scripts": {
"test": "phpunit",
"check-codestyle": "phpcs -p --standard=PSR2 --runtime-set ignore_errors_on_exit 1 --runtime-set ignore_warnings_on_exit 1 src tests examples",
"fix-codestyle": "phpcbf -p --standard=PSR2 --runtime-set ignore_errors_on_exit 1 --runtime-set ignore_warnings_on_exit 1 src tests examples"
},
"config": {
"platform": {
"php": "5.4.0"
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,44 @@
{
"name": "symfony/polyfill-intl-idn",
"type": "library",
"description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
"keywords": ["polyfill", "shim", "compatibility", "portable", "intl", "idn"],
"homepage": "https://symfony.com",
"license": "MIT",
"authors": [
{
"name": "Laurent Bassin",
"email": "laurent@bassin.info"
},
{
"name": "Trevor Rowbotham",
"email": "trevor.rowbotham@pm.me"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"require": {
"php": ">=7.1",
"symfony/polyfill-intl-normalizer": "^1.10",
"symfony/polyfill-php72": "^1.10"
},
"autoload": {
"psr-4": { "Symfony\\Polyfill\\Intl\\Idn\\": "" },
"files": [ "bootstrap.php" ]
},
"suggest": {
"ext-intl": "For best performance"
},
"minimum-stability": "dev",
"extra": {
"branch-alias": {
"dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
}
}