Add search providers as an editable yaml file + allow searching tiles
This commit is contained in:
parent
96ec1e0b08
commit
f73b78f292
37 changed files with 7013 additions and 63 deletions
|
@ -6,6 +6,7 @@ use App\Item;
|
||||||
use App\Setting;
|
use App\Setting;
|
||||||
use Form;
|
use Form;
|
||||||
use Cache;
|
use Cache;
|
||||||
|
use Yaml;
|
||||||
|
|
||||||
abstract class Search
|
abstract class Search
|
||||||
{
|
{
|
||||||
|
@ -19,7 +20,7 @@ abstract class Search
|
||||||
{
|
{
|
||||||
$providers = self::standardProviders();
|
$providers = self::standardProviders();
|
||||||
$providers = $providers + self::appProviders();
|
$providers = $providers + self::appProviders();
|
||||||
return $providers;
|
return collect($providers);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -41,38 +42,16 @@ abstract class Search
|
||||||
*/
|
*/
|
||||||
public static function standardProviders()
|
public static function standardProviders()
|
||||||
{
|
{
|
||||||
return [
|
// $providers = json_decode(file_get_contents(storage_path('app/searchproviders.json')));
|
||||||
'google' => [
|
// print_r($providers);
|
||||||
'url' => 'https://www.google.com/search',
|
$providers = Yaml::parseFile(storage_path('app/searchproviders.yaml'));
|
||||||
'var' => 'q',
|
$all = [];
|
||||||
'method' => 'get',
|
foreach($providers as $key => $provider) {
|
||||||
'type' => 'standard',
|
$all[$key] = $provider;
|
||||||
],
|
$all[$key]['type'] = 'standard';
|
||||||
'ddg' => [
|
}
|
||||||
'url' => 'https://duckduckgo.com/',
|
|
||||||
'var' => 'q',
|
return $all;
|
||||||
'method' => 'get',
|
|
||||||
'type' => 'standard',
|
|
||||||
],
|
|
||||||
'bing' => [
|
|
||||||
'url' => 'https://www.bing.com/search',
|
|
||||||
'var' => 'q',
|
|
||||||
'method' => 'get',
|
|
||||||
'type' => 'standard',
|
|
||||||
],
|
|
||||||
'qwant' => [
|
|
||||||
'url' => 'https://www.qwant.com/',
|
|
||||||
'var' => 'q',
|
|
||||||
'method' => 'get',
|
|
||||||
'type' => 'standard',
|
|
||||||
],
|
|
||||||
'startpage' => [
|
|
||||||
'url' => 'https://www.startpage.com/do/dsearch',
|
|
||||||
'var' => 'query',
|
|
||||||
'method' => 'get',
|
|
||||||
'type' => 'standard',
|
|
||||||
],
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -90,10 +69,11 @@ abstract class Search
|
||||||
if(($provider = Item::isSearchProvider($app->class)) !== false) {
|
if(($provider = Item::isSearchProvider($app->class)) !== false) {
|
||||||
$name = Item::nameFromClass($app->class);
|
$name = Item::nameFromClass($app->class);
|
||||||
$providers[$app->id] = [
|
$providers[$app->id] = [
|
||||||
|
'id' => $app->id,
|
||||||
'type' => $provider->type,
|
'type' => $provider->type,
|
||||||
'class' => $app->class,
|
'class' => $app->class,
|
||||||
'url' => $app->url,
|
'url' => $app->url,
|
||||||
'title' => $app->title,
|
'name' => $app->title,
|
||||||
'colour' => $app->colour,
|
'colour' => $app->colour,
|
||||||
'icon' => $app->icon,
|
'icon' => $app->icon,
|
||||||
'description' => $app->description
|
'description' => $app->description
|
||||||
|
@ -133,12 +113,8 @@ abstract class Search
|
||||||
$output .= '<div id="search-container" class="input-container">';
|
$output .= '<div id="search-container" class="input-container">';
|
||||||
$output .= '<select name="provider">';
|
$output .= '<select name="provider">';
|
||||||
foreach(self::providers() as $key => $searchprovider) {
|
foreach(self::providers() as $key => $searchprovider) {
|
||||||
$selected = ($key === $user_search_provider) ? ' selected="selected"' : '';
|
$selected = ((string)$key === (string)$user_search_provider) ? ' selected="selected"' : '';
|
||||||
if (is_numeric($key)) {
|
$output .= '<option value="'.$key.'"'.$selected.'>'.$searchprovider['name'].'</option>';
|
||||||
$output .= '<option value="'.$key.'"'.$selected.'>'.$searchprovider['title'].'</option>';
|
|
||||||
} else {
|
|
||||||
$output .= '<option value="'.$key.'"'.$selected.'>'.__('app.options.'.$key).'</option>';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
$output .= '</select>';
|
$output .= '</select>';
|
||||||
$output .= Form::text('q', null, ['class' => 'homesearch', 'autofocus' => 'autofocus', 'placeholder' => __('app.settings.search').'...']);
|
$output .= Form::text('q', null, ['class' => 'homesearch', 'autofocus' => 'autofocus', 'placeholder' => __('app.settings.search').'...']);
|
||||||
|
|
|
@ -74,6 +74,9 @@ class Setting extends Model
|
||||||
case 'select':
|
case 'select':
|
||||||
if(!empty($this->value) && $this->value !== 'none') {
|
if(!empty($this->value) && $this->value !== 'none') {
|
||||||
$options = (array)json_decode($this->options);
|
$options = (array)json_decode($this->options);
|
||||||
|
if($this->key === 'search_provider') {
|
||||||
|
$options = Search::providers()->pluck('name', 'id')->toArray();
|
||||||
|
}
|
||||||
$value = __($options[$this->value]);
|
$value = __($options[$this->value]);
|
||||||
} else {
|
} else {
|
||||||
$value = __('app.options.none');
|
$value = __('app.options.none');
|
||||||
|
@ -122,6 +125,9 @@ class Setting extends Model
|
||||||
break;
|
break;
|
||||||
case 'select':
|
case 'select':
|
||||||
$options = json_decode($this->options);
|
$options = json_decode($this->options);
|
||||||
|
if($this->key === 'search_provider') {
|
||||||
|
$options = Search::providers()->pluck('name', 'id');
|
||||||
|
}
|
||||||
foreach($options as $key => $opt) {
|
foreach($options as $key => $opt) {
|
||||||
$options->$key = __($opt);
|
$options->$key = __($opt);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,8 @@
|
||||||
"laravel/framework": "^7.0",
|
"laravel/framework": "^7.0",
|
||||||
"laravel/tinker": "^2.0",
|
"laravel/tinker": "^2.0",
|
||||||
"laravel/ui": "^2.4",
|
"laravel/ui": "^2.4",
|
||||||
"laravelcollective/html": "^6.0"
|
"laravelcollective/html": "^6.0",
|
||||||
|
"symfony/yaml": "^5.4"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"filp/whoops": "~2.0",
|
"filp/whoops": "~2.0",
|
||||||
|
|
81
composer.lock
generated
81
composer.lock
generated
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "7c2e9180811d1213f10aedcef74bf8dd",
|
"content-hash": "d613105a42b9bb713b2dbc3073bebdc8",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "brick/math",
|
"name": "brick/math",
|
||||||
|
@ -5925,6 +5925,81 @@
|
||||||
],
|
],
|
||||||
"time": "2022-03-02T12:42:23+00:00"
|
"time": "2022-03-02T12:42:23+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/yaml",
|
||||||
|
"version": "v5.4.3",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/yaml.git",
|
||||||
|
"reference": "e80f87d2c9495966768310fc531b487ce64237a2"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/yaml/zipball/e80f87d2c9495966768310fc531b487ce64237a2",
|
||||||
|
"reference": "e80f87d2c9495966768310fc531b487ce64237a2",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=7.2.5",
|
||||||
|
"symfony/deprecation-contracts": "^2.1|^3",
|
||||||
|
"symfony/polyfill-ctype": "^1.8"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"symfony/console": "<5.3"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"symfony/console": "^5.3|^6.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"symfony/console": "For validating YAML files using the lint command"
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"Resources/bin/yaml-lint"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Component\\Yaml\\": ""
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/Tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Loads and dumps YAML files",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/symfony/yaml/tree/v5.4.3"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://symfony.com/sponsor",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2022-01-26T16:32:32+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "tijsverkoyen/css-to-inline-styles",
|
"name": "tijsverkoyen/css-to-inline-styles",
|
||||||
"version": "2.2.4",
|
"version": "2.2.4",
|
||||||
|
@ -8076,8 +8151,8 @@
|
||||||
"prefer-stable": false,
|
"prefer-stable": false,
|
||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
"platform": {
|
"platform": {
|
||||||
"php": ">=7.1.3"
|
"php": ">=7.2.5"
|
||||||
},
|
},
|
||||||
"platform-dev": [],
|
"platform-dev": [],
|
||||||
"plugin-api-version": "2.2.0"
|
"plugin-api-version": "2.1.0"
|
||||||
}
|
}
|
||||||
|
|
|
@ -228,6 +228,7 @@ return [
|
||||||
'URL' => Illuminate\Support\Facades\URL::class,
|
'URL' => Illuminate\Support\Facades\URL::class,
|
||||||
'Validator' => Illuminate\Support\Facades\Validator::class,
|
'Validator' => Illuminate\Support\Facades\Validator::class,
|
||||||
'View' => Illuminate\Support\Facades\View::class,
|
'View' => Illuminate\Support\Facades\View::class,
|
||||||
|
'Yaml' => Symfony\Component\Yaml\Yaml::class,
|
||||||
|
|
||||||
'SupportedApps' => App\SupportedApps::class,
|
'SupportedApps' => App\SupportedApps::class,
|
||||||
'EnhancedApps' => App\EnhancedApps::class,
|
'EnhancedApps' => App\EnhancedApps::class,
|
||||||
|
|
1891
public/css/app.css
vendored
1891
public/css/app.css
vendored
File diff suppressed because one or more lines are too long
742
public/js/app.js
vendored
742
public/js/app.js
vendored
File diff suppressed because one or more lines are too long
4
public/mix-manifest.json
generated
4
public/mix-manifest.json
generated
|
@ -1,4 +1,4 @@
|
||||||
{
|
{
|
||||||
"/css/app.css": "/css/app.css?id=62b46d36567ec0e3418f",
|
"/css/app.css": "/css/app.css?id=bafda2139c75830558d2",
|
||||||
"/js/app.js": "/js/app.js?id=fd29fe4c923023023da6"
|
"/js/app.js": "/js/app.js?id=0ff185efa8c02e94999e"
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,7 +128,41 @@ $.when( $.ready ).then(function() {
|
||||||
});
|
});
|
||||||
$('#sortable').sortable('disable');
|
$('#sortable').sortable('disable');
|
||||||
|
|
||||||
|
$('#search-container').on('input', 'input[name=q]', function () {
|
||||||
|
const search = this.value
|
||||||
|
const items = $('#sortable').children('.item-container')
|
||||||
|
if($('#search-container select[name=provider]').val() === 'tiles') {
|
||||||
|
if(search.length > 0) {
|
||||||
|
items.hide()
|
||||||
|
items.filter(function () {
|
||||||
|
const name = $(this).data('name').toLowerCase();
|
||||||
|
return name.includes(search.toLowerCase())
|
||||||
|
}).show()
|
||||||
|
} else {
|
||||||
|
items.show()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
items.show()
|
||||||
|
}
|
||||||
|
}).on('change', 'select[name=provider]', function () {
|
||||||
|
const items = $('#sortable').children('.item-container')
|
||||||
|
if($(this).val() === 'tiles') {
|
||||||
|
$('#search-container button').hide()
|
||||||
|
const search = $('#search-container input[name=q]').val()
|
||||||
|
if(search.length > 0) {
|
||||||
|
items.hide()
|
||||||
|
items.filter(function () {
|
||||||
|
const name = $(this).data('name').toLowerCase();
|
||||||
|
return name.includes(search.toLowerCase())
|
||||||
|
}).show()
|
||||||
|
} else {
|
||||||
|
items.show()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$('#search-container button').show()
|
||||||
|
items.show()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
$('#app').on('click', '#config-button', function(e) {
|
$('#app').on('click', '#config-button', function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<section class="item-container{{ $app->droppable }}" data-id="{{ $app->id }}">
|
<section class="item-container{{ $app->droppable }}" data-name="{{ $app->title }}" data-id="{{ $app->id }}">
|
||||||
<div class="item" style="background-color: {{ $app->colour }}">
|
<div class="item" style="background-color: {{ $app->colour }}">
|
||||||
@if($app->icon)
|
@if($app->icon)
|
||||||
<img class="app-icon" src="{{ asset('/storage/'.str_replace('supportedapps', 'icons', $app->icon)) }}" />
|
<img class="app-icon" src="{{ asset('/storage/'.str_replace('supportedapps', 'icons', $app->icon)) }}" />
|
||||||
|
|
37
storage/app/searchproviders.yaml
Normal file
37
storage/app/searchproviders.yaml
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
tiles:
|
||||||
|
id: tiles
|
||||||
|
name: Tiles
|
||||||
|
target: _blank
|
||||||
|
|
||||||
|
google:
|
||||||
|
id: google
|
||||||
|
url: https://www.google.com/search
|
||||||
|
name: Google
|
||||||
|
method: get
|
||||||
|
target: _blank
|
||||||
|
query: q
|
||||||
|
|
||||||
|
bing:
|
||||||
|
id: bing
|
||||||
|
url: https://www.bing.com/search
|
||||||
|
name: Bing
|
||||||
|
method: get
|
||||||
|
target: _blank
|
||||||
|
query: q
|
||||||
|
|
||||||
|
ddg:
|
||||||
|
id: ddg
|
||||||
|
url: https://duckduckgo.com/
|
||||||
|
name: DuckDuckGo
|
||||||
|
method: get
|
||||||
|
target: _blank
|
||||||
|
query: q
|
||||||
|
|
||||||
|
startpage:
|
||||||
|
id: startpage
|
||||||
|
url: https://www.startpage.com/do/dsearch
|
||||||
|
name: Startpage
|
||||||
|
method: get
|
||||||
|
target: _blank
|
||||||
|
query: query
|
||||||
|
|
1
vendor/bin/yaml-lint
vendored
Symbolic link
1
vendor/bin/yaml-lint
vendored
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../symfony/yaml/Resources/bin/yaml-lint
|
2
vendor/composer/ClassLoader.php
vendored
2
vendor/composer/ClassLoader.php
vendored
|
@ -149,7 +149,7 @@ class ClassLoader
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string[] Array of classname => path
|
* @return string[] Array of classname => path
|
||||||
* @psalm-return array<string, string>
|
* @psalm-var array<string, string>
|
||||||
*/
|
*/
|
||||||
public function getClassMap()
|
public function getClassMap()
|
||||||
{
|
{
|
||||||
|
|
321
vendor/composer/autoload_classmap.php
vendored
321
vendor/composer/autoload_classmap.php
vendored
|
@ -43,6 +43,315 @@ return array(
|
||||||
'App\\SettingGroup' => $baseDir . '/app/SettingGroup.php',
|
'App\\SettingGroup' => $baseDir . '/app/SettingGroup.php',
|
||||||
'App\\SettingUser' => $baseDir . '/app/SettingUser.php',
|
'App\\SettingUser' => $baseDir . '/app/SettingUser.php',
|
||||||
'App\\SupportedApps' => $baseDir . '/app/SupportedApps.php',
|
'App\\SupportedApps' => $baseDir . '/app/SupportedApps.php',
|
||||||
|
'App\\SupportedApps\\AMP\\AMP' => $baseDir . '/app/SupportedApps/AMP/AMP.php',
|
||||||
|
'App\\SupportedApps\\AVMFritzbox\\AVMFritzbox' => $baseDir . '/app/SupportedApps/AVMFritzbox/AVMFritzbox.php',
|
||||||
|
'App\\SupportedApps\\AWX\\AWX' => $baseDir . '/app/SupportedApps/AWX/AWX.php',
|
||||||
|
'App\\SupportedApps\\AdGuardHome\\AdGuardHome' => $baseDir . '/app/SupportedApps/AdGuardHome/AdGuardHome.php',
|
||||||
|
'App\\SupportedApps\\Adminer\\Adminer' => $baseDir . '/app/SupportedApps/Adminer/Adminer.php',
|
||||||
|
'App\\SupportedApps\\Airsonic\\Airsonic' => $baseDir . '/app/SupportedApps/Airsonic/Airsonic.php',
|
||||||
|
'App\\SupportedApps\\AlarmPI\\AlarmPI' => $baseDir . '/app/SupportedApps/AlarmPI/AlarmPI.php',
|
||||||
|
'App\\SupportedApps\\Alertmanager\\Alertmanager' => $baseDir . '/app/SupportedApps/Alertmanager/Alertmanager.php',
|
||||||
|
'App\\SupportedApps\\ArchiSteamFarm\\ArchiSteamFarm' => $baseDir . '/app/SupportedApps/ArchiSteamFarm/ArchiSteamFarm.php',
|
||||||
|
'App\\SupportedApps\\ArchiveBox\\ArchiveBox' => $baseDir . '/app/SupportedApps/ArchiveBox/ArchiveBox.php',
|
||||||
|
'App\\SupportedApps\\ArchiveTeamWarrior\\ArchiveTeamWarrior' => $baseDir . '/app/SupportedApps/ArchiveTeamWarrior/ArchiveTeamWarrior.php',
|
||||||
|
'App\\SupportedApps\\AriaNg\\AriaNg' => $baseDir . '/app/SupportedApps/AriaNg/AriaNg.php',
|
||||||
|
'App\\SupportedApps\\Artifactory\\Artifactory' => $baseDir . '/app/SupportedApps/Artifactory/Artifactory.php',
|
||||||
|
'App\\SupportedApps\\AsrockRackIPMI\\AsrockRackIPMI' => $baseDir . '/app/SupportedApps/AsrockRackIPMI/AsrockRackIPMI.php',
|
||||||
|
'App\\SupportedApps\\Bacula\\Bacula' => $baseDir . '/app/SupportedApps/Bacula/Bacula.php',
|
||||||
|
'App\\SupportedApps\\Baikal\\Baikal' => $baseDir . '/app/SupportedApps/Baikal/Baikal.php',
|
||||||
|
'App\\SupportedApps\\Bastillion\\Bastillion' => $baseDir . '/app/SupportedApps/Bastillion/Bastillion.php',
|
||||||
|
'App\\SupportedApps\\Bazarr\\Bazarr' => $baseDir . '/app/SupportedApps/Bazarr/Bazarr.php',
|
||||||
|
'App\\SupportedApps\\Bitwarden\\Bitwarden' => $baseDir . '/app/SupportedApps/Bitwarden/Bitwarden.php',
|
||||||
|
'App\\SupportedApps\\Booksonic\\Booksonic' => $baseDir . '/app/SupportedApps/Booksonic/Booksonic.php',
|
||||||
|
'App\\SupportedApps\\Bookstack\\Bookstack' => $baseDir . '/app/SupportedApps/Bookstack/Bookstack.php',
|
||||||
|
'App\\SupportedApps\\Box\\Box' => $baseDir . '/app/SupportedApps/Box/Box.php',
|
||||||
|
'App\\SupportedApps\\Cabot\\Cabot' => $baseDir . '/app/SupportedApps/Cabot/Cabot.php',
|
||||||
|
'App\\SupportedApps\\CalibreWeb\\CalibreWeb' => $baseDir . '/app/SupportedApps/CalibreWeb/CalibreWeb.php',
|
||||||
|
'App\\SupportedApps\\Cardigann\\Cardigann' => $baseDir . '/app/SupportedApps/Cardigann/Cardigann.php',
|
||||||
|
'App\\SupportedApps\\ChangeDetectionio\\ChangeDetectionio' => $baseDir . '/app/SupportedApps/ChangeDetectionio/ChangeDetectionio.php',
|
||||||
|
'App\\SupportedApps\\CheckMK\\CheckMK' => $baseDir . '/app/SupportedApps/CheckMK/CheckMK.php',
|
||||||
|
'App\\SupportedApps\\Chevereto\\Chevereto' => $baseDir . '/app/SupportedApps/Chevereto/Chevereto.php',
|
||||||
|
'App\\SupportedApps\\Chronograf\\Chronograf' => $baseDir . '/app/SupportedApps/Chronograf/Chronograf.php',
|
||||||
|
'App\\SupportedApps\\Clarkson\\Clarkson' => $baseDir . '/app/SupportedApps/Clarkson/Clarkson.php',
|
||||||
|
'App\\SupportedApps\\CloudCMD\\CloudCMD' => $baseDir . '/app/SupportedApps/CloudCMD/CloudCMD.php',
|
||||||
|
'App\\SupportedApps\\CockpitCMS\\CockpitCMS' => $baseDir . '/app/SupportedApps/CockpitCMS/CockpitCMS.php',
|
||||||
|
'App\\SupportedApps\\Cockpit\\Cockpit' => $baseDir . '/app/SupportedApps/Cockpit/Cockpit.php',
|
||||||
|
'App\\SupportedApps\\Codeserver\\Codeserver' => $baseDir . '/app/SupportedApps/Codeserver/Codeserver.php',
|
||||||
|
'App\\SupportedApps\\CodiMD\\CodiMD' => $baseDir . '/app/SupportedApps/CodiMD/CodiMD.php',
|
||||||
|
'App\\SupportedApps\\Concourse\\Concourse' => $baseDir . '/app/SupportedApps/Concourse/Concourse.php',
|
||||||
|
'App\\SupportedApps\\Confluence\\Confluence' => $baseDir . '/app/SupportedApps/Confluence/Confluence.php',
|
||||||
|
'App\\SupportedApps\\CouchPotato\\CouchPotato' => $baseDir . '/app/SupportedApps/CouchPotato/CouchPotato.php',
|
||||||
|
'App\\SupportedApps\\CryptPad\\CryptPad' => $baseDir . '/app/SupportedApps/CryptPad/CryptPad.php',
|
||||||
|
'App\\SupportedApps\\Deluge\\Deluge' => $baseDir . '/app/SupportedApps/Deluge/Deluge.php',
|
||||||
|
'App\\SupportedApps\\Dillinger\\Dillinger' => $baseDir . '/app/SupportedApps/Dillinger/Dillinger.php',
|
||||||
|
'App\\SupportedApps\\Directus\\Directus' => $baseDir . '/app/SupportedApps/Directus/Directus.php',
|
||||||
|
'App\\SupportedApps\\DokuWiki\\DokuWiki' => $baseDir . '/app/SupportedApps/DokuWiki/DokuWiki.php',
|
||||||
|
'App\\SupportedApps\\Domoticz\\Domoticz' => $baseDir . '/app/SupportedApps/Domoticz/Domoticz.php',
|
||||||
|
'App\\SupportedApps\\Dozzle\\Dozzle' => $baseDir . '/app/SupportedApps/Dozzle/Dozzle.php',
|
||||||
|
'App\\SupportedApps\\Drone\\Drone' => $baseDir . '/app/SupportedApps/Drone/Drone.php',
|
||||||
|
'App\\SupportedApps\\Droppy\\Droppy' => $baseDir . '/app/SupportedApps/Droppy/Droppy.php',
|
||||||
|
'App\\SupportedApps\\Duplicacy\\Duplicacy' => $baseDir . '/app/SupportedApps/Duplicacy/Duplicacy.php',
|
||||||
|
'App\\SupportedApps\\Duplicati\\Duplicati' => $baseDir . '/app/SupportedApps/Duplicati/Duplicati.php',
|
||||||
|
'App\\SupportedApps\\ESPHome\\ESPHome' => $baseDir . '/app/SupportedApps/ESPHome/ESPHome.php',
|
||||||
|
'App\\SupportedApps\\Element\\Element' => $baseDir . '/app/SupportedApps/Element/Element.php',
|
||||||
|
'App\\SupportedApps\\EmbyStat\\EmbyStat' => $baseDir . '/app/SupportedApps/EmbyStat/EmbyStat.php',
|
||||||
|
'App\\SupportedApps\\Emby\\Emby' => $baseDir . '/app/SupportedApps/Emby/Emby.php',
|
||||||
|
'App\\SupportedApps\\FileBrowser\\FileBrowser' => $baseDir . '/app/SupportedApps/FileBrowser/FileBrowser.php',
|
||||||
|
'App\\SupportedApps\\FileFlows\\FileFlows' => $baseDir . '/app/SupportedApps/FileFlows/FileFlows.php',
|
||||||
|
'App\\SupportedApps\\FileRun\\FileRun' => $baseDir . '/app/SupportedApps/FileRun/FileRun.php',
|
||||||
|
'App\\SupportedApps\\Firefly\\Firefly' => $baseDir . '/app/SupportedApps/Firefly/Firefly.php',
|
||||||
|
'App\\SupportedApps\\FirefoxSend\\FirefoxSend' => $baseDir . '/app/SupportedApps/FirefoxSend/FirefoxSend.php',
|
||||||
|
'App\\SupportedApps\\FlexGet\\FlexGet' => $baseDir . '/app/SupportedApps/FlexGet/FlexGet.php',
|
||||||
|
'App\\SupportedApps\\Flood\\Flood' => $baseDir . '/app/SupportedApps/Flood/Flood.php',
|
||||||
|
'App\\SupportedApps\\Focalboard\\Focalboard' => $baseDir . '/app/SupportedApps/Focalboard/Focalboard.php',
|
||||||
|
'App\\SupportedApps\\FoldingHome\\FoldingHome' => $baseDir . '/app/SupportedApps/FoldingHome/FoldingHome.php',
|
||||||
|
'App\\SupportedApps\\FortinetFortiMonitor\\FortinetFortiMonitor' => $baseDir . '/app/SupportedApps/FortinetFortiMonitor/FortinetFortiMonitor.php',
|
||||||
|
'App\\SupportedApps\\Freenas\\Freenas' => $baseDir . '/app/SupportedApps/Freenas/Freenas.php',
|
||||||
|
'App\\SupportedApps\\FreshRSS\\FreshRSS' => $baseDir . '/app/SupportedApps/FreshRSS/FreshRSS.php',
|
||||||
|
'App\\SupportedApps\\Fronius\\Fronius' => $baseDir . '/app/SupportedApps/Fronius/Fronius.php',
|
||||||
|
'App\\SupportedApps\\Funkwhale\\Funkwhale' => $baseDir . '/app/SupportedApps/Funkwhale/Funkwhale.php',
|
||||||
|
'App\\SupportedApps\\Ghost\\Ghost' => $baseDir . '/app/SupportedApps/Ghost/Ghost.php',
|
||||||
|
'App\\SupportedApps\\GitHub\\GitHub' => $baseDir . '/app/SupportedApps/GitHub/GitHub.php',
|
||||||
|
'App\\SupportedApps\\GitLab\\GitLab' => $baseDir . '/app/SupportedApps/GitLab/GitLab.php',
|
||||||
|
'App\\SupportedApps\\Gitea\\Gitea' => $baseDir . '/app/SupportedApps/Gitea/Gitea.php',
|
||||||
|
'App\\SupportedApps\\Glances\\Glances' => $baseDir . '/app/SupportedApps/Glances/Glances.php',
|
||||||
|
'App\\SupportedApps\\Gogs\\Gogs' => $baseDir . '/app/SupportedApps/Gogs/Gogs.php',
|
||||||
|
'App\\SupportedApps\\Gotify\\Gotify' => $baseDir . '/app/SupportedApps/Gotify/Gotify.php',
|
||||||
|
'App\\SupportedApps\\Grafana\\Grafana' => $baseDir . '/app/SupportedApps/Grafana/Grafana.php',
|
||||||
|
'App\\SupportedApps\\Grav\\Grav' => $baseDir . '/app/SupportedApps/Grav/Grav.php',
|
||||||
|
'App\\SupportedApps\\Graylog\\Graylog' => $baseDir . '/app/SupportedApps/Graylog/Graylog.php',
|
||||||
|
'App\\SupportedApps\\Grocy\\Grocy' => $baseDir . '/app/SupportedApps/Grocy/Grocy.php',
|
||||||
|
'App\\SupportedApps\\Guacamole\\Guacamole' => $baseDir . '/app/SupportedApps/Guacamole/Guacamole.php',
|
||||||
|
'App\\SupportedApps\\HAProxy\\HAProxy' => $baseDir . '/app/SupportedApps/HAProxy/HAProxy.php',
|
||||||
|
'App\\SupportedApps\\HDHomeRun\\HDHomeRun' => $baseDir . '/app/SupportedApps/HDHomeRun/HDHomeRun.php',
|
||||||
|
'App\\SupportedApps\\Handbrake\\Handbrake' => $baseDir . '/app/SupportedApps/Handbrake/Handbrake.php',
|
||||||
|
'App\\SupportedApps\\Hasura\\Hasura' => $baseDir . '/app/SupportedApps/Hasura/Hasura.php',
|
||||||
|
'App\\SupportedApps\\Headphones\\Headphones' => $baseDir . '/app/SupportedApps/Headphones/Headphones.php',
|
||||||
|
'App\\SupportedApps\\Healthchecks\\Healthchecks' => $baseDir . '/app/SupportedApps/Healthchecks/Healthchecks.php',
|
||||||
|
'App\\SupportedApps\\HomeAssistant\\HomeAssistant' => $baseDir . '/app/SupportedApps/HomeAssistant/HomeAssistant.php',
|
||||||
|
'App\\SupportedApps\\Homebridge\\Homebridge' => $baseDir . '/app/SupportedApps/Homebridge/Homebridge.php',
|
||||||
|
'App\\SupportedApps\\Homer\\Homer' => $baseDir . '/app/SupportedApps/Homer/Homer.php',
|
||||||
|
'App\\SupportedApps\\Hubitat\\Hubitat' => $baseDir . '/app/SupportedApps/Hubitat/Hubitat.php',
|
||||||
|
'App\\SupportedApps\\Huginn\\Huginn' => $baseDir . '/app/SupportedApps/Huginn/Huginn.php',
|
||||||
|
'App\\SupportedApps\\Icecast\\Icecast' => $baseDir . '/app/SupportedApps/Icecast/Icecast.php',
|
||||||
|
'App\\SupportedApps\\IcingaWeb\\IcingaWeb' => $baseDir . '/app/SupportedApps/IcingaWeb/IcingaWeb.php',
|
||||||
|
'App\\SupportedApps\\InfluxDB\\InfluxDB' => $baseDir . '/app/SupportedApps/InfluxDB/InfluxDB.php',
|
||||||
|
'App\\SupportedApps\\Infoblox\\Infoblox' => $baseDir . '/app/SupportedApps/Infoblox/Infoblox.php',
|
||||||
|
'App\\SupportedApps\\Invidious\\Invidious' => $baseDir . '/app/SupportedApps/Invidious/Invidious.php',
|
||||||
|
'App\\SupportedApps\\InvoiceNinja\\InvoiceNinja' => $baseDir . '/app/SupportedApps/InvoiceNinja/InvoiceNinja.php',
|
||||||
|
'App\\SupportedApps\\JDownloader\\JDownloader' => $baseDir . '/app/SupportedApps/JDownloader/JDownloader.php',
|
||||||
|
'App\\SupportedApps\\Jackett\\Jackett' => $baseDir . '/app/SupportedApps/Jackett/Jackett.php',
|
||||||
|
'App\\SupportedApps\\Jaeger\\Jaeger' => $baseDir . '/app/SupportedApps/Jaeger/Jaeger.php',
|
||||||
|
'App\\SupportedApps\\Jeedom\\Jeedom' => $baseDir . '/app/SupportedApps/Jeedom/Jeedom.php',
|
||||||
|
'App\\SupportedApps\\Jellyfin\\Jellyfin' => $baseDir . '/app/SupportedApps/Jellyfin/Jellyfin.php',
|
||||||
|
'App\\SupportedApps\\Jenkins\\Jenkins' => $baseDir . '/app/SupportedApps/Jenkins/Jenkins.php',
|
||||||
|
'App\\SupportedApps\\Jira\\Jira' => $baseDir . '/app/SupportedApps/Jira/Jira.php',
|
||||||
|
'App\\SupportedApps\\Jitsi\\Jitsi' => $baseDir . '/app/SupportedApps/Jitsi/Jitsi.php',
|
||||||
|
'App\\SupportedApps\\Joomla\\Joomla' => $baseDir . '/app/SupportedApps/Joomla/Joomla.php',
|
||||||
|
'App\\SupportedApps\\Jupyter\\Jupyter' => $baseDir . '/app/SupportedApps/Jupyter/Jupyter.php',
|
||||||
|
'App\\SupportedApps\\Kanboard\\Kanboard' => $baseDir . '/app/SupportedApps/Kanboard/Kanboard.php',
|
||||||
|
'App\\SupportedApps\\Keycloak\\Keycloak' => $baseDir . '/app/SupportedApps/Keycloak/Keycloak.php',
|
||||||
|
'App\\SupportedApps\\Kibana\\Kibana' => $baseDir . '/app/SupportedApps/Kibana/Kibana.php',
|
||||||
|
'App\\SupportedApps\\Kimai\\Kimai' => $baseDir . '/app/SupportedApps/Kimai/Kimai.php',
|
||||||
|
'App\\SupportedApps\\Kitana\\Kitana' => $baseDir . '/app/SupportedApps/Kitana/Kitana.php',
|
||||||
|
'App\\SupportedApps\\Kodi\\Kodi' => $baseDir . '/app/SupportedApps/Kodi/Kodi.php',
|
||||||
|
'App\\SupportedApps\\Komga\\Komga' => $baseDir . '/app/SupportedApps/Komga/Komga.php',
|
||||||
|
'App\\SupportedApps\\Kopia\\Kopia' => $baseDir . '/app/SupportedApps/Kopia/Kopia.php',
|
||||||
|
'App\\SupportedApps\\Krusader\\Krusader' => $baseDir . '/app/SupportedApps/Krusader/Krusader.php',
|
||||||
|
'App\\SupportedApps\\KubernetesDashboard\\KubernetesDashboard' => $baseDir . '/app/SupportedApps/KubernetesDashboard/KubernetesDashboard.php',
|
||||||
|
'App\\SupportedApps\\LazyLibrarian\\LazyLibrarian' => $baseDir . '/app/SupportedApps/LazyLibrarian/LazyLibrarian.php',
|
||||||
|
'App\\SupportedApps\\LemonLDAPNG\\LemonLDAPNG' => $baseDir . '/app/SupportedApps/LemonLDAPNG/LemonLDAPNG.php',
|
||||||
|
'App\\SupportedApps\\LibreNMS\\LibreNMS' => $baseDir . '/app/SupportedApps/LibreNMS/LibreNMS.php',
|
||||||
|
'App\\SupportedApps\\LibreSpeed\\LibreSpeed' => $baseDir . '/app/SupportedApps/LibreSpeed/LibreSpeed.php',
|
||||||
|
'App\\SupportedApps\\Lidarr\\Lidarr' => $baseDir . '/app/SupportedApps/Lidarr/Lidarr.php',
|
||||||
|
'App\\SupportedApps\\LinkAce\\LinkAce' => $baseDir . '/app/SupportedApps/LinkAce/LinkAce.php',
|
||||||
|
'App\\SupportedApps\\Lychee\\Lychee' => $baseDir . '/app/SupportedApps/Lychee/Lychee.php',
|
||||||
|
'App\\SupportedApps\\MailcowSOGo\\MailcowSOGo' => $baseDir . '/app/SupportedApps/MailcowSOGo/MailcowSOGo.php',
|
||||||
|
'App\\SupportedApps\\Mailcow\\Mailcow' => $baseDir . '/app/SupportedApps/Mailcow/Mailcow.php',
|
||||||
|
'App\\SupportedApps\\Mailhog\\Mailhog' => $baseDir . '/app/SupportedApps/Mailhog/Mailhog.php',
|
||||||
|
'App\\SupportedApps\\Mainsail\\Mainsail' => $baseDir . '/app/SupportedApps/Mainsail/Mainsail.php',
|
||||||
|
'App\\SupportedApps\\Mastodon\\Mastodon' => $baseDir . '/app/SupportedApps/Mastodon/Mastodon.php',
|
||||||
|
'App\\SupportedApps\\Mattermost\\Mattermost' => $baseDir . '/app/SupportedApps/Mattermost/Mattermost.php',
|
||||||
|
'App\\SupportedApps\\MayanEDMS\\MayanEDMS' => $baseDir . '/app/SupportedApps/MayanEDMS/MayanEDMS.php',
|
||||||
|
'App\\SupportedApps\\McMyAdmin\\McMyAdmin' => $baseDir . '/app/SupportedApps/McMyAdmin/McMyAdmin.php',
|
||||||
|
'App\\SupportedApps\\Mealie\\Mealie' => $baseDir . '/app/SupportedApps/Mealie/Mealie.php',
|
||||||
|
'App\\SupportedApps\\MediaWiki\\MediaWiki' => $baseDir . '/app/SupportedApps/MediaWiki/MediaWiki.php',
|
||||||
|
'App\\SupportedApps\\Medusa\\Medusa' => $baseDir . '/app/SupportedApps/Medusa/Medusa.php',
|
||||||
|
'App\\SupportedApps\\Meraki\\Meraki' => $baseDir . '/app/SupportedApps/Meraki/Meraki.php',
|
||||||
|
'App\\SupportedApps\\MineOS\\MineOS' => $baseDir . '/app/SupportedApps/MineOS/MineOS.php',
|
||||||
|
'App\\SupportedApps\\Miniflux\\Miniflux' => $baseDir . '/app/SupportedApps/Miniflux/Miniflux.php',
|
||||||
|
'App\\SupportedApps\\Minio\\Minio' => $baseDir . '/app/SupportedApps/Minio/Minio.php',
|
||||||
|
'App\\SupportedApps\\Monica\\Monica' => $baseDir . '/app/SupportedApps/Monica/Monica.php',
|
||||||
|
'App\\SupportedApps\\Monit\\Monit' => $baseDir . '/app/SupportedApps/Monit/Monit.php',
|
||||||
|
'App\\SupportedApps\\MotionEye\\MotionEye' => $baseDir . '/app/SupportedApps/MotionEye/MotionEye.php',
|
||||||
|
'App\\SupportedApps\\MusicBrainz\\MusicBrainz' => $baseDir . '/app/SupportedApps/MusicBrainz/MusicBrainz.php',
|
||||||
|
'App\\SupportedApps\\Mylar\\Mylar' => $baseDir . '/app/SupportedApps/Mylar/Mylar.php',
|
||||||
|
'App\\SupportedApps\\NZBHydra\\NZBHydra' => $baseDir . '/app/SupportedApps/NZBHydra/NZBHydra.php',
|
||||||
|
'App\\SupportedApps\\Navidrome\\Navidrome' => $baseDir . '/app/SupportedApps/Navidrome/Navidrome.php',
|
||||||
|
'App\\SupportedApps\\Nessus\\Nessus' => $baseDir . '/app/SupportedApps/Nessus/Nessus.php',
|
||||||
|
'App\\SupportedApps\\NetBox\\NetBox' => $baseDir . '/app/SupportedApps/NetBox/NetBox.php',
|
||||||
|
'App\\SupportedApps\\Netatmo\\Netatmo' => $baseDir . '/app/SupportedApps/Netatmo/Netatmo.php',
|
||||||
|
'App\\SupportedApps\\Netboot\\Netboot' => $baseDir . '/app/SupportedApps/Netboot/Netboot.php',
|
||||||
|
'App\\SupportedApps\\Netdata\\Netdata' => $baseDir . '/app/SupportedApps/Netdata/Netdata.php',
|
||||||
|
'App\\SupportedApps\\Nextcloud\\Nextcloud' => $baseDir . '/app/SupportedApps/Nextcloud/Nextcloud.php',
|
||||||
|
'App\\SupportedApps\\NginxProxyManager\\NginxProxyManager' => $baseDir . '/app/SupportedApps/NginxProxyManager/NginxProxyManager.php',
|
||||||
|
'App\\SupportedApps\\Nitter\\Nitter' => $baseDir . '/app/SupportedApps/Nitter/Nitter.php',
|
||||||
|
'App\\SupportedApps\\NodeRed\\NodeRed' => $baseDir . '/app/SupportedApps/NodeRed/NodeRed.php',
|
||||||
|
'App\\SupportedApps\\NowShowing\\NowShowing' => $baseDir . '/app/SupportedApps/NowShowing/NowShowing.php',
|
||||||
|
'App\\SupportedApps\\NxFilter\\NxFilter' => $baseDir . '/app/SupportedApps/NxFilter/NxFilter.php',
|
||||||
|
'App\\SupportedApps\\Nzbget\\Nzbget' => $baseDir . '/app/SupportedApps/Nzbget/Nzbget.php',
|
||||||
|
'App\\SupportedApps\\OPNsense\\OPNsense' => $baseDir . '/app/SupportedApps/OPNsense/OPNsense.php',
|
||||||
|
'App\\SupportedApps\\Octoprint\\Octoprint' => $baseDir . '/app/SupportedApps/Octoprint/Octoprint.php',
|
||||||
|
'App\\SupportedApps\\Ombi\\Ombi' => $baseDir . '/app/SupportedApps/Ombi/Ombi.php',
|
||||||
|
'App\\SupportedApps\\OmniDB\\OmniDB' => $baseDir . '/app/SupportedApps/OmniDB/OmniDB.php',
|
||||||
|
'App\\SupportedApps\\OnlyOffice\\OnlyOffice' => $baseDir . '/app/SupportedApps/OnlyOffice/OnlyOffice.php',
|
||||||
|
'App\\SupportedApps\\OpenMapTiler\\OpenMapTiler' => $baseDir . '/app/SupportedApps/OpenMapTiler/OpenMapTiler.php',
|
||||||
|
'App\\SupportedApps\\OpenSpeedTest\\OpenSpeedTest' => $baseDir . '/app/SupportedApps/OpenSpeedTest/OpenSpeedTest.php',
|
||||||
|
'App\\SupportedApps\\OpenSprinkler\\OpenSprinkler' => $baseDir . '/app/SupportedApps/OpenSprinkler/OpenSprinkler.php',
|
||||||
|
'App\\SupportedApps\\OpenWrt\\OpenWrt' => $baseDir . '/app/SupportedApps/OpenWrt/OpenWrt.php',
|
||||||
|
'App\\SupportedApps\\Oscarr\\Oscarr' => $baseDir . '/app/SupportedApps/Oscarr/Oscarr.php',
|
||||||
|
'App\\SupportedApps\\Overseerr\\Overseerr' => $baseDir . '/app/SupportedApps/Overseerr/Overseerr.php',
|
||||||
|
'App\\SupportedApps\\OwnPhotos\\OwnPhotos' => $baseDir . '/app/SupportedApps/OwnPhotos/OwnPhotos.php',
|
||||||
|
'App\\SupportedApps\\PRTG\\PRTG' => $baseDir . '/app/SupportedApps/PRTG/PRTG.php',
|
||||||
|
'App\\SupportedApps\\PaloAltoNetworks\\PaloAltoNetworks' => $baseDir . '/app/SupportedApps/PaloAltoNetworks/PaloAltoNetworks.php',
|
||||||
|
'App\\SupportedApps\\Paperless\\Paperless' => $baseDir . '/app/SupportedApps/Paperless/Paperless.php',
|
||||||
|
'App\\SupportedApps\\PartKeepr\\PartKeepr' => $baseDir . '/app/SupportedApps/PartKeepr/PartKeepr.php',
|
||||||
|
'App\\SupportedApps\\PeerTube\\PeerTube' => $baseDir . '/app/SupportedApps/PeerTube/PeerTube.php',
|
||||||
|
'App\\SupportedApps\\PhotoPrism\\PhotoPrism' => $baseDir . '/app/SupportedApps/PhotoPrism/PhotoPrism.php',
|
||||||
|
'App\\SupportedApps\\Photonix\\Photonix' => $baseDir . '/app/SupportedApps/Photonix/Photonix.php',
|
||||||
|
'App\\SupportedApps\\PiAware\\PiAware' => $baseDir . '/app/SupportedApps/PiAware/PiAware.php',
|
||||||
|
'App\\SupportedApps\\PiVPN\\PiVPN' => $baseDir . '/app/SupportedApps/PiVPN/PiVPN.php',
|
||||||
|
'App\\SupportedApps\\Pihole\\Pihole' => $baseDir . '/app/SupportedApps/Pihole/Pihole.php',
|
||||||
|
'App\\SupportedApps\\Piwigo\\Piwigo' => $baseDir . '/app/SupportedApps/Piwigo/Piwigo.php',
|
||||||
|
'App\\SupportedApps\\Pleroma\\Pleroma' => $baseDir . '/app/SupportedApps/Pleroma/Pleroma.php',
|
||||||
|
'App\\SupportedApps\\Plesk\\Plesk' => $baseDir . '/app/SupportedApps/Plesk/Plesk.php',
|
||||||
|
'App\\SupportedApps\\PlexRequests\\PlexRequests' => $baseDir . '/app/SupportedApps/PlexRequests/PlexRequests.php',
|
||||||
|
'App\\SupportedApps\\Plex\\Plex' => $baseDir . '/app/SupportedApps/Plex/Plex.php',
|
||||||
|
'App\\SupportedApps\\Plume\\Plume' => $baseDir . '/app/SupportedApps/Plume/Plume.php',
|
||||||
|
'App\\SupportedApps\\Portainer\\Portainer' => $baseDir . '/app/SupportedApps/Portainer/Portainer.php',
|
||||||
|
'App\\SupportedApps\\Poste\\Poste' => $baseDir . '/app/SupportedApps/Poste/Poste.php',
|
||||||
|
'App\\SupportedApps\\Printer\\Printer' => $baseDir . '/app/SupportedApps/Printer/Printer.php',
|
||||||
|
'App\\SupportedApps\\Privatebin\\Privatebin' => $baseDir . '/app/SupportedApps/Privatebin/Privatebin.php',
|
||||||
|
'App\\SupportedApps\\ProjectSend\\ProjectSend' => $baseDir . '/app/SupportedApps/ProjectSend/ProjectSend.php',
|
||||||
|
'App\\SupportedApps\\Prometheus\\Prometheus' => $baseDir . '/app/SupportedApps/Prometheus/Prometheus.php',
|
||||||
|
'App\\SupportedApps\\Prowlarr\\Prowlarr' => $baseDir . '/app/SupportedApps/Prowlarr/Prowlarr.php',
|
||||||
|
'App\\SupportedApps\\Proxmox\\Proxmox' => $baseDir . '/app/SupportedApps/Proxmox/Proxmox.php',
|
||||||
|
'App\\SupportedApps\\PsiTransfer\\PsiTransfer' => $baseDir . '/app/SupportedApps/PsiTransfer/PsiTransfer.php',
|
||||||
|
'App\\SupportedApps\\Pterodactyl\\Pterodactyl' => $baseDir . '/app/SupportedApps/Pterodactyl/Pterodactyl.php',
|
||||||
|
'App\\SupportedApps\\QNAP\\QNAP' => $baseDir . '/app/SupportedApps/QNAP/QNAP.php',
|
||||||
|
'App\\SupportedApps\\RStudioServer\\RStudioServer' => $baseDir . '/app/SupportedApps/RStudioServer/RStudioServer.php',
|
||||||
|
'App\\SupportedApps\\Radarr\\Radarr' => $baseDir . '/app/SupportedApps/Radarr/Radarr.php',
|
||||||
|
'App\\SupportedApps\\Rainloop\\Rainloop' => $baseDir . '/app/SupportedApps/Rainloop/Rainloop.php',
|
||||||
|
'App\\SupportedApps\\Rancher\\Rancher' => $baseDir . '/app/SupportedApps/Rancher/Rancher.php',
|
||||||
|
'App\\SupportedApps\\Raneto\\Raneto' => $baseDir . '/app/SupportedApps/Raneto/Raneto.php',
|
||||||
|
'App\\SupportedApps\\Rclone\\Rclone' => $baseDir . '/app/SupportedApps/Rclone/Rclone.php',
|
||||||
|
'App\\SupportedApps\\Readarr\\Readarr' => $baseDir . '/app/SupportedApps/Readarr/Readarr.php',
|
||||||
|
'App\\SupportedApps\\Recalbox\\Recalbox' => $baseDir . '/app/SupportedApps/Recalbox/Recalbox.php',
|
||||||
|
'App\\SupportedApps\\Requestrr\\Requestrr' => $baseDir . '/app/SupportedApps/Requestrr/Requestrr.php',
|
||||||
|
'App\\SupportedApps\\ResilioSync\\ResilioSync' => $baseDir . '/app/SupportedApps/ResilioSync/ResilioSync.php',
|
||||||
|
'App\\SupportedApps\\RiotWeb\\RiotWeb' => $baseDir . '/app/SupportedApps/RiotWeb/RiotWeb.php',
|
||||||
|
'App\\SupportedApps\\RocketChat\\RocketChat' => $baseDir . '/app/SupportedApps/RocketChat/RocketChat.php',
|
||||||
|
'App\\SupportedApps\\RompЯ\\RompЯ' => $baseDir . '/app/SupportedApps/RompЯ/RompЯ.php',
|
||||||
|
'App\\SupportedApps\\Roundcube\\Roundcube' => $baseDir . '/app/SupportedApps/Roundcube/Roundcube.php',
|
||||||
|
'App\\SupportedApps\\Router\\Router' => $baseDir . '/app/SupportedApps/Router/Router.php',
|
||||||
|
'App\\SupportedApps\\Rspamd\\Rspamd' => $baseDir . '/app/SupportedApps/Rspamd/Rspamd.php',
|
||||||
|
'App\\SupportedApps\\Rundeck\\Rundeck' => $baseDir . '/app/SupportedApps/Rundeck/Rundeck.php',
|
||||||
|
'App\\SupportedApps\\RuneAudio\\RuneAudio' => $baseDir . '/app/SupportedApps/RuneAudio/RuneAudio.php',
|
||||||
|
'App\\SupportedApps\\SABnzbd\\SABnzbd' => $baseDir . '/app/SupportedApps/SABnzbd/SABnzbd.php',
|
||||||
|
'App\\SupportedApps\\SOGo\\SOGo' => $baseDir . '/app/SupportedApps/SOGo/SOGo.php',
|
||||||
|
'App\\SupportedApps\\Seafile\\Seafile' => $baseDir . '/app/SupportedApps/Seafile/Seafile.php',
|
||||||
|
'App\\SupportedApps\\SearxMetasearchEngine\\SearxMetasearchEngine' => $baseDir . '/app/SupportedApps/SearxMetasearchEngine/SearxMetasearchEngine.php',
|
||||||
|
'App\\SupportedApps\\Serviio\\Serviio' => $baseDir . '/app/SupportedApps/Serviio/Serviio.php',
|
||||||
|
'App\\SupportedApps\\Shaarli\\Shaarli' => $baseDir . '/app/SupportedApps/Shaarli/Shaarli.php',
|
||||||
|
'App\\SupportedApps\\Shinobi\\Shinobi' => $baseDir . '/app/SupportedApps/Shinobi/Shinobi.php',
|
||||||
|
'App\\SupportedApps\\SickBeard\\SickBeard' => $baseDir . '/app/SupportedApps/SickBeard/SickBeard.php',
|
||||||
|
'App\\SupportedApps\\SickGear\\SickGear' => $baseDir . '/app/SupportedApps/SickGear/SickGear.php',
|
||||||
|
'App\\SupportedApps\\Sickchill\\Sickchill' => $baseDir . '/app/SupportedApps/Sickchill/Sickchill.php',
|
||||||
|
'App\\SupportedApps\\Slack\\Slack' => $baseDir . '/app/SupportedApps/Slack/Slack.php',
|
||||||
|
'App\\SupportedApps\\Snibox\\Snibox' => $baseDir . '/app/SupportedApps/Snibox/Snibox.php',
|
||||||
|
'App\\SupportedApps\\SonarQube\\SonarQube' => $baseDir . '/app/SupportedApps/SonarQube/SonarQube.php',
|
||||||
|
'App\\SupportedApps\\Sonarr\\Sonarr' => $baseDir . '/app/SupportedApps/Sonarr/Sonarr.php',
|
||||||
|
'App\\SupportedApps\\Sourcegraph\\Sourcegraph' => $baseDir . '/app/SupportedApps/Sourcegraph/Sourcegraph.php',
|
||||||
|
'App\\SupportedApps\\Splunk\\Splunk' => $baseDir . '/app/SupportedApps/Splunk/Splunk.php',
|
||||||
|
'App\\SupportedApps\\Spotweb\\Spotweb' => $baseDir . '/app/SupportedApps/Spotweb/Spotweb.php',
|
||||||
|
'App\\SupportedApps\\Squidex\\Squidex' => $baseDir . '/app/SupportedApps/Squidex/Squidex.php',
|
||||||
|
'App\\SupportedApps\\Stash\\Stash' => $baseDir . '/app/SupportedApps/Stash/Stash.php',
|
||||||
|
'App\\SupportedApps\\Statping\\Statping' => $baseDir . '/app/SupportedApps/Statping/Statping.php',
|
||||||
|
'App\\SupportedApps\\Strapi\\Strapi' => $baseDir . '/app/SupportedApps/Strapi/Strapi.php',
|
||||||
|
'App\\SupportedApps\\Streama\\Streama' => $baseDir . '/app/SupportedApps/Streama/Streama.php',
|
||||||
|
'App\\SupportedApps\\Sympa\\Sympa' => $baseDir . '/app/SupportedApps/Sympa/Sympa.php',
|
||||||
|
'App\\SupportedApps\\Synclounge\\Synclounge' => $baseDir . '/app/SupportedApps/Synclounge/Synclounge.php',
|
||||||
|
'App\\SupportedApps\\Syncthing\\Syncthing' => $baseDir . '/app/SupportedApps/Syncthing/Syncthing.php',
|
||||||
|
'App\\SupportedApps\\Synology\\Synology' => $baseDir . '/app/SupportedApps/Synology/Synology.php',
|
||||||
|
'App\\SupportedApps\\TVHeadend\\TVHeadend' => $baseDir . '/app/SupportedApps/TVHeadend/TVHeadend.php',
|
||||||
|
'App\\SupportedApps\\TYPO\\TYPO' => $baseDir . '/app/SupportedApps/TYPO/TYPO.php',
|
||||||
|
'App\\SupportedApps\\Taiga\\Taiga' => $baseDir . '/app/SupportedApps/Taiga/Taiga.php',
|
||||||
|
'App\\SupportedApps\\TandoorRecipes\\TandoorRecipes' => $baseDir . '/app/SupportedApps/TandoorRecipes/TandoorRecipes.php',
|
||||||
|
'App\\SupportedApps\\TarTenNinety\\TarTenNinety' => $baseDir . '/app/SupportedApps/TarTenNinety/TarTenNinety.php',
|
||||||
|
'App\\SupportedApps\\TasmoAdmin\\TasmoAdmin' => $baseDir . '/app/SupportedApps/TasmoAdmin/TasmoAdmin.php',
|
||||||
|
'App\\SupportedApps\\Tasmota\\Tasmota' => $baseDir . '/app/SupportedApps/Tasmota/Tasmota.php',
|
||||||
|
'App\\SupportedApps\\Tautulli\\Tautulli' => $baseDir . '/app/SupportedApps/Tautulli/Tautulli.php',
|
||||||
|
'App\\SupportedApps\\Tdarr\\Tdarr' => $baseDir . '/app/SupportedApps/Tdarr/Tdarr.php',
|
||||||
|
'App\\SupportedApps\\Teedy\\Teedy' => $baseDir . '/app/SupportedApps/Teedy/Teedy.php',
|
||||||
|
'App\\SupportedApps\\TheLounge\\TheLounge' => $baseDir . '/app/SupportedApps/TheLounge/TheLounge.php',
|
||||||
|
'App\\SupportedApps\\TinyTinyRSS\\TinyTinyRSS' => $baseDir . '/app/SupportedApps/TinyTinyRSS/TinyTinyRSS.php',
|
||||||
|
'App\\SupportedApps\\Traccar\\Traccar' => $baseDir . '/app/SupportedApps/Traccar/Traccar.php',
|
||||||
|
'App\\SupportedApps\\Traefik\\Traefik' => $baseDir . '/app/SupportedApps/Traefik/Traefik.php',
|
||||||
|
'App\\SupportedApps\\Transmission\\Transmission' => $baseDir . '/app/SupportedApps/Transmission/Transmission.php',
|
||||||
|
'App\\SupportedApps\\Trilium\\Trilium' => $baseDir . '/app/SupportedApps/Trilium/Trilium.php',
|
||||||
|
'App\\SupportedApps\\TrueNASCORE\\TrueNASCORE' => $baseDir . '/app/SupportedApps/TrueNASCORE/TrueNASCORE.php',
|
||||||
|
'App\\SupportedApps\\TrueNAS\\TrueNAS' => $baseDir . '/app/SupportedApps/TrueNAS/TrueNAS.php',
|
||||||
|
'App\\SupportedApps\\Ubooquity\\Ubooquity' => $baseDir . '/app/SupportedApps/Ubooquity/Ubooquity.php',
|
||||||
|
'App\\SupportedApps\\UniFi\\UniFi' => $baseDir . '/app/SupportedApps/UniFi/UniFi.php',
|
||||||
|
'App\\SupportedApps\\Unraid\\Unraid' => $baseDir . '/app/SupportedApps/Unraid/Unraid.php',
|
||||||
|
'App\\SupportedApps\\UrBackup\\UrBackup' => $baseDir . '/app/SupportedApps/UrBackup/UrBackup.php',
|
||||||
|
'App\\SupportedApps\\VMwareESXi\\VMwareESXi' => $baseDir . '/app/SupportedApps/VMwareESXi/VMwareESXi.php',
|
||||||
|
'App\\SupportedApps\\VMwarevCenter\\VMwarevCenter' => $baseDir . '/app/SupportedApps/VMwarevCenter/VMwarevCenter.php',
|
||||||
|
'App\\SupportedApps\\ViMbAdmin\\ViMbAdmin' => $baseDir . '/app/SupportedApps/ViMbAdmin/ViMbAdmin.php',
|
||||||
|
'App\\SupportedApps\\VirtualRadarServer\\VirtualRadarServer' => $baseDir . '/app/SupportedApps/VirtualRadarServer/VirtualRadarServer.php',
|
||||||
|
'App\\SupportedApps\\Virtualmin\\Virtualmin' => $baseDir . '/app/SupportedApps/Virtualmin/Virtualmin.php',
|
||||||
|
'App\\SupportedApps\\Volumio\\Volumio' => $baseDir . '/app/SupportedApps/Volumio/Volumio.php',
|
||||||
|
'App\\SupportedApps\\VuPlus\\VuPlus' => $baseDir . '/app/SupportedApps/VuPlus/VuPlus.php',
|
||||||
|
'App\\SupportedApps\\Wallabag\\Wallabag' => $baseDir . '/app/SupportedApps/Wallabag/Wallabag.php',
|
||||||
|
'App\\SupportedApps\\WaniKani\\WaniKani' => $baseDir . '/app/SupportedApps/WaniKani/WaniKani.php',
|
||||||
|
'App\\SupportedApps\\Watcher\\Watcher' => $baseDir . '/app/SupportedApps/Watcher/Watcher.php',
|
||||||
|
'App\\SupportedApps\\WebTools\\WebTools' => $baseDir . '/app/SupportedApps/WebTools/WebTools.php',
|
||||||
|
'App\\SupportedApps\\Webmin\\Webmin' => $baseDir . '/app/SupportedApps/Webmin/Webmin.php',
|
||||||
|
'App\\SupportedApps\\Wekan\\Wekan' => $baseDir . '/app/SupportedApps/Wekan/Wekan.php',
|
||||||
|
'App\\SupportedApps\\Wetty\\Wetty' => $baseDir . '/app/SupportedApps/Wetty/Wetty.php',
|
||||||
|
'App\\SupportedApps\\WgGenWeb\\WgGenWeb' => $baseDir . '/app/SupportedApps/WgGenWeb/WgGenWeb.php',
|
||||||
|
'App\\SupportedApps\\Wikijs\\Wikijs' => $baseDir . '/app/SupportedApps/Wikijs/Wikijs.php',
|
||||||
|
'App\\SupportedApps\\WireGuard\\WireGuard' => $baseDir . '/app/SupportedApps/WireGuard/WireGuard.php',
|
||||||
|
'App\\SupportedApps\\Wordpress\\Wordpress' => $baseDir . '/app/SupportedApps/Wordpress/Wordpress.php',
|
||||||
|
'App\\SupportedApps\\XWiki\\XWiki' => $baseDir . '/app/SupportedApps/XWiki/XWiki.php',
|
||||||
|
'App\\SupportedApps\\XenOrchestra\\XenOrchestra' => $baseDir . '/app/SupportedApps/XenOrchestra/XenOrchestra.php',
|
||||||
|
'App\\SupportedApps\\Xigmanas\\Xigmanas' => $baseDir . '/app/SupportedApps/Xigmanas/Xigmanas.php',
|
||||||
|
'App\\SupportedApps\\YNAB\\YNAB' => $baseDir . '/app/SupportedApps/YNAB/YNAB.php',
|
||||||
|
'App\\SupportedApps\\ZNC\\ZNC' => $baseDir . '/app/SupportedApps/ZNC/ZNC.php',
|
||||||
|
'App\\SupportedApps\\Zabbix\\Zabbix' => $baseDir . '/app/SupportedApps/Zabbix/Zabbix.php',
|
||||||
|
'App\\SupportedApps\\Zammad\\Zammad' => $baseDir . '/app/SupportedApps/Zammad/Zammad.php',
|
||||||
|
'App\\SupportedApps\\ZoneMinder\\ZoneMinder' => $baseDir . '/app/SupportedApps/ZoneMinder/ZoneMinder.php',
|
||||||
|
'App\\SupportedApps\\Zulip\\Zulip' => $baseDir . '/app/SupportedApps/Zulip/Zulip.php',
|
||||||
|
'App\\SupportedApps\\cPanel\\cPanel' => $baseDir . '/app/SupportedApps/cPanel/cPanel.php',
|
||||||
|
'App\\SupportedApps\\iDRAC\\iDRAC' => $baseDir . '/app/SupportedApps/iDRAC/iDRAC.php',
|
||||||
|
'App\\SupportedApps\\iLO\\iLO' => $baseDir . '/app/SupportedApps/iLO/iLO.php',
|
||||||
|
'App\\SupportedApps\\ioBroker\\ioBroker' => $baseDir . '/app/SupportedApps/ioBroker/ioBroker.php',
|
||||||
|
'App\\SupportedApps\\neightn\\neightn' => $baseDir . '/app/SupportedApps/neightn/neightn.php',
|
||||||
|
'App\\SupportedApps\\openHAB\\openHAB' => $baseDir . '/app/SupportedApps/openHAB/openHAB.php',
|
||||||
|
'App\\SupportedApps\\openmediavault\\openmediavault' => $baseDir . '/app/SupportedApps/openmediavault/openmediavault.php',
|
||||||
|
'App\\SupportedApps\\osTicket\\osTicket' => $baseDir . '/app/SupportedApps/osTicket/osTicket.php',
|
||||||
|
'App\\SupportedApps\\ownCloud\\ownCloud' => $baseDir . '/app/SupportedApps/ownCloud/ownCloud.php',
|
||||||
|
'App\\SupportedApps\\pfSense\\pfSense' => $baseDir . '/app/SupportedApps/pfSense/pfSense.php',
|
||||||
|
'App\\SupportedApps\\pgAdmin\\pgAdmin' => $baseDir . '/app/SupportedApps/pgAdmin/pgAdmin.php',
|
||||||
|
'App\\SupportedApps\\phpIPAM\\phpIPAM' => $baseDir . '/app/SupportedApps/phpIPAM/phpIPAM.php',
|
||||||
|
'App\\SupportedApps\\phpLDAPadmin\\phpLDAPadmin' => $baseDir . '/app/SupportedApps/phpLDAPadmin/phpLDAPadmin.php',
|
||||||
|
'App\\SupportedApps\\phpMyAdmin\\phpMyAdmin' => $baseDir . '/app/SupportedApps/phpMyAdmin/phpMyAdmin.php',
|
||||||
|
'App\\SupportedApps\\pyLoad\\pyLoad' => $baseDir . '/app/SupportedApps/pyLoad/pyLoad.php',
|
||||||
|
'App\\SupportedApps\\qBittorrent\\qBittorrent' => $baseDir . '/app/SupportedApps/qBittorrent/qBittorrent.php',
|
||||||
|
'App\\SupportedApps\\ruTorrent\\ruTorrent' => $baseDir . '/app/SupportedApps/ruTorrent/ruTorrent.php',
|
||||||
|
'App\\SupportedApps\\vmwarehorizon\\vmwarehorizon' => $baseDir . '/app/SupportedApps/vmwarehorizon/vmwarehorizon.php',
|
||||||
|
'App\\SupportedApps\\xTeVe\\xTeVe' => $baseDir . '/app/SupportedApps/xTeVe/xTeVe.php',
|
||||||
|
'App\\SupportedApps\\youtubedl\\youtubedl' => $baseDir . '/app/SupportedApps/youtubedl/youtubedl.php',
|
||||||
'App\\User' => $baseDir . '/app/User.php',
|
'App\\User' => $baseDir . '/app/User.php',
|
||||||
'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
|
'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
|
||||||
'Brick\\Math\\BigDecimal' => $vendorDir . '/brick/math/src/BigDecimal.php',
|
'Brick\\Math\\BigDecimal' => $vendorDir . '/brick/math/src/BigDecimal.php',
|
||||||
|
@ -4618,6 +4927,18 @@ return array(
|
||||||
'Symfony\\Component\\VarExporter\\Internal\\Registry' => $vendorDir . '/symfony/var-exporter/Internal/Registry.php',
|
'Symfony\\Component\\VarExporter\\Internal\\Registry' => $vendorDir . '/symfony/var-exporter/Internal/Registry.php',
|
||||||
'Symfony\\Component\\VarExporter\\Internal\\Values' => $vendorDir . '/symfony/var-exporter/Internal/Values.php',
|
'Symfony\\Component\\VarExporter\\Internal\\Values' => $vendorDir . '/symfony/var-exporter/Internal/Values.php',
|
||||||
'Symfony\\Component\\VarExporter\\VarExporter' => $vendorDir . '/symfony/var-exporter/VarExporter.php',
|
'Symfony\\Component\\VarExporter\\VarExporter' => $vendorDir . '/symfony/var-exporter/VarExporter.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Command\\LintCommand' => $vendorDir . '/symfony/yaml/Command/LintCommand.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Dumper' => $vendorDir . '/symfony/yaml/Dumper.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Escaper' => $vendorDir . '/symfony/yaml/Escaper.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Exception\\DumpException' => $vendorDir . '/symfony/yaml/Exception/DumpException.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/yaml/Exception/ExceptionInterface.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Exception\\ParseException' => $vendorDir . '/symfony/yaml/Exception/ParseException.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Exception\\RuntimeException' => $vendorDir . '/symfony/yaml/Exception/RuntimeException.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Inline' => $vendorDir . '/symfony/yaml/Inline.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Parser' => $vendorDir . '/symfony/yaml/Parser.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Tag\\TaggedValue' => $vendorDir . '/symfony/yaml/Tag/TaggedValue.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Unescaper' => $vendorDir . '/symfony/yaml/Unescaper.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Yaml' => $vendorDir . '/symfony/yaml/Yaml.php',
|
||||||
'Symfony\\Contracts\\Cache\\CacheInterface' => $vendorDir . '/symfony/cache-contracts/CacheInterface.php',
|
'Symfony\\Contracts\\Cache\\CacheInterface' => $vendorDir . '/symfony/cache-contracts/CacheInterface.php',
|
||||||
'Symfony\\Contracts\\Cache\\CacheTrait' => $vendorDir . '/symfony/cache-contracts/CacheTrait.php',
|
'Symfony\\Contracts\\Cache\\CacheTrait' => $vendorDir . '/symfony/cache-contracts/CacheTrait.php',
|
||||||
'Symfony\\Contracts\\Cache\\CallbackInterface' => $vendorDir . '/symfony/cache-contracts/CallbackInterface.php',
|
'Symfony\\Contracts\\Cache\\CallbackInterface' => $vendorDir . '/symfony/cache-contracts/CallbackInterface.php',
|
||||||
|
|
2
vendor/composer/autoload_files.php
vendored
2
vendor/composer/autoload_files.php
vendored
|
@ -6,8 +6,8 @@ $vendorDir = dirname(dirname(__FILE__));
|
||||||
$baseDir = dirname($vendorDir);
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
|
|
||||||
'6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
|
'6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
|
||||||
|
'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
|
||||||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
|
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
|
||||||
'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
||||||
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
|
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
|
||||||
|
|
1
vendor/composer/autoload_psr4.php
vendored
1
vendor/composer/autoload_psr4.php
vendored
|
@ -27,6 +27,7 @@ return array(
|
||||||
'Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'),
|
'Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'),
|
||||||
'Symfony\\Contracts\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher-contracts'),
|
'Symfony\\Contracts\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher-contracts'),
|
||||||
'Symfony\\Contracts\\Cache\\' => array($vendorDir . '/symfony/cache-contracts'),
|
'Symfony\\Contracts\\Cache\\' => array($vendorDir . '/symfony/cache-contracts'),
|
||||||
|
'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'),
|
||||||
'Symfony\\Component\\VarExporter\\' => array($vendorDir . '/symfony/var-exporter'),
|
'Symfony\\Component\\VarExporter\\' => array($vendorDir . '/symfony/var-exporter'),
|
||||||
'Symfony\\Component\\VarDumper\\' => array($vendorDir . '/symfony/var-dumper'),
|
'Symfony\\Component\\VarDumper\\' => array($vendorDir . '/symfony/var-dumper'),
|
||||||
'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'),
|
'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'),
|
||||||
|
|
9
vendor/composer/autoload_real.php
vendored
9
vendor/composer/autoload_real.php
vendored
|
@ -65,16 +65,11 @@ class ComposerAutoloaderInit4b6fb9210a1ea37c2db27b8ff53a1ecf
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $fileIdentifier
|
|
||||||
* @param string $file
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function composerRequire4b6fb9210a1ea37c2db27b8ff53a1ecf($fileIdentifier, $file)
|
function composerRequire4b6fb9210a1ea37c2db27b8ff53a1ecf($fileIdentifier, $file)
|
||||||
{
|
{
|
||||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
|
||||||
|
|
||||||
require $file;
|
require $file;
|
||||||
|
|
||||||
|
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
328
vendor/composer/autoload_static.php
vendored
328
vendor/composer/autoload_static.php
vendored
|
@ -7,8 +7,8 @@ namespace Composer\Autoload;
|
||||||
class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
|
class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
|
||||||
{
|
{
|
||||||
public static $files = array (
|
public static $files = array (
|
||||||
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
|
|
||||||
'6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
|
'6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
|
||||||
|
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
|
||||||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
|
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
|
||||||
'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
||||||
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
|
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
|
||||||
|
@ -73,6 +73,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
|
||||||
'Symfony\\Contracts\\Service\\' => 26,
|
'Symfony\\Contracts\\Service\\' => 26,
|
||||||
'Symfony\\Contracts\\EventDispatcher\\' => 34,
|
'Symfony\\Contracts\\EventDispatcher\\' => 34,
|
||||||
'Symfony\\Contracts\\Cache\\' => 24,
|
'Symfony\\Contracts\\Cache\\' => 24,
|
||||||
|
'Symfony\\Component\\Yaml\\' => 23,
|
||||||
'Symfony\\Component\\VarExporter\\' => 30,
|
'Symfony\\Component\\VarExporter\\' => 30,
|
||||||
'Symfony\\Component\\VarDumper\\' => 28,
|
'Symfony\\Component\\VarDumper\\' => 28,
|
||||||
'Symfony\\Component\\Translation\\' => 30,
|
'Symfony\\Component\\Translation\\' => 30,
|
||||||
|
@ -271,6 +272,10 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/symfony/cache-contracts',
|
0 => __DIR__ . '/..' . '/symfony/cache-contracts',
|
||||||
),
|
),
|
||||||
|
'Symfony\\Component\\Yaml\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/symfony/yaml',
|
||||||
|
),
|
||||||
'Symfony\\Component\\VarExporter\\' =>
|
'Symfony\\Component\\VarExporter\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/symfony/var-exporter',
|
0 => __DIR__ . '/..' . '/symfony/var-exporter',
|
||||||
|
@ -587,6 +592,315 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
|
||||||
'App\\SettingGroup' => __DIR__ . '/../..' . '/app/SettingGroup.php',
|
'App\\SettingGroup' => __DIR__ . '/../..' . '/app/SettingGroup.php',
|
||||||
'App\\SettingUser' => __DIR__ . '/../..' . '/app/SettingUser.php',
|
'App\\SettingUser' => __DIR__ . '/../..' . '/app/SettingUser.php',
|
||||||
'App\\SupportedApps' => __DIR__ . '/../..' . '/app/SupportedApps.php',
|
'App\\SupportedApps' => __DIR__ . '/../..' . '/app/SupportedApps.php',
|
||||||
|
'App\\SupportedApps\\AMP\\AMP' => __DIR__ . '/../..' . '/app/SupportedApps/AMP/AMP.php',
|
||||||
|
'App\\SupportedApps\\AVMFritzbox\\AVMFritzbox' => __DIR__ . '/../..' . '/app/SupportedApps/AVMFritzbox/AVMFritzbox.php',
|
||||||
|
'App\\SupportedApps\\AWX\\AWX' => __DIR__ . '/../..' . '/app/SupportedApps/AWX/AWX.php',
|
||||||
|
'App\\SupportedApps\\AdGuardHome\\AdGuardHome' => __DIR__ . '/../..' . '/app/SupportedApps/AdGuardHome/AdGuardHome.php',
|
||||||
|
'App\\SupportedApps\\Adminer\\Adminer' => __DIR__ . '/../..' . '/app/SupportedApps/Adminer/Adminer.php',
|
||||||
|
'App\\SupportedApps\\Airsonic\\Airsonic' => __DIR__ . '/../..' . '/app/SupportedApps/Airsonic/Airsonic.php',
|
||||||
|
'App\\SupportedApps\\AlarmPI\\AlarmPI' => __DIR__ . '/../..' . '/app/SupportedApps/AlarmPI/AlarmPI.php',
|
||||||
|
'App\\SupportedApps\\Alertmanager\\Alertmanager' => __DIR__ . '/../..' . '/app/SupportedApps/Alertmanager/Alertmanager.php',
|
||||||
|
'App\\SupportedApps\\ArchiSteamFarm\\ArchiSteamFarm' => __DIR__ . '/../..' . '/app/SupportedApps/ArchiSteamFarm/ArchiSteamFarm.php',
|
||||||
|
'App\\SupportedApps\\ArchiveBox\\ArchiveBox' => __DIR__ . '/../..' . '/app/SupportedApps/ArchiveBox/ArchiveBox.php',
|
||||||
|
'App\\SupportedApps\\ArchiveTeamWarrior\\ArchiveTeamWarrior' => __DIR__ . '/../..' . '/app/SupportedApps/ArchiveTeamWarrior/ArchiveTeamWarrior.php',
|
||||||
|
'App\\SupportedApps\\AriaNg\\AriaNg' => __DIR__ . '/../..' . '/app/SupportedApps/AriaNg/AriaNg.php',
|
||||||
|
'App\\SupportedApps\\Artifactory\\Artifactory' => __DIR__ . '/../..' . '/app/SupportedApps/Artifactory/Artifactory.php',
|
||||||
|
'App\\SupportedApps\\AsrockRackIPMI\\AsrockRackIPMI' => __DIR__ . '/../..' . '/app/SupportedApps/AsrockRackIPMI/AsrockRackIPMI.php',
|
||||||
|
'App\\SupportedApps\\Bacula\\Bacula' => __DIR__ . '/../..' . '/app/SupportedApps/Bacula/Bacula.php',
|
||||||
|
'App\\SupportedApps\\Baikal\\Baikal' => __DIR__ . '/../..' . '/app/SupportedApps/Baikal/Baikal.php',
|
||||||
|
'App\\SupportedApps\\Bastillion\\Bastillion' => __DIR__ . '/../..' . '/app/SupportedApps/Bastillion/Bastillion.php',
|
||||||
|
'App\\SupportedApps\\Bazarr\\Bazarr' => __DIR__ . '/../..' . '/app/SupportedApps/Bazarr/Bazarr.php',
|
||||||
|
'App\\SupportedApps\\Bitwarden\\Bitwarden' => __DIR__ . '/../..' . '/app/SupportedApps/Bitwarden/Bitwarden.php',
|
||||||
|
'App\\SupportedApps\\Booksonic\\Booksonic' => __DIR__ . '/../..' . '/app/SupportedApps/Booksonic/Booksonic.php',
|
||||||
|
'App\\SupportedApps\\Bookstack\\Bookstack' => __DIR__ . '/../..' . '/app/SupportedApps/Bookstack/Bookstack.php',
|
||||||
|
'App\\SupportedApps\\Box\\Box' => __DIR__ . '/../..' . '/app/SupportedApps/Box/Box.php',
|
||||||
|
'App\\SupportedApps\\Cabot\\Cabot' => __DIR__ . '/../..' . '/app/SupportedApps/Cabot/Cabot.php',
|
||||||
|
'App\\SupportedApps\\CalibreWeb\\CalibreWeb' => __DIR__ . '/../..' . '/app/SupportedApps/CalibreWeb/CalibreWeb.php',
|
||||||
|
'App\\SupportedApps\\Cardigann\\Cardigann' => __DIR__ . '/../..' . '/app/SupportedApps/Cardigann/Cardigann.php',
|
||||||
|
'App\\SupportedApps\\ChangeDetectionio\\ChangeDetectionio' => __DIR__ . '/../..' . '/app/SupportedApps/ChangeDetectionio/ChangeDetectionio.php',
|
||||||
|
'App\\SupportedApps\\CheckMK\\CheckMK' => __DIR__ . '/../..' . '/app/SupportedApps/CheckMK/CheckMK.php',
|
||||||
|
'App\\SupportedApps\\Chevereto\\Chevereto' => __DIR__ . '/../..' . '/app/SupportedApps/Chevereto/Chevereto.php',
|
||||||
|
'App\\SupportedApps\\Chronograf\\Chronograf' => __DIR__ . '/../..' . '/app/SupportedApps/Chronograf/Chronograf.php',
|
||||||
|
'App\\SupportedApps\\Clarkson\\Clarkson' => __DIR__ . '/../..' . '/app/SupportedApps/Clarkson/Clarkson.php',
|
||||||
|
'App\\SupportedApps\\CloudCMD\\CloudCMD' => __DIR__ . '/../..' . '/app/SupportedApps/CloudCMD/CloudCMD.php',
|
||||||
|
'App\\SupportedApps\\CockpitCMS\\CockpitCMS' => __DIR__ . '/../..' . '/app/SupportedApps/CockpitCMS/CockpitCMS.php',
|
||||||
|
'App\\SupportedApps\\Cockpit\\Cockpit' => __DIR__ . '/../..' . '/app/SupportedApps/Cockpit/Cockpit.php',
|
||||||
|
'App\\SupportedApps\\Codeserver\\Codeserver' => __DIR__ . '/../..' . '/app/SupportedApps/Codeserver/Codeserver.php',
|
||||||
|
'App\\SupportedApps\\CodiMD\\CodiMD' => __DIR__ . '/../..' . '/app/SupportedApps/CodiMD/CodiMD.php',
|
||||||
|
'App\\SupportedApps\\Concourse\\Concourse' => __DIR__ . '/../..' . '/app/SupportedApps/Concourse/Concourse.php',
|
||||||
|
'App\\SupportedApps\\Confluence\\Confluence' => __DIR__ . '/../..' . '/app/SupportedApps/Confluence/Confluence.php',
|
||||||
|
'App\\SupportedApps\\CouchPotato\\CouchPotato' => __DIR__ . '/../..' . '/app/SupportedApps/CouchPotato/CouchPotato.php',
|
||||||
|
'App\\SupportedApps\\CryptPad\\CryptPad' => __DIR__ . '/../..' . '/app/SupportedApps/CryptPad/CryptPad.php',
|
||||||
|
'App\\SupportedApps\\Deluge\\Deluge' => __DIR__ . '/../..' . '/app/SupportedApps/Deluge/Deluge.php',
|
||||||
|
'App\\SupportedApps\\Dillinger\\Dillinger' => __DIR__ . '/../..' . '/app/SupportedApps/Dillinger/Dillinger.php',
|
||||||
|
'App\\SupportedApps\\Directus\\Directus' => __DIR__ . '/../..' . '/app/SupportedApps/Directus/Directus.php',
|
||||||
|
'App\\SupportedApps\\DokuWiki\\DokuWiki' => __DIR__ . '/../..' . '/app/SupportedApps/DokuWiki/DokuWiki.php',
|
||||||
|
'App\\SupportedApps\\Domoticz\\Domoticz' => __DIR__ . '/../..' . '/app/SupportedApps/Domoticz/Domoticz.php',
|
||||||
|
'App\\SupportedApps\\Dozzle\\Dozzle' => __DIR__ . '/../..' . '/app/SupportedApps/Dozzle/Dozzle.php',
|
||||||
|
'App\\SupportedApps\\Drone\\Drone' => __DIR__ . '/../..' . '/app/SupportedApps/Drone/Drone.php',
|
||||||
|
'App\\SupportedApps\\Droppy\\Droppy' => __DIR__ . '/../..' . '/app/SupportedApps/Droppy/Droppy.php',
|
||||||
|
'App\\SupportedApps\\Duplicacy\\Duplicacy' => __DIR__ . '/../..' . '/app/SupportedApps/Duplicacy/Duplicacy.php',
|
||||||
|
'App\\SupportedApps\\Duplicati\\Duplicati' => __DIR__ . '/../..' . '/app/SupportedApps/Duplicati/Duplicati.php',
|
||||||
|
'App\\SupportedApps\\ESPHome\\ESPHome' => __DIR__ . '/../..' . '/app/SupportedApps/ESPHome/ESPHome.php',
|
||||||
|
'App\\SupportedApps\\Element\\Element' => __DIR__ . '/../..' . '/app/SupportedApps/Element/Element.php',
|
||||||
|
'App\\SupportedApps\\EmbyStat\\EmbyStat' => __DIR__ . '/../..' . '/app/SupportedApps/EmbyStat/EmbyStat.php',
|
||||||
|
'App\\SupportedApps\\Emby\\Emby' => __DIR__ . '/../..' . '/app/SupportedApps/Emby/Emby.php',
|
||||||
|
'App\\SupportedApps\\FileBrowser\\FileBrowser' => __DIR__ . '/../..' . '/app/SupportedApps/FileBrowser/FileBrowser.php',
|
||||||
|
'App\\SupportedApps\\FileFlows\\FileFlows' => __DIR__ . '/../..' . '/app/SupportedApps/FileFlows/FileFlows.php',
|
||||||
|
'App\\SupportedApps\\FileRun\\FileRun' => __DIR__ . '/../..' . '/app/SupportedApps/FileRun/FileRun.php',
|
||||||
|
'App\\SupportedApps\\Firefly\\Firefly' => __DIR__ . '/../..' . '/app/SupportedApps/Firefly/Firefly.php',
|
||||||
|
'App\\SupportedApps\\FirefoxSend\\FirefoxSend' => __DIR__ . '/../..' . '/app/SupportedApps/FirefoxSend/FirefoxSend.php',
|
||||||
|
'App\\SupportedApps\\FlexGet\\FlexGet' => __DIR__ . '/../..' . '/app/SupportedApps/FlexGet/FlexGet.php',
|
||||||
|
'App\\SupportedApps\\Flood\\Flood' => __DIR__ . '/../..' . '/app/SupportedApps/Flood/Flood.php',
|
||||||
|
'App\\SupportedApps\\Focalboard\\Focalboard' => __DIR__ . '/../..' . '/app/SupportedApps/Focalboard/Focalboard.php',
|
||||||
|
'App\\SupportedApps\\FoldingHome\\FoldingHome' => __DIR__ . '/../..' . '/app/SupportedApps/FoldingHome/FoldingHome.php',
|
||||||
|
'App\\SupportedApps\\FortinetFortiMonitor\\FortinetFortiMonitor' => __DIR__ . '/../..' . '/app/SupportedApps/FortinetFortiMonitor/FortinetFortiMonitor.php',
|
||||||
|
'App\\SupportedApps\\Freenas\\Freenas' => __DIR__ . '/../..' . '/app/SupportedApps/Freenas/Freenas.php',
|
||||||
|
'App\\SupportedApps\\FreshRSS\\FreshRSS' => __DIR__ . '/../..' . '/app/SupportedApps/FreshRSS/FreshRSS.php',
|
||||||
|
'App\\SupportedApps\\Fronius\\Fronius' => __DIR__ . '/../..' . '/app/SupportedApps/Fronius/Fronius.php',
|
||||||
|
'App\\SupportedApps\\Funkwhale\\Funkwhale' => __DIR__ . '/../..' . '/app/SupportedApps/Funkwhale/Funkwhale.php',
|
||||||
|
'App\\SupportedApps\\Ghost\\Ghost' => __DIR__ . '/../..' . '/app/SupportedApps/Ghost/Ghost.php',
|
||||||
|
'App\\SupportedApps\\GitHub\\GitHub' => __DIR__ . '/../..' . '/app/SupportedApps/GitHub/GitHub.php',
|
||||||
|
'App\\SupportedApps\\GitLab\\GitLab' => __DIR__ . '/../..' . '/app/SupportedApps/GitLab/GitLab.php',
|
||||||
|
'App\\SupportedApps\\Gitea\\Gitea' => __DIR__ . '/../..' . '/app/SupportedApps/Gitea/Gitea.php',
|
||||||
|
'App\\SupportedApps\\Glances\\Glances' => __DIR__ . '/../..' . '/app/SupportedApps/Glances/Glances.php',
|
||||||
|
'App\\SupportedApps\\Gogs\\Gogs' => __DIR__ . '/../..' . '/app/SupportedApps/Gogs/Gogs.php',
|
||||||
|
'App\\SupportedApps\\Gotify\\Gotify' => __DIR__ . '/../..' . '/app/SupportedApps/Gotify/Gotify.php',
|
||||||
|
'App\\SupportedApps\\Grafana\\Grafana' => __DIR__ . '/../..' . '/app/SupportedApps/Grafana/Grafana.php',
|
||||||
|
'App\\SupportedApps\\Grav\\Grav' => __DIR__ . '/../..' . '/app/SupportedApps/Grav/Grav.php',
|
||||||
|
'App\\SupportedApps\\Graylog\\Graylog' => __DIR__ . '/../..' . '/app/SupportedApps/Graylog/Graylog.php',
|
||||||
|
'App\\SupportedApps\\Grocy\\Grocy' => __DIR__ . '/../..' . '/app/SupportedApps/Grocy/Grocy.php',
|
||||||
|
'App\\SupportedApps\\Guacamole\\Guacamole' => __DIR__ . '/../..' . '/app/SupportedApps/Guacamole/Guacamole.php',
|
||||||
|
'App\\SupportedApps\\HAProxy\\HAProxy' => __DIR__ . '/../..' . '/app/SupportedApps/HAProxy/HAProxy.php',
|
||||||
|
'App\\SupportedApps\\HDHomeRun\\HDHomeRun' => __DIR__ . '/../..' . '/app/SupportedApps/HDHomeRun/HDHomeRun.php',
|
||||||
|
'App\\SupportedApps\\Handbrake\\Handbrake' => __DIR__ . '/../..' . '/app/SupportedApps/Handbrake/Handbrake.php',
|
||||||
|
'App\\SupportedApps\\Hasura\\Hasura' => __DIR__ . '/../..' . '/app/SupportedApps/Hasura/Hasura.php',
|
||||||
|
'App\\SupportedApps\\Headphones\\Headphones' => __DIR__ . '/../..' . '/app/SupportedApps/Headphones/Headphones.php',
|
||||||
|
'App\\SupportedApps\\Healthchecks\\Healthchecks' => __DIR__ . '/../..' . '/app/SupportedApps/Healthchecks/Healthchecks.php',
|
||||||
|
'App\\SupportedApps\\HomeAssistant\\HomeAssistant' => __DIR__ . '/../..' . '/app/SupportedApps/HomeAssistant/HomeAssistant.php',
|
||||||
|
'App\\SupportedApps\\Homebridge\\Homebridge' => __DIR__ . '/../..' . '/app/SupportedApps/Homebridge/Homebridge.php',
|
||||||
|
'App\\SupportedApps\\Homer\\Homer' => __DIR__ . '/../..' . '/app/SupportedApps/Homer/Homer.php',
|
||||||
|
'App\\SupportedApps\\Hubitat\\Hubitat' => __DIR__ . '/../..' . '/app/SupportedApps/Hubitat/Hubitat.php',
|
||||||
|
'App\\SupportedApps\\Huginn\\Huginn' => __DIR__ . '/../..' . '/app/SupportedApps/Huginn/Huginn.php',
|
||||||
|
'App\\SupportedApps\\Icecast\\Icecast' => __DIR__ . '/../..' . '/app/SupportedApps/Icecast/Icecast.php',
|
||||||
|
'App\\SupportedApps\\IcingaWeb\\IcingaWeb' => __DIR__ . '/../..' . '/app/SupportedApps/IcingaWeb/IcingaWeb.php',
|
||||||
|
'App\\SupportedApps\\InfluxDB\\InfluxDB' => __DIR__ . '/../..' . '/app/SupportedApps/InfluxDB/InfluxDB.php',
|
||||||
|
'App\\SupportedApps\\Infoblox\\Infoblox' => __DIR__ . '/../..' . '/app/SupportedApps/Infoblox/Infoblox.php',
|
||||||
|
'App\\SupportedApps\\Invidious\\Invidious' => __DIR__ . '/../..' . '/app/SupportedApps/Invidious/Invidious.php',
|
||||||
|
'App\\SupportedApps\\InvoiceNinja\\InvoiceNinja' => __DIR__ . '/../..' . '/app/SupportedApps/InvoiceNinja/InvoiceNinja.php',
|
||||||
|
'App\\SupportedApps\\JDownloader\\JDownloader' => __DIR__ . '/../..' . '/app/SupportedApps/JDownloader/JDownloader.php',
|
||||||
|
'App\\SupportedApps\\Jackett\\Jackett' => __DIR__ . '/../..' . '/app/SupportedApps/Jackett/Jackett.php',
|
||||||
|
'App\\SupportedApps\\Jaeger\\Jaeger' => __DIR__ . '/../..' . '/app/SupportedApps/Jaeger/Jaeger.php',
|
||||||
|
'App\\SupportedApps\\Jeedom\\Jeedom' => __DIR__ . '/../..' . '/app/SupportedApps/Jeedom/Jeedom.php',
|
||||||
|
'App\\SupportedApps\\Jellyfin\\Jellyfin' => __DIR__ . '/../..' . '/app/SupportedApps/Jellyfin/Jellyfin.php',
|
||||||
|
'App\\SupportedApps\\Jenkins\\Jenkins' => __DIR__ . '/../..' . '/app/SupportedApps/Jenkins/Jenkins.php',
|
||||||
|
'App\\SupportedApps\\Jira\\Jira' => __DIR__ . '/../..' . '/app/SupportedApps/Jira/Jira.php',
|
||||||
|
'App\\SupportedApps\\Jitsi\\Jitsi' => __DIR__ . '/../..' . '/app/SupportedApps/Jitsi/Jitsi.php',
|
||||||
|
'App\\SupportedApps\\Joomla\\Joomla' => __DIR__ . '/../..' . '/app/SupportedApps/Joomla/Joomla.php',
|
||||||
|
'App\\SupportedApps\\Jupyter\\Jupyter' => __DIR__ . '/../..' . '/app/SupportedApps/Jupyter/Jupyter.php',
|
||||||
|
'App\\SupportedApps\\Kanboard\\Kanboard' => __DIR__ . '/../..' . '/app/SupportedApps/Kanboard/Kanboard.php',
|
||||||
|
'App\\SupportedApps\\Keycloak\\Keycloak' => __DIR__ . '/../..' . '/app/SupportedApps/Keycloak/Keycloak.php',
|
||||||
|
'App\\SupportedApps\\Kibana\\Kibana' => __DIR__ . '/../..' . '/app/SupportedApps/Kibana/Kibana.php',
|
||||||
|
'App\\SupportedApps\\Kimai\\Kimai' => __DIR__ . '/../..' . '/app/SupportedApps/Kimai/Kimai.php',
|
||||||
|
'App\\SupportedApps\\Kitana\\Kitana' => __DIR__ . '/../..' . '/app/SupportedApps/Kitana/Kitana.php',
|
||||||
|
'App\\SupportedApps\\Kodi\\Kodi' => __DIR__ . '/../..' . '/app/SupportedApps/Kodi/Kodi.php',
|
||||||
|
'App\\SupportedApps\\Komga\\Komga' => __DIR__ . '/../..' . '/app/SupportedApps/Komga/Komga.php',
|
||||||
|
'App\\SupportedApps\\Kopia\\Kopia' => __DIR__ . '/../..' . '/app/SupportedApps/Kopia/Kopia.php',
|
||||||
|
'App\\SupportedApps\\Krusader\\Krusader' => __DIR__ . '/../..' . '/app/SupportedApps/Krusader/Krusader.php',
|
||||||
|
'App\\SupportedApps\\KubernetesDashboard\\KubernetesDashboard' => __DIR__ . '/../..' . '/app/SupportedApps/KubernetesDashboard/KubernetesDashboard.php',
|
||||||
|
'App\\SupportedApps\\LazyLibrarian\\LazyLibrarian' => __DIR__ . '/../..' . '/app/SupportedApps/LazyLibrarian/LazyLibrarian.php',
|
||||||
|
'App\\SupportedApps\\LemonLDAPNG\\LemonLDAPNG' => __DIR__ . '/../..' . '/app/SupportedApps/LemonLDAPNG/LemonLDAPNG.php',
|
||||||
|
'App\\SupportedApps\\LibreNMS\\LibreNMS' => __DIR__ . '/../..' . '/app/SupportedApps/LibreNMS/LibreNMS.php',
|
||||||
|
'App\\SupportedApps\\LibreSpeed\\LibreSpeed' => __DIR__ . '/../..' . '/app/SupportedApps/LibreSpeed/LibreSpeed.php',
|
||||||
|
'App\\SupportedApps\\Lidarr\\Lidarr' => __DIR__ . '/../..' . '/app/SupportedApps/Lidarr/Lidarr.php',
|
||||||
|
'App\\SupportedApps\\LinkAce\\LinkAce' => __DIR__ . '/../..' . '/app/SupportedApps/LinkAce/LinkAce.php',
|
||||||
|
'App\\SupportedApps\\Lychee\\Lychee' => __DIR__ . '/../..' . '/app/SupportedApps/Lychee/Lychee.php',
|
||||||
|
'App\\SupportedApps\\MailcowSOGo\\MailcowSOGo' => __DIR__ . '/../..' . '/app/SupportedApps/MailcowSOGo/MailcowSOGo.php',
|
||||||
|
'App\\SupportedApps\\Mailcow\\Mailcow' => __DIR__ . '/../..' . '/app/SupportedApps/Mailcow/Mailcow.php',
|
||||||
|
'App\\SupportedApps\\Mailhog\\Mailhog' => __DIR__ . '/../..' . '/app/SupportedApps/Mailhog/Mailhog.php',
|
||||||
|
'App\\SupportedApps\\Mainsail\\Mainsail' => __DIR__ . '/../..' . '/app/SupportedApps/Mainsail/Mainsail.php',
|
||||||
|
'App\\SupportedApps\\Mastodon\\Mastodon' => __DIR__ . '/../..' . '/app/SupportedApps/Mastodon/Mastodon.php',
|
||||||
|
'App\\SupportedApps\\Mattermost\\Mattermost' => __DIR__ . '/../..' . '/app/SupportedApps/Mattermost/Mattermost.php',
|
||||||
|
'App\\SupportedApps\\MayanEDMS\\MayanEDMS' => __DIR__ . '/../..' . '/app/SupportedApps/MayanEDMS/MayanEDMS.php',
|
||||||
|
'App\\SupportedApps\\McMyAdmin\\McMyAdmin' => __DIR__ . '/../..' . '/app/SupportedApps/McMyAdmin/McMyAdmin.php',
|
||||||
|
'App\\SupportedApps\\Mealie\\Mealie' => __DIR__ . '/../..' . '/app/SupportedApps/Mealie/Mealie.php',
|
||||||
|
'App\\SupportedApps\\MediaWiki\\MediaWiki' => __DIR__ . '/../..' . '/app/SupportedApps/MediaWiki/MediaWiki.php',
|
||||||
|
'App\\SupportedApps\\Medusa\\Medusa' => __DIR__ . '/../..' . '/app/SupportedApps/Medusa/Medusa.php',
|
||||||
|
'App\\SupportedApps\\Meraki\\Meraki' => __DIR__ . '/../..' . '/app/SupportedApps/Meraki/Meraki.php',
|
||||||
|
'App\\SupportedApps\\MineOS\\MineOS' => __DIR__ . '/../..' . '/app/SupportedApps/MineOS/MineOS.php',
|
||||||
|
'App\\SupportedApps\\Miniflux\\Miniflux' => __DIR__ . '/../..' . '/app/SupportedApps/Miniflux/Miniflux.php',
|
||||||
|
'App\\SupportedApps\\Minio\\Minio' => __DIR__ . '/../..' . '/app/SupportedApps/Minio/Minio.php',
|
||||||
|
'App\\SupportedApps\\Monica\\Monica' => __DIR__ . '/../..' . '/app/SupportedApps/Monica/Monica.php',
|
||||||
|
'App\\SupportedApps\\Monit\\Monit' => __DIR__ . '/../..' . '/app/SupportedApps/Monit/Monit.php',
|
||||||
|
'App\\SupportedApps\\MotionEye\\MotionEye' => __DIR__ . '/../..' . '/app/SupportedApps/MotionEye/MotionEye.php',
|
||||||
|
'App\\SupportedApps\\MusicBrainz\\MusicBrainz' => __DIR__ . '/../..' . '/app/SupportedApps/MusicBrainz/MusicBrainz.php',
|
||||||
|
'App\\SupportedApps\\Mylar\\Mylar' => __DIR__ . '/../..' . '/app/SupportedApps/Mylar/Mylar.php',
|
||||||
|
'App\\SupportedApps\\NZBHydra\\NZBHydra' => __DIR__ . '/../..' . '/app/SupportedApps/NZBHydra/NZBHydra.php',
|
||||||
|
'App\\SupportedApps\\Navidrome\\Navidrome' => __DIR__ . '/../..' . '/app/SupportedApps/Navidrome/Navidrome.php',
|
||||||
|
'App\\SupportedApps\\Nessus\\Nessus' => __DIR__ . '/../..' . '/app/SupportedApps/Nessus/Nessus.php',
|
||||||
|
'App\\SupportedApps\\NetBox\\NetBox' => __DIR__ . '/../..' . '/app/SupportedApps/NetBox/NetBox.php',
|
||||||
|
'App\\SupportedApps\\Netatmo\\Netatmo' => __DIR__ . '/../..' . '/app/SupportedApps/Netatmo/Netatmo.php',
|
||||||
|
'App\\SupportedApps\\Netboot\\Netboot' => __DIR__ . '/../..' . '/app/SupportedApps/Netboot/Netboot.php',
|
||||||
|
'App\\SupportedApps\\Netdata\\Netdata' => __DIR__ . '/../..' . '/app/SupportedApps/Netdata/Netdata.php',
|
||||||
|
'App\\SupportedApps\\Nextcloud\\Nextcloud' => __DIR__ . '/../..' . '/app/SupportedApps/Nextcloud/Nextcloud.php',
|
||||||
|
'App\\SupportedApps\\NginxProxyManager\\NginxProxyManager' => __DIR__ . '/../..' . '/app/SupportedApps/NginxProxyManager/NginxProxyManager.php',
|
||||||
|
'App\\SupportedApps\\Nitter\\Nitter' => __DIR__ . '/../..' . '/app/SupportedApps/Nitter/Nitter.php',
|
||||||
|
'App\\SupportedApps\\NodeRed\\NodeRed' => __DIR__ . '/../..' . '/app/SupportedApps/NodeRed/NodeRed.php',
|
||||||
|
'App\\SupportedApps\\NowShowing\\NowShowing' => __DIR__ . '/../..' . '/app/SupportedApps/NowShowing/NowShowing.php',
|
||||||
|
'App\\SupportedApps\\NxFilter\\NxFilter' => __DIR__ . '/../..' . '/app/SupportedApps/NxFilter/NxFilter.php',
|
||||||
|
'App\\SupportedApps\\Nzbget\\Nzbget' => __DIR__ . '/../..' . '/app/SupportedApps/Nzbget/Nzbget.php',
|
||||||
|
'App\\SupportedApps\\OPNsense\\OPNsense' => __DIR__ . '/../..' . '/app/SupportedApps/OPNsense/OPNsense.php',
|
||||||
|
'App\\SupportedApps\\Octoprint\\Octoprint' => __DIR__ . '/../..' . '/app/SupportedApps/Octoprint/Octoprint.php',
|
||||||
|
'App\\SupportedApps\\Ombi\\Ombi' => __DIR__ . '/../..' . '/app/SupportedApps/Ombi/Ombi.php',
|
||||||
|
'App\\SupportedApps\\OmniDB\\OmniDB' => __DIR__ . '/../..' . '/app/SupportedApps/OmniDB/OmniDB.php',
|
||||||
|
'App\\SupportedApps\\OnlyOffice\\OnlyOffice' => __DIR__ . '/../..' . '/app/SupportedApps/OnlyOffice/OnlyOffice.php',
|
||||||
|
'App\\SupportedApps\\OpenMapTiler\\OpenMapTiler' => __DIR__ . '/../..' . '/app/SupportedApps/OpenMapTiler/OpenMapTiler.php',
|
||||||
|
'App\\SupportedApps\\OpenSpeedTest\\OpenSpeedTest' => __DIR__ . '/../..' . '/app/SupportedApps/OpenSpeedTest/OpenSpeedTest.php',
|
||||||
|
'App\\SupportedApps\\OpenSprinkler\\OpenSprinkler' => __DIR__ . '/../..' . '/app/SupportedApps/OpenSprinkler/OpenSprinkler.php',
|
||||||
|
'App\\SupportedApps\\OpenWrt\\OpenWrt' => __DIR__ . '/../..' . '/app/SupportedApps/OpenWrt/OpenWrt.php',
|
||||||
|
'App\\SupportedApps\\Oscarr\\Oscarr' => __DIR__ . '/../..' . '/app/SupportedApps/Oscarr/Oscarr.php',
|
||||||
|
'App\\SupportedApps\\Overseerr\\Overseerr' => __DIR__ . '/../..' . '/app/SupportedApps/Overseerr/Overseerr.php',
|
||||||
|
'App\\SupportedApps\\OwnPhotos\\OwnPhotos' => __DIR__ . '/../..' . '/app/SupportedApps/OwnPhotos/OwnPhotos.php',
|
||||||
|
'App\\SupportedApps\\PRTG\\PRTG' => __DIR__ . '/../..' . '/app/SupportedApps/PRTG/PRTG.php',
|
||||||
|
'App\\SupportedApps\\PaloAltoNetworks\\PaloAltoNetworks' => __DIR__ . '/../..' . '/app/SupportedApps/PaloAltoNetworks/PaloAltoNetworks.php',
|
||||||
|
'App\\SupportedApps\\Paperless\\Paperless' => __DIR__ . '/../..' . '/app/SupportedApps/Paperless/Paperless.php',
|
||||||
|
'App\\SupportedApps\\PartKeepr\\PartKeepr' => __DIR__ . '/../..' . '/app/SupportedApps/PartKeepr/PartKeepr.php',
|
||||||
|
'App\\SupportedApps\\PeerTube\\PeerTube' => __DIR__ . '/../..' . '/app/SupportedApps/PeerTube/PeerTube.php',
|
||||||
|
'App\\SupportedApps\\PhotoPrism\\PhotoPrism' => __DIR__ . '/../..' . '/app/SupportedApps/PhotoPrism/PhotoPrism.php',
|
||||||
|
'App\\SupportedApps\\Photonix\\Photonix' => __DIR__ . '/../..' . '/app/SupportedApps/Photonix/Photonix.php',
|
||||||
|
'App\\SupportedApps\\PiAware\\PiAware' => __DIR__ . '/../..' . '/app/SupportedApps/PiAware/PiAware.php',
|
||||||
|
'App\\SupportedApps\\PiVPN\\PiVPN' => __DIR__ . '/../..' . '/app/SupportedApps/PiVPN/PiVPN.php',
|
||||||
|
'App\\SupportedApps\\Pihole\\Pihole' => __DIR__ . '/../..' . '/app/SupportedApps/Pihole/Pihole.php',
|
||||||
|
'App\\SupportedApps\\Piwigo\\Piwigo' => __DIR__ . '/../..' . '/app/SupportedApps/Piwigo/Piwigo.php',
|
||||||
|
'App\\SupportedApps\\Pleroma\\Pleroma' => __DIR__ . '/../..' . '/app/SupportedApps/Pleroma/Pleroma.php',
|
||||||
|
'App\\SupportedApps\\Plesk\\Plesk' => __DIR__ . '/../..' . '/app/SupportedApps/Plesk/Plesk.php',
|
||||||
|
'App\\SupportedApps\\PlexRequests\\PlexRequests' => __DIR__ . '/../..' . '/app/SupportedApps/PlexRequests/PlexRequests.php',
|
||||||
|
'App\\SupportedApps\\Plex\\Plex' => __DIR__ . '/../..' . '/app/SupportedApps/Plex/Plex.php',
|
||||||
|
'App\\SupportedApps\\Plume\\Plume' => __DIR__ . '/../..' . '/app/SupportedApps/Plume/Plume.php',
|
||||||
|
'App\\SupportedApps\\Portainer\\Portainer' => __DIR__ . '/../..' . '/app/SupportedApps/Portainer/Portainer.php',
|
||||||
|
'App\\SupportedApps\\Poste\\Poste' => __DIR__ . '/../..' . '/app/SupportedApps/Poste/Poste.php',
|
||||||
|
'App\\SupportedApps\\Printer\\Printer' => __DIR__ . '/../..' . '/app/SupportedApps/Printer/Printer.php',
|
||||||
|
'App\\SupportedApps\\Privatebin\\Privatebin' => __DIR__ . '/../..' . '/app/SupportedApps/Privatebin/Privatebin.php',
|
||||||
|
'App\\SupportedApps\\ProjectSend\\ProjectSend' => __DIR__ . '/../..' . '/app/SupportedApps/ProjectSend/ProjectSend.php',
|
||||||
|
'App\\SupportedApps\\Prometheus\\Prometheus' => __DIR__ . '/../..' . '/app/SupportedApps/Prometheus/Prometheus.php',
|
||||||
|
'App\\SupportedApps\\Prowlarr\\Prowlarr' => __DIR__ . '/../..' . '/app/SupportedApps/Prowlarr/Prowlarr.php',
|
||||||
|
'App\\SupportedApps\\Proxmox\\Proxmox' => __DIR__ . '/../..' . '/app/SupportedApps/Proxmox/Proxmox.php',
|
||||||
|
'App\\SupportedApps\\PsiTransfer\\PsiTransfer' => __DIR__ . '/../..' . '/app/SupportedApps/PsiTransfer/PsiTransfer.php',
|
||||||
|
'App\\SupportedApps\\Pterodactyl\\Pterodactyl' => __DIR__ . '/../..' . '/app/SupportedApps/Pterodactyl/Pterodactyl.php',
|
||||||
|
'App\\SupportedApps\\QNAP\\QNAP' => __DIR__ . '/../..' . '/app/SupportedApps/QNAP/QNAP.php',
|
||||||
|
'App\\SupportedApps\\RStudioServer\\RStudioServer' => __DIR__ . '/../..' . '/app/SupportedApps/RStudioServer/RStudioServer.php',
|
||||||
|
'App\\SupportedApps\\Radarr\\Radarr' => __DIR__ . '/../..' . '/app/SupportedApps/Radarr/Radarr.php',
|
||||||
|
'App\\SupportedApps\\Rainloop\\Rainloop' => __DIR__ . '/../..' . '/app/SupportedApps/Rainloop/Rainloop.php',
|
||||||
|
'App\\SupportedApps\\Rancher\\Rancher' => __DIR__ . '/../..' . '/app/SupportedApps/Rancher/Rancher.php',
|
||||||
|
'App\\SupportedApps\\Raneto\\Raneto' => __DIR__ . '/../..' . '/app/SupportedApps/Raneto/Raneto.php',
|
||||||
|
'App\\SupportedApps\\Rclone\\Rclone' => __DIR__ . '/../..' . '/app/SupportedApps/Rclone/Rclone.php',
|
||||||
|
'App\\SupportedApps\\Readarr\\Readarr' => __DIR__ . '/../..' . '/app/SupportedApps/Readarr/Readarr.php',
|
||||||
|
'App\\SupportedApps\\Recalbox\\Recalbox' => __DIR__ . '/../..' . '/app/SupportedApps/Recalbox/Recalbox.php',
|
||||||
|
'App\\SupportedApps\\Requestrr\\Requestrr' => __DIR__ . '/../..' . '/app/SupportedApps/Requestrr/Requestrr.php',
|
||||||
|
'App\\SupportedApps\\ResilioSync\\ResilioSync' => __DIR__ . '/../..' . '/app/SupportedApps/ResilioSync/ResilioSync.php',
|
||||||
|
'App\\SupportedApps\\RiotWeb\\RiotWeb' => __DIR__ . '/../..' . '/app/SupportedApps/RiotWeb/RiotWeb.php',
|
||||||
|
'App\\SupportedApps\\RocketChat\\RocketChat' => __DIR__ . '/../..' . '/app/SupportedApps/RocketChat/RocketChat.php',
|
||||||
|
'App\\SupportedApps\\RompЯ\\RompЯ' => __DIR__ . '/../..' . '/app/SupportedApps/RompЯ/RompЯ.php',
|
||||||
|
'App\\SupportedApps\\Roundcube\\Roundcube' => __DIR__ . '/../..' . '/app/SupportedApps/Roundcube/Roundcube.php',
|
||||||
|
'App\\SupportedApps\\Router\\Router' => __DIR__ . '/../..' . '/app/SupportedApps/Router/Router.php',
|
||||||
|
'App\\SupportedApps\\Rspamd\\Rspamd' => __DIR__ . '/../..' . '/app/SupportedApps/Rspamd/Rspamd.php',
|
||||||
|
'App\\SupportedApps\\Rundeck\\Rundeck' => __DIR__ . '/../..' . '/app/SupportedApps/Rundeck/Rundeck.php',
|
||||||
|
'App\\SupportedApps\\RuneAudio\\RuneAudio' => __DIR__ . '/../..' . '/app/SupportedApps/RuneAudio/RuneAudio.php',
|
||||||
|
'App\\SupportedApps\\SABnzbd\\SABnzbd' => __DIR__ . '/../..' . '/app/SupportedApps/SABnzbd/SABnzbd.php',
|
||||||
|
'App\\SupportedApps\\SOGo\\SOGo' => __DIR__ . '/../..' . '/app/SupportedApps/SOGo/SOGo.php',
|
||||||
|
'App\\SupportedApps\\Seafile\\Seafile' => __DIR__ . '/../..' . '/app/SupportedApps/Seafile/Seafile.php',
|
||||||
|
'App\\SupportedApps\\SearxMetasearchEngine\\SearxMetasearchEngine' => __DIR__ . '/../..' . '/app/SupportedApps/SearxMetasearchEngine/SearxMetasearchEngine.php',
|
||||||
|
'App\\SupportedApps\\Serviio\\Serviio' => __DIR__ . '/../..' . '/app/SupportedApps/Serviio/Serviio.php',
|
||||||
|
'App\\SupportedApps\\Shaarli\\Shaarli' => __DIR__ . '/../..' . '/app/SupportedApps/Shaarli/Shaarli.php',
|
||||||
|
'App\\SupportedApps\\Shinobi\\Shinobi' => __DIR__ . '/../..' . '/app/SupportedApps/Shinobi/Shinobi.php',
|
||||||
|
'App\\SupportedApps\\SickBeard\\SickBeard' => __DIR__ . '/../..' . '/app/SupportedApps/SickBeard/SickBeard.php',
|
||||||
|
'App\\SupportedApps\\SickGear\\SickGear' => __DIR__ . '/../..' . '/app/SupportedApps/SickGear/SickGear.php',
|
||||||
|
'App\\SupportedApps\\Sickchill\\Sickchill' => __DIR__ . '/../..' . '/app/SupportedApps/Sickchill/Sickchill.php',
|
||||||
|
'App\\SupportedApps\\Slack\\Slack' => __DIR__ . '/../..' . '/app/SupportedApps/Slack/Slack.php',
|
||||||
|
'App\\SupportedApps\\Snibox\\Snibox' => __DIR__ . '/../..' . '/app/SupportedApps/Snibox/Snibox.php',
|
||||||
|
'App\\SupportedApps\\SonarQube\\SonarQube' => __DIR__ . '/../..' . '/app/SupportedApps/SonarQube/SonarQube.php',
|
||||||
|
'App\\SupportedApps\\Sonarr\\Sonarr' => __DIR__ . '/../..' . '/app/SupportedApps/Sonarr/Sonarr.php',
|
||||||
|
'App\\SupportedApps\\Sourcegraph\\Sourcegraph' => __DIR__ . '/../..' . '/app/SupportedApps/Sourcegraph/Sourcegraph.php',
|
||||||
|
'App\\SupportedApps\\Splunk\\Splunk' => __DIR__ . '/../..' . '/app/SupportedApps/Splunk/Splunk.php',
|
||||||
|
'App\\SupportedApps\\Spotweb\\Spotweb' => __DIR__ . '/../..' . '/app/SupportedApps/Spotweb/Spotweb.php',
|
||||||
|
'App\\SupportedApps\\Squidex\\Squidex' => __DIR__ . '/../..' . '/app/SupportedApps/Squidex/Squidex.php',
|
||||||
|
'App\\SupportedApps\\Stash\\Stash' => __DIR__ . '/../..' . '/app/SupportedApps/Stash/Stash.php',
|
||||||
|
'App\\SupportedApps\\Statping\\Statping' => __DIR__ . '/../..' . '/app/SupportedApps/Statping/Statping.php',
|
||||||
|
'App\\SupportedApps\\Strapi\\Strapi' => __DIR__ . '/../..' . '/app/SupportedApps/Strapi/Strapi.php',
|
||||||
|
'App\\SupportedApps\\Streama\\Streama' => __DIR__ . '/../..' . '/app/SupportedApps/Streama/Streama.php',
|
||||||
|
'App\\SupportedApps\\Sympa\\Sympa' => __DIR__ . '/../..' . '/app/SupportedApps/Sympa/Sympa.php',
|
||||||
|
'App\\SupportedApps\\Synclounge\\Synclounge' => __DIR__ . '/../..' . '/app/SupportedApps/Synclounge/Synclounge.php',
|
||||||
|
'App\\SupportedApps\\Syncthing\\Syncthing' => __DIR__ . '/../..' . '/app/SupportedApps/Syncthing/Syncthing.php',
|
||||||
|
'App\\SupportedApps\\Synology\\Synology' => __DIR__ . '/../..' . '/app/SupportedApps/Synology/Synology.php',
|
||||||
|
'App\\SupportedApps\\TVHeadend\\TVHeadend' => __DIR__ . '/../..' . '/app/SupportedApps/TVHeadend/TVHeadend.php',
|
||||||
|
'App\\SupportedApps\\TYPO\\TYPO' => __DIR__ . '/../..' . '/app/SupportedApps/TYPO/TYPO.php',
|
||||||
|
'App\\SupportedApps\\Taiga\\Taiga' => __DIR__ . '/../..' . '/app/SupportedApps/Taiga/Taiga.php',
|
||||||
|
'App\\SupportedApps\\TandoorRecipes\\TandoorRecipes' => __DIR__ . '/../..' . '/app/SupportedApps/TandoorRecipes/TandoorRecipes.php',
|
||||||
|
'App\\SupportedApps\\TarTenNinety\\TarTenNinety' => __DIR__ . '/../..' . '/app/SupportedApps/TarTenNinety/TarTenNinety.php',
|
||||||
|
'App\\SupportedApps\\TasmoAdmin\\TasmoAdmin' => __DIR__ . '/../..' . '/app/SupportedApps/TasmoAdmin/TasmoAdmin.php',
|
||||||
|
'App\\SupportedApps\\Tasmota\\Tasmota' => __DIR__ . '/../..' . '/app/SupportedApps/Tasmota/Tasmota.php',
|
||||||
|
'App\\SupportedApps\\Tautulli\\Tautulli' => __DIR__ . '/../..' . '/app/SupportedApps/Tautulli/Tautulli.php',
|
||||||
|
'App\\SupportedApps\\Tdarr\\Tdarr' => __DIR__ . '/../..' . '/app/SupportedApps/Tdarr/Tdarr.php',
|
||||||
|
'App\\SupportedApps\\Teedy\\Teedy' => __DIR__ . '/../..' . '/app/SupportedApps/Teedy/Teedy.php',
|
||||||
|
'App\\SupportedApps\\TheLounge\\TheLounge' => __DIR__ . '/../..' . '/app/SupportedApps/TheLounge/TheLounge.php',
|
||||||
|
'App\\SupportedApps\\TinyTinyRSS\\TinyTinyRSS' => __DIR__ . '/../..' . '/app/SupportedApps/TinyTinyRSS/TinyTinyRSS.php',
|
||||||
|
'App\\SupportedApps\\Traccar\\Traccar' => __DIR__ . '/../..' . '/app/SupportedApps/Traccar/Traccar.php',
|
||||||
|
'App\\SupportedApps\\Traefik\\Traefik' => __DIR__ . '/../..' . '/app/SupportedApps/Traefik/Traefik.php',
|
||||||
|
'App\\SupportedApps\\Transmission\\Transmission' => __DIR__ . '/../..' . '/app/SupportedApps/Transmission/Transmission.php',
|
||||||
|
'App\\SupportedApps\\Trilium\\Trilium' => __DIR__ . '/../..' . '/app/SupportedApps/Trilium/Trilium.php',
|
||||||
|
'App\\SupportedApps\\TrueNASCORE\\TrueNASCORE' => __DIR__ . '/../..' . '/app/SupportedApps/TrueNASCORE/TrueNASCORE.php',
|
||||||
|
'App\\SupportedApps\\TrueNAS\\TrueNAS' => __DIR__ . '/../..' . '/app/SupportedApps/TrueNAS/TrueNAS.php',
|
||||||
|
'App\\SupportedApps\\Ubooquity\\Ubooquity' => __DIR__ . '/../..' . '/app/SupportedApps/Ubooquity/Ubooquity.php',
|
||||||
|
'App\\SupportedApps\\UniFi\\UniFi' => __DIR__ . '/../..' . '/app/SupportedApps/UniFi/UniFi.php',
|
||||||
|
'App\\SupportedApps\\Unraid\\Unraid' => __DIR__ . '/../..' . '/app/SupportedApps/Unraid/Unraid.php',
|
||||||
|
'App\\SupportedApps\\UrBackup\\UrBackup' => __DIR__ . '/../..' . '/app/SupportedApps/UrBackup/UrBackup.php',
|
||||||
|
'App\\SupportedApps\\VMwareESXi\\VMwareESXi' => __DIR__ . '/../..' . '/app/SupportedApps/VMwareESXi/VMwareESXi.php',
|
||||||
|
'App\\SupportedApps\\VMwarevCenter\\VMwarevCenter' => __DIR__ . '/../..' . '/app/SupportedApps/VMwarevCenter/VMwarevCenter.php',
|
||||||
|
'App\\SupportedApps\\ViMbAdmin\\ViMbAdmin' => __DIR__ . '/../..' . '/app/SupportedApps/ViMbAdmin/ViMbAdmin.php',
|
||||||
|
'App\\SupportedApps\\VirtualRadarServer\\VirtualRadarServer' => __DIR__ . '/../..' . '/app/SupportedApps/VirtualRadarServer/VirtualRadarServer.php',
|
||||||
|
'App\\SupportedApps\\Virtualmin\\Virtualmin' => __DIR__ . '/../..' . '/app/SupportedApps/Virtualmin/Virtualmin.php',
|
||||||
|
'App\\SupportedApps\\Volumio\\Volumio' => __DIR__ . '/../..' . '/app/SupportedApps/Volumio/Volumio.php',
|
||||||
|
'App\\SupportedApps\\VuPlus\\VuPlus' => __DIR__ . '/../..' . '/app/SupportedApps/VuPlus/VuPlus.php',
|
||||||
|
'App\\SupportedApps\\Wallabag\\Wallabag' => __DIR__ . '/../..' . '/app/SupportedApps/Wallabag/Wallabag.php',
|
||||||
|
'App\\SupportedApps\\WaniKani\\WaniKani' => __DIR__ . '/../..' . '/app/SupportedApps/WaniKani/WaniKani.php',
|
||||||
|
'App\\SupportedApps\\Watcher\\Watcher' => __DIR__ . '/../..' . '/app/SupportedApps/Watcher/Watcher.php',
|
||||||
|
'App\\SupportedApps\\WebTools\\WebTools' => __DIR__ . '/../..' . '/app/SupportedApps/WebTools/WebTools.php',
|
||||||
|
'App\\SupportedApps\\Webmin\\Webmin' => __DIR__ . '/../..' . '/app/SupportedApps/Webmin/Webmin.php',
|
||||||
|
'App\\SupportedApps\\Wekan\\Wekan' => __DIR__ . '/../..' . '/app/SupportedApps/Wekan/Wekan.php',
|
||||||
|
'App\\SupportedApps\\Wetty\\Wetty' => __DIR__ . '/../..' . '/app/SupportedApps/Wetty/Wetty.php',
|
||||||
|
'App\\SupportedApps\\WgGenWeb\\WgGenWeb' => __DIR__ . '/../..' . '/app/SupportedApps/WgGenWeb/WgGenWeb.php',
|
||||||
|
'App\\SupportedApps\\Wikijs\\Wikijs' => __DIR__ . '/../..' . '/app/SupportedApps/Wikijs/Wikijs.php',
|
||||||
|
'App\\SupportedApps\\WireGuard\\WireGuard' => __DIR__ . '/../..' . '/app/SupportedApps/WireGuard/WireGuard.php',
|
||||||
|
'App\\SupportedApps\\Wordpress\\Wordpress' => __DIR__ . '/../..' . '/app/SupportedApps/Wordpress/Wordpress.php',
|
||||||
|
'App\\SupportedApps\\XWiki\\XWiki' => __DIR__ . '/../..' . '/app/SupportedApps/XWiki/XWiki.php',
|
||||||
|
'App\\SupportedApps\\XenOrchestra\\XenOrchestra' => __DIR__ . '/../..' . '/app/SupportedApps/XenOrchestra/XenOrchestra.php',
|
||||||
|
'App\\SupportedApps\\Xigmanas\\Xigmanas' => __DIR__ . '/../..' . '/app/SupportedApps/Xigmanas/Xigmanas.php',
|
||||||
|
'App\\SupportedApps\\YNAB\\YNAB' => __DIR__ . '/../..' . '/app/SupportedApps/YNAB/YNAB.php',
|
||||||
|
'App\\SupportedApps\\ZNC\\ZNC' => __DIR__ . '/../..' . '/app/SupportedApps/ZNC/ZNC.php',
|
||||||
|
'App\\SupportedApps\\Zabbix\\Zabbix' => __DIR__ . '/../..' . '/app/SupportedApps/Zabbix/Zabbix.php',
|
||||||
|
'App\\SupportedApps\\Zammad\\Zammad' => __DIR__ . '/../..' . '/app/SupportedApps/Zammad/Zammad.php',
|
||||||
|
'App\\SupportedApps\\ZoneMinder\\ZoneMinder' => __DIR__ . '/../..' . '/app/SupportedApps/ZoneMinder/ZoneMinder.php',
|
||||||
|
'App\\SupportedApps\\Zulip\\Zulip' => __DIR__ . '/../..' . '/app/SupportedApps/Zulip/Zulip.php',
|
||||||
|
'App\\SupportedApps\\cPanel\\cPanel' => __DIR__ . '/../..' . '/app/SupportedApps/cPanel/cPanel.php',
|
||||||
|
'App\\SupportedApps\\iDRAC\\iDRAC' => __DIR__ . '/../..' . '/app/SupportedApps/iDRAC/iDRAC.php',
|
||||||
|
'App\\SupportedApps\\iLO\\iLO' => __DIR__ . '/../..' . '/app/SupportedApps/iLO/iLO.php',
|
||||||
|
'App\\SupportedApps\\ioBroker\\ioBroker' => __DIR__ . '/../..' . '/app/SupportedApps/ioBroker/ioBroker.php',
|
||||||
|
'App\\SupportedApps\\neightn\\neightn' => __DIR__ . '/../..' . '/app/SupportedApps/neightn/neightn.php',
|
||||||
|
'App\\SupportedApps\\openHAB\\openHAB' => __DIR__ . '/../..' . '/app/SupportedApps/openHAB/openHAB.php',
|
||||||
|
'App\\SupportedApps\\openmediavault\\openmediavault' => __DIR__ . '/../..' . '/app/SupportedApps/openmediavault/openmediavault.php',
|
||||||
|
'App\\SupportedApps\\osTicket\\osTicket' => __DIR__ . '/../..' . '/app/SupportedApps/osTicket/osTicket.php',
|
||||||
|
'App\\SupportedApps\\ownCloud\\ownCloud' => __DIR__ . '/../..' . '/app/SupportedApps/ownCloud/ownCloud.php',
|
||||||
|
'App\\SupportedApps\\pfSense\\pfSense' => __DIR__ . '/../..' . '/app/SupportedApps/pfSense/pfSense.php',
|
||||||
|
'App\\SupportedApps\\pgAdmin\\pgAdmin' => __DIR__ . '/../..' . '/app/SupportedApps/pgAdmin/pgAdmin.php',
|
||||||
|
'App\\SupportedApps\\phpIPAM\\phpIPAM' => __DIR__ . '/../..' . '/app/SupportedApps/phpIPAM/phpIPAM.php',
|
||||||
|
'App\\SupportedApps\\phpLDAPadmin\\phpLDAPadmin' => __DIR__ . '/../..' . '/app/SupportedApps/phpLDAPadmin/phpLDAPadmin.php',
|
||||||
|
'App\\SupportedApps\\phpMyAdmin\\phpMyAdmin' => __DIR__ . '/../..' . '/app/SupportedApps/phpMyAdmin/phpMyAdmin.php',
|
||||||
|
'App\\SupportedApps\\pyLoad\\pyLoad' => __DIR__ . '/../..' . '/app/SupportedApps/pyLoad/pyLoad.php',
|
||||||
|
'App\\SupportedApps\\qBittorrent\\qBittorrent' => __DIR__ . '/../..' . '/app/SupportedApps/qBittorrent/qBittorrent.php',
|
||||||
|
'App\\SupportedApps\\ruTorrent\\ruTorrent' => __DIR__ . '/../..' . '/app/SupportedApps/ruTorrent/ruTorrent.php',
|
||||||
|
'App\\SupportedApps\\vmwarehorizon\\vmwarehorizon' => __DIR__ . '/../..' . '/app/SupportedApps/vmwarehorizon/vmwarehorizon.php',
|
||||||
|
'App\\SupportedApps\\xTeVe\\xTeVe' => __DIR__ . '/../..' . '/app/SupportedApps/xTeVe/xTeVe.php',
|
||||||
|
'App\\SupportedApps\\youtubedl\\youtubedl' => __DIR__ . '/../..' . '/app/SupportedApps/youtubedl/youtubedl.php',
|
||||||
'App\\User' => __DIR__ . '/../..' . '/app/User.php',
|
'App\\User' => __DIR__ . '/../..' . '/app/User.php',
|
||||||
'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
|
'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
|
||||||
'Brick\\Math\\BigDecimal' => __DIR__ . '/..' . '/brick/math/src/BigDecimal.php',
|
'Brick\\Math\\BigDecimal' => __DIR__ . '/..' . '/brick/math/src/BigDecimal.php',
|
||||||
|
@ -5162,6 +5476,18 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
|
||||||
'Symfony\\Component\\VarExporter\\Internal\\Registry' => __DIR__ . '/..' . '/symfony/var-exporter/Internal/Registry.php',
|
'Symfony\\Component\\VarExporter\\Internal\\Registry' => __DIR__ . '/..' . '/symfony/var-exporter/Internal/Registry.php',
|
||||||
'Symfony\\Component\\VarExporter\\Internal\\Values' => __DIR__ . '/..' . '/symfony/var-exporter/Internal/Values.php',
|
'Symfony\\Component\\VarExporter\\Internal\\Values' => __DIR__ . '/..' . '/symfony/var-exporter/Internal/Values.php',
|
||||||
'Symfony\\Component\\VarExporter\\VarExporter' => __DIR__ . '/..' . '/symfony/var-exporter/VarExporter.php',
|
'Symfony\\Component\\VarExporter\\VarExporter' => __DIR__ . '/..' . '/symfony/var-exporter/VarExporter.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Command\\LintCommand' => __DIR__ . '/..' . '/symfony/yaml/Command/LintCommand.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Dumper' => __DIR__ . '/..' . '/symfony/yaml/Dumper.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Escaper' => __DIR__ . '/..' . '/symfony/yaml/Escaper.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Exception\\DumpException' => __DIR__ . '/..' . '/symfony/yaml/Exception/DumpException.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/yaml/Exception/ExceptionInterface.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Exception\\ParseException' => __DIR__ . '/..' . '/symfony/yaml/Exception/ParseException.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/yaml/Exception/RuntimeException.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Inline' => __DIR__ . '/..' . '/symfony/yaml/Inline.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Parser' => __DIR__ . '/..' . '/symfony/yaml/Parser.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Tag\\TaggedValue' => __DIR__ . '/..' . '/symfony/yaml/Tag/TaggedValue.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Unescaper' => __DIR__ . '/..' . '/symfony/yaml/Unescaper.php',
|
||||||
|
'Symfony\\Component\\Yaml\\Yaml' => __DIR__ . '/..' . '/symfony/yaml/Yaml.php',
|
||||||
'Symfony\\Contracts\\Cache\\CacheInterface' => __DIR__ . '/..' . '/symfony/cache-contracts/CacheInterface.php',
|
'Symfony\\Contracts\\Cache\\CacheInterface' => __DIR__ . '/..' . '/symfony/cache-contracts/CacheInterface.php',
|
||||||
'Symfony\\Contracts\\Cache\\CacheTrait' => __DIR__ . '/..' . '/symfony/cache-contracts/CacheTrait.php',
|
'Symfony\\Contracts\\Cache\\CacheTrait' => __DIR__ . '/..' . '/symfony/cache-contracts/CacheTrait.php',
|
||||||
'Symfony\\Contracts\\Cache\\CallbackInterface' => __DIR__ . '/..' . '/symfony/cache-contracts/CallbackInterface.php',
|
'Symfony\\Contracts\\Cache\\CallbackInterface' => __DIR__ . '/..' . '/symfony/cache-contracts/CallbackInterface.php',
|
||||||
|
|
78
vendor/composer/installed.json
vendored
78
vendor/composer/installed.json
vendored
|
@ -8000,6 +8000,84 @@
|
||||||
],
|
],
|
||||||
"install-path": "../symfony/var-exporter"
|
"install-path": "../symfony/var-exporter"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/yaml",
|
||||||
|
"version": "v5.4.3",
|
||||||
|
"version_normalized": "5.4.3.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/yaml.git",
|
||||||
|
"reference": "e80f87d2c9495966768310fc531b487ce64237a2"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/yaml/zipball/e80f87d2c9495966768310fc531b487ce64237a2",
|
||||||
|
"reference": "e80f87d2c9495966768310fc531b487ce64237a2",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=7.2.5",
|
||||||
|
"symfony/deprecation-contracts": "^2.1|^3",
|
||||||
|
"symfony/polyfill-ctype": "^1.8"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"symfony/console": "<5.3"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"symfony/console": "^5.3|^6.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"symfony/console": "For validating YAML files using the lint command"
|
||||||
|
},
|
||||||
|
"time": "2022-01-26T16:32:32+00:00",
|
||||||
|
"bin": [
|
||||||
|
"Resources/bin/yaml-lint"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Component\\Yaml\\": ""
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/Tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Loads and dumps YAML files",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/symfony/yaml/tree/v5.4.3"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://symfony.com/sponsor",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"install-path": "../symfony/yaml"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "theseer/tokenizer",
|
"name": "theseer/tokenizer",
|
||||||
"version": "1.2.1",
|
"version": "1.2.1",
|
||||||
|
|
13
vendor/composer/installed.php
vendored
13
vendor/composer/installed.php
vendored
|
@ -5,7 +5,7 @@
|
||||||
'type' => 'project',
|
'type' => 'project',
|
||||||
'install_path' => __DIR__ . '/../../',
|
'install_path' => __DIR__ . '/../../',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'reference' => 'f9a19fce91446a34aa433bb1426491fbb2005611',
|
'reference' => '96ec1e0b08d37ac3a4beea6d9d9076b6e3f6d58e',
|
||||||
'name' => 'laravel/laravel',
|
'name' => 'laravel/laravel',
|
||||||
'dev' => true,
|
'dev' => true,
|
||||||
),
|
),
|
||||||
|
@ -379,7 +379,7 @@
|
||||||
'type' => 'project',
|
'type' => 'project',
|
||||||
'install_path' => __DIR__ . '/../../',
|
'install_path' => __DIR__ . '/../../',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'reference' => 'f9a19fce91446a34aa433bb1426491fbb2005611',
|
'reference' => '96ec1e0b08d37ac3a4beea6d9d9076b6e3f6d58e',
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'laravel/tinker' => array(
|
'laravel/tinker' => array(
|
||||||
|
@ -1271,6 +1271,15 @@
|
||||||
'reference' => '49e2355fe6f59ea30c18ebb68edf13b7e20582e5',
|
'reference' => '49e2355fe6f59ea30c18ebb68edf13b7e20582e5',
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
|
'symfony/yaml' => array(
|
||||||
|
'pretty_version' => 'v5.4.3',
|
||||||
|
'version' => '5.4.3.0',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../symfony/yaml',
|
||||||
|
'aliases' => array(),
|
||||||
|
'reference' => 'e80f87d2c9495966768310fc531b487ce64237a2',
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
'theseer/tokenizer' => array(
|
'theseer/tokenizer' => array(
|
||||||
'pretty_version' => '1.2.1',
|
'pretty_version' => '1.2.1',
|
||||||
'version' => '1.2.1.0',
|
'version' => '1.2.1.0',
|
||||||
|
|
237
vendor/symfony/yaml/CHANGELOG.md
vendored
Normal file
237
vendor/symfony/yaml/CHANGELOG.md
vendored
Normal file
|
@ -0,0 +1,237 @@
|
||||||
|
CHANGELOG
|
||||||
|
=========
|
||||||
|
|
||||||
|
5.4
|
||||||
|
---
|
||||||
|
|
||||||
|
* Add new `lint:yaml dirname --exclude=/dirname/foo.yaml --exclude=/dirname/bar.yaml`
|
||||||
|
option to exclude one or more specific files from multiple file list
|
||||||
|
* Allow negatable for the parse tags option with `--no-parse-tags`
|
||||||
|
|
||||||
|
5.3
|
||||||
|
---
|
||||||
|
|
||||||
|
* Added `github` format support & autodetection to render errors as annotations
|
||||||
|
when running the YAML linter command in a Github Action environment.
|
||||||
|
|
||||||
|
5.1.0
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Added support for parsing numbers prefixed with `0o` as octal numbers.
|
||||||
|
* Deprecated support for parsing numbers starting with `0` as octal numbers. They will be parsed as strings as of Symfony 6.0. Prefix numbers with `0o`
|
||||||
|
so that they are parsed as octal numbers.
|
||||||
|
|
||||||
|
Before:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
Yaml::parse('072');
|
||||||
|
```
|
||||||
|
|
||||||
|
After:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
Yaml::parse('0o72');
|
||||||
|
```
|
||||||
|
|
||||||
|
* Added `yaml-lint` binary.
|
||||||
|
* Deprecated using the `!php/object` and `!php/const` tags without a value.
|
||||||
|
|
||||||
|
5.0.0
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Removed support for mappings inside multi-line strings.
|
||||||
|
* removed support for implicit STDIN usage in the `lint:yaml` command, use `lint:yaml -` (append a dash) instead to make it explicit.
|
||||||
|
|
||||||
|
4.4.0
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Added support for parsing the inline notation spanning multiple lines.
|
||||||
|
* Added support to dump `null` as `~` by using the `Yaml::DUMP_NULL_AS_TILDE` flag.
|
||||||
|
* deprecated accepting STDIN implicitly when using the `lint:yaml` command, use `lint:yaml -` (append a dash) instead to make it explicit.
|
||||||
|
|
||||||
|
4.3.0
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Using a mapping inside a multi-line string is deprecated and will throw a `ParseException` in 5.0.
|
||||||
|
|
||||||
|
4.2.0
|
||||||
|
-----
|
||||||
|
|
||||||
|
* added support for multiple files or directories in `LintCommand`
|
||||||
|
|
||||||
|
4.0.0
|
||||||
|
-----
|
||||||
|
|
||||||
|
* The behavior of the non-specific tag `!` is changed and now forces
|
||||||
|
non-evaluating your values.
|
||||||
|
* complex mappings will throw a `ParseException`
|
||||||
|
* support for the comma as a group separator for floats has been dropped, use
|
||||||
|
the underscore instead
|
||||||
|
* support for the `!!php/object` tag has been dropped, use the `!php/object`
|
||||||
|
tag instead
|
||||||
|
* duplicate mapping keys throw a `ParseException`
|
||||||
|
* non-string mapping keys throw a `ParseException`, use the `Yaml::PARSE_KEYS_AS_STRINGS`
|
||||||
|
flag to cast them to strings
|
||||||
|
* `%` at the beginning of an unquoted string throw a `ParseException`
|
||||||
|
* mappings with a colon (`:`) that is not followed by a whitespace throw a
|
||||||
|
`ParseException`
|
||||||
|
* the `Dumper::setIndentation()` method has been removed
|
||||||
|
* being able to pass boolean options to the `Yaml::parse()`, `Yaml::dump()`,
|
||||||
|
`Parser::parse()`, and `Dumper::dump()` methods to configure the behavior of
|
||||||
|
the parser and dumper is no longer supported, pass bitmask flags instead
|
||||||
|
* the constructor arguments of the `Parser` class have been removed
|
||||||
|
* the `Inline` class is internal and no longer part of the BC promise
|
||||||
|
* removed support for the `!str` tag, use the `!!str` tag instead
|
||||||
|
* added support for tagged scalars.
|
||||||
|
|
||||||
|
```yml
|
||||||
|
Yaml::parse('!foo bar', Yaml::PARSE_CUSTOM_TAGS);
|
||||||
|
// returns TaggedValue('foo', 'bar');
|
||||||
|
```
|
||||||
|
|
||||||
|
3.4.0
|
||||||
|
-----
|
||||||
|
|
||||||
|
* added support for parsing YAML files using the `Yaml::parseFile()` or `Parser::parseFile()` method
|
||||||
|
|
||||||
|
* the `Dumper`, `Parser`, and `Yaml` classes are marked as final
|
||||||
|
|
||||||
|
* Deprecated the `!php/object:` tag which will be replaced by the
|
||||||
|
`!php/object` tag (without the colon) in 4.0.
|
||||||
|
|
||||||
|
* Deprecated the `!php/const:` tag which will be replaced by the
|
||||||
|
`!php/const` tag (without the colon) in 4.0.
|
||||||
|
|
||||||
|
* Support for the `!str` tag is deprecated, use the `!!str` tag instead.
|
||||||
|
|
||||||
|
* Deprecated using the non-specific tag `!` as its behavior will change in 4.0.
|
||||||
|
It will force non-evaluating your values in 4.0. Use plain integers or `!!float` instead.
|
||||||
|
|
||||||
|
3.3.0
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Starting an unquoted string with a question mark followed by a space is
|
||||||
|
deprecated and will throw a `ParseException` in Symfony 4.0.
|
||||||
|
|
||||||
|
* Deprecated support for implicitly parsing non-string mapping keys as strings.
|
||||||
|
Mapping keys that are no strings will lead to a `ParseException` in Symfony
|
||||||
|
4.0. Use quotes to opt-in for keys to be parsed as strings.
|
||||||
|
|
||||||
|
Before:
|
||||||
|
|
||||||
|
```php
|
||||||
|
$yaml = <<<YAML
|
||||||
|
null: null key
|
||||||
|
true: boolean true
|
||||||
|
2.0: float key
|
||||||
|
YAML;
|
||||||
|
|
||||||
|
Yaml::parse($yaml);
|
||||||
|
```
|
||||||
|
|
||||||
|
After:
|
||||||
|
|
||||||
|
```php
|
||||||
|
|
||||||
|
$yaml = <<<YAML
|
||||||
|
"null": null key
|
||||||
|
"true": boolean true
|
||||||
|
"2.0": float key
|
||||||
|
YAML;
|
||||||
|
|
||||||
|
Yaml::parse($yaml);
|
||||||
|
```
|
||||||
|
|
||||||
|
* Omitted mapping values will be parsed as `null`.
|
||||||
|
|
||||||
|
* Omitting the key of a mapping is deprecated and will throw a `ParseException` in Symfony 4.0.
|
||||||
|
|
||||||
|
* Added support for dumping empty PHP arrays as YAML sequences:
|
||||||
|
|
||||||
|
```php
|
||||||
|
Yaml::dump([], 0, 0, Yaml::DUMP_EMPTY_ARRAY_AS_SEQUENCE);
|
||||||
|
```
|
||||||
|
|
||||||
|
3.2.0
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Mappings with a colon (`:`) that is not followed by a whitespace are deprecated
|
||||||
|
when the mapping key is not quoted and will lead to a `ParseException` in
|
||||||
|
Symfony 4.0 (e.g. `foo:bar` must be `foo: bar`).
|
||||||
|
|
||||||
|
* Added support for parsing PHP constants:
|
||||||
|
|
||||||
|
```php
|
||||||
|
Yaml::parse('!php/const:PHP_INT_MAX', Yaml::PARSE_CONSTANT);
|
||||||
|
```
|
||||||
|
|
||||||
|
* Support for silently ignoring duplicate mapping keys in YAML has been
|
||||||
|
deprecated and will lead to a `ParseException` in Symfony 4.0.
|
||||||
|
|
||||||
|
3.1.0
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Added support to dump `stdClass` and `ArrayAccess` objects as YAML mappings
|
||||||
|
through the `Yaml::DUMP_OBJECT_AS_MAP` flag.
|
||||||
|
|
||||||
|
* Strings that are not UTF-8 encoded will be dumped as base64 encoded binary
|
||||||
|
data.
|
||||||
|
|
||||||
|
* Added support for dumping multi line strings as literal blocks.
|
||||||
|
|
||||||
|
* Added support for parsing base64 encoded binary data when they are tagged
|
||||||
|
with the `!!binary` tag.
|
||||||
|
|
||||||
|
* Added support for parsing timestamps as `\DateTime` objects:
|
||||||
|
|
||||||
|
```php
|
||||||
|
Yaml::parse('2001-12-15 21:59:43.10 -5', Yaml::PARSE_DATETIME);
|
||||||
|
```
|
||||||
|
|
||||||
|
* `\DateTime` and `\DateTimeImmutable` objects are dumped as YAML timestamps.
|
||||||
|
|
||||||
|
* Deprecated usage of `%` at the beginning of an unquoted string.
|
||||||
|
|
||||||
|
* Added support for customizing the YAML parser behavior through an optional bit field:
|
||||||
|
|
||||||
|
```php
|
||||||
|
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE | Yaml::PARSE_OBJECT | Yaml::PARSE_OBJECT_FOR_MAP);
|
||||||
|
```
|
||||||
|
|
||||||
|
* Added support for customizing the dumped YAML string through an optional bit field:
|
||||||
|
|
||||||
|
```php
|
||||||
|
Yaml::dump(['foo' => new A(), 'bar' => 1], 0, 0, Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE | Yaml::DUMP_OBJECT);
|
||||||
|
```
|
||||||
|
|
||||||
|
3.0.0
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Yaml::parse() now throws an exception when a blackslash is not escaped
|
||||||
|
in double-quoted strings
|
||||||
|
|
||||||
|
2.8.0
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Deprecated usage of a colon in an unquoted mapping value
|
||||||
|
* Deprecated usage of @, \`, | and > at the beginning of an unquoted string
|
||||||
|
* When surrounding strings with double-quotes, you must now escape `\` characters. Not
|
||||||
|
escaping those characters (when surrounded by double-quotes) is deprecated.
|
||||||
|
|
||||||
|
Before:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
class: "Foo\Var"
|
||||||
|
```
|
||||||
|
|
||||||
|
After:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
class: "Foo\\Var"
|
||||||
|
```
|
||||||
|
|
||||||
|
2.1.0
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Yaml::parse() does not evaluate loaded files as PHP files by default
|
||||||
|
anymore (call Yaml::enablePhpParsing() to get back the old behavior)
|
289
vendor/symfony/yaml/Command/LintCommand.php
vendored
Normal file
289
vendor/symfony/yaml/Command/LintCommand.php
vendored
Normal file
|
@ -0,0 +1,289 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Symfony package.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Symfony\Component\Yaml\Command;
|
||||||
|
|
||||||
|
use Symfony\Component\Console\CI\GithubActionReporter;
|
||||||
|
use Symfony\Component\Console\Command\Command;
|
||||||
|
use Symfony\Component\Console\Completion\CompletionInput;
|
||||||
|
use Symfony\Component\Console\Completion\CompletionSuggestions;
|
||||||
|
use Symfony\Component\Console\Exception\InvalidArgumentException;
|
||||||
|
use Symfony\Component\Console\Exception\RuntimeException;
|
||||||
|
use Symfony\Component\Console\Input\InputArgument;
|
||||||
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
|
use Symfony\Component\Console\Input\InputOption;
|
||||||
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
|
use Symfony\Component\Console\Style\SymfonyStyle;
|
||||||
|
use Symfony\Component\Yaml\Exception\ParseException;
|
||||||
|
use Symfony\Component\Yaml\Parser;
|
||||||
|
use Symfony\Component\Yaml\Yaml;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates YAML files syntax and outputs encountered errors.
|
||||||
|
*
|
||||||
|
* @author Grégoire Pineau <lyrixx@lyrixx.info>
|
||||||
|
* @author Robin Chalas <robin.chalas@gmail.com>
|
||||||
|
*/
|
||||||
|
class LintCommand extends Command
|
||||||
|
{
|
||||||
|
protected static $defaultName = 'lint:yaml';
|
||||||
|
protected static $defaultDescription = 'Lint a YAML file and outputs encountered errors';
|
||||||
|
|
||||||
|
private $parser;
|
||||||
|
private $format;
|
||||||
|
private $displayCorrectFiles;
|
||||||
|
private $directoryIteratorProvider;
|
||||||
|
private $isReadableProvider;
|
||||||
|
|
||||||
|
public function __construct(string $name = null, callable $directoryIteratorProvider = null, callable $isReadableProvider = null)
|
||||||
|
{
|
||||||
|
parent::__construct($name);
|
||||||
|
|
||||||
|
$this->directoryIteratorProvider = $directoryIteratorProvider;
|
||||||
|
$this->isReadableProvider = $isReadableProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function configure()
|
||||||
|
{
|
||||||
|
$this
|
||||||
|
->setDescription(self::$defaultDescription)
|
||||||
|
->addArgument('filename', InputArgument::IS_ARRAY, 'A file, a directory or "-" for reading from STDIN')
|
||||||
|
->addOption('format', null, InputOption::VALUE_REQUIRED, 'The output format')
|
||||||
|
->addOption('exclude', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Path(s) to exclude')
|
||||||
|
->addOption('parse-tags', null, InputOption::VALUE_NEGATABLE, 'Parse custom tags', null)
|
||||||
|
->setHelp(<<<EOF
|
||||||
|
The <info>%command.name%</info> command lints a YAML file and outputs to STDOUT
|
||||||
|
the first encountered syntax error.
|
||||||
|
|
||||||
|
You can validates YAML contents passed from STDIN:
|
||||||
|
|
||||||
|
<info>cat filename | php %command.full_name% -</info>
|
||||||
|
|
||||||
|
You can also validate the syntax of a file:
|
||||||
|
|
||||||
|
<info>php %command.full_name% filename</info>
|
||||||
|
|
||||||
|
Or of a whole directory:
|
||||||
|
|
||||||
|
<info>php %command.full_name% dirname</info>
|
||||||
|
<info>php %command.full_name% dirname --format=json</info>
|
||||||
|
|
||||||
|
You can also exclude one or more specific files:
|
||||||
|
|
||||||
|
<info>php %command.full_name% dirname --exclude="dirname/foo.yaml" --exclude="dirname/bar.yaml"</info>
|
||||||
|
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
|
{
|
||||||
|
$io = new SymfonyStyle($input, $output);
|
||||||
|
$filenames = (array) $input->getArgument('filename');
|
||||||
|
$excludes = $input->getOption('exclude');
|
||||||
|
$this->format = $input->getOption('format');
|
||||||
|
$flags = $input->getOption('parse-tags');
|
||||||
|
|
||||||
|
if ('github' === $this->format && !class_exists(GithubActionReporter::class)) {
|
||||||
|
throw new \InvalidArgumentException('The "github" format is only available since "symfony/console" >= 5.3.');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null === $this->format) {
|
||||||
|
// Autodetect format according to CI environment
|
||||||
|
$this->format = class_exists(GithubActionReporter::class) && GithubActionReporter::isGithubActionEnvironment() ? 'github' : 'txt';
|
||||||
|
}
|
||||||
|
|
||||||
|
$flags = $flags ? Yaml::PARSE_CUSTOM_TAGS : 0;
|
||||||
|
|
||||||
|
$this->displayCorrectFiles = $output->isVerbose();
|
||||||
|
|
||||||
|
if (['-'] === $filenames) {
|
||||||
|
return $this->display($io, [$this->validate(file_get_contents('php://stdin'), $flags)]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$filenames) {
|
||||||
|
throw new RuntimeException('Please provide a filename or pipe file content to STDIN.');
|
||||||
|
}
|
||||||
|
|
||||||
|
$filesInfo = [];
|
||||||
|
foreach ($filenames as $filename) {
|
||||||
|
if (!$this->isReadable($filename)) {
|
||||||
|
throw new RuntimeException(sprintf('File or directory "%s" is not readable.', $filename));
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($this->getFiles($filename) as $file) {
|
||||||
|
if (!\in_array($file->getPathname(), $excludes, true)) {
|
||||||
|
$filesInfo[] = $this->validate(file_get_contents($file), $flags, $file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->display($io, $filesInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function validate(string $content, int $flags, string $file = null)
|
||||||
|
{
|
||||||
|
$prevErrorHandler = set_error_handler(function ($level, $message, $file, $line) use (&$prevErrorHandler) {
|
||||||
|
if (\E_USER_DEPRECATED === $level) {
|
||||||
|
throw new ParseException($message, $this->getParser()->getRealCurrentLineNb() + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $prevErrorHandler ? $prevErrorHandler($level, $message, $file, $line) : false;
|
||||||
|
});
|
||||||
|
|
||||||
|
try {
|
||||||
|
$this->getParser()->parse($content, Yaml::PARSE_CONSTANT | $flags);
|
||||||
|
} catch (ParseException $e) {
|
||||||
|
return ['file' => $file, 'line' => $e->getParsedLine(), 'valid' => false, 'message' => $e->getMessage()];
|
||||||
|
} finally {
|
||||||
|
restore_error_handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
return ['file' => $file, 'valid' => true];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function display(SymfonyStyle $io, array $files): int
|
||||||
|
{
|
||||||
|
switch ($this->format) {
|
||||||
|
case 'txt':
|
||||||
|
return $this->displayTxt($io, $files);
|
||||||
|
case 'json':
|
||||||
|
return $this->displayJson($io, $files);
|
||||||
|
case 'github':
|
||||||
|
return $this->displayTxt($io, $files, true);
|
||||||
|
default:
|
||||||
|
throw new InvalidArgumentException(sprintf('The format "%s" is not supported.', $this->format));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function displayTxt(SymfonyStyle $io, array $filesInfo, bool $errorAsGithubAnnotations = false): int
|
||||||
|
{
|
||||||
|
$countFiles = \count($filesInfo);
|
||||||
|
$erroredFiles = 0;
|
||||||
|
$suggestTagOption = false;
|
||||||
|
|
||||||
|
if ($errorAsGithubAnnotations) {
|
||||||
|
$githubReporter = new GithubActionReporter($io);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($filesInfo as $info) {
|
||||||
|
if ($info['valid'] && $this->displayCorrectFiles) {
|
||||||
|
$io->comment('<info>OK</info>'.($info['file'] ? sprintf(' in %s', $info['file']) : ''));
|
||||||
|
} elseif (!$info['valid']) {
|
||||||
|
++$erroredFiles;
|
||||||
|
$io->text('<error> ERROR </error>'.($info['file'] ? sprintf(' in %s', $info['file']) : ''));
|
||||||
|
$io->text(sprintf('<error> >> %s</error>', $info['message']));
|
||||||
|
|
||||||
|
if (false !== strpos($info['message'], 'PARSE_CUSTOM_TAGS')) {
|
||||||
|
$suggestTagOption = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($errorAsGithubAnnotations) {
|
||||||
|
$githubReporter->error($info['message'], $info['file'] ?? 'php://stdin', $info['line']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (0 === $erroredFiles) {
|
||||||
|
$io->success(sprintf('All %d YAML files contain valid syntax.', $countFiles));
|
||||||
|
} else {
|
||||||
|
$io->warning(sprintf('%d YAML files have valid syntax and %d contain errors.%s', $countFiles - $erroredFiles, $erroredFiles, $suggestTagOption ? ' Use the --parse-tags option if you want parse custom tags.' : ''));
|
||||||
|
}
|
||||||
|
|
||||||
|
return min($erroredFiles, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function displayJson(SymfonyStyle $io, array $filesInfo): int
|
||||||
|
{
|
||||||
|
$errors = 0;
|
||||||
|
|
||||||
|
array_walk($filesInfo, function (&$v) use (&$errors) {
|
||||||
|
$v['file'] = (string) $v['file'];
|
||||||
|
if (!$v['valid']) {
|
||||||
|
++$errors;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($v['message']) && false !== strpos($v['message'], 'PARSE_CUSTOM_TAGS')) {
|
||||||
|
$v['message'] .= ' Use the --parse-tags option if you want parse custom tags.';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$io->writeln(json_encode($filesInfo, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES));
|
||||||
|
|
||||||
|
return min($errors, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getFiles(string $fileOrDirectory): iterable
|
||||||
|
{
|
||||||
|
if (is_file($fileOrDirectory)) {
|
||||||
|
yield new \SplFileInfo($fileOrDirectory);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($this->getDirectoryIterator($fileOrDirectory) as $file) {
|
||||||
|
if (!\in_array($file->getExtension(), ['yml', 'yaml'])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
yield $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getParser(): Parser
|
||||||
|
{
|
||||||
|
if (!$this->parser) {
|
||||||
|
$this->parser = new Parser();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->parser;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getDirectoryIterator(string $directory): iterable
|
||||||
|
{
|
||||||
|
$default = function ($directory) {
|
||||||
|
return new \RecursiveIteratorIterator(
|
||||||
|
new \RecursiveDirectoryIterator($directory, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS),
|
||||||
|
\RecursiveIteratorIterator::LEAVES_ONLY
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (null !== $this->directoryIteratorProvider) {
|
||||||
|
return ($this->directoryIteratorProvider)($directory, $default);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $default($directory);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function isReadable(string $fileOrDirectory): bool
|
||||||
|
{
|
||||||
|
$default = function ($fileOrDirectory) {
|
||||||
|
return is_readable($fileOrDirectory);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (null !== $this->isReadableProvider) {
|
||||||
|
return ($this->isReadableProvider)($fileOrDirectory, $default);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $default($fileOrDirectory);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function complete(CompletionInput $input, CompletionSuggestions $suggestions): void
|
||||||
|
{
|
||||||
|
if ($input->mustSuggestOptionValuesFor('format')) {
|
||||||
|
$suggestions->suggestValues(['txt', 'json', 'github']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
140
vendor/symfony/yaml/Dumper.php
vendored
Normal file
140
vendor/symfony/yaml/Dumper.php
vendored
Normal file
|
@ -0,0 +1,140 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Symfony package.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Symfony\Component\Yaml;
|
||||||
|
|
||||||
|
use Symfony\Component\Yaml\Tag\TaggedValue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dumper dumps PHP variables to YAML strings.
|
||||||
|
*
|
||||||
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* @final
|
||||||
|
*/
|
||||||
|
class Dumper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The amount of spaces to use for indentation of nested nodes.
|
||||||
|
*
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
protected $indentation;
|
||||||
|
|
||||||
|
public function __construct(int $indentation = 4)
|
||||||
|
{
|
||||||
|
if ($indentation < 1) {
|
||||||
|
throw new \InvalidArgumentException('The indentation must be greater than zero.');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->indentation = $indentation;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dumps a PHP value to YAML.
|
||||||
|
*
|
||||||
|
* @param mixed $input The PHP value
|
||||||
|
* @param int $inline The level where you switch to inline YAML
|
||||||
|
* @param int $indent The level of indentation (used internally)
|
||||||
|
* @param int $flags A bit field of Yaml::DUMP_* constants to customize the dumped YAML string
|
||||||
|
*/
|
||||||
|
public function dump($input, int $inline = 0, int $indent = 0, int $flags = 0): string
|
||||||
|
{
|
||||||
|
$output = '';
|
||||||
|
$prefix = $indent ? str_repeat(' ', $indent) : '';
|
||||||
|
$dumpObjectAsInlineMap = true;
|
||||||
|
|
||||||
|
if (Yaml::DUMP_OBJECT_AS_MAP & $flags && ($input instanceof \ArrayObject || $input instanceof \stdClass)) {
|
||||||
|
$dumpObjectAsInlineMap = empty((array) $input);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($inline <= 0 || (!\is_array($input) && !$input instanceof TaggedValue && $dumpObjectAsInlineMap) || empty($input)) {
|
||||||
|
$output .= $prefix.Inline::dump($input, $flags);
|
||||||
|
} else {
|
||||||
|
$dumpAsMap = Inline::isHash($input);
|
||||||
|
|
||||||
|
foreach ($input as $key => $value) {
|
||||||
|
if ('' !== $output && "\n" !== $output[-1]) {
|
||||||
|
$output .= "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK & $flags && \is_string($value) && false !== strpos($value, "\n") && false === strpos($value, "\r")) {
|
||||||
|
// If the first line starts with a space character, the spec requires a blockIndicationIndicator
|
||||||
|
// http://www.yaml.org/spec/1.2/spec.html#id2793979
|
||||||
|
$blockIndentationIndicator = (' ' === substr($value, 0, 1)) ? (string) $this->indentation : '';
|
||||||
|
|
||||||
|
if (isset($value[-2]) && "\n" === $value[-2] && "\n" === $value[-1]) {
|
||||||
|
$blockChompingIndicator = '+';
|
||||||
|
} elseif ("\n" === $value[-1]) {
|
||||||
|
$blockChompingIndicator = '';
|
||||||
|
} else {
|
||||||
|
$blockChompingIndicator = '-';
|
||||||
|
}
|
||||||
|
|
||||||
|
$output .= sprintf('%s%s%s |%s%s', $prefix, $dumpAsMap ? Inline::dump($key, $flags).':' : '-', '', $blockIndentationIndicator, $blockChompingIndicator);
|
||||||
|
|
||||||
|
foreach (explode("\n", $value) as $row) {
|
||||||
|
if ('' === $row) {
|
||||||
|
$output .= "\n";
|
||||||
|
} else {
|
||||||
|
$output .= sprintf("\n%s%s%s", $prefix, str_repeat(' ', $this->indentation), $row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value instanceof TaggedValue) {
|
||||||
|
$output .= sprintf('%s%s !%s', $prefix, $dumpAsMap ? Inline::dump($key, $flags).':' : '-', $value->getTag());
|
||||||
|
|
||||||
|
if (Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK & $flags && \is_string($value->getValue()) && false !== strpos($value->getValue(), "\n") && false === strpos($value->getValue(), "\r\n")) {
|
||||||
|
// If the first line starts with a space character, the spec requires a blockIndicationIndicator
|
||||||
|
// http://www.yaml.org/spec/1.2/spec.html#id2793979
|
||||||
|
$blockIndentationIndicator = (' ' === substr($value->getValue(), 0, 1)) ? (string) $this->indentation : '';
|
||||||
|
$output .= sprintf(' |%s', $blockIndentationIndicator);
|
||||||
|
|
||||||
|
foreach (explode("\n", $value->getValue()) as $row) {
|
||||||
|
$output .= sprintf("\n%s%s%s", $prefix, str_repeat(' ', $this->indentation), $row);
|
||||||
|
}
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($inline - 1 <= 0 || null === $value->getValue() || is_scalar($value->getValue())) {
|
||||||
|
$output .= ' '.$this->dump($value->getValue(), $inline - 1, 0, $flags)."\n";
|
||||||
|
} else {
|
||||||
|
$output .= "\n";
|
||||||
|
$output .= $this->dump($value->getValue(), $inline - 1, $dumpAsMap ? $indent + $this->indentation : $indent + 2, $flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$dumpObjectAsInlineMap = true;
|
||||||
|
|
||||||
|
if (Yaml::DUMP_OBJECT_AS_MAP & $flags && ($value instanceof \ArrayObject || $value instanceof \stdClass)) {
|
||||||
|
$dumpObjectAsInlineMap = empty((array) $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
$willBeInlined = $inline - 1 <= 0 || !\is_array($value) && $dumpObjectAsInlineMap || empty($value);
|
||||||
|
|
||||||
|
$output .= sprintf('%s%s%s%s',
|
||||||
|
$prefix,
|
||||||
|
$dumpAsMap ? Inline::dump($key, $flags).':' : '-',
|
||||||
|
$willBeInlined ? ' ' : "\n",
|
||||||
|
$this->dump($value, $inline - 1, $willBeInlined ? 0 : $indent + $this->indentation, $flags)
|
||||||
|
).($willBeInlined ? "\n" : '');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
}
|
95
vendor/symfony/yaml/Escaper.php
vendored
Normal file
95
vendor/symfony/yaml/Escaper.php
vendored
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Symfony package.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Symfony\Component\Yaml;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Escaper encapsulates escaping rules for single and double-quoted
|
||||||
|
* YAML strings.
|
||||||
|
*
|
||||||
|
* @author Matthew Lewinski <matthew@lewinski.org>
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
class Escaper
|
||||||
|
{
|
||||||
|
// Characters that would cause a dumped string to require double quoting.
|
||||||
|
public const REGEX_CHARACTER_TO_ESCAPE = "[\\x00-\\x1f]|\x7f|\xc2\x85|\xc2\xa0|\xe2\x80\xa8|\xe2\x80\xa9";
|
||||||
|
|
||||||
|
// Mapping arrays for escaping a double quoted string. The backslash is
|
||||||
|
// first to ensure proper escaping because str_replace operates iteratively
|
||||||
|
// on the input arrays. This ordering of the characters avoids the use of strtr,
|
||||||
|
// which performs more slowly.
|
||||||
|
private const ESCAPEES = ['\\', '\\\\', '\\"', '"',
|
||||||
|
"\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07",
|
||||||
|
"\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f",
|
||||||
|
"\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17",
|
||||||
|
"\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f",
|
||||||
|
"\x7f",
|
||||||
|
"\xc2\x85", "\xc2\xa0", "\xe2\x80\xa8", "\xe2\x80\xa9",
|
||||||
|
];
|
||||||
|
private const ESCAPED = ['\\\\', '\\"', '\\\\', '\\"',
|
||||||
|
'\\0', '\\x01', '\\x02', '\\x03', '\\x04', '\\x05', '\\x06', '\\a',
|
||||||
|
'\\b', '\\t', '\\n', '\\v', '\\f', '\\r', '\\x0e', '\\x0f',
|
||||||
|
'\\x10', '\\x11', '\\x12', '\\x13', '\\x14', '\\x15', '\\x16', '\\x17',
|
||||||
|
'\\x18', '\\x19', '\\x1a', '\\e', '\\x1c', '\\x1d', '\\x1e', '\\x1f',
|
||||||
|
'\\x7f',
|
||||||
|
'\\N', '\\_', '\\L', '\\P',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines if a PHP value would require double quoting in YAML.
|
||||||
|
*
|
||||||
|
* @param string $value A PHP value
|
||||||
|
*/
|
||||||
|
public static function requiresDoubleQuoting(string $value): bool
|
||||||
|
{
|
||||||
|
return 0 < preg_match('/'.self::REGEX_CHARACTER_TO_ESCAPE.'/u', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Escapes and surrounds a PHP value with double quotes.
|
||||||
|
*
|
||||||
|
* @param string $value A PHP value
|
||||||
|
*/
|
||||||
|
public static function escapeWithDoubleQuotes(string $value): string
|
||||||
|
{
|
||||||
|
return sprintf('"%s"', str_replace(self::ESCAPEES, self::ESCAPED, $value));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines if a PHP value would require single quoting in YAML.
|
||||||
|
*
|
||||||
|
* @param string $value A PHP value
|
||||||
|
*/
|
||||||
|
public static function requiresSingleQuoting(string $value): bool
|
||||||
|
{
|
||||||
|
// Determines if a PHP value is entirely composed of a value that would
|
||||||
|
// require single quoting in YAML.
|
||||||
|
if (\in_array(strtolower($value), ['null', '~', 'true', 'false', 'y', 'n', 'yes', 'no', 'on', 'off'])) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Determines if the PHP value contains any single characters that would
|
||||||
|
// cause it to require single quoting in YAML.
|
||||||
|
return 0 < preg_match('/[ \s \' " \: \{ \} \[ \] , & \* \# \?] | \A[ \- ? | < > = ! % @ ` \p{Zs}]/xu', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Escapes and surrounds a PHP value with single quotes.
|
||||||
|
*
|
||||||
|
* @param string $value A PHP value
|
||||||
|
*/
|
||||||
|
public static function escapeWithSingleQuotes(string $value): string
|
||||||
|
{
|
||||||
|
return sprintf("'%s'", str_replace('\'', '\'\'', $value));
|
||||||
|
}
|
||||||
|
}
|
21
vendor/symfony/yaml/Exception/DumpException.php
vendored
Normal file
21
vendor/symfony/yaml/Exception/DumpException.php
vendored
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Symfony package.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Symfony\Component\Yaml\Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exception class thrown when an error occurs during dumping.
|
||||||
|
*
|
||||||
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
|
*/
|
||||||
|
class DumpException extends RuntimeException
|
||||||
|
{
|
||||||
|
}
|
21
vendor/symfony/yaml/Exception/ExceptionInterface.php
vendored
Normal file
21
vendor/symfony/yaml/Exception/ExceptionInterface.php
vendored
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Symfony package.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Symfony\Component\Yaml\Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exception interface for all exceptions thrown by the component.
|
||||||
|
*
|
||||||
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
|
*/
|
||||||
|
interface ExceptionInterface extends \Throwable
|
||||||
|
{
|
||||||
|
}
|
132
vendor/symfony/yaml/Exception/ParseException.php
vendored
Normal file
132
vendor/symfony/yaml/Exception/ParseException.php
vendored
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Symfony package.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Symfony\Component\Yaml\Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exception class thrown when an error occurs during parsing.
|
||||||
|
*
|
||||||
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
|
*/
|
||||||
|
class ParseException extends RuntimeException
|
||||||
|
{
|
||||||
|
private $parsedFile;
|
||||||
|
private $parsedLine;
|
||||||
|
private $snippet;
|
||||||
|
private $rawMessage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $message The error message
|
||||||
|
* @param int $parsedLine The line where the error occurred
|
||||||
|
* @param string|null $snippet The snippet of code near the problem
|
||||||
|
* @param string|null $parsedFile The file name where the error occurred
|
||||||
|
*/
|
||||||
|
public function __construct(string $message, int $parsedLine = -1, string $snippet = null, string $parsedFile = null, \Throwable $previous = null)
|
||||||
|
{
|
||||||
|
$this->parsedFile = $parsedFile;
|
||||||
|
$this->parsedLine = $parsedLine;
|
||||||
|
$this->snippet = $snippet;
|
||||||
|
$this->rawMessage = $message;
|
||||||
|
|
||||||
|
$this->updateRepr();
|
||||||
|
|
||||||
|
parent::__construct($this->message, 0, $previous);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the snippet of code near the error.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getSnippet()
|
||||||
|
{
|
||||||
|
return $this->snippet;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the snippet of code near the error.
|
||||||
|
*/
|
||||||
|
public function setSnippet(string $snippet)
|
||||||
|
{
|
||||||
|
$this->snippet = $snippet;
|
||||||
|
|
||||||
|
$this->updateRepr();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the filename where the error occurred.
|
||||||
|
*
|
||||||
|
* This method returns null if a string is parsed.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getParsedFile()
|
||||||
|
{
|
||||||
|
return $this->parsedFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the filename where the error occurred.
|
||||||
|
*/
|
||||||
|
public function setParsedFile(string $parsedFile)
|
||||||
|
{
|
||||||
|
$this->parsedFile = $parsedFile;
|
||||||
|
|
||||||
|
$this->updateRepr();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the line where the error occurred.
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function getParsedLine()
|
||||||
|
{
|
||||||
|
return $this->parsedLine;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the line where the error occurred.
|
||||||
|
*/
|
||||||
|
public function setParsedLine(int $parsedLine)
|
||||||
|
{
|
||||||
|
$this->parsedLine = $parsedLine;
|
||||||
|
|
||||||
|
$this->updateRepr();
|
||||||
|
}
|
||||||
|
|
||||||
|
private function updateRepr()
|
||||||
|
{
|
||||||
|
$this->message = $this->rawMessage;
|
||||||
|
|
||||||
|
$dot = false;
|
||||||
|
if ('.' === substr($this->message, -1)) {
|
||||||
|
$this->message = substr($this->message, 0, -1);
|
||||||
|
$dot = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null !== $this->parsedFile) {
|
||||||
|
$this->message .= sprintf(' in %s', json_encode($this->parsedFile, \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->parsedLine >= 0) {
|
||||||
|
$this->message .= sprintf(' at line %d', $this->parsedLine);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->snippet) {
|
||||||
|
$this->message .= sprintf(' (near "%s")', $this->snippet);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($dot) {
|
||||||
|
$this->message .= '.';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
21
vendor/symfony/yaml/Exception/RuntimeException.php
vendored
Normal file
21
vendor/symfony/yaml/Exception/RuntimeException.php
vendored
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Symfony package.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Symfony\Component\Yaml\Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exception class thrown when an error occurs during parsing.
|
||||||
|
*
|
||||||
|
* @author Romain Neutron <imprec@gmail.com>
|
||||||
|
*/
|
||||||
|
class RuntimeException extends \RuntimeException implements ExceptionInterface
|
||||||
|
{
|
||||||
|
}
|
812
vendor/symfony/yaml/Inline.php
vendored
Normal file
812
vendor/symfony/yaml/Inline.php
vendored
Normal file
|
@ -0,0 +1,812 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Symfony package.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Symfony\Component\Yaml;
|
||||||
|
|
||||||
|
use Symfony\Component\Yaml\Exception\DumpException;
|
||||||
|
use Symfony\Component\Yaml\Exception\ParseException;
|
||||||
|
use Symfony\Component\Yaml\Tag\TaggedValue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inline implements a YAML parser/dumper for the YAML inline syntax.
|
||||||
|
*
|
||||||
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
class Inline
|
||||||
|
{
|
||||||
|
public const REGEX_QUOTED_STRING = '(?:"([^"\\\\]*+(?:\\\\.[^"\\\\]*+)*+)"|\'([^\']*+(?:\'\'[^\']*+)*+)\')';
|
||||||
|
|
||||||
|
public static $parsedLineNumber = -1;
|
||||||
|
public static $parsedFilename;
|
||||||
|
|
||||||
|
private static $exceptionOnInvalidType = false;
|
||||||
|
private static $objectSupport = false;
|
||||||
|
private static $objectForMap = false;
|
||||||
|
private static $constantSupport = false;
|
||||||
|
|
||||||
|
public static function initialize(int $flags, int $parsedLineNumber = null, string $parsedFilename = null)
|
||||||
|
{
|
||||||
|
self::$exceptionOnInvalidType = (bool) (Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE & $flags);
|
||||||
|
self::$objectSupport = (bool) (Yaml::PARSE_OBJECT & $flags);
|
||||||
|
self::$objectForMap = (bool) (Yaml::PARSE_OBJECT_FOR_MAP & $flags);
|
||||||
|
self::$constantSupport = (bool) (Yaml::PARSE_CONSTANT & $flags);
|
||||||
|
self::$parsedFilename = $parsedFilename;
|
||||||
|
|
||||||
|
if (null !== $parsedLineNumber) {
|
||||||
|
self::$parsedLineNumber = $parsedLineNumber;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts a YAML string to a PHP value.
|
||||||
|
*
|
||||||
|
* @param string $value A YAML string
|
||||||
|
* @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior
|
||||||
|
* @param array $references Mapping of variable names to values
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*
|
||||||
|
* @throws ParseException
|
||||||
|
*/
|
||||||
|
public static function parse(string $value = null, int $flags = 0, array &$references = [])
|
||||||
|
{
|
||||||
|
self::initialize($flags);
|
||||||
|
|
||||||
|
$value = trim($value);
|
||||||
|
|
||||||
|
if ('' === $value) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) {
|
||||||
|
$mbEncoding = mb_internal_encoding();
|
||||||
|
mb_internal_encoding('ASCII');
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$i = 0;
|
||||||
|
$tag = self::parseTag($value, $i, $flags);
|
||||||
|
switch ($value[$i]) {
|
||||||
|
case '[':
|
||||||
|
$result = self::parseSequence($value, $flags, $i, $references);
|
||||||
|
++$i;
|
||||||
|
break;
|
||||||
|
case '{':
|
||||||
|
$result = self::parseMapping($value, $flags, $i, $references);
|
||||||
|
++$i;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$result = self::parseScalar($value, $flags, null, $i, null === $tag, $references);
|
||||||
|
}
|
||||||
|
|
||||||
|
// some comments are allowed at the end
|
||||||
|
if (preg_replace('/\s*#.*$/A', '', substr($value, $i))) {
|
||||||
|
throw new ParseException(sprintf('Unexpected characters near "%s".', substr($value, $i)), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null !== $tag && '' !== $tag) {
|
||||||
|
return new TaggedValue($tag, $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
} finally {
|
||||||
|
if (isset($mbEncoding)) {
|
||||||
|
mb_internal_encoding($mbEncoding);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dumps a given PHP variable to a YAML string.
|
||||||
|
*
|
||||||
|
* @param mixed $value The PHP variable to convert
|
||||||
|
* @param int $flags A bit field of Yaml::DUMP_* constants to customize the dumped YAML string
|
||||||
|
*
|
||||||
|
* @throws DumpException When trying to dump PHP resource
|
||||||
|
*/
|
||||||
|
public static function dump($value, int $flags = 0): string
|
||||||
|
{
|
||||||
|
switch (true) {
|
||||||
|
case \is_resource($value):
|
||||||
|
if (Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE & $flags) {
|
||||||
|
throw new DumpException(sprintf('Unable to dump PHP resources in a YAML file ("%s").', get_resource_type($value)));
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::dumpNull($flags);
|
||||||
|
case $value instanceof \DateTimeInterface:
|
||||||
|
return $value->format('c');
|
||||||
|
case $value instanceof \UnitEnum:
|
||||||
|
return sprintf('!php/const %s::%s', \get_class($value), $value->name);
|
||||||
|
case \is_object($value):
|
||||||
|
if ($value instanceof TaggedValue) {
|
||||||
|
return '!'.$value->getTag().' '.self::dump($value->getValue(), $flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Yaml::DUMP_OBJECT & $flags) {
|
||||||
|
return '!php/object '.self::dump(serialize($value));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Yaml::DUMP_OBJECT_AS_MAP & $flags && ($value instanceof \stdClass || $value instanceof \ArrayObject)) {
|
||||||
|
$output = [];
|
||||||
|
|
||||||
|
foreach ($value as $key => $val) {
|
||||||
|
$output[] = sprintf('%s: %s', self::dump($key, $flags), self::dump($val, $flags));
|
||||||
|
}
|
||||||
|
|
||||||
|
return sprintf('{ %s }', implode(', ', $output));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE & $flags) {
|
||||||
|
throw new DumpException('Object support when dumping a YAML file has been disabled.');
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::dumpNull($flags);
|
||||||
|
case \is_array($value):
|
||||||
|
return self::dumpArray($value, $flags);
|
||||||
|
case null === $value:
|
||||||
|
return self::dumpNull($flags);
|
||||||
|
case true === $value:
|
||||||
|
return 'true';
|
||||||
|
case false === $value:
|
||||||
|
return 'false';
|
||||||
|
case \is_int($value):
|
||||||
|
return $value;
|
||||||
|
case is_numeric($value) && false === strpbrk($value, "\f\n\r\t\v"):
|
||||||
|
$locale = setlocale(\LC_NUMERIC, 0);
|
||||||
|
if (false !== $locale) {
|
||||||
|
setlocale(\LC_NUMERIC, 'C');
|
||||||
|
}
|
||||||
|
if (\is_float($value)) {
|
||||||
|
$repr = (string) $value;
|
||||||
|
if (is_infinite($value)) {
|
||||||
|
$repr = str_ireplace('INF', '.Inf', $repr);
|
||||||
|
} elseif (floor($value) == $value && $repr == $value) {
|
||||||
|
// Preserve float data type since storing a whole number will result in integer value.
|
||||||
|
if (false === strpos($repr, 'E')) {
|
||||||
|
$repr = $repr.'.0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$repr = \is_string($value) ? "'$value'" : (string) $value;
|
||||||
|
}
|
||||||
|
if (false !== $locale) {
|
||||||
|
setlocale(\LC_NUMERIC, $locale);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $repr;
|
||||||
|
case '' == $value:
|
||||||
|
return "''";
|
||||||
|
case self::isBinaryString($value):
|
||||||
|
return '!!binary '.base64_encode($value);
|
||||||
|
case Escaper::requiresDoubleQuoting($value):
|
||||||
|
return Escaper::escapeWithDoubleQuotes($value);
|
||||||
|
case Escaper::requiresSingleQuoting($value):
|
||||||
|
case Parser::preg_match('{^[0-9]+[_0-9]*$}', $value):
|
||||||
|
case Parser::preg_match(self::getHexRegex(), $value):
|
||||||
|
case Parser::preg_match(self::getTimestampRegex(), $value):
|
||||||
|
return Escaper::escapeWithSingleQuotes($value);
|
||||||
|
default:
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if given array is hash or just normal indexed array.
|
||||||
|
*
|
||||||
|
* @param array|\ArrayObject|\stdClass $value The PHP array or array-like object to check
|
||||||
|
*/
|
||||||
|
public static function isHash($value): bool
|
||||||
|
{
|
||||||
|
if ($value instanceof \stdClass || $value instanceof \ArrayObject) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$expectedKey = 0;
|
||||||
|
|
||||||
|
foreach ($value as $key => $val) {
|
||||||
|
if ($key !== $expectedKey++) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dumps a PHP array to a YAML string.
|
||||||
|
*
|
||||||
|
* @param array $value The PHP array to dump
|
||||||
|
* @param int $flags A bit field of Yaml::DUMP_* constants to customize the dumped YAML string
|
||||||
|
*/
|
||||||
|
private static function dumpArray(array $value, int $flags): string
|
||||||
|
{
|
||||||
|
// array
|
||||||
|
if (($value || Yaml::DUMP_EMPTY_ARRAY_AS_SEQUENCE & $flags) && !self::isHash($value)) {
|
||||||
|
$output = [];
|
||||||
|
foreach ($value as $val) {
|
||||||
|
$output[] = self::dump($val, $flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
return sprintf('[%s]', implode(', ', $output));
|
||||||
|
}
|
||||||
|
|
||||||
|
// hash
|
||||||
|
$output = [];
|
||||||
|
foreach ($value as $key => $val) {
|
||||||
|
$output[] = sprintf('%s: %s', self::dump($key, $flags), self::dump($val, $flags));
|
||||||
|
}
|
||||||
|
|
||||||
|
return sprintf('{ %s }', implode(', ', $output));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function dumpNull(int $flags): string
|
||||||
|
{
|
||||||
|
if (Yaml::DUMP_NULL_AS_TILDE & $flags) {
|
||||||
|
return '~';
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'null';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses a YAML scalar.
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*
|
||||||
|
* @throws ParseException When malformed inline YAML string is parsed
|
||||||
|
*/
|
||||||
|
public static function parseScalar(string $scalar, int $flags = 0, array $delimiters = null, int &$i = 0, bool $evaluate = true, array &$references = [], bool &$isQuoted = null)
|
||||||
|
{
|
||||||
|
if (\in_array($scalar[$i], ['"', "'"], true)) {
|
||||||
|
// quoted scalar
|
||||||
|
$isQuoted = true;
|
||||||
|
$output = self::parseQuotedScalar($scalar, $i);
|
||||||
|
|
||||||
|
if (null !== $delimiters) {
|
||||||
|
$tmp = ltrim(substr($scalar, $i), " \n");
|
||||||
|
if ('' === $tmp) {
|
||||||
|
throw new ParseException(sprintf('Unexpected end of line, expected one of "%s".', implode('', $delimiters)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
if (!\in_array($tmp[0], $delimiters)) {
|
||||||
|
throw new ParseException(sprintf('Unexpected characters (%s).', substr($scalar, $i)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// "normal" string
|
||||||
|
$isQuoted = false;
|
||||||
|
|
||||||
|
if (!$delimiters) {
|
||||||
|
$output = substr($scalar, $i);
|
||||||
|
$i += \strlen($output);
|
||||||
|
|
||||||
|
// remove comments
|
||||||
|
if (Parser::preg_match('/[ \t]+#/', $output, $match, \PREG_OFFSET_CAPTURE)) {
|
||||||
|
$output = substr($output, 0, $match[0][1]);
|
||||||
|
}
|
||||||
|
} elseif (Parser::preg_match('/^(.*?)('.implode('|', $delimiters).')/', substr($scalar, $i), $match)) {
|
||||||
|
$output = $match[1];
|
||||||
|
$i += \strlen($output);
|
||||||
|
$output = trim($output);
|
||||||
|
} else {
|
||||||
|
throw new ParseException(sprintf('Malformed inline YAML string: "%s".', $scalar), self::$parsedLineNumber + 1, null, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
// a non-quoted string cannot start with @ or ` (reserved) nor with a scalar indicator (| or >)
|
||||||
|
if ($output && ('@' === $output[0] || '`' === $output[0] || '|' === $output[0] || '>' === $output[0] || '%' === $output[0])) {
|
||||||
|
throw new ParseException(sprintf('The reserved indicator "%s" cannot start a plain scalar; you need to quote the scalar.', $output[0]), self::$parsedLineNumber + 1, $output, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($evaluate) {
|
||||||
|
$output = self::evaluateScalar($output, $flags, $references, $isQuoted);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses a YAML quoted scalar.
|
||||||
|
*
|
||||||
|
* @throws ParseException When malformed inline YAML string is parsed
|
||||||
|
*/
|
||||||
|
private static function parseQuotedScalar(string $scalar, int &$i = 0): string
|
||||||
|
{
|
||||||
|
if (!Parser::preg_match('/'.self::REGEX_QUOTED_STRING.'/Au', substr($scalar, $i), $match)) {
|
||||||
|
throw new ParseException(sprintf('Malformed inline YAML string: "%s".', substr($scalar, $i)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
$output = substr($match[0], 1, -1);
|
||||||
|
|
||||||
|
$unescaper = new Unescaper();
|
||||||
|
if ('"' == $scalar[$i]) {
|
||||||
|
$output = $unescaper->unescapeDoubleQuotedString($output);
|
||||||
|
} else {
|
||||||
|
$output = $unescaper->unescapeSingleQuotedString($output);
|
||||||
|
}
|
||||||
|
|
||||||
|
$i += \strlen($match[0]);
|
||||||
|
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses a YAML sequence.
|
||||||
|
*
|
||||||
|
* @throws ParseException When malformed inline YAML string is parsed
|
||||||
|
*/
|
||||||
|
private static function parseSequence(string $sequence, int $flags, int &$i = 0, array &$references = []): array
|
||||||
|
{
|
||||||
|
$output = [];
|
||||||
|
$len = \strlen($sequence);
|
||||||
|
++$i;
|
||||||
|
|
||||||
|
// [foo, bar, ...]
|
||||||
|
while ($i < $len) {
|
||||||
|
if (']' === $sequence[$i]) {
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
if (',' === $sequence[$i] || ' ' === $sequence[$i]) {
|
||||||
|
++$i;
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$tag = self::parseTag($sequence, $i, $flags);
|
||||||
|
switch ($sequence[$i]) {
|
||||||
|
case '[':
|
||||||
|
// nested sequence
|
||||||
|
$value = self::parseSequence($sequence, $flags, $i, $references);
|
||||||
|
break;
|
||||||
|
case '{':
|
||||||
|
// nested mapping
|
||||||
|
$value = self::parseMapping($sequence, $flags, $i, $references);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$value = self::parseScalar($sequence, $flags, [',', ']'], $i, null === $tag, $references, $isQuoted);
|
||||||
|
|
||||||
|
// the value can be an array if a reference has been resolved to an array var
|
||||||
|
if (\is_string($value) && !$isQuoted && false !== strpos($value, ': ')) {
|
||||||
|
// embedded mapping?
|
||||||
|
try {
|
||||||
|
$pos = 0;
|
||||||
|
$value = self::parseMapping('{'.$value.'}', $flags, $pos, $references);
|
||||||
|
} catch (\InvalidArgumentException $e) {
|
||||||
|
// no, it's not
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$isQuoted && \is_string($value) && '' !== $value && '&' === $value[0] && Parser::preg_match(Parser::REFERENCE_PATTERN, $value, $matches)) {
|
||||||
|
$references[$matches['ref']] = $matches['value'];
|
||||||
|
$value = $matches['value'];
|
||||||
|
}
|
||||||
|
|
||||||
|
--$i;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null !== $tag && '' !== $tag) {
|
||||||
|
$value = new TaggedValue($tag, $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
$output[] = $value;
|
||||||
|
|
||||||
|
++$i;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new ParseException(sprintf('Malformed inline YAML string: "%s".', $sequence), self::$parsedLineNumber + 1, null, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses a YAML mapping.
|
||||||
|
*
|
||||||
|
* @return array|\stdClass
|
||||||
|
*
|
||||||
|
* @throws ParseException When malformed inline YAML string is parsed
|
||||||
|
*/
|
||||||
|
private static function parseMapping(string $mapping, int $flags, int &$i = 0, array &$references = [])
|
||||||
|
{
|
||||||
|
$output = [];
|
||||||
|
$len = \strlen($mapping);
|
||||||
|
++$i;
|
||||||
|
$allowOverwrite = false;
|
||||||
|
|
||||||
|
// {foo: bar, bar:foo, ...}
|
||||||
|
while ($i < $len) {
|
||||||
|
switch ($mapping[$i]) {
|
||||||
|
case ' ':
|
||||||
|
case ',':
|
||||||
|
case "\n":
|
||||||
|
++$i;
|
||||||
|
continue 2;
|
||||||
|
case '}':
|
||||||
|
if (self::$objectForMap) {
|
||||||
|
return (object) $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
// key
|
||||||
|
$offsetBeforeKeyParsing = $i;
|
||||||
|
$isKeyQuoted = \in_array($mapping[$i], ['"', "'"], true);
|
||||||
|
$key = self::parseScalar($mapping, $flags, [':', ' '], $i, false);
|
||||||
|
|
||||||
|
if ($offsetBeforeKeyParsing === $i) {
|
||||||
|
throw new ParseException('Missing mapping key.', self::$parsedLineNumber + 1, $mapping);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('!php/const' === $key) {
|
||||||
|
$key .= ' '.self::parseScalar($mapping, $flags, [':'], $i, false);
|
||||||
|
$key = self::evaluateScalar($key, $flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (false === $i = strpos($mapping, ':', $i)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$isKeyQuoted) {
|
||||||
|
$evaluatedKey = self::evaluateScalar($key, $flags, $references);
|
||||||
|
|
||||||
|
if ('' !== $key && $evaluatedKey !== $key && !\is_string($evaluatedKey) && !\is_int($evaluatedKey)) {
|
||||||
|
throw new ParseException('Implicit casting of incompatible mapping keys to strings is not supported. Quote your evaluable mapping keys instead.', self::$parsedLineNumber + 1, $mapping);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$isKeyQuoted && (!isset($mapping[$i + 1]) || !\in_array($mapping[$i + 1], [' ', ',', '[', ']', '{', '}', "\n"], true))) {
|
||||||
|
throw new ParseException('Colons must be followed by a space or an indication character (i.e. " ", ",", "[", "]", "{", "}").', self::$parsedLineNumber + 1, $mapping);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('<<' === $key) {
|
||||||
|
$allowOverwrite = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
while ($i < $len) {
|
||||||
|
if (':' === $mapping[$i] || ' ' === $mapping[$i] || "\n" === $mapping[$i]) {
|
||||||
|
++$i;
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$tag = self::parseTag($mapping, $i, $flags);
|
||||||
|
switch ($mapping[$i]) {
|
||||||
|
case '[':
|
||||||
|
// nested sequence
|
||||||
|
$value = self::parseSequence($mapping, $flags, $i, $references);
|
||||||
|
// Spec: Keys MUST be unique; first one wins.
|
||||||
|
// Parser cannot abort this mapping earlier, since lines
|
||||||
|
// are processed sequentially.
|
||||||
|
// But overwriting is allowed when a merge node is used in current block.
|
||||||
|
if ('<<' === $key) {
|
||||||
|
foreach ($value as $parsedValue) {
|
||||||
|
$output += $parsedValue;
|
||||||
|
}
|
||||||
|
} elseif ($allowOverwrite || !isset($output[$key])) {
|
||||||
|
if (null !== $tag) {
|
||||||
|
$output[$key] = new TaggedValue($tag, $value);
|
||||||
|
} else {
|
||||||
|
$output[$key] = $value;
|
||||||
|
}
|
||||||
|
} elseif (isset($output[$key])) {
|
||||||
|
throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case '{':
|
||||||
|
// nested mapping
|
||||||
|
$value = self::parseMapping($mapping, $flags, $i, $references);
|
||||||
|
// Spec: Keys MUST be unique; first one wins.
|
||||||
|
// Parser cannot abort this mapping earlier, since lines
|
||||||
|
// are processed sequentially.
|
||||||
|
// But overwriting is allowed when a merge node is used in current block.
|
||||||
|
if ('<<' === $key) {
|
||||||
|
$output += $value;
|
||||||
|
} elseif ($allowOverwrite || !isset($output[$key])) {
|
||||||
|
if (null !== $tag) {
|
||||||
|
$output[$key] = new TaggedValue($tag, $value);
|
||||||
|
} else {
|
||||||
|
$output[$key] = $value;
|
||||||
|
}
|
||||||
|
} elseif (isset($output[$key])) {
|
||||||
|
throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$value = self::parseScalar($mapping, $flags, [',', '}', "\n"], $i, null === $tag, $references, $isValueQuoted);
|
||||||
|
// Spec: Keys MUST be unique; first one wins.
|
||||||
|
// Parser cannot abort this mapping earlier, since lines
|
||||||
|
// are processed sequentially.
|
||||||
|
// But overwriting is allowed when a merge node is used in current block.
|
||||||
|
if ('<<' === $key) {
|
||||||
|
$output += $value;
|
||||||
|
} elseif ($allowOverwrite || !isset($output[$key])) {
|
||||||
|
if (!$isValueQuoted && \is_string($value) && '' !== $value && '&' === $value[0] && Parser::preg_match(Parser::REFERENCE_PATTERN, $value, $matches)) {
|
||||||
|
$references[$matches['ref']] = $matches['value'];
|
||||||
|
$value = $matches['value'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null !== $tag) {
|
||||||
|
$output[$key] = new TaggedValue($tag, $value);
|
||||||
|
} else {
|
||||||
|
$output[$key] = $value;
|
||||||
|
}
|
||||||
|
} elseif (isset($output[$key])) {
|
||||||
|
throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping);
|
||||||
|
}
|
||||||
|
--$i;
|
||||||
|
}
|
||||||
|
++$i;
|
||||||
|
|
||||||
|
continue 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new ParseException(sprintf('Malformed inline YAML string: "%s".', $mapping), self::$parsedLineNumber + 1, null, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Evaluates scalars and replaces magic values.
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*
|
||||||
|
* @throws ParseException when object parsing support was disabled and the parser detected a PHP object or when a reference could not be resolved
|
||||||
|
*/
|
||||||
|
private static function evaluateScalar(string $scalar, int $flags, array &$references = [], bool &$isQuotedString = null)
|
||||||
|
{
|
||||||
|
$isQuotedString = false;
|
||||||
|
$scalar = trim($scalar);
|
||||||
|
|
||||||
|
if (0 === strpos($scalar, '*')) {
|
||||||
|
if (false !== $pos = strpos($scalar, '#')) {
|
||||||
|
$value = substr($scalar, 1, $pos - 2);
|
||||||
|
} else {
|
||||||
|
$value = substr($scalar, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// an unquoted *
|
||||||
|
if (false === $value || '' === $value) {
|
||||||
|
throw new ParseException('A reference must contain at least one character.', self::$parsedLineNumber + 1, $value, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!\array_key_exists($value, $references)) {
|
||||||
|
throw new ParseException(sprintf('Reference "%s" does not exist.', $value), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $references[$value];
|
||||||
|
}
|
||||||
|
|
||||||
|
$scalarLower = strtolower($scalar);
|
||||||
|
|
||||||
|
switch (true) {
|
||||||
|
case 'null' === $scalarLower:
|
||||||
|
case '' === $scalar:
|
||||||
|
case '~' === $scalar:
|
||||||
|
return null;
|
||||||
|
case 'true' === $scalarLower:
|
||||||
|
return true;
|
||||||
|
case 'false' === $scalarLower:
|
||||||
|
return false;
|
||||||
|
case '!' === $scalar[0]:
|
||||||
|
switch (true) {
|
||||||
|
case 0 === strpos($scalar, '!!str '):
|
||||||
|
$s = (string) substr($scalar, 6);
|
||||||
|
|
||||||
|
if (\in_array($s[0] ?? '', ['"', "'"], true)) {
|
||||||
|
$isQuotedString = true;
|
||||||
|
$s = self::parseQuotedScalar($s);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $s;
|
||||||
|
case 0 === strpos($scalar, '! '):
|
||||||
|
return substr($scalar, 2);
|
||||||
|
case 0 === strpos($scalar, '!php/object'):
|
||||||
|
if (self::$objectSupport) {
|
||||||
|
if (!isset($scalar[12])) {
|
||||||
|
trigger_deprecation('symfony/yaml', '5.1', 'Using the !php/object tag without a value is deprecated.');
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return unserialize(self::parseScalar(substr($scalar, 12)));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (self::$exceptionOnInvalidType) {
|
||||||
|
throw new ParseException('Object support when parsing a YAML file has been disabled.', self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
case 0 === strpos($scalar, '!php/const'):
|
||||||
|
if (self::$constantSupport) {
|
||||||
|
if (!isset($scalar[11])) {
|
||||||
|
trigger_deprecation('symfony/yaml', '5.1', 'Using the !php/const tag without a value is deprecated.');
|
||||||
|
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
$i = 0;
|
||||||
|
if (\defined($const = self::parseScalar(substr($scalar, 11), 0, null, $i, false))) {
|
||||||
|
return \constant($const);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new ParseException(sprintf('The constant "%s" is not defined.', $const), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
if (self::$exceptionOnInvalidType) {
|
||||||
|
throw new ParseException(sprintf('The string "%s" could not be parsed as a constant. Did you forget to pass the "Yaml::PARSE_CONSTANT" flag to the parser?', $scalar), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
case 0 === strpos($scalar, '!!float '):
|
||||||
|
return (float) substr($scalar, 8);
|
||||||
|
case 0 === strpos($scalar, '!!binary '):
|
||||||
|
return self::evaluateBinaryScalar(substr($scalar, 9));
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new ParseException(sprintf('The string "%s" could not be parsed as it uses an unsupported built-in tag.', $scalar), self::$parsedLineNumber, $scalar, self::$parsedFilename);
|
||||||
|
case preg_match('/^(?:\+|-)?0o(?P<value>[0-7_]++)$/', $scalar, $matches):
|
||||||
|
$value = str_replace('_', '', $matches['value']);
|
||||||
|
|
||||||
|
if ('-' === $scalar[0]) {
|
||||||
|
return -octdec($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return octdec($value);
|
||||||
|
// Optimize for returning strings.
|
||||||
|
case \in_array($scalar[0], ['+', '-', '.'], true) || is_numeric($scalar[0]):
|
||||||
|
if (Parser::preg_match('{^[+-]?[0-9][0-9_]*$}', $scalar)) {
|
||||||
|
$scalar = str_replace('_', '', $scalar);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (true) {
|
||||||
|
case ctype_digit($scalar):
|
||||||
|
if (preg_match('/^0[0-7]+$/', $scalar)) {
|
||||||
|
trigger_deprecation('symfony/yaml', '5.1', 'Support for parsing numbers prefixed with 0 as octal numbers. They will be parsed as strings as of 6.0. Use "%s" to represent the octal number.', '0o'.substr($scalar, 1));
|
||||||
|
|
||||||
|
return octdec($scalar);
|
||||||
|
}
|
||||||
|
|
||||||
|
$cast = (int) $scalar;
|
||||||
|
|
||||||
|
return ($scalar === (string) $cast) ? $cast : $scalar;
|
||||||
|
case '-' === $scalar[0] && ctype_digit(substr($scalar, 1)):
|
||||||
|
if (preg_match('/^-0[0-7]+$/', $scalar)) {
|
||||||
|
trigger_deprecation('symfony/yaml', '5.1', 'Support for parsing numbers prefixed with 0 as octal numbers. They will be parsed as strings as of 6.0. Use "%s" to represent the octal number.', '-0o'.substr($scalar, 2));
|
||||||
|
|
||||||
|
return -octdec(substr($scalar, 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
$cast = (int) $scalar;
|
||||||
|
|
||||||
|
return ($scalar === (string) $cast) ? $cast : $scalar;
|
||||||
|
case is_numeric($scalar):
|
||||||
|
case Parser::preg_match(self::getHexRegex(), $scalar):
|
||||||
|
$scalar = str_replace('_', '', $scalar);
|
||||||
|
|
||||||
|
return '0x' === $scalar[0].$scalar[1] ? hexdec($scalar) : (float) $scalar;
|
||||||
|
case '.inf' === $scalarLower:
|
||||||
|
case '.nan' === $scalarLower:
|
||||||
|
return -log(0);
|
||||||
|
case '-.inf' === $scalarLower:
|
||||||
|
return log(0);
|
||||||
|
case Parser::preg_match('/^(-|\+)?[0-9][0-9_]*(\.[0-9_]+)?$/', $scalar):
|
||||||
|
return (float) str_replace('_', '', $scalar);
|
||||||
|
case Parser::preg_match(self::getTimestampRegex(), $scalar):
|
||||||
|
// When no timezone is provided in the parsed date, YAML spec says we must assume UTC.
|
||||||
|
$time = new \DateTime($scalar, new \DateTimeZone('UTC'));
|
||||||
|
|
||||||
|
if (Yaml::PARSE_DATETIME & $flags) {
|
||||||
|
return $time;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (false !== $scalar = $time->getTimestamp()) {
|
||||||
|
return $scalar;
|
||||||
|
}
|
||||||
|
} catch (\ValueError $e) {
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
return $time->format('U');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (string) $scalar;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function parseTag(string $value, int &$i, int $flags): ?string
|
||||||
|
{
|
||||||
|
if ('!' !== $value[$i]) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$tagLength = strcspn($value, " \t\n[]{},", $i + 1);
|
||||||
|
$tag = substr($value, $i + 1, $tagLength);
|
||||||
|
|
||||||
|
$nextOffset = $i + $tagLength + 1;
|
||||||
|
$nextOffset += strspn($value, ' ', $nextOffset);
|
||||||
|
|
||||||
|
if ('' === $tag && (!isset($value[$nextOffset]) || \in_array($value[$nextOffset], [']', '}', ','], true))) {
|
||||||
|
throw new ParseException('Using the unquoted scalar value "!" is not supported. You must quote it.', self::$parsedLineNumber + 1, $value, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Is followed by a scalar and is a built-in tag
|
||||||
|
if ('' !== $tag && (!isset($value[$nextOffset]) || !\in_array($value[$nextOffset], ['[', '{'], true)) && ('!' === $tag[0] || 'str' === $tag || 'php/const' === $tag || 'php/object' === $tag)) {
|
||||||
|
// Manage in {@link self::evaluateScalar()}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$i = $nextOffset;
|
||||||
|
|
||||||
|
// Built-in tags
|
||||||
|
if ('' !== $tag && '!' === $tag[0]) {
|
||||||
|
throw new ParseException(sprintf('The built-in tag "!%s" is not implemented.', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('' !== $tag && !isset($value[$i])) {
|
||||||
|
throw new ParseException(sprintf('Missing value for tag "%s".', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('' === $tag || Yaml::PARSE_CUSTOM_TAGS & $flags) {
|
||||||
|
return $tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new ParseException(sprintf('Tags support is not enabled. Enable the "Yaml::PARSE_CUSTOM_TAGS" flag to use "!%s".', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function evaluateBinaryScalar(string $scalar): string
|
||||||
|
{
|
||||||
|
$parsedBinaryData = self::parseScalar(preg_replace('/\s/', '', $scalar));
|
||||||
|
|
||||||
|
if (0 !== (\strlen($parsedBinaryData) % 4)) {
|
||||||
|
throw new ParseException(sprintf('The normalized base64 encoded data (data without whitespace characters) length must be a multiple of four (%d bytes given).', \strlen($parsedBinaryData)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Parser::preg_match('#^[A-Z0-9+/]+={0,2}$#i', $parsedBinaryData)) {
|
||||||
|
throw new ParseException(sprintf('The base64 encoded data (%s) contains invalid characters.', $parsedBinaryData), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
return base64_decode($parsedBinaryData, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function isBinaryString(string $value): bool
|
||||||
|
{
|
||||||
|
return !preg_match('//u', $value) || preg_match('/[^\x00\x07-\x0d\x1B\x20-\xff]/', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets a regex that matches a YAML date.
|
||||||
|
*
|
||||||
|
* @see http://www.yaml.org/spec/1.2/spec.html#id2761573
|
||||||
|
*/
|
||||||
|
private static function getTimestampRegex(): string
|
||||||
|
{
|
||||||
|
return <<<EOF
|
||||||
|
~^
|
||||||
|
(?P<year>[0-9][0-9][0-9][0-9])
|
||||||
|
-(?P<month>[0-9][0-9]?)
|
||||||
|
-(?P<day>[0-9][0-9]?)
|
||||||
|
(?:(?:[Tt]|[ \t]+)
|
||||||
|
(?P<hour>[0-9][0-9]?)
|
||||||
|
:(?P<minute>[0-9][0-9])
|
||||||
|
:(?P<second>[0-9][0-9])
|
||||||
|
(?:\.(?P<fraction>[0-9]*))?
|
||||||
|
(?:[ \t]*(?P<tz>Z|(?P<tz_sign>[-+])(?P<tz_hour>[0-9][0-9]?)
|
||||||
|
(?::(?P<tz_minute>[0-9][0-9]))?))?)?
|
||||||
|
$~x
|
||||||
|
EOF;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets a regex that matches a YAML number in hexadecimal notation.
|
||||||
|
*/
|
||||||
|
private static function getHexRegex(): string
|
||||||
|
{
|
||||||
|
return '~^0x[0-9a-f_]++$~i';
|
||||||
|
}
|
||||||
|
}
|
19
vendor/symfony/yaml/LICENSE
vendored
Normal file
19
vendor/symfony/yaml/LICENSE
vendored
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
Copyright (c) 2004-2022 Fabien Potencier
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is furnished
|
||||||
|
to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
1305
vendor/symfony/yaml/Parser.php
vendored
Normal file
1305
vendor/symfony/yaml/Parser.php
vendored
Normal file
File diff suppressed because it is too large
Load diff
13
vendor/symfony/yaml/README.md
vendored
Normal file
13
vendor/symfony/yaml/README.md
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
Yaml Component
|
||||||
|
==============
|
||||||
|
|
||||||
|
The Yaml component loads and dumps YAML files.
|
||||||
|
|
||||||
|
Resources
|
||||||
|
---------
|
||||||
|
|
||||||
|
* [Documentation](https://symfony.com/doc/current/components/yaml.html)
|
||||||
|
* [Contributing](https://symfony.com/doc/current/contributing/index.html)
|
||||||
|
* [Report issues](https://github.com/symfony/symfony/issues) and
|
||||||
|
[send Pull Requests](https://github.com/symfony/symfony/pulls)
|
||||||
|
in the [main Symfony repository](https://github.com/symfony/symfony)
|
45
vendor/symfony/yaml/Resources/bin/yaml-lint
vendored
Executable file
45
vendor/symfony/yaml/Resources/bin/yaml-lint
vendored
Executable file
|
@ -0,0 +1,45 @@
|
||||||
|
#!/usr/bin/env php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Symfony package.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs the Yaml lint command.
|
||||||
|
*
|
||||||
|
* @author Jan Schädlich <jan.schaedlich@sensiolabs.de>
|
||||||
|
*/
|
||||||
|
|
||||||
|
use Symfony\Component\Console\Application;
|
||||||
|
use Symfony\Component\Yaml\Command\LintCommand;
|
||||||
|
|
||||||
|
function includeIfExists(string $file): bool
|
||||||
|
{
|
||||||
|
return file_exists($file) && include $file;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
!includeIfExists(__DIR__ . '/../../../../autoload.php') &&
|
||||||
|
!includeIfExists(__DIR__ . '/../../vendor/autoload.php') &&
|
||||||
|
!includeIfExists(__DIR__ . '/../../../../../../vendor/autoload.php')
|
||||||
|
) {
|
||||||
|
fwrite(STDERR, 'Install dependencies using Composer.'.PHP_EOL);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!class_exists(Application::class)) {
|
||||||
|
fwrite(STDERR, 'You need the "symfony/console" component in order to run the Yaml linter.'.PHP_EOL);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
(new Application())->add($command = new LintCommand())
|
||||||
|
->getApplication()
|
||||||
|
->setDefaultCommand($command->getName(), true)
|
||||||
|
->run()
|
||||||
|
;
|
38
vendor/symfony/yaml/Tag/TaggedValue.php
vendored
Normal file
38
vendor/symfony/yaml/Tag/TaggedValue.php
vendored
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Symfony package.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Symfony\Component\Yaml\Tag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Nicolas Grekas <p@tchwork.com>
|
||||||
|
* @author Guilhem N. <egetick@gmail.com>
|
||||||
|
*/
|
||||||
|
final class TaggedValue
|
||||||
|
{
|
||||||
|
private $tag;
|
||||||
|
private $value;
|
||||||
|
|
||||||
|
public function __construct(string $tag, $value)
|
||||||
|
{
|
||||||
|
$this->tag = $tag;
|
||||||
|
$this->value = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getTag(): string
|
||||||
|
{
|
||||||
|
return $this->tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getValue()
|
||||||
|
{
|
||||||
|
return $this->value;
|
||||||
|
}
|
||||||
|
}
|
132
vendor/symfony/yaml/Unescaper.php
vendored
Normal file
132
vendor/symfony/yaml/Unescaper.php
vendored
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Symfony package.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Symfony\Component\Yaml;
|
||||||
|
|
||||||
|
use Symfony\Component\Yaml\Exception\ParseException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unescaper encapsulates unescaping rules for single and double-quoted
|
||||||
|
* YAML strings.
|
||||||
|
*
|
||||||
|
* @author Matthew Lewinski <matthew@lewinski.org>
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
class Unescaper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Regex fragment that matches an escaped character in a double quoted string.
|
||||||
|
*/
|
||||||
|
public const REGEX_ESCAPED_CHARACTER = '\\\\(x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|.)';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unescapes a single quoted string.
|
||||||
|
*
|
||||||
|
* @param string $value A single quoted string
|
||||||
|
*/
|
||||||
|
public function unescapeSingleQuotedString(string $value): string
|
||||||
|
{
|
||||||
|
return str_replace('\'\'', '\'', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unescapes a double quoted string.
|
||||||
|
*
|
||||||
|
* @param string $value A double quoted string
|
||||||
|
*/
|
||||||
|
public function unescapeDoubleQuotedString(string $value): string
|
||||||
|
{
|
||||||
|
$callback = function ($match) {
|
||||||
|
return $this->unescapeCharacter($match[0]);
|
||||||
|
};
|
||||||
|
|
||||||
|
// evaluate the string
|
||||||
|
return preg_replace_callback('/'.self::REGEX_ESCAPED_CHARACTER.'/u', $callback, $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unescapes a character that was found in a double-quoted string.
|
||||||
|
*
|
||||||
|
* @param string $value An escaped character
|
||||||
|
*/
|
||||||
|
private function unescapeCharacter(string $value): string
|
||||||
|
{
|
||||||
|
switch ($value[1]) {
|
||||||
|
case '0':
|
||||||
|
return "\x0";
|
||||||
|
case 'a':
|
||||||
|
return "\x7";
|
||||||
|
case 'b':
|
||||||
|
return "\x8";
|
||||||
|
case 't':
|
||||||
|
return "\t";
|
||||||
|
case "\t":
|
||||||
|
return "\t";
|
||||||
|
case 'n':
|
||||||
|
return "\n";
|
||||||
|
case 'v':
|
||||||
|
return "\xB";
|
||||||
|
case 'f':
|
||||||
|
return "\xC";
|
||||||
|
case 'r':
|
||||||
|
return "\r";
|
||||||
|
case 'e':
|
||||||
|
return "\x1B";
|
||||||
|
case ' ':
|
||||||
|
return ' ';
|
||||||
|
case '"':
|
||||||
|
return '"';
|
||||||
|
case '/':
|
||||||
|
return '/';
|
||||||
|
case '\\':
|
||||||
|
return '\\';
|
||||||
|
case 'N':
|
||||||
|
// U+0085 NEXT LINE
|
||||||
|
return "\xC2\x85";
|
||||||
|
case '_':
|
||||||
|
// U+00A0 NO-BREAK SPACE
|
||||||
|
return "\xC2\xA0";
|
||||||
|
case 'L':
|
||||||
|
// U+2028 LINE SEPARATOR
|
||||||
|
return "\xE2\x80\xA8";
|
||||||
|
case 'P':
|
||||||
|
// U+2029 PARAGRAPH SEPARATOR
|
||||||
|
return "\xE2\x80\xA9";
|
||||||
|
case 'x':
|
||||||
|
return self::utf8chr(hexdec(substr($value, 2, 2)));
|
||||||
|
case 'u':
|
||||||
|
return self::utf8chr(hexdec(substr($value, 2, 4)));
|
||||||
|
case 'U':
|
||||||
|
return self::utf8chr(hexdec(substr($value, 2, 8)));
|
||||||
|
default:
|
||||||
|
throw new ParseException(sprintf('Found unknown escape character "%s".', $value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the UTF-8 character for the given code point.
|
||||||
|
*/
|
||||||
|
private static function utf8chr(int $c): string
|
||||||
|
{
|
||||||
|
if (0x80 > $c %= 0x200000) {
|
||||||
|
return \chr($c);
|
||||||
|
}
|
||||||
|
if (0x800 > $c) {
|
||||||
|
return \chr(0xC0 | $c >> 6).\chr(0x80 | $c & 0x3F);
|
||||||
|
}
|
||||||
|
if (0x10000 > $c) {
|
||||||
|
return \chr(0xE0 | $c >> 12).\chr(0x80 | $c >> 6 & 0x3F).\chr(0x80 | $c & 0x3F);
|
||||||
|
}
|
||||||
|
|
||||||
|
return \chr(0xF0 | $c >> 18).\chr(0x80 | $c >> 12 & 0x3F).\chr(0x80 | $c >> 6 & 0x3F).\chr(0x80 | $c & 0x3F);
|
||||||
|
}
|
||||||
|
}
|
100
vendor/symfony/yaml/Yaml.php
vendored
Normal file
100
vendor/symfony/yaml/Yaml.php
vendored
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Symfony package.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Symfony\Component\Yaml;
|
||||||
|
|
||||||
|
use Symfony\Component\Yaml\Exception\ParseException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Yaml offers convenience methods to load and dump YAML.
|
||||||
|
*
|
||||||
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* @final
|
||||||
|
*/
|
||||||
|
class Yaml
|
||||||
|
{
|
||||||
|
public const DUMP_OBJECT = 1;
|
||||||
|
public const PARSE_EXCEPTION_ON_INVALID_TYPE = 2;
|
||||||
|
public const PARSE_OBJECT = 4;
|
||||||
|
public const PARSE_OBJECT_FOR_MAP = 8;
|
||||||
|
public const DUMP_EXCEPTION_ON_INVALID_TYPE = 16;
|
||||||
|
public const PARSE_DATETIME = 32;
|
||||||
|
public const DUMP_OBJECT_AS_MAP = 64;
|
||||||
|
public const DUMP_MULTI_LINE_LITERAL_BLOCK = 128;
|
||||||
|
public const PARSE_CONSTANT = 256;
|
||||||
|
public const PARSE_CUSTOM_TAGS = 512;
|
||||||
|
public const DUMP_EMPTY_ARRAY_AS_SEQUENCE = 1024;
|
||||||
|
public const DUMP_NULL_AS_TILDE = 2048;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses a YAML file into a PHP value.
|
||||||
|
*
|
||||||
|
* Usage:
|
||||||
|
*
|
||||||
|
* $array = Yaml::parseFile('config.yml');
|
||||||
|
* print_r($array);
|
||||||
|
*
|
||||||
|
* @param string $filename The path to the YAML file to be parsed
|
||||||
|
* @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*
|
||||||
|
* @throws ParseException If the file could not be read or the YAML is not valid
|
||||||
|
*/
|
||||||
|
public static function parseFile(string $filename, int $flags = 0)
|
||||||
|
{
|
||||||
|
$yaml = new Parser();
|
||||||
|
|
||||||
|
return $yaml->parseFile($filename, $flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses YAML into a PHP value.
|
||||||
|
*
|
||||||
|
* Usage:
|
||||||
|
* <code>
|
||||||
|
* $array = Yaml::parse(file_get_contents('config.yml'));
|
||||||
|
* print_r($array);
|
||||||
|
* </code>
|
||||||
|
*
|
||||||
|
* @param string $input A string containing YAML
|
||||||
|
* @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*
|
||||||
|
* @throws ParseException If the YAML is not valid
|
||||||
|
*/
|
||||||
|
public static function parse(string $input, int $flags = 0)
|
||||||
|
{
|
||||||
|
$yaml = new Parser();
|
||||||
|
|
||||||
|
return $yaml->parse($input, $flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dumps a PHP value to a YAML string.
|
||||||
|
*
|
||||||
|
* The dump method, when supplied with an array, will do its best
|
||||||
|
* to convert the array into friendly YAML.
|
||||||
|
*
|
||||||
|
* @param mixed $input The PHP value
|
||||||
|
* @param int $inline The level where you switch to inline YAML
|
||||||
|
* @param int $indent The amount of spaces to use for indentation of nested nodes
|
||||||
|
* @param int $flags A bit field of DUMP_* constants to customize the dumped YAML string
|
||||||
|
*/
|
||||||
|
public static function dump($input, int $inline = 2, int $indent = 4, int $flags = 0): string
|
||||||
|
{
|
||||||
|
$yaml = new Dumper($indent);
|
||||||
|
|
||||||
|
return $yaml->dump($input, $inline, 0, $flags);
|
||||||
|
}
|
||||||
|
}
|
42
vendor/symfony/yaml/composer.json
vendored
Normal file
42
vendor/symfony/yaml/composer.json
vendored
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
{
|
||||||
|
"name": "symfony/yaml",
|
||||||
|
"type": "library",
|
||||||
|
"description": "Loads and dumps YAML files",
|
||||||
|
"keywords": [],
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"license": "MIT",
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"require": {
|
||||||
|
"php": ">=7.2.5",
|
||||||
|
"symfony/deprecation-contracts": "^2.1|^3",
|
||||||
|
"symfony/polyfill-ctype": "^1.8"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"symfony/console": "^5.3|^6.0"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"symfony/console": "<5.3"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"symfony/console": "For validating YAML files using the lint command"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": { "Symfony\\Component\\Yaml\\": "" },
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/Tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"Resources/bin/yaml-lint"
|
||||||
|
],
|
||||||
|
"minimum-stability": "dev"
|
||||||
|
}
|
Loading…
Reference in a new issue