feat(cloudron): add tirreno package artifacts

- Add CloudronStack/output/CloudronPackages-Artifacts/tirreno/ directory and its contents
- Includes package manifest, Dockerfile, source code, documentation, and build artifacts
- Add tirreno-1761840148.tar.gz as a build artifact
- Add tirreno-cloudron-package-1761841304.tar.gz as the Cloudron package
- Include all necessary files for the tirreno Cloudron package

This adds the complete tirreno Cloudron package artifacts to the repository.
This commit is contained in:
2025-10-30 11:43:06 -05:00
parent 0ce353ea9d
commit 91d52d2de5
1692 changed files with 202851 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
<?php
/**
* Device Detector - The Universal Device Detection library for parsing User Agents
*
* @link https://matomo.org
*
* @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
*/
declare(strict_types=1);
namespace DeviceDetector\Cache;
interface CacheInterface
{
/**
* @param string $id
*
* @return mixed
*/
public function fetch(string $id);
/**
* @param string $id
*
* @return bool
*/
public function contains(string $id): bool;
/**
* @param string $id
* @param mixed $data
* @param int $lifeTime
*
* @return bool
*/
public function save(string $id, $data, int $lifeTime = 0): bool;
/**
* @param string $id
*
* @return bool
*/
public function delete(string $id): bool;
/**
* @return bool
*/
public function flushAll(): bool;
}

View File

@@ -0,0 +1,71 @@
<?php
/**
* Device Detector - The Universal Device Detection library for parsing User Agents
*
* @link https://matomo.org
*
* @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
*/
declare(strict_types=1);
namespace DeviceDetector\Cache;
use Doctrine\Common\Cache\CacheProvider;
class DoctrineBridge implements CacheInterface
{
/**
* @var CacheProvider
*/
private $cache;
/**
* @param CacheProvider $cache
*/
public function __construct(CacheProvider $cache)
{
$this->cache = $cache;
}
/**
* @inheritDoc
*/
public function fetch(string $id)
{
return $this->cache->fetch($id);
}
/**
* @inheritDoc
*/
public function contains(string $id): bool
{
return $this->cache->contains($id);
}
/**
* @inheritDoc
*/
public function save(string $id, $data, int $lifeTime = 0): bool
{
return $this->cache->save($id, $data, $lifeTime);
}
/**
* @inheritDoc
*/
public function delete(string $id): bool
{
return $this->cache->delete($id);
}
/**
* @inheritDoc
*/
public function flushAll(): bool
{
return $this->cache->flushAll();
}
}

View File

@@ -0,0 +1,58 @@
<?php
/**
* Device Detector - The Universal Device Detection library for parsing User Agents
*
* @link https://matomo.org
*
* @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
*/
declare(strict_types=1);
namespace DeviceDetector\Cache;
use Illuminate\Support\Facades\Cache;
class LaravelCache implements CacheInterface
{
/**
* @inheritDoc
*/
public function fetch(string $id)
{
return Cache::get($id);
}
/**
* @inheritDoc
*/
public function contains(string $id): bool
{
return Cache::has($id);
}
/**
* @inheritDoc
*/
public function save(string $id, $data, int $lifeTime = 0): bool
{
return Cache::put($id, $data, \func_num_args() < 3 ? null : $lifeTime);
}
/**
* @inheritDoc
*/
public function delete(string $id): bool
{
return Cache::forget($id);
}
/**
* @inheritDoc
*/
public function flushAll(): bool
{
return Cache::flush();
}
}

View File

@@ -0,0 +1,72 @@
<?php
/**
* Device Detector - The Universal Device Detection library for parsing User Agents
*
* @link https://matomo.org
*
* @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
*/
declare(strict_types=1);
namespace DeviceDetector\Cache;
use Psr\SimpleCache\CacheInterface as PsrCacheInterface;
class PSR16Bridge implements CacheInterface
{
/**
* @var PsrCacheInterface
*/
private $cache;
/**
* PSR16Bridge constructor.
* @param PsrCacheInterface $cache
*/
public function __construct(PsrCacheInterface $cache)
{
$this->cache = $cache;
}
/**
* @inheritDoc
*/
public function fetch(string $id)
{
return $this->cache->get($id, false);
}
/**
* @inheritDoc
*/
public function contains(string $id): bool
{
return $this->cache->has($id);
}
/**
* @inheritDoc
*/
public function save(string $id, $data, int $lifeTime = 0): bool
{
return $this->cache->set($id, $data, \func_num_args() < 3 ? null : $lifeTime);
}
/**
* @inheritDoc
*/
public function delete(string $id): bool
{
return $this->cache->delete($id);
}
/**
* @inheritDoc
*/
public function flushAll(): bool
{
return $this->cache->clear();
}
}

View File

@@ -0,0 +1,81 @@
<?php
/**
* Device Detector - The Universal Device Detection library for parsing User Agents
*
* @link https://matomo.org
*
* @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
*/
declare(strict_types=1);
namespace DeviceDetector\Cache;
use Psr\Cache\CacheItemPoolInterface;
class PSR6Bridge implements CacheInterface
{
/**
* @var CacheItemPoolInterface
*/
private $pool;
/**
* PSR6Bridge constructor.
* @param CacheItemPoolInterface $pool
*/
public function __construct(CacheItemPoolInterface $pool)
{
$this->pool = $pool;
}
/**
* @inheritDoc
*/
public function fetch(string $id)
{
$item = $this->pool->getItem($id);
return $item->isHit() ? $item->get() : false;
}
/**
* @inheritDoc
*/
public function contains(string $id): bool
{
return $this->pool->hasItem($id);
}
/**
* @inheritDoc
*/
public function save(string $id, $data, int $lifeTime = 0): bool
{
$item = $this->pool->getItem($id);
$item->set($data);
if (\func_num_args() > 2) {
$item->expiresAfter($lifeTime);
}
return $this->pool->save($item);
}
/**
* @inheritDoc
*/
public function delete(string $id): bool
{
return $this->pool->deleteItem($id);
}
/**
* @inheritDoc
*/
public function flushAll(): bool
{
return $this->pool->clear();
}
}

View File

@@ -0,0 +1,74 @@
<?php
/**
* Device Detector - The Universal Device Detection library for parsing User Agents
*
* @link https://matomo.org
*
* @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
*/
declare(strict_types=1);
namespace DeviceDetector\Cache;
/**
* Class StaticCache
*
* Simple Cache that caches in a static property
* (Speeds up multiple detections in one request)
*/
class StaticCache implements CacheInterface
{
/**
* Holds the static cache data
* @var array
*/
protected static $staticCache = [];
/**
* @inheritdoc
*/
public function fetch(string $id)
{
return $this->contains($id) ? self::$staticCache[$id] : false;
}
/**
* @inheritdoc
*/
public function contains(string $id): bool
{
return isset(self::$staticCache[$id]) || \array_key_exists($id, self::$staticCache);
}
/**
* @inheritdoc
*/
public function save(string $id, $data, int $lifeTime = 0): bool
{
self::$staticCache[$id] = $data;
return true;
}
/**
* @inheritdoc
*/
public function delete(string $id): bool
{
unset(self::$staticCache[$id]);
return true;
}
/**
* @inheritdoc
*/
public function flushAll(): bool
{
self::$staticCache = [];
return true;
}
}