diff --git a/.editorconfig b/.editorconfig
old mode 100644
new mode 100755
diff --git a/.env.example b/.env.example
old mode 100644
new mode 100755
diff --git a/.gitattributes b/.gitattributes
old mode 100644
new mode 100755
diff --git a/.gitignore b/.gitignore
old mode 100644
new mode 100755
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
diff --git a/app/Http/Controllers/Auth/AuthenticatedSessionController.php b/app/Http/Controllers/Auth/AuthenticatedSessionController.php
old mode 100644
new mode 100755
diff --git a/app/Http/Controllers/Auth/ConfirmablePasswordController.php b/app/Http/Controllers/Auth/ConfirmablePasswordController.php
old mode 100644
new mode 100755
diff --git a/app/Http/Controllers/Auth/EmailVerificationNotificationController.php b/app/Http/Controllers/Auth/EmailVerificationNotificationController.php
old mode 100644
new mode 100755
diff --git a/app/Http/Controllers/Auth/EmailVerificationPromptController.php b/app/Http/Controllers/Auth/EmailVerificationPromptController.php
old mode 100644
new mode 100755
diff --git a/app/Http/Controllers/Auth/NewPasswordController.php b/app/Http/Controllers/Auth/NewPasswordController.php
old mode 100644
new mode 100755
diff --git a/app/Http/Controllers/Auth/PasswordController.php b/app/Http/Controllers/Auth/PasswordController.php
old mode 100644
new mode 100755
diff --git a/app/Http/Controllers/Auth/PasswordResetLinkController.php b/app/Http/Controllers/Auth/PasswordResetLinkController.php
old mode 100644
new mode 100755
diff --git a/app/Http/Controllers/Auth/RegisteredUserController.php b/app/Http/Controllers/Auth/RegisteredUserController.php
old mode 100644
new mode 100755
diff --git a/app/Http/Controllers/Auth/VerifyEmailController.php b/app/Http/Controllers/Auth/VerifyEmailController.php
old mode 100644
new mode 100755
diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php
old mode 100644
new mode 100755
diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php
old mode 100644
new mode 100755
diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php
old mode 100644
new mode 100755
diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php
new file mode 100644
index 0000000..7aeb177
--- /dev/null
+++ b/app/Http/Controllers/ProjectController.php
@@ -0,0 +1,92 @@
+currentTeam;
+ $projects = $team->projects()->latest()->paginate(10);
+ return view('projects.index', compact('projects'));
+ }
+
+ /**
+ * Show the form for creating a new resource.
+ */
+ public function create()
+ {
+ return view('projects.create');
+ }
+
+ /**
+ * Store a newly created resource in storage.
+ */
+ public function store(Request $request)
+ {
+ $validated = $request->validate([
+ 'title' => 'required|string|max:255',
+ ]);
+
+ $project = Auth::user()->currentTeam->projects()->create($validated);
+
+ return redirect()->route('projects.show', $project)
+ ->with('success', 'Project created successfully.');
+ }
+
+ /**
+ * Display the specified resource.
+ */
+ public function show(Project $project)
+ {
+ Gate::authorize('view', $project);
+ return view('projects.show', compact('project'));
+ }
+
+ /**
+ * Show the form for editing the specified resource.
+ */
+ public function edit(Project $project)
+ {
+ Gate::authorize('update', $project);
+ return view('projects.edit', compact('project'));
+ }
+
+ /**
+ * Update the specified resource in storage.
+ */
+ public function update(Request $request, Project $project)
+ {
+ Gate::authorize('update', $project);
+
+ $validated = $request->validate([
+ 'title' => 'required|string|max:255',
+ ]);
+
+ $project->update($validated);
+
+ return redirect()->route('projects.show', $project)
+ ->with('success', 'Project updated successfully.');
+ }
+
+ /**
+ * Remove the specified resource from storage.
+ */
+ public function destroy(Project $project)
+ {
+ Gate::authorize('delete', $project);
+
+ $project->delete();
+
+ return redirect()->route('projects.index')
+ ->with('success', 'Project deleted successfully.');
+ }
+}
diff --git a/app/Http/Controllers/TeamController.php b/app/Http/Controllers/TeamController.php
old mode 100644
new mode 100755
index e4eb513..5ebb308
--- a/app/Http/Controllers/TeamController.php
+++ b/app/Http/Controllers/TeamController.php
@@ -20,7 +20,7 @@ public function setCurrent(SetCurrentTeamRequest $request, Team $team)
public function edit(Request $request)
{
return view('team.edit', [
- 'team' => $request->user()->currentTeam
+ 'team' => $request->user()->currentTeam,
]);
}
diff --git a/app/Http/Controllers/TeamInviteController.php b/app/Http/Controllers/TeamInviteController.php
old mode 100644
new mode 100755
index ecfc211..fc44717
--- a/app/Http/Controllers/TeamInviteController.php
+++ b/app/Http/Controllers/TeamInviteController.php
@@ -16,7 +16,7 @@ public function store(TeamInviteStoreRequest $request, Team $team)
{
$invite = $team->invites()->create([
'email' => $request->email,
- 'token' => str()->random(30)
+ 'token' => str()->random(30),
]);
Mail::to($request->email)->send(new TeamInvitation($invite));
diff --git a/app/Http/Controllers/TeamMemberController.php b/app/Http/Controllers/TeamMemberController.php
old mode 100644
new mode 100755
index 7af94de..946d31b
--- a/app/Http/Controllers/TeamMemberController.php
+++ b/app/Http/Controllers/TeamMemberController.php
@@ -6,7 +6,6 @@
use App\Http\Requests\TeamMemberUpdateRequest;
use App\Models\Team;
use App\Models\User;
-use Illuminate\Http\Request;
class TeamMemberController extends Controller
{
diff --git a/app/Http/Middleware/TeamsPermission.php b/app/Http/Middleware/TeamsPermission.php
old mode 100644
new mode 100755
diff --git a/app/Http/Requests/Auth/LoginRequest.php b/app/Http/Requests/Auth/LoginRequest.php
old mode 100644
new mode 100755
diff --git a/app/Http/Requests/ProfileUpdateRequest.php b/app/Http/Requests/ProfileUpdateRequest.php
old mode 100644
new mode 100755
diff --git a/app/Http/Requests/SetCurrentTeamRequest.php b/app/Http/Requests/SetCurrentTeamRequest.php
old mode 100644
new mode 100755
diff --git a/app/Http/Requests/TeamInviteDestroyRequest.php b/app/Http/Requests/TeamInviteDestroyRequest.php
old mode 100644
new mode 100755
diff --git a/app/Http/Requests/TeamInviteStoreRequest.php b/app/Http/Requests/TeamInviteStoreRequest.php
old mode 100644
new mode 100755
index db5d2ca..9a9ab33
--- a/app/Http/Requests/TeamInviteStoreRequest.php
+++ b/app/Http/Requests/TeamInviteStoreRequest.php
@@ -29,8 +29,8 @@ public function rules(): array
'email',
'max:255',
Rule::unique(TeamInvite::class, 'email')
- ->where('team_id', $this->team->id)
- ]
+ ->where('team_id', $this->team->id),
+ ],
];
}
}
diff --git a/app/Http/Requests/TeamLeaveRequest.php b/app/Http/Requests/TeamLeaveRequest.php
old mode 100644
new mode 100755
diff --git a/app/Http/Requests/TeamMemberDestroyRequest.php b/app/Http/Requests/TeamMemberDestroyRequest.php
old mode 100644
new mode 100755
diff --git a/app/Http/Requests/TeamMemberUpdateRequest.php b/app/Http/Requests/TeamMemberUpdateRequest.php
old mode 100644
new mode 100755
index 018a587..c2f79c2
--- a/app/Http/Requests/TeamMemberUpdateRequest.php
+++ b/app/Http/Requests/TeamMemberUpdateRequest.php
@@ -25,8 +25,8 @@ public function rules(): array
return [
'role' => [
'nullable',
- Rule::exists('roles', 'name')
- ]
+ Rule::exists('roles', 'name'),
+ ],
];
}
}
diff --git a/app/Http/Requests/TeamUpdateRequest.php b/app/Http/Requests/TeamUpdateRequest.php
old mode 100644
new mode 100755
diff --git a/app/Mail/TeamInvitation.php b/app/Mail/TeamInvitation.php
old mode 100644
new mode 100755
index c95baa8..aae7abd
--- a/app/Mail/TeamInvitation.php
+++ b/app/Mail/TeamInvitation.php
@@ -4,7 +4,6 @@
use App\Models\TeamInvite;
use Illuminate\Bus\Queueable;
-use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
@@ -35,7 +34,7 @@ public function __construct(public TeamInvite $teamInvite)
public function envelope(): Envelope
{
return new Envelope(
- subject: 'You have been invited to the ' . $this->teamInvite->team->name . ' team',
+ subject: 'You have been invited to the '.$this->teamInvite->team->name.' team',
);
}
diff --git a/app/Models/Project.php b/app/Models/Project.php
old mode 100644
new mode 100755
index fa41086..775d09b
--- a/app/Models/Project.php
+++ b/app/Models/Project.php
@@ -4,14 +4,57 @@
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
+use Illuminate\Support\Str;
+use App\Models\Team;
+use App\Models\Task;
class Project extends Model
{
/** @use HasFactory<\Database\Factories\ProjectFactory> */
use HasFactory;
+ protected $fillable = [
+ 'title',
+ 'team_id',
+ 'completion_percentage',
+ ];
+
+ protected $casts = [
+ 'completion_percentage' => 'decimal:2',
+ 'uuid' => 'string',
+ ];
+
+ protected static function boot()
+ {
+ parent::boot();
+
+ static::creating(function ($model) {
+ $model->uuid = Str::uuid();
+ });
+ }
+
+ public function getRouteKeyName()
+ {
+ return 'uuid';
+ }
+
public function team()
{
return $this->belongsTo(Team::class);
}
+
+ public function tasks()
+ {
+ return $this->hasMany(Task::class);
+ }
+
+ public function updateCompletionPercentage()
+ {
+ $totalTasks = $this->tasks()->count();
+ if ($totalTasks > 0) {
+ $completedTasks = $this->tasks()->where('completed', true)->count();
+ $this->completion_percentage = ($completedTasks / $totalTasks) * 100;
+ $this->save();
+ }
+ }
}
diff --git a/app/Models/Team.php b/app/Models/Team.php
old mode 100644
new mode 100755
index 2895356..2313061
--- a/app/Models/Team.php
+++ b/app/Models/Team.php
@@ -4,6 +4,9 @@
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
+use App\Models\Project;
+use App\Models\User;
+use App\Models\TeamInvite;
class Team extends Model
{
@@ -26,4 +29,5 @@ public function projects()
{
return $this->hasMany(Project::class);
}
+
}
diff --git a/app/Models/TeamInvite.php b/app/Models/TeamInvite.php
old mode 100644
new mode 100755
diff --git a/app/Models/TeamUser.php b/app/Models/TeamUser.php
old mode 100644
new mode 100755
diff --git a/app/Models/User.php b/app/Models/User.php
old mode 100644
new mode 100755
index 4822c2c..d38fa3e
--- a/app/Models/User.php
+++ b/app/Models/User.php
@@ -15,6 +15,7 @@ class User extends Authenticatable
{
/** @use HasFactory<\Database\Factories\UserFactory> */
use HasFactory, Notifiable;
+
use HasRoles;
/**
@@ -49,12 +50,14 @@ protected function casts(): array
public function profilePhotoUrl()
{
- return 'https://gravatar.com/avatar/' . md5($this->email) . '?s=100';
+ return 'https://gravatar.com/avatar/'.md5($this->email).'?s=100';
}
public function teams()
{
- return $this->belongsToMany(Team::class);
+ return $this->belongsToMany(Team::class)
+ ->withPivot('role')
+ ->withTimestamps();
}
public function currentTeam()
@@ -73,4 +76,22 @@ public function projects()
'team_id'
);
}
+
+ public function belongsToTeam($team): bool
+ {
+ return $this->teams()->where('team_id', $team->id)->exists();
+ }
+
+ public function hasTeamPermission($team, string $permission): bool
+ {
+ if ($this->hasRole('admin')) {
+ return true;
+ }
+
+ $teamUser = $this->teams()
+ ->where('team_id', $team->id)
+ ->first();
+
+ return $teamUser && $teamUser->pivot->role === 'admin';
+ }
}
diff --git a/app/Observers/UserObserver.php b/app/Observers/UserObserver.php
old mode 100644
new mode 100755
diff --git a/app/Policies/ProjectPolicy.php b/app/Policies/ProjectPolicy.php
new file mode 100644
index 0000000..44d107a
--- /dev/null
+++ b/app/Policies/ProjectPolicy.php
@@ -0,0 +1,68 @@
+belongsToTeam($project->team);
+ }
+
+ /**
+ * Determine whether the user can create models.
+ */
+ public function create(User $user): bool
+ {
+ return true;
+ }
+
+ /**
+ * Determine whether the user can update the model.
+ */
+ public function update(User $user, Project $project): bool
+ {
+ return $user->belongsToTeam($project->team) &&
+ $user->hasTeamPermission($project->team, 'update');
+ }
+
+ /**
+ * Determine whether the user can delete the model.
+ */
+ public function delete(User $user, Project $project): bool
+ {
+ return $user->belongsToTeam($project->team) &&
+ $user->hasTeamPermission($project->team, 'delete');
+ }
+
+ /**
+ * Determine whether the user can restore the model.
+ */
+ public function restore(User $user, Project $project): bool
+ {
+ return false;
+ }
+
+ /**
+ * Determine whether the user can permanently delete the model.
+ */
+ public function forceDelete(User $user, Project $project): bool
+ {
+ return false;
+ }
+}
diff --git a/app/Policies/TeamPolicy.php b/app/Policies/TeamPolicy.php
old mode 100644
new mode 100755
index cba7770..24809d6
--- a/app/Policies/TeamPolicy.php
+++ b/app/Policies/TeamPolicy.php
@@ -14,7 +14,7 @@ public function setCurrent(User $user, Team $team)
public function update(User $user, Team $team)
{
- if (!$user->teams->contains($team)) {
+ if (! $user->teams->contains($team)) {
return false;
}
@@ -23,7 +23,7 @@ public function update(User $user, Team $team)
public function leave(User $user, Team $team)
{
- if (!$user->teams->contains($team)) {
+ if (! $user->teams->contains($team)) {
return false;
}
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
old mode 100644
new mode 100755
diff --git a/app/View/Components/AppLayout.php b/app/View/Components/AppLayout.php
old mode 100644
new mode 100755
diff --git a/app/View/Components/GuestLayout.php b/app/View/Components/GuestLayout.php
old mode 100644
new mode 100755
diff --git a/app/helpers.php b/app/helpers.php
old mode 100644
new mode 100755
index f282233..0826996
--- a/app/helpers.php
+++ b/app/helpers.php
@@ -1,7 +1,8 @@
team();
}
}
diff --git a/bootstrap/app.php b/bootstrap/app.php
old mode 100644
new mode 100755
diff --git a/bootstrap/cache/.gitignore b/bootstrap/cache/.gitignore
old mode 100644
new mode 100755
diff --git a/bootstrap/providers.php b/bootstrap/providers.php
old mode 100644
new mode 100755
diff --git a/composer.json b/composer.json
old mode 100644
new mode 100755
index 6ee159c..c463fee
--- a/composer.json
+++ b/composer.json
@@ -7,20 +7,20 @@
"license": "MIT",
"require": {
"php": "^8.2",
- "laravel/framework": "^11.31",
- "laravel/tinker": "^2.9",
- "spatie/laravel-permission": "^6.10"
+ "laravel/framework": "^11.33.2",
+ "laravel/tinker": "^2.10",
+ "spatie/laravel-permission": "^6.10.1"
},
"require-dev": {
- "barryvdh/laravel-debugbar": "^3.14",
- "fakerphp/faker": "^1.23",
- "laravel/breeze": "^2.2",
- "laravel/pail": "^1.1",
- "laravel/pint": "^1.13",
- "laravel/sail": "^1.26",
- "mockery/mockery": "^1.6",
- "nunomaduro/collision": "^8.1",
- "pestphp/pest": "^3.5",
+ "barryvdh/laravel-debugbar": "^3.14.9",
+ "fakerphp/faker": "^1.24",
+ "laravel/breeze": "^2.2.5",
+ "laravel/pail": "^1.2.1",
+ "laravel/pint": "^1.18.2",
+ "laravel/sail": "^1.38",
+ "mockery/mockery": "^1.6.12",
+ "nunomaduro/collision": "^8.5",
+ "pestphp/pest": "^3.5.1",
"pestphp/pest-plugin-laravel": "^3.0"
},
"autoload": {
diff --git a/composer.lock b/composer.lock
old mode 100644
new mode 100755
index 53404c3..746044b
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "d9588640044d70bddfcc336a7772e2dd",
+ "content-hash": "d67e3c64287d371d543e961201cc9e7f",
"packages": [
{
"name": "brick/math",
@@ -445,16 +445,16 @@
},
{
"name": "egulias/email-validator",
- "version": "4.0.2",
+ "version": "4.0.3",
"source": {
"type": "git",
"url": "https://github.com/egulias/EmailValidator.git",
- "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e"
+ "reference": "b115554301161fa21467629f1e1391c1936de517"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e",
- "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/b115554301161fa21467629f1e1391c1936de517",
+ "reference": "b115554301161fa21467629f1e1391c1936de517",
"shasum": ""
},
"require": {
@@ -500,7 +500,7 @@
],
"support": {
"issues": "https://github.com/egulias/EmailValidator/issues",
- "source": "https://github.com/egulias/EmailValidator/tree/4.0.2"
+ "source": "https://github.com/egulias/EmailValidator/tree/4.0.3"
},
"funding": [
{
@@ -508,7 +508,7 @@
"type": "github"
}
],
- "time": "2023-10-06T06:47:41+00:00"
+ "time": "2024-12-27T00:36:43+00:00"
},
{
"name": "fruitcake/php-cors",
@@ -1056,23 +1056,23 @@
},
{
"name": "laravel/framework",
- "version": "v11.33.2",
+ "version": "v11.36.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "6b9832751cf8eed18b3c73df5071f78f0682aa5d"
+ "reference": "df06f5163f4550641fdf349ebc04916a61135a64"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/6b9832751cf8eed18b3c73df5071f78f0682aa5d",
- "reference": "6b9832751cf8eed18b3c73df5071f78f0682aa5d",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/df06f5163f4550641fdf349ebc04916a61135a64",
+ "reference": "df06f5163f4550641fdf349ebc04916a61135a64",
"shasum": ""
},
"require": {
"brick/math": "^0.9.3|^0.10.2|^0.11|^0.12",
"composer-runtime-api": "^2.2",
"doctrine/inflector": "^2.0.5",
- "dragonmantank/cron-expression": "^3.3.2",
+ "dragonmantank/cron-expression": "^3.4",
"egulias/email-validator": "^3.2.1|^4.0",
"ext-ctype": "*",
"ext-filter": "*",
@@ -1082,35 +1082,37 @@
"ext-session": "*",
"ext-tokenizer": "*",
"fruitcake/php-cors": "^1.3",
- "guzzlehttp/guzzle": "^7.8",
+ "guzzlehttp/guzzle": "^7.8.2",
"guzzlehttp/uri-template": "^1.0",
"laravel/prompts": "^0.1.18|^0.2.0|^0.3.0",
"laravel/serializable-closure": "^1.3|^2.0",
- "league/commonmark": "^2.2.1",
- "league/flysystem": "^3.8.0",
+ "league/commonmark": "^2.6",
+ "league/flysystem": "^3.25.1",
+ "league/flysystem-local": "^3.25.1",
+ "league/uri": "^7.5.1",
"monolog/monolog": "^3.0",
- "nesbot/carbon": "^2.72.2|^3.0",
+ "nesbot/carbon": "^2.72.2|^3.4",
"nunomaduro/termwind": "^2.0",
"php": "^8.2",
"psr/container": "^1.1.1|^2.0.1",
"psr/log": "^1.0|^2.0|^3.0",
"psr/simple-cache": "^1.0|^2.0|^3.0",
"ramsey/uuid": "^4.7",
- "symfony/console": "^7.0",
- "symfony/error-handler": "^7.0",
- "symfony/finder": "^7.0",
- "symfony/http-foundation": "^7.0",
- "symfony/http-kernel": "^7.0",
- "symfony/mailer": "^7.0",
- "symfony/mime": "^7.0",
- "symfony/polyfill-php83": "^1.28",
- "symfony/process": "^7.0",
- "symfony/routing": "^7.0",
- "symfony/uid": "^7.0",
- "symfony/var-dumper": "^7.0",
+ "symfony/console": "^7.0.3",
+ "symfony/error-handler": "^7.0.3",
+ "symfony/finder": "^7.0.3",
+ "symfony/http-foundation": "^7.2.0",
+ "symfony/http-kernel": "^7.0.3",
+ "symfony/mailer": "^7.0.3",
+ "symfony/mime": "^7.0.3",
+ "symfony/polyfill-php83": "^1.31",
+ "symfony/process": "^7.0.3",
+ "symfony/routing": "^7.0.3",
+ "symfony/uid": "^7.0.3",
+ "symfony/var-dumper": "^7.0.3",
"tijsverkoyen/css-to-inline-styles": "^2.2.5",
- "vlucas/phpdotenv": "^5.4.1",
- "voku/portable-ascii": "^2.0"
+ "vlucas/phpdotenv": "^5.6.1",
+ "voku/portable-ascii": "^2.0.2"
},
"conflict": {
"mockery/mockery": "1.6.8",
@@ -1160,29 +1162,32 @@
},
"require-dev": {
"ably/ably-php": "^1.0",
- "aws/aws-sdk-php": "^3.235.5",
+ "aws/aws-sdk-php": "^3.322.9",
"ext-gmp": "*",
- "fakerphp/faker": "^1.23",
- "league/flysystem-aws-s3-v3": "^3.0",
- "league/flysystem-ftp": "^3.0",
- "league/flysystem-path-prefixing": "^3.3",
- "league/flysystem-read-only": "^3.3",
- "league/flysystem-sftp-v3": "^3.0",
+ "fakerphp/faker": "^1.24",
+ "guzzlehttp/promises": "^2.0.3",
+ "guzzlehttp/psr7": "^2.4",
+ "league/flysystem-aws-s3-v3": "^3.25.1",
+ "league/flysystem-ftp": "^3.25.1",
+ "league/flysystem-path-prefixing": "^3.25.1",
+ "league/flysystem-read-only": "^3.25.1",
+ "league/flysystem-sftp-v3": "^3.25.1",
"mockery/mockery": "^1.6.10",
- "nyholm/psr7": "^1.2",
"orchestra/testbench-core": "^9.6",
- "pda/pheanstalk": "^5.0",
+ "pda/pheanstalk": "^5.0.6",
+ "php-http/discovery": "^1.15",
"phpstan/phpstan": "^1.11.5",
- "phpunit/phpunit": "^10.5|^11.0",
- "predis/predis": "^2.0.2",
+ "phpunit/phpunit": "^10.5.35|^11.3.6",
+ "predis/predis": "^2.3",
"resend/resend-php": "^0.10.0",
- "symfony/cache": "^7.0",
- "symfony/http-client": "^7.0",
- "symfony/psr-http-message-bridge": "^7.0"
+ "symfony/cache": "^7.0.3",
+ "symfony/http-client": "^7.0.3",
+ "symfony/psr-http-message-bridge": "^7.0.3",
+ "symfony/translation": "^7.0.3"
},
"suggest": {
"ably/ably-php": "Required to use the Ably broadcast driver (^1.0).",
- "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).",
+ "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.322.9).",
"brianium/paratest": "Required to run tests in parallel (^7.0|^8.0).",
"ext-apcu": "Required to use the APC cache driver.",
"ext-fileinfo": "Required to use the Filesystem class.",
@@ -1196,16 +1201,16 @@
"fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).",
"filp/whoops": "Required for friendly error pages in development (^2.14.3).",
"laravel/tinker": "Required to use the tinker console command (^2.0).",
- "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).",
- "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).",
- "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).",
- "league/flysystem-read-only": "Required to use read-only disks (^3.3)",
- "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).",
+ "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.25.1).",
+ "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.25.1).",
+ "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.25.1).",
+ "league/flysystem-read-only": "Required to use read-only disks (^3.25.1)",
+ "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.25.1).",
"mockery/mockery": "Required to use mocking (^1.6).",
- "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).",
"pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).",
+ "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).",
"phpunit/phpunit": "Required to use assertions and run tests (^10.5|^11.0).",
- "predis/predis": "Required to use the predis connector (^2.0.2).",
+ "predis/predis": "Required to use the predis connector (^2.3).",
"psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
"pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).",
"resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0).",
@@ -1224,6 +1229,7 @@
},
"autoload": {
"files": [
+ "src/Illuminate/Collections/functions.php",
"src/Illuminate/Collections/helpers.php",
"src/Illuminate/Events/functions.php",
"src/Illuminate/Filesystem/functions.php",
@@ -1261,7 +1267,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2024-11-19T22:47:13+00:00"
+ "time": "2024-12-17T22:32:08+00:00"
},
{
"name": "laravel/prompts",
@@ -1324,16 +1330,16 @@
},
{
"name": "laravel/serializable-closure",
- "version": "v2.0.0",
+ "version": "v2.0.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
- "reference": "0d8d3d8086984996df86596a86dea60398093a81"
+ "reference": "613b2d4998f85564d40497e05e89cb6d9bd1cbe8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/0d8d3d8086984996df86596a86dea60398093a81",
- "reference": "0d8d3d8086984996df86596a86dea60398093a81",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/613b2d4998f85564d40497e05e89cb6d9bd1cbe8",
+ "reference": "613b2d4998f85564d40497e05e89cb6d9bd1cbe8",
"shasum": ""
},
"require": {
@@ -1381,7 +1387,7 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
- "time": "2024-11-19T01:38:44+00:00"
+ "time": "2024-12-16T15:26:28+00:00"
},
{
"name": "laravel/tinker",
@@ -1451,16 +1457,16 @@
},
{
"name": "league/commonmark",
- "version": "2.5.3",
+ "version": "2.6.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
- "reference": "b650144166dfa7703e62a22e493b853b58d874b0"
+ "reference": "d150f911e0079e90ae3c106734c93137c184f932"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/b650144166dfa7703e62a22e493b853b58d874b0",
- "reference": "b650144166dfa7703e62a22e493b853b58d874b0",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d150f911e0079e90ae3c106734c93137c184f932",
+ "reference": "d150f911e0079e90ae3c106734c93137c184f932",
"shasum": ""
},
"require": {
@@ -1485,8 +1491,9 @@
"phpstan/phpstan": "^1.8.2",
"phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0",
"scrutinizer/ocular": "^1.8.1",
- "symfony/finder": "^5.3 | ^6.0 || ^7.0",
- "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0",
+ "symfony/finder": "^5.3 | ^6.0 | ^7.0",
+ "symfony/process": "^5.4 | ^6.0 | ^7.0",
+ "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0",
"unleashedtech/php-coding-standard": "^3.1.1",
"vimeo/psalm": "^4.24.0 || ^5.0.0"
},
@@ -1496,7 +1503,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.6-dev"
+ "dev-main": "2.7-dev"
}
},
"autoload": {
@@ -1553,7 +1560,7 @@
"type": "tidelift"
}
],
- "time": "2024-08-16T11:46:16+00:00"
+ "time": "2024-12-07T15:34:16+00:00"
},
{
"name": "league/config",
@@ -1825,18 +1832,192 @@
],
"time": "2024-09-21T08:32:55+00:00"
},
+ {
+ "name": "league/uri",
+ "version": "7.5.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/uri.git",
+ "reference": "81fb5145d2644324614cc532b28efd0215bda430"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/uri/zipball/81fb5145d2644324614cc532b28efd0215bda430",
+ "reference": "81fb5145d2644324614cc532b28efd0215bda430",
+ "shasum": ""
+ },
+ "require": {
+ "league/uri-interfaces": "^7.5",
+ "php": "^8.1"
+ },
+ "conflict": {
+ "league/uri-schemes": "^1.0"
+ },
+ "suggest": {
+ "ext-bcmath": "to improve IPV4 host parsing",
+ "ext-fileinfo": "to create Data URI from file contennts",
+ "ext-gmp": "to improve IPV4 host parsing",
+ "ext-intl": "to handle IDN host with the best performance",
+ "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain",
+ "league/uri-components": "Needed to easily manipulate URI objects components",
+ "php-64bit": "to improve IPV4 host parsing",
+ "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Uri\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ignace Nyamagana Butera",
+ "email": "nyamsprod@gmail.com",
+ "homepage": "https://nyamsprod.com"
+ }
+ ],
+ "description": "URI manipulation library",
+ "homepage": "https://uri.thephpleague.com",
+ "keywords": [
+ "data-uri",
+ "file-uri",
+ "ftp",
+ "hostname",
+ "http",
+ "https",
+ "middleware",
+ "parse_str",
+ "parse_url",
+ "psr-7",
+ "query-string",
+ "querystring",
+ "rfc3986",
+ "rfc3987",
+ "rfc6570",
+ "uri",
+ "uri-template",
+ "url",
+ "ws"
+ ],
+ "support": {
+ "docs": "https://uri.thephpleague.com",
+ "forum": "https://thephpleague.slack.com",
+ "issues": "https://github.com/thephpleague/uri-src/issues",
+ "source": "https://github.com/thephpleague/uri/tree/7.5.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/nyamsprod",
+ "type": "github"
+ }
+ ],
+ "time": "2024-12-08T08:40:02+00:00"
+ },
+ {
+ "name": "league/uri-interfaces",
+ "version": "7.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/uri-interfaces.git",
+ "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/08cfc6c4f3d811584fb09c37e2849e6a7f9b0742",
+ "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742",
+ "shasum": ""
+ },
+ "require": {
+ "ext-filter": "*",
+ "php": "^8.1",
+ "psr/http-factory": "^1",
+ "psr/http-message": "^1.1 || ^2.0"
+ },
+ "suggest": {
+ "ext-bcmath": "to improve IPV4 host parsing",
+ "ext-gmp": "to improve IPV4 host parsing",
+ "ext-intl": "to handle IDN host with the best performance",
+ "php-64bit": "to improve IPV4 host parsing",
+ "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Uri\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ignace Nyamagana Butera",
+ "email": "nyamsprod@gmail.com",
+ "homepage": "https://nyamsprod.com"
+ }
+ ],
+ "description": "Common interfaces and classes for URI representation and interaction",
+ "homepage": "https://uri.thephpleague.com",
+ "keywords": [
+ "data-uri",
+ "file-uri",
+ "ftp",
+ "hostname",
+ "http",
+ "https",
+ "parse_str",
+ "parse_url",
+ "psr-7",
+ "query-string",
+ "querystring",
+ "rfc3986",
+ "rfc3987",
+ "rfc6570",
+ "uri",
+ "url",
+ "ws"
+ ],
+ "support": {
+ "docs": "https://uri.thephpleague.com",
+ "forum": "https://thephpleague.slack.com",
+ "issues": "https://github.com/thephpleague/uri-src/issues",
+ "source": "https://github.com/thephpleague/uri-interfaces/tree/7.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/nyamsprod",
+ "type": "github"
+ }
+ ],
+ "time": "2024-12-08T08:18:47+00:00"
+ },
{
"name": "monolog/monolog",
- "version": "3.8.0",
+ "version": "3.8.1",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
- "reference": "32e515fdc02cdafbe4593e30a9350d486b125b67"
+ "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/32e515fdc02cdafbe4593e30a9350d486b125b67",
- "reference": "32e515fdc02cdafbe4593e30a9350d486b125b67",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/aef6ee73a77a66e404dd6540934a9ef1b3c855b4",
+ "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4",
"shasum": ""
},
"require": {
@@ -1914,7 +2095,7 @@
],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/3.8.0"
+ "source": "https://github.com/Seldaek/monolog/tree/3.8.1"
},
"funding": [
{
@@ -1926,20 +2107,20 @@
"type": "tidelift"
}
],
- "time": "2024-11-12T13:57:08+00:00"
+ "time": "2024-12-05T17:15:07+00:00"
},
{
"name": "nesbot/carbon",
- "version": "3.8.2",
+ "version": "3.8.4",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
- "reference": "e1268cdbc486d97ce23fef2c666dc3c6b6de9947"
+ "reference": "129700ed449b1f02d70272d2ac802357c8c30c58"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/e1268cdbc486d97ce23fef2c666dc3c6b6de9947",
- "reference": "e1268cdbc486d97ce23fef2c666dc3c6b6de9947",
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/129700ed449b1f02d70272d2ac802357c8c30c58",
+ "reference": "129700ed449b1f02d70272d2ac802357c8c30c58",
"shasum": ""
},
"require": {
@@ -1971,10 +2152,6 @@
],
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "3.x-dev",
- "dev-2.x": "2.x-dev"
- },
"laravel": {
"providers": [
"Carbon\\Laravel\\ServiceProvider"
@@ -1984,6 +2161,10 @@
"includes": [
"extension.neon"
]
+ },
+ "branch-alias": {
+ "dev-2.x": "2.x-dev",
+ "dev-master": "3.x-dev"
}
},
"autoload": {
@@ -2032,7 +2213,7 @@
"type": "tidelift"
}
],
- "time": "2024-11-07T17:46:48+00:00"
+ "time": "2024-12-27T09:25:35+00:00"
},
{
"name": "nette/schema",
@@ -2242,31 +2423,31 @@
},
{
"name": "nunomaduro/termwind",
- "version": "v2.2.0",
+ "version": "v2.3.0",
"source": {
"type": "git",
"url": "https://github.com/nunomaduro/termwind.git",
- "reference": "42c84e4e8090766bbd6445d06cd6e57650626ea3"
+ "reference": "52915afe6a1044e8b9cee1bcff836fb63acf9cda"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/42c84e4e8090766bbd6445d06cd6e57650626ea3",
- "reference": "42c84e4e8090766bbd6445d06cd6e57650626ea3",
+ "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/52915afe6a1044e8b9cee1bcff836fb63acf9cda",
+ "reference": "52915afe6a1044e8b9cee1bcff836fb63acf9cda",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"php": "^8.2",
- "symfony/console": "^7.1.5"
+ "symfony/console": "^7.1.8"
},
"require-dev": {
- "illuminate/console": "^11.28.0",
- "laravel/pint": "^1.18.1",
+ "illuminate/console": "^11.33.2",
+ "laravel/pint": "^1.18.2",
"mockery/mockery": "^1.6.12",
"pestphp/pest": "^2.36.0",
- "phpstan/phpstan": "^1.12.6",
+ "phpstan/phpstan": "^1.12.11",
"phpstan/phpstan-strict-rules": "^1.6.1",
- "symfony/var-dumper": "^7.1.5",
+ "symfony/var-dumper": "^7.1.8",
"thecodingmachine/phpstan-strict-rules": "^1.0.0"
},
"type": "library",
@@ -2309,7 +2490,7 @@
],
"support": {
"issues": "https://github.com/nunomaduro/termwind/issues",
- "source": "https://github.com/nunomaduro/termwind/tree/v2.2.0"
+ "source": "https://github.com/nunomaduro/termwind/tree/v2.3.0"
},
"funding": [
{
@@ -2325,7 +2506,7 @@
"type": "github"
}
],
- "time": "2024-10-15T16:15:16+00:00"
+ "time": "2024-11-21T10:39:51+00:00"
},
{
"name": "phpoption/phpoption",
@@ -2816,16 +2997,16 @@
},
{
"name": "psy/psysh",
- "version": "v0.12.4",
+ "version": "v0.12.7",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
- "reference": "2fd717afa05341b4f8152547f142cd2f130f6818"
+ "reference": "d73fa3c74918ef4522bb8a3bf9cab39161c4b57c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/2fd717afa05341b4f8152547f142cd2f130f6818",
- "reference": "2fd717afa05341b4f8152547f142cd2f130f6818",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/d73fa3c74918ef4522bb8a3bf9cab39161c4b57c",
+ "reference": "d73fa3c74918ef4522bb8a3bf9cab39161c4b57c",
"shasum": ""
},
"require": {
@@ -2852,12 +3033,12 @@
],
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "0.12.x-dev"
- },
"bamarni-bin": {
"bin-links": false,
"forward-command": false
+ },
+ "branch-alias": {
+ "dev-main": "0.12.x-dev"
}
},
"autoload": {
@@ -2889,9 +3070,9 @@
],
"support": {
"issues": "https://github.com/bobthecow/psysh/issues",
- "source": "https://github.com/bobthecow/psysh/tree/v0.12.4"
+ "source": "https://github.com/bobthecow/psysh/tree/v0.12.7"
},
- "time": "2024-06-10T01:18:23+00:00"
+ "time": "2024-12-10T01:58:33+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -3147,14 +3328,14 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "6.x-dev",
- "dev-master": "6.x-dev"
- },
"laravel": {
"providers": [
"Spatie\\Permission\\PermissionServiceProvider"
]
+ },
+ "branch-alias": {
+ "dev-main": "6.x-dev",
+ "dev-master": "6.x-dev"
}
},
"autoload": {
@@ -3203,16 +3384,16 @@
},
{
"name": "symfony/clock",
- "version": "v7.1.6",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/clock.git",
- "reference": "97bebc53548684c17ed696bc8af016880f0f098d"
+ "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/clock/zipball/97bebc53548684c17ed696bc8af016880f0f098d",
- "reference": "97bebc53548684c17ed696bc8af016880f0f098d",
+ "url": "https://api.github.com/repos/symfony/clock/zipball/b81435fbd6648ea425d1ee96a2d8e68f4ceacd24",
+ "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24",
"shasum": ""
},
"require": {
@@ -3257,7 +3438,7 @@
"time"
],
"support": {
- "source": "https://github.com/symfony/clock/tree/v7.1.6"
+ "source": "https://github.com/symfony/clock/tree/v7.2.0"
},
"funding": [
{
@@ -3273,20 +3454,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/console",
- "version": "v7.1.8",
+ "version": "v7.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "ff04e5b5ba043d2badfb308197b9e6b42883fcd5"
+ "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/ff04e5b5ba043d2badfb308197b9e6b42883fcd5",
- "reference": "ff04e5b5ba043d2badfb308197b9e6b42883fcd5",
+ "url": "https://api.github.com/repos/symfony/console/zipball/fefcc18c0f5d0efe3ab3152f15857298868dc2c3",
+ "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3",
"shasum": ""
},
"require": {
@@ -3350,7 +3531,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v7.1.8"
+ "source": "https://github.com/symfony/console/tree/v7.2.1"
},
"funding": [
{
@@ -3366,20 +3547,20 @@
"type": "tidelift"
}
],
- "time": "2024-11-06T14:23:19+00:00"
+ "time": "2024-12-11T03:49:26+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v7.1.6",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "4aa4f6b3d6749c14d3aa815eef8226632e7bbc66"
+ "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/4aa4f6b3d6749c14d3aa815eef8226632e7bbc66",
- "reference": "4aa4f6b3d6749c14d3aa815eef8226632e7bbc66",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/601a5ce9aaad7bf10797e3663faefce9e26c24e2",
+ "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2",
"shasum": ""
},
"require": {
@@ -3415,7 +3596,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v7.1.6"
+ "source": "https://github.com/symfony/css-selector/tree/v7.2.0"
},
"funding": [
{
@@ -3431,20 +3612,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
- "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
"shasum": ""
},
"require": {
@@ -3452,12 +3633,12 @@
},
"type": "library",
"extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
"branch-alias": {
"dev-main": "3.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
}
},
"autoload": {
@@ -3482,7 +3663,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -3498,20 +3679,20 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v7.1.7",
+ "version": "v7.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "010e44661f4c6babaf8c4862fe68c24a53903342"
+ "reference": "6150b89186573046167796fa5f3f76601d5145f8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/010e44661f4c6babaf8c4862fe68c24a53903342",
- "reference": "010e44661f4c6babaf8c4862fe68c24a53903342",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/6150b89186573046167796fa5f3f76601d5145f8",
+ "reference": "6150b89186573046167796fa5f3f76601d5145f8",
"shasum": ""
},
"require": {
@@ -3557,7 +3738,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.1.7"
+ "source": "https://github.com/symfony/error-handler/tree/v7.2.1"
},
"funding": [
{
@@ -3573,20 +3754,20 @@
"type": "tidelift"
}
],
- "time": "2024-11-05T15:34:55+00:00"
+ "time": "2024-12-07T08:50:44+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v7.1.6",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "87254c78dd50721cfd015b62277a8281c5589702"
+ "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/87254c78dd50721cfd015b62277a8281c5589702",
- "reference": "87254c78dd50721cfd015b62277a8281c5589702",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/910c5db85a5356d0fea57680defec4e99eb9c8c1",
+ "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1",
"shasum": ""
},
"require": {
@@ -3637,7 +3818,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/v7.1.6"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v7.2.0"
},
"funding": [
{
@@ -3653,20 +3834,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50"
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50",
- "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f",
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f",
"shasum": ""
},
"require": {
@@ -3675,12 +3856,12 @@
},
"type": "library",
"extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
"branch-alias": {
"dev-main": "3.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
}
},
"autoload": {
@@ -3713,7 +3894,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -3729,20 +3910,20 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/finder",
- "version": "v7.1.6",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "2cb89664897be33f78c65d3d2845954c8d7a43b8"
+ "reference": "6de263e5868b9a137602dd1e33e4d48bfae99c49"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/2cb89664897be33f78c65d3d2845954c8d7a43b8",
- "reference": "2cb89664897be33f78c65d3d2845954c8d7a43b8",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/6de263e5868b9a137602dd1e33e4d48bfae99c49",
+ "reference": "6de263e5868b9a137602dd1e33e4d48bfae99c49",
"shasum": ""
},
"require": {
@@ -3777,7 +3958,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v7.1.6"
+ "source": "https://github.com/symfony/finder/tree/v7.2.0"
},
"funding": [
{
@@ -3793,24 +3974,25 @@
"type": "tidelift"
}
],
- "time": "2024-10-01T08:31:23+00:00"
+ "time": "2024-10-23T06:56:12+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v7.1.8",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "f4419ec69ccfc3f725a4de7c20e4e57626d10112"
+ "reference": "e88a66c3997859532bc2ddd6dd8f35aba2711744"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f4419ec69ccfc3f725a4de7c20e4e57626d10112",
- "reference": "f4419ec69ccfc3f725a4de7c20e4e57626d10112",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e88a66c3997859532bc2ddd6dd8f35aba2711744",
+ "reference": "e88a66c3997859532bc2ddd6dd8f35aba2711744",
"shasum": ""
},
"require": {
"php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3.0",
"symfony/polyfill-mbstring": "~1.1",
"symfony/polyfill-php83": "^1.27"
},
@@ -3854,7 +4036,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.1.8"
+ "source": "https://github.com/symfony/http-foundation/tree/v7.2.0"
},
"funding": [
{
@@ -3870,20 +4052,20 @@
"type": "tidelift"
}
],
- "time": "2024-11-09T09:16:45+00:00"
+ "time": "2024-11-13T18:58:46+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v7.1.8",
+ "version": "v7.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "33fef24e3dc79d6d30bf4936531f2f4bd2ca189e"
+ "reference": "d8ae58eecae44c8e66833e76cc50a4ad3c002d97"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/33fef24e3dc79d6d30bf4936531f2f4bd2ca189e",
- "reference": "33fef24e3dc79d6d30bf4936531f2f4bd2ca189e",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/d8ae58eecae44c8e66833e76cc50a4ad3c002d97",
+ "reference": "d8ae58eecae44c8e66833e76cc50a4ad3c002d97",
"shasum": ""
},
"require": {
@@ -3912,7 +4094,7 @@
"symfony/twig-bridge": "<6.4",
"symfony/validator": "<6.4",
"symfony/var-dumper": "<6.4",
- "twig/twig": "<3.0.4"
+ "twig/twig": "<3.12"
},
"provide": {
"psr/log-implementation": "1.0|2.0|3.0"
@@ -3940,7 +4122,7 @@
"symfony/validator": "^6.4|^7.0",
"symfony/var-dumper": "^6.4|^7.0",
"symfony/var-exporter": "^6.4|^7.0",
- "twig/twig": "^3.0.4"
+ "twig/twig": "^3.12"
},
"type": "library",
"autoload": {
@@ -3968,7 +4150,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.1.8"
+ "source": "https://github.com/symfony/http-kernel/tree/v7.2.1"
},
"funding": [
{
@@ -3984,20 +4166,20 @@
"type": "tidelift"
}
],
- "time": "2024-11-13T14:25:32+00:00"
+ "time": "2024-12-11T12:09:10+00:00"
},
{
"name": "symfony/mailer",
- "version": "v7.1.6",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailer.git",
- "reference": "69c9948451fb3a6a4d47dc8261d1794734e76cdd"
+ "reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mailer/zipball/69c9948451fb3a6a4d47dc8261d1794734e76cdd",
- "reference": "69c9948451fb3a6a4d47dc8261d1794734e76cdd",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/e4d358702fb66e4c8a2af08e90e7271a62de39cc",
+ "reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc",
"shasum": ""
},
"require": {
@@ -4006,7 +4188,7 @@
"psr/event-dispatcher": "^1",
"psr/log": "^1|^2|^3",
"symfony/event-dispatcher": "^6.4|^7.0",
- "symfony/mime": "^6.4|^7.0",
+ "symfony/mime": "^7.2",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
@@ -4048,7 +4230,7 @@
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/mailer/tree/v7.1.6"
+ "source": "https://github.com/symfony/mailer/tree/v7.2.0"
},
"funding": [
{
@@ -4064,20 +4246,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2024-11-25T15:21:05+00:00"
},
{
"name": "symfony/mime",
- "version": "v7.1.6",
+ "version": "v7.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "caa1e521edb2650b8470918dfe51708c237f0598"
+ "reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/caa1e521edb2650b8470918dfe51708c237f0598",
- "reference": "caa1e521edb2650b8470918dfe51708c237f0598",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/7f9617fcf15cb61be30f8b252695ed5e2bfac283",
+ "reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283",
"shasum": ""
},
"require": {
@@ -4132,7 +4314,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v7.1.6"
+ "source": "https://github.com/symfony/mime/tree/v7.2.1"
},
"funding": [
{
@@ -4148,7 +4330,7 @@
"type": "tidelift"
}
],
- "time": "2024-10-25T15:11:02+00:00"
+ "time": "2024-12-07T08:50:44+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -4176,8 +4358,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4252,8 +4434,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4331,8 +4513,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4413,8 +4595,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4497,8 +4679,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4571,8 +4753,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4651,8 +4833,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4733,8 +4915,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4788,16 +4970,16 @@
},
{
"name": "symfony/process",
- "version": "v7.1.8",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "42783370fda6e538771f7c7a36e9fa2ee3a84892"
+ "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/42783370fda6e538771f7c7a36e9fa2ee3a84892",
- "reference": "42783370fda6e538771f7c7a36e9fa2ee3a84892",
+ "url": "https://api.github.com/repos/symfony/process/zipball/d34b22ba9390ec19d2dd966c40aa9e8462f27a7e",
+ "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e",
"shasum": ""
},
"require": {
@@ -4829,7 +5011,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v7.1.8"
+ "source": "https://github.com/symfony/process/tree/v7.2.0"
},
"funding": [
{
@@ -4845,20 +5027,20 @@
"type": "tidelift"
}
],
- "time": "2024-11-06T14:23:19+00:00"
+ "time": "2024-11-06T14:24:19+00:00"
},
{
"name": "symfony/routing",
- "version": "v7.1.6",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "66a2c469f6c22d08603235c46a20007c0701ea0a"
+ "reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/66a2c469f6c22d08603235c46a20007c0701ea0a",
- "reference": "66a2c469f6c22d08603235c46a20007c0701ea0a",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/e10a2450fa957af6c448b9b93c9010a4e4c0725e",
+ "reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e",
"shasum": ""
},
"require": {
@@ -4910,7 +5092,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v7.1.6"
+ "source": "https://github.com/symfony/routing/tree/v7.2.0"
},
"funding": [
{
@@ -4926,20 +5108,20 @@
"type": "tidelift"
}
],
- "time": "2024-10-01T08:31:23+00:00"
+ "time": "2024-11-25T11:08:51+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
- "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
"shasum": ""
},
"require": {
@@ -4952,12 +5134,12 @@
},
"type": "library",
"extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
"branch-alias": {
"dev-main": "3.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
}
},
"autoload": {
@@ -4993,7 +5175,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -5009,20 +5191,20 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/string",
- "version": "v7.1.8",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "591ebd41565f356fcd8b090fe64dbb5878f50281"
+ "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/591ebd41565f356fcd8b090fe64dbb5878f50281",
- "reference": "591ebd41565f356fcd8b090fe64dbb5878f50281",
+ "url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82",
+ "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82",
"shasum": ""
},
"require": {
@@ -5080,7 +5262,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v7.1.8"
+ "source": "https://github.com/symfony/string/tree/v7.2.0"
},
"funding": [
{
@@ -5096,24 +5278,25 @@
"type": "tidelift"
}
],
- "time": "2024-11-13T13:31:21+00:00"
+ "time": "2024-11-13T13:31:26+00:00"
},
{
"name": "symfony/translation",
- "version": "v7.1.6",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "b9f72ab14efdb6b772f85041fa12f820dee8d55f"
+ "reference": "dc89e16b44048ceecc879054e5b7f38326ab6cc5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/b9f72ab14efdb6b772f85041fa12f820dee8d55f",
- "reference": "b9f72ab14efdb6b772f85041fa12f820dee8d55f",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/dc89e16b44048ceecc879054e5b7f38326ab6cc5",
+ "reference": "dc89e16b44048ceecc879054e5b7f38326ab6cc5",
"shasum": ""
},
"require": {
"php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
"symfony/translation-contracts": "^2.5|^3.0"
},
@@ -5174,7 +5357,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v7.1.6"
+ "source": "https://github.com/symfony/translation/tree/v7.2.0"
},
"funding": [
{
@@ -5190,20 +5373,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-28T12:35:13+00:00"
+ "time": "2024-11-12T20:47:56+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
+ "reference": "4667ff3bd513750603a09c8dedbea942487fb07c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
- "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c",
+ "reference": "4667ff3bd513750603a09c8dedbea942487fb07c",
"shasum": ""
},
"require": {
@@ -5211,12 +5394,12 @@
},
"type": "library",
"extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
"branch-alias": {
"dev-main": "3.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
}
},
"autoload": {
@@ -5252,7 +5435,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -5268,20 +5451,20 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/uid",
- "version": "v7.1.6",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/uid.git",
- "reference": "65befb3bb2d503bbffbd08c815aa38b472999917"
+ "reference": "2d294d0c48df244c71c105a169d0190bfb080426"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/uid/zipball/65befb3bb2d503bbffbd08c815aa38b472999917",
- "reference": "65befb3bb2d503bbffbd08c815aa38b472999917",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/2d294d0c48df244c71c105a169d0190bfb080426",
+ "reference": "2d294d0c48df244c71c105a169d0190bfb080426",
"shasum": ""
},
"require": {
@@ -5326,7 +5509,7 @@
"uuid"
],
"support": {
- "source": "https://github.com/symfony/uid/tree/v7.1.6"
+ "source": "https://github.com/symfony/uid/tree/v7.2.0"
},
"funding": [
{
@@ -5342,20 +5525,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v7.1.8",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "7bb01a47b1b00428d32b5e7b4d3b2d1aa58d3db8"
+ "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/7bb01a47b1b00428d32b5e7b4d3b2d1aa58d3db8",
- "reference": "7bb01a47b1b00428d32b5e7b4d3b2d1aa58d3db8",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c6a22929407dec8765d6e2b6ff85b800b245879c",
+ "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c",
"shasum": ""
},
"require": {
@@ -5371,7 +5554,7 @@
"symfony/http-kernel": "^6.4|^7.0",
"symfony/process": "^6.4|^7.0",
"symfony/uid": "^6.4|^7.0",
- "twig/twig": "^3.0.4"
+ "twig/twig": "^3.12"
},
"bin": [
"Resources/bin/var-dump-server"
@@ -5409,7 +5592,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v7.1.8"
+ "source": "https://github.com/symfony/var-dumper/tree/v7.2.0"
},
"funding": [
{
@@ -5425,35 +5608,37 @@
"type": "tidelift"
}
],
- "time": "2024-11-08T15:46:42+00:00"
+ "time": "2024-11-08T15:48:14+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
- "version": "v2.2.7",
+ "version": "v2.3.0",
"source": {
"type": "git",
"url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
- "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb"
+ "reference": "0d72ac1c00084279c1816675284073c5a337c20d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb",
- "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb",
+ "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0d72ac1c00084279c1816675284073c5a337c20d",
+ "reference": "0d72ac1c00084279c1816675284073c5a337c20d",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
- "php": "^5.5 || ^7.0 || ^8.0",
- "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0"
+ "php": "^7.4 || ^8.0",
+ "symfony/css-selector": "^5.4 || ^6.0 || ^7.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10"
+ "phpstan/phpstan": "^2.0",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpunit/phpunit": "^8.5.21 || ^9.5.10"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.2.x-dev"
+ "dev-master": "2.x-dev"
}
},
"autoload": {
@@ -5476,9 +5661,9 @@
"homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
"support": {
"issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
- "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7"
+ "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.3.0"
},
- "time": "2023-12-08T13:03:43+00:00"
+ "time": "2024-12-21T16:25:41+00:00"
},
{
"name": "vlucas/phpdotenv",
@@ -5700,16 +5885,16 @@
"packages-dev": [
{
"name": "barryvdh/laravel-debugbar",
- "version": "v3.14.9",
+ "version": "v3.14.10",
"source": {
"type": "git",
"url": "https://github.com/barryvdh/laravel-debugbar.git",
- "reference": "2e805a6bd4e1aa83774316bb062703c65d0691ef"
+ "reference": "56b9bd235e3fe62e250124804009ce5bab97cc63"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/2e805a6bd4e1aa83774316bb062703c65d0691ef",
- "reference": "2e805a6bd4e1aa83774316bb062703c65d0691ef",
+ "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/56b9bd235e3fe62e250124804009ce5bab97cc63",
+ "reference": "56b9bd235e3fe62e250124804009ce5bab97cc63",
"shasum": ""
},
"require": {
@@ -5768,7 +5953,7 @@
],
"support": {
"issues": "https://github.com/barryvdh/laravel-debugbar/issues",
- "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.14.9"
+ "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.14.10"
},
"funding": [
{
@@ -5780,20 +5965,20 @@
"type": "github"
}
],
- "time": "2024-11-25T14:51:20+00:00"
+ "time": "2024-12-23T10:10:42+00:00"
},
{
"name": "brianium/paratest",
- "version": "v7.6.0",
+ "version": "v7.7.0",
"source": {
"type": "git",
"url": "https://github.com/paratestphp/paratest.git",
- "reference": "68ff89a8de47d086588e391a516d2a5b5fde6254"
+ "reference": "4fb3f73bc5a4c3146bac2850af7dc72435a32daf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/paratestphp/paratest/zipball/68ff89a8de47d086588e391a516d2a5b5fde6254",
- "reference": "68ff89a8de47d086588e391a516d2a5b5fde6254",
+ "url": "https://api.github.com/repos/paratestphp/paratest/zipball/4fb3f73bc5a4c3146bac2850af7dc72435a32daf",
+ "reference": "4fb3f73bc5a4c3146bac2850af7dc72435a32daf",
"shasum": ""
},
"require": {
@@ -5802,26 +5987,26 @@
"ext-reflection": "*",
"ext-simplexml": "*",
"fidry/cpu-core-counter": "^1.2.0",
- "jean85/pretty-package-versions": "^2.0.6",
+ "jean85/pretty-package-versions": "^2.1.0",
"php": "~8.2.0 || ~8.3.0 || ~8.4.0",
- "phpunit/php-code-coverage": "^11.0.7",
+ "phpunit/php-code-coverage": "^11.0.8",
"phpunit/php-file-iterator": "^5.1.0",
"phpunit/php-timer": "^7.0.1",
- "phpunit/phpunit": "^11.4.1",
+ "phpunit/phpunit": "^11.5.1",
"sebastian/environment": "^7.2.0",
- "symfony/console": "^6.4.11 || ^7.1.5",
- "symfony/process": "^6.4.8 || ^7.1.5"
+ "symfony/console": "^6.4.14 || ^7.2.1",
+ "symfony/process": "^6.4.14 || ^7.2.0"
},
"require-dev": {
"doctrine/coding-standard": "^12.0.0",
"ext-pcov": "*",
"ext-posix": "*",
- "phpstan/phpstan": "^1.12.6",
- "phpstan/phpstan-deprecation-rules": "^1.2.1",
- "phpstan/phpstan-phpunit": "^1.4.0",
- "phpstan/phpstan-strict-rules": "^1.6.1",
- "squizlabs/php_codesniffer": "^3.10.3",
- "symfony/filesystem": "^6.4.9 || ^7.1.5"
+ "phpstan/phpstan": "^2.0.3",
+ "phpstan/phpstan-deprecation-rules": "^2.0.1",
+ "phpstan/phpstan-phpunit": "^2.0.1",
+ "phpstan/phpstan-strict-rules": "^2",
+ "squizlabs/php_codesniffer": "^3.11.1",
+ "symfony/filesystem": "^6.4.13 || ^7.2.0"
},
"bin": [
"bin/paratest",
@@ -5861,7 +6046,7 @@
],
"support": {
"issues": "https://github.com/paratestphp/paratest/issues",
- "source": "https://github.com/paratestphp/paratest/tree/v7.6.0"
+ "source": "https://github.com/paratestphp/paratest/tree/v7.7.0"
},
"funding": [
{
@@ -5873,33 +6058,31 @@
"type": "paypal"
}
],
- "time": "2024-10-15T12:38:31+00:00"
+ "time": "2024-12-11T14:50:44+00:00"
},
{
"name": "doctrine/deprecations",
- "version": "1.1.3",
+ "version": "1.1.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
- "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab"
+ "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
- "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9",
+ "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9",
"shasum": ""
},
"require": {
"php": "^7.1 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^9",
- "phpstan/phpstan": "1.4.10 || 1.10.15",
- "phpstan/phpstan-phpunit": "^1.0",
+ "doctrine/coding-standard": "^9 || ^12",
+ "phpstan/phpstan": "1.4.10 || 2.0.3",
+ "phpstan/phpstan-phpunit": "^1.0 || ^2",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "psalm/plugin-phpunit": "0.18.4",
- "psr/log": "^1 || ^2 || ^3",
- "vimeo/psalm": "4.30.0 || 5.12.0"
+ "psr/log": "^1 || ^2 || ^3"
},
"suggest": {
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
@@ -5907,7 +6090,7 @@
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
+ "Doctrine\\Deprecations\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -5918,22 +6101,22 @@
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/1.1.3"
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.4"
},
- "time": "2024-01-30T19:34:25+00:00"
+ "time": "2024-12-07T21:18:45+00:00"
},
{
"name": "fakerphp/faker",
- "version": "v1.24.0",
+ "version": "v1.24.1",
"source": {
"type": "git",
"url": "https://github.com/FakerPHP/Faker.git",
- "reference": "a136842a532bac9ecd8a1c723852b09915d7db50"
+ "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/a136842a532bac9ecd8a1c723852b09915d7db50",
- "reference": "a136842a532bac9ecd8a1c723852b09915d7db50",
+ "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5",
+ "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5",
"shasum": ""
},
"require": {
@@ -5981,9 +6164,9 @@
],
"support": {
"issues": "https://github.com/FakerPHP/Faker/issues",
- "source": "https://github.com/FakerPHP/Faker/tree/v1.24.0"
+ "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1"
},
- "time": "2024-11-07T15:11:20+00:00"
+ "time": "2024-11-21T13:46:39+00:00"
},
{
"name": "fidry/cpu-core-counter",
@@ -6229,16 +6412,16 @@
},
{
"name": "laravel/breeze",
- "version": "v2.2.5",
+ "version": "v2.3.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/breeze.git",
- "reference": "e698f651ac55920fd2ee1336c3c6cdd2467ea784"
+ "reference": "d59702967b9ae21879df905d691a50132966c4ff"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/breeze/zipball/e698f651ac55920fd2ee1336c3c6cdd2467ea784",
- "reference": "e698f651ac55920fd2ee1336c3c6cdd2467ea784",
+ "url": "https://api.github.com/repos/laravel/breeze/zipball/d59702967b9ae21879df905d691a50132966c4ff",
+ "reference": "d59702967b9ae21879df905d691a50132966c4ff",
"shasum": ""
},
"require": {
@@ -6250,8 +6433,9 @@
"symfony/console": "^7.0"
},
"require-dev": {
- "orchestra/testbench": "^9.0",
- "phpstan/phpstan": "^1.10"
+ "laravel/framework": "^11.0",
+ "orchestra/testbench-core": "^9.0",
+ "phpstan/phpstan": "^2.0"
},
"type": "library",
"extra": {
@@ -6285,7 +6469,7 @@
"issues": "https://github.com/laravel/breeze/issues",
"source": "https://github.com/laravel/breeze"
},
- "time": "2024-11-12T14:56:47+00:00"
+ "time": "2024-12-14T21:21:42+00:00"
},
{
"name": "laravel/pail",
@@ -6323,13 +6507,13 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.x-dev"
- },
"laravel": {
"providers": [
"Laravel\\Pail\\PailServiceProvider"
]
+ },
+ "branch-alias": {
+ "dev-main": "1.x-dev"
}
},
"autoload": {
@@ -6367,16 +6551,16 @@
},
{
"name": "laravel/pint",
- "version": "v1.18.2",
+ "version": "v1.18.3",
"source": {
"type": "git",
"url": "https://github.com/laravel/pint.git",
- "reference": "f55daaf7eb6c2f49ddf6702fb42e3091c64d8a64"
+ "reference": "cef51821608239040ab841ad6e1c6ae502ae3026"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/pint/zipball/f55daaf7eb6c2f49ddf6702fb42e3091c64d8a64",
- "reference": "f55daaf7eb6c2f49ddf6702fb42e3091c64d8a64",
+ "url": "https://api.github.com/repos/laravel/pint/zipball/cef51821608239040ab841ad6e1c6ae502ae3026",
+ "reference": "cef51821608239040ab841ad6e1c6ae502ae3026",
"shasum": ""
},
"require": {
@@ -6387,13 +6571,13 @@
"php": "^8.1.0"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^3.64.0",
- "illuminate/view": "^10.48.20",
- "larastan/larastan": "^2.9.8",
+ "friendsofphp/php-cs-fixer": "^3.65.0",
+ "illuminate/view": "^10.48.24",
+ "larastan/larastan": "^2.9.11",
"laravel-zero/framework": "^10.4.0",
"mockery/mockery": "^1.6.12",
- "nunomaduro/termwind": "^1.15.1",
- "pestphp/pest": "^2.35.1"
+ "nunomaduro/termwind": "^1.17.0",
+ "pestphp/pest": "^2.36.0"
},
"bin": [
"builds/pint"
@@ -6429,20 +6613,20 @@
"issues": "https://github.com/laravel/pint/issues",
"source": "https://github.com/laravel/pint"
},
- "time": "2024-11-20T09:33:46+00:00"
+ "time": "2024-11-26T15:34:00+00:00"
},
{
"name": "laravel/sail",
- "version": "v1.38.0",
+ "version": "v1.39.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/sail.git",
- "reference": "d17abae06661dd6c46d13627b1683a2924259145"
+ "reference": "1a3c7291bc88de983b66688919a4d298d68ddec7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/sail/zipball/d17abae06661dd6c46d13627b1683a2924259145",
- "reference": "d17abae06661dd6c46d13627b1683a2924259145",
+ "url": "https://api.github.com/repos/laravel/sail/zipball/1a3c7291bc88de983b66688919a4d298d68ddec7",
+ "reference": "1a3c7291bc88de983b66688919a4d298d68ddec7",
"shasum": ""
},
"require": {
@@ -6492,20 +6676,20 @@
"issues": "https://github.com/laravel/sail/issues",
"source": "https://github.com/laravel/sail"
},
- "time": "2024-11-11T20:16:51+00:00"
+ "time": "2024-11-27T15:42:28+00:00"
},
{
"name": "maximebf/debugbar",
- "version": "v1.23.4",
+ "version": "v1.23.5",
"source": {
"type": "git",
- "url": "https://github.com/maximebf/php-debugbar.git",
- "reference": "0815f47bdd867b816b4bf2ca1c7bd7f89e1527ca"
+ "url": "https://github.com/php-debugbar/php-debugbar.git",
+ "reference": "eeabd61a1f19ba5dcd5ac4585a477130ee03ce25"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/0815f47bdd867b816b4bf2ca1c7bd7f89e1527ca",
- "reference": "0815f47bdd867b816b4bf2ca1c7bd7f89e1527ca",
+ "url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/eeabd61a1f19ba5dcd5ac4585a477130ee03ce25",
+ "reference": "eeabd61a1f19ba5dcd5ac4585a477130ee03ce25",
"shasum": ""
},
"require": {
@@ -6557,10 +6741,10 @@
"debugbar"
],
"support": {
- "issues": "https://github.com/maximebf/php-debugbar/issues",
- "source": "https://github.com/maximebf/php-debugbar/tree/v1.23.4"
+ "issues": "https://github.com/php-debugbar/php-debugbar/issues",
+ "source": "https://github.com/php-debugbar/php-debugbar/tree/v1.23.5"
},
- "time": "2024-12-05T10:36:51+00:00"
+ "time": "2024-12-15T19:20:42+00:00"
},
{
"name": "mockery/mockery",
@@ -6804,38 +6988,38 @@
},
{
"name": "pestphp/pest",
- "version": "v3.5.1",
+ "version": "v3.7.1",
"source": {
"type": "git",
"url": "https://github.com/pestphp/pest.git",
- "reference": "179d46ce97d52bcb3f791449ae94025c3f32e3e3"
+ "reference": "bf3178473dcaa53b0458f21dfdb271306ea62512"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/pestphp/pest/zipball/179d46ce97d52bcb3f791449ae94025c3f32e3e3",
- "reference": "179d46ce97d52bcb3f791449ae94025c3f32e3e3",
+ "url": "https://api.github.com/repos/pestphp/pest/zipball/bf3178473dcaa53b0458f21dfdb271306ea62512",
+ "reference": "bf3178473dcaa53b0458f21dfdb271306ea62512",
"shasum": ""
},
"require": {
- "brianium/paratest": "^7.6.0",
+ "brianium/paratest": "^7.7.0",
"nunomaduro/collision": "^8.5.0",
- "nunomaduro/termwind": "^2.2.0",
+ "nunomaduro/termwind": "^2.3.0",
"pestphp/pest-plugin": "^3.0.0",
"pestphp/pest-plugin-arch": "^3.0.0",
"pestphp/pest-plugin-mutate": "^3.0.5",
"php": "^8.2.0",
- "phpunit/phpunit": "^11.4.3"
+ "phpunit/phpunit": "^11.5.1"
},
"conflict": {
"filp/whoops": "<2.16.0",
- "phpunit/phpunit": ">11.4.3",
+ "phpunit/phpunit": ">11.5.1",
"sebastian/exporter": "<6.0.0",
"webmozart/assert": "<1.11.0"
},
"require-dev": {
"pestphp/pest-dev-tools": "^3.3.0",
- "pestphp/pest-plugin-type-coverage": "^3.1.0",
- "symfony/process": "^7.1.6"
+ "pestphp/pest-plugin-type-coverage": "^3.2.0",
+ "symfony/process": "^7.2.0"
},
"bin": [
"bin/pest"
@@ -6900,7 +7084,7 @@
],
"support": {
"issues": "https://github.com/pestphp/pest/issues",
- "source": "https://github.com/pestphp/pest/tree/v3.5.1"
+ "source": "https://github.com/pestphp/pest/tree/v3.7.1"
},
"funding": [
{
@@ -6912,7 +7096,7 @@
"type": "github"
}
],
- "time": "2024-10-31T16:12:45+00:00"
+ "time": "2024-12-12T11:52:01+00:00"
},
{
"name": "pestphp/pest-plugin",
@@ -7080,15 +7264,15 @@
},
"type": "library",
"extra": {
- "laravel": {
- "providers": [
- "Pest\\Laravel\\PestServiceProvider"
- ]
- },
"pest": {
"plugins": [
"Pest\\Laravel\\Plugin"
]
+ },
+ "laravel": {
+ "providers": [
+ "Pest\\Laravel\\PestServiceProvider"
+ ]
}
},
"autoload": {
@@ -7373,16 +7557,16 @@
},
{
"name": "phpdocumentor/reflection-docblock",
- "version": "5.6.0",
+ "version": "5.6.1",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "f3558a4c23426d12bffeaab463f8a8d8b681193c"
+ "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/f3558a4c23426d12bffeaab463f8a8d8b681193c",
- "reference": "f3558a4c23426d12bffeaab463f8a8d8b681193c",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8",
+ "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8",
"shasum": ""
},
"require": {
@@ -7431,9 +7615,9 @@
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.0"
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.1"
},
- "time": "2024-11-12T11:25:25+00:00"
+ "time": "2024-12-07T09:39:29+00:00"
},
{
"name": "phpdocumentor/type-resolver",
@@ -7542,16 +7726,16 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "11.0.7",
+ "version": "11.0.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "f7f08030e8811582cc459871d28d6f5a1a4d35ca"
+ "reference": "418c59fd080954f8c4aa5631d9502ecda2387118"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f7f08030e8811582cc459871d28d6f5a1a4d35ca",
- "reference": "f7f08030e8811582cc459871d28d6f5a1a4d35ca",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/418c59fd080954f8c4aa5631d9502ecda2387118",
+ "reference": "418c59fd080954f8c4aa5631d9502ecda2387118",
"shasum": ""
},
"require": {
@@ -7570,7 +7754,7 @@
"theseer/tokenizer": "^1.2.3"
},
"require-dev": {
- "phpunit/phpunit": "^11.4.1"
+ "phpunit/phpunit": "^11.5.0"
},
"suggest": {
"ext-pcov": "PHP extension that provides line coverage",
@@ -7608,7 +7792,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/11.0.7"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.8"
},
"funding": [
{
@@ -7616,7 +7800,7 @@
"type": "github"
}
],
- "time": "2024-10-09T06:21:38+00:00"
+ "time": "2024-12-11T12:34:27+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -7865,16 +8049,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "11.4.3",
+ "version": "11.5.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "e8e8ed1854de5d36c088ec1833beae40d2dedd76"
+ "reference": "2b94d4f2450b9869fa64a46fd8a6a41997aef56a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e8e8ed1854de5d36c088ec1833beae40d2dedd76",
- "reference": "e8e8ed1854de5d36c088ec1833beae40d2dedd76",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2b94d4f2450b9869fa64a46fd8a6a41997aef56a",
+ "reference": "2b94d4f2450b9869fa64a46fd8a6a41997aef56a",
"shasum": ""
},
"require": {
@@ -7884,7 +8068,7 @@
"ext-mbstring": "*",
"ext-xml": "*",
"ext-xmlwriter": "*",
- "myclabs/deep-copy": "^1.12.0",
+ "myclabs/deep-copy": "^1.12.1",
"phar-io/manifest": "^2.0.4",
"phar-io/version": "^3.2.1",
"php": ">=8.2",
@@ -7895,14 +8079,15 @@
"phpunit/php-timer": "^7.0.1",
"sebastian/cli-parser": "^3.0.2",
"sebastian/code-unit": "^3.0.1",
- "sebastian/comparator": "^6.1.1",
+ "sebastian/comparator": "^6.2.1",
"sebastian/diff": "^6.0.2",
"sebastian/environment": "^7.2.0",
- "sebastian/exporter": "^6.1.3",
+ "sebastian/exporter": "^6.3.0",
"sebastian/global-state": "^7.0.2",
"sebastian/object-enumerator": "^6.0.1",
"sebastian/type": "^5.1.0",
- "sebastian/version": "^5.0.2"
+ "sebastian/version": "^5.0.2",
+ "staabm/side-effects-detector": "^1.0.5"
},
"suggest": {
"ext-soap": "To be able to generate mocks based on WSDL files"
@@ -7913,7 +8098,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "11.4-dev"
+ "dev-main": "11.5-dev"
}
},
"autoload": {
@@ -7945,7 +8130,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/11.4.3"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.1"
},
"funding": [
{
@@ -7961,7 +8146,7 @@
"type": "tidelift"
}
],
- "time": "2024-10-28T13:07:50+00:00"
+ "time": "2024-12-11T10:52:48+00:00"
},
{
"name": "sebastian/cli-parser",
@@ -8022,23 +8207,23 @@
},
{
"name": "sebastian/code-unit",
- "version": "3.0.1",
+ "version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit.git",
- "reference": "6bb7d09d6623567178cf54126afa9c2310114268"
+ "reference": "ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/6bb7d09d6623567178cf54126afa9c2310114268",
- "reference": "6bb7d09d6623567178cf54126afa9c2310114268",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca",
+ "reference": "ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca",
"shasum": ""
},
"require": {
"php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^11.0"
+ "phpunit/phpunit": "^11.5"
},
"type": "library",
"extra": {
@@ -8067,7 +8252,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/code-unit/issues",
"security": "https://github.com/sebastianbergmann/code-unit/security/policy",
- "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.1"
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.2"
},
"funding": [
{
@@ -8075,7 +8260,7 @@
"type": "github"
}
],
- "time": "2024-07-03T04:44:28+00:00"
+ "time": "2024-12-12T09:59:06+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
@@ -8401,16 +8586,16 @@
},
{
"name": "sebastian/exporter",
- "version": "6.1.3",
+ "version": "6.3.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "c414673eee9a8f9d51bbf8d61fc9e3ef1e85b20e"
+ "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c414673eee9a8f9d51bbf8d61fc9e3ef1e85b20e",
- "reference": "c414673eee9a8f9d51bbf8d61fc9e3ef1e85b20e",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/3473f61172093b2da7de1fb5782e1f24cc036dc3",
+ "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3",
"shasum": ""
},
"require": {
@@ -8419,7 +8604,7 @@
"sebastian/recursion-context": "^6.0"
},
"require-dev": {
- "phpunit/phpunit": "^11.2"
+ "phpunit/phpunit": "^11.3"
},
"type": "library",
"extra": {
@@ -8467,7 +8652,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
"security": "https://github.com/sebastianbergmann/exporter/security/policy",
- "source": "https://github.com/sebastianbergmann/exporter/tree/6.1.3"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.0"
},
"funding": [
{
@@ -8475,7 +8660,7 @@
"type": "github"
}
],
- "time": "2024-07-03T04:56:19+00:00"
+ "time": "2024-12-05T09:17:50+00:00"
},
{
"name": "sebastian/global-state",
@@ -8886,22 +9071,75 @@
],
"time": "2024-10-09T05:16:32+00:00"
},
+ {
+ "name": "staabm/side-effects-detector",
+ "version": "1.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/staabm/side-effects-detector.git",
+ "reference": "d8334211a140ce329c13726d4a715adbddd0a163"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163",
+ "reference": "d8334211a140ce329c13726d4a715adbddd0a163",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/extension-installer": "^1.4.3",
+ "phpstan/phpstan": "^1.12.6",
+ "phpunit/phpunit": "^9.6.21",
+ "symfony/var-dumper": "^5.4.43",
+ "tomasvotruba/type-coverage": "1.0.0",
+ "tomasvotruba/unused-public": "1.0.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "lib/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A static analysis tool to detect side effects in PHP code",
+ "keywords": [
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/staabm/side-effects-detector/issues",
+ "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/staabm",
+ "type": "github"
+ }
+ ],
+ "time": "2024-10-20T05:08:20+00:00"
+ },
{
"name": "symfony/yaml",
- "version": "v7.1.6",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "3ced3f29e4f0d6bce2170ff26719f1fe9aacc671"
+ "reference": "099581e99f557e9f16b43c5916c26380b54abb22"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/3ced3f29e4f0d6bce2170ff26719f1fe9aacc671",
- "reference": "3ced3f29e4f0d6bce2170ff26719f1fe9aacc671",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/099581e99f557e9f16b43c5916c26380b54abb22",
+ "reference": "099581e99f557e9f16b43c5916c26380b54abb22",
"shasum": ""
},
"require": {
"php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3.0",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
@@ -8939,7 +9177,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v7.1.6"
+ "source": "https://github.com/symfony/yaml/tree/v7.2.0"
},
"funding": [
{
@@ -8955,7 +9193,7 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2024-10-23T06:56:12+00:00"
},
{
"name": "ta-tikoma/phpunit-architecture-test",
diff --git a/config/app.php b/config/app.php
old mode 100644
new mode 100755
diff --git a/config/auth.php b/config/auth.php
old mode 100644
new mode 100755
diff --git a/config/cache.php b/config/cache.php
old mode 100644
new mode 100755
diff --git a/config/database.php b/config/database.php
old mode 100644
new mode 100755
diff --git a/config/filesystems.php b/config/filesystems.php
old mode 100644
new mode 100755
diff --git a/config/logging.php b/config/logging.php
old mode 100644
new mode 100755
diff --git a/config/mail.php b/config/mail.php
old mode 100644
new mode 100755
diff --git a/config/permission.php b/config/permission.php
old mode 100644
new mode 100755
diff --git a/config/queue.php b/config/queue.php
old mode 100644
new mode 100755
diff --git a/config/services.php b/config/services.php
old mode 100644
new mode 100755
diff --git a/config/session.php b/config/session.php
old mode 100644
new mode 100755
diff --git a/database/.gitignore b/database/.gitignore
old mode 100644
new mode 100755
diff --git a/database/factories/ProjectFactory.php b/database/factories/ProjectFactory.php
old mode 100644
new mode 100755
index 3517150..8924f83
--- a/database/factories/ProjectFactory.php
+++ b/database/factories/ProjectFactory.php
@@ -17,7 +17,7 @@ class ProjectFactory extends Factory
public function definition(): array
{
return [
- 'title' => fake()->sentence(3)
+ 'title' => fake()->sentence(3),
];
}
}
diff --git a/database/factories/TeamFactory.php b/database/factories/TeamFactory.php
old mode 100644
new mode 100755
index dceb1ee..443d638
--- a/database/factories/TeamFactory.php
+++ b/database/factories/TeamFactory.php
@@ -17,7 +17,7 @@ class TeamFactory extends Factory
public function definition(): array
{
return [
- 'name' => fake()->sentence(2)
+ 'name' => fake()->sentence(2),
];
}
}
diff --git a/database/factories/TeamInviteFactory.php b/database/factories/TeamInviteFactory.php
old mode 100644
new mode 100755
index ec80c55..2283e19
--- a/database/factories/TeamInviteFactory.php
+++ b/database/factories/TeamInviteFactory.php
@@ -18,7 +18,7 @@ public function definition(): array
{
return [
'email' => fake()->email,
- 'token' => str()->random(30)
+ 'token' => str()->random(30),
];
}
}
diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php
old mode 100644
new mode 100755
diff --git a/database/migrations/0001_01_01_000000_create_users_table.php b/database/migrations/0001_01_01_000000_create_users_table.php
old mode 100644
new mode 100755
diff --git a/database/migrations/0001_01_01_000001_create_cache_table.php b/database/migrations/0001_01_01_000001_create_cache_table.php
old mode 100644
new mode 100755
diff --git a/database/migrations/0001_01_01_000002_create_jobs_table.php b/database/migrations/0001_01_01_000002_create_jobs_table.php
old mode 100644
new mode 100755
diff --git a/database/migrations/2024_11_21_101933_create_teams_table.php b/database/migrations/2024_11_21_101933_create_teams_table.php
old mode 100644
new mode 100755
diff --git a/database/migrations/2024_11_21_102118_create_team_user_table.php b/database/migrations/2024_11_21_102118_create_team_user_table.php
old mode 100644
new mode 100755
diff --git a/database/migrations/2024_11_21_105637_add_current_team_id_to_users_table.php b/database/migrations/2024_11_21_105637_add_current_team_id_to_users_table.php
old mode 100644
new mode 100755
diff --git a/database/migrations/2024_11_21_124650_create_permission_tables.php b/database/migrations/2024_11_21_124650_create_permission_tables.php
old mode 100644
new mode 100755
index 9c7044b..dcfb881
--- a/database/migrations/2024_11_21_124650_create_permission_tables.php
+++ b/database/migrations/2024_11_21_124650_create_permission_tables.php
@@ -1,8 +1,8 @@
id();
+ $table->uuid('uuid')->unique();
$table->foreignId('team_id')->constrained();
$table->string('title');
+ $table->decimal('completion_percentage', 5, 2)->default(0);
$table->timestamps();
});
}
diff --git a/database/migrations/2024_12_28_165600_add_role_to_team_user_table.php b/database/migrations/2024_12_28_165600_add_role_to_team_user_table.php
new file mode 100644
index 0000000..6d257a9
--- /dev/null
+++ b/database/migrations/2024_12_28_165600_add_role_to_team_user_table.php
@@ -0,0 +1,28 @@
+string('role')->default('member')->after('team_id');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::table('team_user', function (Blueprint $table) {
+ $table->dropColumn('role');
+ });
+ }
+};
diff --git a/database/seeders/AdminRoleSeeder.php b/database/seeders/AdminRoleSeeder.php
old mode 100644
new mode 100755
index b12db28..cfcf31a
--- a/database/seeders/AdminRoleSeeder.php
+++ b/database/seeders/AdminRoleSeeder.php
@@ -2,7 +2,6 @@
namespace Database\Seeders;
-use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
old mode 100644
new mode 100755
index d01a0ef..9bf57b2
--- a/database/seeders/DatabaseSeeder.php
+++ b/database/seeders/DatabaseSeeder.php
@@ -14,7 +14,10 @@ class DatabaseSeeder extends Seeder
public function run(): void
{
// User::factory(10)->create();
-
+ $this->call([
+ AdminRoleSeeder::class,
+ MemberRoleSeeder::class,
+ ]);
User::factory()->create([
'name' => 'Test User',
'email' => 'test@example.com',
diff --git a/database/seeders/MemberRoleSeeder.php b/database/seeders/MemberRoleSeeder.php
old mode 100644
new mode 100755
index c7cf817..28c2421
--- a/database/seeders/MemberRoleSeeder.php
+++ b/database/seeders/MemberRoleSeeder.php
@@ -2,7 +2,6 @@
namespace Database\Seeders;
-use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
diff --git a/package-lock.json b/package-lock.json
old mode 100644
new mode 100755
index 2800e9d..d2f3726
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,9 +1,10 @@
{
- "name": "laravel-teams",
+ "name": "teams",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
+ "name": "teams",
"devDependencies": {
"@tailwindcss/forms": "^0.5.2",
"alpinejs": "^3.4.2",
@@ -1727,9 +1728,9 @@
}
},
"node_modules/nanoid": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
- "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "version": "3.3.8",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
+ "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
"dev": true,
"funding": [
{
@@ -1737,6 +1738,7 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
diff --git a/package.json b/package.json
old mode 100644
new mode 100755
diff --git a/phpunit.xml b/phpunit.xml
old mode 100644
new mode 100755
diff --git a/postcss.config.js b/postcss.config.js
old mode 100644
new mode 100755
diff --git a/public/.htaccess b/public/.htaccess
old mode 100644
new mode 100755
diff --git a/public/favicon.ico b/public/favicon.ico
old mode 100644
new mode 100755
diff --git a/public/index.php b/public/index.php
old mode 100644
new mode 100755
diff --git a/public/robots.txt b/public/robots.txt
old mode 100644
new mode 100755
diff --git a/resources/css/app.css b/resources/css/app.css
old mode 100644
new mode 100755
diff --git a/resources/js/app.js b/resources/js/app.js
old mode 100644
new mode 100755
diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js
old mode 100644
new mode 100755
diff --git a/resources/views/auth/confirm-password.blade.php b/resources/views/auth/confirm-password.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/auth/forgot-password.blade.php b/resources/views/auth/forgot-password.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/auth/reset-password.blade.php b/resources/views/auth/reset-password.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/auth/verify-email.blade.php b/resources/views/auth/verify-email.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/components/application-logo.blade.php b/resources/views/components/application-logo.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/components/auth-session-status.blade.php b/resources/views/components/auth-session-status.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/components/danger-button.blade.php b/resources/views/components/danger-button.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/components/dropdown-link.blade.php b/resources/views/components/dropdown-link.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/components/dropdown.blade.php b/resources/views/components/dropdown.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/components/input-error.blade.php b/resources/views/components/input-error.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/components/input-label.blade.php b/resources/views/components/input-label.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/components/modal.blade.php b/resources/views/components/modal.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/components/nav-link.blade.php b/resources/views/components/nav-link.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/components/notification.blade.php b/resources/views/components/notification.blade.php
new file mode 100644
index 0000000..48414ba
--- /dev/null
+++ b/resources/views/components/notification.blade.php
@@ -0,0 +1,16 @@
+@props(['type' => 'success'])
+
+
+ {{ $slot }}
+
diff --git a/resources/views/components/primary-button.blade.php b/resources/views/components/primary-button.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/components/responsive-nav-link.blade.php b/resources/views/components/responsive-nav-link.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/components/secondary-button.blade.php b/resources/views/components/secondary-button.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/components/select-input.blade.php b/resources/views/components/select-input.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/components/team-invite-item.blade.php b/resources/views/components/team-invite-item.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/components/team-member-item.blade.php b/resources/views/components/team-member-item.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/components/text-input.blade.php b/resources/views/components/text-input.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/dashboard.blade.php b/resources/views/dashboard.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/emails/team_invitation.blade.php b/resources/views/emails/team_invitation.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php
old mode 100644
new mode 100755
index c5ff315..3d78705
--- a/resources/views/layouts/app.blade.php
+++ b/resources/views/layouts/app.blade.php
@@ -8,9 +8,7 @@
{{ config('app.name', 'Laravel') }}
-
-
-
+
@vite(['resources/css/app.css', 'resources/js/app.js'])
diff --git a/resources/views/layouts/guest.blade.php b/resources/views/layouts/guest.blade.php
old mode 100644
new mode 100755
index 11feb47..a2e6ddd
--- a/resources/views/layouts/guest.blade.php
+++ b/resources/views/layouts/guest.blade.php
@@ -1,30 +1,28 @@
-
-
-
-
+
+
+
+
- {{ config('app.name', 'Laravel') }}
+ {{ config('app.name', 'Laravel') }}
-
-
-
-
-
- @vite(['resources/css/app.css', 'resources/js/app.js'])
-
-
-
-
+
+
+
+ @vite(['resources/css/app.css', 'resources/js/app.js'])
+
+
+
+
-
- {{ $slot }}
-
+
+ {{ $slot }}
-
+
+
diff --git a/resources/views/layouts/navigation.blade.php b/resources/views/layouts/navigation.blade.php
old mode 100644
new mode 100755
index e321efb..ece5dd3
--- a/resources/views/layouts/navigation.blade.php
+++ b/resources/views/layouts/navigation.blade.php
@@ -15,6 +15,9 @@
{{ __('Dashboard') }}
+
+ {{ __('Projects') }}
+
@@ -100,6 +103,9 @@
{{ __('Dashboard') }}
+
+ {{ __('Projects') }}
+
diff --git a/resources/views/profile/edit.blade.php b/resources/views/profile/edit.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/profile/partials/delete-user-form.blade.php b/resources/views/profile/partials/delete-user-form.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/profile/partials/update-password-form.blade.php b/resources/views/profile/partials/update-password-form.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/profile/partials/update-profile-information-form.blade.php b/resources/views/profile/partials/update-profile-information-form.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/projects/create.blade.php b/resources/views/projects/create.blade.php
new file mode 100644
index 0000000..2545246
--- /dev/null
+++ b/resources/views/projects/create.blade.php
@@ -0,0 +1,32 @@
+
+
+
+ {{ __('Create Project') }}
+
+
+
+
+
diff --git a/resources/views/projects/edit.blade.php b/resources/views/projects/edit.blade.php
new file mode 100644
index 0000000..fb9fec8
--- /dev/null
+++ b/resources/views/projects/edit.blade.php
@@ -0,0 +1,43 @@
+
+
+
+ {{ __('Edit Project') }}
+
+
+
+
+
diff --git a/resources/views/projects/index.blade.php b/resources/views/projects/index.blade.php
new file mode 100644
index 0000000..a9e3b42
--- /dev/null
+++ b/resources/views/projects/index.blade.php
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+ @if (session('success'))
+
+ {{ session('success') }}
+
+ @endif
+
+
+
+ @if($projects->isEmpty())
+
{{ __('No projects found.') }}
+ @else
+
+
+
+
+
+ {{ __('Title') }}
+
+
+ {{ __('Team') }}
+
+
+ {{ __('Progress') }}
+
+
+ {{ __('Created') }}
+
+
+ {{ __('Actions') }}
+
+
+
+
+ @foreach($projects as $project)
+
+
+
+
+
+ {{ $project->team->name }}
+
+
+
+
+
{{ number_format($project->completion_percentage, 0) }}%
+
+
+
+
+ {{ $project->created_at->diffForHumans() }}
+
+
+
+
+
+
+
+
+
+
+
+ @can('update', $project)
+
+
+
+
+
+ @endcan
+
+ @can('delete', $project)
+
+ @csrf
+ @method('DELETE')
+
+
+
+
+
+
+ @endcan
+
+
+
+ @endforeach
+
+
+
+
+ {{ $projects->links() }}
+
+ @endif
+
+
+
+
+
diff --git a/resources/views/projects/show.blade.php b/resources/views/projects/show.blade.php
new file mode 100644
index 0000000..bfda0cc
--- /dev/null
+++ b/resources/views/projects/show.blade.php
@@ -0,0 +1,61 @@
+
+
+
+
+ {{ $project->title }}
+
+
+ @can('update', $project)
+
+ {{ __('Edit') }}
+
+ @endcan
+ @can('delete', $project)
+
+ @csrf
+ @method('DELETE')
+
+ {{ __('Delete') }}
+
+
+ @endcan
+
+
+
+
+
+
+ @if (session('success'))
+
+ {{ session('success') }}
+
+ @endif
+
+
+
+
+
{{ __('Description') }}
+
{{ $project->description }}
+
+
+
+
{{ __('Progress') }}
+
+
+
{{ number_format($project->completion_percentage, 0) }}%
+
+
+
+
+
{{ __('Team') }}
+
{{ $project->team->name }}
+
+
+
+
+
+
diff --git a/resources/views/team/edit.blade.php b/resources/views/team/edit.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/team/partials/edit-team-form.blade.php b/resources/views/team/partials/edit-team-form.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/team/partials/team-members.blade.php b/resources/views/team/partials/team-members.blade.php
old mode 100644
new mode 100755
diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php
old mode 100644
new mode 100755
index 979e82a..2f83f96
--- a/resources/views/welcome.blade.php
+++ b/resources/views/welcome.blade.php
@@ -1,176 +1,1044 @@
-
-
-
-
- Laravel
-
-
-
-
-
-
- @if (file_exists(public_path('build/manifest.json')) || file_exists(public_path('hot')))
- @vite(['resources/css/app.css', 'resources/js/app.js'])
- @else
-
- @endif
-
-
-
-
-
-
-
-
- @if (Route::has('login'))
-
- @auth
-
- Dashboard
-
- @else
-
- Log in
-
-
- @if (Route::has('register'))
-
- Register
-
- @endif
- @endauth
-
+
+
+
+
+ Laravel
+
+
+
+
+ @if (file_exists(public_path('build/manifest.json')) || file_exists(public_path('hot')))
+ @vite(['resources/css/app.css', 'resources/js/app.js'])
+ @else
+
+ @endif
+
+
+
+
+
+
+
-
-
-
-
-
-
+
-
-
-
+
+
+
-
-
Documentation
+
+
Documentation
-
- Laravel has wonderful documentation covering every aspect of the framework. Whether you are a newcomer or have prior experience with Laravel, we recommend reading our documentation from beginning to end.
-
-
+
+ Laravel has wonderful documentation covering every aspect of the framework. Whether you are a newcomer or have prior experience with Laravel, we recommend reading our documentation from beginning to end.
+
-
-
-
-
-
-
-
-
+
-
- Laracasts offers thousands of video tutorials on Laravel, PHP, and JavaScript development. Check them out, see for yourself, and massively level up your development skills in the process.
-
-
+
+
-
-
+
-
-
Laravel News
+
+
+
-
- Laravel News is a community driven portal and newsletter aggregating all of the latest and most important news in the Laravel ecosystem, including new package releases and tutorials.
-
-
+
+
-
-
-
-
-
+
+
Laravel News
-
-
Vibrant Ecosystem
+
+ Laravel News is a community driven portal and newsletter aggregating all of the latest and most important news in the Laravel ecosystem, including new package releases and tutorials.
+
+
-
- Laravel's robust library of first-party tools and libraries, such as Forge , Vapor , Nova , Envoyer , and Herd help you take your projects to the next level. Pair them with powerful open source libraries like Cashier , Dusk , Echo , Horizon , Sanctum , Telescope , and more.
-
-
+
+
+
+
+
+
+
+
+
Vibrant Ecosystem
+
+
+ Laravel's robust library of first-party tools and libraries, such as Forge , Vapor , Nova , Envoyer , and Herd help you take your projects to the next level. Pair them with powerful open source libraries like Cashier , Dusk , Echo , Horizon , Sanctum , Telescope , and more.
+
-
+
+
-
- Laravel v{{ Illuminate\Foundation\Application::VERSION }} (PHP v{{ PHP_VERSION }})
-
-
+
+ Laravel v{{ Illuminate\Foundation\Application::VERSION }} (PHP v{{ PHP_VERSION }})
+
-
+
+
diff --git a/routes/auth.php b/routes/auth.php
old mode 100644
new mode 100755
diff --git a/routes/console.php b/routes/console.php
old mode 100644
new mode 100755
diff --git a/routes/web.php b/routes/web.php
old mode 100644
new mode 100755
index e6e7133..30ff4d2
--- a/routes/web.php
+++ b/routes/web.php
@@ -2,6 +2,7 @@
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\ProfileController;
+use App\Http\Controllers\ProjectController;
use App\Http\Controllers\TeamController;
use App\Http\Controllers\TeamInviteController;
use App\Http\Controllers\TeamMemberController;
@@ -46,6 +47,10 @@
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
+
+ Route::middleware(['auth', 'verified'])->group(function () {
+ Route::resource('projects', ProjectController::class);
+ });
});
require __DIR__.'/auth.php';
diff --git a/storage/app/.gitignore b/storage/app/.gitignore
old mode 100644
new mode 100755
diff --git a/storage/app/private/.gitignore b/storage/app/private/.gitignore
old mode 100644
new mode 100755
diff --git a/storage/app/public/.gitignore b/storage/app/public/.gitignore
old mode 100644
new mode 100755
diff --git a/storage/debugbar/.gitignore b/storage/debugbar/.gitignore
old mode 100644
new mode 100755
diff --git a/storage/framework/.gitignore b/storage/framework/.gitignore
old mode 100644
new mode 100755
diff --git a/storage/framework/cache/.gitignore b/storage/framework/cache/.gitignore
old mode 100644
new mode 100755
diff --git a/storage/framework/cache/data/.gitignore b/storage/framework/cache/data/.gitignore
old mode 100644
new mode 100755
diff --git a/storage/framework/sessions/.gitignore b/storage/framework/sessions/.gitignore
old mode 100644
new mode 100755
diff --git a/storage/framework/testing/.gitignore b/storage/framework/testing/.gitignore
old mode 100644
new mode 100755
diff --git a/storage/framework/views/.gitignore b/storage/framework/views/.gitignore
old mode 100644
new mode 100755
diff --git a/storage/logs/.gitignore b/storage/logs/.gitignore
old mode 100644
new mode 100755
diff --git a/tailwind.config.js b/tailwind.config.js
old mode 100644
new mode 100755
index c29eb1a..eeaefb1
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -12,7 +12,13 @@ export default {
theme: {
extend: {
fontFamily: {
- sans: ['Figtree', ...defaultTheme.fontFamily.sans],
+ sans: [
+ '"Inter var", sans-serif',
+ {
+ fontFeatureSettings: '"cv11", "ss01"',
+ fontVariationSettings: '"opsz" 32'
+ },
+ ],
},
},
},
diff --git a/tests/Feature/Controllers/TeamControllerTest.php b/tests/Feature/Controllers/TeamControllerTest.php
old mode 100644
new mode 100755
index 4b9c89f..9afe8af
--- a/tests/Feature/Controllers/TeamControllerTest.php
+++ b/tests/Feature/Controllers/TeamControllerTest.php
@@ -3,7 +3,7 @@
use App\Http\Middleware\TeamsPermission;
use App\Models\Team;
use App\Models\User;
-use http\Env\Request;
+
use function Pest\Laravel\actingAs;
it('switches the current team for the user', function () {
@@ -37,7 +37,7 @@
actingAs($user)
->patch(route('team.update', $user->currentTeam), [
- 'name' => $name = 'A new team name'
+ 'name' => $name = 'A new team name',
])
->assertRedirect();
@@ -50,7 +50,7 @@
actingAs($user)
->patch(route('team.update', $anotherUser->currentTeam), [
- 'name' => 'A new team name'
+ 'name' => 'A new team name',
])
->assertForbidden();
});
@@ -67,7 +67,7 @@
actingAs($user)
->withoutMiddleware(TeamsPermission::class)
->patch(route('team.update', $anotherTeam), [
- 'name' => 'A new team name'
+ 'name' => 'A new team name',
])
->assertForbidden();
});
diff --git a/tests/Feature/Controllers/TeamInviteControllerTest.php b/tests/Feature/Controllers/TeamInviteControllerTest.php
old mode 100644
new mode 100755
index 68ba892..5eda212
--- a/tests/Feature/Controllers/TeamInviteControllerTest.php
+++ b/tests/Feature/Controllers/TeamInviteControllerTest.php
@@ -8,12 +8,13 @@
use Illuminate\Routing\Middleware\ValidateSignature;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Str;
+
use function Pest\Laravel\actingAs;
use function Pest\Laravel\assertDatabaseHas;
use function Pest\Laravel\assertDatabaseMissing;
afterEach(function () {
- Str::createRandomStringsNormally();
+ Str::createRandomStringsNormally();
});
it('creates an invite', function () {
@@ -25,19 +26,19 @@
actingAs($user)
->post(route('team.invites.store', $user->currentTeam), [
- 'email' => $email = 'mabel@codecourse.com'
+ 'email' => $email = 'mabel@codecourse.com',
])
->assertRedirect();
Mail::assertSent(TeamInvitation::class, function (TeamInvitation $mail) use ($email) {
- return $mail->hasTo($email) &&
+ return $mail->hasTo($email) &&
$mail->teamInvite->token === 'abc';
});
assertDatabaseHas('team_invites', [
'team_id' => $user->currentTeam->id,
'email' => $email,
- 'token' => 'abc'
+ 'token' => 'abc',
]);
});
@@ -54,7 +55,7 @@
actingAs($user)
->post(route('team.invites.store', $user->currentTeam), [
- 'email' => 'abc'
+ 'email' => 'abc',
])
->assertSessionHasErrors('email');
});
@@ -64,12 +65,12 @@
TeamInvite::factory()->create([
'team_id' => $user->currentTeam->id,
- 'email' => $email = 'mabel@codecourse.com'
+ 'email' => $email = 'mabel@codecourse.com',
]);
actingAs($user)
->post(route('team.invites.store', $user->currentTeam), [
- 'email' => $email
+ 'email' => $email,
])
->assertInvalid();
});
@@ -80,12 +81,12 @@
TeamInvite::factory()
->for(Team::factory())
->create([
- 'email' => $email = 'mabel@codecourse.com'
+ 'email' => $email = 'mabel@codecourse.com',
]);
actingAs($user)
->post(route('team.invites.store', $user->currentTeam), [
- 'email' => $email
+ 'email' => $email,
])
->assertValid();
});
@@ -102,7 +103,7 @@
actingAs($user)
->withoutMiddleware(TeamsPermission::class)
->post(route('team.invites.store', $anotherTeam), [
- 'email' => 'mabel@codecourse.com'
+ 'email' => 'mabel@codecourse.com',
])
->assertForbidden();
});
@@ -111,7 +112,7 @@
$user = User::factory()->create();
$invite = TeamInvite::factory()->create([
- 'team_id' => $user->currentTeam->id
+ 'team_id' => $user->currentTeam->id,
]);
actingAs($user)
@@ -133,7 +134,7 @@
);
$invite = TeamInvite::factory()->create([
- 'team_id' => $anotherTeam->id
+ 'team_id' => $anotherTeam->id,
]);
setPermissionsTeamId($anotherTeam);
@@ -152,7 +153,7 @@
$acceptingUser = User::factory()->create();
actingAs($acceptingUser)
- ->get('/team/invites/accept?token=' . $invite->token)
+ ->get('/team/invites/accept?token='.$invite->token)
->assertForbidden();
});
@@ -165,7 +166,7 @@
actingAs($acceptingUser)
->withoutMiddleware(ValidateSignature::class)
- ->get('/team/invites/accept?token=' . $invite->token)
+ ->get('/team/invites/accept?token='.$invite->token)
->assertRedirect('/dashboard');
expect($acceptingUser->teams->contains($invite->team))->toBeTrue()
diff --git a/tests/Feature/Controllers/TeamMemberControllerTest.php b/tests/Feature/Controllers/TeamMemberControllerTest.php
old mode 100644
new mode 100755
index 1010601..8713257
--- a/tests/Feature/Controllers/TeamMemberControllerTest.php
+++ b/tests/Feature/Controllers/TeamMemberControllerTest.php
@@ -2,6 +2,7 @@
use App\Http\Middleware\TeamsPermission;
use App\Models\User;
+
use function Pest\Laravel\actingAs;
it('can remove a member from the team', function () {
@@ -62,7 +63,7 @@
actingAs($user)
->patch(route('team.members.update', [$user->currentTeam, $member]), [
- 'role' => 'team admin'
+ 'role' => 'team admin',
])
->assertRedirect();
@@ -103,7 +104,7 @@
actingAs($anotherUser)
->withoutMiddleware(TeamsPermission::class)
->patch(route('team.members.update', [$user->currentTeam, $user]), [
- 'role' => 'team member'
+ 'role' => 'team member',
])
->assertForbidden();
});
@@ -114,7 +115,7 @@
actingAs($user)
->patch(route('team.members.update', [$user->currentTeam, $anotherUser]), [
- 'role' => 'team member'
+ 'role' => 'team member',
])
->assertForbidden();
});
@@ -131,7 +132,7 @@
actingAs($user)
->patch(route('team.members.update', [$user->currentTeam, $member]), [
- 'role' => 'some wrong role'
+ 'role' => 'some wrong role',
])
->assertInvalid()
->assertSessionHasErrors(['role']);
diff --git a/tests/Feature/Middleware/TeamsPermissionsTest.php b/tests/Feature/Middleware/TeamsPermissionsTest.php
old mode 100644
new mode 100755
index 369bb48..1653363
--- a/tests/Feature/Middleware/TeamsPermissionsTest.php
+++ b/tests/Feature/Middleware/TeamsPermissionsTest.php
@@ -1,6 +1,7 @@
create([
- 'name' => 'Alex'
+ 'name' => 'Alex',
]);
expect($user->teams)
@@ -26,7 +27,7 @@
it('sets the current team to the personal team', function () {
$user = User::factory()->create([
- 'name' => 'Alex'
+ 'name' => 'Alex',
]);
expect($user->current_team_id)
diff --git a/tests/Feature/Request/TeamRequestTest.php b/tests/Feature/Request/TeamRequestTest.php
old mode 100644
new mode 100755
index 12b8432..b94d806
--- a/tests/Feature/Request/TeamRequestTest.php
+++ b/tests/Feature/Request/TeamRequestTest.php
@@ -2,7 +2,6 @@
use App\Models\Team;
use App\Models\User;
-use function Pest\Laravel\actingAs;
it('can access the current team through the request', function () {
$user = User::factory()->create();
diff --git a/tests/Pest.php b/tests/Pest.php
old mode 100644
new mode 100755
index 41513c6..278e376
--- a/tests/Pest.php
+++ b/tests/Pest.php
@@ -20,7 +20,7 @@
->beforeEach(function () {
$this->seed([
AdminRoleSeeder::class,
- MemberRoleSeeder::class
+ MemberRoleSeeder::class,
]);
});
diff --git a/tests/TestCase.php b/tests/TestCase.php
old mode 100644
new mode 100755
diff --git a/tests/Unit/.gitkeep b/tests/Unit/.gitkeep
old mode 100644
new mode 100755
diff --git a/vite.config.js b/vite.config.js
old mode 100644
new mode 100755