diff --git a/README.md b/README.md
index 9994258e8..ea8c3cfa5 100644
--- a/README.md
+++ b/README.md
@@ -126,14 +126,14 @@ Component Builder is mapped as a component in itself on my local development env
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](http://joomlacomponentbuilder.com)
+ *First Build*: 30th April, 2015
-+ *Last Build*: 27th February, 2018
++ *Last Build*: 28th February, 2018
+ *Version*: 2.6.17
+ *Copyright*: Copyright (C) 2015. All Rights Reserved
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
-+ *Line count*: **183098**
++ *Line count*: **183036**
+ *Field count*: **1641**
+ *File count*: **1169**
-+ *Folder count*: **188**
++ *Folder count*: **189**
> This **component** was build with a Joomla [Automated Component Builder](http://joomlacomponentbuilder.com).
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
diff --git a/admin/README.txt b/admin/README.txt
index 9994258e8..ea8c3cfa5 100644
--- a/admin/README.txt
+++ b/admin/README.txt
@@ -126,14 +126,14 @@ Component Builder is mapped as a component in itself on my local development env
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](http://joomlacomponentbuilder.com)
+ *First Build*: 30th April, 2015
-+ *Last Build*: 27th February, 2018
++ *Last Build*: 28th February, 2018
+ *Version*: 2.6.17
+ *Copyright*: Copyright (C) 2015. All Rights Reserved
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
-+ *Line count*: **183098**
++ *Line count*: **183036**
+ *Field count*: **1641**
+ *File count*: **1169**
-+ *Folder count*: **188**
++ *Folder count*: **189**
> This **component** was build with a Joomla [Automated Component Builder](http://joomlacomponentbuilder.com).
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
diff --git a/admin/compiler/joomla_3/script.php b/admin/compiler/joomla_3/script.php
index f26fa5b3b..e1525f537 100644
--- a/admin/compiler/joomla_3/script.php
+++ b/admin/compiler/joomla_3/script.php
@@ -111,6 +111,8 @@ class com_###component###InstallerScript
*/
function postflight($type, $parent)
{
+ // get application
+ $app = JFactory::getApplication();###MOVEFOLDERSSCRIPT###
// set the default component settings
if ($type == 'install')
{###POSTINSTALLSCRIPT###
@@ -119,5 +121,5 @@ class com_###component###InstallerScript
if ($type == 'update')
{###POSTUPDATESCRIPT###
}
- }
+ }###MOVEFOLDERSMETHOD###
}
diff --git a/admin/helpers/compiler/b_Structure.php b/admin/helpers/compiler/b_Structure.php
index 690f5ea7e..dfaf18d1c 100644
--- a/admin/helpers/compiler/b_Structure.php
+++ b/admin/helpers/compiler/b_Structure.php
@@ -306,12 +306,69 @@ class Structure extends Get
*/
public $addCheckin = false;
+ /**
+ * The Move Folders Switch
+ *
+ * @var boolean
+ */
+ public $setMoveFolders = false;
+
/**
* The array of last modified dates
*
* @var array
*/
protected $lastModifiedDate = array();
+
+ /**
+ * The array of dynamic paths
+ *
+ * JPATH_SITE is meant to represent the root path of the JSite application, just as JPATH_ADMINISTRATOR is mean to represent the root path of the JAdministrator application.
+ *
+ * JPATH_BASE is the root path for the current requested application.... so if you are in the administrator application:
+ *
+ * JPATH_BASE == JPATH_ADMINISTRATOR
+ *
+ * If you are in the site application:
+ *
+ * JPATH_BASE == JPATH_SITE
+ *
+ * If you are in the installation application:
+ *
+ * JPATH_BASE == JPATH_INSTALLATION.
+ *
+ * JPATH_ROOT is the root path for the Joomla install and does not depend upon any application.
+ *
+ * @var array
+ */
+ protected $constantPaths = array(
+ // The path to the administrator folder.
+ 'JPATH_ADMINISTRATOR' => JPATH_ADMINISTRATOR,
+ // The path to the installed Joomla! site, or JPATH_ROOT/administrator if executed from the backend.
+ 'JPATH_BASE' => JPATH_BASE,
+ // The path to the cache folder.
+ 'JPATH_CACHE' => JPATH_CACHE,
+ // The path to the administration folder of the current component being executed.
+ 'JPATH_COMPONENT_ADMINISTRATOR' => JPATH_COMPONENT_ADMINISTRATOR,
+ // The path to the site folder of the current component being executed.
+ 'JPATH_COMPONENT_SITE' => JPATH_COMPONENT_SITE,
+ // The path to the current component being executed.
+ 'JPATH_COMPONENT' => JPATH_COMPONENT,
+ // The path to folder containing the configuration.php file.
+ 'JPATH_CONFIGURATION' => JPATH_CONFIGURATION,
+ // The path to the installation folder.
+ 'JPATH_INSTALLATION' => JPATH_INSTALLATION,
+ // The path to the libraries folder.
+ 'JPATH_LIBRARIES' => JPATH_LIBRARIES,
+ // The path to the plugins folder.
+ 'JPATH_PLUGINS' => JPATH_PLUGINS,
+ // The path to the installed Joomla! site.
+ 'JPATH_ROOT' => JPATH_ROOT,
+ // The path to the installed Joomla! site.
+ 'JPATH_SITE' => JPATH_SITE,
+ // The path to the templates folder.
+ 'JPATH_THEMES' => JPATH_THEMES
+ );
/**
* Constructor
@@ -718,40 +775,58 @@ class Structure extends Get
$path = str_replace('c0mp0n3nt/', $this->componentPath . '/', $details->path);
// set the template folder path
$templatePath = (isset($details->custom) && $details->custom) ? (($details->custom !== 'full') ? $this->templatePathCustom.'/':'') : $this->templatePath.'/';
- // now mov the file
+ // set the final paths
+ $currentFullPath = str_replace('//', '/', $templatePath.'/'.$item);
+ $packageFullPath = str_replace('//', '/', $path.'/'.$new);
+ $zipFullPath = str_replace('//', '/', $zipPath.'/'.$new);
+ // now move the file
if ($details->type === 'file')
{
- if (!JFile::exists($templatePath . $item))
+ if (!JFile::exists($currentFullPath))
{
- $this->app->enqueueMessage(JText::sprintf('The file path: %s does not exist, and was not added!', $templatePath . $item), 'Error');
+ $this->app->enqueueMessage(JText::sprintf('The file path: %s does not exist, and was not added!', $currentFullPath), 'Error');
}
else
{
// move the file to its place
- JFile::copy($templatePath . $item, $path . '/' . $new);
+ JFile::copy($currentFullPath, $packageFullPath);
// count the file created
$this->fileCount++;
// store the new files
if (!in_array($ftem, $this->notNew))
{
- $this->newFiles['static'][] = array('path' => $path . '/' . $new, 'name' => $new, 'zip' => $zipPath . '/' . $new);
+ $this->newFiles['static'][] = array('path' => $packageFullPath, 'name' => $new, 'zip' => $zipFullPath);
}
}
}
elseif ($details->type === 'folder')
{
- if (!JFolder::exists($templatePath . $item))
+ if (!JFolder::exists($currentFullPath))
{
- $this->app->enqueueMessage(JText::sprintf('The folder path: %s does not exist, and was not added!', $templatePath . $item), 'Error');
+ $this->app->enqueueMessage(JText::sprintf('The folder path: %s does not exist, and was not added!', $currentFullPath), 'Error');
}
else
{
// move the folder to its place
- JFolder::copy($templatePath . $item, $path . '/' . $new);
+ JFolder::copy($currentFullPath, $packageFullPath);
// count the folder created
$this->folderCount++;
}
}
+ // check if we should add the dynamic folder moving script to the installer script
+ if (!$this->setMoveFolders)
+ {
+ $checker = explode('/',$zipFullPath);
+ // TODO <-- this may not be the best way, will keep an eye on this.
+ // We basicly only want to check if a folder is added that is not in the stdFolders array
+ if (isset($checker[0]) && ComponentbuilderHelper::checkString($checker[0]) && !in_array($checker[0], $stdFolders))
+ {
+ // add the setDynamicF0ld3rs() method to the install scipt.php file
+ $this->setMoveFolders = true;
+ // set message that this was done (will still add a tutorial link later)
+ $this->app->enqueueMessage(JText::sprintf('
Dynamic folder/s were detected.
A method (setDynamicF0ld3rs) was added to the install script.php of this package to insure that the folder/s are copied into the correct place when this componet is installed!
'), 'Notice');
+ }
+ }
}
return true;
}
@@ -1128,6 +1203,8 @@ class Structure extends Get
if(!isset($custom['folder']) && isset($custom['folderpath']))
{
$custom['folder'] = '/'.trim($custom['folderpath'], '/');
+ // update the dynamic path
+ $custom['folder'] = $this->updateDynamicPath($custom['folder']);
// remove the file path
unset($custom['folderpath']);
// triget fullpath
@@ -1237,6 +1314,8 @@ class Structure extends Get
if(!isset($custom['file']) && isset($custom['filepath']))
{
$custom['file'] = '/'.trim($custom['filepath'], '/');
+ // update the dynamic path
+ $custom['file'] = $this->updateDynamicPath($custom['file']);
// remove the file path
unset($custom['filepath']);
// triget fullpath
@@ -1312,6 +1391,19 @@ class Structure extends Get
}
}
+ /**
+ * Update paths with real value
+ *
+ * @param string $path The full path
+ *
+ * @return string The updated path
+ *
+ */
+ protected function updateDynamicPath($path)
+ {
+ return $this->setPlaceholders($path, $this->constantPaths);
+ }
+
/**
* Remove folders with files
*
diff --git a/admin/helpers/compiler/e_Interpretation.php b/admin/helpers/compiler/e_Interpretation.php
index f6e11d16c..ae09d5844 100644
--- a/admin/helpers/compiler/e_Interpretation.php
+++ b/admin/helpers/compiler/e_Interpretation.php
@@ -4682,6 +4682,66 @@ class Interpretation extends Fields
return $script;
}
+ public function setMoveFolderScript()
+ {
+ if ($this->setMoveFolders)
+ {
+ // reset script
+ $script = array();
+ $script[] = "\t\t//" . $this->setLine(__LINE__) . " We check if we have dynamic folders to copy";
+ $script[] = "\t\t\$this->setDynamicF0ld3rs(\$app, \$parent);";
+ // done
+ return PHP_EOL.implode(PHP_EOL, $script);
+ }
+ return '';
+ }
+
+ public function setMoveFolderMethod()
+ {
+ if ($this->setMoveFolders)
+ {
+ // reset script
+ $script = array();
+ $script[] = "\t/**";
+ $script[] = "\t * Method to set/copy dynamic folders into place (use with caution)";
+ $script[] = "\t *";
+ $script[] = "\t * @return void";
+ $script[] = "\t */";
+ $script[] = "\tprotected function setDynamicF0ld3rs(\$app, \$parent)";
+ $script[] = "\t{";
+ $script[] = "\t\t//" . $this->setLine(__LINE__) . " get the instalation path";
+ $script[] = "\t\t\$installer = \$parent->getParent();";
+ $script[] = "\t\t\$installPath = \$installer->getPath('source');";
+ $script[] = "\t\t//" . $this->setLine(__LINE__) . " get all the folders";
+ $script[] = "\t\t\$folders = JFolder::folders(\$installPath);";
+ $script[] = "\t\t//" . $this->setLine(__LINE__) . " check if we have folders we may want to copy";
+ $script[] = "\t\t\$doNotCopy = array('media','admin','site'); // Joomla already deals with these";
+ $script[] = "\t\tif (count(\$folders) > 1)";
+ $script[] = "\t\t{";
+ $script[] = "\t\t\tforeach (\$folders as \$folder)";
+ $script[] = "\t\t\t{";
+ $script[] = "\t\t\t\t//" . $this->setLine(__LINE__) . " Only copy if not a standard folders";
+ $script[] = "\t\t\t\tif (!in_array(\$folder, \$doNotCopy))";
+ $script[] = "\t\t\t\t{";
+ $script[] = "\t\t\t\t\t//" . $this->setLine(__LINE__) . " set the source path";
+ $script[] = "\t\t\t\t\t\$src = \$installPath.'/'.\$folder;";
+ $script[] = "\t\t\t\t\t//" . $this->setLine(__LINE__) . " set the destination path";
+ $script[] = "\t\t\t\t\t\$dest = JPATH_ROOT.'/'.\$folder;";
+ $script[] = "\t\t\t\t\t//" . $this->setLine(__LINE__) . " now try to copy the folder";
+ $script[] = "\t\t\t\t\tif (!JFolder::copy(\$src, \$dest, '', true))";
+ $script[] = "\t\t\t\t\t{";
+ $script[] = "\t\t\t\t\t\t\$app->enqueueMessage('Could not copy '.\$folder.' folder into place, please make sure destination is writable!', 'error');";
+ $script[] = "\t\t\t\t\t}";
+ $script[] = "\t\t\t\t}";
+ $script[] = "\t\t\t}";
+ $script[] = "\t\t}";
+ $script[] = "\t}";
+ // done
+ return PHP_EOL.PHP_EOL.implode(PHP_EOL, $script);
+ }
+ return '';
+ }
+
public function getContentType($view, $component)
{
// add if history is to be kept or if tags is added
diff --git a/admin/helpers/compiler/f_Infusion.php b/admin/helpers/compiler/f_Infusion.php
index 8465dbf8f..ec8f27a6b 100644
--- a/admin/helpers/compiler/f_Infusion.php
+++ b/admin/helpers/compiler/f_Infusion.php
@@ -1026,6 +1026,12 @@ class Infusion extends Interpretation
// ###UNINSTALLSCRIPT###
$this->fileContentStatic['###UNINSTALLSCRIPT###'] = $this->setUninstallScript();
+ // ###MOVEFOLDERSSCRIPT###
+ $this->fileContentStatic['###MOVEFOLDERSSCRIPT###'] = $this->setMoveFolderScript();
+
+ // ###MOVEFOLDERSMETHOD###
+ $this->fileContentStatic['###MOVEFOLDERSMETHOD###'] = $this->setMoveFolderMethod();
+
// ###HELPER_UIKIT###
$this->fileContentStatic['###HELPER_UIKIT###'] = $this->setUikitHelperMethods();
diff --git a/admin/helpers/componentbuilder.php b/admin/helpers/componentbuilder.php
index 8a9e2feff..5c1b388fc 100644
--- a/admin/helpers/componentbuilder.php
+++ b/admin/helpers/componentbuilder.php
@@ -1984,7 +1984,7 @@ abstract class ComponentbuilderHelper
if (!self::$composer)
{
// load the autoloader
- require_once JPATH_ADMINISTRATOR.'/components/com_componentbuilder/helpers/vendor/autoload.php';
+ require_once JPATH_SITE.'/libraries/vdm_io/vendor/autoload.php';
// do not load again
self::$composer = true;
}
@@ -2094,7 +2094,7 @@ abstract class ComponentbuilderHelper
if (!class_exists('\phpseclib\Net\SFTP'))
{
// class not in place so send out error
- JFactory::getApplication()->enqueueMessage(JText::_('COM_COMPONENTBUILDER_THE_BPHPSECLIBNETSFTPB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHOULD_HAVE_BEEN_ADDED_TO_YOUR_ADMINHELPERSVENDOR_FOLDER_OF_JCB_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO'), 'Error');
+ JFactory::getApplication()->enqueueMessage(JText::_('COM_COMPONENTBUILDER_THE_BPHPSECLIBNETSFTPB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHOULD_HAVE_BEEN_ADDED_TO_YOUR_BLIBRARIESVDM_IOVENDORB_FOLDER_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO'), 'Error');
return false;
}
// insure the port is set
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/composer.lock b/admin/helpers/vendor/phpseclib/phpseclib/composer.lock
deleted file mode 100644
index beda2d640..000000000
--- a/admin/helpers/vendor/phpseclib/phpseclib/composer.lock
+++ /dev/null
@@ -1,1819 +0,0 @@
-{
- "_readme": [
- "This file locks the dependencies of your project to a known state",
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
- "This file is @generated automatically"
- ],
- "hash": "8599992bf6058a9da82372eb8bcae2c2",
- "content-hash": "fde47c84178c55c06de858a2128e3d07",
- "packages": [],
- "packages-dev": [
- {
- "name": "doctrine/instantiator",
- "version": "1.0.5",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3,<8.0-DEV"
- },
- "require-dev": {
- "athletic/athletic": "~0.1.8",
- "ext-pdo": "*",
- "ext-phar": "*",
- "phpunit/phpunit": "~4.0",
- "squizlabs/php_codesniffer": "~2.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com",
- "homepage": "http://ocramius.github.com/"
- }
- ],
- "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
- "homepage": "https://github.com/doctrine/instantiator",
- "keywords": [
- "constructor",
- "instantiate"
- ],
- "time": "2015-06-14 21:17:01"
- },
- {
- "name": "michelf/php-markdown",
- "version": "1.6.0",
- "source": {
- "type": "git",
- "url": "https://github.com/michelf/php-markdown.git",
- "reference": "156e56ee036505ec637d761ee62dc425d807183c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/michelf/php-markdown/zipball/156e56ee036505ec637d761ee62dc425d807183c",
- "reference": "156e56ee036505ec637d761ee62dc425d807183c",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-lib": "1.4.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Michelf": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Michel Fortin",
- "email": "michel.fortin@michelf.ca",
- "homepage": "https://michelf.ca/",
- "role": "Developer"
- },
- {
- "name": "John Gruber",
- "homepage": "https://daringfireball.net/"
- }
- ],
- "description": "PHP Markdown",
- "homepage": "https://michelf.ca/projects/php-markdown/",
- "keywords": [
- "markdown"
- ],
- "time": "2015-12-24 01:37:31"
- },
- {
- "name": "nikic/php-parser",
- "version": "v0.9.5",
- "source": {
- "type": "git",
- "url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "ef70767475434bdb3615b43c327e2cae17ef12eb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/ef70767475434bdb3615b43c327e2cae17ef12eb",
- "reference": "ef70767475434bdb3615b43c327e2cae17ef12eb",
- "shasum": ""
- },
- "require": {
- "ext-tokenizer": "*",
- "php": ">=5.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "0.9-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "PHPParser": "lib/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Nikita Popov"
- }
- ],
- "description": "A PHP parser written in PHP",
- "keywords": [
- "parser",
- "php"
- ],
- "time": "2014-07-23 18:24:17"
- },
- {
- "name": "phing/phing",
- "version": "2.14.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phingofficial/phing.git",
- "reference": "7dd73c83c377623def54b58121f46b4dcb35dd61"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phingofficial/phing/zipball/7dd73c83c377623def54b58121f46b4dcb35dd61",
- "reference": "7dd73c83c377623def54b58121f46b4dcb35dd61",
- "shasum": ""
- },
- "require": {
- "php": ">=5.2.0"
- },
- "require-dev": {
- "ext-pdo_sqlite": "*",
- "lastcraft/simpletest": "@dev",
- "mikey179/vfsstream": "^1.6",
- "pdepend/pdepend": "2.x",
- "pear/archive_tar": "1.4.x",
- "pear/http_request2": "dev-trunk",
- "pear/net_growl": "dev-trunk",
- "pear/pear-core-minimal": "1.10.1",
- "pear/versioncontrol_git": "@dev",
- "pear/versioncontrol_svn": "~0.5",
- "phpdocumentor/phpdocumentor": "2.x",
- "phploc/phploc": "~2.0.6",
- "phpmd/phpmd": "~2.2",
- "phpunit/phpunit": ">=3.7",
- "sebastian/git": "~1.0",
- "sebastian/phpcpd": "2.x",
- "squizlabs/php_codesniffer": "~2.2",
- "symfony/yaml": "~2.7"
- },
- "suggest": {
- "pdepend/pdepend": "PHP version of JDepend",
- "pear/archive_tar": "Tar file management class",
- "pear/versioncontrol_git": "A library that provides OO interface to handle Git repository",
- "pear/versioncontrol_svn": "A simple OO-style interface for Subversion, the free/open-source version control system",
- "phpdocumentor/phpdocumentor": "Documentation Generator for PHP",
- "phploc/phploc": "A tool for quickly measuring the size of a PHP project",
- "phpmd/phpmd": "PHP version of PMD tool",
- "phpunit/php-code-coverage": "Library that provides collection, processing, and rendering functionality for PHP code coverage information",
- "phpunit/phpunit": "The PHP Unit Testing Framework",
- "sebastian/phpcpd": "Copy/Paste Detector (CPD) for PHP code",
- "tedivm/jshrink": "Javascript Minifier built in PHP"
- },
- "bin": [
- "bin/phing"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.14.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "classes/phing/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "include-path": [
- "classes"
- ],
- "license": [
- "LGPL-3.0"
- ],
- "authors": [
- {
- "name": "Michiel Rook",
- "email": "mrook@php.net"
- },
- {
- "name": "Phing Community",
- "homepage": "https://www.phing.info/trac/wiki/Development/Contributors"
- }
- ],
- "description": "PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant.",
- "homepage": "https://www.phing.info/",
- "keywords": [
- "build",
- "phing",
- "task",
- "tool"
- ],
- "time": "2016-03-10 21:39:23"
- },
- {
- "name": "phpdocumentor/reflection-common",
- "version": "1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
- "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
- "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.6"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jaap van Otterdijk",
- "email": "opensource@ijaap.nl"
- }
- ],
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
- "homepage": "http://www.phpdoc.org",
- "keywords": [
- "FQSEN",
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
- ],
- "time": "2015-12-27 11:43:31"
- },
- {
- "name": "phpdocumentor/reflection-docblock",
- "version": "3.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "9270140b940ff02e58ec577c237274e92cd40cdd"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9270140b940ff02e58ec577c237274e92cd40cdd",
- "reference": "9270140b940ff02e58ec577c237274e92cd40cdd",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5",
- "phpdocumentor/reflection-common": "^1.0@dev",
- "phpdocumentor/type-resolver": "^0.2.0",
- "webmozart/assert": "^1.0"
- },
- "require-dev": {
- "mockery/mockery": "^0.9.4",
- "phpunit/phpunit": "^4.4"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- }
- ],
- "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
- "time": "2016-06-10 09:48:41"
- },
- {
- "name": "phpdocumentor/type-resolver",
- "version": "0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b39c7a5b194f9ed7bd0dd345c751007a41862443",
- "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5",
- "phpdocumentor/reflection-common": "^1.0"
- },
- "require-dev": {
- "mockery/mockery": "^0.9.4",
- "phpunit/phpunit": "^5.2||^4.8.24"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- }
- ],
- "time": "2016-06-10 07:14:17"
- },
- {
- "name": "phpspec/prophecy",
- "version": "v1.6.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phpspec/prophecy.git",
- "reference": "58a8137754bc24b25740d4281399a4a3596058e0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/58a8137754bc24b25740d4281399a4a3596058e0",
- "reference": "58a8137754bc24b25740d4281399a4a3596058e0",
- "shasum": ""
- },
- "require": {
- "doctrine/instantiator": "^1.0.2",
- "php": "^5.3|^7.0",
- "phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
- "sebastian/comparator": "^1.1",
- "sebastian/recursion-context": "^1.0"
- },
- "require-dev": {
- "phpspec/phpspec": "^2.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.6.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Prophecy\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Konstantin Kudryashov",
- "email": "ever.zet@gmail.com",
- "homepage": "http://everzet.com"
- },
- {
- "name": "Marcello Duarte",
- "email": "marcello.duarte@gmail.com"
- }
- ],
- "description": "Highly opinionated mocking framework for PHP 5.3+",
- "homepage": "https://github.com/phpspec/prophecy",
- "keywords": [
- "Double",
- "Dummy",
- "fake",
- "mock",
- "spy",
- "stub"
- ],
- "time": "2016-06-07 08:13:47"
- },
- {
- "name": "phpunit/php-code-coverage",
- "version": "2.2.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979",
- "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3",
- "phpunit/php-file-iterator": "~1.3",
- "phpunit/php-text-template": "~1.2",
- "phpunit/php-token-stream": "~1.3",
- "sebastian/environment": "^1.3.2",
- "sebastian/version": "~1.0"
- },
- "require-dev": {
- "ext-xdebug": ">=2.1.4",
- "phpunit/phpunit": "~4"
- },
- "suggest": {
- "ext-dom": "*",
- "ext-xdebug": ">=2.2.1",
- "ext-xmlwriter": "*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.2.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
- "role": "lead"
- }
- ],
- "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
- "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
- "keywords": [
- "coverage",
- "testing",
- "xunit"
- ],
- "time": "2015-10-06 15:47:00"
- },
- {
- "name": "phpunit/php-file-iterator",
- "version": "1.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
- "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
- "role": "lead"
- }
- ],
- "description": "FilterIterator implementation that filters files based on a list of suffixes.",
- "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
- "keywords": [
- "filesystem",
- "iterator"
- ],
- "time": "2015-06-21 13:08:43"
- },
- {
- "name": "phpunit/php-text-template",
- "version": "1.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Simple template engine.",
- "homepage": "https://github.com/sebastianbergmann/php-text-template/",
- "keywords": [
- "template"
- ],
- "time": "2015-06-21 13:50:34"
- },
- {
- "name": "phpunit/php-timer",
- "version": "1.0.8",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260",
- "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "~4|~5"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
- "role": "lead"
- }
- ],
- "description": "Utility class for timing",
- "homepage": "https://github.com/sebastianbergmann/php-timer/",
- "keywords": [
- "timer"
- ],
- "time": "2016-05-12 18:03:57"
- },
- {
- "name": "phpunit/php-token-stream",
- "version": "1.4.8",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-token-stream.git",
- "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da",
- "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da",
- "shasum": ""
- },
- "require": {
- "ext-tokenizer": "*",
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Wrapper around PHP's tokenizer extension.",
- "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
- "keywords": [
- "tokenizer"
- ],
- "time": "2015-09-15 10:49:45"
- },
- {
- "name": "phpunit/phpunit",
- "version": "4.8.26",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "fc1d8cd5b5de11625979125c5639347896ac2c74"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fc1d8cd5b5de11625979125c5639347896ac2c74",
- "reference": "fc1d8cd5b5de11625979125c5639347896ac2c74",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-json": "*",
- "ext-pcre": "*",
- "ext-reflection": "*",
- "ext-spl": "*",
- "php": ">=5.3.3",
- "phpspec/prophecy": "^1.3.1",
- "phpunit/php-code-coverage": "~2.1",
- "phpunit/php-file-iterator": "~1.4",
- "phpunit/php-text-template": "~1.2",
- "phpunit/php-timer": "^1.0.6",
- "phpunit/phpunit-mock-objects": "~2.3",
- "sebastian/comparator": "~1.1",
- "sebastian/diff": "~1.2",
- "sebastian/environment": "~1.3",
- "sebastian/exporter": "~1.2",
- "sebastian/global-state": "~1.0",
- "sebastian/version": "~1.0",
- "symfony/yaml": "~2.1|~3.0"
- },
- "suggest": {
- "phpunit/php-invoker": "~1.1"
- },
- "bin": [
- "phpunit"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.8.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "The PHP Unit Testing framework.",
- "homepage": "https://phpunit.de/",
- "keywords": [
- "phpunit",
- "testing",
- "xunit"
- ],
- "time": "2016-05-17 03:09:28"
- },
- {
- "name": "phpunit/phpunit-mock-objects",
- "version": "2.3.8",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
- "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983",
- "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983",
- "shasum": ""
- },
- "require": {
- "doctrine/instantiator": "^1.0.2",
- "php": ">=5.3.3",
- "phpunit/php-text-template": "~1.2",
- "sebastian/exporter": "~1.2"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.4"
- },
- "suggest": {
- "ext-soap": "*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.3.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
- "role": "lead"
- }
- ],
- "description": "Mock Object library for PHPUnit",
- "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
- "keywords": [
- "mock",
- "xunit"
- ],
- "time": "2015-10-02 06:51:40"
- },
- {
- "name": "pimple/pimple",
- "version": "v2.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/silexphp/Pimple.git",
- "reference": "ea22fb2880faf7b7b0e17c9809c6fe25b071fd76"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/silexphp/Pimple/zipball/ea22fb2880faf7b7b0e17c9809c6fe25b071fd76",
- "reference": "ea22fb2880faf7b7b0e17c9809c6fe25b071fd76",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.1.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Pimple": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- }
- ],
- "description": "Pimple is a simple Dependency Injection Container for PHP 5.3",
- "homepage": "http://pimple.sensiolabs.org",
- "keywords": [
- "container",
- "dependency injection"
- ],
- "time": "2014-07-24 07:10:08"
- },
- {
- "name": "sami/sami",
- "version": "v2.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/FriendsOfPHP/Sami.git",
- "reference": "fa58b324f41aa2aefe21dac4f22d8c98965fc012"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/FriendsOfPHP/Sami/zipball/fa58b324f41aa2aefe21dac4f22d8c98965fc012",
- "reference": "fa58b324f41aa2aefe21dac4f22d8c98965fc012",
- "shasum": ""
- },
- "require": {
- "michelf/php-markdown": "~1.3",
- "nikic/php-parser": "0.9.*",
- "php": ">=5.3.0",
- "pimple/pimple": "2.*",
- "symfony/console": "~2.1",
- "symfony/filesystem": "~2.1",
- "symfony/finder": "~2.1",
- "symfony/process": "~2.1",
- "symfony/yaml": "~2.1",
- "twig/twig": "1.*"
- },
- "bin": [
- "sami.php"
- ],
- "type": "application",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Sami": "."
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- }
- ],
- "description": "Sami, an API documentation generator",
- "homepage": "http://sami.sensiolabs.org",
- "keywords": [
- "phpdoc"
- ],
- "time": "2014-06-25 12:05:18"
- },
- {
- "name": "sebastian/comparator",
- "version": "1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "937efb279bd37a375bcadf584dec0726f84dbf22"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22",
- "reference": "937efb279bd37a375bcadf584dec0726f84dbf22",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3",
- "sebastian/diff": "~1.2",
- "sebastian/exporter": "~1.2"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.2.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
- },
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@2bepublished.at"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Provides the functionality to compare PHP values for equality",
- "homepage": "http://www.github.com/sebastianbergmann/comparator",
- "keywords": [
- "comparator",
- "compare",
- "equality"
- ],
- "time": "2015-07-26 15:48:44"
- },
- {
- "name": "sebastian/diff",
- "version": "1.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e",
- "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.8"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Kore Nordmann",
- "email": "mail@kore-nordmann.de"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Diff implementation",
- "homepage": "https://github.com/sebastianbergmann/diff",
- "keywords": [
- "diff"
- ],
- "time": "2015-12-08 07:14:41"
- },
- {
- "name": "sebastian/environment",
- "version": "1.3.7",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/4e8f0da10ac5802913afc151413bc8c53b6c2716",
- "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.3.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Provides functionality to handle HHVM/PHP environments",
- "homepage": "http://www.github.com/sebastianbergmann/environment",
- "keywords": [
- "Xdebug",
- "environment",
- "hhvm"
- ],
- "time": "2016-05-17 03:18:57"
- },
- {
- "name": "sebastian/exporter",
- "version": "1.2.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4",
- "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3",
- "sebastian/recursion-context": "~1.0"
- },
- "require-dev": {
- "ext-mbstring": "*",
- "phpunit/phpunit": "~4.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.3.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
- },
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@2bepublished.at"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
- }
- ],
- "description": "Provides the functionality to export PHP variables for visualization",
- "homepage": "http://www.github.com/sebastianbergmann/exporter",
- "keywords": [
- "export",
- "exporter"
- ],
- "time": "2016-06-17 09:04:28"
- },
- {
- "name": "sebastian/global-state",
- "version": "1.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
- "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.2"
- },
- "suggest": {
- "ext-uopz": "*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Snapshotting of global state",
- "homepage": "http://www.github.com/sebastianbergmann/global-state",
- "keywords": [
- "global state"
- ],
- "time": "2015-10-12 03:26:01"
- },
- {
- "name": "sebastian/recursion-context",
- "version": "1.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "913401df809e99e4f47b27cdd781f4a258d58791"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791",
- "reference": "913401df809e99e4f47b27cdd781f4a258d58791",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
- }
- ],
- "description": "Provides functionality to recursively process PHP variables",
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
- "time": "2015-11-11 19:50:13"
- },
- {
- "name": "sebastian/version",
- "version": "1.0.6",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/version.git",
- "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
- "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
- "shasum": ""
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library that helps with managing the version number of Git-hosted PHP projects",
- "homepage": "https://github.com/sebastianbergmann/version",
- "time": "2015-06-21 13:59:46"
- },
- {
- "name": "squizlabs/php_codesniffer",
- "version": "2.6.1",
- "source": {
- "type": "git",
- "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
- "reference": "fb72ed32f8418db5e7770be1653e62e0d6f5dd3d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/fb72ed32f8418db5e7770be1653e62e0d6f5dd3d",
- "reference": "fb72ed32f8418db5e7770be1653e62e0d6f5dd3d",
- "shasum": ""
- },
- "require": {
- "ext-simplexml": "*",
- "ext-tokenizer": "*",
- "ext-xmlwriter": "*",
- "php": ">=5.1.2"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0"
- },
- "bin": [
- "scripts/phpcs",
- "scripts/phpcbf"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "CodeSniffer.php",
- "CodeSniffer/CLI.php",
- "CodeSniffer/Exception.php",
- "CodeSniffer/File.php",
- "CodeSniffer/Fixer.php",
- "CodeSniffer/Report.php",
- "CodeSniffer/Reporting.php",
- "CodeSniffer/Sniff.php",
- "CodeSniffer/Tokens.php",
- "CodeSniffer/Reports/",
- "CodeSniffer/Tokenizers/",
- "CodeSniffer/DocGenerators/",
- "CodeSniffer/Standards/AbstractPatternSniff.php",
- "CodeSniffer/Standards/AbstractScopeSniff.php",
- "CodeSniffer/Standards/AbstractVariableSniff.php",
- "CodeSniffer/Standards/IncorrectPatternException.php",
- "CodeSniffer/Standards/Generic/Sniffs/",
- "CodeSniffer/Standards/MySource/Sniffs/",
- "CodeSniffer/Standards/PEAR/Sniffs/",
- "CodeSniffer/Standards/PSR1/Sniffs/",
- "CodeSniffer/Standards/PSR2/Sniffs/",
- "CodeSniffer/Standards/Squiz/Sniffs/",
- "CodeSniffer/Standards/Zend/Sniffs/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Greg Sherwood",
- "role": "lead"
- }
- ],
- "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
- "homepage": "http://www.squizlabs.com/php-codesniffer",
- "keywords": [
- "phpcs",
- "standards"
- ],
- "time": "2016-05-30 22:24:32"
- },
- {
- "name": "symfony/console",
- "version": "v2.8.7",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/console.git",
- "reference": "5ac8bc9aa77bb2edf06af3a1bb6bc1020d23acd3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/5ac8bc9aa77bb2edf06af3a1bb6bc1020d23acd3",
- "reference": "5ac8bc9aa77bb2edf06af3a1bb6bc1020d23acd3",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.9",
- "symfony/polyfill-mbstring": "~1.0"
- },
- "require-dev": {
- "psr/log": "~1.0",
- "symfony/event-dispatcher": "~2.1|~3.0.0",
- "symfony/process": "~2.1|~3.0.0"
- },
- "suggest": {
- "psr/log": "For using the console logger",
- "symfony/event-dispatcher": "",
- "symfony/process": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Console\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony Console Component",
- "homepage": "https://symfony.com",
- "time": "2016-06-06 15:06:25"
- },
- {
- "name": "symfony/filesystem",
- "version": "v2.8.7",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/filesystem.git",
- "reference": "dee379131dceed90a429e951546b33edfe7dccbb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/dee379131dceed90a429e951546b33edfe7dccbb",
- "reference": "dee379131dceed90a429e951546b33edfe7dccbb",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.9"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Filesystem\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony Filesystem Component",
- "homepage": "https://symfony.com",
- "time": "2016-04-12 18:01:21"
- },
- {
- "name": "symfony/finder",
- "version": "v2.8.7",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/finder.git",
- "reference": "3ec095fab1800222732ca522a95dce8fa124007b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/3ec095fab1800222732ca522a95dce8fa124007b",
- "reference": "3ec095fab1800222732ca522a95dce8fa124007b",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.9"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Finder\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony Finder Component",
- "homepage": "https://symfony.com",
- "time": "2016-06-06 11:11:27"
- },
- {
- "name": "symfony/polyfill-mbstring",
- "version": "v1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "dff51f72b0706335131b00a7f49606168c582594"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594",
- "reference": "dff51f72b0706335131b00a7f49606168c582594",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "suggest": {
- "ext-mbstring": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.2-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Mbstring\\": ""
- },
- "files": [
- "bootstrap.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for the Mbstring extension",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "mbstring",
- "polyfill",
- "portable",
- "shim"
- ],
- "time": "2016-05-18 14:26:46"
- },
- {
- "name": "symfony/process",
- "version": "v2.8.7",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/process.git",
- "reference": "115347d00c342198cdc52a7bd8bc15b5ab43500c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/115347d00c342198cdc52a7bd8bc15b5ab43500c",
- "reference": "115347d00c342198cdc52a7bd8bc15b5ab43500c",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.9"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Process\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony Process Component",
- "homepage": "https://symfony.com",
- "time": "2016-06-06 11:11:27"
- },
- {
- "name": "symfony/yaml",
- "version": "v2.8.7",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/yaml.git",
- "reference": "815fabf3f48c7d1df345a69d1ad1a88f59757b34"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/815fabf3f48c7d1df345a69d1ad1a88f59757b34",
- "reference": "815fabf3f48c7d1df345a69d1ad1a88f59757b34",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.9"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Yaml\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony Yaml Component",
- "homepage": "https://symfony.com",
- "time": "2016-06-06 11:11:27"
- },
- {
- "name": "twig/twig",
- "version": "v1.24.1",
- "source": {
- "type": "git",
- "url": "https://github.com/twigphp/Twig.git",
- "reference": "3566d311a92aae4deec6e48682dc5a4528c4a512"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/3566d311a92aae4deec6e48682dc5a4528c4a512",
- "reference": "3566d311a92aae4deec6e48682dc5a4528c4a512",
- "shasum": ""
- },
- "require": {
- "php": ">=5.2.7"
- },
- "require-dev": {
- "symfony/debug": "~2.7",
- "symfony/phpunit-bridge": "~2.7"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.24-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Twig_": "lib/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com",
- "homepage": "http://fabien.potencier.org",
- "role": "Lead Developer"
- },
- {
- "name": "Armin Ronacher",
- "email": "armin.ronacher@active-4.com",
- "role": "Project Founder"
- },
- {
- "name": "Twig Team",
- "homepage": "http://twig.sensiolabs.org/contributors",
- "role": "Contributors"
- }
- ],
- "description": "Twig, the flexible, fast, and secure template language for PHP",
- "homepage": "http://twig.sensiolabs.org",
- "keywords": [
- "templating"
- ],
- "time": "2016-05-30 09:11:59"
- },
- {
- "name": "webmozart/assert",
- "version": "1.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/webmozart/assert.git",
- "reference": "30eed06dd6bc88410a4ff7f77b6d22f3ce13dbde"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/webmozart/assert/zipball/30eed06dd6bc88410a4ff7f77b6d22f3ce13dbde",
- "reference": "30eed06dd6bc88410a4ff7f77b6d22f3ce13dbde",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.6"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Webmozart\\Assert\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
- }
- ],
- "description": "Assertions to validate method input/output with nice error messages.",
- "keywords": [
- "assert",
- "check",
- "validate"
- ],
- "time": "2015-08-24 13:29:44"
- }
- ],
- "aliases": [],
- "minimum-stability": "stable",
- "stability-flags": [],
- "prefer-stable": false,
- "prefer-lowest": false,
- "platform": {
- "php": ">=5.3.3"
- },
- "platform-dev": []
-}
diff --git a/admin/language/en-GB/en-GB.com_componentbuilder.ini b/admin/language/en-GB/en-GB.com_componentbuilder.ini
index 3a9c848e9..d3fbfbeba 100644
--- a/admin/language/en-GB/en-GB.com_componentbuilder.ini
+++ b/admin/language/en-GB/en-GB.com_componentbuilder.ini
@@ -6160,7 +6160,7 @@ COM_COMPONENTBUILDER_THERE_ARE_NO_OUT_OF_DATE_SNIPPETS_AT_THIS_TIME="There are n
COM_COMPONENTBUILDER_THERE_ARE_NO_SNIPPETS_TO_UPDATE_AT_THIS_TIME="There are no snippets to update at this time"
COM_COMPONENTBUILDER_THERE_HAS_BEEN_AN_ERROR_IF_THIS_CONTINUES_PLEASE_INFORM_YOUR_SYSTEM_ADMINISTRATOR_OF_A_TYPE_ERROR_IN_THE_FIELDS_DISPLAY_REQUEST="There has been an error, if this continues please inform your system administrator of a type error in the fields display request!"
COM_COMPONENTBUILDER_THERE_WAS_A_PROBLEM_BNO_VIEW_OR_ID_FOUND_IN_SESSION_OR_VIEW_NOT_ALLOWED_TO_ACCESS_AREAB_WE_COULD_NOT_LOAD_ANY_LINKED_TO_VALUES_PLEASE_INFORM_YOUR_SYSTEM_ADMINISTRATOR="There was a problem, no view or id found in session or view not allowed to access area, we could not load any linked to values. Please inform your system administrator!"
-COM_COMPONENTBUILDER_THE_BPHPSECLIBNETSFTPB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHOULD_HAVE_BEEN_ADDED_TO_YOUR_ADMINHELPERSVENDOR_FOLDER_OF_JCB_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO="The phpseclib\NET\SFTP library\class is not available! This library\class should have been added to your admin/helpers/vendor folder of JCB. Please contact your system administrator for more info"
+COM_COMPONENTBUILDER_THE_BPHPSECLIBNETSFTPB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHOULD_HAVE_BEEN_ADDED_TO_YOUR_BLIBRARIESVDM_IOVENDORB_FOLDER_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO="The phpseclib\NET\SFTP library\class is not available! This library\class should have been added to your libraries/vdm_io/vendor folder. Please contact your system administrator for more info"
COM_COMPONENTBUILDER_THE_BSB_FILE_COULD_NOT_BE_MOVED_TO_BSB_PATH_ON_BSB_SERVER="The %s file could not be moved to %s path on %s server."
COM_COMPONENTBUILDER_THE_BSB_FILE_COULD_NOT_BE_MOVED_TO_BSB_SERVER="The %s file could not be moved to %s server."
COM_COMPONENTBUILDER_THE_BSB_LIBRARY_CAN_NOT_BE_DELETED_OR_THINGS_WILL_BREAK="The %s library can not be deleted, or things will break."
diff --git a/componentbuilder.xml b/componentbuilder.xml
index d9a248da1..4ca15f511 100644
--- a/componentbuilder.xml
+++ b/componentbuilder.xml
@@ -1,7 +1,7 @@
COM_COMPONENTBUILDER
- 27th February, 2018
+ 28th February, 2018
Llewellyn van der Merwe
llewellyn@joomlacomponentbuilder.com
http://joomlacomponentbuilder.com
diff --git a/libraries/vdm_io/index.html b/libraries/vdm_io/index.html
new file mode 100644
index 000000000..fa6d84e80
--- /dev/null
+++ b/libraries/vdm_io/index.html
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/admin/helpers/vendor/.htaccess b/libraries/vdm_io/vendor/.htaccess
similarity index 100%
rename from admin/helpers/vendor/.htaccess
rename to libraries/vdm_io/vendor/.htaccess
diff --git a/admin/helpers/vendor/autoload.php b/libraries/vdm_io/vendor/autoload.php
similarity index 64%
rename from admin/helpers/vendor/autoload.php
rename to libraries/vdm_io/vendor/autoload.php
index 60086a81b..87a2a0a05 100644
--- a/admin/helpers/vendor/autoload.php
+++ b/libraries/vdm_io/vendor/autoload.php
@@ -4,4 +4,4 @@
require_once __DIR__ . '/composer/autoload_real.php';
-return ComposerAutoloaderInite1af6c9ee1d0c9dfa4a8dcea26b35570::getLoader();
+return ComposerAutoloaderInit10d22a526bd476954b93748a871e7ad4::getLoader();
diff --git a/admin/helpers/vendor/composer/ClassLoader.php b/libraries/vdm_io/vendor/composer/ClassLoader.php
similarity index 100%
rename from admin/helpers/vendor/composer/ClassLoader.php
rename to libraries/vdm_io/vendor/composer/ClassLoader.php
diff --git a/admin/helpers/vendor/composer/LICENSE b/libraries/vdm_io/vendor/composer/LICENSE
similarity index 100%
rename from admin/helpers/vendor/composer/LICENSE
rename to libraries/vdm_io/vendor/composer/LICENSE
diff --git a/admin/helpers/vendor/composer/autoload_classmap.php b/libraries/vdm_io/vendor/composer/autoload_classmap.php
similarity index 100%
rename from admin/helpers/vendor/composer/autoload_classmap.php
rename to libraries/vdm_io/vendor/composer/autoload_classmap.php
diff --git a/admin/helpers/vendor/composer/autoload_files.php b/libraries/vdm_io/vendor/composer/autoload_files.php
similarity index 100%
rename from admin/helpers/vendor/composer/autoload_files.php
rename to libraries/vdm_io/vendor/composer/autoload_files.php
diff --git a/admin/helpers/vendor/composer/autoload_namespaces.php b/libraries/vdm_io/vendor/composer/autoload_namespaces.php
similarity index 100%
rename from admin/helpers/vendor/composer/autoload_namespaces.php
rename to libraries/vdm_io/vendor/composer/autoload_namespaces.php
diff --git a/admin/helpers/vendor/composer/autoload_psr4.php b/libraries/vdm_io/vendor/composer/autoload_psr4.php
similarity index 100%
rename from admin/helpers/vendor/composer/autoload_psr4.php
rename to libraries/vdm_io/vendor/composer/autoload_psr4.php
diff --git a/admin/helpers/vendor/composer/autoload_real.php b/libraries/vdm_io/vendor/composer/autoload_real.php
similarity index 77%
rename from admin/helpers/vendor/composer/autoload_real.php
rename to libraries/vdm_io/vendor/composer/autoload_real.php
index 0eecfe833..f90786941 100644
--- a/admin/helpers/vendor/composer/autoload_real.php
+++ b/libraries/vdm_io/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
-class ComposerAutoloaderInite1af6c9ee1d0c9dfa4a8dcea26b35570
+class ComposerAutoloaderInit10d22a526bd476954b93748a871e7ad4
{
private static $loader;
@@ -19,15 +19,15 @@ class ComposerAutoloaderInite1af6c9ee1d0c9dfa4a8dcea26b35570
return self::$loader;
}
- spl_autoload_register(array('ComposerAutoloaderInite1af6c9ee1d0c9dfa4a8dcea26b35570', 'loadClassLoader'), true, true);
+ spl_autoload_register(array('ComposerAutoloaderInit10d22a526bd476954b93748a871e7ad4', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
- spl_autoload_unregister(array('ComposerAutoloaderInite1af6c9ee1d0c9dfa4a8dcea26b35570', 'loadClassLoader'));
+ spl_autoload_unregister(array('ComposerAutoloaderInit10d22a526bd476954b93748a871e7ad4', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require_once __DIR__ . '/autoload_static.php';
- call_user_func(\Composer\Autoload\ComposerStaticInite1af6c9ee1d0c9dfa4a8dcea26b35570::getInitializer($loader));
+ call_user_func(\Composer\Autoload\ComposerStaticInit10d22a526bd476954b93748a871e7ad4::getInitializer($loader));
} else {
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
@@ -48,19 +48,19 @@ class ComposerAutoloaderInite1af6c9ee1d0c9dfa4a8dcea26b35570
$loader->register(true);
if ($useStaticLoader) {
- $includeFiles = Composer\Autoload\ComposerStaticInite1af6c9ee1d0c9dfa4a8dcea26b35570::$files;
+ $includeFiles = Composer\Autoload\ComposerStaticInit10d22a526bd476954b93748a871e7ad4::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
- composerRequiree1af6c9ee1d0c9dfa4a8dcea26b35570($fileIdentifier, $file);
+ composerRequire10d22a526bd476954b93748a871e7ad4($fileIdentifier, $file);
}
return $loader;
}
}
-function composerRequiree1af6c9ee1d0c9dfa4a8dcea26b35570($fileIdentifier, $file)
+function composerRequire10d22a526bd476954b93748a871e7ad4($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
require $file;
diff --git a/admin/helpers/vendor/composer/autoload_static.php b/libraries/vdm_io/vendor/composer/autoload_static.php
similarity index 89%
rename from admin/helpers/vendor/composer/autoload_static.php
rename to libraries/vdm_io/vendor/composer/autoload_static.php
index b076aa4b4..ea6b0d7d3 100644
--- a/admin/helpers/vendor/composer/autoload_static.php
+++ b/libraries/vdm_io/vendor/composer/autoload_static.php
@@ -4,7 +4,7 @@
namespace Composer\Autoload;
-class ComposerStaticInite1af6c9ee1d0c9dfa4a8dcea26b35570
+class ComposerStaticInit10d22a526bd476954b93748a871e7ad4
{
public static $files = array (
'decc78cc4436b1292c6c0d151b19445c' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/bootstrap.php',
@@ -54,9 +54,9 @@ class ComposerStaticInite1af6c9ee1d0c9dfa4a8dcea26b35570
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
- $loader->prefixLengthsPsr4 = ComposerStaticInite1af6c9ee1d0c9dfa4a8dcea26b35570::$prefixLengthsPsr4;
- $loader->prefixDirsPsr4 = ComposerStaticInite1af6c9ee1d0c9dfa4a8dcea26b35570::$prefixDirsPsr4;
- $loader->classMap = ComposerStaticInite1af6c9ee1d0c9dfa4a8dcea26b35570::$classMap;
+ $loader->prefixLengthsPsr4 = ComposerStaticInit10d22a526bd476954b93748a871e7ad4::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInit10d22a526bd476954b93748a871e7ad4::$prefixDirsPsr4;
+ $loader->classMap = ComposerStaticInit10d22a526bd476954b93748a871e7ad4::$classMap;
}, null, ClassLoader::class);
}
diff --git a/admin/helpers/vendor/composer/installed.json b/libraries/vdm_io/vendor/composer/installed.json
similarity index 88%
rename from admin/helpers/vendor/composer/installed.json
rename to libraries/vdm_io/vendor/composer/installed.json
index d434a52a7..4ce92974f 100644
--- a/admin/helpers/vendor/composer/installed.json
+++ b/libraries/vdm_io/vendor/composer/installed.json
@@ -1,17 +1,17 @@
[
{
"name": "phpseclib/phpseclib",
- "version": "2.0.9",
- "version_normalized": "2.0.9.0",
+ "version": "2.0.10",
+ "version_normalized": "2.0.10.0",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
- "reference": "c9a3fe35e20eb6eeaca716d6a23cde03f52d1558"
+ "reference": "d305b780829ea4252ed9400b3f5937c2c99b51d4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/c9a3fe35e20eb6eeaca716d6a23cde03f52d1558",
- "reference": "c9a3fe35e20eb6eeaca716d6a23cde03f52d1558",
+ "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/d305b780829ea4252ed9400b3f5937c2c99b51d4",
+ "reference": "d305b780829ea4252ed9400b3f5937c2c99b51d4",
"shasum": ""
},
"require": {
@@ -19,7 +19,7 @@
},
"require-dev": {
"phing/phing": "~2.7",
- "phpunit/phpunit": "~4.0",
+ "phpunit/phpunit": "^4.8.35|^5.7|^6.0",
"sami/sami": "~2.0",
"squizlabs/php_codesniffer": "~2.0"
},
@@ -29,7 +29,7 @@
"ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
"ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
},
- "time": "2017-11-29T06:38:08+00:00",
+ "time": "2018-02-19T04:29:13+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
diff --git a/libraries/vdm_io/vendor/htaccess.txt b/libraries/vdm_io/vendor/htaccess.txt
new file mode 100644
index 000000000..9afb1a1b3
--- /dev/null
+++ b/libraries/vdm_io/vendor/htaccess.txt
@@ -0,0 +1,9 @@
+# Apache 2.4+
+
+ Require all denied
+
+
+# Apache 2.0-2.2
+
+ Deny from all
+
diff --git a/libraries/vdm_io/vendor/index.html b/libraries/vdm_io/vendor/index.html
new file mode 100644
index 000000000..fa6d84e80
--- /dev/null
+++ b/libraries/vdm_io/vendor/index.html
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/AUTHORS b/libraries/vdm_io/vendor/phpseclib/phpseclib/AUTHORS
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/AUTHORS
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/AUTHORS
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/LICENSE b/libraries/vdm_io/vendor/phpseclib/phpseclib/LICENSE
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/LICENSE
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/LICENSE
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/README.md b/libraries/vdm_io/vendor/phpseclib/phpseclib/README.md
similarity index 88%
rename from admin/helpers/vendor/phpseclib/phpseclib/README.md
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/README.md
index e00e28702..94402bee0 100644
--- a/admin/helpers/vendor/phpseclib/phpseclib/README.md
+++ b/libraries/vdm_io/vendor/phpseclib/phpseclib/README.md
@@ -8,7 +8,6 @@ AES, Blowfish, Twofish, SSH-1, SSH-2, SFTP, and X.509
* [Browse Git](https://github.com/phpseclib/phpseclib)
* [Code Coverage Report](https://coverage.phpseclib.org/2.0/latest/)
-* Support phpseclib development by [![Becoming a patron](https://img.shields.io/badge/become-patron-brightgreen.svg)](https://www.patreon.com/phpseclib)
## Documentation
@@ -37,7 +36,7 @@ AES, Blowfish, Twofish, SSH-1, SSH-2, SFTP, and X.509
* Composer compatible (PSR-0 autoloading)
* Install using Composer: `composer require phpseclib/phpseclib ~1.0`
* Install using PEAR: See [phpseclib PEAR Channel Documentation](http://phpseclib.sourceforge.net/pear.htm)
-* [Download 1.0.9 as ZIP](http://sourceforge.net/projects/phpseclib/files/phpseclib1.0.9.zip/download)
+* [Download 1.0.10 as ZIP](http://sourceforge.net/projects/phpseclib/files/phpseclib1.0.10.zip/download)
## Support
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/composer.json b/libraries/vdm_io/vendor/phpseclib/phpseclib/composer.json
similarity index 97%
rename from admin/helpers/vendor/phpseclib/phpseclib/composer.json
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/composer.json
index 4b84b110e..b4e8a1c9c 100644
--- a/admin/helpers/vendor/phpseclib/phpseclib/composer.json
+++ b/libraries/vdm_io/vendor/phpseclib/phpseclib/composer.json
@@ -55,7 +55,7 @@
},
"require-dev": {
"phing/phing": "~2.7",
- "phpunit/phpunit": "~4.0",
+ "phpunit/phpunit": "^4.8.35|^5.7|^6.0",
"sami/sami": "~2.0",
"squizlabs/php_codesniffer": "~2.0"
},
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php
similarity index 98%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php
index 402757b37..54a8997ed 100644
--- a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php
+++ b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php
@@ -2555,4 +2555,44 @@ abstract class Base
return $result . pack('H*', sha1($hash));
}
}
+
+ /**
+ * Convert float to int
+ *
+ * On ARM CPUs converting floats to ints doesn't always work
+ *
+ * @access private
+ * @param string $x
+ * @return int
+ */
+ function safe_intval($x)
+ {
+ switch (true) {
+ case is_int($x):
+ // PHP 5.3, per http://php.net/releases/5_3_0.php, introduced "more consistent float rounding"
+ case (php_uname('m') & "\xDF\xDF\xDF") != 'ARM':
+ return $x;
+ }
+ return (fmod($x, 0x80000000) & 0x7FFFFFFF) |
+ ((fmod(floor($x / 0x80000000), 2) & 1) << 31);
+ }
+
+ /**
+ * eval()'able string for in-line float to int
+ *
+ * @access private
+ * @return string
+ */
+ function safe_intval_inline()
+ {
+ switch (true) {
+ case defined('PHP_INT_SIZE') && PHP_INT_SIZE == 8:
+ case (php_uname('m') & "\xDF\xDF\xDF") != 'ARM':
+ return '%s';
+ break;
+ default:
+ $safeint = '(is_int($temp = %s) ? $temp : (fmod($temp, 0x80000000) & 0x7FFFFFFF) | ';
+ return $safeint . '((fmod(floor($temp / 0x80000000), 2) & 1) << 31))';
+ }
+ }
}
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php
similarity index 94%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php
index 19d0a0200..74cc49de8 100644
--- a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php
+++ b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php
@@ -294,7 +294,7 @@ class Blowfish extends Base
function setKeyLength($length)
{
if ($length < 32) {
- $this->key_length = 7;
+ $this->key_length = 4;
} elseif ($length > 448) {
$this->key_length = 56;
} else {
@@ -408,16 +408,14 @@ class Blowfish extends Base
for ($i = 0; $i < 16; $i+= 2) {
$l^= $p[$i];
- $r^= ($sb_0[$l >> 24 & 0xff] +
- $sb_1[$l >> 16 & 0xff] ^
+ $r^= $this->safe_intval(($this->safe_intval($sb_0[$l >> 24 & 0xff] + $sb_1[$l >> 16 & 0xff]) ^
$sb_2[$l >> 8 & 0xff]) +
- $sb_3[$l & 0xff];
+ $sb_3[$l & 0xff]);
$r^= $p[$i + 1];
- $l^= ($sb_0[$r >> 24 & 0xff] +
- $sb_1[$r >> 16 & 0xff] ^
+ $l^= $this->safe_intval(($this->safe_intval($sb_0[$r >> 24 & 0xff] + $sb_1[$r >> 16 & 0xff]) ^
$sb_2[$r >> 8 & 0xff]) +
- $sb_3[$r & 0xff];
+ $sb_3[$r & 0xff]);
}
return pack("N*", $r ^ $p[17], $l ^ $p[16]);
}
@@ -443,16 +441,14 @@ class Blowfish extends Base
for ($i = 17; $i > 2; $i-= 2) {
$l^= $p[$i];
- $r^= ($sb_0[$l >> 24 & 0xff] +
- $sb_1[$l >> 16 & 0xff] ^
+ $r^= $this->safe_intval(($this->safe_intval($sb_0[$l >> 24 & 0xff] + $sb_1[$l >> 16 & 0xff]) ^
$sb_2[$l >> 8 & 0xff]) +
- $sb_3[$l & 0xff];
+ $sb_3[$l & 0xff]);
$r^= $p[$i - 1];
- $l^= ($sb_0[$r >> 24 & 0xff] +
- $sb_1[$r >> 16 & 0xff] ^
+ $l^= $this->safe_intval(($this->safe_intval($sb_0[$r >> 24 & 0xff] + $sb_1[$r >> 16 & 0xff]) ^
$sb_2[$r >> 8 & 0xff]) +
- $sb_3[$r & 0xff];
+ $sb_3[$r & 0xff]);
}
return pack("N*", $r ^ $p[0], $l ^ $p[1]);
}
@@ -478,6 +474,8 @@ class Blowfish extends Base
$code_hash = str_pad($code_hash, 32) . $this->_hashInlineCryptFunction($this->key);
}
+ $safeint = $this->safe_intval_inline();
+
if (!isset($lambda_functions[$code_hash])) {
switch (true) {
case $gen_hi_opt_code:
@@ -513,16 +511,14 @@ class Blowfish extends Base
for ($i = 0; $i < 16; $i+= 2) {
$encrypt_block.= '
$l^= ' . $p[$i] . ';
- $r^= ($sb_0[$l >> 24 & 0xff] +
- $sb_1[$l >> 16 & 0xff] ^
+ $r^= ' . sprintf($safeint, '(' . sprintf($safeint, '$sb_0[$l >> 24 & 0xff] + $sb_1[$l >> 16 & 0xff]') . ' ^
$sb_2[$l >> 8 & 0xff]) +
- $sb_3[$l & 0xff];
+ $sb_3[$l & 0xff]') . ';
$r^= ' . $p[$i + 1] . ';
- $l^= ($sb_0[$r >> 24 & 0xff] +
- $sb_1[$r >> 16 & 0xff] ^
+ $l^= ' . sprintf($safeint, '(' . sprintf($safeint, '$sb_0[$r >> 24 & 0xff] + $sb_1[$r >> 16 & 0xff]') . ' ^
$sb_2[$r >> 8 & 0xff]) +
- $sb_3[$r & 0xff];
+ $sb_3[$r & 0xff]') . ';
';
}
$encrypt_block.= '
@@ -542,16 +538,14 @@ class Blowfish extends Base
for ($i = 17; $i > 2; $i-= 2) {
$decrypt_block.= '
$l^= ' . $p[$i] . ';
- $r^= ($sb_0[$l >> 24 & 0xff] +
- $sb_1[$l >> 16 & 0xff] ^
+ $r^= ' . sprintf($safeint, '(' . sprintf($safeint, '$sb_0[$l >> 24 & 0xff] + $sb_1[$l >> 16 & 0xff]') . ' ^
$sb_2[$l >> 8 & 0xff]) +
- $sb_3[$l & 0xff];
+ $sb_3[$l & 0xff]') . ';
$r^= ' . $p[$i - 1] . ';
- $l^= ($sb_0[$r >> 24 & 0xff] +
- $sb_1[$r >> 16 & 0xff] ^
+ $l^= ' . sprintf($safeint, '(' . sprintf($safeint, '$sb_0[$r >> 24 & 0xff] + $sb_1[$r >> 16 & 0xff]') . ' ^
$sb_2[$r >> 8 & 0xff]) +
- $sb_3[$r & 0xff];
+ $sb_3[$r & 0xff]') . ';
';
}
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/DES.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/DES.php
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/DES.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/DES.php
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php
similarity index 99%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php
index 07665a165..6ae01329e 100644
--- a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php
+++ b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php
@@ -802,7 +802,12 @@ class Hash
$result+= $argument < 0 ? ($argument & 0x7FFFFFFF) + 0x80000000 : $argument;
}
- return fmod($result, $mod);
+ if ((php_uname('m') & "\xDF\xDF\xDF") != 'ARM') {
+ return fmod($result, $mod);
+ }
+
+ return (fmod($result, 0x80000000) & 0x7FFFFFFF) |
+ ((fmod(floor($result / 0x80000000), 2) & 1) << 31);
}
/**
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC2.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC2.php
similarity index 99%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC2.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC2.php
index e9cfa3f83..b2b9d48ea 100644
--- a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC2.php
+++ b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC2.php
@@ -296,7 +296,7 @@ class RC2 extends Base
function setKeyLength($length)
{
if ($length < 8) {
- $this->default_key_length = 8;
+ $this->default_key_length = 1;
} elseif ($length > 1024) {
$this->default_key_length = 128;
} else {
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC4.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC4.php
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC4.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC4.php
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php
similarity index 99%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php
index 6b29e7518..01e34cc36 100644
--- a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php
+++ b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php
@@ -45,6 +45,10 @@ class Random
*/
static function string($length)
{
+ if (!$length) {
+ return '';
+ }
+
if (version_compare(PHP_VERSION, '7.0.0', '>=')) {
try {
return \random_bytes($length);
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php
similarity index 93%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php
index 3dd4ea1d3..70980a2ff 100644
--- a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php
+++ b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php
@@ -432,8 +432,10 @@ class Twofish extends Base
$m2[$q1[$q0[$j] ^ $key[15]] ^ $key[7]] ^
$m3[$q1[$q1[$j] ^ $key[16]] ^ $key[8]];
$B = ($B << 8) | ($B >> 24 & 0xff);
- $K[] = $A+= $B;
- $K[] = (($A+= $B) << 9 | $A >> 23 & 0x1ff);
+ $A = $this->safe_intval($A + $B);
+ $K[] = $A;
+ $A = $this->safe_intval($A + $B);
+ $K[] = ($A << 9 | $A >> 23 & 0x1ff);
}
for ($i = 0; $i < 256; ++$i) {
$S0[$i] = $m0[$q0[$q0[$i] ^ $s4] ^ $s0];
@@ -456,8 +458,10 @@ class Twofish extends Base
$m2[$q1[$q0[$q0[$j] ^ $key[23]] ^ $key[15]] ^ $key[7]] ^
$m3[$q1[$q1[$q0[$j] ^ $key[24]] ^ $key[16]] ^ $key[8]];
$B = ($B << 8) | ($B >> 24 & 0xff);
- $K[] = $A+= $B;
- $K[] = (($A+= $B) << 9 | $A >> 23 & 0x1ff);
+ $A = $this->safe_intval($A + $B);
+ $K[] = $A;
+ $A = $this->safe_intval($A + $B);
+ $K[] = ($A << 9 | $A >> 23 & 0x1ff);
}
for ($i = 0; $i < 256; ++$i) {
$S0[$i] = $m0[$q0[$q0[$q1[$i] ^ $s8] ^ $s4] ^ $s0];
@@ -481,8 +485,10 @@ class Twofish extends Base
$m2[$q1[$q0[$q0[$q0[$j] ^ $key[31]] ^ $key[23]] ^ $key[15]] ^ $key[7]] ^
$m3[$q1[$q1[$q0[$q1[$j] ^ $key[32]] ^ $key[24]] ^ $key[16]] ^ $key[8]];
$B = ($B << 8) | ($B >> 24 & 0xff);
- $K[] = $A+= $B;
- $K[] = (($A+= $B) << 9 | $A >> 23 & 0x1ff);
+ $A = $this->safe_intval($A + $B);
+ $K[] = $A;
+ $A = $this->safe_intval($A + $B);
+ $K[] = ($A << 9 | $A >> 23 & 0x1ff);
}
for ($i = 0; $i < 256; ++$i) {
$S0[$i] = $m0[$q0[$q0[$q1[$q1[$i] ^ $sc] ^ $s8] ^ $s4] ^ $s0];
@@ -578,9 +584,9 @@ class Twofish extends Base
$S1[ $R1 & 0xff] ^
$S2[($R1 >> 8) & 0xff] ^
$S3[($R1 >> 16) & 0xff];
- $R2^= $t0 + $t1 + $K[++$ki];
+ $R2^= $this->safe_intval($t0 + $t1 + $K[++$ki]);
$R2 = ($R2 >> 1 & 0x7fffffff) | ($R2 << 31);
- $R3 = ((($R3 >> 31) & 1) | ($R3 << 1)) ^ ($t0 + ($t1 << 1) + $K[++$ki]);
+ $R3 = ((($R3 >> 31) & 1) | ($R3 << 1)) ^ $this->safe_intval($t0 + ($t1 << 1) + $K[++$ki]);
$t0 = $S0[ $R2 & 0xff] ^
$S1[($R2 >> 8) & 0xff] ^
@@ -590,9 +596,9 @@ class Twofish extends Base
$S1[ $R3 & 0xff] ^
$S2[($R3 >> 8) & 0xff] ^
$S3[($R3 >> 16) & 0xff];
- $R0^= ($t0 + $t1 + $K[++$ki]);
+ $R0^= $this->safe_intval($t0 + $t1 + $K[++$ki]);
$R0 = ($R0 >> 1 & 0x7fffffff) | ($R0 << 31);
- $R1 = ((($R1 >> 31) & 1) | ($R1 << 1)) ^ ($t0 + ($t1 << 1) + $K[++$ki]);
+ $R1 = ((($R1 >> 31) & 1) | ($R1 << 1)) ^ $this->safe_intval($t0 + ($t1 << 1) + $K[++$ki]);
}
// @codingStandardsIgnoreStart
@@ -634,9 +640,9 @@ class Twofish extends Base
$S1[$R1 & 0xff] ^
$S2[$R1 >> 8 & 0xff] ^
$S3[$R1 >> 16 & 0xff];
- $R3^= $t0 + ($t1 << 1) + $K[--$ki];
+ $R3^= $this->safe_intval($t0 + ($t1 << 1) + $K[--$ki]);
$R3 = $R3 >> 1 & 0x7fffffff | $R3 << 31;
- $R2 = ($R2 >> 31 & 0x1 | $R2 << 1) ^ ($t0 + $t1 + $K[--$ki]);
+ $R2 = ($R2 >> 31 & 0x1 | $R2 << 1) ^ $this->safe_intval($t0 + $t1 + $K[--$ki]);
$t0 = $S0[$R2 & 0xff] ^
$S1[$R2 >> 8 & 0xff] ^
@@ -646,9 +652,9 @@ class Twofish extends Base
$S1[$R3 & 0xff] ^
$S2[$R3 >> 8 & 0xff] ^
$S3[$R3 >> 16 & 0xff];
- $R1^= $t0 + ($t1 << 1) + $K[--$ki];
+ $R1^= $this->safe_intval($t0 + ($t1 << 1) + $K[--$ki]);
$R1 = $R1 >> 1 & 0x7fffffff | $R1 << 31;
- $R0 = ($R0 >> 31 & 0x1 | $R0 << 1) ^ ($t0 + $t1 + $K[--$ki]);
+ $R0 = ($R0 >> 31 & 0x1 | $R0 << 1) ^ $this->safe_intval($t0 + $t1 + $K[--$ki]);
}
// @codingStandardsIgnoreStart
@@ -679,6 +685,8 @@ class Twofish extends Base
$code_hash = str_pad($code_hash, 32) . $this->_hashInlineCryptFunction($this->key);
}
+ $safeint = $this->safe_intval_inline();
+
if (!isset($lambda_functions[$code_hash])) {
switch (true) {
case $gen_hi_opt_code:
@@ -727,9 +735,9 @@ class Twofish extends Base
$S1[ $R1 & 0xff] ^
$S2[($R1 >> 8) & 0xff] ^
$S3[($R1 >> 16) & 0xff];
- $R2^= ($t0 + $t1 + '.$K[++$ki].');
+ $R2^= ' . sprintf($safeint, '$t0 + $t1 + ' . $K[++$ki]) . ';
$R2 = ($R2 >> 1 & 0x7fffffff) | ($R2 << 31);
- $R3 = ((($R3 >> 31) & 1) | ($R3 << 1)) ^ ($t0 + ($t1 << 1) + '.$K[++$ki].');
+ $R3 = ((($R3 >> 31) & 1) | ($R3 << 1)) ^ ' . sprintf($safeint, '($t0 + ($t1 << 1) + ' . $K[++$ki] . ')') . ';
$t0 = $S0[ $R2 & 0xff] ^
$S1[($R2 >> 8) & 0xff] ^
@@ -739,16 +747,16 @@ class Twofish extends Base
$S1[ $R3 & 0xff] ^
$S2[($R3 >> 8) & 0xff] ^
$S3[($R3 >> 16) & 0xff];
- $R0^= ($t0 + $t1 + '.$K[++$ki].');
+ $R0^= ' . sprintf($safeint, '($t0 + $t1 + ' . $K[++$ki] . ')') . ';
$R0 = ($R0 >> 1 & 0x7fffffff) | ($R0 << 31);
- $R1 = ((($R1 >> 31) & 1) | ($R1 << 1)) ^ ($t0 + ($t1 << 1) + '.$K[++$ki].');
+ $R1 = ((($R1 >> 31) & 1) | ($R1 << 1)) ^ ' . sprintf($safeint, '($t0 + ($t1 << 1) + ' . $K[++$ki] . ')') . ';
';
}
$encrypt_block.= '
- $in = pack("V4", '.$K[4].' ^ $R2,
- '.$K[5].' ^ $R3,
- '.$K[6].' ^ $R0,
- '.$K[7].' ^ $R1);
+ $in = pack("V4", ' . $K[4] . ' ^ $R2,
+ ' . $K[5] . ' ^ $R3,
+ ' . $K[6] . ' ^ $R0,
+ ' . $K[7] . ' ^ $R1);
';
// Generating decrypt code:
@@ -769,9 +777,9 @@ class Twofish extends Base
$S1[$R1 & 0xff] ^
$S2[$R1 >> 8 & 0xff] ^
$S3[$R1 >> 16 & 0xff];
- $R3^= $t0 + ($t1 << 1) + '.$K[--$ki].';
+ $R3^= ' . sprintf($safeint, '$t0 + ($t1 << 1) + ' . $K[--$ki]) . ';
$R3 = $R3 >> 1 & 0x7fffffff | $R3 << 31;
- $R2 = ($R2 >> 31 & 0x1 | $R2 << 1) ^ ($t0 + $t1 + '.$K[--$ki].');
+ $R2 = ($R2 >> 31 & 0x1 | $R2 << 1) ^ ' . sprintf($safeint, '($t0 + $t1 + '.$K[--$ki] . ')') . ';
$t0 = $S0[$R2 & 0xff] ^
$S1[$R2 >> 8 & 0xff] ^
@@ -781,16 +789,16 @@ class Twofish extends Base
$S1[$R3 & 0xff] ^
$S2[$R3 >> 8 & 0xff] ^
$S3[$R3 >> 16 & 0xff];
- $R1^= $t0 + ($t1 << 1) + '.$K[--$ki].';
+ $R1^= ' . sprintf($safeint, '$t0 + ($t1 << 1) + ' . $K[--$ki]) . ';
$R1 = $R1 >> 1 & 0x7fffffff | $R1 << 31;
- $R0 = ($R0 >> 31 & 0x1 | $R0 << 1) ^ ($t0 + $t1 + '.$K[--$ki].');
+ $R0 = ($R0 >> 31 & 0x1 | $R0 << 1) ^ ' . sprintf($safeint, '($t0 + $t1 + '.$K[--$ki] . ')') . ';
';
}
$decrypt_block.= '
- $in = pack("V4", '.$K[0].' ^ $R2,
- '.$K[1].' ^ $R3,
- '.$K[2].' ^ $R0,
- '.$K[3].' ^ $R1);
+ $in = pack("V4", ' . $K[0] . ' ^ $R2,
+ ' . $K[1] . ' ^ $R3,
+ ' . $K[2] . ' ^ $R0,
+ ' . $K[3] . ' ^ $R1);
';
$lambda_functions[$code_hash] = $this->_createInlineCryptFunction(
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/File/ANSI.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/File/ANSI.php
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/File/ANSI.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/File/ANSI.php
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/File/ASN1/Element.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/File/ASN1/Element.php
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/File/ASN1/Element.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/File/ASN1/Element.php
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/File/X509.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/File/X509.php
similarity index 99%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/File/X509.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/File/X509.php
index c1d591adf..67317db23 100644
--- a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/File/X509.php
+++ b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/File/X509.php
@@ -2141,7 +2141,8 @@ class X509
$subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier');
switch (true) {
case !is_array($authorityKey):
- case is_array($authorityKey) && isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID:
+ case !$subjectKeyID:
+ case isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID:
$signingCert = $this->currentCert; // working cert
}
}
@@ -2158,7 +2159,11 @@ class X509
$subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier', $ca);
switch (true) {
case !is_array($authorityKey):
- case is_array($authorityKey) && isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID:
+ case !$subjectKeyID:
+ case isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID:
+ if (is_array($authorityKey) && isset($authorityKey['authorityCertSerialNumber']) && !$authorityKey['authorityCertSerialNumber']->equals($ca['tbsCertificate']['serialNumber'])) {
+ break 2; // serial mismatch - check other ca
+ }
$signingCert = $ca; // working cert
break 3;
}
@@ -2204,7 +2209,11 @@ class X509
$subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier', $ca);
switch (true) {
case !is_array($authorityKey):
- case is_array($authorityKey) && isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID:
+ case !$subjectKeyID:
+ case isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID:
+ if (is_array($authorityKey) && isset($authorityKey['authorityCertSerialNumber']) && !$authorityKey['authorityCertSerialNumber']->equals($ca['tbsCertificate']['serialNumber'])) {
+ break 2; // serial mismatch - check other ca
+ }
$signingCert = $ca; // working cert
break 3;
}
@@ -2476,6 +2485,10 @@ class X509
}
$dn = array_values($dn);
+ // fix for https://bugs.php.net/75433 affecting PHP 7.2
+ if (!isset($dn[0])) {
+ $dn = array_splice($dn, 0, 0);
+ }
}
/**
@@ -2719,7 +2732,9 @@ class X509
$value = array_pop($value); // Always strip data type.
}
} elseif (is_object($value) && $value instanceof Element) {
- $callback = create_function('$x', 'return "\x" . bin2hex($x[0]);');
+ $callback = function ($x) {
+ return "\x" . bin2hex($x[0]);
+ };
$value = strtoupper(preg_replace_callback('#[^\x20-\x7E]#', $callback, $value->element));
}
$output.= $desc . '=' . $value;
@@ -4079,6 +4094,10 @@ class X509
}
$extensions = array_values($extensions);
+ // fix for https://bugs.php.net/75433 affecting PHP 7.2
+ if (!isset($extensions[0])) {
+ $extensions = array_splice($extensions, 0, 0);
+ }
return $result;
}
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php
similarity index 99%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php
index b6f2aaf64..2aa39a50a 100644
--- a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php
+++ b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php
@@ -2868,8 +2868,7 @@ class BigInteger
switch (MATH_BIGINTEGER_MODE) {
case self::MODE_GMP:
$temp = new static();
- $temp->value = gmp_xor($this->value, $x->value);
-
+ $temp->value = gmp_xor(gmp_abs($this->value), gmp_abs($x->value));
return $this->_normalize($temp);
case self::MODE_BCMATH:
$left = $this->toBytes();
@@ -2885,6 +2884,7 @@ class BigInteger
$length = max(count($this->value), count($x->value));
$result = $this->copy();
+ $result->is_negative = false;
$result->value = array_pad($result->value, $length, 0);
$x->value = array_pad($x->value, $length, 0);
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Net/SCP.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Net/SCP.php
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Net/SCP.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Net/SCP.php
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php
similarity index 99%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php
index eeaceca2c..8825f30cf 100644
--- a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php
+++ b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php
@@ -349,7 +349,7 @@ class SFTP extends SSH2
// yields inconsistent behavior depending on how php is compiled. so we left shift -1 (which, in
// two's compliment, consists of all 1 bits) by 31. on 64-bit systems this'll yield 0xFFFFFFFF80000000.
// that's not a problem, however, and 'anded' and a 32-bit number, as all the leading 1 bits are ignored.
- -1 << 31 => 'NET_SFTP_ATTR_EXTENDED'
+ (-1 << 31) & 0xFFFFFFFF => 'NET_SFTP_ATTR_EXTENDED'
);
// http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.3
// the flag definitions change somewhat in SFTPv5+. if SFTPv5+ support is added to this library, maybe name
@@ -1147,7 +1147,7 @@ class SFTP extends SSH2
$temp[$dir] = array();
}
if ($i === $max) {
- if (is_object($temp[$dir])) {
+ if (is_object($temp[$dir]) && is_object($value)) {
if (!isset($value->stat) && isset($temp[$dir]->stat)) {
$value->stat = $temp[$dir]->stat;
}
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php
similarity index 99%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php
index 08d726ca8..d2c4425de 100644
--- a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php
+++ b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php
@@ -179,7 +179,7 @@ class Stream
if ($host[0] == '$') {
$host = substr($host, 1);
- global $$host;
+ global ${$host};
if (($$host instanceof SFTP) === false) {
return false;
}
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Net/SSH1.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Net/SSH1.php
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Net/SSH1.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Net/SSH1.php
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php
similarity index 97%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php
index 60e4408c4..cdb7cb39e 100644
--- a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php
+++ b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php
@@ -3623,31 +3623,80 @@ class SSH2
$this->window_size_server_to_client[$channel]+= $this->window_size;
}
- if ($type == NET_SSH2_MSG_CHANNEL_EXTENDED_DATA) {
- /*
- if ($client_channel == NET_SSH2_CHANNEL_EXEC) {
- $this->_send_channel_packet($client_channel, chr(0));
- }
- */
- // currently, there's only one possible value for $data_type_code: NET_SSH2_EXTENDED_DATA_STDERR
- if (strlen($response) < 8) {
- return false;
- }
- extract(unpack('Ndata_type_code/Nlength', $this->_string_shift($response, 8)));
- $data = $this->_string_shift($response, $length);
- $this->stdErrorLog.= $data;
- if ($skip_extended || $this->quiet_mode) {
- continue;
- }
- if ($client_channel == $channel && $this->channel_status[$channel] == NET_SSH2_MSG_CHANNEL_DATA) {
- return $data;
- }
- if (!isset($this->channel_buffers[$channel])) {
- $this->channel_buffers[$channel] = array();
- }
- $this->channel_buffers[$channel][] = $data;
+ switch ($type) {
+ case NET_SSH2_MSG_CHANNEL_EXTENDED_DATA:
+ /*
+ if ($client_channel == NET_SSH2_CHANNEL_EXEC) {
+ $this->_send_channel_packet($client_channel, chr(0));
+ }
+ */
+ // currently, there's only one possible value for $data_type_code: NET_SSH2_EXTENDED_DATA_STDERR
+ if (strlen($response) < 8) {
+ return false;
+ }
+ extract(unpack('Ndata_type_code/Nlength', $this->_string_shift($response, 8)));
+ $data = $this->_string_shift($response, $length);
+ $this->stdErrorLog.= $data;
+ if ($skip_extended || $this->quiet_mode) {
+ continue 2;
+ }
+ if ($client_channel == $channel && $this->channel_status[$channel] == NET_SSH2_MSG_CHANNEL_DATA) {
+ return $data;
+ }
+ if (!isset($this->channel_buffers[$channel])) {
+ $this->channel_buffers[$channel] = array();
+ }
+ $this->channel_buffers[$channel][] = $data;
- continue;
+ continue 2;
+ case NET_SSH2_MSG_CHANNEL_REQUEST:
+ if ($this->channel_status[$channel] == NET_SSH2_MSG_CHANNEL_CLOSE) {
+ continue 2;
+ }
+ if (strlen($response) < 4) {
+ return false;
+ }
+ extract(unpack('Nlength', $this->_string_shift($response, 4)));
+ $value = $this->_string_shift($response, $length);
+ switch ($value) {
+ case 'exit-signal':
+ $this->_string_shift($response, 1);
+ if (strlen($response) < 4) {
+ return false;
+ }
+ extract(unpack('Nlength', $this->_string_shift($response, 4)));
+ $this->errors[] = 'SSH_MSG_CHANNEL_REQUEST (exit-signal): ' . $this->_string_shift($response, $length);
+ $this->_string_shift($response, 1);
+ if (strlen($response) < 4) {
+ return false;
+ }
+ extract(unpack('Nlength', $this->_string_shift($response, 4)));
+ if ($length) {
+ $this->errors[count($this->errors)].= "\r\n" . $this->_string_shift($response, $length);
+ }
+
+ $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_EOF, $this->server_channels[$client_channel]));
+ $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$channel]));
+
+ $this->channel_status[$channel] = NET_SSH2_MSG_CHANNEL_EOF;
+
+ continue 3;
+ case 'exit-status':
+ if (strlen($response) < 5) {
+ return false;
+ }
+ extract(unpack('Cfalse/Nexit_status', $this->_string_shift($response, 5)));
+ $this->exit_status = $exit_status;
+
+ // "The client MAY ignore these messages."
+ // -- http://tools.ietf.org/html/rfc4254#section-6.10
+
+ continue 3;
+ default:
+ // "Some systems may not implement signals, in which case they SHOULD ignore this message."
+ // -- http://tools.ietf.org/html/rfc4254#section-6.9
+ continue 3;
+ }
}
switch ($this->channel_status[$channel]) {
@@ -3732,52 +3781,6 @@ class SSH2
}
$this->channel_buffers[$channel][] = $data;
break;
- case NET_SSH2_MSG_CHANNEL_REQUEST:
- if (strlen($response) < 4) {
- return false;
- }
- extract(unpack('Nlength', $this->_string_shift($response, 4)));
- $value = $this->_string_shift($response, $length);
- switch ($value) {
- case 'exit-signal':
- $this->_string_shift($response, 1);
- if (strlen($response) < 4) {
- return false;
- }
- extract(unpack('Nlength', $this->_string_shift($response, 4)));
- $this->errors[] = 'SSH_MSG_CHANNEL_REQUEST (exit-signal): ' . $this->_string_shift($response, $length);
- $this->_string_shift($response, 1);
- if (strlen($response) < 4) {
- return false;
- }
- extract(unpack('Nlength', $this->_string_shift($response, 4)));
- if ($length) {
- $this->errors[count($this->errors)].= "\r\n" . $this->_string_shift($response, $length);
- }
-
- $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_EOF, $this->server_channels[$client_channel]));
- $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$channel]));
-
- $this->channel_status[$channel] = NET_SSH2_MSG_CHANNEL_EOF;
-
- break;
- case 'exit-status':
- if (strlen($response) < 5) {
- return false;
- }
- extract(unpack('Cfalse/Nexit_status', $this->_string_shift($response, 5)));
- $this->exit_status = $exit_status;
-
- // "The client MAY ignore these messages."
- // -- http://tools.ietf.org/html/rfc4254#section-6.10
-
- break;
- default:
- // "Some systems may not implement signals, in which case they SHOULD ignore this message."
- // -- http://tools.ietf.org/html/rfc4254#section-6.9
- break;
- }
- break;
case NET_SSH2_MSG_CHANNEL_CLOSE:
$this->curTimeout = 0;
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent/Identity.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent/Identity.php
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent/Identity.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent/Identity.php
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php
diff --git a/admin/helpers/vendor/phpseclib/phpseclib/phpseclib/openssl.cnf b/libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/openssl.cnf
similarity index 100%
rename from admin/helpers/vendor/phpseclib/phpseclib/phpseclib/openssl.cnf
rename to libraries/vdm_io/vendor/phpseclib/phpseclib/phpseclib/openssl.cnf
diff --git a/admin/helpers/vendor/web.config b/libraries/vdm_io/vendor/web.config
similarity index 100%
rename from admin/helpers/vendor/web.config
rename to libraries/vdm_io/vendor/web.config
diff --git a/script.php b/script.php
index 80a1309dc..8531b5a37 100644
--- a/script.php
+++ b/script.php
@@ -3194,6 +3194,10 @@ class com_componentbuilderInstallerScript
*/
function postflight($type, $parent)
{
+ // get application
+ $app = JFactory::getApplication();
+ // We check if we have dynamic folders to copy
+ $this->setDynamicF0ld3rs($app, $parent);
// set the default component settings
if ($type == 'install')
{
@@ -4735,11 +4739,54 @@ class com_componentbuilderInstallerScript
}
}
}
+ }
+ // check if this install has the libraries in the helper folder, if so remove it
+ $vendorPath = JPATH_ADMINISTRATOR . '/components/com_componentbuilder/helpers/vendor';
+ if (JFolder::exists($vendorPath))
+ {
+ ComponentbuilderHelper::removeFolder($vendorPath);
+ // set a notice that this was done
+ $app->enqueueMessage('Best Practice!
We have removed the composer-vendor folder from the /administrator/components/com_componentbuilder/helpers/ folder and placed it in the /libraries/vdm_io/ folder.
', 'Notice');
}
echo '
Upgrade to Version 2.6.17 Was Successful! Let us know if anything is not working as expected.
';
}
+ }
+
+ /**
+ * Method to set/copy dynamic folders into place (use with caution)
+ *
+ * @return void
+ */
+ protected function setDynamicF0ld3rs($app, $parent)
+ {
+ // get the instalation path
+ $installer = $parent->getParent();
+ $installPath = $installer->getPath('source');
+ // get all the folders
+ $folders = JFolder::folders($installPath);
+ // check if we have folders we may want to copy
+ $doNotCopy = array('media','admin','site'); // Joomla already deals with these
+ if (count($folders) > 1)
+ {
+ foreach ($folders as $folder)
+ {
+ // Only copy if not a standard folders
+ if (!in_array($folder, $doNotCopy))
+ {
+ // set the source path
+ $src = $installPath.'/'.$folder;
+ // set the destination path
+ $dest = JPATH_ROOT.'/'.$folder;
+ // now try to copy the folder
+ if (!JFolder::copy($src, $dest, '', true))
+ {
+ $app->enqueueMessage('Could not copy '.$folder.' folder into place, please make sure destination is writable!', 'error');
+ }
+ }
+ }
+ }
}
}
diff --git a/site/controllers/api.php b/site/controllers/api.php
index d06725dff..ba5e7ad4b 100644
--- a/site/controllers/api.php
+++ b/site/controllers/api.php
@@ -50,115 +50,6 @@ class ComponentbuilderControllerApi extends JControllerForm
}
- public function handshake()
- {
- // get input values
- $input = JFactory::getApplication()->input;
- // get Trust
- $PUBLIC = $input->post->get('VDM_PUBLIC', null, 'STRING');
- $SECRET = $input->post->get('VDM_SECRET', null, 'STRING');
- $ID = $input->post->get('VDM_ID', null, 'STRING');
- // check if correct value is given
- if (ComponentbuilderHelper::checkString($PUBLIC) && ComponentbuilderHelper::checkString($SECRET) && ComponentbuilderHelper::checkString($ID))
- {
- // use the JCB open public protocol to open this
- $opened = ComponentbuilderHelper::openPublicProtocol($SECRET, $ID, $PUBLIC);
- // simple check to have a little more hoops
- if (ComponentbuilderHelper::checkString($opened['public']) && ComponentbuilderHelper::checkString($opened['id'])
- && strpos($opened['public'], '-----BEGIN PUBLIC KEY-----') !== false
- && strpos($opened['public'], '-----END PUBLIC KEY-----') !== false
- && strpos($opened['id'], 'VDM_') !== false
- && strpos($opened['id'], '_SP') !== false)
- && ComponentbuilderHelper::checkObject(ComponentbuilderHelper::crypt('RSA')))
- {
-array('public' => ComponentbuilderHelper::getPublicKey($opened['id'], $opened['public']), 'id' => $opened['id']), $opened['public']
- ComponentbuilderHelper::crypt();
- // clear session
- JFactory::getApplication()->getSession()->destroy();
- jexit();
- }
- }
- }
- // die since have no trust
- echo 12;
- // clear session
- JFactory::getApplication()->getSession()->destroy();
- jexit();
- }
-
- public function trust()
- {
- // get input values
- $input = JFactory::getApplication()->input;
- // get Trust
- $TRUST = $input->post->get('VDM_TRUST', null, 'STRING');
- // check if correct value is given
- if (ComponentbuilderHelper::checkString($TRUST))
- {
- $key = ComponentbuilderHelper::salt(1, 2);
- // get the trust
- $trustArray = ComponentbuilderHelper::unlock($TRUST, $key, null);
- // check the array
- if (ComponentbuilderHelper::checkArray($trustArray)
- && isset($trustArray['request_id']) && is_numeric($trustArray['request_id'])
- && isset($trustArray['chain']) && ComponentbuilderHelper::checkArray($trustArray['chain'])
- && isset($trustArray['url']) && ComponentbuilderHelper::checkString($trustArray['url'])
- && isset($trustArray['path']) && ComponentbuilderHelper::checkString($trustArray['path'])
- && isset($trustArray['email']) && ComponentbuilderHelper::checkString($trustArray['email'])
- && isset($trustArray['name']) && ComponentbuilderHelper::checkString($trustArray['name'])
- && isset($trustArray['method']) && is_numeric($trustArray['method']) && $trustArray['method'] > 0)
- {
- // send the request
- echo ComponentbuilderHelper::requestTrust($trustArray);
- // clear session
- JFactory::getApplication()->getSession()->destroy();
- jexit();
- }
- }
- // die since have no trust
- echo 12;
- // clear session
- JFactory::getApplication()->getSession()->destroy();
- jexit();
- }
-
- public function itrust()
- {
- // get input values
- $input = JFactory::getApplication()->input;
- // get allowed string
- $allow = $input->get('allow', null, 'STRING');
- // check if correct value is given
- if (ComponentbuilderHelper::checkString($allow))
- {
- // get the request ID
- $request_id = ComponentbuilderHelper::unlock($allow, null, 4);
- // check the array
- if (ComponentbuilderHelper::checkString($request_id)
- && strpos($request_id, 'VDM_') !== false
- && strpos($request_id, '_SP') !== false)
- {
- $request_id = str_replace(array('VDM_', '_SP'), '', $request_id);
- $request_id = (string) 'VDM_' . preg_replace("/[^0-9]/", "", $request_id) . '_SP';
- if ($id = ComponentbuilderHelper::getVar('trust_site', $request_id, 'request_id', 'id'))
- {
- if ($message = ComponentbuilderHelper::confirmTrust($id))
- {
- // push out the message
- echo $message;
- // clear session
- JFactory::getApplication()->getSession()->destroy();
- jexit();
- }
- }
- }
- }
- // clear session
- JFactory::getApplication()->getSession()->destroy();
- // die since have no trust
- jexit('Restricted access');
- }
-
public function backup()
{
// get params first
diff --git a/site/helpers/componentbuilder.php b/site/helpers/componentbuilder.php
index 8d312f13c..df2b25263 100644
--- a/site/helpers/componentbuilder.php
+++ b/site/helpers/componentbuilder.php
@@ -1050,7 +1050,7 @@ abstract class ComponentbuilderHelper
if (!self::$composer)
{
// load the autoloader
- require_once JPATH_ADMINISTRATOR.'/components/com_componentbuilder/helpers/vendor/autoload.php';
+ require_once JPATH_SITE.'/libraries/vdm_io/vendor/autoload.php';
// do not load again
self::$composer = true;
}
@@ -1160,7 +1160,7 @@ abstract class ComponentbuilderHelper
if (!class_exists('\phpseclib\Net\SFTP'))
{
// class not in place so send out error
- JFactory::getApplication()->enqueueMessage(JText::_('COM_COMPONENTBUILDER_THE_BPHPSECLIBNETSFTPB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHOULD_HAVE_BEEN_ADDED_TO_YOUR_ADMINHELPERSVENDOR_FOLDER_OF_JCB_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO'), 'Error');
+ JFactory::getApplication()->enqueueMessage(JText::_('COM_COMPONENTBUILDER_THE_BPHPSECLIBNETSFTPB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHOULD_HAVE_BEEN_ADDED_TO_YOUR_BLIBRARIESVDM_IOVENDORB_FOLDER_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO'), 'Error');
return false;
}
// insure the port is set
diff --git a/site/language/en-GB/en-GB.com_componentbuilder.ini b/site/language/en-GB/en-GB.com_componentbuilder.ini
index 9a74d9c42..fe21b6200 100644
--- a/site/language/en-GB/en-GB.com_componentbuilder.ini
+++ b/site/language/en-GB/en-GB.com_componentbuilder.ini
@@ -38,7 +38,7 @@ COM_COMPONENTBUILDER_SINCE_THE_OWNER_DETAILS_ARE_DISPLAYED_DURING_BIMPORT_PROCES
COM_COMPONENTBUILDER_SINCE_THE_OWNER_DETAILS_ARE_DISPLAYED_DURING_IMPORT_PROCESS_BEFORE_ADDING_THE_KEY_THIS_WAY_IF_THE_USERDEV_DOES_NOT_HAVE_THE_KEY_THEY_CAN_SEE_WHERE_TO_GET_IT="Since the owner details are displayed during import process before adding the key, this way if the user/dev does not have the key they can see where to get it."
COM_COMPONENTBUILDER_THAT_MEANS_ANYONE_WHO_HAS_THIS_PACKAGE_CAN_INSTALL_IT_INTO_JCB_TO_ADD_AN_EXPORT_KEY_SIMPLY_OPEN_THE_COMPONENT_GO_TO_THE_TAB_CALLED_BSETTINGSB_BOTTOM_RIGHT_THERE_IS_A_FIELD_CALLED_BEXPORT_KEYB="That means anyone who has this package can install it into JCB. To add an export key simply open the component, go to the tab called settings, bottom right there is a field called Export Key."
COM_COMPONENTBUILDER_THAT_MEANS_ANYONE_WHO_HAS_THIS_PACKAGE_CAN_INSTALL_IT_INTO_JCB_TO_ADD_AN_EXPORT_KEY_SIMPLY_OPEN_THE_COMPONENT_GO_TO_THE_TAB_CALLED_SETTINGS_BOTTOM_RIGHT_THERE_IS_A_FIELD_CALLED_EXPORT_KEY="That means anyone who has this package can install it into JCB. To add an export key simply open the component, go to the tab called settings, bottom right there is a field called Export Key."
-COM_COMPONENTBUILDER_THE_BPHPSECLIBNETSFTPB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHOULD_HAVE_BEEN_ADDED_TO_YOUR_ADMINHELPERSVENDOR_FOLDER_OF_JCB_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO="The phpseclib\NET\SFTP library\class is not available! This library\class should have been added to your admin/helpers/vendor folder of JCB. Please contact your system administrator for more info"
+COM_COMPONENTBUILDER_THE_BPHPSECLIBNETSFTPB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHOULD_HAVE_BEEN_ADDED_TO_YOUR_BLIBRARIESVDM_IOVENDORB_FOLDER_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO="The phpseclib\NET\SFTP library\class is not available! This library\class should have been added to your libraries/vdm_io/vendor folder. Please contact your system administrator for more info"
COM_COMPONENTBUILDER_THE_BSB_FILE_COULD_NOT_BE_MOVED_TO_BSB_PATH_ON_BSB_SERVER="The %s file could not be moved to %s path on %s server."
COM_COMPONENTBUILDER_THE_BSB_FILE_COULD_NOT_BE_MOVED_TO_BSB_SERVER="The %s file could not be moved to %s server."
COM_COMPONENTBUILDER_THE_FTP_CONNECTION_FOR_BSB_COULD_NOT_BE_MADE_PLEASE_CHECK_YOUR_SIGNATURE_DETAILS="The FTP connection for %s could not be made. Please check your signature details!"