diff --git a/.prettierrc.json b/.prettierrc.json
new file mode 100644
index 0000000..a72a71c
--- /dev/null
+++ b/.prettierrc.json
@@ -0,0 +1,6 @@
+{
+ "tabWidth": 2,
+ "useTabs": false,
+ "semi": true,
+ "singleQuote": false
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..0a77011
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "editor.tabSize": 2
+}
\ No newline at end of file
diff --git a/docs/toast_notification.md b/docs/toast_notification.md
new file mode 100644
index 0000000..94915b8
--- /dev/null
+++ b/docs/toast_notification.md
@@ -0,0 +1,25 @@
+# Create a toast notification
+
+we're using [vue-toastification](https://github.com/Maronato/vue-toastification) to create toast notifications.
+
+``component.vue``
+```html
+
+
+ Open Toast
+
+
+
+
+
+```
diff --git a/src/app/Enums/ModifiedEnum.php b/src/app/Enums/ModifiedEnum.php
new file mode 100644
index 0000000..a886364
--- /dev/null
+++ b/src/app/Enums/ModifiedEnum.php
@@ -0,0 +1,10 @@
+ 200,
+ static::created => 201,
static::error => 400,
static::unauthorized => 401,
static::forbidden => 403,
@@ -30,6 +32,7 @@ public function label(): string
return match ($this) {
static::success => 'Success',
static::error => 'Error',
+ static::created => 'Created',
static::unauthorized => 'Unauthorized',
static::forbidden => 'Forbidden',
static::notFound => 'Not Found',
diff --git a/src/app/Http/Controllers/FineController.php b/src/app/Http/Controllers/FineController.php
index cbfbf79..70204d7 100644
--- a/src/app/Http/Controllers/FineController.php
+++ b/src/app/Http/Controllers/FineController.php
@@ -2,11 +2,16 @@
namespace App\Http\Controllers;
+use App\Enums\ModifiedEnum;
+use App\Enums\ResponseStatus;
+use App\Http\Requests\FineRequest;
use App\Models\Fine;
use Illuminate\Http\Request;
+use App\Traits\CommonTrait;
class FineController extends Controller
{
+ use CommonTrait;
/**
* Display a listing of the resource.
*/
@@ -26,9 +31,21 @@ public function create()
/**
* Store a newly created resource in storage.
*/
- public function store(Request $request)
+ public function store(FineRequest $request)
{
- //
+ $validated = $request->validated();
+ $fine = Fine::create([
+ 'grant_id' => $validated['grant_id'],
+ 'amount' => $validated['amount'],
+ 'modified_kind' => ModifiedEnum::inserted,
+ 'modified_user' => Auth()->id(),
+ ]);
+
+ return $this->CommonResponse(
+ ResponseStatus::created,
+ 'Fine created successfully',
+ ['fine' => $fine],
+ );
}
/**
@@ -52,7 +69,20 @@ public function edit(Fine $fine)
*/
public function update(Request $request, Fine $fine)
{
- //
+ $validated = $request->validated();
+
+ //TODO: Check: do we want to update the grant_id?
+ $fine->update([
+ 'amount' => $validated['amount'],
+ 'modified_kind' => ModifiedEnum::modified,
+ 'modified_user' => Auth()->id(),
+ ]);
+
+ return $this->CommonResponse(
+ ResponseStatus::success,
+ 'Fine updated successfully',
+ ['fine' => $fine],
+ );
}
/**
@@ -60,6 +90,12 @@ public function update(Request $request, Fine $fine)
*/
public function destroy(Fine $fine)
{
- //
+ $fine->delete();
+
+ return $this->CommonResponse(
+ ResponseStatus::success,
+ 'Fine deleted successfully',
+ null,
+ );
}
}
diff --git a/src/app/Http/Controllers/GrantController.php b/src/app/Http/Controllers/GrantController.php
index 58d0395..a7ce175 100644
--- a/src/app/Http/Controllers/GrantController.php
+++ b/src/app/Http/Controllers/GrantController.php
@@ -2,11 +2,16 @@
namespace App\Http\Controllers;
+use App\Enums\ModifiedEnum;
+use App\Enums\ResponseStatus;
+use App\Http\Requests\GrantRequest;
use App\Models\Grant;
use Illuminate\Http\Request;
+use App\Traits\CommonTrait;
class GrantController extends Controller
{
+ use CommonTrait;
/**
* Display a listing of the resource.
*/
@@ -26,9 +31,21 @@ public function create()
/**
* Store a newly created resource in storage.
*/
- public function store(Request $request)
+ public function store(GrantRequest $request)
{
- //
+ $validated = $request->validated();
+ $grant = Grant::create([
+ 'user_id' => $validated['user_id'],
+ 'item_id' => $validated['item_id'],
+ 'borrowed_date' => $validated['borrowed_date'],
+ 'return_date' => $validated['return_date'],
+ 'modified_kind' => ModifiedEnum::inserted,
+ 'modified_user' => Auth()->id(),
+ ]);
+ return $this->CommonResponse(
+ ResponseStatus::created,
+ 'Grant created successfully',
+ $grant);
}
/**
@@ -50,9 +67,23 @@ public function edit(Grant $grant)
/**
* Update the specified resource in storage.
*/
- public function update(Request $request, Grant $grant)
+ public function update(GrantRequest $request, Grant $grant)
{
- //
+ $validated = $request->validated();
+
+ $grant->update([
+ 'user_id' => $validated['user_id'],
+ 'item_id' => $validated['item_id'],
+ 'borrowed_date' => $validated['borrowed_date'],
+ 'return_date' => $validated['return_date'],
+ 'modified_kind' => ModifiedEnum::modified,
+ 'modified_user' => Auth()->id(),
+ ]);
+
+ return $this->CommonResponse(
+ ResponseStatus::success,
+ 'Grant updated successfully',
+ ['grant' => $grant]);
}
/**
@@ -60,6 +91,10 @@ public function update(Request $request, Grant $grant)
*/
public function destroy(Grant $grant)
{
- //
+ $grant->delete();
+ return $this->CommonResponse(
+ ResponseStatus::success,
+ 'Grant deleted successfully',
+ null);
}
}
diff --git a/src/app/Http/Controllers/ItemController.php b/src/app/Http/Controllers/ItemController.php
index 6b049c9..5994b9d 100644
--- a/src/app/Http/Controllers/ItemController.php
+++ b/src/app/Http/Controllers/ItemController.php
@@ -2,17 +2,21 @@
namespace App\Http\Controllers;
+use App\Enums\ModifiedEnum;
+use App\Enums\ResponseStatus;
+use App\Http\Requests\ItemRequest;
use App\Models\Item;
-use Illuminate\Http\Request;
+use App\Traits\CommonTrait;
class ItemController extends Controller
{
+ use CommonTrait;
/**
* Display a listing of the resource.
*/
public function index()
{
- //
+ // render page
}
/**
@@ -20,15 +24,28 @@ public function index()
*/
public function create()
{
- //
+ // render page
}
/**
* Store a newly created resource in storage.
*/
- public function store(Request $request)
+ public function store(ItemRequest $request)
{
- //
+ $validated = $request->validated();
+
+ $item = Item::create([
+ 'Identifier' => '', //TODO: Use trait to generate valid identifier
+ 'type' => $validated['type'],
+ 'name' => $validated['name'],
+ 'description' => $validated['description'],
+ 'category' => $validated['category'],
+ 'ISBN' => $validated['ISBN'],
+ 'rating' => $validated['rating'],
+ 'borrowing_time' => $validated['borrowing_time'],
+ 'modified_kind' => 'I',
+ 'modified_user' => auth()->user()->id,
+ ]);
}
/**
@@ -36,23 +53,34 @@ public function store(Request $request)
*/
public function show(Item $item)
{
- //
- }
-
- /**
- * Show the form for editing the specified resource.
- */
- public function edit(Item $item)
- {
- //
+ // render page
}
/**
* Update the specified resource in storage.
*/
- public function update(Request $request, Item $item)
+ public function update(ItemRequest $request, Item $item)
{
- //
+ $validated = $request->validated();
+
+ // update the items with the new data
+ $item->update([
+ 'type' => $validated['type'],
+ 'name' => $validated['name'],
+ 'description' => $validated['description'],
+ 'category' => $validated['category'],
+ 'ISBN' => $validated['ISBN'],
+ 'rating' => $validated['rating'],
+ 'borrowing_time' => $validated['borrowing_time'],
+ 'modified_kind' => ModifiedEnum::modified,
+ 'modified_user' => auth()->id(),
+ ]);
+
+ return $this->CommonResponse(
+ ResponseStatus::success,
+ 'Item updated',
+ $item
+ );
}
/**
@@ -60,6 +88,11 @@ public function update(Request $request, Item $item)
*/
public function destroy(Item $item)
{
- //
+ $item->delete();
+ return $this->CommonResponse(
+ ResponseStatus::success,
+ 'Item deleted',
+ null,
+ );
}
}
diff --git a/src/app/Http/Controllers/LibraryPassController.php b/src/app/Http/Controllers/LibraryPassController.php
index 8c0c576..4e34d25 100644
--- a/src/app/Http/Controllers/LibraryPassController.php
+++ b/src/app/Http/Controllers/LibraryPassController.php
@@ -2,17 +2,22 @@
namespace App\Http\Controllers;
+use App\Enums\ModifiedEnum;
+use App\Enums\ResponseStatus;
+use App\Http\Requests\LibraryPassRequest;
use App\Models\LibraryPass;
use Illuminate\Http\Request;
+use App\Traits\CommonTrait;
class LibraryPassController extends Controller
{
+ use CommonTrait;
/**
* Display a listing of the resource.
*/
public function index()
{
- //
+ $passes = LibraryPass::all();
}
/**
@@ -26,9 +31,22 @@ public function create()
/**
* Store a newly created resource in storage.
*/
- public function store(Request $request)
+ public function store(LibraryPassRequest $request)
{
- //
+ $validated = $request->validated();
+
+ $libraryPass = LibraryPass::create([
+ 'user_id' => $validated['user_id'],
+ 'barcode' => $validated['barcode'],
+ 'is_active' => $validated['is_active'],
+ 'modified_kind' => ModifiedEnum::inserted,
+ 'modified_user' => auth()->id(),
+ ]);
+
+ return $this->CommonResponse(ResponseStatus::created,
+ 'Library pass created successfully',
+ $libraryPass,
+ );
}
/**
@@ -50,9 +68,22 @@ public function edit(LibraryPass $libraryPass)
/**
* Update the specified resource in storage.
*/
- public function update(Request $request, LibraryPass $libraryPass)
+ public function update(LibraryPassRequest $request, LibraryPass $libraryPass)
{
- //
+ $validated = $request->validated();
+
+ $libraryPass->update([
+ 'user_id' => $validated['user_id'],
+ 'barcode' => $validated['barcode'],
+ 'is_active' => $validated['is_active'],
+ 'modified_kind' => ModifiedEnum::modified,
+ 'modified_user' => auth()->user()->id,
+ ]);
+
+ return $this->CommonResponse(ResponseStatus::success,
+ 'Library pass updated successfully',
+ null,
+ );
}
/**
@@ -60,6 +91,10 @@ public function update(Request $request, LibraryPass $libraryPass)
*/
public function destroy(LibraryPass $libraryPass)
{
- //
+ $libraryPass->delete();
+ return $this->CommonResponse(ResponseStatus::success,
+ 'Library pass deleted successfully',
+ null,
+ );
}
}
diff --git a/src/app/Http/Controllers/PaymentTransactionController.php b/src/app/Http/Controllers/PaymentTransactionController.php
index 30c7862..6c90dc1 100644
--- a/src/app/Http/Controllers/PaymentTransactionController.php
+++ b/src/app/Http/Controllers/PaymentTransactionController.php
@@ -2,11 +2,16 @@
namespace App\Http\Controllers;
+use App\Enums\ModifiedEnum;
+use App\Enums\ResponseStatus;
+use App\Http\Requests\PaymentTransactionRequest;
use App\Models\PaymentTransaction;
use Illuminate\Http\Request;
+use App\Traits\CommonTrait;
class PaymentTransactionController extends Controller
{
+ use CommonTrait;
/**
* Display a listing of the resource.
*/
@@ -26,9 +31,21 @@ public function create()
/**
* Store a newly created resource in storage.
*/
- public function store(Request $request)
+ public function store(PaymentTransactionRequest $request)
{
- //
+ $validated = $request->validated();
+ $paymentTransaction = PaymentTransaction::create([
+ 'fine_id' => $validated['fine_id'],
+ 'amount' => $validated['amount'],
+ 'modified_kind' => ModifiedEnum::inserted,
+ 'modified_user' => Auth()->id(),
+ ]);
+
+ return $this->CommonResponse(
+ ResponseStatus::created,
+ 'Payment transaction created successfully',
+ ['paymentTransaction' => $paymentTransaction],
+ );
}
/**
@@ -36,7 +53,7 @@ public function store(Request $request)
*/
public function show(PaymentTransaction $paymentTransaction)
{
- //
+
}
/**
@@ -50,9 +67,20 @@ public function edit(PaymentTransaction $paymentTransaction)
/**
* Update the specified resource in storage.
*/
- public function update(Request $request, PaymentTransaction $paymentTransaction)
+ public function update(PaymentTransactionRequest $request, PaymentTransaction $paymentTransaction)
{
- //
+ $validated = $request->validated();
+ $paymentTransaction->update([
+ 'amount' => $validated['amount'],
+ 'modified_kind' => ModifiedEnum::modified,
+ 'modified_user' => Auth()->id(),
+ ]);
+
+ return $this->CommonResponse(
+ ResponseStatus::success,
+ 'Payment transaction updated successfully',
+ ['paymentTransaction' => $paymentTransaction],
+ );
}
/**
@@ -60,6 +88,11 @@ public function update(Request $request, PaymentTransaction $paymentTransaction)
*/
public function destroy(PaymentTransaction $paymentTransaction)
{
- //
+ $paymentTransaction->delete();
+ return $this->CommonResponse(
+ ResponseStatus::success,
+ 'Payment transaction deleted successfully',
+ null,
+ );
}
}
diff --git a/src/app/Http/Controllers/ReservationController.php b/src/app/Http/Controllers/ReservationController.php
index 9c19d90..ea464ff 100644
--- a/src/app/Http/Controllers/ReservationController.php
+++ b/src/app/Http/Controllers/ReservationController.php
@@ -2,11 +2,16 @@
namespace App\Http\Controllers;
+use App\Enums\ModifiedEnum;
+use App\Enums\ResponseStatus;
+use App\Http\Requests\ReserveRequest;
use App\Models\Reservation;
+use App\Traits\CommonTrait;
use Illuminate\Http\Request;
class ReservationController extends Controller
{
+ use CommonTrait;
/**
* Display a listing of the resource.
*/
@@ -26,9 +31,22 @@ public function create()
/**
* Store a newly created resource in storage.
*/
- public function store(Request $request)
+ public function store(ReserveRequest $request)
{
- //
+ $validated = $request->validated();
+
+ $reservation = Reservation::create([
+ 'user_id' => $validated['user_id'],
+ 'item_id' => $validated['item_id'],
+ 'status' => $validated['status'],
+ 'modified_kind' => ModifiedEnum::inserted,
+ 'modified_user' => auth()->id(),
+ ]);
+
+ return $this->CommonResponse(ResponseStatus::created,
+ 'Reservation created successfully',
+ $reservation,
+ );
}
/**
@@ -50,9 +68,22 @@ public function edit(Reservation $reservation)
/**
* Update the specified resource in storage.
*/
- public function update(Request $request, Reservation $reservation)
+ public function update(ReserveRequest $request, Reservation $reservation)
{
- //
+ $validated = $request->validated();
+
+ $reservation->update([
+ 'user_id' => $validated['user_id'],
+ 'item_id' => $validated['item_id'],
+ 'status' => $validated['status'],
+ 'modified_kind' => ModifiedEnum::modified,
+ 'modified_user' => auth()->id(),
+ ]);
+
+ return $this->CommonResponse(ResponseStatus::success,
+ 'Reservation updated successfully',
+ ["reservation" => $reservation],
+ );
}
/**
@@ -60,6 +91,11 @@ public function update(Request $request, Reservation $reservation)
*/
public function destroy(Reservation $reservation)
{
- //
+ $reservation->delete();
+
+ return $this->CommonResponse(ResponseStatus::success,
+ 'Reservation deleted successfully',
+ null,
+ );
}
}
diff --git a/src/app/Http/Controllers/SessionController.php b/src/app/Http/Controllers/SessionController.php
index 440b3ed..ab9532d 100644
--- a/src/app/Http/Controllers/SessionController.php
+++ b/src/app/Http/Controllers/SessionController.php
@@ -3,7 +3,7 @@
namespace App\Http\Controllers;
use App\Enums\ResponseStatus;
-use App\Http\Requests\LibraryPassReadRequest;
+use App\Http\Requests\LibraryPassRequest;
use App\Models\LibraryPass;
use App\Models\User;
use App\Traits\CommonTrait;
@@ -11,7 +11,7 @@
class SessionController extends Controller
{
use CommonTrait;
- public function auth(LibraryPassReadRequest $request)
+ public function auth(LibraryPassRequest $request)
{
$code = $request->validated()['code'];
@@ -20,7 +20,6 @@ public function auth(LibraryPassReadRequest $request)
ResponseStatus::validationError,
'Code is required',
null,
- ResponseStatus::validationError->getStatusCode()
);
}
@@ -31,7 +30,6 @@ public function auth(LibraryPassReadRequest $request)
ResponseStatus::unauthorized,
'Incorrect code',
null,
- ResponseStatus::unauthorized->getStatusCode()
);
}
@@ -42,7 +40,6 @@ public function auth(LibraryPassReadRequest $request)
ResponseStatus::unauthorized,
'Incorrect code',
null,
- ResponseStatus::unauthorized->getStatusCode()
);
}
@@ -52,7 +49,6 @@ public function auth(LibraryPassReadRequest $request)
ResponseStatus::success,
'User logged in current session',
['user' => $user],
- ResponseStatus::success->getStatusCode()
);
}
}
diff --git a/src/app/Http/Requests/LibraryPassReadRequest.php b/src/app/Http/Requests/AuthorizePassRequest.php
similarity index 92%
rename from src/app/Http/Requests/LibraryPassReadRequest.php
rename to src/app/Http/Requests/AuthorizePassRequest.php
index 8551b41..521bb70 100644
--- a/src/app/Http/Requests/LibraryPassReadRequest.php
+++ b/src/app/Http/Requests/AuthorizePassRequest.php
@@ -5,7 +5,7 @@
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
-class LibraryPassReadRequest extends FormRequest
+class AuthorizePassRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
diff --git a/src/app/Http/Requests/FineRequest.php b/src/app/Http/Requests/FineRequest.php
new file mode 100644
index 0000000..6875b34
--- /dev/null
+++ b/src/app/Http/Requests/FineRequest.php
@@ -0,0 +1,29 @@
+check();
+ }
+
+ /**
+ * Get the validation rules that apply to the request.
+ *
+ * @return array|string>
+ */
+ public function rules(): array
+ {
+ return [
+ 'grant_id' => 'required|integer|exists:grants,id',
+ 'amount' => 'required|decimal:1,2',
+ ];
+ }
+}
diff --git a/src/app/Http/Requests/GrantRequest.php b/src/app/Http/Requests/GrantRequest.php
new file mode 100644
index 0000000..28115d3
--- /dev/null
+++ b/src/app/Http/Requests/GrantRequest.php
@@ -0,0 +1,31 @@
+check();
+ }
+
+ /**
+ * Get the validation rules that apply to the request.
+ *
+ * @return array|string>
+ */
+ public function rules(): array
+ {
+ return [
+ 'user_id' => 'required|integer|exists:users,id',
+ 'item_id' => 'required|integer|exists:items,id',
+ 'borrowed_date' => 'required|date',
+ 'return_date' => 'nullable|date',
+ ];
+ }
+}
diff --git a/src/app/Http/Requests/ItemRequest.php b/src/app/Http/Requests/ItemRequest.php
new file mode 100644
index 0000000..79ee120
--- /dev/null
+++ b/src/app/Http/Requests/ItemRequest.php
@@ -0,0 +1,35 @@
+check();
+ }
+
+ /**
+ * Get the validation rules that apply to the request.
+ *
+ * @return array|string>
+ */
+ public function rules(): array
+ {
+ return [
+ 'type' => 'required|string',
+ 'name' => 'required|string',
+ 'description' => 'required|string',
+ 'category' => 'required|integer|exists:item_categories,id',
+ 'rating' => 'required|integer|exists:item_age_ratings,id',
+ 'borrowing_time' => 'nullable|integer',
+ 'ISBN' => 'nullable|string|unique:items,ISBN',
+ ];
+ }
+}
diff --git a/src/app/Http/Requests/LibraryPassRequest.php b/src/app/Http/Requests/LibraryPassRequest.php
new file mode 100644
index 0000000..4b816da
--- /dev/null
+++ b/src/app/Http/Requests/LibraryPassRequest.php
@@ -0,0 +1,31 @@
+check();
+ }
+
+ /**
+ * Get the validation rules that apply to the request.
+ *
+ * @return array
+ */
+ public function rules(): array
+ {
+ return [
+ 'user_id' => 'integer|exists:users,id',
+ 'barcode' => 'required|string|max:255',
+ 'is_active' => 'required|boolean',
+ ];
+ }
+}
diff --git a/src/app/Http/Requests/PaymentTransactionRequest.php b/src/app/Http/Requests/PaymentTransactionRequest.php
new file mode 100644
index 0000000..ab85bc4
--- /dev/null
+++ b/src/app/Http/Requests/PaymentTransactionRequest.php
@@ -0,0 +1,28 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ //
+ ];
+ }
+}
diff --git a/src/app/Http/Requests/ReserveRequest.php b/src/app/Http/Requests/ReserveRequest.php
new file mode 100644
index 0000000..d8289cd
--- /dev/null
+++ b/src/app/Http/Requests/ReserveRequest.php
@@ -0,0 +1,31 @@
+check();
+ }
+
+ /**
+ * Get the validation rules that apply to the request.
+ *
+ * @return array|string>
+ */
+ public function rules(): array
+ {
+ return [
+ 'user_id' => 'required|integer|exists:users,id',
+ 'item_id' => 'required|integer|exists:items,id',
+ 'expired_at' => 'required|date',
+ 'status' => 'required|integer|exists:reservation_statuses,id',
+ ];
+ }
+}
diff --git a/src/app/Traits/CommonTrait.php b/src/app/Traits/CommonTrait.php
index b788571..35f198d 100644
--- a/src/app/Traits/CommonTrait.php
+++ b/src/app/Traits/CommonTrait.php
@@ -17,12 +17,12 @@ trait CommonTrait {
* @param int $code http status code
* @return JsonResponse response formatted in json
*/
- public function CommonResponse(ResponseStatus $status, string $message, array|null $data, int $code): JsonResponse
+ public function CommonResponse(ResponseStatus $status, string $message, array|null $data): JsonResponse
{
return response()->json([
- 'status' => $status,
+ 'status' => $status->label(),
'message' => $message,
'data' => $data
- ], $code);
+ ], $status->getStatusCode());
}
}
diff --git a/src/composer.lock b/src/composer.lock
index 32b7ec2..43c8f5a 100644
--- a/src/composer.lock
+++ b/src/composer.lock
@@ -1044,16 +1044,16 @@
},
{
"name": "laravel/framework",
- "version": "v10.32.1",
+ "version": "v10.34.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "b30e44f20d244f7ba125283e14a8bbac167f4e5b"
+ "reference": "c581caa233e380610b34cc491490bfa147a3b62b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/b30e44f20d244f7ba125283e14a8bbac167f4e5b",
- "reference": "b30e44f20d244f7ba125283e14a8bbac167f4e5b",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/c581caa233e380610b34cc491490bfa147a3b62b",
+ "reference": "c581caa233e380610b34cc491490bfa147a3b62b",
"shasum": ""
},
"require": {
@@ -1242,7 +1242,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2023-11-14T22:57:08+00:00"
+ "time": "2023-11-28T19:06:27+00:00"
},
{
"name": "laravel/prompts",
@@ -3263,16 +3263,16 @@
},
{
"name": "symfony/console",
- "version": "v6.3.8",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "0d14a9f6d04d4ac38a8cea1171f4554e325dae92"
+ "reference": "cd9864b47c367450e14ab32f78fdbf98c44c26b6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/0d14a9f6d04d4ac38a8cea1171f4554e325dae92",
- "reference": "0d14a9f6d04d4ac38a8cea1171f4554e325dae92",
+ "url": "https://api.github.com/repos/symfony/console/zipball/cd9864b47c367450e14ab32f78fdbf98c44c26b6",
+ "reference": "cd9864b47c367450e14ab32f78fdbf98c44c26b6",
"shasum": ""
},
"require": {
@@ -3280,7 +3280,7 @@
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/string": "^5.4|^6.0"
+ "symfony/string": "^5.4|^6.0|^7.0"
},
"conflict": {
"symfony/dependency-injection": "<5.4",
@@ -3294,12 +3294,16 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/lock": "^5.4|^6.0",
- "symfony/process": "^5.4|^6.0",
- "symfony/var-dumper": "^5.4|^6.0"
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/lock": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -3333,7 +3337,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.3.8"
+ "source": "https://github.com/symfony/console/tree/v6.4.0"
},
"funding": [
{
@@ -3349,20 +3353,20 @@
"type": "tidelift"
}
],
- "time": "2023-10-31T08:09:35+00:00"
+ "time": "2023-11-20T16:41:16+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v6.3.2",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "883d961421ab1709877c10ac99451632a3d6fa57"
+ "reference": "d036c6c0d0b09e24a14a35f8292146a658f986e4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/883d961421ab1709877c10ac99451632a3d6fa57",
- "reference": "883d961421ab1709877c10ac99451632a3d6fa57",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/d036c6c0d0b09e24a14a35f8292146a658f986e4",
+ "reference": "d036c6c0d0b09e24a14a35f8292146a658f986e4",
"shasum": ""
},
"require": {
@@ -3398,7 +3402,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v6.3.2"
+ "source": "https://github.com/symfony/css-selector/tree/v6.4.0"
},
"funding": [
{
@@ -3414,7 +3418,7 @@
"type": "tidelift"
}
],
- "time": "2023-07-12T16:00:22+00:00"
+ "time": "2023-10-31T08:40:20+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -3485,30 +3489,31 @@
},
{
"name": "symfony/error-handler",
- "version": "v6.3.5",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "1f69476b64fb47105c06beef757766c376b548c4"
+ "reference": "c873490a1c97b3a0a4838afc36ff36c112d02788"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/1f69476b64fb47105c06beef757766c376b548c4",
- "reference": "1f69476b64fb47105c06beef757766c376b548c4",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/c873490a1c97b3a0a4838afc36ff36c112d02788",
+ "reference": "c873490a1c97b3a0a4838afc36ff36c112d02788",
"shasum": ""
},
"require": {
"php": ">=8.1",
"psr/log": "^1|^2|^3",
- "symfony/var-dumper": "^5.4|^6.0"
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
},
"conflict": {
- "symfony/deprecation-contracts": "<2.5"
+ "symfony/deprecation-contracts": "<2.5",
+ "symfony/http-kernel": "<6.4"
},
"require-dev": {
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/serializer": "^5.4|^6.0"
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/serializer": "^5.4|^6.0|^7.0"
},
"bin": [
"Resources/bin/patch-type-declarations"
@@ -3539,7 +3544,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/error-handler/tree/v6.3.5"
+ "source": "https://github.com/symfony/error-handler/tree/v6.4.0"
},
"funding": [
{
@@ -3555,20 +3560,20 @@
"type": "tidelift"
}
],
- "time": "2023-09-12T06:57:20+00:00"
+ "time": "2023-10-18T09:43:34+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.3.2",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e"
+ "reference": "d76d2632cfc2206eecb5ad2b26cd5934082941b6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/adb01fe097a4ee930db9258a3cc906b5beb5cf2e",
- "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d76d2632cfc2206eecb5ad2b26cd5934082941b6",
+ "reference": "d76d2632cfc2206eecb5ad2b26cd5934082941b6",
"shasum": ""
},
"require": {
@@ -3585,13 +3590,13 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/error-handler": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^5.4|^6.0|^7.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/stopwatch": "^5.4|^6.0"
+ "symfony/stopwatch": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -3619,7 +3624,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v6.3.2"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.0"
},
"funding": [
{
@@ -3635,7 +3640,7 @@
"type": "tidelift"
}
],
- "time": "2023-07-06T06:56:43+00:00"
+ "time": "2023-07-27T06:52:43+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
@@ -3715,23 +3720,23 @@
},
{
"name": "symfony/finder",
- "version": "v6.3.5",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4"
+ "reference": "11d736e97f116ac375a81f96e662911a34cd50ce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/a1b31d88c0e998168ca7792f222cbecee47428c4",
- "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/11d736e97f116ac375a81f96e662911a34cd50ce",
+ "reference": "11d736e97f116ac375a81f96e662911a34cd50ce",
"shasum": ""
},
"require": {
"php": ">=8.1"
},
"require-dev": {
- "symfony/filesystem": "^6.0"
+ "symfony/filesystem": "^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -3759,7 +3764,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v6.3.5"
+ "source": "https://github.com/symfony/finder/tree/v6.4.0"
},
"funding": [
{
@@ -3775,20 +3780,20 @@
"type": "tidelift"
}
],
- "time": "2023-09-26T12:56:25+00:00"
+ "time": "2023-10-31T17:30:12+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v6.3.8",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "ce332676de1912c4389222987193c3ef38033df6"
+ "reference": "44a6d39a9cc11e154547d882d5aac1e014440771"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ce332676de1912c4389222987193c3ef38033df6",
- "reference": "ce332676de1912c4389222987193c3ef38033df6",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/44a6d39a9cc11e154547d882d5aac1e014440771",
+ "reference": "44a6d39a9cc11e154547d882d5aac1e014440771",
"shasum": ""
},
"require": {
@@ -3803,12 +3808,12 @@
"require-dev": {
"doctrine/dbal": "^2.13.1|^3|^4",
"predis/predis": "^1.1|^2.0",
- "symfony/cache": "^6.3",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4",
- "symfony/mime": "^5.4|^6.0",
- "symfony/rate-limiter": "^5.2|^6.0"
+ "symfony/cache": "^6.3|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0",
+ "symfony/mime": "^5.4|^6.0|^7.0",
+ "symfony/rate-limiter": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -3836,7 +3841,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v6.3.8"
+ "source": "https://github.com/symfony/http-foundation/tree/v6.4.0"
},
"funding": [
{
@@ -3852,29 +3857,29 @@
"type": "tidelift"
}
],
- "time": "2023-11-07T10:17:15+00:00"
+ "time": "2023-11-20T16:41:16+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v6.3.8",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "929202375ccf44a309c34aeca8305408442ebcc1"
+ "reference": "16a29c453966f29466ad34444ce97970a336f3c8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/929202375ccf44a309c34aeca8305408442ebcc1",
- "reference": "929202375ccf44a309c34aeca8305408442ebcc1",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/16a29c453966f29466ad34444ce97970a336f3c8",
+ "reference": "16a29c453966f29466ad34444ce97970a336f3c8",
"shasum": ""
},
"require": {
"php": ">=8.1",
"psr/log": "^1|^2|^3",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/error-handler": "^6.3",
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/http-foundation": "^6.3.4",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
@@ -3882,7 +3887,7 @@
"symfony/cache": "<5.4",
"symfony/config": "<6.1",
"symfony/console": "<5.4",
- "symfony/dependency-injection": "<6.3.4",
+ "symfony/dependency-injection": "<6.4",
"symfony/doctrine-bridge": "<5.4",
"symfony/form": "<5.4",
"symfony/http-client": "<5.4",
@@ -3892,7 +3897,7 @@
"symfony/translation": "<5.4",
"symfony/translation-contracts": "<2.5",
"symfony/twig-bridge": "<5.4",
- "symfony/validator": "<5.4",
+ "symfony/validator": "<6.4",
"symfony/var-dumper": "<6.3",
"twig/twig": "<2.13"
},
@@ -3901,26 +3906,26 @@
},
"require-dev": {
"psr/cache": "^1.0|^2.0|^3.0",
- "symfony/browser-kit": "^5.4|^6.0",
- "symfony/clock": "^6.2",
- "symfony/config": "^6.1",
- "symfony/console": "^5.4|^6.0",
- "symfony/css-selector": "^5.4|^6.0",
- "symfony/dependency-injection": "^6.3.4",
- "symfony/dom-crawler": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/finder": "^5.4|^6.0",
+ "symfony/browser-kit": "^5.4|^6.0|^7.0",
+ "symfony/clock": "^6.2|^7.0",
+ "symfony/config": "^6.1|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/css-selector": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/dom-crawler": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
"symfony/http-client-contracts": "^2.5|^3",
- "symfony/process": "^5.4|^6.0",
- "symfony/property-access": "^5.4.5|^6.0.5",
- "symfony/routing": "^5.4|^6.0",
- "symfony/serializer": "^6.3",
- "symfony/stopwatch": "^5.4|^6.0",
- "symfony/translation": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/property-access": "^5.4.5|^6.0.5|^7.0",
+ "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/serializer": "^6.3|^7.0",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/translation": "^5.4|^6.0|^7.0",
"symfony/translation-contracts": "^2.5|^3",
- "symfony/uid": "^5.4|^6.0",
- "symfony/validator": "^6.3",
- "symfony/var-exporter": "^6.2",
+ "symfony/uid": "^5.4|^6.0|^7.0",
+ "symfony/validator": "^6.4|^7.0",
+ "symfony/var-exporter": "^6.2|^7.0",
"twig/twig": "^2.13|^3.0.4"
},
"type": "library",
@@ -3949,7 +3954,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v6.3.8"
+ "source": "https://github.com/symfony/http-kernel/tree/v6.4.0"
},
"funding": [
{
@@ -3965,20 +3970,20 @@
"type": "tidelift"
}
],
- "time": "2023-11-10T13:47:32+00:00"
+ "time": "2023-11-29T10:40:15+00:00"
},
{
"name": "symfony/mailer",
- "version": "v6.3.5",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailer.git",
- "reference": "d89611a7830d51b5e118bca38e390dea92f9ea06"
+ "reference": "ca8dcf8892cdc5b4358ecf2528429bb5e706f7ba"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mailer/zipball/d89611a7830d51b5e118bca38e390dea92f9ea06",
- "reference": "d89611a7830d51b5e118bca38e390dea92f9ea06",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/ca8dcf8892cdc5b4358ecf2528429bb5e706f7ba",
+ "reference": "ca8dcf8892cdc5b4358ecf2528429bb5e706f7ba",
"shasum": ""
},
"require": {
@@ -3986,8 +3991,8 @@
"php": ">=8.1",
"psr/event-dispatcher": "^1",
"psr/log": "^1|^2|^3",
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/mime": "^6.2",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/mime": "^6.2|^7.0",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
@@ -3998,10 +4003,10 @@
"symfony/twig-bridge": "<6.2.1"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/messenger": "^6.2",
- "symfony/twig-bridge": "^6.2"
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^6.2|^7.0",
+ "symfony/twig-bridge": "^6.2|^7.0"
},
"type": "library",
"autoload": {
@@ -4029,7 +4034,7 @@
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/mailer/tree/v6.3.5"
+ "source": "https://github.com/symfony/mailer/tree/v6.4.0"
},
"funding": [
{
@@ -4045,20 +4050,20 @@
"type": "tidelift"
}
],
- "time": "2023-09-06T09:47:15+00:00"
+ "time": "2023-11-12T18:02:22+00:00"
},
{
"name": "symfony/mime",
- "version": "v6.3.5",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "d5179eedf1cb2946dbd760475ebf05c251ef6a6e"
+ "reference": "ca4f58b2ef4baa8f6cecbeca2573f88cd577d205"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/d5179eedf1cb2946dbd760475ebf05c251ef6a6e",
- "reference": "d5179eedf1cb2946dbd760475ebf05c251ef6a6e",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/ca4f58b2ef4baa8f6cecbeca2573f88cd577d205",
+ "reference": "ca4f58b2ef4baa8f6cecbeca2573f88cd577d205",
"shasum": ""
},
"require": {
@@ -4072,16 +4077,16 @@
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
"symfony/mailer": "<5.4",
- "symfony/serializer": "<6.2.13|>=6.3,<6.3.2"
+ "symfony/serializer": "<6.3.2"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3.1|^4",
"league/html-to-markdown": "^5.0",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/property-access": "^5.4|^6.0",
- "symfony/property-info": "^5.4|^6.0",
- "symfony/serializer": "~6.2.13|^6.3.2"
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/property-access": "^5.4|^6.0|^7.0",
+ "symfony/property-info": "^5.4|^6.0|^7.0",
+ "symfony/serializer": "^6.3.2|^7.0"
},
"type": "library",
"autoload": {
@@ -4113,7 +4118,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v6.3.5"
+ "source": "https://github.com/symfony/mime/tree/v6.4.0"
},
"funding": [
{
@@ -4129,7 +4134,7 @@
"type": "tidelift"
}
],
- "time": "2023-09-29T06:59:36+00:00"
+ "time": "2023-10-17T11:49:05+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -4871,16 +4876,16 @@
},
{
"name": "symfony/process",
- "version": "v6.3.4",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54"
+ "reference": "191703b1566d97a5425dc969e4350d32b8ef17aa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/0b5c29118f2e980d455d2e34a5659f4579847c54",
- "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54",
+ "url": "https://api.github.com/repos/symfony/process/zipball/191703b1566d97a5425dc969e4350d32b8ef17aa",
+ "reference": "191703b1566d97a5425dc969e4350d32b8ef17aa",
"shasum": ""
},
"require": {
@@ -4912,7 +4917,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v6.3.4"
+ "source": "https://github.com/symfony/process/tree/v6.4.0"
},
"funding": [
{
@@ -4928,20 +4933,20 @@
"type": "tidelift"
}
],
- "time": "2023-08-07T10:39:22+00:00"
+ "time": "2023-11-17T21:06:49+00:00"
},
{
"name": "symfony/routing",
- "version": "v6.3.5",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "82616e59acd3e3d9c916bba798326cb7796d7d31"
+ "reference": "ae014d60d7c8e80be5c3b644a286e91249a3e8f4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/82616e59acd3e3d9c916bba798326cb7796d7d31",
- "reference": "82616e59acd3e3d9c916bba798326cb7796d7d31",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/ae014d60d7c8e80be5c3b644a286e91249a3e8f4",
+ "reference": "ae014d60d7c8e80be5c3b644a286e91249a3e8f4",
"shasum": ""
},
"require": {
@@ -4957,11 +4962,11 @@
"require-dev": {
"doctrine/annotations": "^1.12|^2",
"psr/log": "^1|^2|^3",
- "symfony/config": "^6.2",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
- "symfony/yaml": "^5.4|^6.0"
+ "symfony/config": "^6.2|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^5.4|^6.0|^7.0",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -4995,7 +5000,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v6.3.5"
+ "source": "https://github.com/symfony/routing/tree/v6.4.0"
},
"funding": [
{
@@ -5011,7 +5016,7 @@
"type": "tidelift"
}
],
- "time": "2023-09-20T16:05:51+00:00"
+ "time": "2023-11-29T08:04:54+00:00"
},
{
"name": "symfony/service-contracts",
@@ -5097,16 +5102,16 @@
},
{
"name": "symfony/string",
- "version": "v6.3.8",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "13880a87790c76ef994c91e87efb96134522577a"
+ "reference": "b45fcf399ea9c3af543a92edf7172ba21174d809"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/13880a87790c76ef994c91e87efb96134522577a",
- "reference": "13880a87790c76ef994c91e87efb96134522577a",
+ "url": "https://api.github.com/repos/symfony/string/zipball/b45fcf399ea9c3af543a92edf7172ba21174d809",
+ "reference": "b45fcf399ea9c3af543a92edf7172ba21174d809",
"shasum": ""
},
"require": {
@@ -5120,11 +5125,11 @@
"symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/intl": "^6.2",
+ "symfony/error-handler": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^6.2|^7.0",
"symfony/translation-contracts": "^2.5|^3.0",
- "symfony/var-exporter": "^5.4|^6.0"
+ "symfony/var-exporter": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -5163,7 +5168,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.3.8"
+ "source": "https://github.com/symfony/string/tree/v6.4.0"
},
"funding": [
{
@@ -5179,20 +5184,20 @@
"type": "tidelift"
}
],
- "time": "2023-11-09T08:28:21+00:00"
+ "time": "2023-11-28T20:41:49+00:00"
},
{
"name": "symfony/translation",
- "version": "v6.3.7",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "30212e7c87dcb79c83f6362b00bde0e0b1213499"
+ "reference": "b1035dbc2a344b21f8fa8ac451c7ecec4ea45f37"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/30212e7c87dcb79c83f6362b00bde0e0b1213499",
- "reference": "30212e7c87dcb79c83f6362b00bde0e0b1213499",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/b1035dbc2a344b21f8fa8ac451c7ecec4ea45f37",
+ "reference": "b1035dbc2a344b21f8fa8ac451c7ecec4ea45f37",
"shasum": ""
},
"require": {
@@ -5217,17 +5222,17 @@
"require-dev": {
"nikic/php-parser": "^4.13",
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/console": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/finder": "^5.4|^6.0",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
"symfony/http-client-contracts": "^2.5|^3.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/intl": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^5.4|^6.0|^7.0",
"symfony/polyfill-intl-icu": "^1.21",
- "symfony/routing": "^5.4|^6.0",
+ "symfony/routing": "^5.4|^6.0|^7.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/yaml": "^5.4|^6.0"
+ "symfony/yaml": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -5258,7 +5263,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v6.3.7"
+ "source": "https://github.com/symfony/translation/tree/v6.4.0"
},
"funding": [
{
@@ -5274,7 +5279,7 @@
"type": "tidelift"
}
],
- "time": "2023-10-28T23:11:45+00:00"
+ "time": "2023-11-29T08:14:36+00:00"
},
{
"name": "symfony/translation-contracts",
@@ -5356,16 +5361,16 @@
},
{
"name": "symfony/uid",
- "version": "v6.3.8",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/uid.git",
- "reference": "819fa5ac210fb7ddda4752b91a82f50be7493dd9"
+ "reference": "8092dd1b1a41372110d06374f99ee62f7f0b9a92"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/uid/zipball/819fa5ac210fb7ddda4752b91a82f50be7493dd9",
- "reference": "819fa5ac210fb7ddda4752b91a82f50be7493dd9",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/8092dd1b1a41372110d06374f99ee62f7f0b9a92",
+ "reference": "8092dd1b1a41372110d06374f99ee62f7f0b9a92",
"shasum": ""
},
"require": {
@@ -5373,7 +5378,7 @@
"symfony/polyfill-uuid": "^1.15"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0"
+ "symfony/console": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -5410,7 +5415,7 @@
"uuid"
],
"support": {
- "source": "https://github.com/symfony/uid/tree/v6.3.8"
+ "source": "https://github.com/symfony/uid/tree/v6.4.0"
},
"funding": [
{
@@ -5426,20 +5431,20 @@
"type": "tidelift"
}
],
- "time": "2023-10-31T08:07:48+00:00"
+ "time": "2023-10-31T08:18:17+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v6.3.8",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "81acabba9046550e89634876ca64bfcd3c06aa0a"
+ "reference": "c40f7d17e91d8b407582ed51a2bbf83c52c367f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/81acabba9046550e89634876ca64bfcd3c06aa0a",
- "reference": "81acabba9046550e89634876ca64bfcd3c06aa0a",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c40f7d17e91d8b407582ed51a2bbf83c52c367f6",
+ "reference": "c40f7d17e91d8b407582ed51a2bbf83c52c367f6",
"shasum": ""
},
"require": {
@@ -5452,10 +5457,11 @@
},
"require-dev": {
"ext-iconv": "*",
- "symfony/console": "^5.4|^6.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/process": "^5.4|^6.0",
- "symfony/uid": "^5.4|^6.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/error-handler": "^6.3|^7.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/uid": "^5.4|^6.0|^7.0",
"twig/twig": "^2.13|^3.0.4"
},
"bin": [
@@ -5494,7 +5500,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v6.3.8"
+ "source": "https://github.com/symfony/var-dumper/tree/v6.4.0"
},
"funding": [
{
@@ -5510,7 +5516,7 @@
"type": "tidelift"
}
],
- "time": "2023-11-08T10:42:36+00:00"
+ "time": "2023-11-09T08:28:32+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@@ -6041,16 +6047,16 @@
},
{
"name": "laravel/sail",
- "version": "v1.26.0",
+ "version": "v1.26.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/sail.git",
- "reference": "c60fe037004e272efd0d81f416ed2bfc623d70b4"
+ "reference": "c0177786b1cd05b687b0fa11364aeeecb42cd3d8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/sail/zipball/c60fe037004e272efd0d81f416ed2bfc623d70b4",
- "reference": "c60fe037004e272efd0d81f416ed2bfc623d70b4",
+ "url": "https://api.github.com/repos/laravel/sail/zipball/c0177786b1cd05b687b0fa11364aeeecb42cd3d8",
+ "reference": "c0177786b1cd05b687b0fa11364aeeecb42cd3d8",
"shasum": ""
},
"require": {
@@ -6102,7 +6108,7 @@
"issues": "https://github.com/laravel/sail/issues",
"source": "https://github.com/laravel/sail"
},
- "time": "2023-10-18T13:57:15+00:00"
+ "time": "2023-11-27T14:46:06+00:00"
},
{
"name": "mockery/mockery",
@@ -6457,16 +6463,16 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "10.1.8",
+ "version": "10.1.9",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "84838eed9ded511f61dc3e8b5944a52d9017b297"
+ "reference": "a56a9ab2f680246adcf3db43f38ddf1765774735"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/84838eed9ded511f61dc3e8b5944a52d9017b297",
- "reference": "84838eed9ded511f61dc3e8b5944a52d9017b297",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/a56a9ab2f680246adcf3db43f38ddf1765774735",
+ "reference": "a56a9ab2f680246adcf3db43f38ddf1765774735",
"shasum": ""
},
"require": {
@@ -6523,7 +6529,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.8"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.9"
},
"funding": [
{
@@ -6531,7 +6537,7 @@
"type": "github"
}
],
- "time": "2023-11-15T13:31:15+00:00"
+ "time": "2023-11-23T12:23:20+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -8101,16 +8107,16 @@
},
{
"name": "symfony/yaml",
- "version": "v6.3.8",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "3493af8a8dad7fa91c77fa473ba23ecd95334a92"
+ "reference": "4f9237a1bb42455d609e6687d2613dde5b41a587"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/3493af8a8dad7fa91c77fa473ba23ecd95334a92",
- "reference": "3493af8a8dad7fa91c77fa473ba23ecd95334a92",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/4f9237a1bb42455d609e6687d2613dde5b41a587",
+ "reference": "4f9237a1bb42455d609e6687d2613dde5b41a587",
"shasum": ""
},
"require": {
@@ -8122,7 +8128,7 @@
"symfony/console": "<5.4"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0"
+ "symfony/console": "^5.4|^6.0|^7.0"
},
"bin": [
"Resources/bin/yaml-lint"
@@ -8153,7 +8159,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v6.3.8"
+ "source": "https://github.com/symfony/yaml/tree/v6.4.0"
},
"funding": [
{
@@ -8169,7 +8175,7 @@
"type": "tidelift"
}
],
- "time": "2023-11-06T10:58:05+00:00"
+ "time": "2023-11-06T11:00:25+00:00"
},
{
"name": "theseer/tokenizer",
diff --git a/src/database/migrations/2023_12_04_125056_create_fines_table.php b/src/database/migrations/2023_12_04_125056_create_fines_table.php
index 0527ad9..fd73bb4 100644
--- a/src/database/migrations/2023_12_04_125056_create_fines_table.php
+++ b/src/database/migrations/2023_12_04_125056_create_fines_table.php
@@ -13,10 +13,10 @@ public function up(): void
{
Schema::create('fines', function (Blueprint $table) {
$table->id();
- $table->char('modified_kind' ,1)->default('I');
$table->unsignedBigInteger('grant_id');
$table->foreign('grant_id')->references('id')->on('grants')->onDelete("cascade");
$table->double('amount');
+ $table->char('modified_kind' ,1)->default('I');
$table->unsignedBigInteger('modified_user');
$table->foreign('modified_user')->references('id')->on('users')->onDelete("cascade");
$table->timestamps();
diff --git a/src/package-lock.json b/src/package-lock.json
index 1893add..d7c127b 100644
--- a/src/package-lock.json
+++ b/src/package-lock.json
@@ -8,7 +8,8 @@
"@inertiajs/vue3": "^1.0.14",
"@vitejs/plugin-vue": "^4.5.0",
"pinia": "^2.1.7",
- "vue": "^3.3.8"
+ "vue": "^3.3.8",
+ "vue-toastification": "^2.0.0-rc.5"
},
"devDependencies": {
"axios": "^1.6.1",
@@ -1257,6 +1258,14 @@
"optional": true
}
}
+ },
+ "node_modules/vue-toastification": {
+ "version": "2.0.0-rc.5",
+ "resolved": "https://registry.npmjs.org/vue-toastification/-/vue-toastification-2.0.0-rc.5.tgz",
+ "integrity": "sha512-q73e5jy6gucEO/U+P48hqX+/qyXDozAGmaGgLFm5tXX4wJBcVsnGp4e/iJqlm9xzHETYOilUuwOUje2Qg1JdwA==",
+ "peerDependencies": {
+ "vue": "^3.0.2"
+ }
}
}
}
diff --git a/src/package.json b/src/package.json
index 786b6a8..3e16a40 100644
--- a/src/package.json
+++ b/src/package.json
@@ -15,6 +15,7 @@
"@inertiajs/vue3": "^1.0.14",
"@vitejs/plugin-vue": "^4.5.0",
"pinia": "^2.1.7",
- "vue": "^3.3.8"
+ "vue": "^3.3.8",
+ "vue-toastification": "^2.0.0-rc.5"
}
}
diff --git a/src/resources/js/app.js b/src/resources/js/app.js
index a76ba50..559286d 100644
--- a/src/resources/js/app.js
+++ b/src/resources/js/app.js
@@ -2,18 +2,21 @@ import './bootstrap';
import { createApp, h } from 'vue'
import { createPinia } from 'pinia'
import { createInertiaApp } from '@inertiajs/vue3'
+import ToastPlugin from "vue-toastification";
+import "vue-toastification/dist/index.css";
import '../vue/scss/global.scss'
import '../vue/scss/variables.scss'
createInertiaApp({
- resolve: name => {
- const pages = import.meta.glob('../vue/pages/**/*.vue', { eager: true })
- return pages[`../vue/pages/${name}.vue`]
- },
- setup({ el, App, props, plugin }) {
- createApp({ render: () => h(App, props) })
- .use(plugin)
- .use(createPinia())
- .mount(el)
- },
+ resolve: name => {
+ const pages = import.meta.glob('../vue/pages/**/*.vue', { eager: true })
+ return pages[`../vue/pages/${name}.vue`]
+ },
+ setup({ el, App, props, plugin }) {
+ createApp({ render: () => h(App, props) })
+ .use(plugin)
+ .use(createPinia())
+ .use(ToastPlugin)
+ .mount(el)
+ },
})
diff --git a/src/resources/vue/Icons/scan-item.svg b/src/resources/vue/Icons/scan-item.svg
new file mode 100644
index 0000000..d5480a8
--- /dev/null
+++ b/src/resources/vue/Icons/scan-item.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/resources/vue/components/Box.vue b/src/resources/vue/components/Box.vue
new file mode 100644
index 0000000..f69ed97
--- /dev/null
+++ b/src/resources/vue/components/Box.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/resources/vue/components/Button.vue b/src/resources/vue/components/Button.vue
new file mode 100644
index 0000000..8ddbbbd
--- /dev/null
+++ b/src/resources/vue/components/Button.vue
@@ -0,0 +1,57 @@
+
+
+ {{ content }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/resources/vue/components/Input.vue b/src/resources/vue/components/Input.vue
new file mode 100644
index 0000000..257c8db
--- /dev/null
+++ b/src/resources/vue/components/Input.vue
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/resources/vue/components/ItemCard.vue b/src/resources/vue/components/ItemCard.vue
new file mode 100644
index 0000000..bfa62da
--- /dev/null
+++ b/src/resources/vue/components/ItemCard.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
{{ title }}
+
{{ description }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/resources/vue/components/icon.vue b/src/resources/vue/components/icon.vue
new file mode 100644
index 0000000..b20a4b1
--- /dev/null
+++ b/src/resources/vue/components/icon.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
diff --git a/src/resources/vue/components/rating.vue b/src/resources/vue/components/rating.vue
new file mode 100644
index 0000000..51db3d3
--- /dev/null
+++ b/src/resources/vue/components/rating.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/resources/vue/components/terminal-scan.vue b/src/resources/vue/components/terminal-scan.vue
new file mode 100644
index 0000000..1edfbce
--- /dev/null
+++ b/src/resources/vue/components/terminal-scan.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
Scan een artikel om te lenen
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/resources/vue/pages/index.vue b/src/resources/vue/pages/index.vue
index 187f504..505b780 100644
--- a/src/resources/vue/pages/index.vue
+++ b/src/resources/vue/pages/index.vue
@@ -1,32 +1,8 @@
- Toggle Model
-
+ Hello World!
-
-
-
+
\ No newline at end of file
diff --git a/src/resources/vue/scss/global.scss b/src/resources/vue/scss/global.scss
index 2779aea..ab61050 100644
--- a/src/resources/vue/scss/global.scss
+++ b/src/resources/vue/scss/global.scss
@@ -1,3 +1,4 @@
+@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@100;200;300;400;500;600;700;800;900&display=swap');
@import './variables.scss';
html,
@@ -14,4 +15,9 @@ h4,
h5,
h6 {
font-weight: bold;
-}
\ No newline at end of file
+ margin: 0;
+}
+
+p {
+ margin: 0;
+}
diff --git a/src/routes/api.php b/src/routes/api.php
index 889937e..35f3522 100644
--- a/src/routes/api.php
+++ b/src/routes/api.php
@@ -16,4 +16,4 @@
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
-});
+});
\ No newline at end of file