Merge branch 'ent-7122-nuevo-update-manager' into 'develop'
Embebed UMC in Pandora FMS See merge request artica/pandorafms!3894
|
@ -148,7 +148,7 @@ EOF_INDEX
|
|||
sed -i -e "s/^max_input_time.*/max_input_time = -1/g" /etc/php.ini
|
||||
sed -i -e "s/^max_execution_time.*/max_execution_time = 0/g" /etc/php.ini
|
||||
sed -i -e "s/^upload_max_filesize.*/upload_max_filesize = 800M/g" /etc/php.ini
|
||||
sed -i -e "s/^memory_limit.*/memory_limit = 500M/g" /etc/php.ini
|
||||
sed -i -e "s/^memory_limit.*/memory_limit = 800M/g" /etc/php.ini
|
||||
|
||||
echo "- Setting Public URL: $PUBLICURL"
|
||||
q=$(mysql -u$DBUSER -p$DBPASS $DBNAME -h$DBHOST -sNe "select token from tconfig;" | grep public_url)
|
||||
|
|
|
@ -73,7 +73,7 @@ enterprise/extensions/ipam.php
|
|||
enterprise/extensions/ipam
|
||||
enterprise/extensions/disabled/visual_console_manager.php
|
||||
enterprise/extensions/visual_console_manager.php
|
||||
pandora_console/extensions/net_tools.php
|
||||
extensions/net_tools.php
|
||||
enterprise/godmode/agentes/module_manager_editor_web.php
|
||||
enterprise/include/ajax/web_server_module_debug.php
|
||||
enterprise/include/class/WebServerModuleDebug.class.php
|
||||
|
@ -82,4 +82,11 @@ include/lib/WSManager.php
|
|||
include/lib/WebSocketServer.php
|
||||
include/lib/WebSocketUser.php
|
||||
operation/network/network_explorer.php
|
||||
operation/vsual_console/pure_ajax.php
|
||||
operation/visual_console/pure_ajax.php
|
||||
include/ajax/update_manager.ajax.php
|
||||
godmode/update_manager/update_manager.css
|
||||
godmode/update_manager/update_manager.offline.php
|
||||
godmode/update_manager/update_manager.online.php
|
||||
include/javascript/update_manager.js
|
||||
enterprise/include/functions_update_manager.php
|
||||
include/ajax/rolling_release.ajax.php
|
|
@ -37,14 +37,14 @@ require_once $config['homedir'].'/include/functions_update_manager.php';
|
|||
|
||||
$current_package = update_manager_get_current_package();
|
||||
|
||||
if ($current_package == 0) {
|
||||
$build_package_version = $build_version;
|
||||
if ($current_package === null) {
|
||||
$build_package_version = 'Build '.$build_version;
|
||||
} else {
|
||||
$build_package_version = $current_package;
|
||||
$build_package_version = 'OUM '.$current_package;
|
||||
}
|
||||
|
||||
echo __(
|
||||
'%s %s - Build %s - MR %s',
|
||||
'%s %s - %s - MR %s',
|
||||
get_product_name(),
|
||||
$pandora_version,
|
||||
$build_package_version,
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
<?php
|
||||
/**
|
||||
* Static page to lock access to console
|
||||
*
|
||||
* @category Wizard
|
||||
* @package Pandora FMS
|
||||
* @subpackage Applications.VMware
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Begin.
|
||||
ui_require_css_file('maintenance');
|
||||
?>
|
||||
<html>
|
||||
<body>
|
||||
<h1>Ups ...</h1>
|
||||
<div class="responsive">
|
||||
|
||||
<p><?php echo __('Maintenance tasks in progress'); ?></p>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<?php
|
||||
html_print_image(
|
||||
'images/maintenance.png',
|
||||
false,
|
||||
[
|
||||
'class' => 'responsive',
|
||||
'width' => 800,
|
||||
]
|
||||
);
|
||||
?>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<p><?php echo __('You will be automatically redirected when all tasks finish'); ?></p>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
setTimeout(
|
||||
function() {
|
||||
location.reload();
|
||||
},
|
||||
10000
|
||||
);
|
||||
})
|
||||
</script>
|
||||
|
||||
</html>
|
|
@ -29,24 +29,16 @@
|
|||
// Begin.
|
||||
global $config;
|
||||
|
||||
require_once $config['homedir'].'/include/functions_update_manager.php';
|
||||
require_once $config['homedir'].'/include/functions_register.php';
|
||||
require_once $config['homedir'].'/include/class/WelcomeWindow.class.php';
|
||||
|
||||
|
||||
if (is_ajax()) {
|
||||
if ((bool) is_ajax() === true) {
|
||||
// Parse responses, flow control.
|
||||
$configuration_wizard = get_parameter('save_required_wizard', 0);
|
||||
$change_language = get_parameter('change_language', 0);
|
||||
$cancel_wizard = get_parameter('cancel_wizard', 0);
|
||||
|
||||
// Console registration.
|
||||
$cancel_registration = get_parameter('cancel_registration', 0);
|
||||
$register_console = get_parameter('register_console', 0);
|
||||
|
||||
// Newsletter.
|
||||
$cancel_newsletter = get_parameter('cancel_newsletter', 0);
|
||||
$register_newsletter = get_parameter('register_newsletter', 0);
|
||||
|
||||
// Load wizards.
|
||||
$load_wizards = get_parameter('load_wizards', '');
|
||||
|
||||
|
@ -58,16 +50,8 @@ if (is_ajax()) {
|
|||
case 'initial':
|
||||
return config_wiz_modal(false, false);
|
||||
|
||||
case 'registration':
|
||||
return registration_wiz_modal(false, false);
|
||||
|
||||
case 'newsletter':
|
||||
return newsletter_wiz_modal(false, false);
|
||||
|
||||
case 'all':
|
||||
config_wiz_modal(false, false);
|
||||
registration_wiz_modal(false, false);
|
||||
newsletter_wiz_modal(false, false);
|
||||
return;
|
||||
|
||||
default:
|
||||
|
@ -90,31 +74,7 @@ if (is_ajax()) {
|
|||
config_update_value('initial_wizard', 1);
|
||||
}
|
||||
|
||||
// Update Manager registration.
|
||||
if ($cancel_registration) {
|
||||
config_update_value('pandora_uid', 'OFFLINE');
|
||||
}
|
||||
|
||||
if ($register_console) {
|
||||
$feedback = registration_wiz_process();
|
||||
}
|
||||
|
||||
// Newsletter.
|
||||
if ($cancel_newsletter) {
|
||||
db_process_sql_update(
|
||||
'tusuario',
|
||||
['middlename' => -1],
|
||||
['id_user' => $config['id_user']]
|
||||
);
|
||||
|
||||
// XXX: Also notify UpdateManager.
|
||||
}
|
||||
|
||||
if ($register_newsletter) {
|
||||
$feedback = newsletter_wiz_process();
|
||||
}
|
||||
|
||||
if (is_array($feedback)) {
|
||||
if (is_array($feedback) === true) {
|
||||
echo json_encode($feedback);
|
||||
}
|
||||
|
||||
|
@ -123,60 +83,23 @@ if (is_ajax()) {
|
|||
exit();
|
||||
}
|
||||
|
||||
|
||||
|
||||
ui_require_css_file('register');
|
||||
|
||||
$initial = isset($config['initial_wizard']) !== true
|
||||
|| $config['initial_wizard'] != '1';
|
||||
|
||||
$newsletter = db_get_value(
|
||||
'middlename',
|
||||
'tusuario',
|
||||
'id_user',
|
||||
$config['id_user']
|
||||
);
|
||||
$show_newsletter = $newsletter == '0' || $newsletter == '';
|
||||
|
||||
$registration = isset($config['pandora_uid']) !== true
|
||||
|| $config['pandora_uid'] == '';
|
||||
|
||||
|
||||
if ($initial && users_is_admin()) {
|
||||
// Show all forms in order.
|
||||
// 1- Ask for email, timezone, etc. Fullfill alerts and user mail.
|
||||
config_wiz_modal(
|
||||
false,
|
||||
true,
|
||||
(($registration === true) ? 'show_registration_wizard()' : null),
|
||||
null,
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
if (!$config['disabled_newsletter']) {
|
||||
if ($registration && users_is_admin()) {
|
||||
// Prepare registration wizard, not launch. leave control to flow.
|
||||
registration_wiz_modal(
|
||||
false,
|
||||
// Launch only if not being launch from 'initial'.
|
||||
!$initial,
|
||||
(($show_newsletter === false) ? 'force_run_newsletter()' : null),
|
||||
true
|
||||
);
|
||||
} else {
|
||||
if ($show_newsletter) {
|
||||
// Show newsletter wizard for current user.
|
||||
newsletter_wiz_modal(
|
||||
false,
|
||||
// Launch only if not being call from 'registration'.
|
||||
!$registration && !$initial,
|
||||
true
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$welcome = !$registration && !$show_newsletter && !$initial;
|
||||
$welcome = !$initial;
|
||||
try {
|
||||
$welcome_window = new WelcomeWindow($welcome);
|
||||
if ($welcome_window !== null) {
|
||||
|
@ -271,8 +194,6 @@ if (!$double_auth_enabled
|
|||
echo '</div>';
|
||||
}
|
||||
|
||||
$newsletter = null;
|
||||
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
|
||||
|
|
|
@ -56,6 +56,10 @@ if (is_metaconsole()) {
|
|||
enterprise_include_once('include/functions_license.php');
|
||||
}
|
||||
|
||||
if ($renew_license_result !== null) {
|
||||
echo $renew_license_result;
|
||||
}
|
||||
|
||||
if ($update_settings) {
|
||||
if (!is_metaconsole()) {
|
||||
// Node.
|
||||
|
@ -80,14 +84,23 @@ foreach ($rows as $row) {
|
|||
$settings->{$row['key']} = $row['value'];
|
||||
}
|
||||
|
||||
echo '<script type="text/javascript">';
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
var texts = {
|
||||
error_connecting: '<?php echo __('Error while connecting to licence server.'); ?>',
|
||||
error_license: '<?php echo __('Invalid response while validating license.'); ?>',
|
||||
error_unknown: '<?php echo __('Unknown error'); ?>',
|
||||
}
|
||||
|
||||
<?php
|
||||
if (enterprise_installed()) {
|
||||
print_js_var_enteprise();
|
||||
}
|
||||
?>
|
||||
|
||||
echo '</script>';
|
||||
|
||||
echo '<form method="post">';
|
||||
</script>
|
||||
<?php
|
||||
echo '<form method="post" id="form-license">';
|
||||
// Retrieve UM url configured (or default).
|
||||
$url = get_um_url();
|
||||
|
||||
|
@ -147,8 +160,8 @@ if (enterprise_installed() || defined('DESTDIR')) {
|
|||
}
|
||||
|
||||
if (is_metaconsole()) {
|
||||
ui_require_css_file('pandora_enterprise', '../../'.ENTERPRISE_DIR.'/include/styles/');
|
||||
ui_require_css_file('register', '../../include/styles/');
|
||||
ui_require_css_file('pandora_enterprise', ENTERPRISE_DIR.'/include/styles/');
|
||||
ui_require_css_file('register', 'include/styles/');
|
||||
} else {
|
||||
ui_require_css_file('pandora');
|
||||
ui_require_css_file('pandora_enterprise', ENTERPRISE_DIR.'/include/styles/');
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
Testing
|
||||
-------
|
||||
Using phpunit8 under an unprivileged user:
|
||||
|
||||
phpunit8 --cache-result-file=/tmp/ .
|
||||
|
||||
|
||||
Using phpunit (
|
|
@ -0,0 +1,84 @@
|
|||
<?php
|
||||
/**
|
||||
* Update Manager Client API for MC distributed updates.
|
||||
*
|
||||
* This is an atomic package, this file must be referenced from general product
|
||||
* menu entries in order to give Update Manager Client work.
|
||||
*
|
||||
* DO NOT EDIT THIS FILE. ONLY SETTINGS SECTION.
|
||||
*
|
||||
* @category Class
|
||||
* @package Update Manager
|
||||
* @subpackage Client
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Begin.
|
||||
global $config;
|
||||
|
||||
if (file_exists(__DIR__.'/../../include/config.php') === true) {
|
||||
include_once __DIR__.'/../../include/config.php';
|
||||
}
|
||||
|
||||
require_once __DIR__.'/vendor/autoload.php';
|
||||
require_once __DIR__.'/resources/helpers.php';
|
||||
|
||||
use UpdateManager\API\Server;
|
||||
|
||||
$puid = null;
|
||||
$repo_path = null;
|
||||
|
||||
if (is_array($config) === true) {
|
||||
$puid = $config['pandora_uid'];
|
||||
$repo_path = $config['remote_config'].'/updates/repo';
|
||||
if (is_dir($repo_path) === false) {
|
||||
mkdir($repo_path, 0777, true);
|
||||
}
|
||||
}
|
||||
|
||||
if (function_exists('db_get_value') === true) {
|
||||
$license = db_get_value(
|
||||
db_escape_key_identifier('value'),
|
||||
'tupdate_settings',
|
||||
db_escape_key_identifier('key'),
|
||||
'customer_key'
|
||||
);
|
||||
}
|
||||
|
||||
if (empty($license) === true) {
|
||||
$license = 'PANDORA-FREE';
|
||||
}
|
||||
|
||||
try {
|
||||
$server = new Server(
|
||||
[
|
||||
'registration_code' => $puid,
|
||||
'repo_path' => $repo_path,
|
||||
'license' => $license,
|
||||
]
|
||||
);
|
||||
|
||||
$server->run();
|
||||
} catch (Exception $e) {
|
||||
echo json_encode(
|
||||
['error' => $e->getMessage()]
|
||||
);
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"name": "articapfms/update_manager_client",
|
||||
"description": "Artica PFMS Update Manager Client",
|
||||
"type": "library",
|
||||
"license": "GPL2",
|
||||
"authors": [
|
||||
{
|
||||
"name": "fbsanchez",
|
||||
"email": "fborja.sanchez@artica.es"
|
||||
}
|
||||
],
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"UpdateManager\\": "lib/UpdateManager"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Tests\\": "tests/"
|
||||
}
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^8.5.14"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,395 @@
|
|||
<?php
|
||||
/**
|
||||
* Update Manager Client.
|
||||
*
|
||||
* This is an atomic package, this file must be referenced from general product
|
||||
* menu entries in order to give Update Manager Client work.
|
||||
*
|
||||
* DO NOT EDIT THIS FILE. ONLY SETTINGS SECTION.
|
||||
*
|
||||
* @category Class
|
||||
* @package Update Manager
|
||||
* @subpackage Client
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Begin.
|
||||
global $config;
|
||||
|
||||
require_once __DIR__.'/vendor/autoload.php';
|
||||
require_once __DIR__.'/resources/helpers.php';
|
||||
|
||||
use PandoraFMS\Enterprise\Metaconsole\Synchronizer;
|
||||
use UpdateManager\UI\Manager;
|
||||
|
||||
if (function_exists('check_login') === true) {
|
||||
check_login();
|
||||
}
|
||||
|
||||
if (function_exists('check_acl') === true
|
||||
&& function_exists('is_user_admin') === true
|
||||
) {
|
||||
if ((bool) check_acl($config['id_user'], 0, 'PM') !== true
|
||||
&& (bool) is_user_admin($config['id_user']) !== true
|
||||
) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (function_exists('db_get_value') === true) {
|
||||
$license = db_get_value(
|
||||
db_escape_key_identifier('value'),
|
||||
'tupdate_settings',
|
||||
db_escape_key_identifier('key'),
|
||||
'customer_key'
|
||||
);
|
||||
}
|
||||
|
||||
if (empty($license) === true) {
|
||||
$license = 'PANDORA-FREE';
|
||||
}
|
||||
|
||||
if (function_exists('enterprise_hook') === true) {
|
||||
enterprise_include_once('/include/functions_license.php');
|
||||
$license_data = enterprise_hook('license_get_info');
|
||||
if ($license_data !== ENTERPRISE_NOT_HOOK) {
|
||||
$days_to_expiry = ((strtotime($license_data['expiry_date']) - time()) / (60 * 60 * 24));
|
||||
|
||||
if ((int) $license_data['limit_mode'] === 0) {
|
||||
$limit = db_get_value('count(*)', 'tagente', 'disabled', 0);
|
||||
} else {
|
||||
$limit = db_get_value('count(*)', 'tagente_modulo', 'disabled', 0);
|
||||
}
|
||||
|
||||
if ($limit > $license_data['limit']) {
|
||||
ui_print_warning_message(
|
||||
__(
|
||||
'You cannot use update manager %s. You are exceding monitoring limits by %s elements. Please update your license or disable enterprise section by moving enterprise directory to another location and try again.',
|
||||
$mode_str,
|
||||
($limit - $license_data['limit'])
|
||||
)
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
if ($days_to_expiry < 0) {
|
||||
$mode_str = '';
|
||||
if ($mode === Manager::MODE_ONLINE) {
|
||||
$mode_str = 'online';
|
||||
} else if ($mode === Manager::MODE_OFFLINE) {
|
||||
$mode_str = 'offline';
|
||||
}
|
||||
|
||||
ui_print_warning_message(
|
||||
__(
|
||||
'You cannot use update manager %s. This license has expired %d days ago. Please update your license or disable enterprise section by moving enterprise directory to another location and try again.',
|
||||
$mode_str,
|
||||
abs($days_to_expiry)
|
||||
)
|
||||
);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
$license_data = [];
|
||||
$license_data['count_enabled'] = db_get_value(
|
||||
'count(*)',
|
||||
'tagente',
|
||||
'disabled',
|
||||
0
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Set dbh.
|
||||
if (is_array($config) === true && $config['dbconnection'] !== null) {
|
||||
$dbh = (object) $config['dbconnection'];
|
||||
} else {
|
||||
$dbh = null;
|
||||
}
|
||||
|
||||
// Retrieve current definition.
|
||||
if ($dbh !== null) {
|
||||
$stm = $dbh->query(
|
||||
'SELECT `value` FROM `tconfig`
|
||||
WHERE `token`="current_package"'
|
||||
);
|
||||
if ($stm !== false) {
|
||||
$current_package = $stm->fetch_array();
|
||||
if ($current_package !== null) {
|
||||
$current_package = $current_package[0];
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($current_package) === true) {
|
||||
// If no current_package is present, use current_package_enterprise.
|
||||
$stm = $dbh->query(
|
||||
'SELECT MAX(`value`) FROM `tconfig`
|
||||
WHERE `token`="current_package_enterprise"'
|
||||
);
|
||||
if ($stm !== false) {
|
||||
$current_package = $stm->fetch_array();
|
||||
|
||||
if ($current_package !== null) {
|
||||
$current_package = $current_package[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$mr = 0;
|
||||
$stm = $dbh->query(
|
||||
'SELECT MAX(`value`) FROM `tconfig`
|
||||
WHERE `token`="MR" OR `token`="minor_release"'
|
||||
);
|
||||
if ($stm !== false) {
|
||||
$mr = $stm->fetch_array();
|
||||
if ($mr !== null) {
|
||||
$mr = $mr[0];
|
||||
}
|
||||
}
|
||||
|
||||
$puid = null;
|
||||
$stm = $dbh->query(
|
||||
'SELECT `value` FROM `tconfig`
|
||||
WHERE `token`="pandora_uid"'
|
||||
);
|
||||
if ($stm !== false) {
|
||||
$puid = $stm->fetch_array();
|
||||
if ($puid !== null) {
|
||||
$puid = $puid[0];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$current_package = 0;
|
||||
$mr = 0;
|
||||
$puid = null;
|
||||
}
|
||||
|
||||
if (is_ajax() !== true) {
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
var clientMode = '<?php echo $mode; ?>';
|
||||
</script>
|
||||
<?php
|
||||
if (function_exists('db_get_value_sql') === true) {
|
||||
$server_version = (string) db_get_value_sql(
|
||||
'SELECT `version` FROM `tserver` ORDER BY `master` DESC'
|
||||
);
|
||||
if ($server_version !== false
|
||||
&& preg_match('/NG\.(\d\.*\d*?) /', $server_version, $matches) > 0
|
||||
) {
|
||||
if ((float) $matches[1] !== (float) $current_package) {
|
||||
ui_print_warning_message(
|
||||
__(
|
||||
'Master server version %s does not match console version %s.',
|
||||
(float) $matches[1],
|
||||
(float) $current_package
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Load styles.
|
||||
if (function_exists('ui_require_css_file') === true) {
|
||||
ui_require_css_file('pandora', 'godmode/um_client/resources/styles/');
|
||||
}
|
||||
|
||||
if (isset($mode) === false) {
|
||||
$mode = Manager::MODE_ONLINE;
|
||||
if (function_exists('get_parameter') === true) {
|
||||
$mode = (int) get_parameter('mode', null);
|
||||
} else {
|
||||
$mode = ($_REQUEST['mode'] ?? Manager::MODE_ONLINE);
|
||||
}
|
||||
}
|
||||
|
||||
if (is_int($mode) === false) {
|
||||
switch ($mode) {
|
||||
case 'offline':
|
||||
$mode = Manager::MODE_OFFLINE;
|
||||
break;
|
||||
|
||||
case 'register':
|
||||
$mode = Manager::MODE_REGISTER;
|
||||
break;
|
||||
|
||||
case 'online':
|
||||
default:
|
||||
$mode = Manager::MODE_ONLINE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$dbhHistory = null;
|
||||
|
||||
if (is_array($config) === true
|
||||
&& (bool) $config['history_db_enabled'] === true
|
||||
) {
|
||||
ob_start();
|
||||
$dbhHistory = db_connect(
|
||||
$config['history_db_host'],
|
||||
$config['history_db_name'],
|
||||
$config['history_db_user'],
|
||||
$config['history_db_pass'],
|
||||
$config['history_db_port']
|
||||
);
|
||||
ob_get_clean();
|
||||
|
||||
if ($dbhHistory === false) {
|
||||
$dbhHistory = null;
|
||||
}
|
||||
}
|
||||
|
||||
$url_update_manager = null;
|
||||
$homedir = sys_get_temp_dir();
|
||||
$dbconnection = null;
|
||||
$remote_config = null;
|
||||
$is_metaconsole = false;
|
||||
$insecure = false;
|
||||
$pandora_url = ui_get_full_url('godmode/um_client', false, false, false);
|
||||
|
||||
if (is_array($config) === true) {
|
||||
if (isset($config['secure_update_manager']) === false) {
|
||||
$config['secure_update_manager'] = null;
|
||||
}
|
||||
|
||||
if ($config['secure_update_manager'] === ''
|
||||
|| $config['secure_update_manager'] === null
|
||||
) {
|
||||
$insecure = false;
|
||||
} else {
|
||||
// Directive defined.
|
||||
$insecure = !$config['secure_update_manager'];
|
||||
}
|
||||
|
||||
if ((bool) is_ajax() === false) {
|
||||
if ($mode === Manager::MODE_ONLINE
|
||||
&& ($puid === null || $puid === 'OFFLINE')
|
||||
) {
|
||||
ui_print_error_message(__('Update manager online requires registration.'));
|
||||
}
|
||||
}
|
||||
|
||||
$url_update_manager = $config['url_update_manager'];
|
||||
$homedir = $config['homedir'];
|
||||
$dbconnection = $config['dbconnection'];
|
||||
$remote_config = $config['remote_config'];
|
||||
if (function_exists('is_metaconsole') === true) {
|
||||
$is_metaconsole = (bool) is_metaconsole();
|
||||
}
|
||||
|
||||
if ($is_metaconsole === false) {
|
||||
if ((bool) $config['node_metaconsole'] === true) {
|
||||
$url_update_manager = $config['metaconsole_base_url'];
|
||||
$url_update_manager .= 'godmode/um_client/api.php';
|
||||
}
|
||||
} else if ($is_metaconsole === true) {
|
||||
$sc = new Synchronizer();
|
||||
$url_meta_base = ui_get_full_url('/', false, false, false);
|
||||
$sc->apply(
|
||||
function ($node, $sync) use ($url_meta_base) {
|
||||
try {
|
||||
global $config;
|
||||
|
||||
$sync->connect($node);
|
||||
|
||||
$config['metaconsole_base_url'] = db_get_value(
|
||||
'value',
|
||||
'tconfig',
|
||||
'token',
|
||||
'metaconsole_base_url'
|
||||
);
|
||||
|
||||
if ($config['metaconsole_base_url'] === false) {
|
||||
// Unset to create new value if does not exist previously.
|
||||
$config['metaconsole_base_url'] = null;
|
||||
}
|
||||
|
||||
config_update_value(
|
||||
'metaconsole_base_url',
|
||||
$url_meta_base
|
||||
);
|
||||
|
||||
$sync->disconnect();
|
||||
} catch (Exception $e) {
|
||||
ui_print_error_message(
|
||||
'Cannot update node settings: ',
|
||||
$e->getMessage()
|
||||
);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$PHPmemory_limit_min = config_return_in_bytes('800M');
|
||||
$PHPmemory_limit = config_return_in_bytes(ini_get('memory_limit'));
|
||||
if ($PHPmemory_limit < $PHPmemory_limit_min && $PHPmemory_limit !== '-1') {
|
||||
$msg = __(
|
||||
'\'%s\' recommended value is %s or greater. Please, change it on your PHP configuration file (php.ini) or contact with administrator',
|
||||
'memory_limit',
|
||||
'800M'
|
||||
);
|
||||
if (function_exists('ui_print_warning_message') === true) {
|
||||
ui_print_warning_message($msg);
|
||||
} else {
|
||||
echo $msg;
|
||||
}
|
||||
}
|
||||
|
||||
$ui = new Manager(
|
||||
((is_array($config) === true) ? $pandora_url : 'http://'.$_SERVER['SERVER_ADDR'].'/'),
|
||||
((is_array($config) === true) ? ui_get_full_url('ajax.php') : ''),
|
||||
((is_array($config) === true) ? 'godmode/um_client/index' : ''),
|
||||
[
|
||||
'url' => $url_update_manager,
|
||||
'insecure' => $insecure,
|
||||
'license' => $license,
|
||||
'limit_count' => ((is_array($license_data) === true) ? $license_data['count_enabled'] : null),
|
||||
'language' => ((is_array($config) === true) ? $config['language'] : null),
|
||||
'timezone' => ((is_array($config) === true) ? $config['timezone'] : null),
|
||||
'homedir' => $homedir,
|
||||
'dbconnection' => $dbconnection,
|
||||
'historydb' => $dbhHistory,
|
||||
'current_package' => $current_package,
|
||||
'MR' => $mr,
|
||||
'registration_code' => $puid,
|
||||
'remote_config' => $remote_config,
|
||||
'propagate_updates' => $is_metaconsole,
|
||||
'set_maintenance_mode' => function () {
|
||||
if (function_exists('config_update_value') === true) {
|
||||
config_update_value('maintenance_mode', 1);
|
||||
}
|
||||
},
|
||||
'clear_maintenance_mode' => function () {
|
||||
if (function_exists('config_update_value') === true) {
|
||||
config_update_value('maintenance_mode', 0);
|
||||
}
|
||||
},
|
||||
],
|
||||
$mode
|
||||
);
|
||||
|
||||
$ui->run();
|
|
@ -0,0 +1,261 @@
|
|||
<?php
|
||||
/**
|
||||
* UpdateManager API Server.
|
||||
*
|
||||
* @category Class
|
||||
* @package Update Manager
|
||||
* @subpackage API Server
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Begin.
|
||||
namespace UpdateManager\API;
|
||||
|
||||
use UpdateManager\RepoMC;
|
||||
|
||||
/**
|
||||
* Microserver to populate updates to nodes.
|
||||
*/
|
||||
class Server
|
||||
{
|
||||
|
||||
/**
|
||||
* Repository path.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $repoPath;
|
||||
|
||||
/**
|
||||
* MC License to use as verification.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $licenseToken;
|
||||
|
||||
/**
|
||||
* Disk repository.
|
||||
*
|
||||
* @var RepoMC
|
||||
*/
|
||||
private $repository;
|
||||
|
||||
/**
|
||||
* Registration code.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $registrationCode;
|
||||
|
||||
|
||||
/**
|
||||
* Initializes a micro server object.
|
||||
*
|
||||
* @param array $settings Values.
|
||||
*/
|
||||
public function __construct(array $settings)
|
||||
{
|
||||
$this->repoPath = '';
|
||||
$this->licenseToken = '';
|
||||
|
||||
if (isset($settings['repo_path']) === true) {
|
||||
$this->repoPath = $settings['repo_path'];
|
||||
}
|
||||
|
||||
if (isset($settings['license']) === true) {
|
||||
$this->licenseToken = $settings['license'];
|
||||
}
|
||||
|
||||
if (isset($settings['registration_code']) === true) {
|
||||
$this->registrationCode = $settings['registration_code'];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Handle requests and reponse as UMS.
|
||||
*
|
||||
* @return void
|
||||
* @throws \Exception On error.
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
// Requests are handled via POST to hide the user.
|
||||
self::assertPost();
|
||||
|
||||
$action = self::input('action');
|
||||
|
||||
try {
|
||||
if ($action === 'get_server_package'
|
||||
|| $action === 'get_server_package_signature'
|
||||
) {
|
||||
$this->repository = new RepoMC(
|
||||
$this->repoPath,
|
||||
'tar.gz'
|
||||
);
|
||||
} else {
|
||||
$this->repository = new RepoMC(
|
||||
$this->repoPath,
|
||||
'oum'
|
||||
);
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
self::error(500, $e->getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
$this->validateRequest();
|
||||
|
||||
switch ($action) {
|
||||
case 'newest_package':
|
||||
echo json_encode(
|
||||
$this->repository->newest_package(
|
||||
self::input('current_package')
|
||||
)
|
||||
);
|
||||
break;
|
||||
|
||||
case 'newer_packages':
|
||||
echo json_encode(
|
||||
$this->repository->newer_packages(
|
||||
self::input('current_package')
|
||||
)
|
||||
);
|
||||
break;
|
||||
|
||||
case 'get_package':
|
||||
$this->repository->send_package(
|
||||
self::input('package')
|
||||
);
|
||||
break;
|
||||
|
||||
case 'get_server_package':
|
||||
$this->repository->send_server_package(
|
||||
self::input('version')
|
||||
);
|
||||
break;
|
||||
|
||||
case 'new_register':
|
||||
echo json_encode(
|
||||
[
|
||||
'success' => 1,
|
||||
'pandora_uid' => $this->registrationCode,
|
||||
]
|
||||
);
|
||||
break;
|
||||
|
||||
// Download a package signature.
|
||||
case 'get_package_signature':
|
||||
echo $this->repository->send_package_signature(
|
||||
self::input('package')
|
||||
);
|
||||
break;
|
||||
|
||||
// Download a server package signature.
|
||||
case 'get_server_package_signature':
|
||||
echo $this->repository->send_server_package_signature(
|
||||
self::input('version')
|
||||
);
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new \Exception('invalid action');
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
if ($e->getMessage() === 'file not found in repository') {
|
||||
self::error(404, $e->getMessage());
|
||||
} else {
|
||||
self::error(500, 'Error: '.$e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Exit if not a POST request.
|
||||
*
|
||||
* @return void
|
||||
* @throws \Exception If not running using POST.
|
||||
*/
|
||||
private static function assertPost()
|
||||
{
|
||||
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
||||
self::error(500, 'Error: only POST requests are accepted.');
|
||||
throw new \Exception('use POST');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Validate request.
|
||||
*
|
||||
* @return void
|
||||
* @throws \Exception On error.
|
||||
*/
|
||||
private function validateRequest()
|
||||
{
|
||||
$reported_license = self::input('license', null);
|
||||
|
||||
if ($reported_license !== $this->licenseToken) {
|
||||
throw new \Exception('Invalid license', 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return headers with desired error.
|
||||
*
|
||||
* @param integer $err_code Error code.
|
||||
* @param string $msg Message.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private static function error(int $err_code, string $msg='')
|
||||
{
|
||||
header('HTTP/1.1 '.$err_code.' '.$msg);
|
||||
if (empty($msg) !== false) {
|
||||
echo $msg."\r\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Retrieve fields from request.
|
||||
*
|
||||
* @param string $name Variable name.
|
||||
* @param mixed $default Default value.
|
||||
*
|
||||
* @return mixed Variable value.
|
||||
*/
|
||||
private static function input(string $name, $default=null)
|
||||
{
|
||||
if (isset($_REQUEST[$name]) === true) {
|
||||
return $_REQUEST[$name];
|
||||
}
|
||||
|
||||
return $default;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,295 @@
|
|||
<?php
|
||||
|
||||
require_once 'constants.php';
|
||||
|
||||
/**
|
||||
* Software repository abstraction layer.
|
||||
*/
|
||||
abstract class Repo
|
||||
{
|
||||
|
||||
/**
|
||||
* Path of the package repository.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $path;
|
||||
|
||||
/**
|
||||
* Files in the package repository.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $files;
|
||||
|
||||
|
||||
/**
|
||||
* Class Constructor.
|
||||
*
|
||||
* @param string $path Path of the package repository.
|
||||
*
|
||||
* @return void
|
||||
* @throws Exception On error.
|
||||
*/
|
||||
public function __construct($path=false)
|
||||
{
|
||||
if ($path === false) {
|
||||
throw new Exception('no repository path was provided');
|
||||
}
|
||||
|
||||
$this->path = $path;
|
||||
$this->files = false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Load repository files.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected abstract function load();
|
||||
|
||||
|
||||
/**
|
||||
* Reload repository files.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public abstract function reload();
|
||||
|
||||
|
||||
/**
|
||||
* Return a list of all the packages in the repository.
|
||||
*
|
||||
* @return array The list of packages.
|
||||
*/
|
||||
public function all_packages()
|
||||
{
|
||||
$this->load();
|
||||
return array_values($this->files);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return a list of packages newer than then given package.
|
||||
*
|
||||
* @param integer $current_package Current package number.
|
||||
*
|
||||
* @return array The list of packages as an array.
|
||||
*/
|
||||
public function newer_packages($current_package=0)
|
||||
{
|
||||
$this->load();
|
||||
$new_packages = [];
|
||||
|
||||
foreach ($this->files as $utimestamp => $file_name) {
|
||||
if ($utimestamp <= $current_package) {
|
||||
break;
|
||||
}
|
||||
|
||||
$new_packages[] = $file_name;
|
||||
}
|
||||
|
||||
// Return newer packages in ascending order so that the client
|
||||
// can update sequentially!
|
||||
return array_reverse($new_packages);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return the name of the newest package.
|
||||
*
|
||||
* @param integer $current_package Current package number.
|
||||
*
|
||||
* @return string The name of the newest package inside an array.
|
||||
*/
|
||||
public function newest_package($current_package=0)
|
||||
{
|
||||
$this->load();
|
||||
$newest_package = [];
|
||||
|
||||
reset($this->files);
|
||||
$newest_utimestamp = key($this->files);
|
||||
|
||||
if ($newest_utimestamp > $current_package) {
|
||||
$newest_package[0] = $this->files[$newest_utimestamp];
|
||||
}
|
||||
|
||||
return $newest_package;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Send back the requested package.
|
||||
*
|
||||
* @param string $package_name Name of the package.
|
||||
*
|
||||
* @return void
|
||||
* @throws Exception Exception if the file was not found.
|
||||
*/
|
||||
public function send_package($package_name)
|
||||
{
|
||||
$this->load();
|
||||
|
||||
// Check the file exists in the repo.
|
||||
if ($package_name == false || ! in_array($package_name, array_values($this->files))) {
|
||||
throw new Exception('file not found in repository');
|
||||
}
|
||||
|
||||
// Check if the file exists in the filesystem.
|
||||
$file = $this->path.'/'.$package_name;
|
||||
if (! file_exists($file)) {
|
||||
throw new Exception('file not found');
|
||||
}
|
||||
|
||||
// Do not set headers if we are debugging!
|
||||
if ($_ENV['UM_DEBUG'] == '') {
|
||||
header('Content-Description: File Transfer');
|
||||
header('Content-Type: application/octet-stream');
|
||||
header('Content-Disposition: attachment; filename='.basename($file));
|
||||
header('Content-Transfer-Encoding: binary');
|
||||
header('Expires: 0');
|
||||
header('Cache-Control: must-revalidate');
|
||||
header('Pragma: public');
|
||||
header('Content-Length: '.filesize($file));
|
||||
ob_clean();
|
||||
flush();
|
||||
}
|
||||
|
||||
// Do not time out if the file is too big!
|
||||
set_time_limit(0);
|
||||
readfile($file);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Send back the signature for the given package.
|
||||
*
|
||||
* @param string $package_name Name of the package.
|
||||
*
|
||||
* @return void
|
||||
* @throws Exception Exception if the file was not found.
|
||||
*/
|
||||
public function send_package_signature($package_name)
|
||||
{
|
||||
$this->load();
|
||||
|
||||
// Check the file exists in the repo.
|
||||
if ($package_name == false || ! in_array($package_name, array_values($this->files))) {
|
||||
throw new Exception('file not found in repository');
|
||||
}
|
||||
|
||||
// Check if the file exists in the filesystem.
|
||||
$file = $this->path.'/'.$package_name.SIGNATURE_EXTENSION;
|
||||
if (! file_exists($file)) {
|
||||
throw new Exception('file not found');
|
||||
}
|
||||
|
||||
// Send the signature.
|
||||
readfile($file);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Send back the requested server package. This function simply calls send_package.
|
||||
* Repos may implement their own version on top of it.
|
||||
*
|
||||
* @param string $package_name Name of the package.
|
||||
*/
|
||||
function send_server_package($file)
|
||||
{
|
||||
$this->send_package($file);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Send back the sinature for the given server package. This function
|
||||
* simply calls send_package_signature. * Repos may implement their own
|
||||
* version on top of it.
|
||||
*
|
||||
* @param string $package_name Name of the package.
|
||||
*/
|
||||
function send_server_package_signature($file)
|
||||
{
|
||||
$this->send_package_signature($file);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return the number of packages in the repository.
|
||||
*
|
||||
* @param array $db DB object connected to the database.
|
||||
*
|
||||
* @return integer The total number of packages.
|
||||
*/
|
||||
public function package_count($db=false)
|
||||
{
|
||||
$this->load();
|
||||
return count($this->files);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if a package is in the repository.
|
||||
*
|
||||
* @param string $package_name Package name.
|
||||
*
|
||||
* @return boolean True if file is in the repository, FALSE if not.
|
||||
*/
|
||||
public function package_exists($package_name)
|
||||
{
|
||||
$file = $this->path.'/'.$package_name;
|
||||
if (file_exists($file)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if a package is signed.
|
||||
*
|
||||
* @param string $package_name Package name.
|
||||
* @param string $verify Verify the signature.
|
||||
*
|
||||
* @return boolean True if the package is signed, FALSE if not.
|
||||
*/
|
||||
public function package_signed($package_name, $verify=false)
|
||||
{
|
||||
$file = $this->path.'/'.$package_name;
|
||||
$file_sig = $file.SIGNATURE_EXTENSION;
|
||||
|
||||
// No signature found.
|
||||
if (!file_exists($file_sig)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// No need to verify the signature.
|
||||
if ($verify === false) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Read the signature.
|
||||
$signature = base64_decode(file_get_contents($file_sig));
|
||||
if ($signature === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Compute the hash of the data.
|
||||
$hex_hash = hash_file('sha512', $file);
|
||||
if ($hex_hash === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Verify the signature.
|
||||
if (openssl_verify($hex_hash, $signature, PUB_KEY, 'sha512') === 1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,103 @@
|
|||
<?php
|
||||
require_once __DIR__.'/Repo.php';
|
||||
|
||||
/**
|
||||
* Disk repository abstraction layer.
|
||||
*/
|
||||
class RepoDisk extends Repo
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Class Constructor.
|
||||
*
|
||||
* @param $path Path of the package repository.
|
||||
*/
|
||||
function __construct($path=false, $extension='oum')
|
||||
{
|
||||
// Check the repository can be opened.
|
||||
if (($dh = opendir($path)) === false) {
|
||||
throw new Exception('error opening repository '.$path);
|
||||
}
|
||||
|
||||
closedir($dh);
|
||||
|
||||
parent::__construct($path);
|
||||
|
||||
$this->extension = $extension;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Delete a directory and its contents recursively
|
||||
*/
|
||||
public static function delete_dir($dirname)
|
||||
{
|
||||
if (is_dir($dirname)) {
|
||||
$dir_handle = @opendir($dirname);
|
||||
}
|
||||
|
||||
if (!$dir_handle) {
|
||||
return false;
|
||||
}
|
||||
|
||||
while ($file = readdir($dir_handle)) {
|
||||
if ($file != '.' && $file != '..') {
|
||||
if (!is_dir($dirname.'/'.$file)) {
|
||||
@unlink($dirname.'/'.$file);
|
||||
} else {
|
||||
self::delete_dir($dirname.'/'.$file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
closedir($dir_handle);
|
||||
@rmdir($dirname);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Load repository files.
|
||||
*/
|
||||
protected function load()
|
||||
{
|
||||
if ($this->files !== false) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Read files in the repository.
|
||||
if (($dh = opendir($this->path)) === false) {
|
||||
throw new Exception('error opening repository');
|
||||
}
|
||||
|
||||
$this->files = [];
|
||||
while ($file_name = readdir($dh)) {
|
||||
// Files must contain a version number.
|
||||
if (preg_match('/(\d+)\_x86_64.'.$this->extension.'$/', $file_name, $utimestamp) === 1
|
||||
|| preg_match('/(\d+)\.'.$this->extension.'$/', $file_name, $utimestamp) === 1
|
||||
) {
|
||||
// Add the file to the repository.
|
||||
$this->files[$utimestamp[1]] = $file_name;
|
||||
}
|
||||
}
|
||||
|
||||
closedir($dh);
|
||||
|
||||
// Sort them according to the package UNIX timestamp.
|
||||
krsort($this->files);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Reload repository files.
|
||||
*/
|
||||
public function reload()
|
||||
{
|
||||
$this->files = false;
|
||||
$this->load();
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,138 @@
|
|||
<?php
|
||||
// phpcs:disable Squiz.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||
namespace UpdateManager;
|
||||
|
||||
require_once __DIR__.'/RepoDisk.php';
|
||||
|
||||
|
||||
/**
|
||||
* Class to implement distributed updates.
|
||||
*/
|
||||
class RepoMC extends \RepoDisk
|
||||
{
|
||||
|
||||
/**
|
||||
* Base server name.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $FNAME = 'pandorafms_server_enterprise-7.0NG.%s_x86_64.tar.gz';
|
||||
|
||||
|
||||
/**
|
||||
* Class Constructor.
|
||||
*
|
||||
* @param string|null $path Path of the package repository.
|
||||
* @param string $extension Files to include.
|
||||
*
|
||||
* @throws \Exception On error.
|
||||
*/
|
||||
public function __construct(?string $path=null, string $extension='oum')
|
||||
{
|
||||
parent::__construct($path, $extension);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the server package that corresponds to a given version.
|
||||
*
|
||||
* @param float $version Version string.
|
||||
* @param boolean $dry_run Only check if the package exists.
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function send_server_package($version, bool $dry_run=false)
|
||||
{
|
||||
$package_name = sprintf($this->FNAME, $version);
|
||||
$this->load();
|
||||
|
||||
// Check if the package exists.
|
||||
if ($dry_run === true) {
|
||||
return $this->package_exists($package_name);
|
||||
}
|
||||
|
||||
parent::send_server_package($package_name);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return a list of packages newer than then given package.
|
||||
*
|
||||
* @param integer $current_package Current package number.
|
||||
*
|
||||
* @return array The list of packages as an array.
|
||||
*/
|
||||
public function newer_packages($current_package=0)
|
||||
{
|
||||
$this->load();
|
||||
$new_packages = [];
|
||||
|
||||
foreach ($this->files as $utimestamp => $file_name) {
|
||||
if ($utimestamp <= $current_package) {
|
||||
break;
|
||||
}
|
||||
|
||||
$new_packages[] = [
|
||||
'file_name' => $file_name,
|
||||
'version' => $utimestamp,
|
||||
'description' => 'Update available from the Metaconsole.',
|
||||
];
|
||||
}
|
||||
|
||||
// Return newer packages in ascending order so that the client
|
||||
// can update sequentially!
|
||||
return array_reverse($new_packages);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Retrieve OUM signature.
|
||||
*
|
||||
* @param integer $package_name Console package name.
|
||||
*
|
||||
* @return string Signature codified in base64.
|
||||
*/
|
||||
public function send_package_signature($package_name)
|
||||
{
|
||||
$signature_file = $this->path.'/'.$package_name.SIGNATURE_EXTENSION;
|
||||
$this->load();
|
||||
|
||||
if ($this->package_exists($package_name) === true
|
||||
&& file_exists($signature_file) === true
|
||||
) {
|
||||
$signature = file_get_contents($signature_file);
|
||||
return $signature;
|
||||
}
|
||||
|
||||
return '';
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Retrieve server package signature.
|
||||
*
|
||||
* @param integer $version Server package version.
|
||||
*
|
||||
* @return string Signature codified in base64.
|
||||
*/
|
||||
public function send_server_package_signature($version)
|
||||
{
|
||||
$package_name = sprintf($this->FNAME, $version);
|
||||
$signature_file = $this->path.'/'.$package_name.SIGNATURE_EXTENSION;
|
||||
$this->load();
|
||||
|
||||
if ($this->package_exists($package_name) === true
|
||||
&& file_exists($signature_file) === true
|
||||
) {
|
||||
$signature = file_get_contents($signature_file);
|
||||
return $signature;
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,751 @@
|
|||
<?php
|
||||
/**
|
||||
* Update Manager client
|
||||
*
|
||||
* @category Class
|
||||
* @package Update Manager
|
||||
* @subpackage Client UI
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Begin.
|
||||
namespace UpdateManager\UI;
|
||||
|
||||
use UpdateManager\Client;
|
||||
|
||||
/**
|
||||
* Undocumented class
|
||||
*/
|
||||
class Manager
|
||||
{
|
||||
|
||||
const MODE_ONLINE = 0;
|
||||
const MODE_OFFLINE = 1;
|
||||
const MODE_REGISTER = 2;
|
||||
|
||||
/**
|
||||
* Current mode (view).
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
private $mode;
|
||||
|
||||
/**
|
||||
* Update Manager Client.
|
||||
*
|
||||
* @var Client
|
||||
*/
|
||||
private $umc;
|
||||
|
||||
/**
|
||||
* Public url
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $publicUrl;
|
||||
|
||||
/**
|
||||
* Public url for Ajax calls.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $ajaxUrl;
|
||||
|
||||
/**
|
||||
* Ajax page.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $ajaxPage;
|
||||
|
||||
/**
|
||||
* AJAX auth code to avoid direct calls.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $authCode;
|
||||
|
||||
|
||||
/**
|
||||
* Undocumented function
|
||||
*
|
||||
* @param string $public_url Url to access resources, ui_get_full_url.
|
||||
* @param string $ajax_url Ajax url, ui_get_full_url('ajax.php').
|
||||
* @param string|null $page Ajax page (Artica style).
|
||||
* @param array $settings UMC settings.
|
||||
* @param integer|null $mode Update Manager mode (online, offline or
|
||||
* register).
|
||||
*/
|
||||
public function __construct(
|
||||
string $public_url,
|
||||
string $ajax_url,
|
||||
?string $page,
|
||||
array $settings,
|
||||
?int $mode=null
|
||||
) {
|
||||
$this->mode = 0;
|
||||
$this->publicUrl = '/';
|
||||
$this->ajaxUrl = '/';
|
||||
$this->mode = self::MODE_ONLINE;
|
||||
|
||||
if (empty($public_url) === false) {
|
||||
$this->publicUrl = $public_url;
|
||||
}
|
||||
|
||||
if (empty($ajax_url) === false) {
|
||||
$this->ajaxUrl = $ajax_url;
|
||||
}
|
||||
|
||||
if (empty($page) === false) {
|
||||
$this->ajaxPage = $page;
|
||||
}
|
||||
|
||||
if (empty($mode) === false) {
|
||||
$this->mode = $mode;
|
||||
}
|
||||
|
||||
if (session_status() !== PHP_SESSION_ACTIVE) {
|
||||
session_start();
|
||||
}
|
||||
|
||||
if (isset($_SESSION['cors-auth-code']) === true) {
|
||||
$this->authCode = $_SESSION['cors-auth-code'];
|
||||
}
|
||||
|
||||
if (empty($this->authCode) === true) {
|
||||
$this->authCode = hash('sha256', session_id().time().rand());
|
||||
$_SESSION['cors-auth-code'] = $this->authCode;
|
||||
}
|
||||
|
||||
if (session_status() === PHP_SESSION_ACTIVE) {
|
||||
session_write_close();
|
||||
}
|
||||
|
||||
if ($mode === self::MODE_OFFLINE) {
|
||||
$settings['offline'] = true;
|
||||
}
|
||||
|
||||
$this->umc = new Client($settings);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Run view.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
if (isset($_REQUEST['data']) === true) {
|
||||
$data = json_decode($_REQUEST['data'], true);
|
||||
if (json_last_error() === JSON_ERROR_NONE) {
|
||||
foreach ($data as $k => $v) {
|
||||
$_REQUEST[$k] = $v;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['ajax']) === true
|
||||
&& (int) $_REQUEST['ajax'] === 1
|
||||
) {
|
||||
$this->ajax();
|
||||
return;
|
||||
}
|
||||
|
||||
switch ($this->mode) {
|
||||
case self::MODE_OFFLINE:
|
||||
$this->offline();
|
||||
break;
|
||||
|
||||
case self::MODE_REGISTER:
|
||||
$this->register();
|
||||
break;
|
||||
|
||||
default:
|
||||
case self::MODE_ONLINE:
|
||||
$this->online();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update Manager Client Online Mode page.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function online()
|
||||
{
|
||||
if ($this->umc->isRegistered() === false) {
|
||||
$this->register();
|
||||
} else {
|
||||
View::render(
|
||||
'online',
|
||||
[
|
||||
'version' => $this->umc->getVersion(),
|
||||
'mr' => $this->umc->getMR(),
|
||||
'error' => $this->umc->getLastError(),
|
||||
'asset' => function ($rp) {
|
||||
echo $this->getUrl($rp);
|
||||
},
|
||||
'authCode' => $this->authCode,
|
||||
'ajax' => $this->ajaxUrl,
|
||||
'ajaxPage' => $this->ajaxPage,
|
||||
'progress' => $this->umc->getUpdateProgress(),
|
||||
'running' => $this->umc->isRunning(),
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update Manager Client Offline Mode page.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function offline()
|
||||
{
|
||||
View::render(
|
||||
'offline',
|
||||
[
|
||||
'version' => $this->umc->getVersion(),
|
||||
'mr' => $this->umc->getMR(),
|
||||
'error' => $this->umc->getLastError(),
|
||||
'asset' => function ($rp) {
|
||||
echo $this->getUrl($rp);
|
||||
},
|
||||
'authCode' => $this->authCode,
|
||||
'ajax' => $this->ajaxUrl,
|
||||
'ajaxPage' => $this->ajaxPage,
|
||||
'progress' => $this->umc->getUpdateProgress(),
|
||||
'running' => $this->umc->isRunning(),
|
||||
'insecure' => $this->umc->isInsecure(),
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update Manager Client Registration page.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
View::render(
|
||||
'register',
|
||||
[
|
||||
'version' => $this->umc->getVersion(),
|
||||
'mr' => $this->umc->getMR(),
|
||||
'error' => $this->umc->getLastError(),
|
||||
'asset' => function ($rp) {
|
||||
echo $this->getUrl($rp);
|
||||
},
|
||||
'authCode' => $this->authCode,
|
||||
'ajax' => $this->ajaxUrl,
|
||||
'ajaxPage' => $this->ajaxPage,
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Retrieve full url to a relative path if given.
|
||||
*
|
||||
* @param string|null $relative_path Relative path to reach publicly.
|
||||
*
|
||||
* @return string Url.
|
||||
*/
|
||||
public function getUrl(?string $relative_path)
|
||||
{
|
||||
return $this->publicUrl.'/'.$relative_path;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return ajax response.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function ajax()
|
||||
{
|
||||
if (function_exists('getallheaders') === true) {
|
||||
$headers = getallheaders();
|
||||
} else {
|
||||
$headers = [];
|
||||
foreach ($_SERVER as $name => $value) {
|
||||
if (substr($name, 0, 5) === 'HTTP_') {
|
||||
$headers[str_replace(
|
||||
' ',
|
||||
'-',
|
||||
ucwords(
|
||||
strtolower(
|
||||
str_replace(
|
||||
'_',
|
||||
' ',
|
||||
substr($name, 5)
|
||||
)
|
||||
)
|
||||
)
|
||||
)] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->authCode !== $_REQUEST['cors']) {
|
||||
header('HTTP/1.1 401 Unauthorized');
|
||||
exit;
|
||||
}
|
||||
|
||||
try {
|
||||
// Execute target action.
|
||||
switch ($_REQUEST['action']) {
|
||||
case 'nextUpdate':
|
||||
$result = $this->umc->updateNextVersion();
|
||||
if ($result !== true) {
|
||||
$error = $this->umc->getLastError();
|
||||
}
|
||||
|
||||
$return = [
|
||||
'version' => $this->umc->getVersion(),
|
||||
'mr' => $this->umc->getMR(),
|
||||
'messages' => $this->umc->getLastError(),
|
||||
];
|
||||
break;
|
||||
|
||||
case 'latestUpdate':
|
||||
$result = $this->umc->updateLastVersion();
|
||||
if ($result !== true) {
|
||||
$error = $this->umc->getLastError();
|
||||
}
|
||||
|
||||
$return = [
|
||||
'version' => $this->umc->getVersion(),
|
||||
'mr' => $this->umc->getMR(),
|
||||
'messages' => $this->umc->getLastError(),
|
||||
];
|
||||
break;
|
||||
|
||||
case 'status':
|
||||
$return = $this->umc->getUpdateProgress();
|
||||
break;
|
||||
|
||||
case 'getUpdates':
|
||||
$return = $this->getUpdatesList();
|
||||
break;
|
||||
|
||||
case 'uploadOUM':
|
||||
$return = $this->processOUMUpload();
|
||||
break;
|
||||
|
||||
case 'validateUploadedOUM':
|
||||
$return = $this->validateUploadedOUM();
|
||||
break;
|
||||
|
||||
case 'installUploadedOUM':
|
||||
$return = $this->installOUMUpdate();
|
||||
break;
|
||||
|
||||
case 'register':
|
||||
$return = $this->registerConsole();
|
||||
break;
|
||||
|
||||
case 'unregister':
|
||||
$return = $this->unRegisterConsole();
|
||||
break;
|
||||
|
||||
default:
|
||||
$error = 'Unknown action '.$_REQUEST['action'];
|
||||
header('HTTP/1.1 501 Unknown action');
|
||||
break;
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
$error = 'Error '.$e->getMessage();
|
||||
$error .= ' in '.$e->getFile().':'.$e->getLine();
|
||||
header('HTTP/1.1 500 '.$error);
|
||||
}
|
||||
|
||||
// Response.
|
||||
if (empty($error) === false) {
|
||||
if ($headers['Accept'] === 'application/json') {
|
||||
echo json_encode(
|
||||
['error' => $error]
|
||||
);
|
||||
} else {
|
||||
echo $error;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ($headers['Accept'] === 'application/json') {
|
||||
echo json_encode(
|
||||
['result' => $return]
|
||||
);
|
||||
} else {
|
||||
echo $return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Prints a pretty list of updates.
|
||||
*
|
||||
* @return string HTML code.
|
||||
*/
|
||||
private function getUpdatesList()
|
||||
{
|
||||
$updates = $this->umc->listUpdates();
|
||||
if (empty($updates) === true) {
|
||||
if ($updates === null) {
|
||||
header('HTTP/1.1 403 '.$this->umc->getLastError());
|
||||
return $this->umc->getLastError();
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
if (count($updates) > 0) {
|
||||
$next = $updates[0];
|
||||
$return = '<p><b>'.\__('Next update').':</b><span id="next-version">';
|
||||
$return .= $next['version'].'</span>';
|
||||
$return .= ' - <a id="um-package-details-next" ';
|
||||
$return .= ' class="um-package-details" ';
|
||||
$return .= 'href="javascript: umShowUpdateDetails(\''.$next['version'].'\');">';
|
||||
$return .= \__('Show details').'</a></p>';
|
||||
|
||||
$updates = array_reduce(
|
||||
$updates,
|
||||
function ($carry, $item) {
|
||||
$carry[$item['version']] = $item;
|
||||
return $carry;
|
||||
},
|
||||
[]
|
||||
);
|
||||
|
||||
// This var stores all update descriptions retrieved from UMS.
|
||||
$return .= '<script type="text/javascript">';
|
||||
$return .= 'var nextUpdateVersion = "'.$next['version'].'";';
|
||||
$return .= 'var lastUpdateVersion = "';
|
||||
$return .= end($updates)['version'].'";';
|
||||
$return .= 'var updates = '.json_encode($updates).';';
|
||||
$return .= '</script>';
|
||||
$return .= '</div>';
|
||||
|
||||
array_shift($updates);
|
||||
|
||||
if (count($updates) > 0) {
|
||||
$return .= '<a href="#" onclick="umToggleUpdateList();">';
|
||||
$return .= \__(
|
||||
'%s update(s) available more',
|
||||
'<span id="updates_left">'.count($updates).'</span>'
|
||||
);
|
||||
$return .= '</a>';
|
||||
$return .= '<div id="update-list">';
|
||||
foreach ($updates as $update) {
|
||||
$return .= '<div class="update">';
|
||||
$return .= '<div class="version">';
|
||||
$return .= $update['version'];
|
||||
$return .= '</div>';
|
||||
$return .= '<a class="um-package-details" ';
|
||||
$return .= 'href="javascript: umShowUpdateDetails(\''.$update['version'].'\');">';
|
||||
$return .= \__('details').'</a></p>';
|
||||
$return .= '</div>';
|
||||
}
|
||||
|
||||
$return .= '</div>';
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Validates OUM uploaded by user.
|
||||
*
|
||||
* @return string JSON response.
|
||||
*/
|
||||
private function processOUMUpload()
|
||||
{
|
||||
$return = [];
|
||||
|
||||
if (isset($_FILES['upfile']) === true
|
||||
&& $_FILES['upfile']['error'] === 0
|
||||
) {
|
||||
$file_data = pathinfo($_FILES['upfile']['name']);
|
||||
$server_update = false;
|
||||
|
||||
$extension = $file_data['extension'];
|
||||
$version = $file_data['filename'];
|
||||
|
||||
if (preg_match('/pandorafms_server/', $file_data['filename']) > 0) {
|
||||
$tgz = pathinfo($file_data['filename']);
|
||||
if ($tgz !== null) {
|
||||
$extension = $tgz['extension'].'.'.$extension;
|
||||
$server_update = true;
|
||||
$matches = [];
|
||||
if (preg_match(
|
||||
'/pandorafms_server(.*?)-.*NG\.(\d+\.{0,1}\d*?)_.*/',
|
||||
$tgz['filename'],
|
||||
$matches
|
||||
) > 0
|
||||
) {
|
||||
$version = $matches[2];
|
||||
if (empty($matches[1]) === true) {
|
||||
$version .= ' OpenSource';
|
||||
} else {
|
||||
$version .= ' Enterprise';
|
||||
}
|
||||
} else {
|
||||
$version = $tgz['filename'];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (preg_match(
|
||||
'/package_(\d+\.{0,1}\d*)/',
|
||||
$file_data['filename'],
|
||||
$matches
|
||||
) > 0
|
||||
) {
|
||||
$version = $matches[1];
|
||||
} else {
|
||||
$version = $file_data['filename'];
|
||||
}
|
||||
}
|
||||
|
||||
// The package extension should be .oum.
|
||||
if (strtolower($extension) === 'oum'
|
||||
|| strtolower($extension) === 'tar.gz'
|
||||
) {
|
||||
$path = $_FILES['upfile']['tmp_name'];
|
||||
|
||||
// The package files will be saved in [user temp dir]/pandora_oum/package_name.
|
||||
if (is_dir(sys_get_temp_dir().'/pandora_oum/') !== true) {
|
||||
mkdir(sys_get_temp_dir().'/pandora_oum/');
|
||||
}
|
||||
|
||||
if (is_dir(sys_get_temp_dir().'/pandora_oum/') !== true) {
|
||||
$return['status'] = 'error';
|
||||
$return['message'] = __('Failed creating temporary directory.');
|
||||
return json_encode($return);
|
||||
}
|
||||
|
||||
$file_path = sys_get_temp_dir();
|
||||
$file_path .= '/pandora_oum/'.$_FILES['upfile']['name'];
|
||||
move_uploaded_file($_FILES['upfile']['tmp_name'], $file_path);
|
||||
|
||||
if (is_file($file_path) === false) {
|
||||
$return['status'] = 'error';
|
||||
$return['message'] = __('Failed storing uploaded file.');
|
||||
return json_encode($return);
|
||||
}
|
||||
|
||||
$return['status'] = 'success';
|
||||
$return['packageId'] = hash('sha256', $file_path);
|
||||
$return['version'] = $version;
|
||||
$return['server_update'] = $server_update;
|
||||
|
||||
if ($server_update === false) {
|
||||
$return['files'] = Client::checkOUMContent($file_path);
|
||||
} else {
|
||||
$return['files'] = Client::checkTGZContent($file_path);
|
||||
}
|
||||
|
||||
if (session_status() !== PHP_SESSION_ACTIVE) {
|
||||
session_start();
|
||||
}
|
||||
|
||||
$_SESSION['umc-uploaded-file-id'] = $return['packageId'];
|
||||
$_SESSION['umc-uploaded-file-version'] = $version;
|
||||
$_SESSION['umc-uploaded-file-path'] = $file_path;
|
||||
$_SESSION['umc-uploaded-type-server'] = $server_update;
|
||||
|
||||
if (session_status() === PHP_SESSION_ACTIVE) {
|
||||
session_write_close();
|
||||
}
|
||||
|
||||
return json_encode($return);
|
||||
} else {
|
||||
$return['status'] = 'error';
|
||||
$return['message'] = __(
|
||||
'Invalid extension. The package needs to be in `%s` or `%s` format.',
|
||||
'.oum',
|
||||
'.tar.gz'
|
||||
);
|
||||
return json_encode($return);
|
||||
}
|
||||
}
|
||||
|
||||
$return['status'] = 'error';
|
||||
$return['message'] = __('Failed uploading file.');
|
||||
|
||||
return json_encode($return);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Verifies uploaded file signature against given one.
|
||||
*
|
||||
* @return string JSON result.
|
||||
*/
|
||||
private function validateUploadedOUM()
|
||||
{
|
||||
if (session_status() !== PHP_SESSION_ACTIVE) {
|
||||
session_start();
|
||||
}
|
||||
|
||||
$file_path = $_SESSION['umc-uploaded-file-path'];
|
||||
$packageId = $_SESSION['umc-uploaded-file-id'];
|
||||
$signature = $_REQUEST['signature'];
|
||||
$version = $_SESSION['umc-uploaded-file-version'];
|
||||
$server_update = $_SESSION['umc-uploaded-type-server'];
|
||||
|
||||
if ($packageId !== $_REQUEST['packageId']) {
|
||||
header('HTTP/1.1 401 Unauthorized');
|
||||
exit;
|
||||
}
|
||||
|
||||
$valid = $this->umc->validateSignature(
|
||||
$file_path,
|
||||
$signature
|
||||
);
|
||||
|
||||
if ($valid !== true) {
|
||||
$return['status'] = 'error';
|
||||
$return['message'] = __('Signatures does not match.');
|
||||
} else {
|
||||
$return['status'] = 'success';
|
||||
if ($this->umc->isPropagatingUpdates() === true) {
|
||||
$this->umc->saveSignature($signature, $file_path);
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Process installation of manually uploaded file.
|
||||
*
|
||||
* @return string JSON response.
|
||||
*/
|
||||
private function installOUMUpdate()
|
||||
{
|
||||
if (session_status() !== PHP_SESSION_ACTIVE) {
|
||||
session_start();
|
||||
}
|
||||
|
||||
$file_path = $_SESSION['umc-uploaded-file-path'];
|
||||
$packageId = $_SESSION['umc-uploaded-file-id'];
|
||||
$version = $_SESSION['umc-uploaded-file-version'];
|
||||
$server_update = $_SESSION['umc-uploaded-type-server'];
|
||||
|
||||
if ($packageId !== $_REQUEST['packageId']) {
|
||||
header('HTTP/1.1 401 Unauthorized');
|
||||
exit;
|
||||
}
|
||||
|
||||
unset($_SESSION['umc-uploaded-type-server']);
|
||||
unset($_SESSION['umc-uploaded-file-path']);
|
||||
unset($_SESSION['umc-uploaded-file-version']);
|
||||
|
||||
if (session_status() === PHP_SESSION_ACTIVE) {
|
||||
session_write_close();
|
||||
}
|
||||
|
||||
if ($server_update === true) {
|
||||
// Server update.
|
||||
$result = $this->umc->updateServerPackage(
|
||||
[
|
||||
'version' => $version,
|
||||
'file_path' => $file_path,
|
||||
]
|
||||
);
|
||||
} else {
|
||||
// Console update.
|
||||
$result = $this->umc->updateNextVersion(
|
||||
[
|
||||
'version' => $version,
|
||||
'file_path' => $file_path,
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
$message = \__('Update %s successfully installed.', $version);
|
||||
if ($result !== true) {
|
||||
$message = \__(
|
||||
'Failed while updating: %s',
|
||||
$this->umc->getLastError()
|
||||
);
|
||||
}
|
||||
|
||||
return [
|
||||
'result' => $message,
|
||||
'error' => $this->umc->getLastError(),
|
||||
'version' => $this->umc->getVersion(),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Register console into UMS
|
||||
*
|
||||
* @return array Result.
|
||||
*/
|
||||
private function registerConsole()
|
||||
{
|
||||
$email = $_REQUEST['email'];
|
||||
$rc = $this->umc->getRegistrationCode();
|
||||
if ($rc === null) {
|
||||
// Register.
|
||||
$rc = $this->umc->register($email);
|
||||
}
|
||||
|
||||
return [
|
||||
'result' => $rc,
|
||||
'error' => $this->umc->getLastError(),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Unregister this console from UMS
|
||||
*
|
||||
* @return array Result.
|
||||
*/
|
||||
private function unRegisterConsole()
|
||||
{
|
||||
$this->umc->unRegister();
|
||||
|
||||
return [
|
||||
'result' => true,
|
||||
'error' => $this->umc->getLastError(),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
<?php
|
||||
/**
|
||||
* Loader for views.
|
||||
*
|
||||
* @category Loader
|
||||
* @package Pandora FMS
|
||||
* @subpackage Enterprise
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Begin.
|
||||
namespace UpdateManager\UI;
|
||||
|
||||
/**
|
||||
* View class.
|
||||
*/
|
||||
class View
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Render view.
|
||||
*
|
||||
* @param string $view View to be loaded.
|
||||
* @param array|null $data Array data if necessary for view.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function render(string $view, ?array $data=null)
|
||||
{
|
||||
if (is_array($data) === true) {
|
||||
extract($data);
|
||||
}
|
||||
|
||||
$path = __DIR__.'/../../../views/';
|
||||
$page = $path.$view.'.php';
|
||||
|
||||
if (file_exists($page) === true) {
|
||||
include $page;
|
||||
} else {
|
||||
echo 'view '.$view.' not found';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,133 @@
|
|||
<?php
|
||||
/**
|
||||
* Defines some useful constants.
|
||||
*
|
||||
* @file constants.php
|
||||
* @package UMC distributed updates.
|
||||
* @subpackage constants
|
||||
*/
|
||||
|
||||
/**
|
||||
* Application version.
|
||||
*/
|
||||
defined('VERSION') || define(
|
||||
'VERSION',
|
||||
'4.0'
|
||||
);
|
||||
|
||||
/*
|
||||
* Application build.
|
||||
*/
|
||||
|
||||
defined('BUILD') || define(
|
||||
'BUILD',
|
||||
'20131120'
|
||||
);
|
||||
|
||||
/*
|
||||
* Extension of open packages (without a leading dot).
|
||||
*/
|
||||
|
||||
defined('OPEN_EXTENSION') || define(
|
||||
'OPEN_EXTENSION',
|
||||
'tar.gz'
|
||||
);
|
||||
|
||||
/*
|
||||
* Extension of server packages (without a leading dot).
|
||||
*/
|
||||
|
||||
defined('SERVER_EXTENSION') || define(
|
||||
'SERVER_EXTENSION',
|
||||
'tar.gz'
|
||||
);
|
||||
|
||||
/*
|
||||
* Package statuses.
|
||||
*/
|
||||
|
||||
defined('PACKAGE_STATUSES') || define(
|
||||
'PACKAGE_STATUSES',
|
||||
serialize([ 0 => 'disabled', 1 => 'testing', 2 => 'published'])
|
||||
);
|
||||
|
||||
/*
|
||||
* License modes.
|
||||
*/
|
||||
|
||||
defined('LICENSE_MODES') || define(
|
||||
'LICENSE_MODES',
|
||||
serialize([ 0 => 'trial', 1 => 'client'])
|
||||
);
|
||||
|
||||
/*
|
||||
* Limit modes.
|
||||
*/
|
||||
|
||||
defined('LIMIT_MODES') || define(
|
||||
'LIMIT_MODES',
|
||||
serialize([ 0 => 'agents', 1 => 'modules'])
|
||||
);
|
||||
|
||||
/*
|
||||
* License types. Offline licenses must be 3, not 2!
|
||||
*/
|
||||
|
||||
defined('LICENSE_TYPES') || define(
|
||||
'LICENSE_TYPES',
|
||||
serialize([ 0 => 'console', 1 => 'metaconsole', 3 => 'offline'])
|
||||
);
|
||||
|
||||
/*
|
||||
* Extension of digital signatures.
|
||||
*/
|
||||
|
||||
defined('SIGNATURE_EXTENSION') || define(
|
||||
'SIGNATURE_EXTENSION',
|
||||
'.sig'
|
||||
);
|
||||
|
||||
/*
|
||||
* Public key used to verify signatures.
|
||||
*/
|
||||
|
||||
defined('PUB_KEY') || define(
|
||||
'PUB_KEY',
|
||||
'-----BEGIN CERTIFICATE-----
|
||||
MIIGbDCCBVSgAwIBAgIRAO+uHm0PBdm1YtvKjFwNqg4wDQYJKoZIhvcNAQELBQAw
|
||||
gY8xCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
|
||||
BgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE3MDUGA1UE
|
||||
AxMuU2VjdGlnbyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD
|
||||
QTAeFw0xOTEwMDEwMDAwMDBaFw0yMTEwMjAyMzU5NTlaMFgxITAfBgNVBAsTGERv
|
||||
bWFpbiBDb250cm9sIFZhbGlkYXRlZDEdMBsGA1UECxMUUG9zaXRpdmVTU0wgV2ls
|
||||
ZGNhcmQxFDASBgNVBAMMCyouYXJ0aWNhLmVzMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
||||
AQ8AMIIBCgKCAQEAvYafsbq6mH/GP9jc1zAHXeuh7kz8WYitCawXx5CYUFvO0ch8
|
||||
H5v8a7aiLJ+pgrgFyZeZ489a+FJW0wddyMGnch+lGU5BbvoH91BMjZV1CLTOexB2
|
||||
liid9aAEasFRBWkwIGMo4fkYFjBwBNofFd8y8vUu9550wZ4QbcshNrhk4E932BuZ
|
||||
P6WWCR0fEoyP0mQRIRMUTAT5WeOYZHkSIJFiQ5JYH5ClVEOogJkO9QTn5t6GT3Py
|
||||
SKhFYqskOOtHODztXdX/qKE+wZ2yssOEie5VvfmcoTAwkwLVZAY8Q7wqjtkaQ9kv
|
||||
weonYXq40KpQ2fksPP0x1FL0rrfsROL/tyv/wwIDAQABo4IC9zCCAvMwHwYDVR0j
|
||||
BBgwFoAUjYxexFStiuF36Zv5mwXhuAGNYeEwHQYDVR0OBBYEFDxO4vgu+Bht6JnH
|
||||
Xv4uwf459n7cMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQW
|
||||
MBQGCCsGAQUFBwMBBggrBgEFBQcDAjBJBgNVHSAEQjBAMDQGCysGAQQBsjEBAgIH
|
||||
MCUwIwYIKwYBBQUHAgEWF2h0dHBzOi8vc2VjdGlnby5jb20vQ1BTMAgGBmeBDAEC
|
||||
ATCBhAYIKwYBBQUHAQEEeDB2ME8GCCsGAQUFBzAChkNodHRwOi8vY3J0LnNlY3Rp
|
||||
Z28uY29tL1NlY3RpZ29SU0FEb21haW5WYWxpZGF0aW9uU2VjdXJlU2VydmVyQ0Eu
|
||||
Y3J0MCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTAhBgNVHREE
|
||||
GjAYggsqLmFydGljYS5lc4IJYXJ0aWNhLmVzMIIBfQYKKwYBBAHWeQIEAgSCAW0E
|
||||
ggFpAWcAdwD2XJQv0XcwIhRUGAgwlFaO400TGTO/3wwvIAvMTvFk4wAAAW2Gc+pN
|
||||
AAAEAwBIMEYCIQDweXVdMk4MVPxu0H7MDSs8g9FFLfjthnFv1GBO9wpOvQIhAKvI
|
||||
fGbNpA2GWSP+L+opz5KnIwoJSL/JD7CMLbboexZsAHUARJRlLrDuzq/EQAfYqP4o
|
||||
wNrmgr7YyzG1P9MzlrW2gagAAAFthnPqagAABAMARjBEAiAWnW/bqGiL7elEQASm
|
||||
YT6V0oQOviCJ4vYi+ekYtyHi1QIgDb3PCSOf9TZXnCx8d48NrD1OvabV9LaOimVF
|
||||
NPfEZQ4AdQBVgdTCFpA2AUrqC5tXPFPwwOQ4eHAlCBcvo6odBxPTDAAAAW2Gc+pK
|
||||
AAAEAwBGMEQCIEoT2BgNg+WrJcqPeNDcBfiWyT8GoJyscj9UxpAXmMJkAiANowLt
|
||||
4mz/mc4uYjRxwZnA/BMZgOVPMLtMwaA0b1C32TANBgkqhkiG9w0BAQsFAAOCAQEA
|
||||
MNwCq90OYGnqoQ4vmX9BPe7e5qoQ7asU82u3XH/nA+lMuD5D4pKHFNFcA/KZbmvc
|
||||
OXcFt0CwbeWOuAbBom8hvFaF8abtkayG27pknQSv4i5YRKF1pEx3hrMgC8c9e32e
|
||||
ebGE1kQoj1TQkf6e0t7Ss/XvdnSITSo5Onio/g/dUv9MFI1bjcf+8gWWDueTOKyt
|
||||
FcVU5xb8g3EtXju01C70KVcN9SgHzSmyBrcBSEvJQ7emnZjyg0xdmlytvSo1Y7jf
|
||||
JWkEbLlOEtYdkgyWy1ZFi/oO5U4UR6X6xgHiJTRZyXvPoS3mk7k+YgAkdOad0vEI
|
||||
5JdvxQyReDoCO3u4FtKHEA==
|
||||
-----END CERTIFICATE-----'
|
||||
);
|
|
@ -0,0 +1,182 @@
|
|||
<?php
|
||||
|
||||
if (function_exists('ui_get_full_url') === false) {
|
||||
|
||||
|
||||
/**
|
||||
* Get public url.
|
||||
*
|
||||
* @param string $url Relative url.
|
||||
*
|
||||
* @return string Dependant url.
|
||||
*/
|
||||
function ui_get_full_url(string $url='')
|
||||
{
|
||||
global $config;
|
||||
if (is_array($config) === true) {
|
||||
if (empty($config['homeurl']) === false) {
|
||||
return $config['homeurl'].'/'.$url;
|
||||
}
|
||||
|
||||
if (empty($config['baseurl']) === false) {
|
||||
return $config['baseurl'].'/'.$url;
|
||||
}
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (function_exists('__') === false) {
|
||||
|
||||
|
||||
/**
|
||||
* Override for translation function if not available.
|
||||
*
|
||||
* @param string|null $str String to be translated.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function __(?string $str)
|
||||
{
|
||||
if ($str !== null) {
|
||||
$ret = $str;
|
||||
try {
|
||||
$args = func_get_args();
|
||||
array_shift($args);
|
||||
$ret = vsprintf($str, $args);
|
||||
} catch (Exception $e) {
|
||||
return $str;
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (function_exists('html_print_image') === false) {
|
||||
|
||||
|
||||
/**
|
||||
* Prints an image HTML element.
|
||||
*
|
||||
* @param string $src Image source filename.
|
||||
* @param boolean $return Whether to return or print.
|
||||
* @param array $options Array with optional HTML options to set.
|
||||
* At this moment, the following options are supported:
|
||||
* align, border, hspace, ismap, vspace, style, title, height,
|
||||
* longdesc, usemap, width, id, class, lang, xml:lang, onclick,
|
||||
* ondblclick, onmousedown, onmouseup, onmouseover, onmousemove,
|
||||
* onmouseout, onkeypress, onkeydown, onkeyup, pos_tree, alt.
|
||||
* @param boolean $return_src Whether to return src field of image
|
||||
* ('images/*.*') or complete html img tag ('<img src="..." alt="...">').
|
||||
* @param boolean $relative Whether to use relative path to image or not
|
||||
* (i.e. $relative= true : /pandora/<img_src>).
|
||||
* @param boolean $no_in_meta Do not show on metaconsole folder at first. Go
|
||||
* directly to the node.
|
||||
* @param boolean $isExternalLink Do not shearch for images in Pandora.
|
||||
*
|
||||
* @return string HTML code if return parameter is true.
|
||||
*/
|
||||
function html_print_image(
|
||||
$src,
|
||||
$return=false,
|
||||
$options=false,
|
||||
$return_src=false,
|
||||
$relative=false,
|
||||
$no_in_meta=false,
|
||||
$isExternalLink=false
|
||||
) {
|
||||
$attr = '';
|
||||
if (is_array($options) === true) {
|
||||
foreach ($options as $k => $v) {
|
||||
$attr = $k.'="'.$v.'" ';
|
||||
}
|
||||
}
|
||||
|
||||
$output = '<img src="'.ui_get_full_url($src).'" '.$attr.'/>';
|
||||
if ($return === false) {
|
||||
echo $output;
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (function_exists('html_print_submit_button') === false) {
|
||||
|
||||
|
||||
/**
|
||||
* Render an submit input button element.
|
||||
*
|
||||
* The element will have an id like: "submit-$name"
|
||||
*
|
||||
* @param string $label Input label.
|
||||
* @param string $name Input name.
|
||||
* @param boolean $disabled Whether to disable by default or not. Enabled by default.
|
||||
* @param array $attributes Additional HTML attributes.
|
||||
* @param boolean $return Whether to return an output string or echo now (optional, echo by default).
|
||||
*
|
||||
* @return string HTML code if return parameter is true.
|
||||
*/
|
||||
function html_print_submit_button(
|
||||
$label='OK',
|
||||
$name='',
|
||||
$disabled=false,
|
||||
$attributes='',
|
||||
$return=false
|
||||
) {
|
||||
if (!$name) {
|
||||
$name = 'unnamed';
|
||||
}
|
||||
|
||||
if (is_array($attributes)) {
|
||||
$attr_array = $attributes;
|
||||
$attributes = '';
|
||||
foreach ($attr_array as $attribute => $value) {
|
||||
$attributes .= $attribute.'="'.$value.'" ';
|
||||
}
|
||||
}
|
||||
|
||||
$output = '<input type="submit" id="submit-'.$name.'" name="'.$name.'" value="'.$label.'" '.$attributes;
|
||||
if ($disabled) {
|
||||
$output .= ' disabled="disabled"';
|
||||
}
|
||||
|
||||
$output .= ' />';
|
||||
if (!$return) {
|
||||
echo $output;
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (function_exists('get_product_name') === false) {
|
||||
|
||||
|
||||
/**
|
||||
* Returns product name.
|
||||
*
|
||||
* @return string PRoduct name.
|
||||
*/
|
||||
function get_product_name()
|
||||
{
|
||||
return 'UMC';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// End.
|
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 284 B |
After Width: | Height: | Size: 733 B |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 432 B |
After Width: | Height: | Size: 260 B |
After Width: | Height: | Size: 251 B |
After Width: | Height: | Size: 180 B |
After Width: | Height: | Size: 178 B |
After Width: | Height: | Size: 178 B |
After Width: | Height: | Size: 104 B |
After Width: | Height: | Size: 125 B |
After Width: | Height: | Size: 120 B |
After Width: | Height: | Size: 105 B |
After Width: | Height: | Size: 111 B |
After Width: | Height: | Size: 110 B |
After Width: | Height: | Size: 119 B |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 90 B |
After Width: | Height: | Size: 101 B |
After Width: | Height: | Size: 129 B |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 266 KiB |
After Width: | Height: | Size: 291 B |
1414
pandora_console/godmode/um_client/resources/javascript/jquery.fileupload.js
vendored
Normal file
|
@ -0,0 +1,207 @@
|
|||
/*
|
||||
* jQuery Iframe Transport Plugin 1.8.0
|
||||
* https://github.com/blueimp/jQuery-File-Upload
|
||||
*
|
||||
* Copyright 2011, Sebastian Tschan
|
||||
* https://blueimp.net
|
||||
*
|
||||
* Licensed under the MIT license:
|
||||
* http://www.opensource.org/licenses/MIT
|
||||
*/
|
||||
|
||||
/*jslint unparam: true, nomen: true */
|
||||
/*global define, window, document */
|
||||
|
||||
(function(factory) {
|
||||
"use strict";
|
||||
if (typeof define === "function" && define.amd) {
|
||||
// Register as an anonymous AMD module:
|
||||
define(["jquery"], factory);
|
||||
} else {
|
||||
// Browser globals:
|
||||
factory(window.jQuery);
|
||||
}
|
||||
})(function($) {
|
||||
"use strict";
|
||||
|
||||
// Helper variable to create unique names for the transport iframes:
|
||||
var counter = 0;
|
||||
|
||||
// The iframe transport accepts four additional options:
|
||||
// options.fileInput: a jQuery collection of file input fields
|
||||
// options.paramName: the parameter name for the file form data,
|
||||
// overrides the name property of the file input field(s),
|
||||
// can be a string or an array of strings.
|
||||
// options.formData: an array of objects with name and value properties,
|
||||
// equivalent to the return data of .serializeArray(), e.g.:
|
||||
// [{name: 'a', value: 1}, {name: 'b', value: 2}]
|
||||
// options.initialIframeSrc: the URL of the initial iframe src,
|
||||
// by default set to "javascript:false;"
|
||||
$.ajaxTransport("iframe", function(options) {
|
||||
if (options.async) {
|
||||
// javascript:false as initial iframe src
|
||||
// prevents warning popups on HTTPS in IE6:
|
||||
var initialIframeSrc = options.initialIframeSrc || "javascript:false;",
|
||||
form,
|
||||
iframe,
|
||||
addParamChar;
|
||||
return {
|
||||
send: function(_, completeCallback) {
|
||||
form = $('<form style="display:none;"></form>');
|
||||
form.attr("accept-charset", options.formAcceptCharset);
|
||||
addParamChar = /\?/.test(options.url) ? "&" : "?";
|
||||
// XDomainRequest only supports GET and POST:
|
||||
if (options.type === "DELETE") {
|
||||
options.url = options.url + addParamChar + "_method=DELETE";
|
||||
options.type = "POST";
|
||||
} else if (options.type === "PUT") {
|
||||
options.url = options.url + addParamChar + "_method=PUT";
|
||||
options.type = "POST";
|
||||
} else if (options.type === "PATCH") {
|
||||
options.url = options.url + addParamChar + "_method=PATCH";
|
||||
options.type = "POST";
|
||||
}
|
||||
// IE versions below IE8 cannot set the name property of
|
||||
// elements that have already been added to the DOM,
|
||||
// so we set the name along with the iframe HTML markup:
|
||||
counter += 1;
|
||||
iframe = $(
|
||||
'<iframe src="' +
|
||||
initialIframeSrc +
|
||||
'" name="iframe-transport-' +
|
||||
counter +
|
||||
'"></iframe>'
|
||||
).bind("load", function() {
|
||||
var fileInputClones,
|
||||
paramNames = $.isArray(options.paramName)
|
||||
? options.paramName
|
||||
: [options.paramName];
|
||||
iframe.unbind("load").bind("load", function() {
|
||||
var response;
|
||||
// Wrap in a try/catch block to catch exceptions thrown
|
||||
// when trying to access cross-domain iframe contents:
|
||||
try {
|
||||
response = iframe.contents();
|
||||
// Google Chrome and Firefox do not throw an
|
||||
// exception when calling iframe.contents() on
|
||||
// cross-domain requests, so we unify the response:
|
||||
if (!response.length || !response[0].firstChild) {
|
||||
throw new Error();
|
||||
}
|
||||
} catch (e) {
|
||||
response = undefined;
|
||||
}
|
||||
// The complete callback returns the
|
||||
// iframe content document as response object:
|
||||
completeCallback(200, "success", { iframe: response });
|
||||
// Fix for IE endless progress bar activity bug
|
||||
// (happens on form submits to iframe targets):
|
||||
$('<iframe src="' + initialIframeSrc + '"></iframe>').appendTo(
|
||||
form
|
||||
);
|
||||
window.setTimeout(function() {
|
||||
// Removing the form in a setTimeout call
|
||||
// allows Chrome's developer tools to display
|
||||
// the response result
|
||||
form.remove();
|
||||
}, 0);
|
||||
});
|
||||
form
|
||||
.prop("target", iframe.prop("name"))
|
||||
.prop("action", options.url)
|
||||
.prop("method", options.type);
|
||||
if (options.formData) {
|
||||
$.each(options.formData, function(index, field) {
|
||||
$('<input type="hidden"/>')
|
||||
.prop("name", field.name)
|
||||
.val(field.value)
|
||||
.appendTo(form);
|
||||
});
|
||||
}
|
||||
if (
|
||||
options.fileInput &&
|
||||
options.fileInput.length &&
|
||||
options.type === "POST"
|
||||
) {
|
||||
fileInputClones = options.fileInput.clone();
|
||||
// Insert a clone for each file input field:
|
||||
options.fileInput.after(function(index) {
|
||||
return fileInputClones[index];
|
||||
});
|
||||
if (options.paramName) {
|
||||
options.fileInput.each(function(index) {
|
||||
$(this).prop("name", paramNames[index] || options.paramName);
|
||||
});
|
||||
}
|
||||
// Appending the file input fields to the hidden form
|
||||
// removes them from their original location:
|
||||
form
|
||||
.append(options.fileInput)
|
||||
.prop("enctype", "multipart/form-data")
|
||||
// enctype must be set as encoding for IE:
|
||||
.prop("encoding", "multipart/form-data");
|
||||
}
|
||||
form.submit();
|
||||
// Insert the file input fields at their original location
|
||||
// by replacing the clones with the originals:
|
||||
if (fileInputClones && fileInputClones.length) {
|
||||
options.fileInput.each(function(index, input) {
|
||||
var clone = $(fileInputClones[index]);
|
||||
$(input).prop("name", clone.prop("name"));
|
||||
clone.replaceWith(input);
|
||||
});
|
||||
}
|
||||
});
|
||||
form.append(iframe).appendTo(document.body);
|
||||
},
|
||||
abort: function() {
|
||||
if (iframe) {
|
||||
// javascript:false as iframe src aborts the request
|
||||
// and prevents warning popups on HTTPS in IE6.
|
||||
// concat is used to avoid the "Script URL" JSLint error:
|
||||
iframe.unbind("load").prop("src", initialIframeSrc);
|
||||
}
|
||||
if (form) {
|
||||
form.remove();
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// The iframe transport returns the iframe content document as response.
|
||||
// The following adds converters from iframe to text, json, html, xml
|
||||
// and script.
|
||||
// Please note that the Content-Type for JSON responses has to be text/plain
|
||||
// or text/html, if the browser doesn't include application/json in the
|
||||
// Accept header, else IE will show a download dialog.
|
||||
// The Content-Type for XML responses on the other hand has to be always
|
||||
// application/xml or text/xml, so IE properly parses the XML response.
|
||||
// See also
|
||||
// https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation
|
||||
$.ajaxSetup({
|
||||
converters: {
|
||||
"iframe text": function(iframe) {
|
||||
return iframe && $(iframe[0].body).text();
|
||||
},
|
||||
"iframe json": function(iframe) {
|
||||
return iframe && $.parseJSON($(iframe[0].body).text());
|
||||
},
|
||||
"iframe html": function(iframe) {
|
||||
return iframe && $(iframe[0].body).html();
|
||||
},
|
||||
"iframe xml": function(iframe) {
|
||||
var xmlDoc = iframe && iframe[0];
|
||||
return xmlDoc && $.isXMLDoc(xmlDoc)
|
||||
? xmlDoc
|
||||
: $.parseXML(
|
||||
(xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||
|
||||
$(xmlDoc.body).html()
|
||||
);
|
||||
},
|
||||
"iframe script": function(iframe) {
|
||||
return iframe && $.globalEval($(iframe[0].body).text());
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
|
@ -0,0 +1,710 @@
|
|||
/*!jQuery Knob*/
|
||||
/**
|
||||
* Downward compatible, touchable dial
|
||||
*
|
||||
* Version: 1.2.0 (15/07/2012)
|
||||
* Requires: jQuery v1.7+
|
||||
*
|
||||
* Copyright (c) 2012 Anthony Terrien
|
||||
* Under MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
* Thanks to vor, eskimoblood, spiffistan, FabrizioC
|
||||
*/
|
||||
(function($) {
|
||||
/**
|
||||
* Kontrol library
|
||||
*/
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Definition of globals and core
|
||||
*/
|
||||
var k = {}, // kontrol
|
||||
max = Math.max,
|
||||
min = Math.min;
|
||||
|
||||
k.c = {};
|
||||
k.c.d = $(document);
|
||||
k.c.t = function(e) {
|
||||
return e.originalEvent.touches.length - 1;
|
||||
};
|
||||
|
||||
/**
|
||||
* Kontrol Object
|
||||
*
|
||||
* Definition of an abstract UI control
|
||||
*
|
||||
* Each concrete component must call this one.
|
||||
* <code>
|
||||
* k.o.call(this);
|
||||
* </code>
|
||||
*/
|
||||
k.o = function() {
|
||||
var s = this;
|
||||
|
||||
this.o = null; // array of options
|
||||
this.$ = null; // jQuery wrapped element
|
||||
this.i = null; // mixed HTMLInputElement or array of HTMLInputElement
|
||||
this.g = null; // deprecated 2D graphics context for 'pre-rendering'
|
||||
this.v = null; // value ; mixed array or integer
|
||||
this.cv = null; // change value ; not commited value
|
||||
this.x = 0; // canvas x position
|
||||
this.y = 0; // canvas y position
|
||||
this.w = 0; // canvas width
|
||||
this.h = 0; // canvas height
|
||||
this.$c = null; // jQuery canvas element
|
||||
this.c = null; // rendered canvas context
|
||||
this.t = 0; // touches index
|
||||
this.isInit = false;
|
||||
this.fgColor = null; // main color
|
||||
this.pColor = null; // previous color
|
||||
this.dH = null; // draw hook
|
||||
this.cH = null; // change hook
|
||||
this.eH = null; // cancel hook
|
||||
this.rH = null; // release hook
|
||||
this.scale = 1; // scale factor
|
||||
this.relative = false;
|
||||
this.relativeWidth = false;
|
||||
this.relativeHeight = false;
|
||||
this.$div = null; // component div
|
||||
|
||||
this.run = function() {
|
||||
var cf = function(e, conf) {
|
||||
var k;
|
||||
for (k in conf) {
|
||||
s.o[k] = conf[k];
|
||||
}
|
||||
s.init();
|
||||
s._configure()._draw();
|
||||
};
|
||||
|
||||
if (this.$.data("kontroled")) return;
|
||||
this.$.data("kontroled", true);
|
||||
|
||||
this.extend();
|
||||
this.o = $.extend(
|
||||
{
|
||||
// Config
|
||||
min: this.$.data("min") || 0,
|
||||
max: this.$.data("max") || 100,
|
||||
stopper: true,
|
||||
readOnly:
|
||||
this.$.data("readonly") || this.$.attr("readonly") == "readonly",
|
||||
|
||||
// UI
|
||||
cursor:
|
||||
(this.$.data("cursor") === true && 30) ||
|
||||
this.$.data("cursor") ||
|
||||
0,
|
||||
thickness:
|
||||
(this.$.data("thickness") &&
|
||||
Math.max(Math.min(this.$.data("thickness"), 1), 0.01)) ||
|
||||
0.35,
|
||||
lineCap: this.$.data("linecap") || "butt",
|
||||
width: this.$.data("width") || 200,
|
||||
height: this.$.data("height") || 200,
|
||||
displayInput:
|
||||
this.$.data("displayinput") == null || this.$.data("displayinput"),
|
||||
displayPrevious: this.$.data("displayprevious"),
|
||||
fgColor: this.$.data("fgcolor") || "#87CEEB",
|
||||
inputColor: this.$.data("inputcolor"),
|
||||
font: this.$.data("font") || "Arial",
|
||||
fontWeight: this.$.data("font-weight") || "bold",
|
||||
inline: false,
|
||||
step: this.$.data("step") || 1,
|
||||
|
||||
// Hooks
|
||||
draw: null, // function () {}
|
||||
change: null, // function (value) {}
|
||||
cancel: null, // function () {}
|
||||
release: null, // function (value) {}
|
||||
error: null // function () {}
|
||||
},
|
||||
this.o
|
||||
);
|
||||
|
||||
// finalize options
|
||||
if (!this.o.inputColor) {
|
||||
this.o.inputColor = this.o.fgColor;
|
||||
}
|
||||
|
||||
// routing value
|
||||
if (this.$.is("fieldset")) {
|
||||
// fieldset = array of integer
|
||||
this.v = {};
|
||||
this.i = this.$.find("input");
|
||||
this.i.each(function(k) {
|
||||
var $this = $(this);
|
||||
s.i[k] = $this;
|
||||
s.v[k] = $this.val();
|
||||
|
||||
$this.bind("change", function() {
|
||||
var val = {};
|
||||
val[k] = $this.val();
|
||||
s.val(val);
|
||||
});
|
||||
});
|
||||
this.$.find("legend").remove();
|
||||
} else {
|
||||
// input = integer
|
||||
this.i = this.$;
|
||||
this.v = this.$.val();
|
||||
this.v == "" && (this.v = this.o.min);
|
||||
|
||||
this.$.bind("change", function() {
|
||||
s.val(s._validate(s.$.val()));
|
||||
});
|
||||
}
|
||||
|
||||
!this.o.displayInput && this.$.hide();
|
||||
|
||||
// adds needed DOM elements (canvas, div)
|
||||
this.$c = $(document.createElement("canvas"));
|
||||
if (typeof G_vmlCanvasManager !== "undefined") {
|
||||
G_vmlCanvasManager.initElement(this.$c[0]);
|
||||
}
|
||||
this.c = this.$c[0].getContext ? this.$c[0].getContext("2d") : null;
|
||||
if (!this.c) {
|
||||
this.o.error && this.o.error();
|
||||
return;
|
||||
}
|
||||
|
||||
// hdpi support
|
||||
this.scale =
|
||||
(window.devicePixelRatio || 1) /
|
||||
(this.c.webkitBackingStorePixelRatio ||
|
||||
this.c.mozBackingStorePixelRatio ||
|
||||
this.c.msBackingStorePixelRatio ||
|
||||
this.c.oBackingStorePixelRatio ||
|
||||
this.c.backingStorePixelRatio ||
|
||||
1);
|
||||
|
||||
// detects relative width / height
|
||||
this.relativeWidth = this.o.width % 1 !== 0 && this.o.width.indexOf("%");
|
||||
this.relativeHeight =
|
||||
this.o.height % 1 !== 0 && this.o.height.indexOf("%");
|
||||
|
||||
this.relative = this.relativeWidth || this.relativeHeight;
|
||||
|
||||
// wraps all elements in a div
|
||||
this.$div = $(
|
||||
'<div style="' + (this.o.inline ? "display:inline;" : "") + '"></div>'
|
||||
);
|
||||
|
||||
this.$.wrap(this.$div).before(this.$c);
|
||||
this.$div = this.$.parent();
|
||||
|
||||
// computes size and carves the component
|
||||
this._carve();
|
||||
|
||||
// prepares props for transaction
|
||||
if (this.v instanceof Object) {
|
||||
this.cv = {};
|
||||
this.copy(this.v, this.cv);
|
||||
} else {
|
||||
this.cv = this.v;
|
||||
}
|
||||
|
||||
// binds configure event
|
||||
this.$.bind("configure", cf)
|
||||
.parent()
|
||||
.bind("configure", cf);
|
||||
|
||||
// finalize init
|
||||
this._listen()
|
||||
._configure()
|
||||
._xy()
|
||||
.init();
|
||||
|
||||
this.isInit = true;
|
||||
|
||||
// the most important !
|
||||
this._draw();
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
this._carve = function() {
|
||||
if (this.relative) {
|
||||
var w = this.relativeWidth
|
||||
? (this.$div.parent().width() * parseInt(this.o.width)) / 100
|
||||
: this.$div.parent().width(),
|
||||
h = this.relativeHeight
|
||||
? (this.$div.parent().height() * parseInt(this.o.height)) / 100
|
||||
: this.$div.parent().height();
|
||||
|
||||
// apply relative
|
||||
this.w = this.h = Math.min(w, h);
|
||||
} else {
|
||||
this.w = this.o.width;
|
||||
this.h = this.o.height;
|
||||
}
|
||||
|
||||
// finalize div
|
||||
this.$div.css({
|
||||
width: this.w + "px",
|
||||
height: this.h + "px"
|
||||
});
|
||||
|
||||
// finalize canvas with computed width
|
||||
this.$c.attr({
|
||||
width: this.w,
|
||||
height: this.h
|
||||
});
|
||||
|
||||
// scaling
|
||||
if (this.scale !== 1) {
|
||||
this.$c[0].width = this.$c[0].width * this.scale;
|
||||
this.$c[0].height = this.$c[0].height * this.scale;
|
||||
this.$c.width(this.w);
|
||||
this.$c.height(this.h);
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
this._draw = function() {
|
||||
// canvas pre-rendering
|
||||
var d = true;
|
||||
|
||||
s.g = s.c;
|
||||
|
||||
s.clear();
|
||||
|
||||
s.dH && (d = s.dH());
|
||||
|
||||
d !== false && s.draw();
|
||||
};
|
||||
|
||||
this._touch = function(e) {
|
||||
var touchMove = function(e) {
|
||||
var v = s.xy2val(
|
||||
e.originalEvent.touches[s.t].pageX,
|
||||
e.originalEvent.touches[s.t].pageY
|
||||
);
|
||||
|
||||
if (v == s.cv) return;
|
||||
|
||||
if (s.cH && s.cH(v) === false) return;
|
||||
|
||||
s.change(s._validate(v));
|
||||
s._draw();
|
||||
};
|
||||
|
||||
// get touches index
|
||||
this.t = k.c.t(e);
|
||||
|
||||
// First touch
|
||||
touchMove(e);
|
||||
|
||||
// Touch events listeners
|
||||
k.c.d.bind("touchmove.k", touchMove).bind("touchend.k", function() {
|
||||
k.c.d.unbind("touchmove.k touchend.k");
|
||||
|
||||
if (s.rH && s.rH(s.cv) === false) return;
|
||||
|
||||
s.val(s.cv);
|
||||
});
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
this._mouse = function(e) {
|
||||
var mouseMove = function(e) {
|
||||
var v = s.xy2val(e.pageX, e.pageY);
|
||||
if (v == s.cv) return;
|
||||
|
||||
if (s.cH && s.cH(v) === false) return;
|
||||
|
||||
s.change(s._validate(v));
|
||||
s._draw();
|
||||
};
|
||||
|
||||
// First click
|
||||
mouseMove(e);
|
||||
|
||||
// Mouse events listeners
|
||||
k.c.d
|
||||
.bind("mousemove.k", mouseMove)
|
||||
.bind(
|
||||
// Escape key cancel current change
|
||||
"keyup.k",
|
||||
function(e) {
|
||||
if (e.keyCode === 27) {
|
||||
k.c.d.unbind("mouseup.k mousemove.k keyup.k");
|
||||
|
||||
if (s.eH && s.eH() === false) return;
|
||||
|
||||
s.cancel();
|
||||
}
|
||||
}
|
||||
)
|
||||
.bind("mouseup.k", function(e) {
|
||||
k.c.d.unbind("mousemove.k mouseup.k keyup.k");
|
||||
|
||||
if (s.rH && s.rH(s.cv) === false) return;
|
||||
|
||||
s.val(s.cv);
|
||||
});
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
this._xy = function() {
|
||||
var o = this.$c.offset();
|
||||
this.x = o.left;
|
||||
this.y = o.top;
|
||||
return this;
|
||||
};
|
||||
|
||||
this._listen = function() {
|
||||
if (!this.o.readOnly) {
|
||||
this.$c
|
||||
.bind("mousedown", function(e) {
|
||||
e.preventDefault();
|
||||
s._xy()._mouse(e);
|
||||
})
|
||||
.bind("touchstart", function(e) {
|
||||
e.preventDefault();
|
||||
s._xy()._touch(e);
|
||||
});
|
||||
|
||||
if (this.relative) {
|
||||
$(window).resize(function() {
|
||||
s._carve().init();
|
||||
s._draw();
|
||||
});
|
||||
}
|
||||
|
||||
this.listen();
|
||||
} else {
|
||||
this.$.attr("readonly", "readonly");
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
this._configure = function() {
|
||||
// Hooks
|
||||
if (this.o.draw) this.dH = this.o.draw;
|
||||
if (this.o.change) this.cH = this.o.change;
|
||||
if (this.o.cancel) this.eH = this.o.cancel;
|
||||
if (this.o.release) this.rH = this.o.release;
|
||||
|
||||
if (this.o.displayPrevious) {
|
||||
this.pColor = this.h2rgba(this.o.fgColor, "0.4");
|
||||
this.fgColor = this.h2rgba(this.o.fgColor, "0.6");
|
||||
} else {
|
||||
this.fgColor = this.o.fgColor;
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
this._clear = function() {
|
||||
this.$c[0].width = this.$c[0].width;
|
||||
};
|
||||
|
||||
this._validate = function(v) {
|
||||
return ~~((v < 0 ? -0.5 : 0.5) + v / this.o.step) * this.o.step;
|
||||
};
|
||||
|
||||
// Abstract methods
|
||||
this.listen = function() {}; // on start, one time
|
||||
this.extend = function() {}; // each time configure triggered
|
||||
this.init = function() {}; // each time configure triggered
|
||||
this.change = function(v) {}; // on change
|
||||
this.val = function(v) {}; // on release
|
||||
this.xy2val = function(x, y) {}; //
|
||||
this.draw = function() {}; // on change / on release
|
||||
this.clear = function() {
|
||||
this._clear();
|
||||
};
|
||||
|
||||
// Utils
|
||||
this.h2rgba = function(h, a) {
|
||||
var rgb;
|
||||
h = h.substring(1, 7);
|
||||
rgb = [
|
||||
parseInt(h.substring(0, 2), 16),
|
||||
parseInt(h.substring(2, 4), 16),
|
||||
parseInt(h.substring(4, 6), 16)
|
||||
];
|
||||
return "rgba(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + "," + a + ")";
|
||||
};
|
||||
|
||||
this.copy = function(f, t) {
|
||||
for (var i in f) {
|
||||
t[i] = f[i];
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* k.Dial
|
||||
*/
|
||||
k.Dial = function() {
|
||||
k.o.call(this);
|
||||
|
||||
this.startAngle = null;
|
||||
this.xy = null;
|
||||
this.radius = null;
|
||||
this.lineWidth = null;
|
||||
this.cursorExt = null;
|
||||
this.w2 = null;
|
||||
this.PI2 = 2 * Math.PI;
|
||||
|
||||
this.extend = function() {
|
||||
this.o = $.extend(
|
||||
{
|
||||
bgColor: this.$.data("bgcolor") || "#EEEEEE",
|
||||
angleOffset: this.$.data("angleoffset") || 0,
|
||||
angleArc: this.$.data("anglearc") || 360,
|
||||
inline: true
|
||||
},
|
||||
this.o
|
||||
);
|
||||
};
|
||||
|
||||
this.val = function(v) {
|
||||
if (null != v) {
|
||||
this.cv = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v;
|
||||
this.v = this.cv;
|
||||
this.$.val(this.v);
|
||||
this._draw();
|
||||
} else {
|
||||
return this.v;
|
||||
}
|
||||
};
|
||||
|
||||
this.xy2val = function(x, y) {
|
||||
var a, ret;
|
||||
|
||||
a =
|
||||
Math.atan2(x - (this.x + this.w2), -(y - this.y - this.w2)) -
|
||||
this.angleOffset;
|
||||
|
||||
if (this.angleArc != this.PI2 && a < 0 && a > -0.5) {
|
||||
// if isset angleArc option, set to min if .5 under min
|
||||
a = 0;
|
||||
} else if (a < 0) {
|
||||
a += this.PI2;
|
||||
}
|
||||
|
||||
ret =
|
||||
~~(0.5 + (a * (this.o.max - this.o.min)) / this.angleArc) + this.o.min;
|
||||
|
||||
this.o.stopper && (ret = max(min(ret, this.o.max), this.o.min));
|
||||
|
||||
return ret;
|
||||
};
|
||||
|
||||
this.listen = function() {
|
||||
// bind MouseWheel
|
||||
var s = this,
|
||||
mw = function(e) {
|
||||
e.preventDefault();
|
||||
var ori = e.originalEvent,
|
||||
deltaX = ori.detail || ori.wheelDeltaX,
|
||||
deltaY = ori.detail || ori.wheelDeltaY,
|
||||
v =
|
||||
parseInt(s.$.val()) +
|
||||
(deltaX > 0 || deltaY > 0
|
||||
? s.o.step
|
||||
: deltaX < 0 || deltaY < 0
|
||||
? -s.o.step
|
||||
: 0);
|
||||
|
||||
if (s.cH && s.cH(v) === false) return;
|
||||
|
||||
s.val(v);
|
||||
},
|
||||
kval,
|
||||
to,
|
||||
m = 1,
|
||||
kv = { 37: -s.o.step, 38: s.o.step, 39: s.o.step, 40: -s.o.step };
|
||||
|
||||
this.$.bind("keydown", function(e) {
|
||||
var kc = e.keyCode;
|
||||
|
||||
// numpad support
|
||||
if (kc >= 96 && kc <= 105) {
|
||||
kc = e.keyCode = kc - 48;
|
||||
}
|
||||
|
||||
kval = parseInt(String.fromCharCode(kc));
|
||||
|
||||
if (isNaN(kval)) {
|
||||
kc !== 13 && // enter
|
||||
kc !== 8 && // bs
|
||||
kc !== 9 && // tab
|
||||
kc !== 189 && // -
|
||||
e.preventDefault();
|
||||
|
||||
// arrows
|
||||
if ($.inArray(kc, [37, 38, 39, 40]) > -1) {
|
||||
e.preventDefault();
|
||||
|
||||
var v = parseInt(s.$.val()) + kv[kc] * m;
|
||||
|
||||
s.o.stopper && (v = max(min(v, s.o.max), s.o.min));
|
||||
|
||||
s.change(v);
|
||||
s._draw();
|
||||
|
||||
// long time keydown speed-up
|
||||
to = window.setTimeout(function() {
|
||||
m *= 2;
|
||||
}, 30);
|
||||
}
|
||||
}
|
||||
}).bind("keyup", function(e) {
|
||||
if (isNaN(kval)) {
|
||||
if (to) {
|
||||
window.clearTimeout(to);
|
||||
to = null;
|
||||
m = 1;
|
||||
s.val(s.$.val());
|
||||
}
|
||||
} else {
|
||||
// kval postcond
|
||||
(s.$.val() > s.o.max && s.$.val(s.o.max)) ||
|
||||
(s.$.val() < s.o.min && s.$.val(s.o.min));
|
||||
}
|
||||
});
|
||||
|
||||
this.$c.bind("mousewheel DOMMouseScroll", mw);
|
||||
this.$.bind("mousewheel DOMMouseScroll", mw);
|
||||
};
|
||||
|
||||
this.init = function() {
|
||||
if (this.v < this.o.min || this.v > this.o.max) this.v = this.o.min;
|
||||
|
||||
this.$.val(this.v);
|
||||
this.w2 = this.w / 2;
|
||||
this.cursorExt = this.o.cursor / 100;
|
||||
this.xy = this.w2 * this.scale;
|
||||
this.lineWidth = this.xy * this.o.thickness;
|
||||
this.lineCap = this.o.lineCap;
|
||||
this.radius = this.xy - this.lineWidth / 2;
|
||||
|
||||
this.o.angleOffset &&
|
||||
(this.o.angleOffset = isNaN(this.o.angleOffset)
|
||||
? 0
|
||||
: this.o.angleOffset);
|
||||
|
||||
this.o.angleArc &&
|
||||
(this.o.angleArc = isNaN(this.o.angleArc) ? this.PI2 : this.o.angleArc);
|
||||
|
||||
// deg to rad
|
||||
this.angleOffset = (this.o.angleOffset * Math.PI) / 180;
|
||||
this.angleArc = (this.o.angleArc * Math.PI) / 180;
|
||||
|
||||
// compute start and end angles
|
||||
this.startAngle = 1.5 * Math.PI + this.angleOffset;
|
||||
this.endAngle = 1.5 * Math.PI + this.angleOffset + this.angleArc;
|
||||
|
||||
var s =
|
||||
max(
|
||||
String(Math.abs(this.o.max)).length,
|
||||
String(Math.abs(this.o.min)).length,
|
||||
2
|
||||
) + 2;
|
||||
|
||||
(this.o.displayInput &&
|
||||
this.i.css({
|
||||
width: ((this.w / 2 + 4) >> 0) + "px",
|
||||
height: ((this.w / 3) >> 0) + "px",
|
||||
position: "absolute",
|
||||
"vertical-align": "middle",
|
||||
"margin-top": ((this.w / 3) >> 0) + "px",
|
||||
"margin-left": "-" + (((this.w * 3) / 4 + 2) >> 0) + "px",
|
||||
border: 0,
|
||||
background: "none",
|
||||
font:
|
||||
this.o.fontWeight + " " + ((this.w / s) >> 0) + "px " + this.o.font,
|
||||
"text-align": "center",
|
||||
color: this.o.inputColor || this.o.fgColor,
|
||||
padding: "0px",
|
||||
"-webkit-appearance": "none"
|
||||
})) ||
|
||||
this.i.css({
|
||||
width: "0px",
|
||||
visibility: "hidden"
|
||||
});
|
||||
};
|
||||
|
||||
this.change = function(v) {
|
||||
this.cv = v;
|
||||
this.$.val(v);
|
||||
};
|
||||
|
||||
this.angle = function(v) {
|
||||
return ((v - this.o.min) * this.angleArc) / (this.o.max - this.o.min);
|
||||
};
|
||||
|
||||
this.draw = function() {
|
||||
var c = this.g, // context
|
||||
a = this.angle(this.cv), // Angle
|
||||
sat = this.startAngle, // Start angle
|
||||
eat = sat + a, // End angle
|
||||
sa,
|
||||
ea, // Previous angles
|
||||
r = 1;
|
||||
|
||||
c.lineWidth = this.lineWidth;
|
||||
|
||||
c.lineCap = this.lineCap;
|
||||
|
||||
this.o.cursor &&
|
||||
(sat = eat - this.cursorExt) &&
|
||||
(eat = eat + this.cursorExt);
|
||||
|
||||
c.beginPath();
|
||||
c.strokeStyle = this.o.bgColor;
|
||||
c.arc(
|
||||
this.xy,
|
||||
this.xy,
|
||||
this.radius,
|
||||
this.endAngle,
|
||||
this.startAngle,
|
||||
true
|
||||
);
|
||||
c.stroke();
|
||||
|
||||
if (this.o.displayPrevious) {
|
||||
ea = this.startAngle + this.angle(this.v);
|
||||
sa = this.startAngle;
|
||||
this.o.cursor &&
|
||||
(sa = ea - this.cursorExt) &&
|
||||
(ea = ea + this.cursorExt);
|
||||
|
||||
c.beginPath();
|
||||
c.strokeStyle = this.pColor;
|
||||
c.arc(this.xy, this.xy, this.radius, sa, ea, false);
|
||||
c.stroke();
|
||||
r = this.cv == this.v;
|
||||
}
|
||||
|
||||
c.beginPath();
|
||||
c.strokeStyle = r ? this.o.fgColor : this.fgColor;
|
||||
c.arc(this.xy, this.xy, this.radius, sat, eat, false);
|
||||
c.stroke();
|
||||
};
|
||||
|
||||
this.cancel = function() {
|
||||
this.val(this.v);
|
||||
};
|
||||
};
|
||||
|
||||
$.fn.dial = $.fn.knob = function(o) {
|
||||
return this.each(function() {
|
||||
var d = new k.Dial();
|
||||
d.o = o;
|
||||
d.$ = $(this);
|
||||
d.run();
|
||||
}).parent();
|
||||
};
|
||||
})(jQuery);
|
|
@ -0,0 +1,545 @@
|
|||
/* eslint-disable no-unused-vars */
|
||||
/* global ajaxPage,texts,ActiveXObject, updates */
|
||||
/* global $,clientMode */
|
||||
|
||||
// Define following functions to customize responses. Do not edit this code.
|
||||
/* global toggleUpdateList,showUpdateDetails */
|
||||
/* global handleErrorMessage, handleSuccessMessage */
|
||||
/* global confirmDialog */
|
||||
/* global nextUpdateVersion:writable */
|
||||
var _auxIntervalReference = null;
|
||||
|
||||
function evalScript(elem) {
|
||||
var scripts = elem.getElementsByTagName("script");
|
||||
|
||||
for (var i = 0; i < scripts.length; i++) {
|
||||
var script = document.createElement("script");
|
||||
var data = scripts[i].text;
|
||||
|
||||
script.type = "text/javascript";
|
||||
try {
|
||||
// doesn't work on ie...
|
||||
script.appendChild(document.createTextNode(data));
|
||||
} catch (e) {
|
||||
// IE has funky script nodes
|
||||
script.text = data;
|
||||
}
|
||||
elem.parentNode.appendChild(script);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Executes a request against a target.
|
||||
* @param {
|
||||
* url,
|
||||
* method,
|
||||
* data,
|
||||
* sync,
|
||||
* success,
|
||||
* error,
|
||||
* contentType,
|
||||
* accept
|
||||
* } settings for AJAX request.
|
||||
*/
|
||||
function ajax(settings) {
|
||||
var html = {
|
||||
// Default values
|
||||
url: "",
|
||||
method: "POST",
|
||||
data: {},
|
||||
sync: true,
|
||||
contentType: "application/json",
|
||||
accept: "application/json",
|
||||
success: null,
|
||||
error: function(c, msg) {
|
||||
console.error(c + ":" + msg);
|
||||
},
|
||||
response: null,
|
||||
xmlHttp: null,
|
||||
send: function() {
|
||||
this.data["ajax"] = 1;
|
||||
if (window.XMLHttpRequest) {
|
||||
this.xmlHttp = new XMLHttpRequest();
|
||||
} else {
|
||||
this.xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
|
||||
}
|
||||
if (this.method == "GET") {
|
||||
this.xmlHttp.open(this.method, this.url, this.sync);
|
||||
this.data = "data=" + encodeURIComponent(JSON.stringify(this.data));
|
||||
this.data += "&page=" + encodeURIComponent(html.page);
|
||||
this.data += "&mode=" + clientMode;
|
||||
} else {
|
||||
// POST method.
|
||||
this.xmlHttp.open(this.method, this.url, this.sync);
|
||||
if (
|
||||
this.contentType == "application/json" ||
|
||||
this.contentType == "json"
|
||||
) {
|
||||
this.contentType = "application/json";
|
||||
this.data = "data=" + encodeURIComponent(JSON.stringify(this.data));
|
||||
this.data += "&page=" + encodeURIComponent(html.page);
|
||||
this.data += "&mode=" + clientMode;
|
||||
}
|
||||
}
|
||||
// Prepare request.
|
||||
this.xmlHttp.setRequestHeader(
|
||||
"Content-type",
|
||||
"application/x-www-form-urlencoded"
|
||||
);
|
||||
this.xmlHttp.setRequestHeader("Accept", this.accept);
|
||||
|
||||
// Receiving response.
|
||||
this.xmlHttp.onreadystatechange = function() {
|
||||
if (this.readyState == 4) {
|
||||
if (this.status == 200) {
|
||||
var response;
|
||||
if (html.accept == "json" || html.accept == "application/json") {
|
||||
response = JSON.parse(this.response);
|
||||
} else {
|
||||
response = this.response;
|
||||
}
|
||||
if (html.success) {
|
||||
html.success(response);
|
||||
}
|
||||
} else {
|
||||
html.error(this.status, this);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Execute request.
|
||||
this.xmlHttp.send(this.data);
|
||||
}
|
||||
};
|
||||
|
||||
[
|
||||
"url",
|
||||
"method",
|
||||
"data",
|
||||
"sync",
|
||||
"success",
|
||||
"error",
|
||||
"contentType",
|
||||
"accept",
|
||||
"page",
|
||||
"cors"
|
||||
].forEach(function(i) {
|
||||
if (settings[i] != undefined) {
|
||||
html[i] = settings[i];
|
||||
}
|
||||
});
|
||||
|
||||
html["data"]["cors"] = html["cors"];
|
||||
|
||||
// Perform.
|
||||
html.send();
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevents user exit or page change.
|
||||
*/
|
||||
function preventExit() {
|
||||
var dbuttons = document.getElementById("um-buttons");
|
||||
if (dbuttons != null) dbuttons.style.display = "none";
|
||||
|
||||
var dprog = document.getElementById("um-progress");
|
||||
if (dprog != null) dprog.style.display = "block";
|
||||
|
||||
// Warning before leaving the page (back button, or outgoinglink)
|
||||
window.onbeforeunload = function() {
|
||||
return texts.preventExitMsg;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Cancels prevention.
|
||||
*/
|
||||
function cleanExit() {
|
||||
var dbuttons = document.getElementById("um-buttons");
|
||||
if (dbuttons != null) dbuttons.style.display = "block";
|
||||
|
||||
var dprog = document.getElementById("um-progress");
|
||||
if (dprog != null) dprog.style.display = "none";
|
||||
|
||||
window.onbeforeunload = undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats a error message.
|
||||
*
|
||||
* @param {string} msg
|
||||
* @returns
|
||||
*/
|
||||
function umErrorMsg(msg) {
|
||||
if (typeof handleErrorMessage == "function") {
|
||||
return handleErrorMessage(msg);
|
||||
} else {
|
||||
return '<div class="um-error"><p>' + msg + "</p></div>";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats a success message.
|
||||
*
|
||||
* @param {string} msg
|
||||
* @returns
|
||||
*/
|
||||
function umSuccessMsg(msg) {
|
||||
if (typeof handleSuccessMessage == "function") {
|
||||
handleSuccessMessage(msg);
|
||||
} else {
|
||||
return '<div class="success"><p>' + msg + "</p></div>";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates product to next version.
|
||||
*
|
||||
* @param {dictionary} settings:
|
||||
* url: string
|
||||
* success: function
|
||||
* error: function
|
||||
*/
|
||||
function updateNext(settings) {
|
||||
preventExit();
|
||||
var progressInterval = setInterval(function() {
|
||||
updateProgress(settings.url, settings.auth);
|
||||
}, 1000);
|
||||
|
||||
ajax({
|
||||
url: settings.url,
|
||||
cors: settings.auth,
|
||||
page: ajaxPage,
|
||||
data: {
|
||||
action: "nextUpdate"
|
||||
},
|
||||
success: function(d) {
|
||||
if (typeof d.error == "undefined") {
|
||||
if (typeof settings.success == "function") settings.success(d.result);
|
||||
} else {
|
||||
if (typeof settings.error == "function") settings.error(0, d.error);
|
||||
}
|
||||
clearInterval(progressInterval);
|
||||
cleanExit();
|
||||
//location.reload();
|
||||
},
|
||||
error: function(e, request) {
|
||||
if (typeof response == "object") {
|
||||
var r;
|
||||
try {
|
||||
r = JSON.parse(request.response);
|
||||
if (r.error != "undefined") r = r.error;
|
||||
else r = request.response;
|
||||
} catch (e) {
|
||||
// Do not change.
|
||||
r = request.response;
|
||||
}
|
||||
}
|
||||
if (typeof settings.error == "function") settings.error(e, r);
|
||||
clearInterval(progressInterval);
|
||||
cleanExit();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates product to latest version.
|
||||
* @param {dictionary} settings:
|
||||
* url: string
|
||||
* success: function
|
||||
* error: function
|
||||
*/
|
||||
function updateLatest(settings) {
|
||||
preventExit();
|
||||
var dprog = document.getElementById("um-progress");
|
||||
dprog.style.display = "block";
|
||||
var progressInterval = setInterval(function() {
|
||||
updateProgress(settings.url, settings.auth);
|
||||
}, 1000);
|
||||
|
||||
ajax({
|
||||
url: settings.url,
|
||||
cors: settings.auth,
|
||||
page: ajaxPage,
|
||||
data: {
|
||||
action: "latestUpdate"
|
||||
},
|
||||
success: function(d) {
|
||||
if (typeof handleSuccessMessage == "function") {
|
||||
handleSuccessMessage(d);
|
||||
} else {
|
||||
if (typeof d.error == "undefined") {
|
||||
if (typeof settings.success == "function") settings.success(d.result);
|
||||
} else {
|
||||
if (typeof settings.error == "function") settings.error(0, d.error);
|
||||
}
|
||||
}
|
||||
clearInterval(progressInterval);
|
||||
cleanExit();
|
||||
},
|
||||
error: function(e, request) {
|
||||
if (typeof request == "object") {
|
||||
var r;
|
||||
try {
|
||||
r = JSON.parse(request.response);
|
||||
if (r.error != "undefined") r = r.error;
|
||||
else r = request.response;
|
||||
} catch (e) {
|
||||
// Do not change.
|
||||
r = request.response;
|
||||
}
|
||||
}
|
||||
if (typeof handleErrorMessage == "function") {
|
||||
handleErrorMessage(r.response);
|
||||
} else {
|
||||
if (typeof settings.error == "function") settings.error(e, r);
|
||||
}
|
||||
clearInterval(progressInterval);
|
||||
cleanExit();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates progres bar.
|
||||
*
|
||||
* @param {string} url
|
||||
* @param {string} auth
|
||||
*/
|
||||
function updateProgress(url, auth) {
|
||||
var dprog = document.getElementById("um-progress");
|
||||
var general_progress = document.getElementById("um-progress-general");
|
||||
var general_label = document.getElementById("um-progress-general-label");
|
||||
var task_progress = document.getElementById("um-progress-task");
|
||||
var task_label = document.getElementById("um-progress-task-label");
|
||||
|
||||
var general_action = document.getElementById("um-progress-version");
|
||||
var task_action = document.getElementById("um-progress-description");
|
||||
|
||||
if (general_label.innerText == undefined) {
|
||||
// Initialize.
|
||||
general_progress.style.width = "0 %";
|
||||
general_label.innerText = "0 %";
|
||||
|
||||
task_progress.style.width = "0 %";
|
||||
task_label.innerText = "0 %";
|
||||
|
||||
general_action.innerText = "";
|
||||
task_action.innerText = "";
|
||||
}
|
||||
|
||||
if (general_label.innerText == "100.00 %") {
|
||||
cleanExit();
|
||||
if (_auxIntervalReference != null) {
|
||||
window.clearInterval(_auxIntervalReference);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
ajax({
|
||||
url: url,
|
||||
cors: auth,
|
||||
page: ajaxPage,
|
||||
data: {
|
||||
action: "status"
|
||||
},
|
||||
success: function(d) {
|
||||
// Clean.
|
||||
general_progress.style.width = "0 %";
|
||||
general_label.innerText = "0 %";
|
||||
|
||||
task_progress.style.width = "0 %";
|
||||
task_label.innerText = "0 %";
|
||||
|
||||
general_action.innerText = "";
|
||||
task_action.innerText = "";
|
||||
var p;
|
||||
|
||||
if (d.result.global_percent == null) {
|
||||
p = d.result.percent;
|
||||
} else {
|
||||
p = d.result.global_percent;
|
||||
}
|
||||
|
||||
general_progress.style.width = p + "%";
|
||||
if (p != undefined) {
|
||||
general_label.innerText = p.toFixed(2) + " %";
|
||||
}
|
||||
|
||||
var percent = d.result.percent;
|
||||
if (percent == null) {
|
||||
percent = 0;
|
||||
}
|
||||
|
||||
task_progress.style.width = percent + "%";
|
||||
task_label.innerText = percent.toFixed(2) + " %";
|
||||
|
||||
general_action.innerText = d.result.processing;
|
||||
task_action.innerText = d.result.message;
|
||||
},
|
||||
error: function(d) {
|
||||
dprog.innerHTML = umErrorMsg(d.error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show updates.
|
||||
*
|
||||
* @param {string} url Ajax.url
|
||||
* @param {string} auth CORS
|
||||
*/
|
||||
function showProgress(url, auth) {
|
||||
preventExit();
|
||||
var dprog = document.getElementById("um-progress");
|
||||
dprog.style.display = "block";
|
||||
var dum = document.getElementById("um-loading");
|
||||
dum.style.display = "none";
|
||||
_auxIntervalReference = setInterval(function() {
|
||||
updateProgress(url, auth);
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
/**
|
||||
* Search for updates.
|
||||
*
|
||||
* @param {string} url
|
||||
* @param {string} auth CORS
|
||||
*/
|
||||
function searchUpdates(url, auth) {
|
||||
const updates_list = document.getElementById("um-updates");
|
||||
var um_buttons = document.getElementById("um-buttons");
|
||||
var op_loading = document.getElementById("um-loading");
|
||||
var op_msg = document.getElementById("loading-msg");
|
||||
|
||||
op_loading.style.display = "block";
|
||||
op_msg.innerHTML = texts.searchingUpdates;
|
||||
|
||||
ajax({
|
||||
url: url,
|
||||
cors: auth,
|
||||
page: ajaxPage,
|
||||
data: {
|
||||
action: "getUpdates"
|
||||
},
|
||||
accept: "text/html",
|
||||
success: function(d) {
|
||||
op_loading.style.display = "none";
|
||||
if (d != "") {
|
||||
updates_list.innerHTML = d;
|
||||
um_buttons.style.display = "block";
|
||||
} else {
|
||||
// No updates.
|
||||
updates_list.innerHTML = texts.alreadyUpdated;
|
||||
}
|
||||
evalScript(updates_list);
|
||||
},
|
||||
error: function(errno, err) {
|
||||
op_loading.style.display = "none";
|
||||
if (err.response) {
|
||||
updates_list.innerHTML = err.response;
|
||||
} else {
|
||||
updates_list.innerHTML = errno;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function umConfirm(settings) {
|
||||
if (typeof confirmDialog == "function") {
|
||||
confirmDialog(settings);
|
||||
} else {
|
||||
if (confirm(settings.message)) {
|
||||
if (typeof settings.onAccept == "function") settings.onAccept();
|
||||
} else {
|
||||
if (typeof settings.onDeny == "function") settings.onDeny();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function umShowUpdateDetails(update) {
|
||||
var um_update_details = document.getElementById("um-update-details");
|
||||
var header = document.getElementById("um-update-details-header");
|
||||
var content = document.getElementById("um-update-details-content");
|
||||
|
||||
header.innerText = texts.updateText + " " + updates[update].version;
|
||||
content.innerText = updates[update].description;
|
||||
|
||||
if (typeof showUpdateDetails != "function") {
|
||||
um_update_details.style.display = "block";
|
||||
if (typeof $ == "function") {
|
||||
$("#um-update-details").dialog({
|
||||
title: update,
|
||||
width: 650,
|
||||
height: 600
|
||||
});
|
||||
}
|
||||
} else {
|
||||
showUpdateDetails(um_update_details, updates[update]);
|
||||
}
|
||||
}
|
||||
|
||||
function umToggleUpdateList() {
|
||||
if (typeof toggleUpdateList == "function") {
|
||||
toggleUpdateList();
|
||||
} else {
|
||||
var update_list = document.getElementById("update-list");
|
||||
if (update_list)
|
||||
if (update_list.style.maxHeight == "10em") {
|
||||
update_list.style.maxHeight = "0";
|
||||
update_list.style.overflowY = "none";
|
||||
} else {
|
||||
update_list.style.maxHeight = "10em";
|
||||
update_list.style.overflowY = "auto";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function umUINextUpdate(version) {
|
||||
var pkg_version = document.getElementById("pkg_version");
|
||||
var update_list = document.getElementById("update-list");
|
||||
var nextVersion = document.getElementById("next-version");
|
||||
var nextVersionLink = document.getElementById("um-package-details-next");
|
||||
var updates_left = document.getElementById("updates_left");
|
||||
var listNextUpdate;
|
||||
var listNextVersion;
|
||||
|
||||
pkg_version.innerText = version;
|
||||
nextUpdateVersion;
|
||||
|
||||
if (update_list) {
|
||||
do {
|
||||
listNextUpdate = update_list.children[0];
|
||||
if (listNextUpdate == null) break;
|
||||
listNextVersion = listNextUpdate.children[0].innerText;
|
||||
update_list.removeChild(listNextUpdate);
|
||||
if (updates_left.innerText > 0) {
|
||||
updates_left.innerText = updates_left.innerText - 1;
|
||||
} else {
|
||||
updates_left.parentNode.parentNode.removeChild(updates_left.parentNode);
|
||||
update_list.parentNode.removeChild(update_list);
|
||||
}
|
||||
} while (
|
||||
listNextVersion <= version ||
|
||||
version == null ||
|
||||
listNextVersion == null
|
||||
);
|
||||
|
||||
nextVersion.innerText = listNextVersion;
|
||||
nextVersionLink.href =
|
||||
"javascript: umShowUpdateDetails('" + listNextVersion + "');";
|
||||
|
||||
nextUpdateVersion = listNextVersion;
|
||||
}
|
||||
|
||||
if (nextUpdateVersion == null || version >= nextUpdateVersion) {
|
||||
var updates_list = document.getElementById("um-updates");
|
||||
var um_buttons = document.getElementById("um-buttons");
|
||||
updates_list.innerHTML = texts.alreadyUpdated;
|
||||
um_buttons.innerHTML = "";
|
||||
}
|
||||
}
|
||||
|
||||
function validateEmail(email) {
|
||||
const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
||||
return re.test(String(email).toLowerCase());
|
||||
}
|
|
@ -0,0 +1,458 @@
|
|||
/* exported form_upload */
|
||||
/* global $,ajax,cleanExit,preventExit,umConfirm,umErrorMsg */
|
||||
/* global texts,ajaxPage,insecureMode */
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {string} url
|
||||
* @param {string} auth
|
||||
* @param {string} current_package
|
||||
*/
|
||||
function form_upload(url, auth, current_package) {
|
||||
// Thanks to: http://tutorialzine.com/2013/05/mini-ajax-file-upload-form/
|
||||
var ul = $("#form-offline_update ul");
|
||||
|
||||
$("#form-offline_update div").prop("id", "drop_file");
|
||||
$("#drop_file").html(
|
||||
texts.dropZoneText +
|
||||
" <a>" +
|
||||
texts.browse +
|
||||
"</a>" +
|
||||
'<input name="upfile" type="file" id="file-upfile" accept=".oum, .tar.gz" class="sub file" />'
|
||||
);
|
||||
$("#drop_file a").click(function() {
|
||||
// Simulate a click on the file input button to show the file browser dialog
|
||||
$(this)
|
||||
.parent()
|
||||
.find("input")
|
||||
.click();
|
||||
});
|
||||
|
||||
// Initialize the jQuery File Upload plugin
|
||||
$("#form-offline_update").fileupload({
|
||||
url: url,
|
||||
|
||||
// This element will accept file drag/drop uploading
|
||||
dropZone: $("#drop_file"),
|
||||
|
||||
// This function is called when a file is added to the queue;
|
||||
// either via the browse button, or via drag/drop:
|
||||
add: function(e, data) {
|
||||
let number_update = data.files[0].name.match(/package_(\d+\.*\d*)\.oum/);
|
||||
|
||||
if (number_update === null) {
|
||||
number_update = data.files[0].name.match(
|
||||
/pandorafms_server.*NG\.(\d+\.*\d*?)_.*\.tar\.gz/
|
||||
);
|
||||
}
|
||||
|
||||
if (number_update === null) {
|
||||
umConfirm({
|
||||
message:
|
||||
'<span class="warning"></span><p>' + texts.invalidPackage + "</p>",
|
||||
title: texts.warning,
|
||||
size: 700,
|
||||
onAccept: function() {
|
||||
location.reload();
|
||||
},
|
||||
onDeny: function() {
|
||||
cancelUpdate();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$("#drop_file").slideUp();
|
||||
var tpl = $(
|
||||
"<li>" +
|
||||
'<input type="text" id="input-progress" ' +
|
||||
'value="0" data-width="55" data-height="55" ' +
|
||||
'data-fgColor="#82b92e" data-readOnly="1" ' +
|
||||
'data-bgColor="#3E4043" />' +
|
||||
"<p></p><span></span>" +
|
||||
"</li>"
|
||||
);
|
||||
|
||||
// Append the file name and file size
|
||||
tpl
|
||||
.find("p")
|
||||
.text(data.files[0].name)
|
||||
.append("<i>" + formatFileSize(data.files[0].size) + "</i>");
|
||||
|
||||
// Add the HTML to the UL element
|
||||
ul.html("");
|
||||
data.context = tpl.appendTo(ul);
|
||||
|
||||
// Initialize the knob plugin
|
||||
tpl.find("input").val(0);
|
||||
tpl.find("input").knob({
|
||||
draw: function() {
|
||||
$(this.i).val(this.cv + "%");
|
||||
}
|
||||
});
|
||||
|
||||
// Listen for clicks on the cancel icon
|
||||
tpl.find("span").click(function() {
|
||||
if (tpl.hasClass("working") && typeof jqXHR != "undefined") {
|
||||
jqXHR.abort();
|
||||
}
|
||||
|
||||
tpl.fadeOut(function() {
|
||||
tpl.remove();
|
||||
$("#drop_file").slideDown();
|
||||
});
|
||||
});
|
||||
|
||||
// Automatically upload the file once it is added to the queue
|
||||
data.context.addClass("working");
|
||||
var jqXHR = data.submit();
|
||||
}
|
||||
},
|
||||
|
||||
progress: function(e, data) {
|
||||
// Calculate the completion percentage of the upload
|
||||
var progress = parseInt((data.loaded / data.total) * 100, 10);
|
||||
|
||||
// Update the hidden input field and trigger a change
|
||||
// so that the jQuery knob plugin knows to update the dial
|
||||
data.context
|
||||
.find("input")
|
||||
.val(progress)
|
||||
.change();
|
||||
|
||||
if (progress == 100) {
|
||||
data.context.removeClass("working");
|
||||
// Class loading while the zip is extracted
|
||||
data.context.addClass("loading");
|
||||
}
|
||||
},
|
||||
|
||||
fail: function(e, data) {
|
||||
// Something has gone wrong!
|
||||
data.context.removeClass("working");
|
||||
data.context.removeClass("loading");
|
||||
data.context.addClass("error");
|
||||
var response = data.response();
|
||||
if (response != null) {
|
||||
$("#drop_file").prop("id", "log_zone");
|
||||
|
||||
// Success messages
|
||||
var log_zone = $("#log_zone");
|
||||
log_zone.html("<div>" + response.jqXHR.responseText + "</div>");
|
||||
$("#log_zone").slideDown(400, function() {
|
||||
$("#log_zone").height(200);
|
||||
$("#log_zone").css("overflow", "auto");
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
done: function(e, data) {
|
||||
var res;
|
||||
try {
|
||||
res = JSON.parse(data.result);
|
||||
} catch (e) {
|
||||
res = {
|
||||
status: "error",
|
||||
message: data.result
|
||||
};
|
||||
}
|
||||
|
||||
if (res.status == "success") {
|
||||
data.context.removeClass("loading");
|
||||
data.context.addClass("suc");
|
||||
|
||||
ul.find("li")
|
||||
.find("span")
|
||||
.unbind("click");
|
||||
|
||||
// Transform the file input zone to show messages
|
||||
$("#drop_file").prop("id", "log_zone");
|
||||
|
||||
// Success messages
|
||||
var log_zone = $("#log_zone");
|
||||
log_zone.html("<div>" + texts.uploadSuccess + "</div>");
|
||||
log_zone.append("<div>" + texts.uploadMessage + "</div>");
|
||||
log_zone.append("<div>" + texts.clickToStart + "</div>");
|
||||
var file_list =
|
||||
"<h2>" + texts.fileList + "</h2><div class='file_list'>";
|
||||
|
||||
if (res.files) {
|
||||
res.files.forEach(function(e) {
|
||||
file_list += "<div class='file_entry'>" + e + "</div>";
|
||||
});
|
||||
}
|
||||
|
||||
file_list += "</div>";
|
||||
log_zone.append(file_list);
|
||||
|
||||
// Show messages
|
||||
$("#log_zone").slideDown(400, function() {
|
||||
$("#log_zone").height(200);
|
||||
$("#log_zone").css("overflow", "auto");
|
||||
});
|
||||
|
||||
// Bind the the begin of the installation to the package li
|
||||
ul.find("li").css("cursor", "pointer");
|
||||
ul.find("li").click(function() {
|
||||
ul.find("li").unbind("click");
|
||||
ul.find("li").css("cursor", "default");
|
||||
|
||||
// Changed the data that shows the file li
|
||||
data.context.find("p").text(texts.updatingTo + res.version);
|
||||
data.context
|
||||
.find("input")
|
||||
.val(0)
|
||||
.change();
|
||||
|
||||
let number_update = res.version;
|
||||
let server_update = res.server_update;
|
||||
let target_version = Math.round(parseFloat(current_package)) + 1;
|
||||
|
||||
if (number_update === null) {
|
||||
umConfirm({
|
||||
message:
|
||||
'<span class="warning"></span><p>' +
|
||||
texts.invalidPackage +
|
||||
"</p>",
|
||||
title: texts.warning,
|
||||
size: 535,
|
||||
onAccept: function() {
|
||||
location.reload();
|
||||
},
|
||||
onDeny: function() {
|
||||
cancelUpdate();
|
||||
}
|
||||
});
|
||||
} else if (Math.round(parseFloat(number_update)) != target_version) {
|
||||
umConfirm({
|
||||
message:
|
||||
'<span class="warning"></span><p>' +
|
||||
(server_update
|
||||
? texts.unoficialServerWarning
|
||||
: texts.unoficialWarning) +
|
||||
"</p>",
|
||||
title: texts.warning,
|
||||
size: 535,
|
||||
onAccept: function() {
|
||||
if (insecureMode) {
|
||||
// Begin the installation
|
||||
install_package(
|
||||
url,
|
||||
auth,
|
||||
res.packageId,
|
||||
res.version,
|
||||
server_update
|
||||
);
|
||||
} else {
|
||||
// Verify sign. (optional)
|
||||
umConfirm({
|
||||
message:
|
||||
"<p>" +
|
||||
texts.verifysigns +
|
||||
"<br><textarea id='signature'></textarea></p>",
|
||||
title: texts.verifysigntitle,
|
||||
cancelText: texts.ignoresign,
|
||||
size: 535,
|
||||
onAccept: function() {
|
||||
// Send validation
|
||||
ajax({
|
||||
url: url,
|
||||
cors: auth,
|
||||
page: ajaxPage,
|
||||
data: {
|
||||
action: "validateUploadedOUM",
|
||||
packageId: res.packageId,
|
||||
signature: $("#signature").val()
|
||||
},
|
||||
success: function(d) {
|
||||
var result = d.result;
|
||||
if (result.status == "success") {
|
||||
// Begin the installation
|
||||
install_package(
|
||||
url,
|
||||
auth,
|
||||
res.packageId,
|
||||
res.version,
|
||||
server_update
|
||||
);
|
||||
} else {
|
||||
cancelUpdate(result.message);
|
||||
}
|
||||
},
|
||||
error: function(e, request) {
|
||||
cancelUpdate(e.error);
|
||||
console.error(request);
|
||||
}
|
||||
});
|
||||
},
|
||||
onDeny: function() {
|
||||
// Begin the installation
|
||||
install_package(
|
||||
url,
|
||||
auth,
|
||||
res.packageId,
|
||||
res.version,
|
||||
server_update
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
onDeny: function() {
|
||||
cancelUpdate();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// Begin the installation
|
||||
install_package(
|
||||
url,
|
||||
auth,
|
||||
res.packageId,
|
||||
res.version,
|
||||
server_update
|
||||
);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// Something has gone wrong!
|
||||
data.context.removeClass("loading");
|
||||
data.context.addClass("error");
|
||||
ul.find("li")
|
||||
.find("span")
|
||||
.click(function() {
|
||||
window.location.reload();
|
||||
});
|
||||
|
||||
// Transform the file input zone to show messages
|
||||
$("#drop_file").prop("id", "log_zone");
|
||||
|
||||
// Error messages
|
||||
$("#log_zone").html("<div>" + res.message + "</div>");
|
||||
|
||||
// Show error messages
|
||||
$("#log_zone").slideDown(400, function() {
|
||||
$("#log_zone").height(75);
|
||||
$("#log_zone").css("overflow", "auto");
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Prevent the default action when a file is dropped on the window
|
||||
$(document).on("drop_file dragover", function(e) {
|
||||
e.preventDefault();
|
||||
});
|
||||
}
|
||||
|
||||
// Helper function that formats the file sizes
|
||||
function formatFileSize(bytes) {
|
||||
if (typeof bytes !== "number") {
|
||||
return "";
|
||||
}
|
||||
|
||||
if (bytes >= 1000000000) {
|
||||
return (bytes / 1000000000).toFixed(2) + " GB";
|
||||
}
|
||||
|
||||
if (bytes >= 1000000) {
|
||||
return (bytes / 1000000).toFixed(2) + " MB";
|
||||
}
|
||||
|
||||
return (bytes / 1000).toFixed(2) + " KB";
|
||||
}
|
||||
|
||||
/**
|
||||
* Start to install package.
|
||||
*
|
||||
* @param {string} url
|
||||
* @param {string} auth
|
||||
* @param {string} packageId
|
||||
* @param {boolean} serverUpdate
|
||||
*/
|
||||
function install_package(url, auth, packageId, version, serverUpdate) {
|
||||
umConfirm({
|
||||
message:
|
||||
(serverUpdate ? texts.ensureServerUpdate : texts.ensureUpdate) +
|
||||
version +
|
||||
". " +
|
||||
texts.ensure,
|
||||
title: texts.updatingTo + version,
|
||||
onAccept: function() {
|
||||
// Schedule update progress using notify from UMC.
|
||||
preventExit();
|
||||
var progressInterval = setInterval(function() {
|
||||
updateOfflineProgress(url, auth);
|
||||
}, 1000);
|
||||
|
||||
ajax({
|
||||
url: url,
|
||||
cors: auth,
|
||||
page: ajaxPage,
|
||||
data: {
|
||||
action: "installUploadedOUM",
|
||||
packageId: packageId
|
||||
},
|
||||
success: function(d) {
|
||||
// Succesfully installed.
|
||||
clearInterval(progressInterval);
|
||||
cleanExit();
|
||||
|
||||
var response = d.result;
|
||||
document.getElementById("log_zone").innerText = response.result;
|
||||
$("#input-progress")
|
||||
.val(100)
|
||||
.change();
|
||||
},
|
||||
error: function(e, request) {
|
||||
clearInterval(progressInterval);
|
||||
cleanExit();
|
||||
console.log(e);
|
||||
console.log(request);
|
||||
}
|
||||
});
|
||||
},
|
||||
onDeny: function() {
|
||||
cancelUpdate();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates log_zone and installation progress.
|
||||
*/
|
||||
function updateOfflineProgress(url, auth) {
|
||||
var log_zone = $("log_zone");
|
||||
var general_progress = $("#input-progress");
|
||||
var general_label = $("#result li p");
|
||||
|
||||
ajax({
|
||||
url: url,
|
||||
cors: auth,
|
||||
page: ajaxPage,
|
||||
data: {
|
||||
action: "status"
|
||||
},
|
||||
success: function(d) {
|
||||
$(general_progress)
|
||||
.val(d.result.percent)
|
||||
.change();
|
||||
|
||||
general_label.innerText = d.result.processing;
|
||||
log_zone.innerText = d.result.message;
|
||||
},
|
||||
error: function(d) {
|
||||
log_zone.innerHTML = umErrorMsg(d.error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Cancel update.
|
||||
*/
|
||||
function cancelUpdate(reason = "") {
|
||||
console.error(reason);
|
||||
var taskStatusLogContainer = $("#result li");
|
||||
taskStatusLogContainer.addClass("error");
|
||||
taskStatusLogContainer.find("p").text(texts.rejectedUpdate + " " + reason);
|
||||
taskStatusLogContainer.find("span").on("click", function() {
|
||||
location.reload();
|
||||
});
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
/*
|
||||
* ---------------------------------------------------------------------
|
||||
* - CALENDAR TOOLTIP -
|
||||
* ---------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* Calendar background */
|
||||
table.scw {
|
||||
background-color: #82b92e;
|
||||
border: 0 !important;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
/* Week number heading */
|
||||
td.scwWeekNumberHead {
|
||||
color: #111;
|
||||
}
|
||||
|
||||
td.scwWeek {
|
||||
color: #111 !important;
|
||||
}
|
||||
|
||||
/* Today selector */
|
||||
td.scwFootDisabled {
|
||||
background-color: #000;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
tfoot.scwFoot {
|
||||
color: #111;
|
||||
}
|
||||
|
||||
.scwFoot :hover {
|
||||
color: #3f3f3f !important;
|
||||
}
|
||||
|
||||
table.scwCells {
|
||||
background-color: #fff !important;
|
||||
color: #3c3c3c !important;
|
||||
}
|
||||
|
||||
table.scwCells:hover {
|
||||
background-color: #fff !important;
|
||||
}
|
||||
|
||||
td.scwCellsExMonth {
|
||||
background-color: #eee !important;
|
||||
color: #3c3c3c !important;
|
||||
}
|
||||
|
||||
td.scwCellsWeekend {
|
||||
background-color: #3c3c3c !important;
|
||||
color: #fff !important;
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
td.scwInputDate {
|
||||
background-color: #777 !important;
|
||||
color: #ffffff !important;
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
td.scwFoot {
|
||||
background-color: #fff !important;
|
||||
color: #3c3c3c !important;
|
||||
border: 0 !important;
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
.box {
|
||||
background-color: orange;
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
.ui-dialog.ui-corner-all.ui-widget.ui-widget-content.ui-front.ui-draggable.ui-resizable {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.ui-dialog .ui-widget-header {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.ui-dialog-content {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.ui-button.ui-corner-all.ui-widget.ui-button-icon-only.ui-dialog-titlebar-close {
|
||||
margin-top: -10px;
|
||||
}
|
||||
|
||||
.ui-button.ui-corner-all.ui-widget.ui-button-icon-only.ui-dialog-titlebar-close:hover {
|
||||
background: url("../images/icono_cerrar.png") no-repeat center center;
|
||||
}
|
||||
|
||||
.ui-button-icon.ui-icon.ui-icon-closethick {
|
||||
background: url("../images/icono_cerrar.png") no-repeat center center !important;
|
||||
}
|
|
@ -1,6 +1,23 @@
|
|||
.update_text p {
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
.update_text a {
|
||||
font-size: 11pt;
|
||||
color: #82b92e;
|
||||
}
|
||||
|
||||
.update_manager_warning p {
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
.ui-widget-content,
|
||||
.ui-widget-content p {
|
||||
font-size: 12pt;
|
||||
}
|
||||
.fileupload_form {
|
||||
background-color: #373a3d;
|
||||
background-image: -moz-linear-gradient(center top, #373a3d, #313437);
|
||||
background-image: -moz-linear-gradient(center, #373a3d, #313437);
|
||||
border-radius: 3px;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
|
@ -48,6 +65,7 @@
|
|||
#drop_file input {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.fileupload_form ul {
|
||||
border-bottom: 1px solid #3d4043;
|
||||
border-top: 1px solid #2b2e31;
|
||||
|
@ -57,7 +75,7 @@
|
|||
}
|
||||
.fileupload_form ul li {
|
||||
background-color: #333639;
|
||||
background-image: -moz-linear-gradient(center top, #333639, #303335);
|
||||
background-image: -moz-linear-gradient(center, #333639, #303335);
|
||||
border-bottom: 1px solid #2b2e31;
|
||||
border-top: 1px solid #3d4043;
|
||||
padding: 15px;
|
||||
|
@ -89,7 +107,7 @@
|
|||
top: 15px;
|
||||
}
|
||||
.fileupload_form ul li span {
|
||||
background: url("../../images/check-cross.png") no-repeat scroll 0 0
|
||||
background: url("../images/check-cross.png") no-repeat scroll 0 0
|
||||
rgba(0, 0, 0, 0);
|
||||
cursor: pointer;
|
||||
height: 12px;
|
||||
|
@ -106,12 +124,11 @@
|
|||
height: 16px;
|
||||
}
|
||||
.fileupload_form ul li.loading span {
|
||||
background: url("../../images/spinner.gif") no-repeat scroll 0 0
|
||||
rgba(0, 0, 0, 0);
|
||||
background: url("../images/spinner.gif") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
|
||||
height: 16px;
|
||||
}
|
||||
.fileupload_form ul li.suc span {
|
||||
background: url("../../images/check-cross.png") no-repeat scroll 0 0
|
||||
background: url("../images/check-cross.png") no-repeat scroll 0 0
|
||||
rgba(0, 0, 0, 0);
|
||||
height: 12px;
|
||||
}
|
||||
|
@ -119,7 +136,7 @@
|
|||
color: #5a8629;
|
||||
}
|
||||
.fileupload_form ul li.error span {
|
||||
background: url("../../images/check-cross.png") no-repeat scroll 0 -12px rgba(0, 0, 0, 0);
|
||||
background: url("../images/check-cross.png") no-repeat scroll 0 -12px rgba(0, 0, 0, 0);
|
||||
height: 16px;
|
||||
}
|
||||
.fileupload_form ul li.error p {
|
||||
|
@ -138,7 +155,7 @@
|
|||
}
|
||||
|
||||
#box_online {
|
||||
background-image: url("../../images/update_manager_background.jpg");
|
||||
background-image: url("../images/update_manager_background.jpg");
|
||||
background-size: cover;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
|
@ -175,15 +192,6 @@ div#box_online * {
|
|||
font-size: 12pt;
|
||||
}
|
||||
|
||||
.update_text p {
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
.update_text a {
|
||||
font-size: 11pt;
|
||||
color: #82b92e;
|
||||
}
|
||||
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
|
||||
float: left;
|
||||
padding-left: 19px;
|
||||
|
@ -201,7 +209,7 @@ a.update_manager_button {
|
|||
}
|
||||
|
||||
a.update_manager_button:after {
|
||||
content: url(../../images/update_manager_button.png);
|
||||
content: url(../images/update_manager_button.png);
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
|
@ -257,10 +265,6 @@ div#box_online.box_online_meta * {
|
|||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.update_manager_warning p {
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
.update_manager_warning img {
|
||||
padding-right: 20px;
|
||||
width: 90px;
|
||||
|
@ -269,7 +273,6 @@ div#box_online.box_online_meta * {
|
|||
a.update_manager_button_open {
|
||||
padding: 5px 10px;
|
||||
font-size: 16px;
|
||||
border-radius: 4px;
|
||||
text-decoration: none;
|
||||
border: 1px solid #82b92e;
|
||||
color: #82b92e;
|
||||
|
@ -280,3 +283,36 @@ a.update_manager_button_open:hover {
|
|||
color: #fff;
|
||||
background-color: #82b92e;
|
||||
}
|
||||
|
||||
#um-update-details-header {
|
||||
background-image: url(../images/pandora_logo.png);
|
||||
}
|
||||
|
||||
.um-progress-bar {
|
||||
background-color: #8bb92e !important;
|
||||
}
|
||||
|
||||
.um-error {
|
||||
color: #e63c52;
|
||||
}
|
||||
|
||||
.um-success {
|
||||
color: #8bb92e;
|
||||
}
|
||||
|
||||
.dz-success-mark svg {
|
||||
background: #8bb92e;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.newsletter_div {
|
||||
font-size: 12pt;
|
||||
margin: 5px 20px;
|
||||
float: left;
|
||||
padding-top: 23px;
|
||||
}
|
||||
.register_update_manager {
|
||||
margin: 5px 0 10px;
|
||||
float: left;
|
||||
padding-left: 15px;
|
||||
}
|
|
@ -0,0 +1,206 @@
|
|||
.um-box,
|
||||
.um-box * {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.um-box {
|
||||
border: 1px solid gray;
|
||||
width: 90%;
|
||||
height: 90%;
|
||||
margin: 5% auto;
|
||||
padding: 2em;
|
||||
}
|
||||
#update-list {
|
||||
max-height: 0;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
transition: max-height 0.15s ease-in-out;
|
||||
}
|
||||
|
||||
.update {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#um-loading {
|
||||
background-image: url(../images/spinner.gif);
|
||||
height: 1.3em;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
text-indent: 6em;
|
||||
}
|
||||
|
||||
#um-buttons {
|
||||
margin-top: 2em;
|
||||
}
|
||||
|
||||
#um-buttons button {
|
||||
margin: 0 1em 1em 1em;
|
||||
border: none;
|
||||
padding: 10px;
|
||||
cursor: pointer;
|
||||
background: #efefef;
|
||||
}
|
||||
|
||||
#um-buttons button:hover {
|
||||
background: #ddd;
|
||||
}
|
||||
|
||||
#um-buttons button:active {
|
||||
background: #ccc;
|
||||
}
|
||||
|
||||
.ui-widget.ui-widget-content {
|
||||
border: none;
|
||||
}
|
||||
#um-update-details {
|
||||
display: none;
|
||||
background: #fff;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#um-update-details * {
|
||||
font-size: 16pt;
|
||||
}
|
||||
|
||||
#um-update-details-header {
|
||||
color: #fff;
|
||||
background-color: #343434;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 20%;
|
||||
height: 3em;
|
||||
text-align: center;
|
||||
display: block;
|
||||
padding-top: 5.7em;
|
||||
width: 100%;
|
||||
}
|
||||
#um-update-details-content {
|
||||
padding: 2em;
|
||||
}
|
||||
|
||||
#um-progress {
|
||||
width: 100%;
|
||||
min-width: 450px;
|
||||
box-sizing: border-box;
|
||||
padding: 2em 3em;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.um-progress-bar-container {
|
||||
box-sizing: border-box;
|
||||
padding: 0;
|
||||
height: 1.4em;
|
||||
width: 90%;
|
||||
border: 1px solid #ddd;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#um-progress .um-progress-bar-container span {
|
||||
font-size: 0.8em;
|
||||
line-height: 1.5em;
|
||||
font-weight: bolder;
|
||||
color: #343434;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.um-progress-bar {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
width: 0%;
|
||||
background-color: #1f282b;
|
||||
}
|
||||
|
||||
#box_offline form {
|
||||
background-color: #373a3d;
|
||||
background-image: -moz-linear-gradient(top, #373a3d, #313437);
|
||||
border-radius: 3px;
|
||||
font-family: "PT Sans Narrow", sans-serif;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
}
|
||||
|
||||
#box_offline form div#upload {
|
||||
width: 90%;
|
||||
height: 90%;
|
||||
margin: 0 auto;
|
||||
background-color: #e6e6e6;
|
||||
border: 20px solid rgba(0, 0, 0, 0);
|
||||
border-radius: 3px;
|
||||
color: #707070;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin-bottom: 30px;
|
||||
padding: 40px 50px;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
div#upload span.browse {
|
||||
background-color: #82b92e;
|
||||
border-radius: 2px;
|
||||
color: #ffffff;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
line-height: 1;
|
||||
padding: 12px 26px;
|
||||
}
|
||||
|
||||
.dz-upload {
|
||||
display: block;
|
||||
background-color: red;
|
||||
height: 10px;
|
||||
width: 0%;
|
||||
}
|
||||
|
||||
.dz-success-mark,
|
||||
.dz-error-mark {
|
||||
display: none;
|
||||
}
|
||||
|
||||
span.warning {
|
||||
min-width: 10em;
|
||||
min-height: 10em;
|
||||
background: url(../images/icono_warning.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: 80%;
|
||||
margin: 0em 1em 0em 0em;
|
||||
}
|
||||
|
||||
.ui-dialog-content.ui-widget-content {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.ui-dialog-content.ui-widget-content p {
|
||||
word-break: keep-all;
|
||||
}
|
||||
|
||||
.license_text {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.license_text input {
|
||||
width: 290px;
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
.license_text a {
|
||||
font-size: 11pt;
|
||||
color: #82b92e;
|
||||
}
|
||||
|
||||
input.error {
|
||||
border: 1px solid #ff3333;
|
||||
}
|
||||
|
||||
textarea#signature {
|
||||
margin-top: 1em;
|
||||
}
|
|
@ -0,0 +1,559 @@
|
|||
<?php
|
||||
// phpcs:disable Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
|
||||
/**
|
||||
* Test file. UMC.
|
||||
*/
|
||||
|
||||
namespace UpdateManager;
|
||||
|
||||
// Load classes.
|
||||
require_once __DIR__.'/../vendor/autoload.php';
|
||||
|
||||
// Load Config class from UMC to read test.ini settings.
|
||||
require_once __DIR__.'/../../src/lib/Config.php';
|
||||
require_once __DIR__.'/../../src/lib/License.php';
|
||||
require_once __DIR__.'/../../src/lib/DB.php';
|
||||
|
||||
/**
|
||||
* Test the Client class.
|
||||
*/
|
||||
class ClientTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
|
||||
/**
|
||||
* Settings.
|
||||
*
|
||||
* @var \Config
|
||||
*/
|
||||
private $conf;
|
||||
|
||||
/**
|
||||
* Development license.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $development_license;
|
||||
|
||||
/**
|
||||
* Customer license.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $customer_license;
|
||||
|
||||
/**
|
||||
* UMS dbh
|
||||
*
|
||||
* @var \DB
|
||||
*/
|
||||
private $ums_dbh;
|
||||
|
||||
|
||||
/**
|
||||
* Creates a couple of OUM files to test update process.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function generateOUMs()
|
||||
{
|
||||
$path = sys_get_temp_dir().'/oum/';
|
||||
$target = 'src/repo/test';
|
||||
$online = (bool) $this->conf->token('online');
|
||||
|
||||
if ($online === true) {
|
||||
$target = '/var/www/html/updatemanager/repo/test';
|
||||
} else if (substr($target, 0, 1) !== '/') {
|
||||
$target = __DIR__.'/../../'.$target;
|
||||
}
|
||||
|
||||
// OUM 1.
|
||||
system('rm -rf '.$path);
|
||||
mkdir($path, 0777, true);
|
||||
mkdir($path.'/extras');
|
||||
mkdir($path.'/extras/delete_files');
|
||||
|
||||
system('echo -e "la cosa del vivir\nmola mucho\n" >'.$path.'1');
|
||||
system('cd '.$path.' && zip '.$target.'/test_1.zip -r * >/dev/null');
|
||||
system('cp '.$target.'/test_1.zip /tmp/test_prueba.zip');
|
||||
system('mv '.$target.'/test_1.zip '.$target.'/test_1.oum');
|
||||
|
||||
$this->ums_dbh->insert(
|
||||
'um_packages',
|
||||
[
|
||||
'version' => 1,
|
||||
'description' => 'test1',
|
||||
'file_name' => '../test/test_1.oum',
|
||||
'status' => 'testing',
|
||||
]
|
||||
);
|
||||
|
||||
// OUM 2.
|
||||
system('rm -rf '.$path);
|
||||
mkdir($path, 0777, true);
|
||||
mkdir($path.'/extras');
|
||||
mkdir($path.'/extras/delete_files');
|
||||
mkdir($path.'/extras/mr');
|
||||
|
||||
system('echo "file2" > '.$path.'2');
|
||||
system('echo -e "create table tete (id int);\n" >'.$path.'extras/mr/1.sql');
|
||||
system('cd '.$path.' && zip '.$target.'/test_2.zip -r * >/dev/null');
|
||||
system('mv '.$target.'/test_2.zip '.$target.'/test_2.oum');
|
||||
|
||||
$this->ums_dbh->insert(
|
||||
'um_packages',
|
||||
[
|
||||
'version' => 2,
|
||||
'description' => 'test2',
|
||||
'file_name' => '../test/test_2.oum',
|
||||
'status' => 'testing',
|
||||
]
|
||||
);
|
||||
|
||||
// OUM 3.
|
||||
system('rm -rf '.$path);
|
||||
mkdir($path, 0777, true);
|
||||
mkdir($path.'/extras');
|
||||
mkdir($path.'/extras/delete_files');
|
||||
mkdir($path.'/extras/mr');
|
||||
|
||||
system('echo "file3" > '.$path.'3');
|
||||
file_put_contents($path.'extras/delete_files/delete_files.txt', "1\n");
|
||||
system('echo -e "create table teta (id int);\n" >'.$path.'extras/mr/2.sql');
|
||||
system('echo -e "create table teto (id int);\n" >>'.$path.'extras/mr/2.sql');
|
||||
system('cd '.$path.' && zip '.$target.'/test_3.zip -r * >/dev/null');
|
||||
system('mv '.$target.'/test_3.zip '.$target.'/test_3.oum');
|
||||
|
||||
$this->ums_dbh->insert(
|
||||
'um_packages',
|
||||
[
|
||||
'version' => 3,
|
||||
'description' => 'test3',
|
||||
'file_name' => '../test/test_3.oum',
|
||||
'status' => 'testing',
|
||||
]
|
||||
);
|
||||
|
||||
// OUM 4.
|
||||
system('rm -rf '.$path);
|
||||
mkdir($path, 0777, true);
|
||||
mkdir($path.'/extras');
|
||||
mkdir($path.'/extras/delete_files');
|
||||
mkdir($path.'/extras/mr');
|
||||
|
||||
system('echo "file4" > '.$path.'4');
|
||||
file_put_contents($path.'extras/delete_files/delete_files.txt', "1\n");
|
||||
system('echo -e "drop table teta;\n" >'.$path.'extras/mr/3.sql');
|
||||
system('cd '.$path.' && zip '.$target.'/test_4.zip -r * >/dev/null');
|
||||
system('mv '.$target.'/test_4.zip '.$target.'/test_4.oum');
|
||||
|
||||
$this->ums_dbh->insert(
|
||||
'um_packages',
|
||||
[
|
||||
'version' => 4,
|
||||
'description' => 'test4',
|
||||
'file_name' => '../test/test_4.oum',
|
||||
'status' => 'testing',
|
||||
]
|
||||
);
|
||||
|
||||
$this->ums_dbh->insert(
|
||||
'um_packages',
|
||||
[
|
||||
'version' => 5,
|
||||
'description' => 'test5',
|
||||
'file_name' => 'unexistent.oum',
|
||||
'status' => 'published',
|
||||
]
|
||||
);
|
||||
|
||||
// Cleanup.
|
||||
system('rm -rf '.$path);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Base settings.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setup(): void
|
||||
{
|
||||
// Load the conf.
|
||||
try {
|
||||
$this->conf = new \Config('client/conf/test.ini');
|
||||
} catch (\Exception $e) {
|
||||
$this->fail($e->xdebug_message);
|
||||
}
|
||||
|
||||
// Verify endpoint has all needed stuff, like licenses and OUM packages.
|
||||
$this->ums_dbh = new \DB(
|
||||
$this->conf->token('dbhost'),
|
||||
$this->conf->token('dbname'),
|
||||
$this->conf->token('dbuser'),
|
||||
$this->conf->token('dbpass')
|
||||
);
|
||||
|
||||
if ((bool) $this->ums_dbh === false) {
|
||||
$this->fail(
|
||||
'Failed to prepare environment '.$this->conf->token('dbhost')
|
||||
);
|
||||
}
|
||||
|
||||
// Cleanup.
|
||||
foreach (['Development', 'Customer'] as $company) {
|
||||
$id = $this->ums_dbh->select_value(
|
||||
'SELECT id FROM um_licenses WHERE company=?',
|
||||
[$company]
|
||||
);
|
||||
|
||||
if ($id > 0) {
|
||||
$this->ums_dbh->delete(
|
||||
'um_licenses',
|
||||
$id
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Load minimum examples.
|
||||
$this->ums_dbh->insert(
|
||||
'um_licenses',
|
||||
[
|
||||
'company' => 'Development',
|
||||
'license_key' => 4,
|
||||
'expiry_date' => date('Y-m-d', strtotime(date('Y-m-d', time()).' + 365 day')),
|
||||
'developer' => 1,
|
||||
]
|
||||
);
|
||||
$this->ums_dbh->insert(
|
||||
'um_licenses',
|
||||
[
|
||||
'company' => 'Customer',
|
||||
'license_key' => 5,
|
||||
'expiry_date' => date('Y-m-d', strtotime(date('Y-m-d', time()).' + 365 day')),
|
||||
'developer' => 0,
|
||||
]
|
||||
);
|
||||
|
||||
$rs = \License::all_licenses(
|
||||
$this->ums_dbh,
|
||||
1,
|
||||
0,
|
||||
['company' => 'Development'],
|
||||
[
|
||||
'column' => 'company',
|
||||
'dir' => 'asc',
|
||||
],
|
||||
['*']
|
||||
);
|
||||
|
||||
$this->development_license = $rs[0]['license_key'];
|
||||
$this->assertEquals(1, $rs[0]['developer'], 'Not a developer license');
|
||||
|
||||
$rs = \License::all_licenses(
|
||||
$this->ums_dbh,
|
||||
1,
|
||||
0,
|
||||
['company' => 'Customer'],
|
||||
[
|
||||
'column' => 'company',
|
||||
'dir' => 'asc',
|
||||
],
|
||||
['*']
|
||||
);
|
||||
|
||||
$this->customer_license = $rs[0]['license_key'];
|
||||
|
||||
$this->base = $this->conf->token('homedir');
|
||||
system('rm -rf '.$this->base.'/open');
|
||||
system('rm -rf '.$this->base.'/enterprise');
|
||||
|
||||
$this->generateOUMs();
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Cleanup.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function teardown():void
|
||||
{
|
||||
foreach (['test1', 'test2', 'test3', 'test4', 'test5'] as $t) {
|
||||
$id = $this->ums_dbh->select_value(
|
||||
'SELECT id FROM um_packages WHERE description=?',
|
||||
[$t]
|
||||
);
|
||||
$this->ums_dbh->delete(
|
||||
'um_packages',
|
||||
$id
|
||||
);
|
||||
}
|
||||
|
||||
// Cleanup.
|
||||
foreach (['Development', 'Customer'] as $company) {
|
||||
$id = $this->ums_dbh->select_value(
|
||||
'SELECT id FROM um_licenses WHERE company=?',
|
||||
[$company]
|
||||
);
|
||||
if ($id > 0) {
|
||||
$this->ums_dbh->delete(
|
||||
'um_licenses',
|
||||
$id
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
system('rm -rf '.sys_get_temp_dir().'/oum');
|
||||
system('rm -rf '.$this->base.'/open');
|
||||
system('rm -rf '.$this->base.'/enterprise');
|
||||
system('rm -rf '.$this->base);
|
||||
system('rm -f '.sys_get_temp_dir().'/test*.oum');
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test client.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testInvalidClient()
|
||||
{
|
||||
try {
|
||||
$this->umc_invalid = new Client([]);
|
||||
} catch (\Exception $e) {
|
||||
$this->umc_invalid = new Client(
|
||||
[
|
||||
'host' => $this->conf->token('umc_host'),
|
||||
'port' => $this->conf->token('umc_port'),
|
||||
'remote_config' => sys_get_temp_dir().'/oum',
|
||||
'endpoint' => 'notexists',
|
||||
'license' => 'UNKNOWN',
|
||||
'insecure' => false,
|
||||
'dbconnection' => null,
|
||||
'homedir' => $this->base.'/unexistent',
|
||||
'proxy' => [
|
||||
'user' => '',
|
||||
'host' => '',
|
||||
'port' => '',
|
||||
'password' => '',
|
||||
],
|
||||
|
||||
]
|
||||
);
|
||||
|
||||
$this->assertFalse(
|
||||
$this->umc_invalid->test()
|
||||
);
|
||||
|
||||
$this->umc_invalid = new Client(
|
||||
[
|
||||
'host' => $this->conf->token('umc_host'),
|
||||
'port' => $this->conf->token('umc_port'),
|
||||
'endpoint' => 'notexists',
|
||||
'license' => 'UNKNOWN',
|
||||
'insecure' => true,
|
||||
'homedir' => $this->base.'/unexistent',
|
||||
]
|
||||
);
|
||||
|
||||
$this->assertNull(
|
||||
$this->umc_invalid->listUpdates()
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$this->fail('Expected exception not found');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test opensource updates.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function atestOpen()
|
||||
{
|
||||
if (is_dir($this->base.'/open/') === false) {
|
||||
mkdir($this->base.'/open/', 0777, true);
|
||||
}
|
||||
|
||||
$dbh_open = new \mysqli(
|
||||
$this->conf->token('dbhost'),
|
||||
$this->conf->token('dbuser'),
|
||||
$this->conf->token('dbpass')
|
||||
);
|
||||
|
||||
if ($dbh_open->select_db('open') === false) {
|
||||
$dbh_open->query('create database open');
|
||||
$dbh_open->select_db('open');
|
||||
}
|
||||
|
||||
$umc_open = new Client(
|
||||
[
|
||||
'host' => $this->conf->token('umc_host'),
|
||||
'port' => $this->conf->token('umc_port'),
|
||||
'endpoint' => ($this->conf->token('endpoint') ?? ''),
|
||||
'license' => 'PANDORA-FREE',
|
||||
'insecure' => true,
|
||||
'homedir' => $this->base.'/open',
|
||||
'dbconnection' => $dbh_open,
|
||||
'registration_code' => 'unregistered',
|
||||
'current_package' => 0,
|
||||
'MR' => 0,
|
||||
]
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
true,
|
||||
$umc_open->test(),
|
||||
($umc_open->getLastError() ?? '')
|
||||
);
|
||||
|
||||
$open = $umc_open->listUpdates();
|
||||
$this->assertEquals(
|
||||
'190916',
|
||||
$open[0]['version'],
|
||||
($umc_open->getLastError() ?? '')
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
false,
|
||||
$umc_open->updateNextVersion(),
|
||||
($umc_open->getLastError() ?? '')
|
||||
);
|
||||
if (strpos(
|
||||
($umc_open->getLastError() ?? ''),
|
||||
'open.tusuario'
|
||||
) <= 0
|
||||
) {
|
||||
$this->fail(($umc_open->getLastError() ?? ''));
|
||||
}
|
||||
|
||||
$this->assertEquals(0, $umc_open->getMR());
|
||||
|
||||
$umc_open->getDBH()->query('DROP DATABASE `open`');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test enterprise updates.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testEnterprise()
|
||||
{
|
||||
if (is_dir($this->base.'/enterprise/') === false) {
|
||||
mkdir($this->base.'/enterprise/', 0777, true);
|
||||
}
|
||||
|
||||
$dbh_ent = new \mysqli(
|
||||
$this->conf->token('dbhost'),
|
||||
$this->conf->token('dbuser'),
|
||||
$this->conf->token('dbpass')
|
||||
);
|
||||
|
||||
if ($dbh_ent->select_db('ent') === false) {
|
||||
$dbh_ent->query('create database ent');
|
||||
$dbh_ent->select_db('ent');
|
||||
$dbh_ent->query(
|
||||
'create table tconfig(
|
||||
`id_config` int(10) unsigned NOT NULL auto_increment,
|
||||
`token` varchar(100),
|
||||
`value` text NOT NULL,
|
||||
primary key (`id_config`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8'
|
||||
);
|
||||
}
|
||||
|
||||
$umc_enterprise = new Client(
|
||||
[
|
||||
'host' => $this->conf->token('umc_host'),
|
||||
'port' => $this->conf->token('umc_port'),
|
||||
'remote_config' => sys_get_temp_dir().'/oum',
|
||||
'endpoint' => $this->conf->token('endpoint'),
|
||||
'license' => $this->development_license,
|
||||
'insecure' => true,
|
||||
'homedir' => $this->base.'/enterprise',
|
||||
'dbconnection' => $dbh_ent,
|
||||
'tmp' => sys_get_temp_dir(),
|
||||
]
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
true,
|
||||
$umc_enterprise->test(),
|
||||
($umc_enterprise->getLastError() ?? '')
|
||||
);
|
||||
|
||||
$ent = $umc_enterprise->listUpdates();
|
||||
$this->assertEquals(
|
||||
1,
|
||||
$ent[0]['version'],
|
||||
($umc_enterprise->getLastError() ?? '')
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
true,
|
||||
$umc_enterprise->updateNextVersion(),
|
||||
($umc_enterprise->getLastError() ?? '')
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
1,
|
||||
$umc_enterprise->getVersion(),
|
||||
($umc_enterprise->getLastError() ?? '')
|
||||
);
|
||||
|
||||
$this->assertEquals(0, $umc_enterprise->getMR());
|
||||
|
||||
$umc_enterprise->updateLastVersion();
|
||||
|
||||
$this->assertEquals(
|
||||
4,
|
||||
$umc_enterprise->getVersion(),
|
||||
($umc_enterprise->getLastError() ?? '')
|
||||
);
|
||||
|
||||
// Verify MR had worked.
|
||||
$this->assertEquals(3, $umc_enterprise->getMR());
|
||||
|
||||
// Verify delete files has worked.
|
||||
$this->assertTrue(
|
||||
file_exists($this->base.'/enterprise/3'),
|
||||
'File '.$this->base.'/enterprise/3 should exist'
|
||||
);
|
||||
$this->assertFalse(
|
||||
file_exists($this->base.'/enterprise/1'),
|
||||
'File '.$this->base.'/enterprise/1 should not exist'
|
||||
);
|
||||
|
||||
// Customer.
|
||||
$umc_enterprise = new Client(
|
||||
[
|
||||
'host' => $this->conf->token('umc_host'),
|
||||
'port' => $this->conf->token('umc_port'),
|
||||
'remote_config' => sys_get_temp_dir().'/oum',
|
||||
'endpoint' => $this->conf->token('endpoint'),
|
||||
'license' => $this->customer_license,
|
||||
'insecure' => true,
|
||||
'homedir' => $this->base.'/enterprise',
|
||||
'dbconnection' => $dbh_ent,
|
||||
'tmp' => sys_get_temp_dir(),
|
||||
]
|
||||
);
|
||||
|
||||
$this->assertFalse(
|
||||
$umc_enterprise->updateNextVersion()
|
||||
);
|
||||
|
||||
// Cleanup.
|
||||
$umc_enterprise->getDBH()->query('DROP DATABASE `ent`');
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,80 @@
|
|||
<?php
|
||||
|
||||
if ($argv === null) {
|
||||
header('Location: /');
|
||||
exit(0);
|
||||
}
|
||||
|
||||
// UMC dependencies.
|
||||
require_once __DIR__.'/vendor/autoload.php';
|
||||
|
||||
chdir(__DIR__.'/../../');
|
||||
$cnf_file = 'include/config.php';
|
||||
|
||||
if (file_exists($cnf_file) === false) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
require_once $cnf_file;
|
||||
|
||||
// PandoraFMS dependencies.
|
||||
require_once __DIR__.'/vendor/autoload.php';
|
||||
|
||||
use PandoraFMS\Core\Config;
|
||||
use PandoraFMS\Core\DBMaintainer;
|
||||
|
||||
global $config;
|
||||
|
||||
error_reporting(E_ALL ^ E_NOTICE);
|
||||
|
||||
try {
|
||||
$historical_dbh = null;
|
||||
if (isset($config['history_db_enabled']) === true
|
||||
&& (bool) $config['history_db_enabled'] === true
|
||||
) {
|
||||
$dbm = new DBMaintainer(
|
||||
[
|
||||
'host' => $config['history_db_host'],
|
||||
'port' => $config['history_db_port'],
|
||||
'name' => $config['history_db_name'],
|
||||
'user' => $config['history_db_user'],
|
||||
'pass' => $config['history_db_pass'],
|
||||
]
|
||||
);
|
||||
|
||||
$historical_dbh = $dbm->getDBH();
|
||||
}
|
||||
|
||||
$current_mr = db_get_value('value', 'tconfig', 'token', 'MR');
|
||||
|
||||
echo 'MR: '.$current_mr."\n";
|
||||
|
||||
if ((bool) $historical_dbh === true) {
|
||||
echo 'current historyDB MR: '.Config::get('MR', 'unknown', true)."\n";
|
||||
}
|
||||
|
||||
$umc = new UpdateManager\Client(
|
||||
[
|
||||
'homedir' => $config['homedir'],
|
||||
'dbconnection' => $config['dbconnection'],
|
||||
'historydb' => $historical_dbh,
|
||||
'MR' => (int) $current_mr,
|
||||
]
|
||||
);
|
||||
|
||||
if ($umc->applyAllMRPending() !== true) {
|
||||
echo ($umc->getMR() + 1).': '.$umc->getLastError();
|
||||
}
|
||||
|
||||
$current_mr = $umc->getMR();
|
||||
|
||||
echo 'current MR: '.$current_mr."\n";
|
||||
|
||||
if ((bool) $historical_dbh === true) {
|
||||
echo 'current historyDB MR: '.Config::get('MR', 'unknown', true)."\n";
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
echo $e->getMessage().' in '.$e->getFile().':'.$e->getLine()."\n";
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
|
||||
// autoload.php @generated by Composer
|
||||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInit6482daa1e61704139ecfb6f76b39fab6::getLoader();
|
|
@ -0,0 +1 @@
|
|||
../phpunit/phpunit/phpunit
|
|
@ -0,0 +1,479 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
/**
|
||||
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
|
||||
*
|
||||
* $loader = new \Composer\Autoload\ClassLoader();
|
||||
*
|
||||
* // register classes with namespaces
|
||||
* $loader->add('Symfony\Component', __DIR__.'/component');
|
||||
* $loader->add('Symfony', __DIR__.'/framework');
|
||||
*
|
||||
* // activate the autoloader
|
||||
* $loader->register();
|
||||
*
|
||||
* // to enable searching the include path (eg. for PEAR packages)
|
||||
* $loader->setUseIncludePath(true);
|
||||
*
|
||||
* In this example, if you try to use a class in the Symfony\Component
|
||||
* namespace or one of its children (Symfony\Component\Console for instance),
|
||||
* the autoloader will first look for the class under the component/
|
||||
* directory, and it will then fallback to the framework/ directory if not
|
||||
* found before giving up.
|
||||
*
|
||||
* This class is loosely based on the Symfony UniversalClassLoader.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
* @author Jordi Boggiano <j.boggiano@seld.be>
|
||||
* @see https://www.php-fig.org/psr/psr-0/
|
||||
* @see https://www.php-fig.org/psr/psr-4/
|
||||
*/
|
||||
class ClassLoader
|
||||
{
|
||||
private $vendorDir;
|
||||
|
||||
// PSR-4
|
||||
private $prefixLengthsPsr4 = array();
|
||||
private $prefixDirsPsr4 = array();
|
||||
private $fallbackDirsPsr4 = array();
|
||||
|
||||
// PSR-0
|
||||
private $prefixesPsr0 = array();
|
||||
private $fallbackDirsPsr0 = array();
|
||||
|
||||
private $useIncludePath = false;
|
||||
private $classMap = array();
|
||||
private $classMapAuthoritative = false;
|
||||
private $missingClasses = array();
|
||||
private $apcuPrefix;
|
||||
|
||||
private static $registeredLoaders = array();
|
||||
|
||||
public function __construct($vendorDir = null)
|
||||
{
|
||||
$this->vendorDir = $vendorDir;
|
||||
}
|
||||
|
||||
public function getPrefixes()
|
||||
{
|
||||
if (!empty($this->prefixesPsr0)) {
|
||||
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
|
||||
}
|
||||
|
||||
return array();
|
||||
}
|
||||
|
||||
public function getPrefixesPsr4()
|
||||
{
|
||||
return $this->prefixDirsPsr4;
|
||||
}
|
||||
|
||||
public function getFallbackDirs()
|
||||
{
|
||||
return $this->fallbackDirsPsr0;
|
||||
}
|
||||
|
||||
public function getFallbackDirsPsr4()
|
||||
{
|
||||
return $this->fallbackDirsPsr4;
|
||||
}
|
||||
|
||||
public function getClassMap()
|
||||
{
|
||||
return $this->classMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $classMap Class to filename map
|
||||
*/
|
||||
public function addClassMap(array $classMap)
|
||||
{
|
||||
if ($this->classMap) {
|
||||
$this->classMap = array_merge($this->classMap, $classMap);
|
||||
} else {
|
||||
$this->classMap = $classMap;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-0 directories for a given prefix, either
|
||||
* appending or prepending to the ones previously set for this prefix.
|
||||
*
|
||||
* @param string $prefix The prefix
|
||||
* @param array|string $paths The PSR-0 root directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
*/
|
||||
public function add($prefix, $paths, $prepend = false)
|
||||
{
|
||||
if (!$prefix) {
|
||||
if ($prepend) {
|
||||
$this->fallbackDirsPsr0 = array_merge(
|
||||
(array) $paths,
|
||||
$this->fallbackDirsPsr0
|
||||
);
|
||||
} else {
|
||||
$this->fallbackDirsPsr0 = array_merge(
|
||||
$this->fallbackDirsPsr0,
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$first = $prefix[0];
|
||||
if (!isset($this->prefixesPsr0[$first][$prefix])) {
|
||||
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
|
||||
|
||||
return;
|
||||
}
|
||||
if ($prepend) {
|
||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||
(array) $paths,
|
||||
$this->prefixesPsr0[$first][$prefix]
|
||||
);
|
||||
} else {
|
||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||
$this->prefixesPsr0[$first][$prefix],
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-4 directories for a given namespace, either
|
||||
* appending or prepending to the ones previously set for this namespace.
|
||||
*
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param array|string $paths The PSR-4 base directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function addPsr4($prefix, $paths, $prepend = false)
|
||||
{
|
||||
if (!$prefix) {
|
||||
// Register directories for the root namespace.
|
||||
if ($prepend) {
|
||||
$this->fallbackDirsPsr4 = array_merge(
|
||||
(array) $paths,
|
||||
$this->fallbackDirsPsr4
|
||||
);
|
||||
} else {
|
||||
$this->fallbackDirsPsr4 = array_merge(
|
||||
$this->fallbackDirsPsr4,
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
|
||||
// Register directories for a new namespace.
|
||||
$length = strlen($prefix);
|
||||
if ('\\' !== $prefix[$length - 1]) {
|
||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||
}
|
||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
||||
} elseif ($prepend) {
|
||||
// Prepend directories for an already registered namespace.
|
||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||
(array) $paths,
|
||||
$this->prefixDirsPsr4[$prefix]
|
||||
);
|
||||
} else {
|
||||
// Append directories for an already registered namespace.
|
||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||
$this->prefixDirsPsr4[$prefix],
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-0 directories for a given prefix,
|
||||
* replacing any others previously set for this prefix.
|
||||
*
|
||||
* @param string $prefix The prefix
|
||||
* @param array|string $paths The PSR-0 base directories
|
||||
*/
|
||||
public function set($prefix, $paths)
|
||||
{
|
||||
if (!$prefix) {
|
||||
$this->fallbackDirsPsr0 = (array) $paths;
|
||||
} else {
|
||||
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-4 directories for a given namespace,
|
||||
* replacing any others previously set for this namespace.
|
||||
*
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param array|string $paths The PSR-4 base directories
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function setPsr4($prefix, $paths)
|
||||
{
|
||||
if (!$prefix) {
|
||||
$this->fallbackDirsPsr4 = (array) $paths;
|
||||
} else {
|
||||
$length = strlen($prefix);
|
||||
if ('\\' !== $prefix[$length - 1]) {
|
||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||
}
|
||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns on searching the include path for class files.
|
||||
*
|
||||
* @param bool $useIncludePath
|
||||
*/
|
||||
public function setUseIncludePath($useIncludePath)
|
||||
{
|
||||
$this->useIncludePath = $useIncludePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Can be used to check if the autoloader uses the include path to check
|
||||
* for classes.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getUseIncludePath()
|
||||
{
|
||||
return $this->useIncludePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns off searching the prefix and fallback directories for classes
|
||||
* that have not been registered with the class map.
|
||||
*
|
||||
* @param bool $classMapAuthoritative
|
||||
*/
|
||||
public function setClassMapAuthoritative($classMapAuthoritative)
|
||||
{
|
||||
$this->classMapAuthoritative = $classMapAuthoritative;
|
||||
}
|
||||
|
||||
/**
|
||||
* Should class lookup fail if not found in the current class map?
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isClassMapAuthoritative()
|
||||
{
|
||||
return $this->classMapAuthoritative;
|
||||
}
|
||||
|
||||
/**
|
||||
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
||||
*
|
||||
* @param string|null $apcuPrefix
|
||||
*/
|
||||
public function setApcuPrefix($apcuPrefix)
|
||||
{
|
||||
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* The APCu prefix in use, or null if APCu caching is not enabled.
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getApcuPrefix()
|
||||
{
|
||||
return $this->apcuPrefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers this instance as an autoloader.
|
||||
*
|
||||
* @param bool $prepend Whether to prepend the autoloader or not
|
||||
*/
|
||||
public function register($prepend = false)
|
||||
{
|
||||
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
||||
|
||||
if (null === $this->vendorDir) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($prepend) {
|
||||
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
|
||||
} else {
|
||||
unset(self::$registeredLoaders[$this->vendorDir]);
|
||||
self::$registeredLoaders[$this->vendorDir] = $this;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregisters this instance as an autoloader.
|
||||
*/
|
||||
public function unregister()
|
||||
{
|
||||
spl_autoload_unregister(array($this, 'loadClass'));
|
||||
|
||||
if (null !== $this->vendorDir) {
|
||||
unset(self::$registeredLoaders[$this->vendorDir]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the given class or interface.
|
||||
*
|
||||
* @param string $class The name of the class
|
||||
* @return bool|null True if loaded, null otherwise
|
||||
*/
|
||||
public function loadClass($class)
|
||||
{
|
||||
if ($file = $this->findFile($class)) {
|
||||
includeFile($file);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the path to the file where the class is defined.
|
||||
*
|
||||
* @param string $class The name of the class
|
||||
*
|
||||
* @return string|false The path if found, false otherwise
|
||||
*/
|
||||
public function findFile($class)
|
||||
{
|
||||
// class map lookup
|
||||
if (isset($this->classMap[$class])) {
|
||||
return $this->classMap[$class];
|
||||
}
|
||||
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
|
||||
return false;
|
||||
}
|
||||
if (null !== $this->apcuPrefix) {
|
||||
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
|
||||
if ($hit) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
$file = $this->findFileWithExtension($class, '.php');
|
||||
|
||||
// Search for Hack files if we are running on HHVM
|
||||
if (false === $file && defined('HHVM_VERSION')) {
|
||||
$file = $this->findFileWithExtension($class, '.hh');
|
||||
}
|
||||
|
||||
if (null !== $this->apcuPrefix) {
|
||||
apcu_add($this->apcuPrefix.$class, $file);
|
||||
}
|
||||
|
||||
if (false === $file) {
|
||||
// Remember that this class does not exist.
|
||||
$this->missingClasses[$class] = true;
|
||||
}
|
||||
|
||||
return $file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the currently registered loaders indexed by their corresponding vendor directories.
|
||||
*
|
||||
* @return self[]
|
||||
*/
|
||||
public static function getRegisteredLoaders()
|
||||
{
|
||||
return self::$registeredLoaders;
|
||||
}
|
||||
|
||||
private function findFileWithExtension($class, $ext)
|
||||
{
|
||||
// PSR-4 lookup
|
||||
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
|
||||
|
||||
$first = $class[0];
|
||||
if (isset($this->prefixLengthsPsr4[$first])) {
|
||||
$subPath = $class;
|
||||
while (false !== $lastPos = strrpos($subPath, '\\')) {
|
||||
$subPath = substr($subPath, 0, $lastPos);
|
||||
$search = $subPath . '\\';
|
||||
if (isset($this->prefixDirsPsr4[$search])) {
|
||||
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
|
||||
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
||||
if (file_exists($file = $dir . $pathEnd)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-4 fallback dirs
|
||||
foreach ($this->fallbackDirsPsr4 as $dir) {
|
||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-0 lookup
|
||||
if (false !== $pos = strrpos($class, '\\')) {
|
||||
// namespaced class name
|
||||
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
|
||||
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
|
||||
} else {
|
||||
// PEAR-like class name
|
||||
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
|
||||
}
|
||||
|
||||
if (isset($this->prefixesPsr0[$first])) {
|
||||
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
|
||||
if (0 === strpos($class, $prefix)) {
|
||||
foreach ($dirs as $dir) {
|
||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-0 fallback dirs
|
||||
foreach ($this->fallbackDirsPsr0 as $dir) {
|
||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-0 include paths.
|
||||
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
|
||||
return $file;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Scope isolated include.
|
||||
*
|
||||
* Prevents access to $this/self from included files.
|
||||
*/
|
||||
function includeFile($file)
|
||||
{
|
||||
include $file;
|
||||
}
|
|
@ -0,0 +1,550 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
use Composer\Autoload\ClassLoader;
|
||||
use Composer\Semver\VersionParser;
|
||||
|
||||
/**
|
||||
* This class is copied in every Composer installed project and available to all
|
||||
*
|
||||
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||
*
|
||||
* To require it's presence, you can require `composer-runtime-api ^2.0`
|
||||
*/
|
||||
class InstalledVersions
|
||||
{
|
||||
private static $installed = array (
|
||||
'root' =>
|
||||
array (
|
||||
'pretty_version' => 'dev-develop',
|
||||
'version' => 'dev-develop',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '48d86a9697ae4e37c97520db416201371e48a5ac',
|
||||
'name' => 'articapfms/update_manager_client',
|
||||
),
|
||||
'versions' =>
|
||||
array (
|
||||
'articapfms/update_manager_client' =>
|
||||
array (
|
||||
'pretty_version' => 'dev-develop',
|
||||
'version' => 'dev-develop',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '48d86a9697ae4e37c97520db416201371e48a5ac',
|
||||
),
|
||||
'doctrine/instantiator' =>
|
||||
array (
|
||||
'pretty_version' => '1.4.0',
|
||||
'version' => '1.4.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'd56bf6102915de5702778fe20f2de3b2fe570b5b',
|
||||
),
|
||||
'myclabs/deep-copy' =>
|
||||
array (
|
||||
'pretty_version' => '1.10.2',
|
||||
'version' => '1.10.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '776f831124e9c62e1a2c601ecc52e776d8bb7220',
|
||||
'replaced' =>
|
||||
array (
|
||||
0 => '1.10.2',
|
||||
),
|
||||
),
|
||||
'phar-io/manifest' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.1',
|
||||
'version' => '2.0.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '85265efd3af7ba3ca4b2a2c34dbfc5788dd29133',
|
||||
),
|
||||
'phar-io/version' =>
|
||||
array (
|
||||
'pretty_version' => '3.1.0',
|
||||
'version' => '3.1.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'bae7c545bef187884426f042434e561ab1ddb182',
|
||||
),
|
||||
'phpdocumentor/reflection-common' =>
|
||||
array (
|
||||
'pretty_version' => '2.2.0',
|
||||
'version' => '2.2.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '1d01c49d4ed62f25aa84a747ad35d5a16924662b',
|
||||
),
|
||||
'phpdocumentor/reflection-docblock' =>
|
||||
array (
|
||||
'pretty_version' => '5.2.2',
|
||||
'version' => '5.2.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '069a785b2141f5bcf49f3e353548dc1cce6df556',
|
||||
),
|
||||
'phpdocumentor/type-resolver' =>
|
||||
array (
|
||||
'pretty_version' => '1.4.0',
|
||||
'version' => '1.4.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0',
|
||||
),
|
||||
'phpspec/prophecy' =>
|
||||
array (
|
||||
'pretty_version' => '1.12.2',
|
||||
'version' => '1.12.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '245710e971a030f42e08f4912863805570f23d39',
|
||||
),
|
||||
'phpunit/php-code-coverage' =>
|
||||
array (
|
||||
'pretty_version' => '7.0.14',
|
||||
'version' => '7.0.14.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'bb7c9a210c72e4709cdde67f8b7362f672f2225c',
|
||||
),
|
||||
'phpunit/php-file-iterator' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.3',
|
||||
'version' => '2.0.3.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '4b49fb70f067272b659ef0174ff9ca40fdaa6357',
|
||||
),
|
||||
'phpunit/php-text-template' =>
|
||||
array (
|
||||
'pretty_version' => '1.2.1',
|
||||
'version' => '1.2.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '31f8b717e51d9a2afca6c9f046f5d69fc27c8686',
|
||||
),
|
||||
'phpunit/php-timer' =>
|
||||
array (
|
||||
'pretty_version' => '2.1.3',
|
||||
'version' => '2.1.3.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '2454ae1765516d20c4ffe103d85a58a9a3bd5662',
|
||||
),
|
||||
'phpunit/php-token-stream' =>
|
||||
array (
|
||||
'pretty_version' => '4.0.4',
|
||||
'version' => '4.0.4.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'a853a0e183b9db7eed023d7933a858fa1c8d25a3',
|
||||
),
|
||||
'phpunit/phpunit' =>
|
||||
array (
|
||||
'pretty_version' => '8.5.14',
|
||||
'version' => '8.5.14.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'c25f79895d27b6ecd5abfa63de1606b786a461a3',
|
||||
),
|
||||
'sebastian/code-unit-reverse-lookup' =>
|
||||
array (
|
||||
'pretty_version' => '1.0.2',
|
||||
'version' => '1.0.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '1de8cd5c010cb153fcd68b8d0f64606f523f7619',
|
||||
),
|
||||
'sebastian/comparator' =>
|
||||
array (
|
||||
'pretty_version' => '3.0.3',
|
||||
'version' => '3.0.3.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '1071dfcef776a57013124ff35e1fc41ccd294758',
|
||||
),
|
||||
'sebastian/diff' =>
|
||||
array (
|
||||
'pretty_version' => '3.0.3',
|
||||
'version' => '3.0.3.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '14f72dd46eaf2f2293cbe79c93cc0bc43161a211',
|
||||
),
|
||||
'sebastian/environment' =>
|
||||
array (
|
||||
'pretty_version' => '4.2.4',
|
||||
'version' => '4.2.4.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'd47bbbad83711771f167c72d4e3f25f7fcc1f8b0',
|
||||
),
|
||||
'sebastian/exporter' =>
|
||||
array (
|
||||
'pretty_version' => '3.1.3',
|
||||
'version' => '3.1.3.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '6b853149eab67d4da22291d36f5b0631c0fd856e',
|
||||
),
|
||||
'sebastian/global-state' =>
|
||||
array (
|
||||
'pretty_version' => '3.0.1',
|
||||
'version' => '3.0.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '474fb9edb7ab891665d3bfc6317f42a0a150454b',
|
||||
),
|
||||
'sebastian/object-enumerator' =>
|
||||
array (
|
||||
'pretty_version' => '3.0.4',
|
||||
'version' => '3.0.4.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2',
|
||||
),
|
||||
'sebastian/object-reflector' =>
|
||||
array (
|
||||
'pretty_version' => '1.1.2',
|
||||
'version' => '1.1.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '9b8772b9cbd456ab45d4a598d2dd1a1bced6363d',
|
||||
),
|
||||
'sebastian/recursion-context' =>
|
||||
array (
|
||||
'pretty_version' => '3.0.1',
|
||||
'version' => '3.0.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '367dcba38d6e1977be014dc4b22f47a484dac7fb',
|
||||
),
|
||||
'sebastian/resource-operations' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.2',
|
||||
'version' => '2.0.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '31d35ca87926450c44eae7e2611d45a7a65ea8b3',
|
||||
),
|
||||
'sebastian/type' =>
|
||||
array (
|
||||
'pretty_version' => '1.1.4',
|
||||
'version' => '1.1.4.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '0150cfbc4495ed2df3872fb31b26781e4e077eb4',
|
||||
),
|
||||
'sebastian/version' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.1',
|
||||
'version' => '2.0.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '99732be0ddb3361e16ad77b68ba41efc8e979019',
|
||||
),
|
||||
'symfony/polyfill-ctype' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.1',
|
||||
'version' => '1.22.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'c6c942b1ac76c82448322025e084cadc56048b4e',
|
||||
),
|
||||
'theseer/tokenizer' =>
|
||||
array (
|
||||
'pretty_version' => '1.2.0',
|
||||
'version' => '1.2.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '75a63c33a8577608444246075ea0af0d052e452a',
|
||||
),
|
||||
'webmozart/assert' =>
|
||||
array (
|
||||
'pretty_version' => '1.9.1',
|
||||
'version' => '1.9.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'bafc69caeb4d49c39fd0779086c03a3738cbb389',
|
||||
),
|
||||
),
|
||||
);
|
||||
private static $canGetVendors;
|
||||
private static $installedByVendor = array();
|
||||
|
||||
/**
|
||||
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||
*
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackages()
|
||||
{
|
||||
$packages = array();
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
$packages[] = array_keys($installed['versions']);
|
||||
}
|
||||
|
||||
if (1 === \count($packages)) {
|
||||
return $packages[0];
|
||||
}
|
||||
|
||||
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package is installed
|
||||
*
|
||||
* This also returns true if the package name is provided or replaced by another package
|
||||
*
|
||||
* @param string $packageName
|
||||
* @return bool
|
||||
*/
|
||||
public static function isInstalled($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (isset($installed['versions'][$packageName])) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package satisfies a version constraint
|
||||
*
|
||||
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||
*
|
||||
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||
*
|
||||
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||
* @param string $packageName
|
||||
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||
{
|
||||
$constraint = $parser->parseConstraints($constraint);
|
||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||
|
||||
return $provided->matches($constraint);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||
*
|
||||
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||
* whether a given version of a package is installed, and not just whether it exists
|
||||
*
|
||||
* @param string $packageName
|
||||
* @return string Version constraint usable with composer/semver
|
||||
*/
|
||||
public static function getVersionRanges($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$ranges = array();
|
||||
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||
}
|
||||
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||
}
|
||||
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||
}
|
||||
|
||||
return implode(' || ', $ranges);
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getPrettyVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||
*/
|
||||
public static function getReference($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['reference'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[]}
|
||||
*/
|
||||
public static function getRootPackage()
|
||||
{
|
||||
$installed = self::getInstalled();
|
||||
|
||||
return $installed[0]['root'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw installed.php data for custom implementations
|
||||
*
|
||||
* @return array[]
|
||||
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[]}, versions: array<string, array{pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[]}>}
|
||||
*/
|
||||
public static function getRawData()
|
||||
{
|
||||
return self::$installed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets you reload the static array from another file
|
||||
*
|
||||
* This is only useful for complex integrations in which a project needs to use
|
||||
* this class but then also needs to execute another project's autoloader in process,
|
||||
* and wants to ensure both projects have access to their version of installed.php.
|
||||
*
|
||||
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||
* the data it needs from this class, then call reload() with
|
||||
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||
* the project in which it runs can then also use this class safely, without
|
||||
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||
*
|
||||
* @param array[] $data A vendor/composer/installed.php data set
|
||||
* @return void
|
||||
*
|
||||
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[]}, versions: array<string, array{pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[]}>} $data
|
||||
*/
|
||||
public static function reload($data)
|
||||
{
|
||||
self::$installed = $data;
|
||||
self::$installedByVendor = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[]}, versions: array<string, array{pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[]}>}>
|
||||
*/
|
||||
private static function getInstalled()
|
||||
{
|
||||
if (null === self::$canGetVendors) {
|
||||
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||
}
|
||||
|
||||
$installed = array();
|
||||
|
||||
if (self::$canGetVendors) {
|
||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$installed[] = self::$installed;
|
||||
|
||||
return $installed;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
Copyright (c) Nils Adermann, Jordi Boggiano
|
||||
|
||||
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.
|
|
@ -0,0 +1,594 @@
|
|||
<?php
|
||||
|
||||
// autoload_classmap.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
||||
'PHPUnit\\Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php',
|
||||
'PHPUnit\\Framework\\Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php',
|
||||
'PHPUnit\\Framework\\AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/AssertionFailedError.php',
|
||||
'PHPUnit\\Framework\\CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/CodeCoverageException.php',
|
||||
'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php',
|
||||
'PHPUnit\\Framework\\Constraint\\ArraySubset' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php',
|
||||
'PHPUnit\\Framework\\Constraint\\Attribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php',
|
||||
'PHPUnit\\Framework\\Constraint\\Callback' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Callback.php',
|
||||
'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php',
|
||||
'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php',
|
||||
'PHPUnit\\Framework\\Constraint\\Composite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Composite.php',
|
||||
'PHPUnit\\Framework\\Constraint\\Constraint' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php',
|
||||
'PHPUnit\\Framework\\Constraint\\Count' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Count.php',
|
||||
'PHPUnit\\Framework\\Constraint\\DirectoryExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php',
|
||||
'PHPUnit\\Framework\\Constraint\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception.php',
|
||||
'PHPUnit\\Framework\\Constraint\\ExceptionCode' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php',
|
||||
'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php',
|
||||
'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php',
|
||||
'PHPUnit\\Framework\\Constraint\\FileExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php',
|
||||
'PHPUnit\\Framework\\Constraint\\GreaterThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsAnything' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsEmpty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsFalse' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsFinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsInfinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsNan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsNull' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsReadable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsTrue' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsType' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsType.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsWritable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php',
|
||||
'PHPUnit\\Framework\\Constraint\\JsonMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php',
|
||||
'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php',
|
||||
'PHPUnit\\Framework\\Constraint\\LessThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php',
|
||||
'PHPUnit\\Framework\\Constraint\\LogicalAnd' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php',
|
||||
'PHPUnit\\Framework\\Constraint\\LogicalNot' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php',
|
||||
'PHPUnit\\Framework\\Constraint\\LogicalOr' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php',
|
||||
'PHPUnit\\Framework\\Constraint\\LogicalXor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php',
|
||||
'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php',
|
||||
'PHPUnit\\Framework\\Constraint\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php',
|
||||
'PHPUnit\\Framework\\Constraint\\SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php',
|
||||
'PHPUnit\\Framework\\Constraint\\StringContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php',
|
||||
'PHPUnit\\Framework\\Constraint\\StringEndsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php',
|
||||
'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php',
|
||||
'PHPUnit\\Framework\\Constraint\\StringStartsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php',
|
||||
'PHPUnit\\Framework\\Constraint\\TraversableContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php',
|
||||
'PHPUnit\\Framework\\Constraint\\TraversableContainsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsEqual.php',
|
||||
'PHPUnit\\Framework\\Constraint\\TraversableContainsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsIdentical.php',
|
||||
'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php',
|
||||
'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/CoveredCodeNotExecutedException.php',
|
||||
'PHPUnit\\Framework\\DataProviderTestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php',
|
||||
'PHPUnit\\Framework\\Error\\Deprecated' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',
|
||||
'PHPUnit\\Framework\\Error\\Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Error.php',
|
||||
'PHPUnit\\Framework\\Error\\Notice' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Notice.php',
|
||||
'PHPUnit\\Framework\\Error\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Warning.php',
|
||||
'PHPUnit\\Framework\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/Exception.php',
|
||||
'PHPUnit\\Framework\\ExceptionWrapper' => $vendorDir . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php',
|
||||
'PHPUnit\\Framework\\ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ExpectationFailedException.php',
|
||||
'PHPUnit\\Framework\\IncompleteTest' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTest.php',
|
||||
'PHPUnit\\Framework\\IncompleteTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php',
|
||||
'PHPUnit\\Framework\\IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/IncompleteTestError.php',
|
||||
'PHPUnit\\Framework\\InvalidArgumentException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/InvalidArgumentException.php',
|
||||
'PHPUnit\\Framework\\InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/InvalidCoversTargetException.php',
|
||||
'PHPUnit\\Framework\\InvalidDataProviderException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/InvalidDataProviderException.php',
|
||||
'PHPUnit\\Framework\\InvalidParameterGroupException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidParameterGroupException.php',
|
||||
'PHPUnit\\Framework\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/MissingCoversAnnotationException.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Api' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Api/Api.php',
|
||||
'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Builder\\InvocationStubber' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationStubber.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Builder\\Match_' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Match_.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php',
|
||||
'PHPUnit\\Framework\\MockObject\\ConfigurableMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/ConfigurableMethod.php',
|
||||
'PHPUnit\\Framework\\MockObject\\ConfigurableMethodsAlreadyInitializedException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ConfigurableMethodsAlreadyInitializedException.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Generator' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator.php',
|
||||
'PHPUnit\\Framework\\MockObject\\IncompatibleReturnValueException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Invocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation.php',
|
||||
'PHPUnit\\Framework\\MockObject\\InvocationHandler' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/InvocationHandler.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Matcher' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Method' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Api/Method.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MethodNameConstraint' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MethodNameConstraint.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MockBuilder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MockClass' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockClass.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MockMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockMethod.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MockMethodSet' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockMethodSet.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MockTrait' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockTrait.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MockType' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockType.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MockedCloneMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Api/MockedCloneMethod.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\AnyInvokedCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/AnyInvokedCount.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\AnyParameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/AnyParameters.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/ConsecutiveParameters.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvocationOrder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvocationOrder.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtIndex' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtIndex.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastCount.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastOnce.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtMostCount.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedCount.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\MethodName' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/MethodName.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\Parameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/Parameters.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\ParametersRule' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/ParametersRule.php',
|
||||
'PHPUnit\\Framework\\MockObject\\RuntimeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/Stub.php',
|
||||
'PHPUnit\\Framework\\MockObject\\UnmockedCloneMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Api/UnmockedCloneMethod.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Verifiable' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php',
|
||||
'PHPUnit\\Framework\\NoChildTestSuiteException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/NoChildTestSuiteException.php',
|
||||
'PHPUnit\\Framework\\OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/OutputError.php',
|
||||
'PHPUnit\\Framework\\PHPTAssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/PHPTAssertionFailedError.php',
|
||||
'PHPUnit\\Framework\\RiskyTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/RiskyTestError.php',
|
||||
'PHPUnit\\Framework\\SelfDescribing' => $vendorDir . '/phpunit/phpunit/src/Framework/SelfDescribing.php',
|
||||
'PHPUnit\\Framework\\SkippedTest' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTest.php',
|
||||
'PHPUnit\\Framework\\SkippedTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestCase.php',
|
||||
'PHPUnit\\Framework\\SkippedTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/SkippedTestError.php',
|
||||
'PHPUnit\\Framework\\SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/SkippedTestSuiteError.php',
|
||||
'PHPUnit\\Framework\\SyntheticError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/SyntheticError.php',
|
||||
'PHPUnit\\Framework\\SyntheticSkippedError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/SyntheticSkippedError.php',
|
||||
'PHPUnit\\Framework\\Test' => $vendorDir . '/phpunit/phpunit/src/Framework/Test.php',
|
||||
'PHPUnit\\Framework\\TestBuilder' => $vendorDir . '/phpunit/phpunit/src/Framework/TestBuilder.php',
|
||||
'PHPUnit\\Framework\\TestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/TestCase.php',
|
||||
'PHPUnit\\Framework\\TestFailure' => $vendorDir . '/phpunit/phpunit/src/Framework/TestFailure.php',
|
||||
'PHPUnit\\Framework\\TestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListener.php',
|
||||
'PHPUnit\\Framework\\TestListenerDefaultImplementation' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php',
|
||||
'PHPUnit\\Framework\\TestResult' => $vendorDir . '/phpunit/phpunit/src/Framework/TestResult.php',
|
||||
'PHPUnit\\Framework\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php',
|
||||
'PHPUnit\\Framework\\TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php',
|
||||
'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/UnintentionallyCoveredCodeError.php',
|
||||
'PHPUnit\\Framework\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/Warning.php',
|
||||
'PHPUnit\\Framework\\WarningTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/WarningTestCase.php',
|
||||
'PHPUnit\\Runner\\AfterIncompleteTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php',
|
||||
'PHPUnit\\Runner\\AfterLastTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php',
|
||||
'PHPUnit\\Runner\\AfterRiskyTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php',
|
||||
'PHPUnit\\Runner\\AfterSkippedTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php',
|
||||
'PHPUnit\\Runner\\AfterSuccessfulTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php',
|
||||
'PHPUnit\\Runner\\AfterTestErrorHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php',
|
||||
'PHPUnit\\Runner\\AfterTestFailureHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php',
|
||||
'PHPUnit\\Runner\\AfterTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestHook.php',
|
||||
'PHPUnit\\Runner\\AfterTestWarningHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php',
|
||||
'PHPUnit\\Runner\\BaseTestRunner' => $vendorDir . '/phpunit/phpunit/src/Runner/BaseTestRunner.php',
|
||||
'PHPUnit\\Runner\\BeforeFirstTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php',
|
||||
'PHPUnit\\Runner\\BeforeTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php',
|
||||
'PHPUnit\\Runner\\DefaultTestResultCache' => $vendorDir . '/phpunit/phpunit/src/Runner/DefaultTestResultCache.php',
|
||||
'PHPUnit\\Runner\\Exception' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception.php',
|
||||
'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php',
|
||||
'PHPUnit\\Runner\\Filter\\Factory' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Factory.php',
|
||||
'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php',
|
||||
'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php',
|
||||
'PHPUnit\\Runner\\Filter\\NameFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php',
|
||||
'PHPUnit\\Runner\\Hook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/Hook.php',
|
||||
'PHPUnit\\Runner\\NullTestResultCache' => $vendorDir . '/phpunit/phpunit/src/Runner/NullTestResultCache.php',
|
||||
'PHPUnit\\Runner\\PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Runner/PhptTestCase.php',
|
||||
'PHPUnit\\Runner\\ResultCacheExtension' => $vendorDir . '/phpunit/phpunit/src/Runner/ResultCacheExtension.php',
|
||||
'PHPUnit\\Runner\\StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php',
|
||||
'PHPUnit\\Runner\\TestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/TestHook.php',
|
||||
'PHPUnit\\Runner\\TestListenerAdapter' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php',
|
||||
'PHPUnit\\Runner\\TestResultCache' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResultCache.php',
|
||||
'PHPUnit\\Runner\\TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php',
|
||||
'PHPUnit\\Runner\\TestSuiteSorter' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php',
|
||||
'PHPUnit\\Runner\\Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php',
|
||||
'PHPUnit\\TextUI\\Command' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command.php',
|
||||
'PHPUnit\\TextUI\\Exception' => $vendorDir . '/phpunit/phpunit/src/TextUI/Exception.php',
|
||||
'PHPUnit\\TextUI\\Help' => $vendorDir . '/phpunit/phpunit/src/TextUI/Help.php',
|
||||
'PHPUnit\\TextUI\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/ResultPrinter.php',
|
||||
'PHPUnit\\TextUI\\TestRunner' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestRunner.php',
|
||||
'PHPUnit\\Util\\Annotation\\DocBlock' => $vendorDir . '/phpunit/phpunit/src/Util/Annotation/DocBlock.php',
|
||||
'PHPUnit\\Util\\Annotation\\Registry' => $vendorDir . '/phpunit/phpunit/src/Util/Annotation/Registry.php',
|
||||
'PHPUnit\\Util\\Blacklist' => $vendorDir . '/phpunit/phpunit/src/Util/Blacklist.php',
|
||||
'PHPUnit\\Util\\Color' => $vendorDir . '/phpunit/phpunit/src/Util/Color.php',
|
||||
'PHPUnit\\Util\\Configuration' => $vendorDir . '/phpunit/phpunit/src/Util/Configuration.php',
|
||||
'PHPUnit\\Util\\ConfigurationGenerator' => $vendorDir . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php',
|
||||
'PHPUnit\\Util\\ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php',
|
||||
'PHPUnit\\Util\\Exception' => $vendorDir . '/phpunit/phpunit/src/Util/Exception.php',
|
||||
'PHPUnit\\Util\\FileLoader' => $vendorDir . '/phpunit/phpunit/src/Util/FileLoader.php',
|
||||
'PHPUnit\\Util\\Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php',
|
||||
'PHPUnit\\Util\\Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php',
|
||||
'PHPUnit\\Util\\Getopt' => $vendorDir . '/phpunit/phpunit/src/Util/Getopt.php',
|
||||
'PHPUnit\\Util\\GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php',
|
||||
'PHPUnit\\Util\\InvalidDataSetException' => $vendorDir . '/phpunit/phpunit/src/Util/InvalidDataSetException.php',
|
||||
'PHPUnit\\Util\\Json' => $vendorDir . '/phpunit/phpunit/src/Util/Json.php',
|
||||
'PHPUnit\\Util\\Log\\JUnit' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JUnit.php',
|
||||
'PHPUnit\\Util\\Log\\TeamCity' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TeamCity.php',
|
||||
'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php',
|
||||
'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php',
|
||||
'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php',
|
||||
'PHPUnit\\Util\\Printer' => $vendorDir . '/phpunit/phpunit/src/Util/Printer.php',
|
||||
'PHPUnit\\Util\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Util/RegularExpression.php',
|
||||
'PHPUnit\\Util\\Test' => $vendorDir . '/phpunit/phpunit/src/Util/Test.php',
|
||||
'PHPUnit\\Util\\TestDox\\CliTestDoxPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php',
|
||||
'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php',
|
||||
'PHPUnit\\Util\\TestDox\\NamePrettifier' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php',
|
||||
'PHPUnit\\Util\\TestDox\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php',
|
||||
'PHPUnit\\Util\\TestDox\\TestDoxPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TestDoxPrinter.php',
|
||||
'PHPUnit\\Util\\TestDox\\TextResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php',
|
||||
'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php',
|
||||
'PHPUnit\\Util\\TextTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/TextTestListRenderer.php',
|
||||
'PHPUnit\\Util\\Type' => $vendorDir . '/phpunit/phpunit/src/Util/Type.php',
|
||||
'PHPUnit\\Util\\VersionComparisonOperator' => $vendorDir . '/phpunit/phpunit/src/Util/VersionComparisonOperator.php',
|
||||
'PHPUnit\\Util\\XdebugFilterScriptGenerator' => $vendorDir . '/phpunit/phpunit/src/Util/XdebugFilterScriptGenerator.php',
|
||||
'PHPUnit\\Util\\Xml' => $vendorDir . '/phpunit/phpunit/src/Util/Xml.php',
|
||||
'PHPUnit\\Util\\XmlTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php',
|
||||
'PHP_Token' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_TokenWithScope' => $vendorDir . '/phpunit/php-token-stream/src/TokenWithScope.php',
|
||||
'PHP_TokenWithScopeAndVisibility' => $vendorDir . '/phpunit/php-token-stream/src/TokenWithScopeAndVisibility.php',
|
||||
'PHP_Token_ABSTRACT' => $vendorDir . '/phpunit/php-token-stream/src/Abstract.php',
|
||||
'PHP_Token_AMPERSAND' => $vendorDir . '/phpunit/php-token-stream/src/Ampersand.php',
|
||||
'PHP_Token_AND_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/AndEqual.php',
|
||||
'PHP_Token_ARRAY' => $vendorDir . '/phpunit/php-token-stream/src/Array.php',
|
||||
'PHP_Token_ARRAY_CAST' => $vendorDir . '/phpunit/php-token-stream/src/ArrayCast.php',
|
||||
'PHP_Token_AS' => $vendorDir . '/phpunit/php-token-stream/src/As.php',
|
||||
'PHP_Token_AT' => $vendorDir . '/phpunit/php-token-stream/src/At.php',
|
||||
'PHP_Token_BACKTICK' => $vendorDir . '/phpunit/php-token-stream/src/Backtick.php',
|
||||
'PHP_Token_BAD_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/BadCharacter.php',
|
||||
'PHP_Token_BOOLEAN_AND' => $vendorDir . '/phpunit/php-token-stream/src/BooleanAnd.php',
|
||||
'PHP_Token_BOOLEAN_OR' => $vendorDir . '/phpunit/php-token-stream/src/BooleanOr.php',
|
||||
'PHP_Token_BOOL_CAST' => $vendorDir . '/phpunit/php-token-stream/src/BoolCast.php',
|
||||
'PHP_Token_BREAK' => $vendorDir . '/phpunit/php-token-stream/src/break.php',
|
||||
'PHP_Token_CALLABLE' => $vendorDir . '/phpunit/php-token-stream/src/Callable.php',
|
||||
'PHP_Token_CARET' => $vendorDir . '/phpunit/php-token-stream/src/Caret.php',
|
||||
'PHP_Token_CASE' => $vendorDir . '/phpunit/php-token-stream/src/Case.php',
|
||||
'PHP_Token_CATCH' => $vendorDir . '/phpunit/php-token-stream/src/Catch.php',
|
||||
'PHP_Token_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Character.php',
|
||||
'PHP_Token_CLASS' => $vendorDir . '/phpunit/php-token-stream/src/Class.php',
|
||||
'PHP_Token_CLASS_C' => $vendorDir . '/phpunit/php-token-stream/src/ClassC.php',
|
||||
'PHP_Token_CLASS_NAME_CONSTANT' => $vendorDir . '/phpunit/php-token-stream/src/ClassNameConstant.php',
|
||||
'PHP_Token_CLONE' => $vendorDir . '/phpunit/php-token-stream/src/Clone.php',
|
||||
'PHP_Token_CLOSE_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/CloseBracket.php',
|
||||
'PHP_Token_CLOSE_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/CloseCurly.php',
|
||||
'PHP_Token_CLOSE_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/CloseSquare.php',
|
||||
'PHP_Token_CLOSE_TAG' => $vendorDir . '/phpunit/php-token-stream/src/CloseTag.php',
|
||||
'PHP_Token_COALESCE' => $vendorDir . '/phpunit/php-token-stream/src/Coalesce.php',
|
||||
'PHP_Token_COALESCE_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/CoalesceEqual.php',
|
||||
'PHP_Token_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Colon.php',
|
||||
'PHP_Token_COMMA' => $vendorDir . '/phpunit/php-token-stream/src/Comma.php',
|
||||
'PHP_Token_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Comment.php',
|
||||
'PHP_Token_CONCAT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/ConcatEqual.php',
|
||||
'PHP_Token_CONST' => $vendorDir . '/phpunit/php-token-stream/src/Const.php',
|
||||
'PHP_Token_CONSTANT_ENCAPSED_STRING' => $vendorDir . '/phpunit/php-token-stream/src/ConstantEncapsedString.php',
|
||||
'PHP_Token_CONTINUE' => $vendorDir . '/phpunit/php-token-stream/src/Continue.php',
|
||||
'PHP_Token_CURLY_OPEN' => $vendorDir . '/phpunit/php-token-stream/src/CurlyOpen.php',
|
||||
'PHP_Token_DEC' => $vendorDir . '/phpunit/php-token-stream/src/Dec.php',
|
||||
'PHP_Token_DECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Declare.php',
|
||||
'PHP_Token_DEFAULT' => $vendorDir . '/phpunit/php-token-stream/src/Default.php',
|
||||
'PHP_Token_DIR' => $vendorDir . '/phpunit/php-token-stream/src/Dir.php',
|
||||
'PHP_Token_DIV' => $vendorDir . '/phpunit/php-token-stream/src/Div.php',
|
||||
'PHP_Token_DIV_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/DivEqual.php',
|
||||
'PHP_Token_DNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/DNumber.php',
|
||||
'PHP_Token_DO' => $vendorDir . '/phpunit/php-token-stream/src/Do.php',
|
||||
'PHP_Token_DOC_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/DocComment.php',
|
||||
'PHP_Token_DOLLAR' => $vendorDir . '/phpunit/php-token-stream/src/Dollar.php',
|
||||
'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => $vendorDir . '/phpunit/php-token-stream/src/DollarOpenCurlyBraces.php',
|
||||
'PHP_Token_DOT' => $vendorDir . '/phpunit/php-token-stream/src/Dot.php',
|
||||
'PHP_Token_DOUBLE_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/DoubleArrow.php',
|
||||
'PHP_Token_DOUBLE_CAST' => $vendorDir . '/phpunit/php-token-stream/src/DoubleCast.php',
|
||||
'PHP_Token_DOUBLE_COLON' => $vendorDir . '/phpunit/php-token-stream/src/DoubleColon.php',
|
||||
'PHP_Token_DOUBLE_QUOTES' => $vendorDir . '/phpunit/php-token-stream/src/DoubleQuotes.php',
|
||||
'PHP_Token_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Echo.php',
|
||||
'PHP_Token_ELLIPSIS' => $vendorDir . '/phpunit/php-token-stream/src/Ellipsis.php',
|
||||
'PHP_Token_ELSE' => $vendorDir . '/phpunit/php-token-stream/src/Else.php',
|
||||
'PHP_Token_ELSEIF' => $vendorDir . '/phpunit/php-token-stream/src/Elseif.php',
|
||||
'PHP_Token_EMPTY' => $vendorDir . '/phpunit/php-token-stream/src/Empty.php',
|
||||
'PHP_Token_ENCAPSED_AND_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/EncapsedAndWhitespace.php',
|
||||
'PHP_Token_ENDDECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Enddeclare.php',
|
||||
'PHP_Token_ENDFOR' => $vendorDir . '/phpunit/php-token-stream/src/Endfor.php',
|
||||
'PHP_Token_ENDFOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Endforeach.php',
|
||||
'PHP_Token_ENDIF' => $vendorDir . '/phpunit/php-token-stream/src/Endif.php',
|
||||
'PHP_Token_ENDSWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Endswitch.php',
|
||||
'PHP_Token_ENDWHILE' => $vendorDir . '/phpunit/php-token-stream/src/Endwhile.php',
|
||||
'PHP_Token_END_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/EndHeredoc.php',
|
||||
'PHP_Token_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Equal.php',
|
||||
'PHP_Token_EVAL' => $vendorDir . '/phpunit/php-token-stream/src/Eval.php',
|
||||
'PHP_Token_EXCLAMATION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/ExclamationMark.php',
|
||||
'PHP_Token_EXIT' => $vendorDir . '/phpunit/php-token-stream/src/Exit.php',
|
||||
'PHP_Token_EXTENDS' => $vendorDir . '/phpunit/php-token-stream/src/Extends.php',
|
||||
'PHP_Token_FILE' => $vendorDir . '/phpunit/php-token-stream/src/File.php',
|
||||
'PHP_Token_FINAL' => $vendorDir . '/phpunit/php-token-stream/src/Final.php',
|
||||
'PHP_Token_FINALLY' => $vendorDir . '/phpunit/php-token-stream/src/Finally.php',
|
||||
'PHP_Token_FN' => $vendorDir . '/phpunit/php-token-stream/src/Fn.php',
|
||||
'PHP_Token_FOR' => $vendorDir . '/phpunit/php-token-stream/src/For.php',
|
||||
'PHP_Token_FOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Foreach.php',
|
||||
'PHP_Token_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Function.php',
|
||||
'PHP_Token_FUNC_C' => $vendorDir . '/phpunit/php-token-stream/src/FuncC.php',
|
||||
'PHP_Token_GLOBAL' => $vendorDir . '/phpunit/php-token-stream/src/Global.php',
|
||||
'PHP_Token_GOTO' => $vendorDir . '/phpunit/php-token-stream/src/Goto.php',
|
||||
'PHP_Token_GT' => $vendorDir . '/phpunit/php-token-stream/src/Gt.php',
|
||||
'PHP_Token_HALT_COMPILER' => $vendorDir . '/phpunit/php-token-stream/src/HaltCompiler.php',
|
||||
'PHP_Token_IF' => $vendorDir . '/phpunit/php-token-stream/src/If.php',
|
||||
'PHP_Token_IMPLEMENTS' => $vendorDir . '/phpunit/php-token-stream/src/Implements.php',
|
||||
'PHP_Token_INC' => $vendorDir . '/phpunit/php-token-stream/src/Inc.php',
|
||||
'PHP_Token_INCLUDE' => $vendorDir . '/phpunit/php-token-stream/src/Include.php',
|
||||
'PHP_Token_INCLUDE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/IncludeOnce.php',
|
||||
'PHP_Token_INLINE_HTML' => $vendorDir . '/phpunit/php-token-stream/src/InlineHtml.php',
|
||||
'PHP_Token_INSTANCEOF' => $vendorDir . '/phpunit/php-token-stream/src/Instanceof.php',
|
||||
'PHP_Token_INSTEADOF' => $vendorDir . '/phpunit/php-token-stream/src/Insteadof.php',
|
||||
'PHP_Token_INTERFACE' => $vendorDir . '/phpunit/php-token-stream/src/Interface.php',
|
||||
'PHP_Token_INT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/IntCast.php',
|
||||
'PHP_Token_ISSET' => $vendorDir . '/phpunit/php-token-stream/src/Isset.php',
|
||||
'PHP_Token_IS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/IsEqual.php',
|
||||
'PHP_Token_IS_GREATER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/IsGreaterOrEqual.php',
|
||||
'PHP_Token_IS_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/IsIdentical.php',
|
||||
'PHP_Token_IS_NOT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/IsNotEqual.php',
|
||||
'PHP_Token_IS_NOT_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/IsNotIdentical.php',
|
||||
'PHP_Token_IS_SMALLER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/IsSmallerOrEqual.php',
|
||||
'PHP_Token_Includes' => $vendorDir . '/phpunit/php-token-stream/src/Includes.php',
|
||||
'PHP_Token_LINE' => $vendorDir . '/phpunit/php-token-stream/src/Line.php',
|
||||
'PHP_Token_LIST' => $vendorDir . '/phpunit/php-token-stream/src/List.php',
|
||||
'PHP_Token_LNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Lnumber.php',
|
||||
'PHP_Token_LOGICAL_AND' => $vendorDir . '/phpunit/php-token-stream/src/LogicalAnd.php',
|
||||
'PHP_Token_LOGICAL_OR' => $vendorDir . '/phpunit/php-token-stream/src/LogicalOr.php',
|
||||
'PHP_Token_LOGICAL_XOR' => $vendorDir . '/phpunit/php-token-stream/src/LogicalXor.php',
|
||||
'PHP_Token_LT' => $vendorDir . '/phpunit/php-token-stream/src/Lt.php',
|
||||
'PHP_Token_METHOD_C' => $vendorDir . '/phpunit/php-token-stream/src/MethodC.php',
|
||||
'PHP_Token_MINUS' => $vendorDir . '/phpunit/php-token-stream/src/Minus.php',
|
||||
'PHP_Token_MINUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/MinusEqual.php',
|
||||
'PHP_Token_MOD_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/ModEqual.php',
|
||||
'PHP_Token_MULT' => $vendorDir . '/phpunit/php-token-stream/src/Mult.php',
|
||||
'PHP_Token_MUL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/MulEqual.php',
|
||||
'PHP_Token_NAMESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Namespace.php',
|
||||
'PHP_Token_NAME_FULLY_QUALIFIED' => $vendorDir . '/phpunit/php-token-stream/src/NameFullyQualified.php',
|
||||
'PHP_Token_NAME_QUALIFIED' => $vendorDir . '/phpunit/php-token-stream/src/NameQualified.php',
|
||||
'PHP_Token_NAME_RELATIVE' => $vendorDir . '/phpunit/php-token-stream/src/NameRelative.php',
|
||||
'PHP_Token_NEW' => $vendorDir . '/phpunit/php-token-stream/src/New.php',
|
||||
'PHP_Token_NS_C' => $vendorDir . '/phpunit/php-token-stream/src/NsC.php',
|
||||
'PHP_Token_NS_SEPARATOR' => $vendorDir . '/phpunit/php-token-stream/src/NsSeparator.php',
|
||||
'PHP_Token_NUM_STRING' => $vendorDir . '/phpunit/php-token-stream/src/NumString.php',
|
||||
'PHP_Token_OBJECT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/ObjectCast.php',
|
||||
'PHP_Token_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/ObjectOperator.php',
|
||||
'PHP_Token_OPEN_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/OpenBracket.php',
|
||||
'PHP_Token_OPEN_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/OpenCurly.php',
|
||||
'PHP_Token_OPEN_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/OpenSquare.php',
|
||||
'PHP_Token_OPEN_TAG' => $vendorDir . '/phpunit/php-token-stream/src/OpenTag.php',
|
||||
'PHP_Token_OPEN_TAG_WITH_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/OpenTagWithEcho.php',
|
||||
'PHP_Token_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/OrEqual.php',
|
||||
'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => $vendorDir . '/phpunit/php-token-stream/src/PaamayimNekudotayim.php',
|
||||
'PHP_Token_PERCENT' => $vendorDir . '/phpunit/php-token-stream/src/Percent.php',
|
||||
'PHP_Token_PIPE' => $vendorDir . '/phpunit/php-token-stream/src/Pipe.php',
|
||||
'PHP_Token_PLUS' => $vendorDir . '/phpunit/php-token-stream/src/Plus.php',
|
||||
'PHP_Token_PLUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/PlusEqual.php',
|
||||
'PHP_Token_POW' => $vendorDir . '/phpunit/php-token-stream/src/Pow.php',
|
||||
'PHP_Token_POW_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/PowEqual.php',
|
||||
'PHP_Token_PRINT' => $vendorDir . '/phpunit/php-token-stream/src/Print.php',
|
||||
'PHP_Token_PRIVATE' => $vendorDir . '/phpunit/php-token-stream/src/Private.php',
|
||||
'PHP_Token_PROTECTED' => $vendorDir . '/phpunit/php-token-stream/src/Protected.php',
|
||||
'PHP_Token_PUBLIC' => $vendorDir . '/phpunit/php-token-stream/src/Public.php',
|
||||
'PHP_Token_QUESTION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/QuestionMark.php',
|
||||
'PHP_Token_REQUIRE' => $vendorDir . '/phpunit/php-token-stream/src/Require.php',
|
||||
'PHP_Token_REQUIRE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/RequireOnce.php',
|
||||
'PHP_Token_RETURN' => $vendorDir . '/phpunit/php-token-stream/src/Return.php',
|
||||
'PHP_Token_SEMICOLON' => $vendorDir . '/phpunit/php-token-stream/src/Semicolon.php',
|
||||
'PHP_Token_SL' => $vendorDir . '/phpunit/php-token-stream/src/Sl.php',
|
||||
'PHP_Token_SL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/SlEqual.php',
|
||||
'PHP_Token_SPACESHIP' => $vendorDir . '/phpunit/php-token-stream/src/Spaceship.php',
|
||||
'PHP_Token_SR' => $vendorDir . '/phpunit/php-token-stream/src/Sr.php',
|
||||
'PHP_Token_SR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/SrEqual.php',
|
||||
'PHP_Token_START_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/StartHeredoc.php',
|
||||
'PHP_Token_STATIC' => $vendorDir . '/phpunit/php-token-stream/src/Static.php',
|
||||
'PHP_Token_STRING' => $vendorDir . '/phpunit/php-token-stream/src/String.php',
|
||||
'PHP_Token_STRING_CAST' => $vendorDir . '/phpunit/php-token-stream/src/StringCast.php',
|
||||
'PHP_Token_STRING_VARNAME' => $vendorDir . '/phpunit/php-token-stream/src/StringVarname.php',
|
||||
'PHP_Token_SWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Switch.php',
|
||||
'PHP_Token_Stream' => $vendorDir . '/phpunit/php-token-stream/src/Stream.php',
|
||||
'PHP_Token_Stream_CachingFactory' => $vendorDir . '/phpunit/php-token-stream/src/CachingFactory.php',
|
||||
'PHP_Token_THROW' => $vendorDir . '/phpunit/php-token-stream/src/Throw.php',
|
||||
'PHP_Token_TILDE' => $vendorDir . '/phpunit/php-token-stream/src/Tilde.php',
|
||||
'PHP_Token_TRAIT' => $vendorDir . '/phpunit/php-token-stream/src/Trait.php',
|
||||
'PHP_Token_TRAIT_C' => $vendorDir . '/phpunit/php-token-stream/src/TraitC.php',
|
||||
'PHP_Token_TRY' => $vendorDir . '/phpunit/php-token-stream/src/Try.php',
|
||||
'PHP_Token_UNSET' => $vendorDir . '/phpunit/php-token-stream/src/Unset.php',
|
||||
'PHP_Token_UNSET_CAST' => $vendorDir . '/phpunit/php-token-stream/src/UnsetCast.php',
|
||||
'PHP_Token_USE' => $vendorDir . '/phpunit/php-token-stream/src/Use.php',
|
||||
'PHP_Token_USE_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/UseFunction.php',
|
||||
'PHP_Token_Util' => $vendorDir . '/phpunit/php-token-stream/src/Util.php',
|
||||
'PHP_Token_VAR' => $vendorDir . '/phpunit/php-token-stream/src/Var.php',
|
||||
'PHP_Token_VARIABLE' => $vendorDir . '/phpunit/php-token-stream/src/Variable.php',
|
||||
'PHP_Token_WHILE' => $vendorDir . '/phpunit/php-token-stream/src/While.php',
|
||||
'PHP_Token_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Whitespace.php',
|
||||
'PHP_Token_XOR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/XorEqual.php',
|
||||
'PHP_Token_YIELD' => $vendorDir . '/phpunit/php-token-stream/src/Yield.php',
|
||||
'PHP_Token_YIELD_FROM' => $vendorDir . '/phpunit/php-token-stream/src/YieldFrom.php',
|
||||
'PharIo\\Manifest\\Application' => $vendorDir . '/phar-io/manifest/src/values/Application.php',
|
||||
'PharIo\\Manifest\\ApplicationName' => $vendorDir . '/phar-io/manifest/src/values/ApplicationName.php',
|
||||
'PharIo\\Manifest\\Author' => $vendorDir . '/phar-io/manifest/src/values/Author.php',
|
||||
'PharIo\\Manifest\\AuthorCollection' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollection.php',
|
||||
'PharIo\\Manifest\\AuthorCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollectionIterator.php',
|
||||
'PharIo\\Manifest\\AuthorElement' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElement.php',
|
||||
'PharIo\\Manifest\\AuthorElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElementCollection.php',
|
||||
'PharIo\\Manifest\\BundledComponent' => $vendorDir . '/phar-io/manifest/src/values/BundledComponent.php',
|
||||
'PharIo\\Manifest\\BundledComponentCollection' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollection.php',
|
||||
'PharIo\\Manifest\\BundledComponentCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php',
|
||||
'PharIo\\Manifest\\BundlesElement' => $vendorDir . '/phar-io/manifest/src/xml/BundlesElement.php',
|
||||
'PharIo\\Manifest\\ComponentElement' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElement.php',
|
||||
'PharIo\\Manifest\\ComponentElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElementCollection.php',
|
||||
'PharIo\\Manifest\\ContainsElement' => $vendorDir . '/phar-io/manifest/src/xml/ContainsElement.php',
|
||||
'PharIo\\Manifest\\CopyrightElement' => $vendorDir . '/phar-io/manifest/src/xml/CopyrightElement.php',
|
||||
'PharIo\\Manifest\\CopyrightInformation' => $vendorDir . '/phar-io/manifest/src/values/CopyrightInformation.php',
|
||||
'PharIo\\Manifest\\ElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ElementCollection.php',
|
||||
'PharIo\\Manifest\\ElementCollectionException' => $vendorDir . '/phar-io/manifest/src/exceptions/ElementCollectionException.php',
|
||||
'PharIo\\Manifest\\Email' => $vendorDir . '/phar-io/manifest/src/values/Email.php',
|
||||
'PharIo\\Manifest\\Exception' => $vendorDir . '/phar-io/manifest/src/exceptions/Exception.php',
|
||||
'PharIo\\Manifest\\ExtElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtElement.php',
|
||||
'PharIo\\Manifest\\ExtElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ExtElementCollection.php',
|
||||
'PharIo\\Manifest\\Extension' => $vendorDir . '/phar-io/manifest/src/values/Extension.php',
|
||||
'PharIo\\Manifest\\ExtensionElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtensionElement.php',
|
||||
'PharIo\\Manifest\\InvalidApplicationNameException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php',
|
||||
'PharIo\\Manifest\\InvalidEmailException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidEmailException.php',
|
||||
'PharIo\\Manifest\\InvalidUrlException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidUrlException.php',
|
||||
'PharIo\\Manifest\\Library' => $vendorDir . '/phar-io/manifest/src/values/Library.php',
|
||||
'PharIo\\Manifest\\License' => $vendorDir . '/phar-io/manifest/src/values/License.php',
|
||||
'PharIo\\Manifest\\LicenseElement' => $vendorDir . '/phar-io/manifest/src/xml/LicenseElement.php',
|
||||
'PharIo\\Manifest\\Manifest' => $vendorDir . '/phar-io/manifest/src/values/Manifest.php',
|
||||
'PharIo\\Manifest\\ManifestDocument' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocument.php',
|
||||
'PharIo\\Manifest\\ManifestDocumentException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php',
|
||||
'PharIo\\Manifest\\ManifestDocumentLoadingException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentLoadingException.php',
|
||||
'PharIo\\Manifest\\ManifestDocumentMapper' => $vendorDir . '/phar-io/manifest/src/ManifestDocumentMapper.php',
|
||||
'PharIo\\Manifest\\ManifestDocumentMapperException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php',
|
||||
'PharIo\\Manifest\\ManifestElement' => $vendorDir . '/phar-io/manifest/src/xml/ManifestElement.php',
|
||||
'PharIo\\Manifest\\ManifestElementException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestElementException.php',
|
||||
'PharIo\\Manifest\\ManifestLoader' => $vendorDir . '/phar-io/manifest/src/ManifestLoader.php',
|
||||
'PharIo\\Manifest\\ManifestLoaderException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php',
|
||||
'PharIo\\Manifest\\ManifestSerializer' => $vendorDir . '/phar-io/manifest/src/ManifestSerializer.php',
|
||||
'PharIo\\Manifest\\PhpElement' => $vendorDir . '/phar-io/manifest/src/xml/PhpElement.php',
|
||||
'PharIo\\Manifest\\PhpExtensionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpExtensionRequirement.php',
|
||||
'PharIo\\Manifest\\PhpVersionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpVersionRequirement.php',
|
||||
'PharIo\\Manifest\\Requirement' => $vendorDir . '/phar-io/manifest/src/values/Requirement.php',
|
||||
'PharIo\\Manifest\\RequirementCollection' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollection.php',
|
||||
'PharIo\\Manifest\\RequirementCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollectionIterator.php',
|
||||
'PharIo\\Manifest\\RequiresElement' => $vendorDir . '/phar-io/manifest/src/xml/RequiresElement.php',
|
||||
'PharIo\\Manifest\\Type' => $vendorDir . '/phar-io/manifest/src/values/Type.php',
|
||||
'PharIo\\Manifest\\Url' => $vendorDir . '/phar-io/manifest/src/values/Url.php',
|
||||
'PharIo\\Version\\AbstractVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/AbstractVersionConstraint.php',
|
||||
'PharIo\\Version\\AndVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/AndVersionConstraintGroup.php',
|
||||
'PharIo\\Version\\AnyVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/AnyVersionConstraint.php',
|
||||
'PharIo\\Version\\ExactVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/ExactVersionConstraint.php',
|
||||
'PharIo\\Version\\Exception' => $vendorDir . '/phar-io/version/src/exceptions/Exception.php',
|
||||
'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php',
|
||||
'PharIo\\Version\\InvalidPreReleaseSuffixException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php',
|
||||
'PharIo\\Version\\InvalidVersionException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidVersionException.php',
|
||||
'PharIo\\Version\\NoPreReleaseSuffixException' => $vendorDir . '/phar-io/version/src/exceptions/NoPreReleaseSuffixException.php',
|
||||
'PharIo\\Version\\OrVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php',
|
||||
'PharIo\\Version\\PreReleaseSuffix' => $vendorDir . '/phar-io/version/src/PreReleaseSuffix.php',
|
||||
'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php',
|
||||
'PharIo\\Version\\SpecificMajorVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php',
|
||||
'PharIo\\Version\\UnsupportedVersionConstraintException' => $vendorDir . '/phar-io/version/src/exceptions/UnsupportedVersionConstraintException.php',
|
||||
'PharIo\\Version\\Version' => $vendorDir . '/phar-io/version/src/Version.php',
|
||||
'PharIo\\Version\\VersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/VersionConstraint.php',
|
||||
'PharIo\\Version\\VersionConstraintParser' => $vendorDir . '/phar-io/version/src/VersionConstraintParser.php',
|
||||
'PharIo\\Version\\VersionConstraintValue' => $vendorDir . '/phar-io/version/src/VersionConstraintValue.php',
|
||||
'PharIo\\Version\\VersionNumber' => $vendorDir . '/phar-io/version/src/VersionNumber.php',
|
||||
'SebastianBergmann\\CodeCoverage\\CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php',
|
||||
'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Driver.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Driver\\PCOV' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PCOV.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Xdebug.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Exception' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Exception.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Filter' => $vendorDir . '/phpunit/php-code-coverage/src/Filter.php',
|
||||
'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => $vendorDir . '/phpunit/php-code-coverage/src/Node/AbstractNode.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\Builder' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Builder.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Directory.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Node/File.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Iterator.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Clover' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Clover.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Crap4j.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Facade.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\PHP' => $vendorDir . '/phpunit/php-code-coverage/src/Report/PHP.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Text' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Text.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/File.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Method.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Node.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Project.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Report.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Source.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php',
|
||||
'SebastianBergmann\\CodeCoverage\\RuntimeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Util' => $vendorDir . '/phpunit/php-code-coverage/src/Util.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Version' => $vendorDir . '/phpunit/php-code-coverage/src/Version.php',
|
||||
'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => $vendorDir . '/sebastian/code-unit-reverse-lookup/src/Wizard.php',
|
||||
'SebastianBergmann\\Comparator\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php',
|
||||
'SebastianBergmann\\Comparator\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php',
|
||||
'SebastianBergmann\\Comparator\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php',
|
||||
'SebastianBergmann\\Comparator\\DOMNodeComparator' => $vendorDir . '/sebastian/comparator/src/DOMNodeComparator.php',
|
||||
'SebastianBergmann\\Comparator\\DateTimeComparator' => $vendorDir . '/sebastian/comparator/src/DateTimeComparator.php',
|
||||
'SebastianBergmann\\Comparator\\DoubleComparator' => $vendorDir . '/sebastian/comparator/src/DoubleComparator.php',
|
||||
'SebastianBergmann\\Comparator\\ExceptionComparator' => $vendorDir . '/sebastian/comparator/src/ExceptionComparator.php',
|
||||
'SebastianBergmann\\Comparator\\Factory' => $vendorDir . '/sebastian/comparator/src/Factory.php',
|
||||
'SebastianBergmann\\Comparator\\MockObjectComparator' => $vendorDir . '/sebastian/comparator/src/MockObjectComparator.php',
|
||||
'SebastianBergmann\\Comparator\\NumericComparator' => $vendorDir . '/sebastian/comparator/src/NumericComparator.php',
|
||||
'SebastianBergmann\\Comparator\\ObjectComparator' => $vendorDir . '/sebastian/comparator/src/ObjectComparator.php',
|
||||
'SebastianBergmann\\Comparator\\ResourceComparator' => $vendorDir . '/sebastian/comparator/src/ResourceComparator.php',
|
||||
'SebastianBergmann\\Comparator\\ScalarComparator' => $vendorDir . '/sebastian/comparator/src/ScalarComparator.php',
|
||||
'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => $vendorDir . '/sebastian/comparator/src/SplObjectStorageComparator.php',
|
||||
'SebastianBergmann\\Comparator\\TypeComparator' => $vendorDir . '/sebastian/comparator/src/TypeComparator.php',
|
||||
'SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php',
|
||||
'SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php',
|
||||
'SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php',
|
||||
'SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php',
|
||||
'SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php',
|
||||
'SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php',
|
||||
'SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php',
|
||||
'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php',
|
||||
'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php',
|
||||
'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php',
|
||||
'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php',
|
||||
'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php',
|
||||
'SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php',
|
||||
'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php',
|
||||
'SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php',
|
||||
'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php',
|
||||
'SebastianBergmann\\Environment\\Console' => $vendorDir . '/sebastian/environment/src/Console.php',
|
||||
'SebastianBergmann\\Environment\\OperatingSystem' => $vendorDir . '/sebastian/environment/src/OperatingSystem.php',
|
||||
'SebastianBergmann\\Environment\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php',
|
||||
'SebastianBergmann\\Exporter\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php',
|
||||
'SebastianBergmann\\FileIterator\\Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php',
|
||||
'SebastianBergmann\\FileIterator\\Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php',
|
||||
'SebastianBergmann\\FileIterator\\Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php',
|
||||
'SebastianBergmann\\GlobalState\\Blacklist' => $vendorDir . '/sebastian/global-state/src/Blacklist.php',
|
||||
'SebastianBergmann\\GlobalState\\CodeExporter' => $vendorDir . '/sebastian/global-state/src/CodeExporter.php',
|
||||
'SebastianBergmann\\GlobalState\\Exception' => $vendorDir . '/sebastian/global-state/src/exceptions/Exception.php',
|
||||
'SebastianBergmann\\GlobalState\\Restorer' => $vendorDir . '/sebastian/global-state/src/Restorer.php',
|
||||
'SebastianBergmann\\GlobalState\\RuntimeException' => $vendorDir . '/sebastian/global-state/src/exceptions/RuntimeException.php',
|
||||
'SebastianBergmann\\GlobalState\\Snapshot' => $vendorDir . '/sebastian/global-state/src/Snapshot.php',
|
||||
'SebastianBergmann\\ObjectEnumerator\\Enumerator' => $vendorDir . '/sebastian/object-enumerator/src/Enumerator.php',
|
||||
'SebastianBergmann\\ObjectEnumerator\\Exception' => $vendorDir . '/sebastian/object-enumerator/src/Exception.php',
|
||||
'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => $vendorDir . '/sebastian/object-enumerator/src/InvalidArgumentException.php',
|
||||
'SebastianBergmann\\ObjectReflector\\Exception' => $vendorDir . '/sebastian/object-reflector/src/Exception.php',
|
||||
'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => $vendorDir . '/sebastian/object-reflector/src/InvalidArgumentException.php',
|
||||
'SebastianBergmann\\ObjectReflector\\ObjectReflector' => $vendorDir . '/sebastian/object-reflector/src/ObjectReflector.php',
|
||||
'SebastianBergmann\\RecursionContext\\Context' => $vendorDir . '/sebastian/recursion-context/src/Context.php',
|
||||
'SebastianBergmann\\RecursionContext\\Exception' => $vendorDir . '/sebastian/recursion-context/src/Exception.php',
|
||||
'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php',
|
||||
'SebastianBergmann\\ResourceOperations\\ResourceOperations' => $vendorDir . '/sebastian/resource-operations/src/ResourceOperations.php',
|
||||
'SebastianBergmann\\Timer\\Exception' => $vendorDir . '/phpunit/php-timer/src/Exception.php',
|
||||
'SebastianBergmann\\Timer\\RuntimeException' => $vendorDir . '/phpunit/php-timer/src/RuntimeException.php',
|
||||
'SebastianBergmann\\Timer\\Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php',
|
||||
'SebastianBergmann\\Type\\CallableType' => $vendorDir . '/sebastian/type/src/CallableType.php',
|
||||
'SebastianBergmann\\Type\\Exception' => $vendorDir . '/sebastian/type/src/exception/Exception.php',
|
||||
'SebastianBergmann\\Type\\GenericObjectType' => $vendorDir . '/sebastian/type/src/GenericObjectType.php',
|
||||
'SebastianBergmann\\Type\\IterableType' => $vendorDir . '/sebastian/type/src/IterableType.php',
|
||||
'SebastianBergmann\\Type\\NullType' => $vendorDir . '/sebastian/type/src/NullType.php',
|
||||
'SebastianBergmann\\Type\\ObjectType' => $vendorDir . '/sebastian/type/src/ObjectType.php',
|
||||
'SebastianBergmann\\Type\\RuntimeException' => $vendorDir . '/sebastian/type/src/exception/RuntimeException.php',
|
||||
'SebastianBergmann\\Type\\SimpleType' => $vendorDir . '/sebastian/type/src/SimpleType.php',
|
||||
'SebastianBergmann\\Type\\Type' => $vendorDir . '/sebastian/type/src/Type.php',
|
||||
'SebastianBergmann\\Type\\TypeName' => $vendorDir . '/sebastian/type/src/TypeName.php',
|
||||
'SebastianBergmann\\Type\\UnknownType' => $vendorDir . '/sebastian/type/src/UnknownType.php',
|
||||
'SebastianBergmann\\Type\\VoidType' => $vendorDir . '/sebastian/type/src/VoidType.php',
|
||||
'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php',
|
||||
'Text_Template' => $vendorDir . '/phpunit/php-text-template/src/Template.php',
|
||||
'TheSeer\\Tokenizer\\Exception' => $vendorDir . '/theseer/tokenizer/src/Exception.php',
|
||||
'TheSeer\\Tokenizer\\NamespaceUri' => $vendorDir . '/theseer/tokenizer/src/NamespaceUri.php',
|
||||
'TheSeer\\Tokenizer\\NamespaceUriException' => $vendorDir . '/theseer/tokenizer/src/NamespaceUriException.php',
|
||||
'TheSeer\\Tokenizer\\Token' => $vendorDir . '/theseer/tokenizer/src/Token.php',
|
||||
'TheSeer\\Tokenizer\\TokenCollection' => $vendorDir . '/theseer/tokenizer/src/TokenCollection.php',
|
||||
'TheSeer\\Tokenizer\\TokenCollectionException' => $vendorDir . '/theseer/tokenizer/src/TokenCollectionException.php',
|
||||
'TheSeer\\Tokenizer\\Tokenizer' => $vendorDir . '/theseer/tokenizer/src/Tokenizer.php',
|
||||
'TheSeer\\Tokenizer\\XMLSerializer' => $vendorDir . '/theseer/tokenizer/src/XMLSerializer.php',
|
||||
);
|
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
|
||||
// autoload_files.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
|
||||
'6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
|
||||
);
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
// autoload_namespaces.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
);
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
// autoload_psr4.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'phpDocumentor\\Reflection\\' => array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/reflection-docblock/src', $vendorDir . '/phpdocumentor/type-resolver/src'),
|
||||
'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'),
|
||||
'UpdateManager\\' => array($baseDir . '/lib/UpdateManager'),
|
||||
'Tests\\' => array($baseDir . '/tests'),
|
||||
'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
|
||||
'Prophecy\\' => array($vendorDir . '/phpspec/prophecy/src/Prophecy'),
|
||||
'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
|
||||
'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'),
|
||||
);
|
|
@ -0,0 +1,75 @@
|
|||
<?php
|
||||
|
||||
// autoload_real.php @generated by Composer
|
||||
|
||||
class ComposerAutoloaderInit6482daa1e61704139ecfb6f76b39fab6
|
||||
{
|
||||
private static $loader;
|
||||
|
||||
public static function loadClassLoader($class)
|
||||
{
|
||||
if ('Composer\Autoload\ClassLoader' === $class) {
|
||||
require __DIR__ . '/ClassLoader.php';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Composer\Autoload\ClassLoader
|
||||
*/
|
||||
public static function getLoader()
|
||||
{
|
||||
if (null !== self::$loader) {
|
||||
return self::$loader;
|
||||
}
|
||||
|
||||
require __DIR__ . '/platform_check.php';
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInit6482daa1e61704139ecfb6f76b39fab6', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit6482daa1e61704139ecfb6f76b39fab6', 'loadClassLoader'));
|
||||
|
||||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
||||
if ($useStaticLoader) {
|
||||
require __DIR__ . '/autoload_static.php';
|
||||
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInit6482daa1e61704139ecfb6f76b39fab6::getInitializer($loader));
|
||||
} else {
|
||||
$map = require __DIR__ . '/autoload_namespaces.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
$loader->set($namespace, $path);
|
||||
}
|
||||
|
||||
$map = require __DIR__ . '/autoload_psr4.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
$loader->setPsr4($namespace, $path);
|
||||
}
|
||||
|
||||
$classMap = require __DIR__ . '/autoload_classmap.php';
|
||||
if ($classMap) {
|
||||
$loader->addClassMap($classMap);
|
||||
}
|
||||
}
|
||||
|
||||
$loader->register(true);
|
||||
|
||||
if ($useStaticLoader) {
|
||||
$includeFiles = Composer\Autoload\ComposerStaticInit6482daa1e61704139ecfb6f76b39fab6::$files;
|
||||
} else {
|
||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
||||
}
|
||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||
composerRequire6482daa1e61704139ecfb6f76b39fab6($fileIdentifier, $file);
|
||||
}
|
||||
|
||||
return $loader;
|
||||
}
|
||||
}
|
||||
|
||||
function composerRequire6482daa1e61704139ecfb6f76b39fab6($fileIdentifier, $file)
|
||||
{
|
||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||
require $file;
|
||||
|
||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,680 @@
|
|||
<?php
|
||||
|
||||
// autoload_static.php @generated by Composer
|
||||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
class ComposerStaticInit6482daa1e61704139ecfb6f76b39fab6
|
||||
{
|
||||
public static $files = array (
|
||||
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
|
||||
'6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
|
||||
);
|
||||
|
||||
public static $prefixLengthsPsr4 = array (
|
||||
'p' =>
|
||||
array (
|
||||
'phpDocumentor\\Reflection\\' => 25,
|
||||
),
|
||||
'W' =>
|
||||
array (
|
||||
'Webmozart\\Assert\\' => 17,
|
||||
),
|
||||
'U' =>
|
||||
array (
|
||||
'UpdateManager\\' => 14,
|
||||
),
|
||||
'T' =>
|
||||
array (
|
||||
'Tests\\' => 6,
|
||||
),
|
||||
'S' =>
|
||||
array (
|
||||
'Symfony\\Polyfill\\Ctype\\' => 23,
|
||||
),
|
||||
'P' =>
|
||||
array (
|
||||
'Prophecy\\' => 9,
|
||||
),
|
||||
'D' =>
|
||||
array (
|
||||
'Doctrine\\Instantiator\\' => 22,
|
||||
'DeepCopy\\' => 9,
|
||||
),
|
||||
);
|
||||
|
||||
public static $prefixDirsPsr4 = array (
|
||||
'phpDocumentor\\Reflection\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src',
|
||||
1 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src',
|
||||
2 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src',
|
||||
),
|
||||
'Webmozart\\Assert\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/webmozart/assert/src',
|
||||
),
|
||||
'UpdateManager\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/../..' . '/lib/UpdateManager',
|
||||
),
|
||||
'Tests\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/../..' . '/tests',
|
||||
),
|
||||
'Symfony\\Polyfill\\Ctype\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/symfony/polyfill-ctype',
|
||||
),
|
||||
'Prophecy\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy',
|
||||
),
|
||||
'Doctrine\\Instantiator\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator',
|
||||
),
|
||||
'DeepCopy\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy',
|
||||
),
|
||||
);
|
||||
|
||||
public static $classMap = array (
|
||||
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
||||
'PHPUnit\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Exception.php',
|
||||
'PHPUnit\\Framework\\Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert.php',
|
||||
'PHPUnit\\Framework\\AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/AssertionFailedError.php',
|
||||
'PHPUnit\\Framework\\CodeCoverageException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/CodeCoverageException.php',
|
||||
'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php',
|
||||
'PHPUnit\\Framework\\Constraint\\ArraySubset' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php',
|
||||
'PHPUnit\\Framework\\Constraint\\Attribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php',
|
||||
'PHPUnit\\Framework\\Constraint\\Callback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Callback.php',
|
||||
'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php',
|
||||
'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php',
|
||||
'PHPUnit\\Framework\\Constraint\\Composite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Composite.php',
|
||||
'PHPUnit\\Framework\\Constraint\\Constraint' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php',
|
||||
'PHPUnit\\Framework\\Constraint\\Count' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Count.php',
|
||||
'PHPUnit\\Framework\\Constraint\\DirectoryExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php',
|
||||
'PHPUnit\\Framework\\Constraint\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception.php',
|
||||
'PHPUnit\\Framework\\Constraint\\ExceptionCode' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php',
|
||||
'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php',
|
||||
'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php',
|
||||
'PHPUnit\\Framework\\Constraint\\FileExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php',
|
||||
'PHPUnit\\Framework\\Constraint\\GreaterThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsAnything' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsEmpty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsEqual' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsFalse' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsFinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsIdentical' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsInfinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsJson' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsNan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsNull' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsReadable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsTrue' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsType.php',
|
||||
'PHPUnit\\Framework\\Constraint\\IsWritable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php',
|
||||
'PHPUnit\\Framework\\Constraint\\JsonMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php',
|
||||
'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php',
|
||||
'PHPUnit\\Framework\\Constraint\\LessThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php',
|
||||
'PHPUnit\\Framework\\Constraint\\LogicalAnd' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php',
|
||||
'PHPUnit\\Framework\\Constraint\\LogicalNot' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php',
|
||||
'PHPUnit\\Framework\\Constraint\\LogicalOr' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php',
|
||||
'PHPUnit\\Framework\\Constraint\\LogicalXor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php',
|
||||
'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php',
|
||||
'PHPUnit\\Framework\\Constraint\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php',
|
||||
'PHPUnit\\Framework\\Constraint\\SameSize' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php',
|
||||
'PHPUnit\\Framework\\Constraint\\StringContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php',
|
||||
'PHPUnit\\Framework\\Constraint\\StringEndsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php',
|
||||
'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php',
|
||||
'PHPUnit\\Framework\\Constraint\\StringStartsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php',
|
||||
'PHPUnit\\Framework\\Constraint\\TraversableContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php',
|
||||
'PHPUnit\\Framework\\Constraint\\TraversableContainsEqual' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsEqual.php',
|
||||
'PHPUnit\\Framework\\Constraint\\TraversableContainsIdentical' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsIdentical.php',
|
||||
'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php',
|
||||
'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/CoveredCodeNotExecutedException.php',
|
||||
'PHPUnit\\Framework\\DataProviderTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php',
|
||||
'PHPUnit\\Framework\\Error\\Deprecated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',
|
||||
'PHPUnit\\Framework\\Error\\Error' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Error.php',
|
||||
'PHPUnit\\Framework\\Error\\Notice' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Notice.php',
|
||||
'PHPUnit\\Framework\\Error\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Warning.php',
|
||||
'PHPUnit\\Framework\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/Exception.php',
|
||||
'PHPUnit\\Framework\\ExceptionWrapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php',
|
||||
'PHPUnit\\Framework\\ExpectationFailedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ExpectationFailedException.php',
|
||||
'PHPUnit\\Framework\\IncompleteTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTest.php',
|
||||
'PHPUnit\\Framework\\IncompleteTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php',
|
||||
'PHPUnit\\Framework\\IncompleteTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/IncompleteTestError.php',
|
||||
'PHPUnit\\Framework\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/InvalidArgumentException.php',
|
||||
'PHPUnit\\Framework\\InvalidCoversTargetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/InvalidCoversTargetException.php',
|
||||
'PHPUnit\\Framework\\InvalidDataProviderException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/InvalidDataProviderException.php',
|
||||
'PHPUnit\\Framework\\InvalidParameterGroupException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidParameterGroupException.php',
|
||||
'PHPUnit\\Framework\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/MissingCoversAnnotationException.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Api' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Api/Api.php',
|
||||
'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Builder\\InvocationStubber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationStubber.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Builder\\Match_' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Match_.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php',
|
||||
'PHPUnit\\Framework\\MockObject\\ConfigurableMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/ConfigurableMethod.php',
|
||||
'PHPUnit\\Framework\\MockObject\\ConfigurableMethodsAlreadyInitializedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ConfigurableMethodsAlreadyInitializedException.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Generator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator.php',
|
||||
'PHPUnit\\Framework\\MockObject\\IncompatibleReturnValueException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invocation.php',
|
||||
'PHPUnit\\Framework\\MockObject\\InvocationHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/InvocationHandler.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Matcher' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Method' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Api/Method.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MethodNameConstraint' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MethodNameConstraint.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MockBuilder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MockClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockClass.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MockMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockMethod.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MockMethodSet' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockMethodSet.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MockTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockTrait.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MockType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockType.php',
|
||||
'PHPUnit\\Framework\\MockObject\\MockedCloneMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Api/MockedCloneMethod.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\AnyInvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/AnyInvokedCount.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\AnyParameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/AnyParameters.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\ConsecutiveParameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/ConsecutiveParameters.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvocationOrder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvocationOrder.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtIndex' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtIndex.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtLeastCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastCount.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtLeastOnce' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastOnce.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtMostCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtMostCount.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedCount.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\MethodName' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/MethodName.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\Parameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/Parameters.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Rule\\ParametersRule' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/ParametersRule.php',
|
||||
'PHPUnit\\Framework\\MockObject\\RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Stub\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/Stub.php',
|
||||
'PHPUnit\\Framework\\MockObject\\UnmockedCloneMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Api/UnmockedCloneMethod.php',
|
||||
'PHPUnit\\Framework\\MockObject\\Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php',
|
||||
'PHPUnit\\Framework\\NoChildTestSuiteException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/NoChildTestSuiteException.php',
|
||||
'PHPUnit\\Framework\\OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/OutputError.php',
|
||||
'PHPUnit\\Framework\\PHPTAssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/PHPTAssertionFailedError.php',
|
||||
'PHPUnit\\Framework\\RiskyTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/RiskyTestError.php',
|
||||
'PHPUnit\\Framework\\SelfDescribing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SelfDescribing.php',
|
||||
'PHPUnit\\Framework\\SkippedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTest.php',
|
||||
'PHPUnit\\Framework\\SkippedTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestCase.php',
|
||||
'PHPUnit\\Framework\\SkippedTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/SkippedTestError.php',
|
||||
'PHPUnit\\Framework\\SkippedTestSuiteError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/SkippedTestSuiteError.php',
|
||||
'PHPUnit\\Framework\\SyntheticError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/SyntheticError.php',
|
||||
'PHPUnit\\Framework\\SyntheticSkippedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/SyntheticSkippedError.php',
|
||||
'PHPUnit\\Framework\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Test.php',
|
||||
'PHPUnit\\Framework\\TestBuilder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestBuilder.php',
|
||||
'PHPUnit\\Framework\\TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestCase.php',
|
||||
'PHPUnit\\Framework\\TestFailure' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestFailure.php',
|
||||
'PHPUnit\\Framework\\TestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListener.php',
|
||||
'PHPUnit\\Framework\\TestListenerDefaultImplementation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php',
|
||||
'PHPUnit\\Framework\\TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestResult.php',
|
||||
'PHPUnit\\Framework\\TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite.php',
|
||||
'PHPUnit\\Framework\\TestSuiteIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php',
|
||||
'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/UnintentionallyCoveredCodeError.php',
|
||||
'PHPUnit\\Framework\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/Warning.php',
|
||||
'PHPUnit\\Framework\\WarningTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/WarningTestCase.php',
|
||||
'PHPUnit\\Runner\\AfterIncompleteTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php',
|
||||
'PHPUnit\\Runner\\AfterLastTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php',
|
||||
'PHPUnit\\Runner\\AfterRiskyTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php',
|
||||
'PHPUnit\\Runner\\AfterSkippedTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php',
|
||||
'PHPUnit\\Runner\\AfterSuccessfulTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php',
|
||||
'PHPUnit\\Runner\\AfterTestErrorHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php',
|
||||
'PHPUnit\\Runner\\AfterTestFailureHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php',
|
||||
'PHPUnit\\Runner\\AfterTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestHook.php',
|
||||
'PHPUnit\\Runner\\AfterTestWarningHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php',
|
||||
'PHPUnit\\Runner\\BaseTestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/BaseTestRunner.php',
|
||||
'PHPUnit\\Runner\\BeforeFirstTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php',
|
||||
'PHPUnit\\Runner\\BeforeTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php',
|
||||
'PHPUnit\\Runner\\DefaultTestResultCache' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/DefaultTestResultCache.php',
|
||||
'PHPUnit\\Runner\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception.php',
|
||||
'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php',
|
||||
'PHPUnit\\Runner\\Filter\\Factory' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Factory.php',
|
||||
'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php',
|
||||
'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php',
|
||||
'PHPUnit\\Runner\\Filter\\NameFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php',
|
||||
'PHPUnit\\Runner\\Hook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/Hook.php',
|
||||
'PHPUnit\\Runner\\NullTestResultCache' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/NullTestResultCache.php',
|
||||
'PHPUnit\\Runner\\PhptTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/PhptTestCase.php',
|
||||
'PHPUnit\\Runner\\ResultCacheExtension' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/ResultCacheExtension.php',
|
||||
'PHPUnit\\Runner\\StandardTestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php',
|
||||
'PHPUnit\\Runner\\TestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/TestHook.php',
|
||||
'PHPUnit\\Runner\\TestListenerAdapter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php',
|
||||
'PHPUnit\\Runner\\TestResultCache' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResultCache.php',
|
||||
'PHPUnit\\Runner\\TestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php',
|
||||
'PHPUnit\\Runner\\TestSuiteSorter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php',
|
||||
'PHPUnit\\Runner\\Version' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Version.php',
|
||||
'PHPUnit\\TextUI\\Command' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command.php',
|
||||
'PHPUnit\\TextUI\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Exception.php',
|
||||
'PHPUnit\\TextUI\\Help' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Help.php',
|
||||
'PHPUnit\\TextUI\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/ResultPrinter.php',
|
||||
'PHPUnit\\TextUI\\TestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/TestRunner.php',
|
||||
'PHPUnit\\Util\\Annotation\\DocBlock' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Annotation/DocBlock.php',
|
||||
'PHPUnit\\Util\\Annotation\\Registry' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Annotation/Registry.php',
|
||||
'PHPUnit\\Util\\Blacklist' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Blacklist.php',
|
||||
'PHPUnit\\Util\\Color' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Color.php',
|
||||
'PHPUnit\\Util\\Configuration' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Configuration.php',
|
||||
'PHPUnit\\Util\\ConfigurationGenerator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php',
|
||||
'PHPUnit\\Util\\ErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ErrorHandler.php',
|
||||
'PHPUnit\\Util\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Exception.php',
|
||||
'PHPUnit\\Util\\FileLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/FileLoader.php',
|
||||
'PHPUnit\\Util\\Filesystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filesystem.php',
|
||||
'PHPUnit\\Util\\Filter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filter.php',
|
||||
'PHPUnit\\Util\\Getopt' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Getopt.php',
|
||||
'PHPUnit\\Util\\GlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/GlobalState.php',
|
||||
'PHPUnit\\Util\\InvalidDataSetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/InvalidDataSetException.php',
|
||||
'PHPUnit\\Util\\Json' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Json.php',
|
||||
'PHPUnit\\Util\\Log\\JUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JUnit.php',
|
||||
'PHPUnit\\Util\\Log\\TeamCity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/TeamCity.php',
|
||||
'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php',
|
||||
'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php',
|
||||
'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php',
|
||||
'PHPUnit\\Util\\Printer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Printer.php',
|
||||
'PHPUnit\\Util\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/RegularExpression.php',
|
||||
'PHPUnit\\Util\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Test.php',
|
||||
'PHPUnit\\Util\\TestDox\\CliTestDoxPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php',
|
||||
'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php',
|
||||
'PHPUnit\\Util\\TestDox\\NamePrettifier' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php',
|
||||
'PHPUnit\\Util\\TestDox\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php',
|
||||
'PHPUnit\\Util\\TestDox\\TestDoxPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/TestDoxPrinter.php',
|
||||
'PHPUnit\\Util\\TestDox\\TextResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php',
|
||||
'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php',
|
||||
'PHPUnit\\Util\\TextTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TextTestListRenderer.php',
|
||||
'PHPUnit\\Util\\Type' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Type.php',
|
||||
'PHPUnit\\Util\\VersionComparisonOperator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/VersionComparisonOperator.php',
|
||||
'PHPUnit\\Util\\XdebugFilterScriptGenerator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XdebugFilterScriptGenerator.php',
|
||||
'PHPUnit\\Util\\Xml' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml.php',
|
||||
'PHPUnit\\Util\\XmlTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php',
|
||||
'PHP_Token' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_TokenWithScope' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/TokenWithScope.php',
|
||||
'PHP_TokenWithScopeAndVisibility' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/TokenWithScopeAndVisibility.php',
|
||||
'PHP_Token_ABSTRACT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Abstract.php',
|
||||
'PHP_Token_AMPERSAND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Ampersand.php',
|
||||
'PHP_Token_AND_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/AndEqual.php',
|
||||
'PHP_Token_ARRAY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Array.php',
|
||||
'PHP_Token_ARRAY_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/ArrayCast.php',
|
||||
'PHP_Token_AS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/As.php',
|
||||
'PHP_Token_AT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/At.php',
|
||||
'PHP_Token_BACKTICK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Backtick.php',
|
||||
'PHP_Token_BAD_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/BadCharacter.php',
|
||||
'PHP_Token_BOOLEAN_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/BooleanAnd.php',
|
||||
'PHP_Token_BOOLEAN_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/BooleanOr.php',
|
||||
'PHP_Token_BOOL_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/BoolCast.php',
|
||||
'PHP_Token_BREAK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/break.php',
|
||||
'PHP_Token_CALLABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Callable.php',
|
||||
'PHP_Token_CARET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Caret.php',
|
||||
'PHP_Token_CASE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Case.php',
|
||||
'PHP_Token_CATCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Catch.php',
|
||||
'PHP_Token_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Character.php',
|
||||
'PHP_Token_CLASS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Class.php',
|
||||
'PHP_Token_CLASS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/ClassC.php',
|
||||
'PHP_Token_CLASS_NAME_CONSTANT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/ClassNameConstant.php',
|
||||
'PHP_Token_CLONE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Clone.php',
|
||||
'PHP_Token_CLOSE_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/CloseBracket.php',
|
||||
'PHP_Token_CLOSE_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/CloseCurly.php',
|
||||
'PHP_Token_CLOSE_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/CloseSquare.php',
|
||||
'PHP_Token_CLOSE_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/CloseTag.php',
|
||||
'PHP_Token_COALESCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Coalesce.php',
|
||||
'PHP_Token_COALESCE_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/CoalesceEqual.php',
|
||||
'PHP_Token_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Colon.php',
|
||||
'PHP_Token_COMMA' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Comma.php',
|
||||
'PHP_Token_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Comment.php',
|
||||
'PHP_Token_CONCAT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/ConcatEqual.php',
|
||||
'PHP_Token_CONST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Const.php',
|
||||
'PHP_Token_CONSTANT_ENCAPSED_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/ConstantEncapsedString.php',
|
||||
'PHP_Token_CONTINUE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Continue.php',
|
||||
'PHP_Token_CURLY_OPEN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/CurlyOpen.php',
|
||||
'PHP_Token_DEC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Dec.php',
|
||||
'PHP_Token_DECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Declare.php',
|
||||
'PHP_Token_DEFAULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Default.php',
|
||||
'PHP_Token_DIR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Dir.php',
|
||||
'PHP_Token_DIV' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Div.php',
|
||||
'PHP_Token_DIV_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/DivEqual.php',
|
||||
'PHP_Token_DNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/DNumber.php',
|
||||
'PHP_Token_DO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Do.php',
|
||||
'PHP_Token_DOC_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/DocComment.php',
|
||||
'PHP_Token_DOLLAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Dollar.php',
|
||||
'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/DollarOpenCurlyBraces.php',
|
||||
'PHP_Token_DOT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Dot.php',
|
||||
'PHP_Token_DOUBLE_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/DoubleArrow.php',
|
||||
'PHP_Token_DOUBLE_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/DoubleCast.php',
|
||||
'PHP_Token_DOUBLE_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/DoubleColon.php',
|
||||
'PHP_Token_DOUBLE_QUOTES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/DoubleQuotes.php',
|
||||
'PHP_Token_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Echo.php',
|
||||
'PHP_Token_ELLIPSIS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Ellipsis.php',
|
||||
'PHP_Token_ELSE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Else.php',
|
||||
'PHP_Token_ELSEIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Elseif.php',
|
||||
'PHP_Token_EMPTY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Empty.php',
|
||||
'PHP_Token_ENCAPSED_AND_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/EncapsedAndWhitespace.php',
|
||||
'PHP_Token_ENDDECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Enddeclare.php',
|
||||
'PHP_Token_ENDFOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Endfor.php',
|
||||
'PHP_Token_ENDFOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Endforeach.php',
|
||||
'PHP_Token_ENDIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Endif.php',
|
||||
'PHP_Token_ENDSWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Endswitch.php',
|
||||
'PHP_Token_ENDWHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Endwhile.php',
|
||||
'PHP_Token_END_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/EndHeredoc.php',
|
||||
'PHP_Token_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Equal.php',
|
||||
'PHP_Token_EVAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Eval.php',
|
||||
'PHP_Token_EXCLAMATION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/ExclamationMark.php',
|
||||
'PHP_Token_EXIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Exit.php',
|
||||
'PHP_Token_EXTENDS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Extends.php',
|
||||
'PHP_Token_FILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/File.php',
|
||||
'PHP_Token_FINAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Final.php',
|
||||
'PHP_Token_FINALLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Finally.php',
|
||||
'PHP_Token_FN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Fn.php',
|
||||
'PHP_Token_FOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/For.php',
|
||||
'PHP_Token_FOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Foreach.php',
|
||||
'PHP_Token_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Function.php',
|
||||
'PHP_Token_FUNC_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/FuncC.php',
|
||||
'PHP_Token_GLOBAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Global.php',
|
||||
'PHP_Token_GOTO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Goto.php',
|
||||
'PHP_Token_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Gt.php',
|
||||
'PHP_Token_HALT_COMPILER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/HaltCompiler.php',
|
||||
'PHP_Token_IF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/If.php',
|
||||
'PHP_Token_IMPLEMENTS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Implements.php',
|
||||
'PHP_Token_INC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Inc.php',
|
||||
'PHP_Token_INCLUDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Include.php',
|
||||
'PHP_Token_INCLUDE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/IncludeOnce.php',
|
||||
'PHP_Token_INLINE_HTML' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/InlineHtml.php',
|
||||
'PHP_Token_INSTANCEOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Instanceof.php',
|
||||
'PHP_Token_INSTEADOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Insteadof.php',
|
||||
'PHP_Token_INTERFACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Interface.php',
|
||||
'PHP_Token_INT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/IntCast.php',
|
||||
'PHP_Token_ISSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Isset.php',
|
||||
'PHP_Token_IS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/IsEqual.php',
|
||||
'PHP_Token_IS_GREATER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/IsGreaterOrEqual.php',
|
||||
'PHP_Token_IS_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/IsIdentical.php',
|
||||
'PHP_Token_IS_NOT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/IsNotEqual.php',
|
||||
'PHP_Token_IS_NOT_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/IsNotIdentical.php',
|
||||
'PHP_Token_IS_SMALLER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/IsSmallerOrEqual.php',
|
||||
'PHP_Token_Includes' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Includes.php',
|
||||
'PHP_Token_LINE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Line.php',
|
||||
'PHP_Token_LIST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/List.php',
|
||||
'PHP_Token_LNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Lnumber.php',
|
||||
'PHP_Token_LOGICAL_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/LogicalAnd.php',
|
||||
'PHP_Token_LOGICAL_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/LogicalOr.php',
|
||||
'PHP_Token_LOGICAL_XOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/LogicalXor.php',
|
||||
'PHP_Token_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Lt.php',
|
||||
'PHP_Token_METHOD_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/MethodC.php',
|
||||
'PHP_Token_MINUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Minus.php',
|
||||
'PHP_Token_MINUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/MinusEqual.php',
|
||||
'PHP_Token_MOD_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/ModEqual.php',
|
||||
'PHP_Token_MULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Mult.php',
|
||||
'PHP_Token_MUL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/MulEqual.php',
|
||||
'PHP_Token_NAMESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Namespace.php',
|
||||
'PHP_Token_NAME_FULLY_QUALIFIED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/NameFullyQualified.php',
|
||||
'PHP_Token_NAME_QUALIFIED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/NameQualified.php',
|
||||
'PHP_Token_NAME_RELATIVE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/NameRelative.php',
|
||||
'PHP_Token_NEW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/New.php',
|
||||
'PHP_Token_NS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/NsC.php',
|
||||
'PHP_Token_NS_SEPARATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/NsSeparator.php',
|
||||
'PHP_Token_NUM_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/NumString.php',
|
||||
'PHP_Token_OBJECT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/ObjectCast.php',
|
||||
'PHP_Token_OBJECT_OPERATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/ObjectOperator.php',
|
||||
'PHP_Token_OPEN_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/OpenBracket.php',
|
||||
'PHP_Token_OPEN_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/OpenCurly.php',
|
||||
'PHP_Token_OPEN_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/OpenSquare.php',
|
||||
'PHP_Token_OPEN_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/OpenTag.php',
|
||||
'PHP_Token_OPEN_TAG_WITH_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/OpenTagWithEcho.php',
|
||||
'PHP_Token_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/OrEqual.php',
|
||||
'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/PaamayimNekudotayim.php',
|
||||
'PHP_Token_PERCENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Percent.php',
|
||||
'PHP_Token_PIPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Pipe.php',
|
||||
'PHP_Token_PLUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Plus.php',
|
||||
'PHP_Token_PLUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/PlusEqual.php',
|
||||
'PHP_Token_POW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Pow.php',
|
||||
'PHP_Token_POW_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/PowEqual.php',
|
||||
'PHP_Token_PRINT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Print.php',
|
||||
'PHP_Token_PRIVATE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Private.php',
|
||||
'PHP_Token_PROTECTED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Protected.php',
|
||||
'PHP_Token_PUBLIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Public.php',
|
||||
'PHP_Token_QUESTION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/QuestionMark.php',
|
||||
'PHP_Token_REQUIRE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Require.php',
|
||||
'PHP_Token_REQUIRE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/RequireOnce.php',
|
||||
'PHP_Token_RETURN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Return.php',
|
||||
'PHP_Token_SEMICOLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Semicolon.php',
|
||||
'PHP_Token_SL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Sl.php',
|
||||
'PHP_Token_SL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/SlEqual.php',
|
||||
'PHP_Token_SPACESHIP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Spaceship.php',
|
||||
'PHP_Token_SR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Sr.php',
|
||||
'PHP_Token_SR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/SrEqual.php',
|
||||
'PHP_Token_START_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/StartHeredoc.php',
|
||||
'PHP_Token_STATIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Static.php',
|
||||
'PHP_Token_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/String.php',
|
||||
'PHP_Token_STRING_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/StringCast.php',
|
||||
'PHP_Token_STRING_VARNAME' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/StringVarname.php',
|
||||
'PHP_Token_SWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Switch.php',
|
||||
'PHP_Token_Stream' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Stream.php',
|
||||
'PHP_Token_Stream_CachingFactory' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/CachingFactory.php',
|
||||
'PHP_Token_THROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Throw.php',
|
||||
'PHP_Token_TILDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Tilde.php',
|
||||
'PHP_Token_TRAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Trait.php',
|
||||
'PHP_Token_TRAIT_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/TraitC.php',
|
||||
'PHP_Token_TRY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Try.php',
|
||||
'PHP_Token_UNSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Unset.php',
|
||||
'PHP_Token_UNSET_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/UnsetCast.php',
|
||||
'PHP_Token_USE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Use.php',
|
||||
'PHP_Token_USE_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/UseFunction.php',
|
||||
'PHP_Token_Util' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Util.php',
|
||||
'PHP_Token_VAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Var.php',
|
||||
'PHP_Token_VARIABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Variable.php',
|
||||
'PHP_Token_WHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/While.php',
|
||||
'PHP_Token_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Whitespace.php',
|
||||
'PHP_Token_XOR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/XorEqual.php',
|
||||
'PHP_Token_YIELD' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Yield.php',
|
||||
'PHP_Token_YIELD_FROM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/YieldFrom.php',
|
||||
'PharIo\\Manifest\\Application' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Application.php',
|
||||
'PharIo\\Manifest\\ApplicationName' => __DIR__ . '/..' . '/phar-io/manifest/src/values/ApplicationName.php',
|
||||
'PharIo\\Manifest\\Author' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Author.php',
|
||||
'PharIo\\Manifest\\AuthorCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollection.php',
|
||||
'PharIo\\Manifest\\AuthorCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollectionIterator.php',
|
||||
'PharIo\\Manifest\\AuthorElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElement.php',
|
||||
'PharIo\\Manifest\\AuthorElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElementCollection.php',
|
||||
'PharIo\\Manifest\\BundledComponent' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponent.php',
|
||||
'PharIo\\Manifest\\BundledComponentCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollection.php',
|
||||
'PharIo\\Manifest\\BundledComponentCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php',
|
||||
'PharIo\\Manifest\\BundlesElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/BundlesElement.php',
|
||||
'PharIo\\Manifest\\ComponentElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElement.php',
|
||||
'PharIo\\Manifest\\ComponentElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElementCollection.php',
|
||||
'PharIo\\Manifest\\ContainsElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ContainsElement.php',
|
||||
'PharIo\\Manifest\\CopyrightElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/CopyrightElement.php',
|
||||
'PharIo\\Manifest\\CopyrightInformation' => __DIR__ . '/..' . '/phar-io/manifest/src/values/CopyrightInformation.php',
|
||||
'PharIo\\Manifest\\ElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ElementCollection.php',
|
||||
'PharIo\\Manifest\\ElementCollectionException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ElementCollectionException.php',
|
||||
'PharIo\\Manifest\\Email' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Email.php',
|
||||
'PharIo\\Manifest\\Exception' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/Exception.php',
|
||||
'PharIo\\Manifest\\ExtElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElement.php',
|
||||
'PharIo\\Manifest\\ExtElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElementCollection.php',
|
||||
'PharIo\\Manifest\\Extension' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Extension.php',
|
||||
'PharIo\\Manifest\\ExtensionElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtensionElement.php',
|
||||
'PharIo\\Manifest\\InvalidApplicationNameException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php',
|
||||
'PharIo\\Manifest\\InvalidEmailException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidEmailException.php',
|
||||
'PharIo\\Manifest\\InvalidUrlException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidUrlException.php',
|
||||
'PharIo\\Manifest\\Library' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Library.php',
|
||||
'PharIo\\Manifest\\License' => __DIR__ . '/..' . '/phar-io/manifest/src/values/License.php',
|
||||
'PharIo\\Manifest\\LicenseElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/LicenseElement.php',
|
||||
'PharIo\\Manifest\\Manifest' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Manifest.php',
|
||||
'PharIo\\Manifest\\ManifestDocument' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestDocument.php',
|
||||
'PharIo\\Manifest\\ManifestDocumentException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php',
|
||||
'PharIo\\Manifest\\ManifestDocumentLoadingException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentLoadingException.php',
|
||||
'PharIo\\Manifest\\ManifestDocumentMapper' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestDocumentMapper.php',
|
||||
'PharIo\\Manifest\\ManifestDocumentMapperException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php',
|
||||
'PharIo\\Manifest\\ManifestElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestElement.php',
|
||||
'PharIo\\Manifest\\ManifestElementException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestElementException.php',
|
||||
'PharIo\\Manifest\\ManifestLoader' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestLoader.php',
|
||||
'PharIo\\Manifest\\ManifestLoaderException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php',
|
||||
'PharIo\\Manifest\\ManifestSerializer' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestSerializer.php',
|
||||
'PharIo\\Manifest\\PhpElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/PhpElement.php',
|
||||
'PharIo\\Manifest\\PhpExtensionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpExtensionRequirement.php',
|
||||
'PharIo\\Manifest\\PhpVersionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpVersionRequirement.php',
|
||||
'PharIo\\Manifest\\Requirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Requirement.php',
|
||||
'PharIo\\Manifest\\RequirementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollection.php',
|
||||
'PharIo\\Manifest\\RequirementCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollectionIterator.php',
|
||||
'PharIo\\Manifest\\RequiresElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/RequiresElement.php',
|
||||
'PharIo\\Manifest\\Type' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Type.php',
|
||||
'PharIo\\Manifest\\Url' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Url.php',
|
||||
'PharIo\\Version\\AbstractVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AbstractVersionConstraint.php',
|
||||
'PharIo\\Version\\AndVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AndVersionConstraintGroup.php',
|
||||
'PharIo\\Version\\AnyVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AnyVersionConstraint.php',
|
||||
'PharIo\\Version\\ExactVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/ExactVersionConstraint.php',
|
||||
'PharIo\\Version\\Exception' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/Exception.php',
|
||||
'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php',
|
||||
'PharIo\\Version\\InvalidPreReleaseSuffixException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php',
|
||||
'PharIo\\Version\\InvalidVersionException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/InvalidVersionException.php',
|
||||
'PharIo\\Version\\NoPreReleaseSuffixException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/NoPreReleaseSuffixException.php',
|
||||
'PharIo\\Version\\OrVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php',
|
||||
'PharIo\\Version\\PreReleaseSuffix' => __DIR__ . '/..' . '/phar-io/version/src/PreReleaseSuffix.php',
|
||||
'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php',
|
||||
'PharIo\\Version\\SpecificMajorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php',
|
||||
'PharIo\\Version\\UnsupportedVersionConstraintException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/UnsupportedVersionConstraintException.php',
|
||||
'PharIo\\Version\\Version' => __DIR__ . '/..' . '/phar-io/version/src/Version.php',
|
||||
'PharIo\\Version\\VersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/VersionConstraint.php',
|
||||
'PharIo\\Version\\VersionConstraintParser' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintParser.php',
|
||||
'PharIo\\Version\\VersionConstraintValue' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintValue.php',
|
||||
'PharIo\\Version\\VersionNumber' => __DIR__ . '/..' . '/phar-io/version/src/VersionNumber.php',
|
||||
'SebastianBergmann\\CodeCoverage\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage.php',
|
||||
'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Driver.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Driver\\PCOV' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PCOV.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Xdebug.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Exception' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Exception.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Filter' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Filter.php',
|
||||
'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/AbstractNode.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\Builder' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Builder.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Directory.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/File.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Iterator.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Clover' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Clover.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Crap4j.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Facade.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\PHP' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/PHP.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Text' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Text.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/File.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Method.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Node.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Project.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Report.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Source.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php',
|
||||
'SebastianBergmann\\CodeCoverage\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Util' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Util.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Version' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Version.php',
|
||||
'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => __DIR__ . '/..' . '/sebastian/code-unit-reverse-lookup/src/Wizard.php',
|
||||
'SebastianBergmann\\Comparator\\ArrayComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ArrayComparator.php',
|
||||
'SebastianBergmann\\Comparator\\Comparator' => __DIR__ . '/..' . '/sebastian/comparator/src/Comparator.php',
|
||||
'SebastianBergmann\\Comparator\\ComparisonFailure' => __DIR__ . '/..' . '/sebastian/comparator/src/ComparisonFailure.php',
|
||||
'SebastianBergmann\\Comparator\\DOMNodeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DOMNodeComparator.php',
|
||||
'SebastianBergmann\\Comparator\\DateTimeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DateTimeComparator.php',
|
||||
'SebastianBergmann\\Comparator\\DoubleComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DoubleComparator.php',
|
||||
'SebastianBergmann\\Comparator\\ExceptionComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ExceptionComparator.php',
|
||||
'SebastianBergmann\\Comparator\\Factory' => __DIR__ . '/..' . '/sebastian/comparator/src/Factory.php',
|
||||
'SebastianBergmann\\Comparator\\MockObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/MockObjectComparator.php',
|
||||
'SebastianBergmann\\Comparator\\NumericComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/NumericComparator.php',
|
||||
'SebastianBergmann\\Comparator\\ObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ObjectComparator.php',
|
||||
'SebastianBergmann\\Comparator\\ResourceComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ResourceComparator.php',
|
||||
'SebastianBergmann\\Comparator\\ScalarComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ScalarComparator.php',
|
||||
'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/SplObjectStorageComparator.php',
|
||||
'SebastianBergmann\\Comparator\\TypeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/TypeComparator.php',
|
||||
'SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php',
|
||||
'SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php',
|
||||
'SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php',
|
||||
'SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php',
|
||||
'SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php',
|
||||
'SebastianBergmann\\Diff\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php',
|
||||
'SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php',
|
||||
'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php',
|
||||
'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php',
|
||||
'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php',
|
||||
'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php',
|
||||
'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php',
|
||||
'SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php',
|
||||
'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php',
|
||||
'SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php',
|
||||
'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php',
|
||||
'SebastianBergmann\\Environment\\Console' => __DIR__ . '/..' . '/sebastian/environment/src/Console.php',
|
||||
'SebastianBergmann\\Environment\\OperatingSystem' => __DIR__ . '/..' . '/sebastian/environment/src/OperatingSystem.php',
|
||||
'SebastianBergmann\\Environment\\Runtime' => __DIR__ . '/..' . '/sebastian/environment/src/Runtime.php',
|
||||
'SebastianBergmann\\Exporter\\Exporter' => __DIR__ . '/..' . '/sebastian/exporter/src/Exporter.php',
|
||||
'SebastianBergmann\\FileIterator\\Facade' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Facade.php',
|
||||
'SebastianBergmann\\FileIterator\\Factory' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Factory.php',
|
||||
'SebastianBergmann\\FileIterator\\Iterator' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Iterator.php',
|
||||
'SebastianBergmann\\GlobalState\\Blacklist' => __DIR__ . '/..' . '/sebastian/global-state/src/Blacklist.php',
|
||||
'SebastianBergmann\\GlobalState\\CodeExporter' => __DIR__ . '/..' . '/sebastian/global-state/src/CodeExporter.php',
|
||||
'SebastianBergmann\\GlobalState\\Exception' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/Exception.php',
|
||||
'SebastianBergmann\\GlobalState\\Restorer' => __DIR__ . '/..' . '/sebastian/global-state/src/Restorer.php',
|
||||
'SebastianBergmann\\GlobalState\\RuntimeException' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/RuntimeException.php',
|
||||
'SebastianBergmann\\GlobalState\\Snapshot' => __DIR__ . '/..' . '/sebastian/global-state/src/Snapshot.php',
|
||||
'SebastianBergmann\\ObjectEnumerator\\Enumerator' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Enumerator.php',
|
||||
'SebastianBergmann\\ObjectEnumerator\\Exception' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Exception.php',
|
||||
'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/InvalidArgumentException.php',
|
||||
'SebastianBergmann\\ObjectReflector\\Exception' => __DIR__ . '/..' . '/sebastian/object-reflector/src/Exception.php',
|
||||
'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-reflector/src/InvalidArgumentException.php',
|
||||
'SebastianBergmann\\ObjectReflector\\ObjectReflector' => __DIR__ . '/..' . '/sebastian/object-reflector/src/ObjectReflector.php',
|
||||
'SebastianBergmann\\RecursionContext\\Context' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Context.php',
|
||||
'SebastianBergmann\\RecursionContext\\Exception' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Exception.php',
|
||||
'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/recursion-context/src/InvalidArgumentException.php',
|
||||
'SebastianBergmann\\ResourceOperations\\ResourceOperations' => __DIR__ . '/..' . '/sebastian/resource-operations/src/ResourceOperations.php',
|
||||
'SebastianBergmann\\Timer\\Exception' => __DIR__ . '/..' . '/phpunit/php-timer/src/Exception.php',
|
||||
'SebastianBergmann\\Timer\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-timer/src/RuntimeException.php',
|
||||
'SebastianBergmann\\Timer\\Timer' => __DIR__ . '/..' . '/phpunit/php-timer/src/Timer.php',
|
||||
'SebastianBergmann\\Type\\CallableType' => __DIR__ . '/..' . '/sebastian/type/src/CallableType.php',
|
||||
'SebastianBergmann\\Type\\Exception' => __DIR__ . '/..' . '/sebastian/type/src/exception/Exception.php',
|
||||
'SebastianBergmann\\Type\\GenericObjectType' => __DIR__ . '/..' . '/sebastian/type/src/GenericObjectType.php',
|
||||
'SebastianBergmann\\Type\\IterableType' => __DIR__ . '/..' . '/sebastian/type/src/IterableType.php',
|
||||
'SebastianBergmann\\Type\\NullType' => __DIR__ . '/..' . '/sebastian/type/src/NullType.php',
|
||||
'SebastianBergmann\\Type\\ObjectType' => __DIR__ . '/..' . '/sebastian/type/src/ObjectType.php',
|
||||
'SebastianBergmann\\Type\\RuntimeException' => __DIR__ . '/..' . '/sebastian/type/src/exception/RuntimeException.php',
|
||||
'SebastianBergmann\\Type\\SimpleType' => __DIR__ . '/..' . '/sebastian/type/src/SimpleType.php',
|
||||
'SebastianBergmann\\Type\\Type' => __DIR__ . '/..' . '/sebastian/type/src/Type.php',
|
||||
'SebastianBergmann\\Type\\TypeName' => __DIR__ . '/..' . '/sebastian/type/src/TypeName.php',
|
||||
'SebastianBergmann\\Type\\UnknownType' => __DIR__ . '/..' . '/sebastian/type/src/UnknownType.php',
|
||||
'SebastianBergmann\\Type\\VoidType' => __DIR__ . '/..' . '/sebastian/type/src/VoidType.php',
|
||||
'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php',
|
||||
'Text_Template' => __DIR__ . '/..' . '/phpunit/php-text-template/src/Template.php',
|
||||
'TheSeer\\Tokenizer\\Exception' => __DIR__ . '/..' . '/theseer/tokenizer/src/Exception.php',
|
||||
'TheSeer\\Tokenizer\\NamespaceUri' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUri.php',
|
||||
'TheSeer\\Tokenizer\\NamespaceUriException' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUriException.php',
|
||||
'TheSeer\\Tokenizer\\Token' => __DIR__ . '/..' . '/theseer/tokenizer/src/Token.php',
|
||||
'TheSeer\\Tokenizer\\TokenCollection' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollection.php',
|
||||
'TheSeer\\Tokenizer\\TokenCollectionException' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollectionException.php',
|
||||
'TheSeer\\Tokenizer\\Tokenizer' => __DIR__ . '/..' . '/theseer/tokenizer/src/Tokenizer.php',
|
||||
'TheSeer\\Tokenizer\\XMLSerializer' => __DIR__ . '/..' . '/theseer/tokenizer/src/XMLSerializer.php',
|
||||
);
|
||||
|
||||
public static function getInitializer(ClassLoader $loader)
|
||||
{
|
||||
return \Closure::bind(function () use ($loader) {
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInit6482daa1e61704139ecfb6f76b39fab6::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInit6482daa1e61704139ecfb6f76b39fab6::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInit6482daa1e61704139ecfb6f76b39fab6::$classMap;
|
||||
|
||||
}, null, ClassLoader::class);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,289 @@
|
|||
<?php return array (
|
||||
'root' =>
|
||||
array (
|
||||
'pretty_version' => 'dev-develop',
|
||||
'version' => 'dev-develop',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '48d86a9697ae4e37c97520db416201371e48a5ac',
|
||||
'name' => 'articapfms/update_manager_client',
|
||||
),
|
||||
'versions' =>
|
||||
array (
|
||||
'articapfms/update_manager_client' =>
|
||||
array (
|
||||
'pretty_version' => 'dev-develop',
|
||||
'version' => 'dev-develop',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '48d86a9697ae4e37c97520db416201371e48a5ac',
|
||||
),
|
||||
'doctrine/instantiator' =>
|
||||
array (
|
||||
'pretty_version' => '1.4.0',
|
||||
'version' => '1.4.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'd56bf6102915de5702778fe20f2de3b2fe570b5b',
|
||||
),
|
||||
'myclabs/deep-copy' =>
|
||||
array (
|
||||
'pretty_version' => '1.10.2',
|
||||
'version' => '1.10.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '776f831124e9c62e1a2c601ecc52e776d8bb7220',
|
||||
'replaced' =>
|
||||
array (
|
||||
0 => '1.10.2',
|
||||
),
|
||||
),
|
||||
'phar-io/manifest' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.1',
|
||||
'version' => '2.0.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '85265efd3af7ba3ca4b2a2c34dbfc5788dd29133',
|
||||
),
|
||||
'phar-io/version' =>
|
||||
array (
|
||||
'pretty_version' => '3.1.0',
|
||||
'version' => '3.1.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'bae7c545bef187884426f042434e561ab1ddb182',
|
||||
),
|
||||
'phpdocumentor/reflection-common' =>
|
||||
array (
|
||||
'pretty_version' => '2.2.0',
|
||||
'version' => '2.2.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '1d01c49d4ed62f25aa84a747ad35d5a16924662b',
|
||||
),
|
||||
'phpdocumentor/reflection-docblock' =>
|
||||
array (
|
||||
'pretty_version' => '5.2.2',
|
||||
'version' => '5.2.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '069a785b2141f5bcf49f3e353548dc1cce6df556',
|
||||
),
|
||||
'phpdocumentor/type-resolver' =>
|
||||
array (
|
||||
'pretty_version' => '1.4.0',
|
||||
'version' => '1.4.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0',
|
||||
),
|
||||
'phpspec/prophecy' =>
|
||||
array (
|
||||
'pretty_version' => '1.12.2',
|
||||
'version' => '1.12.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '245710e971a030f42e08f4912863805570f23d39',
|
||||
),
|
||||
'phpunit/php-code-coverage' =>
|
||||
array (
|
||||
'pretty_version' => '7.0.14',
|
||||
'version' => '7.0.14.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'bb7c9a210c72e4709cdde67f8b7362f672f2225c',
|
||||
),
|
||||
'phpunit/php-file-iterator' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.3',
|
||||
'version' => '2.0.3.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '4b49fb70f067272b659ef0174ff9ca40fdaa6357',
|
||||
),
|
||||
'phpunit/php-text-template' =>
|
||||
array (
|
||||
'pretty_version' => '1.2.1',
|
||||
'version' => '1.2.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '31f8b717e51d9a2afca6c9f046f5d69fc27c8686',
|
||||
),
|
||||
'phpunit/php-timer' =>
|
||||
array (
|
||||
'pretty_version' => '2.1.3',
|
||||
'version' => '2.1.3.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '2454ae1765516d20c4ffe103d85a58a9a3bd5662',
|
||||
),
|
||||
'phpunit/php-token-stream' =>
|
||||
array (
|
||||
'pretty_version' => '4.0.4',
|
||||
'version' => '4.0.4.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'a853a0e183b9db7eed023d7933a858fa1c8d25a3',
|
||||
),
|
||||
'phpunit/phpunit' =>
|
||||
array (
|
||||
'pretty_version' => '8.5.14',
|
||||
'version' => '8.5.14.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'c25f79895d27b6ecd5abfa63de1606b786a461a3',
|
||||
),
|
||||
'sebastian/code-unit-reverse-lookup' =>
|
||||
array (
|
||||
'pretty_version' => '1.0.2',
|
||||
'version' => '1.0.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '1de8cd5c010cb153fcd68b8d0f64606f523f7619',
|
||||
),
|
||||
'sebastian/comparator' =>
|
||||
array (
|
||||
'pretty_version' => '3.0.3',
|
||||
'version' => '3.0.3.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '1071dfcef776a57013124ff35e1fc41ccd294758',
|
||||
),
|
||||
'sebastian/diff' =>
|
||||
array (
|
||||
'pretty_version' => '3.0.3',
|
||||
'version' => '3.0.3.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '14f72dd46eaf2f2293cbe79c93cc0bc43161a211',
|
||||
),
|
||||
'sebastian/environment' =>
|
||||
array (
|
||||
'pretty_version' => '4.2.4',
|
||||
'version' => '4.2.4.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'd47bbbad83711771f167c72d4e3f25f7fcc1f8b0',
|
||||
),
|
||||
'sebastian/exporter' =>
|
||||
array (
|
||||
'pretty_version' => '3.1.3',
|
||||
'version' => '3.1.3.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '6b853149eab67d4da22291d36f5b0631c0fd856e',
|
||||
),
|
||||
'sebastian/global-state' =>
|
||||
array (
|
||||
'pretty_version' => '3.0.1',
|
||||
'version' => '3.0.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '474fb9edb7ab891665d3bfc6317f42a0a150454b',
|
||||
),
|
||||
'sebastian/object-enumerator' =>
|
||||
array (
|
||||
'pretty_version' => '3.0.4',
|
||||
'version' => '3.0.4.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2',
|
||||
),
|
||||
'sebastian/object-reflector' =>
|
||||
array (
|
||||
'pretty_version' => '1.1.2',
|
||||
'version' => '1.1.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '9b8772b9cbd456ab45d4a598d2dd1a1bced6363d',
|
||||
),
|
||||
'sebastian/recursion-context' =>
|
||||
array (
|
||||
'pretty_version' => '3.0.1',
|
||||
'version' => '3.0.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '367dcba38d6e1977be014dc4b22f47a484dac7fb',
|
||||
),
|
||||
'sebastian/resource-operations' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.2',
|
||||
'version' => '2.0.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '31d35ca87926450c44eae7e2611d45a7a65ea8b3',
|
||||
),
|
||||
'sebastian/type' =>
|
||||
array (
|
||||
'pretty_version' => '1.1.4',
|
||||
'version' => '1.1.4.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '0150cfbc4495ed2df3872fb31b26781e4e077eb4',
|
||||
),
|
||||
'sebastian/version' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.1',
|
||||
'version' => '2.0.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '99732be0ddb3361e16ad77b68ba41efc8e979019',
|
||||
),
|
||||
'symfony/polyfill-ctype' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.1',
|
||||
'version' => '1.22.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'c6c942b1ac76c82448322025e084cadc56048b4e',
|
||||
),
|
||||
'theseer/tokenizer' =>
|
||||
array (
|
||||
'pretty_version' => '1.2.0',
|
||||
'version' => '1.2.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '75a63c33a8577608444246075ea0af0d052e452a',
|
||||
),
|
||||
'webmozart/assert' =>
|
||||
array (
|
||||
'pretty_version' => '1.9.1',
|
||||
'version' => '1.9.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'bafc69caeb4d49c39fd0779086c03a3738cbb389',
|
||||
),
|
||||
),
|
||||
);
|
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
|
||||
// platform_check.php @generated by Composer
|
||||
|
||||
$issues = array();
|
||||
|
||||
if (!(PHP_VERSION_ID >= 70200)) {
|
||||
$issues[] = 'Your Composer dependencies require a PHP version ">= 7.2.0". You are running ' . PHP_VERSION . '.';
|
||||
}
|
||||
|
||||
if ($issues) {
|
||||
if (!headers_sent()) {
|
||||
header('HTTP/1.1 500 Internal Server Error');
|
||||
}
|
||||
if (!ini_get('display_errors')) {
|
||||
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
|
||||
fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
|
||||
} elseif (!headers_sent()) {
|
||||
echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
|
||||
}
|
||||
}
|
||||
trigger_error(
|
||||
'Composer detected issues in your platform: ' . implode(' ', $issues),
|
||||
E_USER_ERROR
|
||||
);
|
||||
}
|
41
pandora_console/godmode/um_client/vendor/doctrine/instantiator/.doctrine-project.json
vendored
Normal file
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"active": true,
|
||||
"name": "Instantiator",
|
||||
"slug": "instantiator",
|
||||
"docsSlug": "doctrine-instantiator",
|
||||
"codePath": "/src",
|
||||
"versions": [
|
||||
{
|
||||
"name": "1.4",
|
||||
"branchName": "master",
|
||||
"slug": "latest",
|
||||
"upcoming": true
|
||||
},
|
||||
{
|
||||
"name": "1.3",
|
||||
"branchName": "1.3.x",
|
||||
"slug": "1.3",
|
||||
"aliases": [
|
||||
"current",
|
||||
"stable"
|
||||
],
|
||||
"maintained": true,
|
||||
"current": true
|
||||
},
|
||||
{
|
||||
"name": "1.2",
|
||||
"branchName": "1.2.x",
|
||||
"slug": "1.2"
|
||||
},
|
||||
{
|
||||
"name": "1.1",
|
||||
"branchName": "1.1.x",
|
||||
"slug": "1.1"
|
||||
},
|
||||
{
|
||||
"name": "1.0",
|
||||
"branchName": "1.0.x",
|
||||
"slug": "1.0"
|
||||
}
|
||||
]
|
||||
}
|
3
pandora_console/godmode/um_client/vendor/doctrine/instantiator/.github/FUNDING.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
patreon: phpdoctrine
|
||||
tidelift: packagist/doctrine%2Finstantiator
|
||||
custom: https://www.doctrine-project.org/sponsorship.html
|
|
@ -0,0 +1,48 @@
|
|||
|
||||
name: "Coding Standards"
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- "*.x"
|
||||
push:
|
||||
branches:
|
||||
- "*.x"
|
||||
|
||||
env:
|
||||
COMPOSER_ROOT_VERSION: "1.4"
|
||||
|
||||
jobs:
|
||||
coding-standards:
|
||||
name: "Coding Standards"
|
||||
runs-on: "ubuntu-20.04"
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-version:
|
||||
- "7.4"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2"
|
||||
|
||||
- name: "Install PHP"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
with:
|
||||
coverage: "none"
|
||||
php-version: "${{ matrix.php-version }}"
|
||||
tools: "cs2pr"
|
||||
|
||||
- name: "Cache dependencies installed with Composer"
|
||||
uses: "actions/cache@v2"
|
||||
with:
|
||||
path: "~/.composer/cache"
|
||||
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}"
|
||||
restore-keys: "php-${{ matrix.php-version }}-composer-locked-"
|
||||
|
||||
- name: "Install dependencies with Composer"
|
||||
run: "composer install --no-interaction --no-progress"
|
||||
|
||||
# https://github.com/doctrine/.github/issues/3
|
||||
- name: "Run PHP_CodeSniffer"
|
||||
run: "vendor/bin/phpcs -q --no-colors --report=checkstyle | cs2pr"
|
|
@ -0,0 +1,91 @@
|
|||
|
||||
name: "Continuous Integration"
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- "*.x"
|
||||
push:
|
||||
branches:
|
||||
- "*.x"
|
||||
|
||||
env:
|
||||
fail-fast: true
|
||||
COMPOSER_ROOT_VERSION: "1.4"
|
||||
|
||||
jobs:
|
||||
phpunit:
|
||||
name: "PHPUnit with SQLite"
|
||||
runs-on: "ubuntu-20.04"
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-version:
|
||||
- "7.1"
|
||||
- "7.2"
|
||||
- "7.3"
|
||||
- "7.4"
|
||||
- "8.0"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2"
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
- name: "Install PHP with XDebug"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
if: "${{ matrix.php-version == '7.1' }}"
|
||||
with:
|
||||
php-version: "${{ matrix.php-version }}"
|
||||
coverage: "xdebug"
|
||||
ini-values: "zend.assertions=1"
|
||||
|
||||
- name: "Install PHP with PCOV"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
if: "${{ matrix.php-version != '7.1' }}"
|
||||
with:
|
||||
php-version: "${{ matrix.php-version }}"
|
||||
coverage: "pcov"
|
||||
ini-values: "zend.assertions=1"
|
||||
|
||||
- name: "Cache dependencies installed with composer"
|
||||
uses: "actions/cache@v2"
|
||||
with:
|
||||
path: "~/.composer/cache"
|
||||
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}"
|
||||
restore-keys: "php-${{ matrix.php-version }}-composer-locked-"
|
||||
|
||||
- name: "Install dependencies with composer"
|
||||
run: "composer update --no-interaction --no-progress"
|
||||
|
||||
- name: "Run PHPUnit"
|
||||
run: "vendor/bin/phpunit --coverage-clover=coverage.xml"
|
||||
|
||||
- name: "Upload coverage file"
|
||||
uses: "actions/upload-artifact@v2"
|
||||
with:
|
||||
name: "phpunit-${{ matrix.php-version }}.coverage"
|
||||
path: "coverage.xml"
|
||||
|
||||
upload_coverage:
|
||||
name: "Upload coverage to Codecov"
|
||||
runs-on: "ubuntu-20.04"
|
||||
needs:
|
||||
- "phpunit"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2"
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
- name: "Download coverage files"
|
||||
uses: "actions/download-artifact@v2"
|
||||
with:
|
||||
path: "reports"
|
||||
|
||||
- name: "Upload to Codecov"
|
||||
uses: "codecov/codecov-action@v1"
|
||||
with:
|
||||
directory: reports
|
50
pandora_console/godmode/um_client/vendor/doctrine/instantiator/.github/workflows/phpbench.yml
vendored
Normal file
|
@ -0,0 +1,50 @@
|
|||
|
||||
name: "Performance benchmark"
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- "*.x"
|
||||
push:
|
||||
branches:
|
||||
- "*.x"
|
||||
|
||||
env:
|
||||
fail-fast: true
|
||||
COMPOSER_ROOT_VERSION: "1.4"
|
||||
|
||||
jobs:
|
||||
phpbench:
|
||||
name: "PHPBench"
|
||||
runs-on: "ubuntu-20.04"
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-version:
|
||||
- "7.4"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2"
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
- name: "Install PHP"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
with:
|
||||
php-version: "${{ matrix.php-version }}"
|
||||
coverage: "pcov"
|
||||
ini-values: "zend.assertions=1"
|
||||
|
||||
- name: "Cache dependencies installed with composer"
|
||||
uses: "actions/cache@v2"
|
||||
with:
|
||||
path: "~/.composer/cache"
|
||||
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}"
|
||||
restore-keys: "php-${{ matrix.php-version }}-composer-locked-"
|
||||
|
||||
- name: "Install dependencies with composer"
|
||||
run: "composer update --no-interaction --no-progress"
|
||||
|
||||
- name: "Run PHPBench"
|
||||
run: "php ./vendor/bin/phpbench run --iterations=3 --warmup=1 --report=aggregate"
|
|
@ -0,0 +1,45 @@
|
|||
name: "Automatic Releases"
|
||||
|
||||
on:
|
||||
milestone:
|
||||
types:
|
||||
- "closed"
|
||||
|
||||
jobs:
|
||||
release:
|
||||
name: "Git tag, release & create merge-up PR"
|
||||
runs-on: "ubuntu-20.04"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2"
|
||||
|
||||
- name: "Release"
|
||||
uses: "laminas/automatic-releases@v1"
|
||||
with:
|
||||
command-name: "laminas:automatic-releases:release"
|
||||
env:
|
||||
"GITHUB_TOKEN": ${{ secrets.GITHUB_TOKEN }}
|
||||
"SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }}
|
||||
"GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }}
|
||||
"GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }}
|
||||
|
||||
- name: "Create Merge-Up Pull Request"
|
||||
uses: "laminas/automatic-releases@v1"
|
||||
with:
|
||||
command-name: "laminas:automatic-releases:create-merge-up-pull-request"
|
||||
env:
|
||||
"GITHUB_TOKEN": ${{ secrets.GITHUB_TOKEN }}
|
||||
"SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }}
|
||||
"GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }}
|
||||
"GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }}
|
||||
|
||||
- name: "Create new milestones"
|
||||
uses: "laminas/automatic-releases@v1"
|
||||
with:
|
||||
command-name: "laminas:automatic-releases:create-milestones"
|
||||
env:
|
||||
"GITHUB_TOKEN": ${{ secrets.GITHUB_TOKEN }}
|
||||
"SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }}
|
||||
"GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }}
|
||||
"GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }}
|
|
@ -0,0 +1,47 @@
|
|||
|
||||
name: "Static Analysis"
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- "*.x"
|
||||
push:
|
||||
branches:
|
||||
- "*.x"
|
||||
|
||||
env:
|
||||
COMPOSER_ROOT_VERSION: "1.4"
|
||||
|
||||
jobs:
|
||||
static-analysis-phpstan:
|
||||
name: "Static Analysis with PHPStan"
|
||||
runs-on: "ubuntu-20.04"
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-version:
|
||||
- "7.4"
|
||||
|
||||
steps:
|
||||
- name: "Checkout code"
|
||||
uses: "actions/checkout@v2"
|
||||
|
||||
- name: "Install PHP"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
with:
|
||||
coverage: "none"
|
||||
php-version: "${{ matrix.php-version }}"
|
||||
tools: "cs2pr"
|
||||
|
||||
- name: "Cache dependencies installed with composer"
|
||||
uses: "actions/cache@v2"
|
||||
with:
|
||||
path: "~/.composer/cache"
|
||||
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}"
|
||||
restore-keys: "php-${{ matrix.php-version }}-composer-locked-"
|
||||
|
||||
- name: "Install dependencies with composer"
|
||||
run: "composer install --no-interaction --no-progress"
|
||||
|
||||
- name: "Run a static analysis with phpstan/phpstan"
|
||||
run: "vendor/bin/phpstan analyse --error-format=checkstyle | cs2pr"
|
35
pandora_console/godmode/um_client/vendor/doctrine/instantiator/CONTRIBUTING.md
vendored
Normal file
|
@ -0,0 +1,35 @@
|
|||
# Contributing
|
||||
|
||||
* Follow the [Doctrine Coding Standard](https://github.com/doctrine/coding-standard)
|
||||
* The project will follow strict [object calisthenics](http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php)
|
||||
* Any contribution must provide tests for additional introduced conditions
|
||||
* Any un-confirmed issue needs a failing test case before being accepted
|
||||
* Pull requests must be sent from a new hotfix/feature branch, not from `master`.
|
||||
|
||||
## Installation
|
||||
|
||||
To install the project and run the tests, you need to clone it first:
|
||||
|
||||
```sh
|
||||
$ git clone git://github.com/doctrine/instantiator.git
|
||||
```
|
||||
|
||||
You will then need to run a composer installation:
|
||||
|
||||
```sh
|
||||
$ cd Instantiator
|
||||
$ curl -s https://getcomposer.org/installer | php
|
||||
$ php composer.phar update
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
The PHPUnit version to be used is the one installed as a dev- dependency via composer:
|
||||
|
||||
```sh
|
||||
$ ./vendor/bin/phpunit
|
||||
```
|
||||
|
||||
Accepted coverage for new contributions is 80%. Any contribution not satisfying this requirement
|
||||
won't be merged.
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
Copyright (c) 2014 Doctrine Project
|
||||
|
||||
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.
|
|
@ -0,0 +1,38 @@
|
|||
# Instantiator
|
||||
|
||||
This library provides a way of avoiding usage of constructors when instantiating PHP classes.
|
||||
|
||||
[](https://travis-ci.org/doctrine/instantiator)
|
||||
[](https://codecov.io/gh/doctrine/instantiator/branch/master)
|
||||
[](https://www.versioneye.com/package/php--doctrine--instantiator)
|
||||
|
||||
[](https://packagist.org/packages/doctrine/instantiator)
|
||||
[](https://packagist.org/packages/doctrine/instantiator)
|
||||
|
||||
## Installation
|
||||
|
||||
The suggested installation method is via [composer](https://getcomposer.org/):
|
||||
|
||||
```sh
|
||||
php composer.phar require "doctrine/instantiator:~1.0.3"
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
The instantiator is able to create new instances of any class without using the constructor or any API of the class
|
||||
itself:
|
||||
|
||||
```php
|
||||
$instantiator = new \Doctrine\Instantiator\Instantiator();
|
||||
|
||||
$instance = $instantiator->instantiate(\My\ClassName\Here::class);
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
Please read the [CONTRIBUTING.md](CONTRIBUTING.md) contents if you wish to help out!
|
||||
|
||||
## Credits
|
||||
|
||||
This library was migrated from [ocramius/instantiator](https://github.com/Ocramius/Instantiator), which
|
||||
has been donated to the doctrine organization, and which is now deprecated in favour of this package.
|
42
pandora_console/godmode/um_client/vendor/doctrine/instantiator/composer.json
vendored
Normal file
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"name": "doctrine/instantiator",
|
||||
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
|
||||
"type": "library",
|
||||
"license": "MIT",
|
||||
"homepage": "https://www.doctrine-project.org/projects/instantiator.html",
|
||||
"keywords": [
|
||||
"instantiate",
|
||||
"constructor"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com",
|
||||
"homepage": "https://ocramius.github.io/"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-phar": "*",
|
||||
"ext-pdo": "*",
|
||||
"doctrine/coding-standard": "^8.0",
|
||||
"phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
|
||||
"phpstan/phpstan": "^0.12",
|
||||
"phpstan/phpstan-phpunit": "^0.12",
|
||||
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-0": {
|
||||
"DoctrineTest\\InstantiatorPerformance\\": "tests",
|
||||
"DoctrineTest\\InstantiatorTest\\": "tests",
|
||||
"DoctrineTest\\InstantiatorTestAsset\\": "tests"
|
||||
}
|
||||
}
|
||||
}
|
68
pandora_console/godmode/um_client/vendor/doctrine/instantiator/docs/en/index.rst
vendored
Normal file
|
@ -0,0 +1,68 @@
|
|||
Introduction
|
||||
============
|
||||
|
||||
This library provides a way of avoiding usage of constructors when instantiating PHP classes.
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
The suggested installation method is via `composer`_:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ composer require doctrine/instantiator
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
The instantiator is able to create new instances of any class without
|
||||
using the constructor or any API of the class itself:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
<?php
|
||||
|
||||
use Doctrine\Instantiator\Instantiator;
|
||||
use App\Entities\User;
|
||||
|
||||
$instantiator = new Instantiator();
|
||||
|
||||
$user = $instantiator->instantiate(User::class);
|
||||
|
||||
Contributing
|
||||
============
|
||||
|
||||
- Follow the `Doctrine Coding Standard`_
|
||||
- The project will follow strict `object calisthenics`_
|
||||
- Any contribution must provide tests for additional introduced
|
||||
conditions
|
||||
- Any un-confirmed issue needs a failing test case before being
|
||||
accepted
|
||||
- Pull requests must be sent from a new hotfix/feature branch, not from
|
||||
``master``.
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
The PHPUnit version to be used is the one installed as a dev- dependency
|
||||
via composer:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ ./vendor/bin/phpunit
|
||||
|
||||
Accepted coverage for new contributions is 80%. Any contribution not
|
||||
satisfying this requirement won’t be merged.
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
This library was migrated from `ocramius/instantiator`_, which has been
|
||||
donated to the doctrine organization, and which is now deprecated in
|
||||
favour of this package.
|
||||
|
||||
.. _composer: https://getcomposer.org/
|
||||
.. _CONTRIBUTING.md: CONTRIBUTING.md
|
||||
.. _ocramius/instantiator: https://github.com/Ocramius/Instantiator
|
||||
.. _Doctrine Coding Standard: https://github.com/doctrine/coding-standard
|
||||
.. _object calisthenics: http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php
|
4
pandora_console/godmode/um_client/vendor/doctrine/instantiator/docs/en/sidebar.rst
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
.. toctree::
|
||||
:depth: 3
|
||||
|
||||
index
|