diff --git a/app/Console/Commands/VerifyDatabase.php b/app/Console/Commands/VerifyDatabase.php
index 6a13b74dd6..8db87ad4dc 100644
--- a/app/Console/Commands/VerifyDatabase.php
+++ b/app/Console/Commands/VerifyDatabase.php
@@ -87,12 +87,13 @@ class VerifyDatabase extends Command
$this->createLinkTypes();
$this->createAccessTokens();
$this->fixDoubleAmounts();
+ $this->fixBadMeta();
}
/**
* Create user access tokens, if not present already.
*/
- private function createAccessTokens()
+ private function createAccessTokens(): void
{
$count = 0;
$users = User::get();
@@ -114,7 +115,7 @@ class VerifyDatabase extends Command
/**
* Create default link types if necessary.
*/
- private function createLinkTypes()
+ private function createLinkTypes(): void
{
$count = 0;
$set = [
@@ -140,7 +141,69 @@ class VerifyDatabase extends Command
}
}
- private function fixDoubleAmounts()
+ /**
+ * Fix the situation where the matching transactions
+ * of a journal somehow have non-matching categories
+ * or budgets
+ */
+ private function fixBadMeta(): void
+ {
+ // categories
+ $set = Transaction
+ ::leftJoin('category_transaction', 'category_transaction.transaction_id', '=', 'transactions.id')
+ ->whereNull('transactions.deleted_at')
+ ->get(['transactions.id', 'transaction_journal_id', 'identifier', 'category_transaction.category_id', 'category_transaction.id as ct_id']);
+ $results = [];
+ foreach ($set as $obj) {
+ $key = $obj->transaction_journal_id . '-' . $obj->identifier;
+ $category = (int)$obj->category_id;
+
+ // value exists and is not category:
+ if (isset($results[$key]) && $results[$key] !== $category) {
+ $this->error(
+ sprintf(
+ 'Transaction #%d referred to the wrong category. Was category #%d but is fixed to be category #%d.', $obj->transaction_journal_id, $category, $results[$key]
+ )
+ );
+ DB::table('category_transaction')->where('id', $obj->ct_id)->update(['category_id' => $results[$key]]);
+
+ }
+
+ // value does not exist:
+ if ($category > 0 && !isset($results[$key])) {
+ $results[$key] = $category;
+ }
+ }
+
+ // budgets
+ $set = Transaction
+ ::leftJoin('budget_transaction', 'budget_transaction.transaction_id', '=', 'transactions.id')
+ ->whereNull('transactions.deleted_at')
+ ->get(['transactions.id', 'transaction_journal_id', 'identifier', 'budget_transaction.budget_id', 'budget_transaction.id as ct_id']);
+ $results = [];
+ foreach ($set as $obj) {
+ $key = $obj->transaction_journal_id . '-' . $obj->identifier;
+ $budget = (int)$obj->budget_id;
+
+ // value exists and is not budget:
+ if (isset($results[$key]) && $results[$key] !== $budget) {
+ $this->error(
+ sprintf(
+ 'Transaction #%d referred to the wrong budget. Was budget #%d but is fixed to be budget #%d.', $obj->transaction_journal_id, $budget, $results[$key]
+ )
+ );
+ DB::table('budget_transaction')->where('id', $obj->ct_id)->update(['budget_id' => $results[$key]]);
+
+ }
+
+ // value does not exist:
+ if ($budget > 0 && !isset($results[$key])) {
+ $results[$key] = $budget;
+ }
+ }
+ }
+
+ private function fixDoubleAmounts(): void
{
$count = 0;
// get invalid journals
@@ -186,8 +249,6 @@ class VerifyDatabase extends Command
if (0 === $count) {
$this->info('Amount integrity OK!');
}
-
- return;
}
/**
@@ -217,8 +278,6 @@ class VerifyDatabase extends Command
return true;
}
);
-
- return;
}
/**
@@ -246,7 +305,7 @@ class VerifyDatabase extends Command
/**
* Reports on budgets with no budget limits (which makes them pointless).
*/
- private function reportBudgetLimits()
+ private function reportBudgetLimits(): void
{
$set = Budget::leftJoin('budget_limits', 'budget_limits.budget_id', '=', 'budgets.id')
->leftJoin('users', 'budgets.user_id', '=', 'users.id')
@@ -270,7 +329,7 @@ class VerifyDatabase extends Command
/**
* Reports on deleted accounts that still have not deleted transactions or journals attached to them.
*/
- private function reportDeletedAccounts()
+ private function reportDeletedAccounts(): void
{
$set = Account::leftJoin('transactions', 'transactions.account_id', '=', 'accounts.id')
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
@@ -300,7 +359,7 @@ class VerifyDatabase extends Command
/**
* Report on journals with bad account types linked to them.
*/
- private function reportIncorrectJournals()
+ private function reportIncorrectJournals(): void
{
$configuration = [
// a withdrawal can not have revenue account:
@@ -342,7 +401,7 @@ class VerifyDatabase extends Command
/**
* Any deleted transaction journals that have transactions that are NOT deleted:.
*/
- private function reportJournals()
+ private function reportJournals(): void
{
$count = 0;
$set = TransactionJournal::leftJoin('transactions', 'transactions.transaction_journal_id', '=', 'transaction_journals.id')
@@ -373,7 +432,7 @@ class VerifyDatabase extends Command
/**
* Report on journals without transactions.
*/
- private function reportNoTransactions()
+ private function reportNoTransactions(): void
{
$count = 0;
$set = TransactionJournal::leftJoin('transactions', 'transactions.transaction_journal_id', '=', 'transaction_journals.id')
@@ -397,7 +456,7 @@ class VerifyDatabase extends Command
*
* @param string $name
*/
- private function reportObject(string $name)
+ private function reportObject(string $name): void
{
$plural = str_plural($name);
$class = sprintf('FireflyIII\Models\%s', ucfirst($name));
@@ -433,7 +492,7 @@ class VerifyDatabase extends Command
/**
* Reports for each user when the sum of their transactions is not zero.
*/
- private function reportSum()
+ private function reportSum(): void
{
/** @var UserRepositoryInterface $userRepository */
$userRepository = app(UserRepositoryInterface::class);
@@ -452,7 +511,7 @@ class VerifyDatabase extends Command
/**
* Reports on deleted transactions that are connected to a not deleted journal.
*/
- private function reportTransactions()
+ private function reportTransactions(): void
{
$set = Transaction::leftJoin('transaction_journals', 'transactions.transaction_journal_id', '=', 'transaction_journals.id')
->whereNotNull('transactions.deleted_at')
diff --git a/app/Http/Controllers/BillController.php b/app/Http/Controllers/BillController.php
index 3f020a4e27..395cdd4738 100644
--- a/app/Http/Controllers/BillController.php
+++ b/app/Http/Controllers/BillController.php
@@ -28,10 +28,10 @@ use FireflyIII\Helpers\Collector\JournalCollectorInterface;
use FireflyIII\Http\Requests\BillFormRequest;
use FireflyIII\Models\Bill;
use FireflyIII\Models\Note;
-use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface;
+use FireflyIII\TransactionRules\TransactionMatcher;
use FireflyIII\Transformers\BillTransformer;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
@@ -220,6 +220,7 @@ class BillController extends Controller
* @param Bill $bill
*
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
+ * @throws \FireflyIII\Exceptions\FireflyException
*/
public function rescan(Request $request, BillRepositoryInterface $repository, Bill $bill)
{
@@ -228,14 +229,22 @@ class BillController extends Controller
return redirect(URL::previous());
}
-
- $journals = $repository->getPossiblyRelatedJournals($bill);
- /** @var TransactionJournal $journal */
- foreach ($journals as $journal) {
- $repository->scan($bill, $journal);
+ $set = $repository->getRulesForBill($bill);
+ $total = 0;
+ foreach ($set as $rule) {
+ // simply fire off all rules?
+ /** @var TransactionMatcher $matcher */
+ $matcher = app(TransactionMatcher::class);
+ $matcher->setLimit(100000); // large upper limit
+ $matcher->setRange(100000); // large upper limit
+ $matcher->setRule($rule);
+ $matchingTransactions = $matcher->findTransactionsByRule();
+ $total += $matchingTransactions->count();
+ $repository->linkCollectionToBill($bill, $matchingTransactions);
}
- $request->session()->flash('success', (string)trans('firefly.rescanned_bill'));
+
+ $request->session()->flash('success', (string)trans('firefly.rescanned_bill', ['total' => $total]));
Preferences::mark();
return redirect(URL::previous());
@@ -250,6 +259,8 @@ class BillController extends Controller
*/
public function show(Request $request, BillRepositoryInterface $repository, Bill $bill)
{
+ // add info about rules:
+ $rules = $repository->getRulesForBill($bill);
$subTitle = $bill->name;
$start = session('start');
$end = session('end');
@@ -278,7 +289,7 @@ class BillController extends Controller
$transactions->setPath(route('bills.show', [$bill->id]));
- return view('bills.show', compact('transactions', 'yearAverage', 'overallAverage', 'year', 'object', 'bill', 'subTitle'));
+ return view('bills.show', compact('transactions', 'rules', 'yearAverage', 'overallAverage', 'year', 'object', 'bill', 'subTitle'));
}
/**
diff --git a/app/Http/Controllers/RuleController.php b/app/Http/Controllers/RuleController.php
index 87be71d5d0..2f7ee11312 100644
--- a/app/Http/Controllers/RuleController.php
+++ b/app/Http/Controllers/RuleController.php
@@ -79,6 +79,8 @@ class RuleController extends Controller
*/
public function create(Request $request, RuleGroupRepositoryInterface $ruleGroupRepository, BillRepositoryInterface $billRepository, RuleGroup $ruleGroup)
{
+ $this->createDefaultRuleGroup();
+ $this->createDefaultRule();
$bill = null;
$billId = (int)$request->get('fromBill');
$preFilled = [];
@@ -443,8 +445,8 @@ class RuleController extends Controller
* @param Rule $rule
*
* @return \Illuminate\Http\JsonResponse
- *
-
+ * @throws Throwable
+ * @throws \FireflyIII\Exceptions\FireflyException
*/
public function testTriggersByRule(Rule $rule)
{
@@ -466,10 +468,10 @@ class RuleController extends Controller
// Warn the user if only a subset of transactions is returned
$warning = '';
- if (count($matchingTransactions) === $limit) {
+ if (\count($matchingTransactions) === $limit) {
$warning = trans('firefly.warning_transaction_subset', ['max_num_transactions' => $limit]); // @codeCoverageIgnore
}
- if (0 === count($matchingTransactions)) {
+ if (0 === \count($matchingTransactions)) {
$warning = trans('firefly.warning_no_matching_transactions', ['num_transactions' => $range]); // @codeCoverageIgnore
}
diff --git a/app/Import/FileProcessor/CsvProcessor.php b/app/Import/FileProcessor/CsvProcessor.php
index 84915aa160..140783adc1 100644
--- a/app/Import/FileProcessor/CsvProcessor.php
+++ b/app/Import/FileProcessor/CsvProcessor.php
@@ -339,6 +339,7 @@ class CsvProcessor implements FileProcessorInterface
{
$hash = $this->getRowHash($array);
$count = $this->repository->countByHash($hash);
+ Log::debug(sprintf('Hash is %s and count is %d', $hash, $count));
return $count > 0;
}
diff --git a/app/Import/Object/ImportAccount.php b/app/Import/Object/ImportAccount.php
index 34da909602..5babe8e471 100644
--- a/app/Import/Object/ImportAccount.php
+++ b/app/Import/Object/ImportAccount.php
@@ -446,11 +446,24 @@ class ImportAccount
// 5: then maybe, create one:
Log::debug(sprintf('Found no account of type %s so must create one ourselves.', $this->expectedType));
+ // make sure name field is sensible.
+ $name = '(no name)';
+ if (isset($this->accountNumber['value'])) {
+ $name = $this->accountNumber['value'];
+ }
+ if (isset($this->accountIban['value'])) {
+ $name = $this->accountIban['value'];
+ }
+ if (isset($this->accountName['value'])) {
+ $name = $this->accountName['value'];
+ }
+
$data = [
'accountType' => config('firefly.shortNamesByFullName.' . $this->expectedType),
- 'name' => $this->accountName['value'] ?? '(no name)',
+ 'name' => $name,
'iban' => $this->accountIban['value'] ?? null,
'active' => true,
+ 'accountNumber' => $this->accountNumber['value'] ?? null,
'virtualBalance' => '0',
'account_type_id' => null,
'BIC' => $this->accountBic['value'] ?? null,
diff --git a/app/Import/Storage/ImportStorage.php b/app/Import/Storage/ImportStorage.php
index 9c3f941505..aee0bdbc6a 100644
--- a/app/Import/Storage/ImportStorage.php
+++ b/app/Import/Storage/ImportStorage.php
@@ -256,6 +256,7 @@ class ImportStorage
'sepa-country' => $importJournal->getMetaString('sepa-country'),
'sepa-ep' => $importJournal->getMetaString('sepa-ep'),
'sepa-ci' => $importJournal->getMetaString('sepa-ci'),
+ 'importHash' => $importJournal->hash,
'transactions' => [
// single transaction:
[
diff --git a/app/Models/Preference.php b/app/Models/Preference.php
index 38f86409ed..16a092a18c 100644
--- a/app/Models/Preference.php
+++ b/app/Models/Preference.php
@@ -28,6 +28,7 @@ use FireflyIII\Exceptions\FireflyException;
use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Database\Eloquent\Model;
use Log;
+use FireflyIII\User;
/**
* Class Preference.
@@ -71,9 +72,8 @@ class Preference extends Model
$serialized = true;
try {
unserialize($data, ['allowed_classes' => false]);
- } catch (Exception $e) {
+ } /** @noinspection BadExceptionsProcessingInspection */ catch (Exception $e) {
$serialized = false;
- Log::debug(sprintf('Could not unserialise preference #%d ("%s"). This is good. %s', $this->id, $this->name, $e->getMessage()));
}
if (!$serialized) {
$result = json_decode($data, true);
@@ -103,6 +103,6 @@ class Preference extends Model
*/
public function user()
{
- return $this->belongsTo('FireflyIII\User');
+ return $this->belongsTo(User::class);
}
}
diff --git a/app/Repositories/Bill/BillRepository.php b/app/Repositories/Bill/BillRepository.php
index 14fb2f4bf8..6401d05819 100644
--- a/app/Repositories/Bill/BillRepository.php
+++ b/app/Repositories/Bill/BillRepository.php
@@ -367,6 +367,22 @@ class BillRepository implements BillRepositoryInterface
return $journals;
}
+ /**
+ * Return all rules for one bill
+ *
+ * @param Bill $bill
+ *
+ * @return Collection
+ */
+ public function getRulesForBill(Bill $bill): Collection
+ {
+ return $this->user->rules()
+ ->leftJoin('rule_actions', 'rule_actions.rule_id', '=', 'rules.id')
+ ->where('rule_actions.action_type', 'link_to_bill')
+ ->where('rule_actions.action_value', $bill->name)
+ ->get(['rules.*']);
+ }
+
/**
* Return all rules related to the bills in the collection, in an associative array:
* 5= billid
@@ -426,6 +442,21 @@ class BillRepository implements BillRepositoryInterface
return $avg;
}
+ /**
+ * Link a set of journals to a bill.
+ *
+ * @param Bill $bill
+ * @param Collection $journals
+ */
+ public function linkCollectionToBill(Bill $bill, Collection $journals): void
+ {
+ $ids = $journals->pluck('id')->toArray();
+ DB::table('transaction_journals')
+ ->where('user_id', $this->user->id)
+ ->whereIn('id', $ids)
+ ->update(['bill_id' => $bill->id]);
+ }
+
/**
* Given a bill and a date, this method will tell you at which moment this bill expects its next
* transaction. Whether or not it is there already, is not relevant.
diff --git a/app/Repositories/Bill/BillRepositoryInterface.php b/app/Repositories/Bill/BillRepositoryInterface.php
index 19cd785ace..d6cea63eea 100644
--- a/app/Repositories/Bill/BillRepositoryInterface.php
+++ b/app/Repositories/Bill/BillRepositoryInterface.php
@@ -140,6 +140,15 @@ interface BillRepositoryInterface
*/
public function getPossiblyRelatedJournals(Bill $bill): Collection;
+ /**
+ * Return all rules for one bill
+ *
+ * @param Bill $bill
+ *
+ * @return Collection
+ */
+ public function getRulesForBill(Bill $bill): Collection;
+
/**
* Return all rules related to the bills in the collection, in an associative array:
* 5= billid
@@ -160,6 +169,14 @@ interface BillRepositoryInterface
*/
public function getYearAverage(Bill $bill, Carbon $date): string;
+ /**
+ * Link a set of journals to a bill.
+ *
+ * @param Bill $bill
+ * @param Collection $journals
+ */
+ public function linkCollectionToBill(Bill $bill, Collection $journals): void;
+
/**
* Given a bill and a date, this method will tell you at which moment this bill expects its next
* transaction. Whether or not it is there already, is not relevant.
diff --git a/app/TransactionRules/TransactionMatcher.php b/app/TransactionRules/TransactionMatcher.php
index 3ad8033ec5..83fc9c268b 100644
--- a/app/TransactionRules/TransactionMatcher.php
+++ b/app/TransactionRules/TransactionMatcher.php
@@ -54,7 +54,7 @@ class TransactionMatcher
* @return Collection
* @throws \FireflyIII\Exceptions\FireflyException
*/
- public function findTransactionsByRule()
+ public function findTransactionsByRule(): Collection
{
if (0 === count($this->rule->ruleTriggers)) {
return new Collection;
@@ -202,6 +202,10 @@ class TransactionMatcher
$collector = app(JournalCollectorInterface::class);
$collector->setUser(auth()->user());
$collector->setAllAssetAccounts()->setLimit($pageSize)->setPage($page)->setTypes($this->transactionTypes);
+
+
+
+
$set = $collector->getPaginatedJournals();
Log::debug(sprintf('Found %d journals to check. ', $set->count()));
diff --git a/composer.json b/composer.json
index 49c1ecdd6f..ba48c44044 100644
--- a/composer.json
+++ b/composer.json
@@ -68,7 +68,7 @@
"twig/twig": "1.*"
},
"require-dev": {
- "barryvdh/laravel-debugbar": "3.*",
+ "roave/security-advisories": "dev-master",
"barryvdh/laravel-ide-helper": "2.*",
"filp/whoops": "2.*",
"fzaninotto/faker": "1.*",
diff --git a/composer.lock b/composer.lock
index 4b66b09356..4d7f9be2ae 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "content-hash": "3de47eba99b9bbd1bfb0f129fbf3494a",
+ "content-hash": "b8f72583ba830928cfc33001fdd96409",
"packages": [
{
"name": "bacon/bacon-qr-code",
@@ -458,16 +458,16 @@
},
{
"name": "doctrine/dbal",
- "version": "v2.6.3",
+ "version": "v2.7.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
- "reference": "e3eed9b1facbb0ced3a0995244843a189e7d1b13"
+ "reference": "11037b4352c008373561dc6fc836834eed80c3b5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/e3eed9b1facbb0ced3a0995244843a189e7d1b13",
- "reference": "e3eed9b1facbb0ced3a0995244843a189e7d1b13",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/11037b4352c008373561dc6fc836834eed80c3b5",
+ "reference": "11037b4352c008373561dc6fc836834eed80c3b5",
"shasum": ""
},
"require": {
@@ -476,9 +476,11 @@
"php": "^7.1"
},
"require-dev": {
- "phpunit/phpunit": "^5.4.6",
+ "doctrine/coding-standard": "^4.0",
+ "phpunit/phpunit": "^7.0",
"phpunit/phpunit-mock-objects": "!=3.2.4,!=3.2.5",
- "symfony/console": "2.*||^3.0"
+ "symfony/console": "^2.0.5||^3.0",
+ "symfony/phpunit-bridge": "^3.4.5|^4.0.5"
},
"suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files."
@@ -489,7 +491,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.6.x-dev"
+ "dev-master": "2.7.x-dev"
}
},
"autoload": {
@@ -527,7 +529,7 @@
"persistence",
"queryobject"
],
- "time": "2017-11-19T13:38:54+00:00"
+ "time": "2018-04-07T18:44:18+00:00"
},
{
"name": "doctrine/inflector",
@@ -652,23 +654,23 @@
},
{
"name": "dragonmantank/cron-expression",
- "version": "v2.0.0",
+ "version": "v2.1.0",
"source": {
"type": "git",
"url": "https://github.com/dragonmantank/cron-expression.git",
- "reference": "8a84aee649c3a3ba03a721c1fb080e08dfbcd68b"
+ "reference": "3f00985deec8df53d4cc1e5c33619bda1ee309a5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8a84aee649c3a3ba03a721c1fb080e08dfbcd68b",
- "reference": "8a84aee649c3a3ba03a721c1fb080e08dfbcd68b",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/3f00985deec8df53d4cc1e5c33619bda1ee309a5",
+ "reference": "3f00985deec8df53d4cc1e5c33619bda1ee309a5",
"shasum": ""
},
"require": {
"php": ">=7.0.0"
},
"require-dev": {
- "phpunit/phpunit": "~5.7"
+ "phpunit/phpunit": "~6.4"
},
"type": "library",
"autoload": {
@@ -697,7 +699,7 @@
"cron",
"schedule"
],
- "time": "2017-10-12T15:59:13+00:00"
+ "time": "2018-04-06T15:51:55+00:00"
},
{
"name": "egulias/email-validator",
@@ -1085,16 +1087,16 @@
},
{
"name": "laravel/framework",
- "version": "v5.6.15",
+ "version": "v5.6.16",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "baa42cf6bdd942523fafece21ec16a1843c6db0f"
+ "reference": "fcdbc791bc3e113ada38ab0a1147141fb9ec2b16"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/baa42cf6bdd942523fafece21ec16a1843c6db0f",
- "reference": "baa42cf6bdd942523fafece21ec16a1843c6db0f",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/fcdbc791bc3e113ada38ab0a1147141fb9ec2b16",
+ "reference": "fcdbc791bc3e113ada38ab0a1147141fb9ec2b16",
"shasum": ""
},
"require": {
@@ -1159,6 +1161,7 @@
"aws/aws-sdk-php": "~3.0",
"doctrine/dbal": "~2.6",
"filp/whoops": "^2.1.4",
+ "league/flysystem-cached-adapter": "~1.0",
"mockery/mockery": "~1.0",
"moontoast/math": "^1.1",
"orchestra/testbench-core": "3.6.*",
@@ -1177,7 +1180,7 @@
"guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~6.0).",
"laravel/tinker": "Required to use the tinker console command (~1.0).",
"league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).",
- "league/flysystem-cached-adapter": "Required to use Flysystem caching (~1.0).",
+ "league/flysystem-cached-adapter": "Required to use the Flysystem cache (~1.0).",
"league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).",
"league/flysystem-sftp": "Required to use the Flysystem SFTP driver (~1.0).",
"nexmo/client": "Required to use the Nexmo transport (~1.0).",
@@ -1219,7 +1222,7 @@
"framework",
"laravel"
],
- "time": "2018-03-30T13:29:58+00:00"
+ "time": "2018-04-09T16:07:04+00:00"
},
{
"name": "laravel/passport",
@@ -1292,16 +1295,16 @@
},
{
"name": "laravelcollective/html",
- "version": "v5.6.5",
+ "version": "v5.6.6",
"source": {
"type": "git",
"url": "https://github.com/LaravelCollective/html.git",
- "reference": "623a150c91e2d3f92eeee9f9eda58a841e3cb548"
+ "reference": "b3a10245c791a211e5f8ec37117f4549cd22aabe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/LaravelCollective/html/zipball/623a150c91e2d3f92eeee9f9eda58a841e3cb548",
- "reference": "623a150c91e2d3f92eeee9f9eda58a841e3cb548",
+ "url": "https://api.github.com/repos/LaravelCollective/html/zipball/b3a10245c791a211e5f8ec37117f4549cd22aabe",
+ "reference": "b3a10245c791a211e5f8ec37117f4549cd22aabe",
"shasum": ""
},
"require": {
@@ -1356,7 +1359,7 @@
],
"description": "HTML and Form Builders for the Laravel Framework",
"homepage": "https://laravelcollective.com",
- "time": "2018-03-16T16:57:31+00:00"
+ "time": "2018-04-09T14:09:32+00:00"
},
{
"name": "lcobucci/jwt",
@@ -1406,7 +1409,7 @@
{
"name": "Luís Otávio Cobucci Oblonczyk",
"email": "lcobucci@gmail.com",
- "role": "Developer"
+ "role": "developer"
}
],
"description": "A simple library to work with JSON Web Token and JSON Web Signature",
@@ -1604,16 +1607,16 @@
},
{
"name": "league/flysystem",
- "version": "1.0.43",
+ "version": "1.0.44",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "1ce7cc142d906ba58dc54c82915d355a9191c8a8"
+ "reference": "168dbe519737221dc87d17385cde33073881fd02"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/1ce7cc142d906ba58dc54c82915d355a9191c8a8",
- "reference": "1ce7cc142d906ba58dc54c82915d355a9191c8a8",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/168dbe519737221dc87d17385cde33073881fd02",
+ "reference": "168dbe519737221dc87d17385cde33073881fd02",
"shasum": ""
},
"require": {
@@ -1684,7 +1687,7 @@
"sftp",
"storage"
],
- "time": "2018-03-01T10:27:04+00:00"
+ "time": "2018-04-06T09:58:14+00:00"
},
{
"name": "league/fractal",
@@ -2013,16 +2016,16 @@
},
{
"name": "paragonie/random_compat",
- "version": "v2.0.11",
+ "version": "v2.0.12",
"source": {
"type": "git",
"url": "https://github.com/paragonie/random_compat.git",
- "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8"
+ "reference": "258c89a6b97de7dfaf5b8c7607d0478e236b04fb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/paragonie/random_compat/zipball/5da4d3c796c275c55f057af5a643ae297d96b4d8",
- "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8",
+ "url": "https://api.github.com/repos/paragonie/random_compat/zipball/258c89a6b97de7dfaf5b8c7607d0478e236b04fb",
+ "reference": "258c89a6b97de7dfaf5b8c7607d0478e236b04fb",
"shasum": ""
},
"require": {
@@ -2057,7 +2060,7 @@
"pseudorandom",
"random"
],
- "time": "2017-09-27T21:40:39+00:00"
+ "time": "2018-04-04T21:24:14+00:00"
},
{
"name": "phpseclib/phpseclib",
@@ -2735,16 +2738,16 @@
},
{
"name": "symfony/console",
- "version": "v4.0.6",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "555c8dbe0ae9e561740451eabdbed2cc554b6a51"
+ "reference": "aad9a6fe47319f22748fd764f52d3a7ca6fa6b64"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/555c8dbe0ae9e561740451eabdbed2cc554b6a51",
- "reference": "555c8dbe0ae9e561740451eabdbed2cc554b6a51",
+ "url": "https://api.github.com/repos/symfony/console/zipball/aad9a6fe47319f22748fd764f52d3a7ca6fa6b64",
+ "reference": "aad9a6fe47319f22748fd764f52d3a7ca6fa6b64",
"shasum": ""
},
"require": {
@@ -2799,20 +2802,20 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
- "time": "2018-02-26T15:55:47+00:00"
+ "time": "2018-04-03T05:24:00+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v4.0.6",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "c69f1e93aa898fd9fec627ebef467188151c8dc2"
+ "reference": "03f965583147957f1ecbad7ea1c9d6fd5e525ec2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/c69f1e93aa898fd9fec627ebef467188151c8dc2",
- "reference": "c69f1e93aa898fd9fec627ebef467188151c8dc2",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/03f965583147957f1ecbad7ea1c9d6fd5e525ec2",
+ "reference": "03f965583147957f1ecbad7ea1c9d6fd5e525ec2",
"shasum": ""
},
"require": {
@@ -2852,20 +2855,20 @@
],
"description": "Symfony CssSelector Component",
"homepage": "https://symfony.com",
- "time": "2018-02-03T14:58:37+00:00"
+ "time": "2018-03-19T22:35:49+00:00"
},
{
"name": "symfony/debug",
- "version": "v4.0.6",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug.git",
- "reference": "1721e4e7effb23480966690cdcdc7d2a4152d489"
+ "reference": "5961d02d48828671f5d8a7805e06579d692f6ede"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/debug/zipball/1721e4e7effb23480966690cdcdc7d2a4152d489",
- "reference": "1721e4e7effb23480966690cdcdc7d2a4152d489",
+ "url": "https://api.github.com/repos/symfony/debug/zipball/5961d02d48828671f5d8a7805e06579d692f6ede",
+ "reference": "5961d02d48828671f5d8a7805e06579d692f6ede",
"shasum": ""
},
"require": {
@@ -2908,20 +2911,20 @@
],
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
- "time": "2018-02-28T21:50:02+00:00"
+ "time": "2018-04-03T05:24:00+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v4.0.6",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "85eaf6a8ec915487abac52e133efc4a268204428"
+ "reference": "63353a71073faf08f62caab4e6889b06a787f07b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/85eaf6a8ec915487abac52e133efc4a268204428",
- "reference": "85eaf6a8ec915487abac52e133efc4a268204428",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/63353a71073faf08f62caab4e6889b06a787f07b",
+ "reference": "63353a71073faf08f62caab4e6889b06a787f07b",
"shasum": ""
},
"require": {
@@ -2971,20 +2974,20 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
- "time": "2018-02-14T14:11:10+00:00"
+ "time": "2018-04-06T07:35:43+00:00"
},
{
"name": "symfony/finder",
- "version": "v4.0.6",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "44a796d2ecc2a16a5fc8f2956a34ee617934d55f"
+ "reference": "ca27c02b7a3fef4828c998c2ff9ba7aae1641c49"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/44a796d2ecc2a16a5fc8f2956a34ee617934d55f",
- "reference": "44a796d2ecc2a16a5fc8f2956a34ee617934d55f",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/ca27c02b7a3fef4828c998c2ff9ba7aae1641c49",
+ "reference": "ca27c02b7a3fef4828c998c2ff9ba7aae1641c49",
"shasum": ""
},
"require": {
@@ -3020,20 +3023,20 @@
],
"description": "Symfony Finder Component",
"homepage": "https://symfony.com",
- "time": "2018-03-05T18:28:26+00:00"
+ "time": "2018-04-04T05:10:37+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v4.0.6",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "6c181e81a3a9a7996c62ebd7803592536e729c5a"
+ "reference": "d0864a82e5891ab61d31eecbaa48bed5a09b8e6c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6c181e81a3a9a7996c62ebd7803592536e729c5a",
- "reference": "6c181e81a3a9a7996c62ebd7803592536e729c5a",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d0864a82e5891ab61d31eecbaa48bed5a09b8e6c",
+ "reference": "d0864a82e5891ab61d31eecbaa48bed5a09b8e6c",
"shasum": ""
},
"require": {
@@ -3073,20 +3076,20 @@
],
"description": "Symfony HttpFoundation Component",
"homepage": "https://symfony.com",
- "time": "2018-03-05T16:01:10+00:00"
+ "time": "2018-04-03T05:24:00+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v4.0.6",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "2a1ebfe8c37240500befcb17bceb3893adacffa3"
+ "reference": "6dd620d96d64456075536ffe3c6c4658dd689021"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2a1ebfe8c37240500befcb17bceb3893adacffa3",
- "reference": "2a1ebfe8c37240500befcb17bceb3893adacffa3",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6dd620d96d64456075536ffe3c6c4658dd689021",
+ "reference": "6dd620d96d64456075536ffe3c6c4658dd689021",
"shasum": ""
},
"require": {
@@ -3159,7 +3162,7 @@
],
"description": "Symfony HttpKernel Component",
"homepage": "https://symfony.com",
- "time": "2018-03-05T22:27:01+00:00"
+ "time": "2018-04-06T16:25:03+00:00"
},
{
"name": "symfony/polyfill-mbstring",
@@ -3385,16 +3388,16 @@
},
{
"name": "symfony/process",
- "version": "v4.0.6",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "6ed08502a7c9559da8e60ea343bdbd19c3350b3e"
+ "reference": "d7dc1ee5dfe9f732cb1bba7310f5b99f2b7a6d25"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/6ed08502a7c9559da8e60ea343bdbd19c3350b3e",
- "reference": "6ed08502a7c9559da8e60ea343bdbd19c3350b3e",
+ "url": "https://api.github.com/repos/symfony/process/zipball/d7dc1ee5dfe9f732cb1bba7310f5b99f2b7a6d25",
+ "reference": "d7dc1ee5dfe9f732cb1bba7310f5b99f2b7a6d25",
"shasum": ""
},
"require": {
@@ -3430,7 +3433,7 @@
],
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
- "time": "2018-02-19T12:18:43+00:00"
+ "time": "2018-04-03T05:24:00+00:00"
},
{
"name": "symfony/psr-http-message-bridge",
@@ -3494,16 +3497,16 @@
},
{
"name": "symfony/routing",
- "version": "v4.0.6",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "9c6268c1970c7e507bedc8946bece32a7db23515"
+ "reference": "0663036dd57dbfd4e9ff29f75bbd5dd3253ebe71"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/9c6268c1970c7e507bedc8946bece32a7db23515",
- "reference": "9c6268c1970c7e507bedc8946bece32a7db23515",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/0663036dd57dbfd4e9ff29f75bbd5dd3253ebe71",
+ "reference": "0663036dd57dbfd4e9ff29f75bbd5dd3253ebe71",
"shasum": ""
},
"require": {
@@ -3568,11 +3571,11 @@
"uri",
"url"
],
- "time": "2018-02-28T21:50:02+00:00"
+ "time": "2018-04-04T13:50:32+00:00"
},
{
"name": "symfony/translation",
- "version": "v4.0.6",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
@@ -3640,16 +3643,16 @@
},
{
"name": "symfony/var-dumper",
- "version": "v4.0.6",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "c7d89044ed6ed3b7d8b558d509cca0666b947e58"
+ "reference": "e1b4d008100f4d203cc38b0d793ad6252d8d8af0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c7d89044ed6ed3b7d8b558d509cca0666b947e58",
- "reference": "c7d89044ed6ed3b7d8b558d509cca0666b947e58",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e1b4d008100f4d203cc38b0d793ad6252d8d8af0",
+ "reference": "e1b4d008100f4d203cc38b0d793ad6252d8d8af0",
"shasum": ""
},
"require": {
@@ -3705,7 +3708,7 @@
"debug",
"dump"
],
- "time": "2018-02-26T15:55:47+00:00"
+ "time": "2018-04-04T05:10:37+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@@ -3923,74 +3926,6 @@
}
],
"packages-dev": [
- {
- "name": "barryvdh/laravel-debugbar",
- "version": "v3.1.4",
- "source": {
- "type": "git",
- "url": "https://github.com/barryvdh/laravel-debugbar.git",
- "reference": "7a91480cc6e597caed5117a3c5d685f06d35c5a1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/7a91480cc6e597caed5117a3c5d685f06d35c5a1",
- "reference": "7a91480cc6e597caed5117a3c5d685f06d35c5a1",
- "shasum": ""
- },
- "require": {
- "illuminate/routing": "5.5.x|5.6.x",
- "illuminate/session": "5.5.x|5.6.x",
- "illuminate/support": "5.5.x|5.6.x",
- "maximebf/debugbar": "~1.15.0",
- "php": ">=7.0",
- "symfony/debug": "^3|^4",
- "symfony/finder": "^3|^4"
- },
- "require-dev": {
- "illuminate/framework": "5.5.x"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.2-dev"
- },
- "laravel": {
- "providers": [
- "Barryvdh\\Debugbar\\ServiceProvider"
- ],
- "aliases": {
- "Debugbar": "Barryvdh\\Debugbar\\Facade"
- }
- }
- },
- "autoload": {
- "psr-4": {
- "Barryvdh\\Debugbar\\": "src/"
- },
- "files": [
- "src/helpers.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Barry vd. Heuvel",
- "email": "barryvdh@gmail.com"
- }
- ],
- "description": "PHP Debugbar integration for Laravel",
- "keywords": [
- "debug",
- "debugbar",
- "laravel",
- "profiler",
- "webprofiler"
- ],
- "time": "2018-03-06T08:35:31+00:00"
- },
{
"name": "barryvdh/laravel-ide-helper",
"version": "v2.4.3",
@@ -4326,67 +4261,6 @@
],
"time": "2016-01-20T08:20:44+00:00"
},
- {
- "name": "maximebf/debugbar",
- "version": "v1.15.0",
- "source": {
- "type": "git",
- "url": "https://github.com/maximebf/php-debugbar.git",
- "reference": "30e7d60937ee5f1320975ca9bc7bcdd44d500f07"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/30e7d60937ee5f1320975ca9bc7bcdd44d500f07",
- "reference": "30e7d60937ee5f1320975ca9bc7bcdd44d500f07",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0",
- "psr/log": "^1.0",
- "symfony/var-dumper": "^2.6|^3.0|^4.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.0|^5.0"
- },
- "suggest": {
- "kriswallsmith/assetic": "The best way to manage assets",
- "monolog/monolog": "Log using Monolog",
- "predis/predis": "Redis storage"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.14-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "DebugBar\\": "src/DebugBar/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Maxime Bouroumeau-Fuseau",
- "email": "maxime.bouroumeau@gmail.com",
- "homepage": "http://maximebf.com"
- },
- {
- "name": "Barry vd. Heuvel",
- "email": "barryvdh@gmail.com"
- }
- ],
- "description": "Debug bar in the browser for php application",
- "homepage": "https://github.com/maximebf/php-debugbar",
- "keywords": [
- "debug",
- "debugbar"
- ],
- "time": "2017-12-15T11:13:46+00:00"
- },
{
"name": "mockery/mockery",
"version": "1.0",
@@ -4899,16 +4773,16 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "6.0.1",
+ "version": "6.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "f8ca4b604baf23dab89d87773c28cc07405189ba"
+ "reference": "774a82c0c5da4c1c7701790c262035d235ab7856"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f8ca4b604baf23dab89d87773c28cc07405189ba",
- "reference": "f8ca4b604baf23dab89d87773c28cc07405189ba",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/774a82c0c5da4c1c7701790c262035d235ab7856",
+ "reference": "774a82c0c5da4c1c7701790c262035d235ab7856",
"shasum": ""
},
"require": {
@@ -4919,7 +4793,7 @@
"phpunit/php-text-template": "^1.2.1",
"phpunit/php-token-stream": "^3.0",
"sebastian/code-unit-reverse-lookup": "^1.0.1",
- "sebastian/environment": "^3.0",
+ "sebastian/environment": "^3.1",
"sebastian/version": "^2.0.1",
"theseer/tokenizer": "^1.1"
},
@@ -4958,7 +4832,7 @@
"testing",
"xunit"
],
- "time": "2018-02-02T07:01:41+00:00"
+ "time": "2018-04-06T15:39:20+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -5148,16 +5022,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "7.0.3",
+ "version": "7.1.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "536f4d853c12d8189963435088e8ff7c0daeab2e"
+ "reference": "6a17c170fb92845896e1b3b00fcb462cd4b3c017"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/536f4d853c12d8189963435088e8ff7c0daeab2e",
- "reference": "536f4d853c12d8189963435088e8ff7c0daeab2e",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6a17c170fb92845896e1b3b00fcb462cd4b3c017",
+ "reference": "6a17c170fb92845896e1b3b00fcb462cd4b3c017",
"shasum": ""
},
"require": {
@@ -5175,7 +5049,7 @@
"phpunit/php-file-iterator": "^1.4.3",
"phpunit/php-text-template": "^1.2.1",
"phpunit/php-timer": "^2.0",
- "phpunit/phpunit-mock-objects": "^6.0",
+ "phpunit/phpunit-mock-objects": "^6.1",
"sebastian/comparator": "^2.1",
"sebastian/diff": "^3.0",
"sebastian/environment": "^3.1",
@@ -5198,7 +5072,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "7.0-dev"
+ "dev-master": "7.1-dev"
}
},
"autoload": {
@@ -5224,20 +5098,20 @@
"testing",
"xunit"
],
- "time": "2018-03-26T07:36:48+00:00"
+ "time": "2018-04-10T11:40:22+00:00"
},
{
"name": "phpunit/phpunit-mock-objects",
- "version": "6.0.1",
+ "version": "6.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
- "reference": "e3249dedc2d99259ccae6affbc2684eac37c2e53"
+ "reference": "3f5ca97eee66a07951d018f6726017629c85c86d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/e3249dedc2d99259ccae6affbc2684eac37c2e53",
- "reference": "e3249dedc2d99259ccae6affbc2684eac37c2e53",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/3f5ca97eee66a07951d018f6726017629c85c86d",
+ "reference": "3f5ca97eee66a07951d018f6726017629c85c86d",
"shasum": ""
},
"require": {
@@ -5255,7 +5129,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "6.0.x-dev"
+ "dev-master": "6.1-dev"
}
},
"autoload": {
@@ -5280,7 +5154,167 @@
"mock",
"xunit"
],
- "time": "2018-02-15T05:27:38+00:00"
+ "time": "2018-04-06T08:14:40+00:00"
+ },
+ {
+ "name": "roave/security-advisories",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Roave/SecurityAdvisories.git",
+ "reference": "c83f6aa0ed08f680c012656d411d1b7c94003012"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/c83f6aa0ed08f680c012656d411d1b7c94003012",
+ "reference": "c83f6aa0ed08f680c012656d411d1b7c94003012",
+ "shasum": ""
+ },
+ "conflict": {
+ "3f/pygmentize": "<1.2",
+ "adodb/adodb-php": "<5.20.6",
+ "amphp/artax": "<1.0.6|>=2,<2.0.6",
+ "amphp/http": "<1.0.1",
+ "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99",
+ "aws/aws-sdk-php": ">=3,<3.2.1",
+ "bugsnag/bugsnag-laravel": ">=2,<2.0.2",
+ "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.0.15|>=3.1,<3.1.4",
+ "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4",
+ "cartalyst/sentry": "<=2.1.6",
+ "codeigniter/framework": "<=3.0.6",
+ "composer/composer": "<=1.0.0-alpha11",
+ "contao-components/mediaelement": ">=2.14.2,<2.21.1",
+ "contao/core": ">=2,<3.5.32",
+ "contao/core-bundle": ">=4,<4.4.8",
+ "contao/listing-bundle": ">=4,<4.4.8",
+ "contao/newsletter-bundle": ">=4,<4.1",
+ "doctrine/annotations": ">=1,<1.2.7",
+ "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2",
+ "doctrine/common": ">=2,<2.4.3|>=2.5,<2.5.1",
+ "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2",
+ "doctrine/doctrine-bundle": "<1.5.2",
+ "doctrine/doctrine-module": "<=0.7.1",
+ "doctrine/mongodb-odm": ">=1,<1.0.2",
+ "doctrine/mongodb-odm-bundle": ">=2,<3.0.1",
+ "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1",
+ "dompdf/dompdf": ">=0.6,<0.6.2",
+ "drupal/core": ">=7,<7.58|>=8,<8.4.6|>=8.5,<8.5.1",
+ "drupal/drupal": ">=7,<7.58|>=8,<8.4.6|>=8.5,<8.5.1",
+ "erusev/parsedown": "<1.7",
+ "ezsystems/ezpublish-legacy": ">=5.3,<5.3.12.3|>=5.4,<5.4.11.3|>=2017.8,<2017.8.1.1|>=2017.12,<2017.12.2.1",
+ "firebase/php-jwt": "<2",
+ "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2",
+ "friendsofsymfony/user-bundle": ">=1.2,<1.3.5",
+ "gree/jose": "<=2.2",
+ "gregwar/rst": "<1.0.3",
+ "guzzlehttp/guzzle": ">=6,<6.2.1|>=4.0.0-rc2,<4.2.4|>=5,<5.3.1",
+ "illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10",
+ "illuminate/database": ">=4,<4.0.99|>=4.1,<4.1.29",
+ "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15",
+ "joomla/session": "<1.3.1",
+ "laravel/framework": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15",
+ "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10",
+ "magento/magento1ce": ">=1.5.0.1,<1.9.3.2",
+ "magento/magento1ee": ">=1.9,<1.14.3.2",
+ "magento/magento2ce": ">=2,<2.2",
+ "monolog/monolog": ">=1.8,<1.12",
+ "namshi/jose": "<2.2",
+ "onelogin/php-saml": "<2.10.4",
+ "oro/crm": ">=1.7,<1.7.4",
+ "oro/platform": ">=1.7,<1.7.4",
+ "padraic/humbug_get_contents": "<1.1.2",
+ "pagarme/pagarme-php": ">=0,<3",
+ "paragonie/random_compat": "<2",
+ "phpmailer/phpmailer": ">=5,<5.2.24",
+ "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3",
+ "phpxmlrpc/extras": "<0.6.1",
+ "propel/propel": ">=2.0.0-alpha1,<=2.0.0-alpha7",
+ "propel/propel1": ">=1,<=1.7.1",
+ "pusher/pusher-php-server": "<2.2.1",
+ "sabre/dav": ">=1.6,<1.6.99|>=1.7,<1.7.11|>=1.8,<1.8.9",
+ "shopware/shopware": "<5.3.7",
+ "silverstripe/cms": ">=3,<=3.0.11|>=3.1,<3.1.11",
+ "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3",
+ "silverstripe/framework": ">=3,<3.3",
+ "silverstripe/userforms": "<3",
+ "simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4",
+ "simplesamlphp/simplesamlphp": "<1.15.2",
+ "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1",
+ "socalnick/scn-social-auth": "<1.15.2",
+ "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1",
+ "stormpath/sdk": ">=0,<9.9.99",
+ "swiftmailer/swiftmailer": ">=4,<5.4.5",
+ "symfony/dependency-injection": ">=2,<2.0.17",
+ "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13",
+ "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2",
+ "symfony/http-foundation": ">=2,<2.3.27|>=2.4,<2.5.11|>=2.6,<2.6.6",
+ "symfony/http-kernel": ">=2,<2.3.29|>=2.4,<2.5.12|>=2.6,<2.6.8",
+ "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13",
+ "symfony/routing": ">=2,<2.0.19",
+ "symfony/security": ">=2,<2.0.25|>=2.1,<2.1.13|>=2.2,<2.2.9|>=2.3,<2.3.37|>=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8.23,<2.8.25|>=3.2.10,<3.2.12|>=3.3.3,<3.3.5",
+ "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<2.8.6|>=2.8.23,<2.8.25|>=3,<3.0.6|>=3.2.10,<3.2.12|>=3.3.3,<3.3.5",
+ "symfony/security-csrf": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13",
+ "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13",
+ "symfony/serializer": ">=2,<2.0.11",
+ "symfony/symfony": ">=2,<2.3.41|>=2.4,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13",
+ "symfony/translation": ">=2,<2.0.17",
+ "symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3",
+ "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4",
+ "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7",
+ "thelia/backoffice-default-template": ">=2.1,<2.1.2",
+ "thelia/thelia": ">=2.1.0-beta1,<2.1.3|>=2.1,<2.1.2",
+ "titon/framework": ">=0,<9.9.99",
+ "twig/twig": "<1.20",
+ "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.22|>=8,<8.7.5",
+ "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.10|>=3.1,<3.1.7|>=3.2,<3.2.7|>=3.3,<3.3.5",
+ "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4",
+ "willdurand/js-translation-bundle": "<2.1.1",
+ "yiisoft/yii": ">=1.1.14,<1.1.15",
+ "yiisoft/yii2": "<2.0.15",
+ "yiisoft/yii2-bootstrap": "<2.0.4",
+ "yiisoft/yii2-dev": "<2.0.15",
+ "yiisoft/yii2-elasticsearch": "<2.0.5",
+ "yiisoft/yii2-gii": "<2.0.4",
+ "yiisoft/yii2-jui": "<2.0.4",
+ "yiisoft/yii2-redis": "<2.0.8",
+ "zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3",
+ "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2",
+ "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2",
+ "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5",
+ "zendframework/zend-diactoros": ">=1,<1.0.4",
+ "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1",
+ "zendframework/zend-http": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.3,<2.3.8|>=2.4,<2.4.1",
+ "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6",
+ "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3",
+ "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2",
+ "zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1",
+ "zendframework/zend-session": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.9|>=2.3,<2.3.4",
+ "zendframework/zend-validator": ">=2.3,<2.3.6",
+ "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1",
+ "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6",
+ "zendframework/zendframework": ">=2,<2.4.11|>=2.5,<2.5.1",
+ "zendframework/zendframework1": "<1.12.20",
+ "zendframework/zendopenid": ">=2,<2.0.2",
+ "zendframework/zendxml": ">=1,<1.0.1",
+ "zetacomponents/mail": "<1.8.2",
+ "zf-commons/zfc-user": "<1.2.2",
+ "zfcampus/zf-apigility-doctrine": ">=1,<1.0.3",
+ "zfr/zfr-oauth2-server-module": "<0.1.2"
+ },
+ "type": "metapackage",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "role": "maintainer"
+ }
+ ],
+ "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it",
+ "time": "2018-04-02T06:47:13+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
@@ -5847,7 +5881,7 @@
},
{
"name": "symfony/class-loader",
- "version": "v3.4.6",
+ "version": "v3.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/class-loader.git",
@@ -5903,16 +5937,16 @@
},
{
"name": "symfony/config",
- "version": "v4.0.6",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
- "reference": "289eadd3771f7682ea2540e4925861c18ec5b4d0"
+ "reference": "7c19370ab04e9ac05b74a504198e165f5ccf6dd8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/289eadd3771f7682ea2540e4925861c18ec5b4d0",
- "reference": "289eadd3771f7682ea2540e4925861c18ec5b4d0",
+ "url": "https://api.github.com/repos/symfony/config/zipball/7c19370ab04e9ac05b74a504198e165f5ccf6dd8",
+ "reference": "7c19370ab04e9ac05b74a504198e165f5ccf6dd8",
"shasum": ""
},
"require": {
@@ -5961,11 +5995,11 @@
],
"description": "Symfony Config Component",
"homepage": "https://symfony.com",
- "time": "2018-02-04T16:43:51+00:00"
+ "time": "2018-03-19T22:35:49+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v4.0.6",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
@@ -6014,7 +6048,7 @@
},
{
"name": "symfony/stopwatch",
- "version": "v4.0.6",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
@@ -6063,16 +6097,16 @@
},
{
"name": "symfony/yaml",
- "version": "v4.0.6",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "de5f125ea39de846b90b313b2cfb031a0152d223"
+ "reference": "8b34ebb5989df61cbd77eff29a02c4db9ac1069c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/de5f125ea39de846b90b313b2cfb031a0152d223",
- "reference": "de5f125ea39de846b90b313b2cfb031a0152d223",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/8b34ebb5989df61cbd77eff29a02c4db9ac1069c",
+ "reference": "8b34ebb5989df61cbd77eff29a02c4db9ac1069c",
"shasum": ""
},
"require": {
@@ -6117,7 +6151,7 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
- "time": "2018-02-19T20:08:53+00:00"
+ "time": "2018-04-03T05:24:00+00:00"
},
{
"name": "theseer/tokenizer",
@@ -6212,7 +6246,9 @@
],
"aliases": [],
"minimum-stability": "stable",
- "stability-flags": [],
+ "stability-flags": {
+ "roave/security-advisories": 20
+ },
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
diff --git a/config/firefly.php b/config/firefly.php
index 7d0f8c530d..b4376d888c 100644
--- a/config/firefly.php
+++ b/config/firefly.php
@@ -88,8 +88,8 @@ return [
'is_demo_site' => false,
],
'encryption' => null === env('USE_ENCRYPTION') || env('USE_ENCRYPTION') === true,
- 'version' => '4.7.2.2',
- 'api_version' => '0.1',
+ 'version' => '4.7.3',
+ 'api_version' => '0.2',
'db_version' => 3,
'maxUploadSize' => 15242880,
'allowedMimes' => [
diff --git a/config/import.php b/config/import.php
index b6a05b62dc..5ea6abe6da 100644
--- a/config/import.php
+++ b/config/import.php
@@ -69,7 +69,7 @@ return [
],
],
'bunq' => [
- 'server' => 'api.bunq.com',
+ 'server' => 'sandbox.public.api.bunq.com', // sandbox.public.api.bunq.com - api.bunq.com
'version' => 'v1',
],
],
diff --git a/config/intro.php b/config/intro.php
index 7dcdac2289..b1d4eb7515 100644
--- a/config/intro.php
+++ b/config/intro.php
@@ -124,6 +124,7 @@ return [
// bills: index, create, show
'bills_index' => [
+ 'rules' => ['element' => '.rules'],
'paid_in_period' => ['element' => '.paid_in_period'],
'expected_in_period' => ['element' => '.expected_in_period'],
],
diff --git a/public/js/ff/rules/create-edit.js b/public/js/ff/rules/create-edit.js
index ef859e255c..a2d5b89451 100644
--- a/public/js/ff/rules/create-edit.js
+++ b/public/js/ff/rules/create-edit.js
@@ -310,6 +310,13 @@ function createAutoComplete(input, URI) {
function testRuleTriggers() {
"use strict";
+ // find the button:
+ var button = $('.test_rule_triggers');
+
+ // replace with spinner. fa-spin fa-spinner
+ button.html(' ' + testRuleTriggersText);
+ button.attr('disabled', 'disabled');
+
// Serialize all trigger data
var triggerData = $(".rule-trigger-tbody").find("input[type=text], input[type=checkbox], select").serializeArray();
@@ -319,7 +326,7 @@ function testRuleTriggers() {
// Set title and body
modal.find(".transactions-list").html(data.html);
-
+ button.attr('disabled', '');
// Show warning if appropriate
if (data.warning) {
modal.find(".transaction-warning .warning-contents").text(data.warning);
@@ -327,7 +334,8 @@ function testRuleTriggers() {
} else {
modal.find(".transaction-warning").hide();
}
-
+ button.removeAttr('disabled');
+ button.html(' ' + testRuleTriggersText);
// Show the modal dialog
modal.modal();
}).fail(function () {
diff --git a/resources/views/bills/show.twig b/resources/views/bills/show.twig
index accc2fee36..14cb9384a0 100644
--- a/resources/views/bills/show.twig
+++ b/resources/views/bills/show.twig
@@ -27,11 +27,7 @@
- {{ 'matching_on'|_ }}
- {% for word in object.data.match %}
- {{ word }}
- {% endfor %}
- {{ trans('firefly.between_amounts', {low: object.data.amount_min|formatAmount, high: object.data.amount_max|formatAmount })|raw }}
+ {{ trans('firefly.match_between_amounts', {low: object.data.amount_min|formatAmount, high: object.data.amount_max|formatAmount })|raw }}
{{ 'repeats'|_ }}
{{ trans('firefly.repeat_freq_' ~object.data.repeat_freq) }}.
|
@@ -60,8 +56,8 @@
{{ 'next_expected_match'|_ }} |
{% if object.data.next_expected_match|length > 0 %}
- {{ formatDate(object.data.next_expected_match, monthAndDayFormat) }}
- {% else %}
+ {{ formatDate(object.data.next_expected_match, monthAndDayFormat) }}
+ {% else %}
{{ 'unknown'|_ }}
{% endif %}
|
@@ -79,21 +75,19 @@