Refactoring of code for #1159

This commit is contained in:
James Cole 2018-10-05 17:54:51 +02:00
parent 7ac439fd0e
commit 6f70791239
11 changed files with 543 additions and 336 deletions

View File

@ -0,0 +1,35 @@
<?php
/**
* FinTSConfigurationSteps.php
* Copyright (c) 2018 https://github.com/bnw
*
* This file is part of Firefly III.
*
* Firefly III is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Firefly III is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
*/
declare(strict_types=1);
namespace FireflyIII\Import\JobConfiguration;
/**
*
* Class FinTSConfigurationSteps
*/
abstract class FinTSConfigurationSteps
{
public const NEW = 'new';
public const CHOOSE_ACCOUNT = 'choose_account';
public const GO_FOR_IMPORT = 'go-for-import';
}

View File

@ -1,7 +1,7 @@
<?php <?php
/** /**
* FinTSJobConfiguration.php * FinTSJobConfiguration.php
* Copyright (c) 2017 thegrumpydictator@gmail.com * Copyright (c) 2018 https://github.com/bnw
* *
* This file is part of Firefly III. * This file is part of Firefly III.
* *
@ -29,13 +29,10 @@ use FireflyIII\Support\Import\JobConfiguration\FinTS\FinTSConfigurationInterface
use FireflyIII\Support\Import\JobConfiguration\FinTS\NewFinTSJobHandler; use FireflyIII\Support\Import\JobConfiguration\FinTS\NewFinTSJobHandler;
use Illuminate\Support\MessageBag; use Illuminate\Support\MessageBag;
abstract class FinTSConfigurationSteps /**
{ *
const NEW = 'new'; * Class FinTSJobConfiguration
const CHOOSE_ACCOUNT = 'choose_account'; */
const GO_FOR_IMPORT = 'go-for-import';
}
class FinTSJobConfiguration implements JobConfigurationInterface class FinTSJobConfiguration implements JobConfigurationInterface
{ {
/** @var ImportJob */ /** @var ImportJob */
@ -48,7 +45,7 @@ class FinTSJobConfiguration implements JobConfigurationInterface
*/ */
public function configurationComplete(): bool public function configurationComplete(): bool
{ {
return $this->importJob->stage == FinTSConfigurationSteps::GO_FOR_IMPORT; return $this->importJob->stage === FinTSConfigurationSteps::GO_FOR_IMPORT;
} }
/** /**

View File

@ -1,7 +1,7 @@
<?php <?php
/** /**
* FinTSRoutine.php * FinTSRoutine.php
* Copyright (c) 2017 thegrumpydictator@gmail.com * Copyright (c) 2017 https://github.com/bnw
* *
* This file is part of Firefly III. * This file is part of Firefly III.
* *
@ -30,6 +30,10 @@ use FireflyIII\Repositories\ImportJob\ImportJobRepositoryInterface;
use FireflyIII\Support\Import\Routine\FinTS\StageImportDataHandler; use FireflyIII\Support\Import\Routine\FinTS\StageImportDataHandler;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
/**
*
* Class FinTSRoutine
*/
class FinTSRoutine implements RoutineInterface class FinTSRoutine implements RoutineInterface
{ {
/** @var ImportJob */ /** @var ImportJob */

View File

@ -1,5 +1,24 @@
<?php <?php
/**
* FinTS.php
* Copyright (c) 2018 https://github.com/bnw
*
* This file is part of Firefly III.
*
* Firefly III is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Firefly III is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
*/
declare(strict_types=1);
namespace FireflyIII\Support\FinTS; namespace FireflyIII\Support\FinTS;
@ -7,6 +26,10 @@ use Fhp\Model\SEPAAccount;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
use Illuminate\Support\Facades\Crypt; use Illuminate\Support\Facades\Crypt;
/**
*
* Class FinTS
*/
class FinTS class FinTS
{ {
/** @var \Fhp\FinTs */ /** @var \Fhp\FinTs */
@ -14,19 +37,14 @@ class FinTS
/** /**
* @param array $config * @param array $config
*
* @throws FireflyException * @throws FireflyException
*/ */
public function __construct(array $config) public function __construct(array $config)
{ {
if ( if (!isset($config['fints_url'], $config['fints_port'], $config['fints_bank_code'], $config['fints_username'], $config['fints_password'])) {
!isset($config['fints_url']) or throw new FireflyException('Constructed FinTS with incomplete config.');
!isset($config['fints_port']) or }
!isset($config['fints_bank_code']) or
!isset($config['fints_username']) or
!isset($config['fints_password']))
throw new FireflyException(
"Constructed FinTS with incomplete config."
);
$this->finTS = new \Fhp\FinTs( $this->finTS = new \Fhp\FinTs(
$config['fints_url'], $config['fints_url'],
$config['fints_port'], $config['fints_port'],
@ -36,16 +54,41 @@ class FinTS
); );
} }
/**
* @return bool|string
*/
public function checkConnection() public function checkConnection()
{ {
try { try {
$this->finTS->getSEPAAccounts(); $this->finTS->getSEPAAccounts();
return true; return true;
} catch (\Exception $exception) { } catch (\Exception $exception) {
return $exception->getMessage(); return $exception->getMessage();
} }
} }
/**
* @param string $accountNumber
*
* @return SEPAAccount
* @throws FireflyException
*/
public function getAccount(string $accountNumber)
{
$accounts = $this->getAccounts();
$filteredAccounts = array_filter(
$accounts, function (SEPAAccount $account) use ($accountNumber) {
return $account->getAccountNumber() === $accountNumber;
}
);
if (count($filteredAccounts) != 1) {
throw new FireflyException("Cannot find account with number " . $accountNumber);
}
return reset($filteredAccounts);
}
/** /**
* @return SEPAAccount[] * @return SEPAAccount[]
* @throws FireflyException * @throws FireflyException
@ -59,27 +102,11 @@ class FinTS
} }
} }
/**
* @param string $accountNumber
* @return SEPAAccount
* @throws FireflyException
*/
public function getAccount(string $accountNumber)
{
$accounts = $this->getAccounts();
$filteredAccounts = array_filter($accounts, function (SEPAAccount $account) use ($accountNumber) {
return $account->getAccountNumber() == $accountNumber;
});
if (count($filteredAccounts) != 1) {
throw new FireflyException("Cannot find account with number " . $accountNumber);
}
return reset($filteredAccounts);
}
/** /**
* @param SEPAAccount $account * @param SEPAAccount $account
* @param \DateTime $from * @param \DateTime $from
* @param \DateTIme $to * @param \DateTIme $to
*
* @return \Fhp\Model\StatementOfAccount\StatementOfAccount|null * @return \Fhp\Model\StatementOfAccount\StatementOfAccount|null
* @throws FireflyException * @throws FireflyException
*/ */

View File

@ -1,7 +1,7 @@
<?php <?php
/** /**
* ChooseAccountHandler.php * ChooseAccountHandler.php
* Copyright (c) 2017 thegrumpydictator@gmail.com * Copyright (c) 2018 https://github.com/bnw
* *
* This file is part of Firefly III. * This file is part of Firefly III.
* *
@ -28,19 +28,23 @@ use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Import\JobConfiguration\FinTSConfigurationSteps; use FireflyIII\Import\JobConfiguration\FinTSConfigurationSteps;
use FireflyIII\Models\AccountType; use FireflyIII\Models\AccountType;
use FireflyIII\Models\ImportJob; use FireflyIII\Models\ImportJob;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\ImportJob\ImportJobRepositoryInterface; use FireflyIII\Repositories\ImportJob\ImportJobRepositoryInterface;
use FireflyIII\Support\FinTS\FinTS; use FireflyIII\Support\FinTS\FinTS;
use Illuminate\Support\MessageBag; use Illuminate\Support\MessageBag;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
/**
*
* Class ChooseAccountHandler
*/
class ChooseAccountHandler implements FinTSConfigurationInterface class ChooseAccountHandler implements FinTSConfigurationInterface
{ {
/** @var AccountRepositoryInterface */
private $accountRepository;
/** @var ImportJob */ /** @var ImportJob */
private $importJob; private $importJob;
/** @var ImportJobRepositoryInterface */ /** @var ImportJobRepositoryInterface */
private $repository; private $repository;
/** @var AccountRepositoryInterface */
private $accountRepository;
/** /**
* Store data associated with current stage. * Store data associated with current stage.
@ -51,7 +55,7 @@ class ChooseAccountHandler implements FinTSConfigurationInterface
*/ */
public function configureJob(array $data): MessageBag public function configureJob(array $data): MessageBag
{ {
$config = $this->importJob->configuration; $config = $this->repository->getConfiguration($this->importJob);
$config['fints_account'] = (string)($data['fints_account'] ?? ''); $config['fints_account'] = (string)($data['fints_account'] ?? '');
$config['local_account'] = (string)($data['local_account'] ?? ''); $config['local_account'] = (string)($data['local_account'] ?? '');
$config['from_date'] = (string)($data['from_date'] ?? ''); $config['from_date'] = (string)($data['from_date'] ?? '');
@ -59,7 +63,7 @@ class ChooseAccountHandler implements FinTSConfigurationInterface
$this->repository->setConfiguration($this->importJob, $config); $this->repository->setConfiguration($this->importJob, $config);
try { try {
$finTS = app(FinTS::class, ['config' => $this->importJob->configuration]); $finTS = app(FinTS::class, ['config' => $config]);
$finTS->getAccount($config['fints_account']); $finTS->getAccount($config['fints_account']);
} catch (FireflyException $e) { } catch (FireflyException $e) {
return new MessageBag([$e->getMessage()]); return new MessageBag([$e->getMessage()]);
@ -89,7 +93,7 @@ class ChooseAccountHandler implements FinTSConfigurationInterface
foreach ($this->accountRepository->getAccountsByType([AccountType::ASSET]) as $localAccount) { foreach ($this->accountRepository->getAccountsByType([AccountType::ASSET]) as $localAccount) {
$display_name = $localAccount->name; $display_name = $localAccount->name;
if ($localAccount->iban) { if ($localAccount->iban) {
$display_name .= " - $localAccount->iban"; $display_name .= sprintf(' - %s', $localAccount->iban);
} }
$localAccounts[$localAccount->id] = $display_name; $localAccounts[$localAccount->id] = $display_name;
} }
@ -100,8 +104,9 @@ class ChooseAccountHandler implements FinTSConfigurationInterface
'local_accounts' => $localAccounts, 'local_accounts' => $localAccounts,
'local_account' => $this->importJob->configuration['local_account'] ?? null, 'local_account' => $this->importJob->configuration['local_account'] ?? null,
'from_date' => $this->importJob->configuration['from_date'] ?? (new Carbon('now - 1 month'))->format('Y-m-d'), 'from_date' => $this->importJob->configuration['from_date'] ?? (new Carbon('now - 1 month'))->format('Y-m-d'),
'to_date' => $this->importJob->configuration['to_date'] ?? (new Carbon('now'))->format('Y-m-d') 'to_date' => $this->importJob->configuration['to_date'] ?? (new Carbon('now'))->format('Y-m-d'),
]; ];
return $data; return $data;
} }
@ -115,6 +120,4 @@ class ChooseAccountHandler implements FinTSConfigurationInterface
$this->accountRepository = app(AccountRepositoryInterface::class); $this->accountRepository = app(AccountRepositoryInterface::class);
$this->repository->setUser($importJob->user); $this->repository->setUser($importJob->user);
} }
} }

View File

@ -1,7 +1,7 @@
<?php <?php
/** /**
* FinTSConfigurationInterface.php * FinTSConfigurationInterface.php
* Copyright (c) 2017 thegrumpydictator@gmail.com * Copyright (c) 2018 https://github.com/bnw
* *
* This file is part of Firefly III. * This file is part of Firefly III.
* *
@ -25,6 +25,9 @@ namespace FireflyIII\Support\Import\JobConfiguration\FinTS;
use FireflyIII\Models\ImportJob; use FireflyIII\Models\ImportJob;
use Illuminate\Support\MessageBag; use Illuminate\Support\MessageBag;
/**
*
*/
interface FinTSConfigurationInterface interface FinTSConfigurationInterface
{ {
/** /**

View File

@ -1,7 +1,7 @@
<?php <?php
/** /**
* NewFinTSJobHandler.php * NewFinTSJobHandler.php
* Copyright (c) 2017 thegrumpydictator@gmail.com * Copyright (c) 2018 https://github.com/bnw
* *
* This file is part of Firefly III. * This file is part of Firefly III.
* *
@ -31,6 +31,10 @@ use FireflyIII\Support\FinTS\FinTS;
use Illuminate\Support\Facades\Crypt; use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\MessageBag; use Illuminate\Support\MessageBag;
/**
*
* Class NewFinTSJobHandler
*/
class NewFinTSJobHandler implements FinTSConfigurationInterface class NewFinTSJobHandler implements FinTSConfigurationInterface
{ {
/** @var ImportJob */ /** @var ImportJob */
@ -60,14 +64,14 @@ class NewFinTSJobHandler implements FinTSConfigurationInterface
$incomplete = false; $incomplete = false;
foreach ($config as $value) { foreach ($config as $value) {
$incomplete = $value === '' or $incomplete; $incomplete = '' === $value or $incomplete;
} }
if ($incomplete) { if ($incomplete) {
return new MessageBag([trans('import.incomplete_fints_form')]); return new MessageBag([trans('import.incomplete_fints_form')]);
} }
$finTS = app(FinTS::class, ['config' => $this->importJob->configuration]); $finTS = app(FinTS::class, ['config' => $this->importJob->configuration]);
if (($checkConnection = $finTS->checkConnection()) !== true) { if (true !== ($checkConnection = $finTS->checkConnection())) {
return new MessageBag([trans('import.fints_connection_failed', ['originalError' => $checkConnection])]); return new MessageBag([trans('import.fints_connection_failed', ['originalError' => $checkConnection])]);
} }
@ -84,11 +88,12 @@ class NewFinTSJobHandler implements FinTSConfigurationInterface
public function getNextData(): array public function getNextData(): array
{ {
$config = $this->importJob->configuration; $config = $this->importJob->configuration;
return [ return [
'fints_url' => $config['fints_url'] ?? '', 'fints_url' => $config['fints_url'] ?? '',
'fints_port' => $config['fints_port'] ?? '443', 'fints_port' => $config['fints_port'] ?? '443',
'fints_bank_code' => $config['fints_bank_code'] ?? '', 'fints_bank_code' => $config['fints_bank_code'] ?? '',
'fints_username' => $config['fints_username'] ?? '' 'fints_username' => $config['fints_username'] ?? '',
]; ];
} }

View File

@ -1,34 +1,92 @@
<?php <?php
/**
* StageImportDataHandler.php
* Copyright (c) 2018 https://github.com/bnw
*
* This file is part of Firefly III.
*
* Firefly III is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Firefly III is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
*/
declare(strict_types=1);
namespace FireflyIII\Support\Import\Routine\FinTS; namespace FireflyIII\Support\Import\Routine\FinTS;
use Fhp\Model\StatementOfAccount\Transaction as FinTSTransaction;
use Fhp\Model\StatementOfAccount\Transaction; use Fhp\Model\StatementOfAccount\Transaction;
use Fhp\Model\StatementOfAccount\Transaction as FinTSTransaction;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Account as LocalAccount;
use FireflyIII\Models\AccountType; use FireflyIII\Models\AccountType;
use FireflyIII\Models\ImportJob; use FireflyIII\Models\ImportJob;
use FireflyIII\Models\TransactionType; use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\ImportJob\ImportJobRepositoryInterface; use FireflyIII\Repositories\ImportJob\ImportJobRepositoryInterface;
use FireflyIII\Support\FinTS\FinTS; use FireflyIII\Support\FinTS\FinTS;
use FireflyIII\Models\Account as LocalAccount;
use FireflyIII\Support\Import\Routine\File\OpposingAccountMapper; use FireflyIII\Support\Import\Routine\File\OpposingAccountMapper;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
/**
*
* Class StageImportDataHandler
*/
class StageImportDataHandler class StageImportDataHandler
{ {
/** @var AccountRepositoryInterface */ /** @var AccountRepositoryInterface */
private $accountRepository; private $accountRepository;
/** @var ImportJob */ /** @var ImportJob */
private $importJob; private $importJob;
/** @var OpposingAccountMapper */
private $mapper;
/** @var ImportJobRepositoryInterface */ /** @var ImportJobRepositoryInterface */
private $repository; private $repository;
/** @var array */ /** @var array */
private $transactions; private $transactions;
/** @var OpposingAccountMapper */
private $mapper; /**
* @return array
*/
public function getTransactions(): array
{
return $this->transactions;
}
/**
* @throws FireflyException
*/
public function run()
{
Log::debug('Now in StageImportDataHandler::run()');
$localAccount = $this->accountRepository->findNull($this->importJob->configuration['local_account']);
if (null === $localAccount) {
throw new FireflyException(sprintf('Cannot find Firefly account with id #%d ' , $this->importJob->configuration['local_account']));
}
$finTS = app(FinTS::class, ['config' => $this->importJob->configuration]);
$fintTSAccount = $finTS->getAccount($this->importJob->configuration['fints_account']);
$statementOfAccount = $finTS->getStatementOfAccount(
$fintTSAccount, new \DateTime($this->importJob->configuration['from_date']), new \DateTime($this->importJob->configuration['to_date'])
);
$collection = [];
foreach ($statementOfAccount->getStatements() as $statement) {
foreach ($statement->getTransactions() as $transaction) {
$collection[] = $this->convertTransaction($transaction, $localAccount);
}
}
$this->transactions = $collection;
}
/** /**
* @param ImportJob $importJob * @param ImportJob $importJob
@ -48,40 +106,23 @@ class StageImportDataHandler
} }
/** /**
* @throws FireflyException * @param FinTSTransaction $transaction
* @param LocalAccount $source
*
* @return array
*/ */
public function run()
{
Log::debug('Now in StageImportDataHandler::run()');
$localAccount = $this->accountRepository->findNull($this->importJob->configuration['local_account']);
if ($localAccount === null) {
throw new FireflyException('Cannot find Firefly account with id ' . $this->importJob->configuration['local_account']);
}
$finTS = app(FinTS::class, ['config' => $this->importJob->configuration]);
$fintTSAccount = $finTS->getAccount($this->importJob->configuration['fints_account']);
$statementOfAccount = $finTS->getStatementOfAccount($fintTSAccount, new \DateTime($this->importJob->configuration['from_date']), new \DateTime($this->importJob->configuration['to_date']));
$collection = [];
foreach ($statementOfAccount->getStatements() as $statement) {
foreach ($statement->getTransactions() as $transaction) {
$collection[] = $this->convertTransaction($transaction, $localAccount);
}
}
$this->transactions = $collection;
}
private function convertTransaction(FinTSTransaction $transaction, LocalAccount $source): array private function convertTransaction(FinTSTransaction $transaction, LocalAccount $source): array
{ {
Log::debug(sprintf('Start converting transaction %s', $transaction->getDescription1())); Log::debug(sprintf('Start converting transaction %s', $transaction->getDescription1()));
$amount = (string)$transaction->getAmount(); $amount = (string)$transaction->getAmount();
$debitOrCredit = $transaction->getCreditDebit(); $debitOrCredit = $transaction->getCreditDebit();
// assume deposit.
Log::debug(sprintf('Amount is %s', $amount));
if ($debitOrCredit == Transaction::CD_CREDIT) {
$type = TransactionType::DEPOSIT; $type = TransactionType::DEPOSIT;
} else { Log::debug(sprintf('Amount is %s', $amount));
// inverse if not.
if ($debitOrCredit !== Transaction::CD_CREDIT) {
$type = TransactionType::WITHDRAWAL; $type = TransactionType::WITHDRAWAL;
$amount = bcmul($amount, '-1'); $amount = bcmul($amount, '-1');
} }
@ -91,7 +132,7 @@ class StageImportDataHandler
$amount, $amount,
['iban' => $transaction->getAccountNumber(), 'name' => $transaction->getName()] ['iban' => $transaction->getAccountNumber(), 'name' => $transaction->getName()]
); );
if ($debitOrCredit == Transaction::CD_CREDIT) { if ($debitOrCredit === Transaction::CD_CREDIT) {
[$source, $destination] = [$destination, $source]; [$source, $destination] = [$destination, $source];
} }
@ -141,12 +182,4 @@ class StageImportDataHandler
return $storeData; return $storeData;
} }
/**
* @return array
*/
public function getTransactions(): array
{
return $this->transactions;
}
} }

305
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "9297702ac3c2fc200aac5fc68821bdd6", "content-hash": "a15b5b4991745824880345223530fa9e",
"packages": [ "packages": [
{ {
"name": "bacon/bacon-qr-code", "name": "bacon/bacon-qr-code",
@ -1022,16 +1022,16 @@
}, },
{ {
"name": "laravel/framework", "name": "laravel/framework",
"version": "v5.7.6", "version": "v5.7.8",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/framework.git", "url": "https://github.com/laravel/framework.git",
"reference": "93e761bb5367166ce98ba908d5eb0edd6be76792" "reference": "763b64a43ebb6042e463aab4214d4cc9722147be"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/93e761bb5367166ce98ba908d5eb0edd6be76792", "url": "https://api.github.com/repos/laravel/framework/zipball/763b64a43ebb6042e463aab4214d4cc9722147be",
"reference": "93e761bb5367166ce98ba908d5eb0edd6be76792", "reference": "763b64a43ebb6042e463aab4214d4cc9722147be",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1043,6 +1043,7 @@
"league/flysystem": "^1.0.8", "league/flysystem": "^1.0.8",
"monolog/monolog": "^1.12", "monolog/monolog": "^1.12",
"nesbot/carbon": "^1.26.3", "nesbot/carbon": "^1.26.3",
"opis/closure": "^3.1",
"php": "^7.1.3", "php": "^7.1.3",
"psr/container": "^1.0", "psr/container": "^1.0",
"psr/simple-cache": "^1.0", "psr/simple-cache": "^1.0",
@ -1159,7 +1160,7 @@
"framework", "framework",
"laravel" "laravel"
], ],
"time": "2018-09-25T14:29:00+00:00" "time": "2018-10-04T14:47:20+00:00"
}, },
{ {
"name": "laravel/passport", "name": "laravel/passport",
@ -1838,6 +1839,41 @@
], ],
"time": "2017-06-19T01:22:40+00:00" "time": "2017-06-19T01:22:40+00:00"
}, },
{
"name": "mschindler83/fints-hbci-php",
"version": "1.0.4",
"source": {
"type": "git",
"url": "https://github.com/mschindler83/fints-hbci-php.git",
"reference": "e58cb825c178d4c39a8974a9dd93abbc8094551f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/mschindler83/fints-hbci-php/zipball/e58cb825c178d4c39a8974a9dd93abbc8094551f",
"reference": "e58cb825c178d4c39a8974a9dd93abbc8094551f",
"shasum": ""
},
"require": {
"php": ">=5.3.2",
"psr/log": "~1.0"
},
"suggest": {
"monolog/monolog": "Allow sending log messages to a variety of different handlers"
},
"type": "library",
"autoload": {
"psr-0": {
"Fhp": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "PHP Library for the protocols fints and hbci",
"homepage": "http://fints-hbci-php.markus-schindler.de",
"time": "2017-02-15T13:48:21+00:00"
},
{ {
"name": "nesbot/carbon", "name": "nesbot/carbon",
"version": "1.34.0", "version": "1.34.0",
@ -1893,6 +1929,67 @@
], ],
"time": "2018-09-20T19:36:25+00:00" "time": "2018-09-20T19:36:25+00:00"
}, },
{
"name": "opis/closure",
"version": "3.1.1",
"source": {
"type": "git",
"url": "https://github.com/opis/closure.git",
"reference": "d3209e46ad6c69a969b705df0738fd0dbe26ef9e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/opis/closure/zipball/d3209e46ad6c69a969b705df0738fd0dbe26ef9e",
"reference": "d3209e46ad6c69a969b705df0738fd0dbe26ef9e",
"shasum": ""
},
"require": {
"php": "^5.4 || ^7.0"
},
"require-dev": {
"jeremeamia/superclosure": "^2.0",
"phpunit/phpunit": "^4.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Opis\\Closure\\": "src/"
},
"files": [
"functions.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Marius Sarca",
"email": "marius.sarca@gmail.com"
},
{
"name": "Sorin Sarca",
"email": "sarca_sorin@hotmail.com"
}
],
"description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.",
"homepage": "https://opis.io/closure",
"keywords": [
"anonymous functions",
"closure",
"function",
"serializable",
"serialization",
"serialize"
],
"time": "2018-10-02T13:36:53+00:00"
},
{ {
"name": "paragonie/constant_time_encoding", "name": "paragonie/constant_time_encoding",
"version": "v2.2.2", "version": "v2.2.2",
@ -2633,16 +2730,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v4.1.4", "version": "v4.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "ca80b8ced97cf07390078b29773dc384c39eee1f" "reference": "dc7122fe5f6113cfaba3b3de575d31112c9aa60b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/ca80b8ced97cf07390078b29773dc384c39eee1f", "url": "https://api.github.com/repos/symfony/console/zipball/dc7122fe5f6113cfaba3b3de575d31112c9aa60b",
"reference": "ca80b8ced97cf07390078b29773dc384c39eee1f", "reference": "dc7122fe5f6113cfaba3b3de575d31112c9aa60b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2697,20 +2794,20 @@
], ],
"description": "Symfony Console Component", "description": "Symfony Console Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-07-26T11:24:31+00:00" "time": "2018-10-03T08:15:46+00:00"
}, },
{ {
"name": "symfony/css-selector", "name": "symfony/css-selector",
"version": "v4.1.4", "version": "v4.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/css-selector.git", "url": "https://github.com/symfony/css-selector.git",
"reference": "2a4df7618f869b456f9096781e78c57b509d76c7" "reference": "d67de79a70a27d93c92c47f37ece958bf8de4d8a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/2a4df7618f869b456f9096781e78c57b509d76c7", "url": "https://api.github.com/repos/symfony/css-selector/zipball/d67de79a70a27d93c92c47f37ece958bf8de4d8a",
"reference": "2a4df7618f869b456f9096781e78c57b509d76c7", "reference": "d67de79a70a27d93c92c47f37ece958bf8de4d8a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2750,20 +2847,20 @@
], ],
"description": "Symfony CssSelector Component", "description": "Symfony CssSelector Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-07-26T09:10:45+00:00" "time": "2018-10-02T16:36:10+00:00"
}, },
{ {
"name": "symfony/debug", "name": "symfony/debug",
"version": "v4.1.4", "version": "v4.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/debug.git", "url": "https://github.com/symfony/debug.git",
"reference": "47ead688f1f2877f3f14219670f52e4722ee7052" "reference": "e3f76ce6198f81994e019bb2b4e533e9de1b9b90"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/debug/zipball/47ead688f1f2877f3f14219670f52e4722ee7052", "url": "https://api.github.com/repos/symfony/debug/zipball/e3f76ce6198f81994e019bb2b4e533e9de1b9b90",
"reference": "47ead688f1f2877f3f14219670f52e4722ee7052", "reference": "e3f76ce6198f81994e019bb2b4e533e9de1b9b90",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2806,11 +2903,11 @@
], ],
"description": "Symfony Debug Component", "description": "Symfony Debug Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-08-03T11:13:38+00:00" "time": "2018-10-02T16:36:10+00:00"
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
"version": "v4.1.4", "version": "v4.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher.git", "url": "https://github.com/symfony/event-dispatcher.git",
@ -2873,16 +2970,16 @@
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v4.1.4", "version": "v4.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/finder.git",
"reference": "e162f1df3102d0b7472805a5a9d5db9fcf0a8068" "reference": "1f17195b44543017a9c9b2d437c670627e96ad06"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/e162f1df3102d0b7472805a5a9d5db9fcf0a8068", "url": "https://api.github.com/repos/symfony/finder/zipball/1f17195b44543017a9c9b2d437c670627e96ad06",
"reference": "e162f1df3102d0b7472805a5a9d5db9fcf0a8068", "reference": "1f17195b44543017a9c9b2d437c670627e96ad06",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2918,20 +3015,20 @@
], ],
"description": "Symfony Finder Component", "description": "Symfony Finder Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-07-26T11:24:31+00:00" "time": "2018-10-03T08:47:56+00:00"
}, },
{ {
"name": "symfony/http-foundation", "name": "symfony/http-foundation",
"version": "v4.1.4", "version": "v4.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-foundation.git", "url": "https://github.com/symfony/http-foundation.git",
"reference": "3a5c91e133b220bb882b3cd773ba91bf39989345" "reference": "d528136617ff24f530e70df9605acc1b788b08d4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/3a5c91e133b220bb882b3cd773ba91bf39989345", "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d528136617ff24f530e70df9605acc1b788b08d4",
"reference": "3a5c91e133b220bb882b3cd773ba91bf39989345", "reference": "d528136617ff24f530e70df9605acc1b788b08d4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2972,20 +3069,20 @@
], ],
"description": "Symfony HttpFoundation Component", "description": "Symfony HttpFoundation Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-08-27T17:47:02+00:00" "time": "2018-10-03T08:48:45+00:00"
}, },
{ {
"name": "symfony/http-kernel", "name": "symfony/http-kernel",
"version": "v4.1.4", "version": "v4.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-kernel.git", "url": "https://github.com/symfony/http-kernel.git",
"reference": "33de0a1ff2e1720096189e3ced682d7a4e8f5e35" "reference": "f5e7c15a5d010be0e16ce798594c5960451d4220"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/33de0a1ff2e1720096189e3ced682d7a4e8f5e35", "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f5e7c15a5d010be0e16ce798594c5960451d4220",
"reference": "33de0a1ff2e1720096189e3ced682d7a4e8f5e35", "reference": "f5e7c15a5d010be0e16ce798594c5960451d4220",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3059,7 +3156,7 @@
], ],
"description": "Symfony HttpKernel Component", "description": "Symfony HttpKernel Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-08-28T06:17:42+00:00" "time": "2018-10-03T12:53:38+00:00"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
@ -3343,16 +3440,16 @@
}, },
{ {
"name": "symfony/process", "name": "symfony/process",
"version": "v4.1.4", "version": "v4.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/process.git", "url": "https://github.com/symfony/process.git",
"reference": "86cdb930a6a855b0ab35fb60c1504cb36184f843" "reference": "ee33c0322a8fee0855afcc11fff81e6b1011b529"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/86cdb930a6a855b0ab35fb60c1504cb36184f843", "url": "https://api.github.com/repos/symfony/process/zipball/ee33c0322a8fee0855afcc11fff81e6b1011b529",
"reference": "86cdb930a6a855b0ab35fb60c1504cb36184f843", "reference": "ee33c0322a8fee0855afcc11fff81e6b1011b529",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3388,7 +3485,7 @@
], ],
"description": "Symfony Process Component", "description": "Symfony Process Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-08-03T11:13:38+00:00" "time": "2018-10-02T12:40:59+00:00"
}, },
{ {
"name": "symfony/psr-http-message-bridge", "name": "symfony/psr-http-message-bridge",
@ -3453,16 +3550,16 @@
}, },
{ {
"name": "symfony/routing", "name": "symfony/routing",
"version": "v4.1.4", "version": "v4.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/routing.git", "url": "https://github.com/symfony/routing.git",
"reference": "a5784c2ec4168018c87b38f0e4f39d2278499f51" "reference": "537803f0bdfede36b9acef052d2e4d447d9fa0e9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/a5784c2ec4168018c87b38f0e4f39d2278499f51", "url": "https://api.github.com/repos/symfony/routing/zipball/537803f0bdfede36b9acef052d2e4d447d9fa0e9",
"reference": "a5784c2ec4168018c87b38f0e4f39d2278499f51", "reference": "537803f0bdfede36b9acef052d2e4d447d9fa0e9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3526,20 +3623,20 @@
"uri", "uri",
"url" "url"
], ],
"time": "2018-08-03T07:58:40+00:00" "time": "2018-10-02T12:40:59+00:00"
}, },
{ {
"name": "symfony/translation", "name": "symfony/translation",
"version": "v4.1.4", "version": "v4.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/translation.git", "url": "https://github.com/symfony/translation.git",
"reference": "fa2182669f7983b7aa5f1a770d053f79f0ef144f" "reference": "9f0b61e339160a466ebcde167a6c5521c810e304"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/fa2182669f7983b7aa5f1a770d053f79f0ef144f", "url": "https://api.github.com/repos/symfony/translation/zipball/9f0b61e339160a466ebcde167a6c5521c810e304",
"reference": "fa2182669f7983b7aa5f1a770d053f79f0ef144f", "reference": "9f0b61e339160a466ebcde167a6c5521c810e304",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3595,20 +3692,20 @@
], ],
"description": "Symfony Translation Component", "description": "Symfony Translation Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-08-07T12:45:11+00:00" "time": "2018-10-02T16:36:10+00:00"
}, },
{ {
"name": "symfony/var-dumper", "name": "symfony/var-dumper",
"version": "v4.1.4", "version": "v4.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/var-dumper.git", "url": "https://github.com/symfony/var-dumper.git",
"reference": "a05426e27294bba7b0226ffc17dd01a3c6ef9777" "reference": "60319b45653580b0cdacca499344577d87732f16"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/a05426e27294bba7b0226ffc17dd01a3c6ef9777", "url": "https://api.github.com/repos/symfony/var-dumper/zipball/60319b45653580b0cdacca499344577d87732f16",
"reference": "a05426e27294bba7b0226ffc17dd01a3c6ef9777", "reference": "60319b45653580b0cdacca499344577d87732f16",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3670,7 +3767,7 @@
"debug", "debug",
"dump" "dump"
], ],
"time": "2018-08-02T09:24:26+00:00" "time": "2018-10-02T16:36:10+00:00"
}, },
{ {
"name": "tijsverkoyen/css-to-inline-styles", "name": "tijsverkoyen/css-to-inline-styles",
@ -4656,16 +4753,16 @@
}, },
{ {
"name": "mockery/mockery", "name": "mockery/mockery",
"version": "1.1.0", "version": "1.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/mockery/mockery.git", "url": "https://github.com/mockery/mockery.git",
"reference": "99e29d3596b16dabe4982548527d5ddf90232e99" "reference": "100633629bf76d57430b86b7098cd6beb996a35a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/mockery/mockery/zipball/99e29d3596b16dabe4982548527d5ddf90232e99", "url": "https://api.github.com/repos/mockery/mockery/zipball/100633629bf76d57430b86b7098cd6beb996a35a",
"reference": "99e29d3596b16dabe4982548527d5ddf90232e99", "reference": "100633629bf76d57430b86b7098cd6beb996a35a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4674,8 +4771,7 @@
"php": ">=5.6.0" "php": ">=5.6.0"
}, },
"require-dev": { "require-dev": {
"phpdocumentor/phpdocumentor": "^2.9", "phpunit/phpunit": "~5.7.10|~6.5|~7.0"
"phpunit/phpunit": "~5.7.10|~6.5"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -4718,7 +4814,7 @@
"test double", "test double",
"testing" "testing"
], ],
"time": "2018-05-08T08:54:48+00:00" "time": "2018-10-02T21:52:37+00:00"
}, },
{ {
"name": "myclabs/deep-copy", "name": "myclabs/deep-copy",
@ -5170,16 +5266,16 @@
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
"version": "6.0.7", "version": "6.0.8",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "865662550c384bc1db7e51d29aeda1c2c161d69a" "reference": "848f78b3309780fef7ec8c4666b7ab4e6b09b22f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/865662550c384bc1db7e51d29aeda1c2c161d69a", "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/848f78b3309780fef7ec8c4666b7ab4e6b09b22f",
"reference": "865662550c384bc1db7e51d29aeda1c2c161d69a", "reference": "848f78b3309780fef7ec8c4666b7ab4e6b09b22f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5229,7 +5325,7 @@
"testing", "testing",
"xunit" "xunit"
], ],
"time": "2018-06-01T07:51:50+00:00" "time": "2018-10-04T03:41:23+00:00"
}, },
{ {
"name": "phpunit/php-file-iterator", "name": "phpunit/php-file-iterator",
@ -5422,16 +5518,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "7.3.5", "version": "7.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "7b331efabbb628c518c408fdfcaf571156775de2" "reference": "f3837fa1e07758057ae06e8ddec6d06ba183f126"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/7b331efabbb628c518c408fdfcaf571156775de2", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3837fa1e07758057ae06e8ddec6d06ba183f126",
"reference": "7b331efabbb628c518c408fdfcaf571156775de2", "reference": "f3837fa1e07758057ae06e8ddec6d06ba183f126",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5456,7 +5552,7 @@
"sebastian/exporter": "^3.1", "sebastian/exporter": "^3.1",
"sebastian/global-state": "^2.0", "sebastian/global-state": "^2.0",
"sebastian/object-enumerator": "^3.0.3", "sebastian/object-enumerator": "^3.0.3",
"sebastian/resource-operations": "^1.0", "sebastian/resource-operations": "^2.0",
"sebastian/version": "^2.0.1" "sebastian/version": "^2.0.1"
}, },
"conflict": { "conflict": {
@ -5476,7 +5572,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "7.3-dev" "dev-master": "7.4-dev"
} }
}, },
"autoload": { "autoload": {
@ -5502,7 +5598,7 @@
"testing", "testing",
"xunit" "xunit"
], ],
"time": "2018-09-08T15:14:29+00:00" "time": "2018-10-05T04:05:24+00:00"
}, },
{ {
"name": "roave/security-advisories", "name": "roave/security-advisories",
@ -5510,6 +5606,7 @@
"conflict": { "conflict": {
"3f/pygmentize": "<1.2", "3f/pygmentize": "<1.2",
"adodb/adodb-php": "<5.20.12", "adodb/adodb-php": "<5.20.12",
"alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1",
"amphp/artax": "<1.0.6|>=2,<2.0.6", "amphp/artax": "<1.0.6|>=2,<2.0.6",
"amphp/http": "<1.0.1", "amphp/http": "<1.0.1",
"asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99",
@ -5677,7 +5774,7 @@
} }
], ],
"description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it",
"time": "2018-09-17T20:20:31+00:00" "time": "2018-10-02T16:19:22+00:00"
}, },
{ {
"name": "sebastian/code-unit-reverse-lookup", "name": "sebastian/code-unit-reverse-lookup",
@ -6159,25 +6256,25 @@
}, },
{ {
"name": "sebastian/resource-operations", "name": "sebastian/resource-operations",
"version": "1.0.0", "version": "2.0.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/resource-operations.git", "url": "https://github.com/sebastianbergmann/resource-operations.git",
"reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
"reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.6.0" "php": "^7.1"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.0.x-dev" "dev-master": "2.0-dev"
} }
}, },
"autoload": { "autoload": {
@ -6197,7 +6294,7 @@
], ],
"description": "Provides a list of PHP built-in functions that operate on resources", "description": "Provides a list of PHP built-in functions that operate on resources",
"homepage": "https://www.github.com/sebastianbergmann/resource-operations", "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
"time": "2015-07-28T20:34:47+00:00" "time": "2018-10-04T04:07:39+00:00"
}, },
{ {
"name": "sebastian/version", "name": "sebastian/version",
@ -6337,16 +6434,16 @@
}, },
{ {
"name": "symfony/config", "name": "symfony/config",
"version": "v4.1.4", "version": "v4.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/config.git", "url": "https://github.com/symfony/config.git",
"reference": "76015a3cc372b14d00040ff58e18e29f69eba717" "reference": "b3d4d7b567d7a49e6dfafb6d4760abc921177c96"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/config/zipball/76015a3cc372b14d00040ff58e18e29f69eba717", "url": "https://api.github.com/repos/symfony/config/zipball/b3d4d7b567d7a49e6dfafb6d4760abc921177c96",
"reference": "76015a3cc372b14d00040ff58e18e29f69eba717", "reference": "b3d4d7b567d7a49e6dfafb6d4760abc921177c96",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -6396,20 +6493,20 @@
], ],
"description": "Symfony Config Component", "description": "Symfony Config Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-08-08T06:37:38+00:00" "time": "2018-09-08T13:24:10+00:00"
}, },
{ {
"name": "symfony/filesystem", "name": "symfony/filesystem",
"version": "v4.1.4", "version": "v4.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/filesystem.git", "url": "https://github.com/symfony/filesystem.git",
"reference": "c0f5f62db218fa72195b8b8700e4b9b9cf52eb5e" "reference": "596d12b40624055c300c8b619755b748ca5cf0b5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/c0f5f62db218fa72195b8b8700e4b9b9cf52eb5e", "url": "https://api.github.com/repos/symfony/filesystem/zipball/596d12b40624055c300c8b619755b748ca5cf0b5",
"reference": "c0f5f62db218fa72195b8b8700e4b9b9cf52eb5e", "reference": "596d12b40624055c300c8b619755b748ca5cf0b5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -6446,20 +6543,20 @@
], ],
"description": "Symfony Filesystem Component", "description": "Symfony Filesystem Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-08-18T16:52:46+00:00" "time": "2018-10-02T12:40:59+00:00"
}, },
{ {
"name": "symfony/stopwatch", "name": "symfony/stopwatch",
"version": "v4.1.4", "version": "v4.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/stopwatch.git", "url": "https://github.com/symfony/stopwatch.git",
"reference": "966c982df3cca41324253dc0c7ffe76b6076b705" "reference": "5bfc064125b73ff81229e19381ce1c34d3416f4b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/966c982df3cca41324253dc0c7ffe76b6076b705", "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5bfc064125b73ff81229e19381ce1c34d3416f4b",
"reference": "966c982df3cca41324253dc0c7ffe76b6076b705", "reference": "5bfc064125b73ff81229e19381ce1c34d3416f4b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -6495,20 +6592,20 @@
], ],
"description": "Symfony Stopwatch Component", "description": "Symfony Stopwatch Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-07-26T11:00:49+00:00" "time": "2018-10-02T12:40:59+00:00"
}, },
{ {
"name": "symfony/yaml", "name": "symfony/yaml",
"version": "v4.1.4", "version": "v4.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/yaml.git", "url": "https://github.com/symfony/yaml.git",
"reference": "b832cc289608b6d305f62149df91529a2ab3c314" "reference": "367e689b2fdc19965be435337b50bc8adf2746c9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/b832cc289608b6d305f62149df91529a2ab3c314", "url": "https://api.github.com/repos/symfony/yaml/zipball/367e689b2fdc19965be435337b50bc8adf2746c9",
"reference": "b832cc289608b6d305f62149df91529a2ab3c314", "reference": "367e689b2fdc19965be435337b50bc8adf2746c9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -6554,7 +6651,7 @@
], ],
"description": "Symfony Yaml Component", "description": "Symfony Yaml Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-08-18T16:52:46+00:00" "time": "2018-10-02T16:36:10+00:00"
}, },
{ {
"name": "theseer/tokenizer", "name": "theseer/tokenizer",

View File

@ -47,6 +47,9 @@ return [
'button_yodlee' => 'Import using Yodlee', 'button_yodlee' => 'Import using Yodlee',
'button_quovo' => 'Import using Quovo', 'button_quovo' => 'Import using Quovo',
'button_ynab' => 'Import from You Need A Budget', 'button_ynab' => 'Import from You Need A Budget',
'button_fints' => 'Import using FinTS',
// global config box (index) // global config box (index)
'global_config_title' => 'Global import configuration', 'global_config_title' => 'Global import configuration',
'global_config_text' => 'In the future, this box will feature preferences that apply to ALL import providers above.', 'global_config_text' => 'In the future, this box will feature preferences that apply to ALL import providers above.',
@ -201,7 +204,7 @@ return [
'spectre_extra_key_transactions_count' => 'Transaction count', 'spectre_extra_key_transactions_count' => 'Transaction count',
//job configuration for finTS //job configuration for finTS
'fints_connection_failed' => 'An error occurred while trying to connecting to your bank. Please mak sure that all the data you entered is correct. Original error message: :originalError', 'fints_connection_failed' => 'An error occurred while trying to connecting to your bank. Please mak sure that all the data you entered is correct. Original error message: :originalError',
'button_fints' => 'FinTS',
'job_config_fints_url_help' => 'E.g. https://banking-dkb.s-fints-pt-dkb.de/fints30', 'job_config_fints_url_help' => 'E.g. https://banking-dkb.s-fints-pt-dkb.de/fints30',
'job_config_fints_username_help' => 'For many banks this is your account number.', 'job_config_fints_username_help' => 'For many banks this is your account number.',
'job_config_fints_port_help' => 'The default port is 443.', 'job_config_fints_port_help' => 'The default port is 443.',