0.1.5
This commit is contained in:
@@ -63,7 +63,7 @@ class CleanupReadingHistories extends Command
|
||||
/**
|
||||
* Clean up duplicate reading histories for a single user.
|
||||
*
|
||||
* @param \App\Models\User $user
|
||||
* @param User $user
|
||||
* @return void
|
||||
*/
|
||||
protected function cleanUpForUser(User $user): void
|
||||
|
||||
@@ -59,6 +59,21 @@ class ComicController extends Controller
|
||||
return str_replace(array_keys($this->zhConversion::ZH_TO_HANT), array_values($this->zhConversion::ZH_TO_HANT), $string);
|
||||
}
|
||||
|
||||
public function toggleHistory(Request $request): JsonResponse
|
||||
{
|
||||
if ($request->session()->has('historyDisabled')) {
|
||||
$newValue = !$request->session()->get('historyDisabled');
|
||||
} else {
|
||||
$newValue = true;
|
||||
}
|
||||
|
||||
// Put Session
|
||||
$request->session()->put('historyDisabled', $newValue);
|
||||
|
||||
// Return to frontend
|
||||
return response()->json(['historyDisabled' => $newValue]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show user favourites
|
||||
*
|
||||
@@ -323,7 +338,9 @@ class ComicController extends Controller
|
||||
ImageUpsert::dispatch($comicObj->id, $chapterObj->id, $chapter);
|
||||
|
||||
// Update history
|
||||
if (!$request->session()->get('historyDisabled', false)) {
|
||||
$request->user()->readingHistories()->attach($chapterObj->id, ['comic_id' => $comicObj->id]);
|
||||
}
|
||||
|
||||
// Get chapters from DB
|
||||
$chapters = $comicObj->chapters()->where('metadata->group_path_word', $chapter['chapter']['group_path_word'])->orderBy('order')->get(['name', 'chapter_uuid']);
|
||||
|
||||
@@ -13,13 +13,12 @@ class PagesController
|
||||
{
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param string $path
|
||||
* @return ResponseFactory|Application|\Illuminate\Http\Response|Response
|
||||
*/
|
||||
public function show(Request $request, string $path = '')
|
||||
public function show(string $path = '')
|
||||
{
|
||||
if (!File::exists(resource_path("js/Pages/Pages/$path.jsx"))) {
|
||||
if (!File::exists(resource_path("js/Pages/Pages/{$path}.jsx"))) {
|
||||
return response('Page not found', 404);
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,8 @@ class UserCollection extends ResourceCollection
|
||||
'name' => $request->user()->name,
|
||||
'email' => $request->user()->email,
|
||||
'settings' => $request->user()->settings,
|
||||
'favourites' => $request->user()->favourites()->get(['pathword'])->pluck('pathword')
|
||||
'favourites' => $request->user()->favourites()->get(['pathword'])->pluck('pathword'),
|
||||
'historyDisabled' => $request->session()->get('historyDisabled', false),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,16 +55,25 @@ class User extends Authenticatable implements MustVerifyEmail
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return BelongsToMany
|
||||
*/
|
||||
public function favourites(): BelongsToMany
|
||||
{
|
||||
return $this->belongsToMany(Comic::class, 'user_favourite')->withTimestamps();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return BelongsToMany
|
||||
*/
|
||||
public function readingHistories(): BelongsToMany
|
||||
{
|
||||
return $this->belongsToMany(Chapter::class, 'reading_histories')->withTimestamps();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function cleanUpReadingHistories(): array
|
||||
{
|
||||
// Get the user's ID
|
||||
|
||||
354
composer.lock
generated
354
composer.lock
generated
@@ -970,16 +970,16 @@
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/uri-template",
|
||||
"version": "v1.0.3",
|
||||
"version": "v1.0.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/uri-template.git",
|
||||
"reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c"
|
||||
"reference": "30e286560c137526eccd4ce21b2de477ab0676d2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c",
|
||||
"reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c",
|
||||
"url": "https://api.github.com/repos/guzzle/uri-template/zipball/30e286560c137526eccd4ce21b2de477ab0676d2",
|
||||
"reference": "30e286560c137526eccd4ce21b2de477ab0676d2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1036,7 +1036,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/uri-template/issues",
|
||||
"source": "https://github.com/guzzle/uri-template/tree/v1.0.3"
|
||||
"source": "https://github.com/guzzle/uri-template/tree/v1.0.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1052,7 +1052,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-12-03T19:50:20+00:00"
|
||||
"time": "2025-02-03T10:55:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "inertiajs/inertia-laravel",
|
||||
@@ -1189,16 +1189,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/framework",
|
||||
"version": "v11.39.0",
|
||||
"version": "v11.41.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/framework.git",
|
||||
"reference": "996c96955f78e8a2b26a24c490a1721cfb14574f"
|
||||
"reference": "3ef433d5865f30a19b6b1be247586068399b59cc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/996c96955f78e8a2b26a24c490a1721cfb14574f",
|
||||
"reference": "996c96955f78e8a2b26a24c490a1721cfb14574f",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/3ef433d5865f30a19b6b1be247586068399b59cc",
|
||||
"reference": "3ef433d5865f30a19b6b1be247586068399b59cc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1224,7 +1224,7 @@
|
||||
"league/flysystem-local": "^3.25.1",
|
||||
"league/uri": "^7.5.1",
|
||||
"monolog/monolog": "^3.0",
|
||||
"nesbot/carbon": "^2.72.2|^3.4",
|
||||
"nesbot/carbon": "^2.72.6|^3.8.4",
|
||||
"nunomaduro/termwind": "^2.0",
|
||||
"php": "^8.2",
|
||||
"psr/container": "^1.1.1|^2.0.1",
|
||||
@@ -1299,6 +1299,7 @@
|
||||
"fakerphp/faker": "^1.24",
|
||||
"guzzlehttp/promises": "^2.0.3",
|
||||
"guzzlehttp/psr7": "^2.4",
|
||||
"laravel/pint": "^1.18",
|
||||
"league/flysystem-aws-s3-v3": "^3.25.1",
|
||||
"league/flysystem-ftp": "^3.25.1",
|
||||
"league/flysystem-path-prefixing": "^3.25.1",
|
||||
@@ -1399,7 +1400,7 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2025-01-21T15:02:43+00:00"
|
||||
"time": "2025-01-30T13:25:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/horizon",
|
||||
@@ -1483,16 +1484,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/prompts",
|
||||
"version": "v0.3.3",
|
||||
"version": "v0.3.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/prompts.git",
|
||||
"reference": "749395fcd5f8f7530fe1f00dfa84eb22c83d94ea"
|
||||
"reference": "abeaa2ba4294247d5409490d1ca1bc6248087011"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/prompts/zipball/749395fcd5f8f7530fe1f00dfa84eb22c83d94ea",
|
||||
"reference": "749395fcd5f8f7530fe1f00dfa84eb22c83d94ea",
|
||||
"url": "https://api.github.com/repos/laravel/prompts/zipball/abeaa2ba4294247d5409490d1ca1bc6248087011",
|
||||
"reference": "abeaa2ba4294247d5409490d1ca1bc6248087011",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1506,7 +1507,7 @@
|
||||
"laravel/framework": ">=10.17.0 <10.25.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"illuminate/collections": "^10.0|^11.0",
|
||||
"illuminate/collections": "^10.0|^11.0|^12.0",
|
||||
"mockery/mockery": "^1.5",
|
||||
"pestphp/pest": "^2.3|^3.4",
|
||||
"phpstan/phpstan": "^1.11",
|
||||
@@ -1536,38 +1537,38 @@
|
||||
"description": "Add beautiful and user-friendly forms to your command-line applications.",
|
||||
"support": {
|
||||
"issues": "https://github.com/laravel/prompts/issues",
|
||||
"source": "https://github.com/laravel/prompts/tree/v0.3.3"
|
||||
"source": "https://github.com/laravel/prompts/tree/v0.3.4"
|
||||
},
|
||||
"time": "2024-12-30T15:53:31+00:00"
|
||||
"time": "2025-01-24T15:41:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/sanctum",
|
||||
"version": "v4.0.7",
|
||||
"version": "v4.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/sanctum.git",
|
||||
"reference": "698064236a46df016e64a7eb059b1414e0b281df"
|
||||
"reference": "ec1dd9ddb2ab370f79dfe724a101856e0963f43c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/sanctum/zipball/698064236a46df016e64a7eb059b1414e0b281df",
|
||||
"reference": "698064236a46df016e64a7eb059b1414e0b281df",
|
||||
"url": "https://api.github.com/repos/laravel/sanctum/zipball/ec1dd9ddb2ab370f79dfe724a101856e0963f43c",
|
||||
"reference": "ec1dd9ddb2ab370f79dfe724a101856e0963f43c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"illuminate/console": "^11.0",
|
||||
"illuminate/contracts": "^11.0",
|
||||
"illuminate/database": "^11.0",
|
||||
"illuminate/support": "^11.0",
|
||||
"illuminate/console": "^11.0|^12.0",
|
||||
"illuminate/contracts": "^11.0|^12.0",
|
||||
"illuminate/database": "^11.0|^12.0",
|
||||
"illuminate/support": "^11.0|^12.0",
|
||||
"php": "^8.2",
|
||||
"symfony/console": "^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "^1.6",
|
||||
"orchestra/testbench": "^9.0",
|
||||
"orchestra/testbench": "^9.0|^10.0",
|
||||
"phpstan/phpstan": "^1.10",
|
||||
"phpunit/phpunit": "^10.5"
|
||||
"phpunit/phpunit": "^11.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -1602,29 +1603,29 @@
|
||||
"issues": "https://github.com/laravel/sanctum/issues",
|
||||
"source": "https://github.com/laravel/sanctum"
|
||||
},
|
||||
"time": "2024-12-11T16:40:21+00:00"
|
||||
"time": "2025-01-26T19:34:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/serializable-closure",
|
||||
"version": "v2.0.1",
|
||||
"version": "v2.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/serializable-closure.git",
|
||||
"reference": "613b2d4998f85564d40497e05e89cb6d9bd1cbe8"
|
||||
"reference": "2e1a362527783bcab6c316aad51bf36c5513ae44"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/613b2d4998f85564d40497e05e89cb6d9bd1cbe8",
|
||||
"reference": "613b2d4998f85564d40497e05e89cb6d9bd1cbe8",
|
||||
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/2e1a362527783bcab6c316aad51bf36c5513ae44",
|
||||
"reference": "2e1a362527783bcab6c316aad51bf36c5513ae44",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^8.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"illuminate/support": "^10.0|^11.0",
|
||||
"illuminate/support": "^10.0|^11.0|^12.0",
|
||||
"nesbot/carbon": "^2.67|^3.0",
|
||||
"pestphp/pest": "^2.36",
|
||||
"pestphp/pest": "^2.36|^3.0",
|
||||
"phpstan/phpstan": "^2.0",
|
||||
"symfony/var-dumper": "^6.2.0|^7.0.0"
|
||||
},
|
||||
@@ -1663,26 +1664,26 @@
|
||||
"issues": "https://github.com/laravel/serializable-closure/issues",
|
||||
"source": "https://github.com/laravel/serializable-closure"
|
||||
},
|
||||
"time": "2024-12-16T15:26:28+00:00"
|
||||
"time": "2025-01-24T15:42:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/tinker",
|
||||
"version": "v2.10.0",
|
||||
"version": "v2.10.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/tinker.git",
|
||||
"reference": "ba4d51eb56de7711b3a37d63aa0643e99a339ae5"
|
||||
"reference": "22177cc71807d38f2810c6204d8f7183d88a57d3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/tinker/zipball/ba4d51eb56de7711b3a37d63aa0643e99a339ae5",
|
||||
"reference": "ba4d51eb56de7711b3a37d63aa0643e99a339ae5",
|
||||
"url": "https://api.github.com/repos/laravel/tinker/zipball/22177cc71807d38f2810c6204d8f7183d88a57d3",
|
||||
"reference": "22177cc71807d38f2810c6204d8f7183d88a57d3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0",
|
||||
"illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0",
|
||||
"illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0",
|
||||
"illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
|
||||
"illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
|
||||
"illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
|
||||
"php": "^7.2.5|^8.0",
|
||||
"psy/psysh": "^0.11.1|^0.12.0",
|
||||
"symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0"
|
||||
@@ -1690,10 +1691,10 @@
|
||||
"require-dev": {
|
||||
"mockery/mockery": "~1.3.3|^1.4.2",
|
||||
"phpstan/phpstan": "^1.10",
|
||||
"phpunit/phpunit": "^8.5.8|^9.3.3"
|
||||
"phpunit/phpunit": "^8.5.8|^9.3.3|^10.0"
|
||||
},
|
||||
"suggest": {
|
||||
"illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)."
|
||||
"illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0)."
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -1727,9 +1728,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/laravel/tinker/issues",
|
||||
"source": "https://github.com/laravel/tinker/tree/v2.10.0"
|
||||
"source": "https://github.com/laravel/tinker/tree/v2.10.1"
|
||||
},
|
||||
"time": "2024-09-23T13:32:56+00:00"
|
||||
"time": "2025-01-27T14:24:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/commonmark",
|
||||
@@ -3852,16 +3853,16 @@
|
||||
},
|
||||
{
|
||||
"name": "sentry/sentry-laravel",
|
||||
"version": "4.10.2",
|
||||
"version": "4.12.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/getsentry/sentry-laravel.git",
|
||||
"reference": "0e2e5bc4311da51349487afcf67b8fca937f6d94"
|
||||
"reference": "da1ee3417dfb3576a6aaa0f8b25892ebdb98fdb0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/0e2e5bc4311da51349487afcf67b8fca937f6d94",
|
||||
"reference": "0e2e5bc4311da51349487afcf67b8fca937f6d94",
|
||||
"url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/da1ee3417dfb3576a6aaa0f8b25892ebdb98fdb0",
|
||||
"reference": "da1ee3417dfb3576a6aaa0f8b25892ebdb98fdb0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3925,7 +3926,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/getsentry/sentry-laravel/issues",
|
||||
"source": "https://github.com/getsentry/sentry-laravel/tree/4.10.2"
|
||||
"source": "https://github.com/getsentry/sentry-laravel/tree/4.12.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -3937,7 +3938,7 @@
|
||||
"type": "custom"
|
||||
}
|
||||
],
|
||||
"time": "2024-12-17T11:38:58+00:00"
|
||||
"time": "2025-02-05T13:13:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/clock",
|
||||
@@ -4240,16 +4241,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/error-handler",
|
||||
"version": "v7.2.1",
|
||||
"version": "v7.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/error-handler.git",
|
||||
"reference": "6150b89186573046167796fa5f3f76601d5145f8"
|
||||
"reference": "959a74d044a6db21f4caa6d695648dcb5584cb49"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/error-handler/zipball/6150b89186573046167796fa5f3f76601d5145f8",
|
||||
"reference": "6150b89186573046167796fa5f3f76601d5145f8",
|
||||
"url": "https://api.github.com/repos/symfony/error-handler/zipball/959a74d044a6db21f4caa6d695648dcb5584cb49",
|
||||
"reference": "959a74d044a6db21f4caa6d695648dcb5584cb49",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4295,7 +4296,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/v7.2.1"
|
||||
"source": "https://github.com/symfony/error-handler/tree/v7.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4311,7 +4312,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-12-07T08:50:44+00:00"
|
||||
"time": "2025-01-07T09:39:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher",
|
||||
@@ -4535,16 +4536,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-foundation",
|
||||
"version": "v7.2.2",
|
||||
"version": "v7.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-foundation.git",
|
||||
"reference": "62d1a43796ca3fea3f83a8470dfe63a4af3bc588"
|
||||
"reference": "ee1b504b8926198be89d05e5b6fc4c3810c090f0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/62d1a43796ca3fea3f83a8470dfe63a4af3bc588",
|
||||
"reference": "62d1a43796ca3fea3f83a8470dfe63a4af3bc588",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/ee1b504b8926198be89d05e5b6fc4c3810c090f0",
|
||||
"reference": "ee1b504b8926198be89d05e5b6fc4c3810c090f0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4593,7 +4594,7 @@
|
||||
"description": "Defines an object-oriented layer for the HTTP specification",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/http-foundation/tree/v7.2.2"
|
||||
"source": "https://github.com/symfony/http-foundation/tree/v7.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4609,20 +4610,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-12-30T19:00:17+00:00"
|
||||
"time": "2025-01-17T10:56:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-kernel",
|
||||
"version": "v7.2.2",
|
||||
"version": "v7.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-kernel.git",
|
||||
"reference": "3c432966bd8c7ec7429663105f5a02d7e75b4306"
|
||||
"reference": "caae9807f8e25a9b43ce8cc6fafab6cf91f0cc9b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/3c432966bd8c7ec7429663105f5a02d7e75b4306",
|
||||
"reference": "3c432966bd8c7ec7429663105f5a02d7e75b4306",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/caae9807f8e25a9b43ce8cc6fafab6cf91f0cc9b",
|
||||
"reference": "caae9807f8e25a9b43ce8cc6fafab6cf91f0cc9b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4707,7 +4708,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/v7.2.2"
|
||||
"source": "https://github.com/symfony/http-kernel/tree/v7.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4723,20 +4724,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-12-31T14:59:40+00:00"
|
||||
"time": "2025-01-29T07:40:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/mailer",
|
||||
"version": "v7.2.0",
|
||||
"version": "v7.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/mailer.git",
|
||||
"reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc"
|
||||
"reference": "f3871b182c44997cf039f3b462af4a48fb85f9d3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/mailer/zipball/e4d358702fb66e4c8a2af08e90e7271a62de39cc",
|
||||
"reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc",
|
||||
"url": "https://api.github.com/repos/symfony/mailer/zipball/f3871b182c44997cf039f3b462af4a48fb85f9d3",
|
||||
"reference": "f3871b182c44997cf039f3b462af4a48fb85f9d3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4787,7 +4788,7 @@
|
||||
"description": "Helps sending emails",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/mailer/tree/v7.2.0"
|
||||
"source": "https://github.com/symfony/mailer/tree/v7.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4803,20 +4804,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-11-25T15:21:05+00:00"
|
||||
"time": "2025-01-27T11:08:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/mime",
|
||||
"version": "v7.2.1",
|
||||
"version": "v7.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/mime.git",
|
||||
"reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283"
|
||||
"reference": "2fc3b4bd67e4747e45195bc4c98bea4628476204"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/mime/zipball/7f9617fcf15cb61be30f8b252695ed5e2bfac283",
|
||||
"reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283",
|
||||
"url": "https://api.github.com/repos/symfony/mime/zipball/2fc3b4bd67e4747e45195bc4c98bea4628476204",
|
||||
"reference": "2fc3b4bd67e4747e45195bc4c98bea4628476204",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4871,7 +4872,7 @@
|
||||
"mime-type"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/mime/tree/v7.2.1"
|
||||
"source": "https://github.com/symfony/mime/tree/v7.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4887,7 +4888,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-12-07T08:50:44+00:00"
|
||||
"time": "2025-01-27T11:08:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/options-resolver",
|
||||
@@ -5738,16 +5739,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/routing",
|
||||
"version": "v7.2.0",
|
||||
"version": "v7.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/routing.git",
|
||||
"reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e"
|
||||
"reference": "ee9a67edc6baa33e5fae662f94f91fd262930996"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/e10a2450fa957af6c448b9b93c9010a4e4c0725e",
|
||||
"reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/ee9a67edc6baa33e5fae662f94f91fd262930996",
|
||||
"reference": "ee9a67edc6baa33e5fae662f94f91fd262930996",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5799,7 +5800,7 @@
|
||||
"url"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/routing/tree/v7.2.0"
|
||||
"source": "https://github.com/symfony/routing/tree/v7.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -5815,7 +5816,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-11-25T11:08:51+00:00"
|
||||
"time": "2025-01-17T10:56:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/service-contracts",
|
||||
@@ -6236,16 +6237,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-dumper",
|
||||
"version": "v7.2.0",
|
||||
"version": "v7.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/var-dumper.git",
|
||||
"reference": "c6a22929407dec8765d6e2b6ff85b800b245879c"
|
||||
"reference": "82b478c69745d8878eb60f9a049a4d584996f73a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/c6a22929407dec8765d6e2b6ff85b800b245879c",
|
||||
"reference": "c6a22929407dec8765d6e2b6ff85b800b245879c",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/82b478c69745d8878eb60f9a049a4d584996f73a",
|
||||
"reference": "82b478c69745d8878eb60f9a049a4d584996f73a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -6299,7 +6300,7 @@
|
||||
"dump"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/var-dumper/tree/v7.2.0"
|
||||
"source": "https://github.com/symfony/var-dumper/tree/v7.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -6315,20 +6316,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-11-08T15:48:14+00:00"
|
||||
"time": "2025-01-17T11:39:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "tightenco/ziggy",
|
||||
"version": "v2.4.2",
|
||||
"version": "v2.5.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tighten/ziggy.git",
|
||||
"reference": "6612c8c9b2d5b3e74fd67c58c11465df1273f384"
|
||||
"reference": "40df446f6053787edb245381c3b3d80b031b5fc0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/tighten/ziggy/zipball/6612c8c9b2d5b3e74fd67c58c11465df1273f384",
|
||||
"reference": "6612c8c9b2d5b3e74fd67c58c11465df1273f384",
|
||||
"url": "https://api.github.com/repos/tighten/ziggy/zipball/40df446f6053787edb245381c3b3d80b031b5fc0",
|
||||
"reference": "40df446f6053787edb245381c3b3d80b031b5fc0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -6383,9 +6384,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/tighten/ziggy/issues",
|
||||
"source": "https://github.com/tighten/ziggy/tree/v2.4.2"
|
||||
"source": "https://github.com/tighten/ziggy/tree/v2.5.1"
|
||||
},
|
||||
"time": "2025-01-02T20:06:52+00:00"
|
||||
"time": "2025-01-31T19:23:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "tijsverkoyen/css-to-inline-styles",
|
||||
@@ -6924,16 +6925,16 @@
|
||||
},
|
||||
{
|
||||
"name": "filp/whoops",
|
||||
"version": "2.16.0",
|
||||
"version": "2.17.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/filp/whoops.git",
|
||||
"reference": "befcdc0e5dce67252aa6322d82424be928214fa2"
|
||||
"reference": "075bc0c26631110584175de6523ab3f1652eb28e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/filp/whoops/zipball/befcdc0e5dce67252aa6322d82424be928214fa2",
|
||||
"reference": "befcdc0e5dce67252aa6322d82424be928214fa2",
|
||||
"url": "https://api.github.com/repos/filp/whoops/zipball/075bc0c26631110584175de6523ab3f1652eb28e",
|
||||
"reference": "075bc0c26631110584175de6523ab3f1652eb28e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -6983,7 +6984,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/filp/whoops/issues",
|
||||
"source": "https://github.com/filp/whoops/tree/2.16.0"
|
||||
"source": "https://github.com/filp/whoops/tree/2.17.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -6991,7 +6992,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2024-09-25T12:00:00+00:00"
|
||||
"time": "2025-01-25T12:00:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "hamcrest/hamcrest-php",
|
||||
@@ -7046,16 +7047,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/breeze",
|
||||
"version": "v2.3.2",
|
||||
"version": "v2.3.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/breeze.git",
|
||||
"reference": "2a4764055792b14e0e571a710adbda9c9eb300d4"
|
||||
"reference": "c40f7fce4fd80e39c7f4317697eeba21d2344003"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/breeze/zipball/2a4764055792b14e0e571a710adbda9c9eb300d4",
|
||||
"reference": "2a4764055792b14e0e571a710adbda9c9eb300d4",
|
||||
"url": "https://api.github.com/repos/laravel/breeze/zipball/c40f7fce4fd80e39c7f4317697eeba21d2344003",
|
||||
"reference": "c40f7fce4fd80e39c7f4317697eeba21d2344003",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -7103,39 +7104,39 @@
|
||||
"issues": "https://github.com/laravel/breeze/issues",
|
||||
"source": "https://github.com/laravel/breeze"
|
||||
},
|
||||
"time": "2025-01-21T14:57:42+00:00"
|
||||
"time": "2025-01-26T19:08:50+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/pail",
|
||||
"version": "v1.2.1",
|
||||
"version": "v1.2.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/pail.git",
|
||||
"reference": "353ac12134b98e2e7c3333d916bd3e523931e583"
|
||||
"reference": "f31f4980f52be17c4667f3eafe034e6826787db2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/pail/zipball/353ac12134b98e2e7c3333d916bd3e523931e583",
|
||||
"reference": "353ac12134b98e2e7c3333d916bd3e523931e583",
|
||||
"url": "https://api.github.com/repos/laravel/pail/zipball/f31f4980f52be17c4667f3eafe034e6826787db2",
|
||||
"reference": "f31f4980f52be17c4667f3eafe034e6826787db2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-mbstring": "*",
|
||||
"illuminate/console": "^10.24|^11.0",
|
||||
"illuminate/contracts": "^10.24|^11.0",
|
||||
"illuminate/log": "^10.24|^11.0",
|
||||
"illuminate/process": "^10.24|^11.0",
|
||||
"illuminate/support": "^10.24|^11.0",
|
||||
"illuminate/console": "^10.24|^11.0|^12.0",
|
||||
"illuminate/contracts": "^10.24|^11.0|^12.0",
|
||||
"illuminate/log": "^10.24|^11.0|^12.0",
|
||||
"illuminate/process": "^10.24|^11.0|^12.0",
|
||||
"illuminate/support": "^10.24|^11.0|^12.0",
|
||||
"nunomaduro/termwind": "^1.15|^2.0",
|
||||
"php": "^8.2",
|
||||
"symfony/console": "^6.0|^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"laravel/framework": "^10.24|^11.0",
|
||||
"laravel/framework": "^10.24|^11.0|^12.0",
|
||||
"laravel/pint": "^1.13",
|
||||
"orchestra/testbench-core": "^8.12|^9.0",
|
||||
"pestphp/pest": "^2.20",
|
||||
"pestphp/pest-plugin-type-coverage": "^2.3",
|
||||
"orchestra/testbench-core": "^8.13|^9.0|^10.0",
|
||||
"pestphp/pest": "^2.20|^3.0",
|
||||
"pestphp/pest-plugin-type-coverage": "^2.3|^3.0",
|
||||
"phpstan/phpstan": "^1.10",
|
||||
"symfony/var-dumper": "^6.3|^7.0"
|
||||
},
|
||||
@@ -7181,7 +7182,7 @@
|
||||
"issues": "https://github.com/laravel/pail/issues",
|
||||
"source": "https://github.com/laravel/pail"
|
||||
},
|
||||
"time": "2024-10-23T12:56:23+00:00"
|
||||
"time": "2025-01-28T15:15:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/pint",
|
||||
@@ -7251,28 +7252,28 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/sail",
|
||||
"version": "v1.40.0",
|
||||
"version": "v1.41.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/sail.git",
|
||||
"reference": "237e70656d8eface4839de51d101284bd5d0cf71"
|
||||
"reference": "fe1a4ada0abb5e4bd99eb4e4b0d87906c00cdeec"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/sail/zipball/237e70656d8eface4839de51d101284bd5d0cf71",
|
||||
"reference": "237e70656d8eface4839de51d101284bd5d0cf71",
|
||||
"url": "https://api.github.com/repos/laravel/sail/zipball/fe1a4ada0abb5e4bd99eb4e4b0d87906c00cdeec",
|
||||
"reference": "fe1a4ada0abb5e4bd99eb4e4b0d87906c00cdeec",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"illuminate/console": "^9.52.16|^10.0|^11.0",
|
||||
"illuminate/contracts": "^9.52.16|^10.0|^11.0",
|
||||
"illuminate/support": "^9.52.16|^10.0|^11.0",
|
||||
"illuminate/console": "^9.52.16|^10.0|^11.0|^12.0",
|
||||
"illuminate/contracts": "^9.52.16|^10.0|^11.0|^12.0",
|
||||
"illuminate/support": "^9.52.16|^10.0|^11.0|^12.0",
|
||||
"php": "^8.0",
|
||||
"symfony/console": "^6.0|^7.0",
|
||||
"symfony/yaml": "^6.0|^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"orchestra/testbench": "^7.0|^8.0|^9.0",
|
||||
"orchestra/testbench": "^7.0|^8.0|^9.0|^10.0",
|
||||
"phpstan/phpstan": "^1.10"
|
||||
},
|
||||
"bin": [
|
||||
@@ -7310,7 +7311,7 @@
|
||||
"issues": "https://github.com/laravel/sail/issues",
|
||||
"source": "https://github.com/laravel/sail"
|
||||
},
|
||||
"time": "2025-01-13T16:57:11+00:00"
|
||||
"time": "2025-01-24T15:45:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "mockery/mockery",
|
||||
@@ -7457,37 +7458,37 @@
|
||||
},
|
||||
{
|
||||
"name": "nunomaduro/collision",
|
||||
"version": "v8.5.0",
|
||||
"version": "v8.6.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nunomaduro/collision.git",
|
||||
"reference": "f5c101b929c958e849a633283adff296ed5f38f5"
|
||||
"reference": "86f003c132143d5a2ab214e19933946409e0cae7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nunomaduro/collision/zipball/f5c101b929c958e849a633283adff296ed5f38f5",
|
||||
"reference": "f5c101b929c958e849a633283adff296ed5f38f5",
|
||||
"url": "https://api.github.com/repos/nunomaduro/collision/zipball/86f003c132143d5a2ab214e19933946409e0cae7",
|
||||
"reference": "86f003c132143d5a2ab214e19933946409e0cae7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"filp/whoops": "^2.16.0",
|
||||
"nunomaduro/termwind": "^2.1.0",
|
||||
"nunomaduro/termwind": "^2.3.0",
|
||||
"php": "^8.2.0",
|
||||
"symfony/console": "^7.1.5"
|
||||
"symfony/console": "^7.2.1"
|
||||
},
|
||||
"conflict": {
|
||||
"laravel/framework": "<11.0.0 || >=12.0.0",
|
||||
"phpunit/phpunit": "<10.5.1 || >=12.0.0"
|
||||
"laravel/framework": "<11.39.1 || >=13.0.0",
|
||||
"phpunit/phpunit": "<11.5.3 || >=12.0.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"larastan/larastan": "^2.9.8",
|
||||
"laravel/framework": "^11.28.0",
|
||||
"laravel/pint": "^1.18.1",
|
||||
"laravel/sail": "^1.36.0",
|
||||
"laravel/sanctum": "^4.0.3",
|
||||
"larastan/larastan": "^2.9.12",
|
||||
"laravel/framework": "^11.39.1",
|
||||
"laravel/pint": "^1.20.0",
|
||||
"laravel/sail": "^1.40.0",
|
||||
"laravel/sanctum": "^4.0.7",
|
||||
"laravel/tinker": "^2.10.0",
|
||||
"orchestra/testbench-core": "^9.5.3",
|
||||
"pestphp/pest": "^2.36.0 || ^3.4.0",
|
||||
"orchestra/testbench-core": "^9.9.2",
|
||||
"pestphp/pest": "^3.7.3",
|
||||
"sebastian/environment": "^6.1.0 || ^7.2.0"
|
||||
},
|
||||
"type": "library",
|
||||
@@ -7525,6 +7526,7 @@
|
||||
"cli",
|
||||
"command-line",
|
||||
"console",
|
||||
"dev",
|
||||
"error",
|
||||
"handling",
|
||||
"laravel",
|
||||
@@ -7550,25 +7552,25 @@
|
||||
"type": "patreon"
|
||||
}
|
||||
],
|
||||
"time": "2024-10-15T16:06:32+00:00"
|
||||
"time": "2025-01-23T13:41:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "pestphp/pest",
|
||||
"version": "v3.7.2",
|
||||
"version": "v3.7.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/pestphp/pest.git",
|
||||
"reference": "709ecb1ba2641fc0c4653ebe1fd8a402bbf4d18b"
|
||||
"reference": "4a987d3d5c4e3ba36c76fecbf56113baac2d1b2b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/pestphp/pest/zipball/709ecb1ba2641fc0c4653ebe1fd8a402bbf4d18b",
|
||||
"reference": "709ecb1ba2641fc0c4653ebe1fd8a402bbf4d18b",
|
||||
"url": "https://api.github.com/repos/pestphp/pest/zipball/4a987d3d5c4e3ba36c76fecbf56113baac2d1b2b",
|
||||
"reference": "4a987d3d5c4e3ba36c76fecbf56113baac2d1b2b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"brianium/paratest": "^7.7.0",
|
||||
"nunomaduro/collision": "^8.5.0",
|
||||
"nunomaduro/collision": "^8.6.1",
|
||||
"nunomaduro/termwind": "^2.3.0",
|
||||
"pestphp/pest-plugin": "^3.0.0",
|
||||
"pestphp/pest-plugin-arch": "^3.0.0",
|
||||
@@ -7650,7 +7652,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/pestphp/pest/issues",
|
||||
"source": "https://github.com/pestphp/pest/tree/v3.7.2"
|
||||
"source": "https://github.com/pestphp/pest/tree/v3.7.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -7662,7 +7664,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2025-01-19T17:35:09+00:00"
|
||||
"time": "2025-01-23T14:03:29+00:00"
|
||||
},
|
||||
{
|
||||
"name": "pestphp/pest-plugin",
|
||||
@@ -7806,27 +7808,27 @@
|
||||
},
|
||||
{
|
||||
"name": "pestphp/pest-plugin-laravel",
|
||||
"version": "v3.0.0",
|
||||
"version": "v3.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/pestphp/pest-plugin-laravel.git",
|
||||
"reference": "7dd98c0c3b3542970ec21fce80ec5c88916ac469"
|
||||
"reference": "1c4e994476375c72aa7aebaaa97aa98f5d5378cd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/7dd98c0c3b3542970ec21fce80ec5c88916ac469",
|
||||
"reference": "7dd98c0c3b3542970ec21fce80ec5c88916ac469",
|
||||
"url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/1c4e994476375c72aa7aebaaa97aa98f5d5378cd",
|
||||
"reference": "1c4e994476375c72aa7aebaaa97aa98f5d5378cd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"laravel/framework": "^11.22.0",
|
||||
"pestphp/pest": "^3.0.0",
|
||||
"laravel/framework": "^11.39.1|^12.0.0",
|
||||
"pestphp/pest": "^3.7.4",
|
||||
"php": "^8.2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"laravel/dusk": "^8.2.5",
|
||||
"orchestra/testbench": "^9.4.0",
|
||||
"pestphp/pest-dev-tools": "^3.0.0"
|
||||
"laravel/dusk": "^8.2.13|dev-develop",
|
||||
"orchestra/testbench": "^9.9.0|^10.0.0",
|
||||
"pestphp/pest-dev-tools": "^3.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -7864,7 +7866,7 @@
|
||||
"unit"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/pestphp/pest-plugin-laravel/tree/v3.0.0"
|
||||
"source": "https://github.com/pestphp/pest-plugin-laravel/tree/v3.1.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -7876,7 +7878,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2024-09-08T23:32:52+00:00"
|
||||
"time": "2025-01-24T13:22:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "pestphp/pest-plugin-mutate",
|
||||
@@ -9694,16 +9696,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
"version": "v7.2.0",
|
||||
"version": "v7.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/yaml.git",
|
||||
"reference": "099581e99f557e9f16b43c5916c26380b54abb22"
|
||||
"reference": "ac238f173df0c9c1120f862d0f599e17535a87ec"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/099581e99f557e9f16b43c5916c26380b54abb22",
|
||||
"reference": "099581e99f557e9f16b43c5916c26380b54abb22",
|
||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/ac238f173df0c9c1120f862d0f599e17535a87ec",
|
||||
"reference": "ac238f173df0c9c1120f862d0f599e17535a87ec",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -9746,7 +9748,7 @@
|
||||
"description": "Loads and dumps YAML files",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/yaml/tree/v7.2.0"
|
||||
"source": "https://github.com/symfony/yaml/tree/v7.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -9762,7 +9764,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-10-23T06:56:12+00:00"
|
||||
"time": "2025-01-07T12:55:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ta-tikoma/phpunit-architecture-test",
|
||||
|
||||
30
package.json
30
package.json
@@ -18,24 +18,24 @@
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"tailwindcss": "^3.4.17",
|
||||
"vite": "^6.0.11"
|
||||
"vite": "^6.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@hookform/resolvers": "^3.10.0",
|
||||
"@radix-ui/react-avatar": "^1.1.2",
|
||||
"@radix-ui/react-checkbox": "^1.1.3",
|
||||
"@radix-ui/react-collapsible": "^1.1.2",
|
||||
"@radix-ui/react-dialog": "^1.1.4",
|
||||
"@radix-ui/react-dropdown-menu": "^2.1.4",
|
||||
"@radix-ui/react-label": "^2.1.1",
|
||||
"@radix-ui/react-select": "^2.1.4",
|
||||
"@radix-ui/react-separator": "^1.1.1",
|
||||
"@radix-ui/react-slot": "^1.1.1",
|
||||
"@radix-ui/react-switch": "^1.1.2",
|
||||
"@radix-ui/react-tabs": "^1.1.2",
|
||||
"@radix-ui/react-toast": "^1.2.4",
|
||||
"@radix-ui/react-tooltip": "^1.1.6",
|
||||
"@sentry/react": "^8.50.0",
|
||||
"@radix-ui/react-avatar": "^1.1.3",
|
||||
"@radix-ui/react-checkbox": "^1.1.4",
|
||||
"@radix-ui/react-collapsible": "^1.1.3",
|
||||
"@radix-ui/react-dialog": "^1.1.6",
|
||||
"@radix-ui/react-dropdown-menu": "^2.1.6",
|
||||
"@radix-ui/react-label": "^2.1.2",
|
||||
"@radix-ui/react-select": "^2.1.6",
|
||||
"@radix-ui/react-separator": "^1.1.2",
|
||||
"@radix-ui/react-slot": "^1.1.2",
|
||||
"@radix-ui/react-switch": "^1.1.3",
|
||||
"@radix-ui/react-tabs": "^1.1.3",
|
||||
"@radix-ui/react-toast": "^1.2.6",
|
||||
"@radix-ui/react-tooltip": "^1.1.8",
|
||||
"@sentry/react": "^8.54.0",
|
||||
"@sentry/vite-plugin": "^2.23.0",
|
||||
"@tanstack/react-table": "^8.20.6",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
|
||||
@@ -66,7 +66,7 @@ export default function Chapters({ auth, comic, chapters, histories, offset }) {
|
||||
}
|
||||
|
||||
const ComicChapterLink = (props) => {
|
||||
const isNew = Date.now() - Date.parse(props.datetime_created) < 6.048e+8;
|
||||
const isNew = Date.now() - Date.parse(props.datetime_created) < 6.048e+8; // 1 week
|
||||
const isRead = histories.includes(props.uuid);
|
||||
|
||||
return (
|
||||
@@ -226,7 +226,7 @@ export default function Chapters({ auth, comic, chapters, histories, offset }) {
|
||||
<TabsContent value={ group }>
|
||||
<div
|
||||
className="w-full grid grid-cols-1 md:grid-cols-2 lg:grid-cols-6 2xl:grid-cols-12 gap-1">
|
||||
{ (chapters.total > (chapters.limit + chapters.offset) && chapters.offset > 0) && (
|
||||
{ (chapters.total > chapters.limit && chapters.offset > 0) && (
|
||||
<Button size="sm" variant="outline" asChild>
|
||||
<Link href="?" only={['chapters', 'offset']} headers={{ offset: parseInt(chapters.offset) - chapters.limit }}>
|
||||
<ChevronsLeft /> Prev
|
||||
@@ -236,7 +236,7 @@ export default function Chapters({ auth, comic, chapters, histories, offset }) {
|
||||
{ chapters.list.sort((a, b) => ascending ? (a.index - b.index) : (b.index - a.index)).map(c => (
|
||||
<ComicChapterLink key={ c.uuid } { ...c } />
|
||||
) ) }
|
||||
{ (chapters.total > chapters.limit && chapters.total > chapters.offset) && (
|
||||
{ (chapters.total > (chapters.limit + chapters.offset)) && (
|
||||
<Button size="sm" variant="outline" asChild>
|
||||
<Link href="?" only={['chapters', 'offset']} headers={{ offset: parseInt(chapters.offset) + chapters.limit }}>
|
||||
Next <ChevronsRight />
|
||||
|
||||
@@ -86,7 +86,7 @@ export default function Histories({ auth, histories }) {
|
||||
</Link>
|
||||
</Button>
|
||||
</div>
|
||||
<Table>
|
||||
<Table className="mt-2">
|
||||
<TableHeader>
|
||||
<TableRow>
|
||||
<TableHead>Select</TableHead>
|
||||
@@ -120,22 +120,16 @@ export default function Histories({ auth, histories }) {
|
||||
)) }
|
||||
</TableBody>
|
||||
</Table>
|
||||
<div>
|
||||
<div className="pt-2">
|
||||
<Pagination className="justify-end">
|
||||
<PaginationContent>
|
||||
{ histories.current_page > 1 && (
|
||||
<PaginationItem>
|
||||
<PaginationPrevious href={ histories.prev_page_url } only={['histories']} />
|
||||
{ histories.links.map((h, i) => (
|
||||
<PaginationItem key={ i }>
|
||||
{ h.label.includes('Previous') && <PaginationPrevious href={ h.url } only={['histories']} isActive={ h.active } /> }
|
||||
{ !h.label.includes('Previous') && !h.label.includes('Next') && <PaginationLink href={ h.url } only={['histories']} isActive={ h.active }>{ h.label }</PaginationLink> }
|
||||
{ h.label.includes('Next') && <PaginationNext href={ h.url } only={['histories']} isActive={ h.active } /> }
|
||||
</PaginationItem>
|
||||
) }
|
||||
<PaginationItem>
|
||||
<PaginationLink href="#">{ histories.current_page }</PaginationLink>
|
||||
</PaginationItem>
|
||||
{ histories.current_page < histories.last_page && (
|
||||
<PaginationItem>
|
||||
<PaginationNext href={ histories.next_page_url } only={['histories']} />
|
||||
</PaginationItem>
|
||||
) }
|
||||
) ) }
|
||||
</PaginationContent>
|
||||
</Pagination>
|
||||
</div>
|
||||
|
||||
@@ -67,23 +67,23 @@ export default function Histories({ auth, histories }) {
|
||||
</TableRow>
|
||||
</TableHeader>
|
||||
<TableBody>
|
||||
{ histories.map((comic, i) =>
|
||||
comic.histories.map((record, j) => (
|
||||
{ histories.map((comic, i) => comic.histories.map((record, j) => (
|
||||
<TableRow key={ j }>
|
||||
{ (j === 0) ? <TableCell className="w-[40%]" rowspan={ comic.histories.length }>
|
||||
{ (j === 0) && <TableCell className="w-[40%]" rowSpan={ comic.histories.length }>
|
||||
<Link href={ route('comics.chapters', comic.comic.comic_pathword) }>
|
||||
{ comic.comic.comic_name }
|
||||
</Link>
|
||||
</TableCell> : null }
|
||||
</TableCell> }
|
||||
<TableCell>
|
||||
<Link href={ route('comics.read', [comic.comic.comic_pathword, record.chapter_uuid]) }>
|
||||
{ record.chapter_name }
|
||||
</Link>
|
||||
</TableCell>
|
||||
<TableCell>{ record.read_at }</TableCell>
|
||||
<TableCell>
|
||||
{ record.read_at }
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
) )
|
||||
) }
|
||||
) ) ) }
|
||||
</TableBody>
|
||||
</Table>
|
||||
</div>
|
||||
|
||||
@@ -14,9 +14,11 @@ export default function Index({ comics, offset, auth }) {
|
||||
|
||||
const url = new URL(window.location); // searchParams
|
||||
|
||||
const [favourites, setFavourites] = useState(auth.user?.favourites ?? []);
|
||||
const [favourites, setFavourites] = useState((auth?.user?.favourites !== null) ? auth.user.favourites : []);
|
||||
const { toast } = useToast();
|
||||
|
||||
const itemsPerPage = 30;
|
||||
|
||||
/**
|
||||
* On click handler for the star
|
||||
* Do posting and make a toast
|
||||
@@ -84,19 +86,21 @@ export default function Index({ comics, offset, auth }) {
|
||||
</Head>
|
||||
<div className="p-3 pt-1 pb-1 flex flex-wrap justify-center" scroll-region="true"
|
||||
style={{ overflowAnchor: "none", height: "calc(100dvh - 90px)", overflowY: "scroll" }}>
|
||||
<div className="grid 2xl:grid-cols-6 xl:grid-cols-4 sm:grid-cols-2 gap-2">
|
||||
<div className="grid 2xl:grid-cols-6 xl:grid-cols-4 grid-cols-2 gap-2">
|
||||
<ComicCards { ...comics } />
|
||||
</div>
|
||||
<Pagination className="justify-end pt-2">
|
||||
<PaginationContent>
|
||||
{ parseInt(offset) !== 0 &&
|
||||
<PaginationItem>
|
||||
<PaginationPrevious href={ `${ url.pathname }?${ url.searchParams }` } only={['comics', 'offset']} headers={{ offset: parseInt(offset) - 30 }} />
|
||||
<PaginationPrevious href={ `${ url.pathname }?${ url.searchParams }` } only={['comics', 'offset']} headers={{ offset: parseInt(offset) - itemsPerPage }} />
|
||||
</PaginationItem>
|
||||
}
|
||||
{ parseInt(comics.total) > parseInt(offset) + itemsPerPage &&
|
||||
<PaginationItem>
|
||||
<PaginationNext href={ `${ url.pathname }?${ url.searchParams }` } only={['comics', 'offset']} headers={{ offset: parseInt(offset) + 30 }} />
|
||||
<PaginationNext href={ `${ url.pathname }?${ url.searchParams }` } only={['comics', 'offset']} headers={{ offset: parseInt(offset) + itemsPerPage }} />
|
||||
</PaginationItem>
|
||||
}
|
||||
</PaginationContent>
|
||||
</Pagination>
|
||||
</div>
|
||||
|
||||
@@ -11,6 +11,19 @@ export default function Updates({ auth }) {
|
||||
<title>Updates</title>
|
||||
</Head>
|
||||
<div className="p-3 pt-1">
|
||||
<Card className="w-[90%] m-3 mx-auto">
|
||||
<CardHeader>
|
||||
<CardTitle>0.1.5</CardTitle>
|
||||
<CardDescription>Release: 07 Feb 2025</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent>
|
||||
<ul>
|
||||
<li>General bug fixes and system improvements</li>
|
||||
<li>Toggle reading history</li>
|
||||
<li>Queue driver, Horizon is now default driver</li>
|
||||
</ul>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card className="w-[90%] m-3 mx-auto">
|
||||
<CardHeader>
|
||||
<CardTitle>0.1.4</CardTitle>
|
||||
|
||||
@@ -17,7 +17,7 @@ Sentry.init({
|
||||
// Tracing
|
||||
tracesSampleRate: 0.1, // Capture 10% of the transactions
|
||||
// Set 'tracePropagationTargets' to control for which URLs distributed tracing should be enabled
|
||||
tracePropagationTargets: ["localhost", /^https:\/\/c\.yumj\.in/],
|
||||
tracePropagationTargets: [/^https:\/\/c\.yumj\.in/],
|
||||
// Session Replay
|
||||
replaysSessionSampleRate: 0.1, // This sets the sample rate at 10%. You may want to change it to 100% while in development and then sample at a lower rate in production.
|
||||
replaysOnErrorSampleRate: 1.0, // If you're not already sampling the entire session, change the sample rate to 100% when sampling sessions where errors occur.
|
||||
|
||||
@@ -8,10 +8,15 @@ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/component
|
||||
import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';
|
||||
import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarMenu, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem } from '@/components/ui/sidebar';
|
||||
|
||||
import { useToast } from '@/hooks/use-toast.js';
|
||||
|
||||
export function AppSidebar({ auth }) {
|
||||
|
||||
const { tags } = usePage().props;
|
||||
const [search, setSearch] = useState('');
|
||||
const [historyDisabled, setHistoryDisabled] = useState(false);
|
||||
|
||||
const { toast } = useToast();
|
||||
|
||||
const searchOnSubmitHandler = (e) => {
|
||||
e.preventDefault();
|
||||
@@ -68,9 +73,22 @@ export function AppSidebar({ auth }) {
|
||||
|
||||
const [theme, setTheme] = useState(getTheme());
|
||||
|
||||
const toggleHistoryButtonHandler = () => {
|
||||
axios.post(route('comics.toggleHistory')).then(res => {
|
||||
setHistoryDisabled(res.data.historyDisabled);
|
||||
toast({
|
||||
title: "All set",
|
||||
description: `Histories are now ${ res.data.historyDisabled ? 'Disabled' : 'Enabled' }`,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
setTheme(getTheme());
|
||||
setThemeInHtml(getTheme());
|
||||
|
||||
// Set historyDisabled
|
||||
setHistoryDisabled(auth.user.historyDisabled);
|
||||
}, []);
|
||||
|
||||
return (
|
||||
@@ -86,7 +104,7 @@ export function AppSidebar({ auth }) {
|
||||
</div>
|
||||
<div className="flex flex-col gap-0.5 leading-none">
|
||||
<span className="font-semibold">Comic</span>
|
||||
<span>0.1.4</span>
|
||||
<span>0.1.5</span>
|
||||
</div>
|
||||
</Link>
|
||||
</SidebarMenuButton>
|
||||
@@ -214,13 +232,13 @@ export function AppSidebar({ auth }) {
|
||||
</DropdownMenuLabel>
|
||||
<DropdownMenuSeparator />
|
||||
<DropdownMenuGroup>
|
||||
<DropdownMenuItem>
|
||||
<SquarePower /> History On
|
||||
<DropdownMenuItem onClick={ () => toggleHistoryButtonHandler() }>
|
||||
<SquarePower /> { (historyDisabled) ? "History Off" : "History On" }
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem onClick={ () => themeButtonOnclickHandler() }>
|
||||
<>{ theme === 'dark' ? (<Sun />) : (<Moon />) } Toggle theme</>
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem asChild><a href="/queues" target="_blank"><Layers /> Queues</a></DropdownMenuItem>
|
||||
<DropdownMenuItem asChild><a href="/horizon" target="_blank"><Layers /> Queues</a></DropdownMenuItem>
|
||||
<DropdownMenuItem asChild><Link href={ route('profile.edit') }><BadgeCheck /> Profile</Link></DropdownMenuItem>
|
||||
<DropdownMenuItem asChild><Link href={ route('comics.favourites') }><Star /> Favourites</Link></DropdownMenuItem>
|
||||
<DropdownMenuItem asChild><Link href={ route('comics.histories') }><History /> History</Link></DropdownMenuItem>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0, minimal-ui">
|
||||
<link rel="manifest" href="manifest.json">
|
||||
<link rel="manifest" href="/manifest.json">
|
||||
<title inertia>{{ config('app.name', 'Laravel') }}</title>
|
||||
@routes
|
||||
@viteReactRefresh
|
||||
|
||||
@@ -7,7 +7,7 @@ use Illuminate\Support\Facades\Route;
|
||||
use Inertia\Inertia;
|
||||
|
||||
// Auth protected routes
|
||||
Route::controller(ComicController::class)->middleware('auth')->name('comics.')->group(function () {
|
||||
Route::controller(ComicController::class)->middleware(['auth', 'verified'])->name('comics.')->group(function () {
|
||||
Route::get('/', 'index')->name('index');
|
||||
Route::get('/author/{author}', 'author')->name('author');
|
||||
Route::get('/search/{search}', 'search')->name('search');
|
||||
@@ -30,13 +30,15 @@ Route::controller(ComicController::class)->middleware('auth')->name('comics.')->
|
||||
Route::patch('/histories', 'patchHistories')->name('patchHistories');
|
||||
Route::delete('/history/{pathword}', 'destroyHistory')->name('destroyHistory');
|
||||
Route::delete('/histories', 'destroyHistories')->name('destroyHistories');
|
||||
|
||||
// History Toggle
|
||||
Route::post('/toggleHistory', 'toggleHistory')->name('toggleHistory');
|
||||
});
|
||||
|
||||
Route::controller(PagesController::class)->middleware('auth')->name('pages.')->group(function () {
|
||||
Route::get('/pages/{path?}', 'show')->name('show');
|
||||
});
|
||||
|
||||
|
||||
Route::get('/dashboard', function () {
|
||||
return Inertia::render('Dashboard');
|
||||
})->middleware(['auth', 'verified'])->name('dashboard');
|
||||
|
||||
Reference in New Issue
Block a user