diff --git a/README.md b/README.md
index bf0ddd9..1824fc1 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
-
+
@@ -31,23 +31,23 @@ If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Lar
## Laravel Sponsors
-We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](https://patreon.com/taylorotwell).
+We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the [Laravel Partners program](https://partners.laravel.com).
### Premium Partners
- **[Vehikl](https://vehikl.com/)**
- **[Tighten Co.](https://tighten.co)**
+- **[WebReinvent](https://webreinvent.com/)**
- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
- **[64 Robots](https://64robots.com)**
-- **[Cubet Techno Labs](https://cubettech.com)**
-- **[Cyber-Duck](https://cyber-duck.co.uk)**
-- **[Many](https://www.many.co.uk)**
-- **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)**
-- **[DevSquad](https://devsquad.com)**
- **[Curotec](https://www.curotec.com/services/technologies/laravel/)**
+- **[Cyber-Duck](https://cyber-duck.co.uk)**
+- **[DevSquad](https://devsquad.com/hire-laravel-developers)**
+- **[Jump24](https://jump24.co.uk)**
+- **[Redberry](https://redberry.international/laravel/)**
+- **[Active Logic](https://activelogic.com)**
+- **[byte5](https://byte5.de)**
- **[OP.GG](https://op.gg)**
-- **[WebReinvent](https://webreinvent.com/?utm_source=laravel&utm_medium=github&utm_campaign=patreon-sponsors)**
-- **[Lendio](https://lendio.com)**
## Contributing
diff --git a/app/Conductors/AnalyticsConductor.php b/app.old/Conductors/AnalyticsConductor.php
similarity index 100%
rename from app/Conductors/AnalyticsConductor.php
rename to app.old/Conductors/AnalyticsConductor.php
diff --git a/app/Conductors/ArticleConductor.php b/app.old/Conductors/ArticleConductor.php
similarity index 100%
rename from app/Conductors/ArticleConductor.php
rename to app.old/Conductors/ArticleConductor.php
diff --git a/app/Conductors/Conductor.php b/app.old/Conductors/Conductor.php
similarity index 100%
rename from app/Conductors/Conductor.php
rename to app.old/Conductors/Conductor.php
diff --git a/app/Conductors/EventConductor.php b/app.old/Conductors/EventConductor.php
similarity index 100%
rename from app/Conductors/EventConductor.php
rename to app.old/Conductors/EventConductor.php
diff --git a/app/Conductors/MediaConductor.php b/app.old/Conductors/MediaConductor.php
similarity index 100%
rename from app/Conductors/MediaConductor.php
rename to app.old/Conductors/MediaConductor.php
diff --git a/app/Conductors/MediaJobConductor.php b/app.old/Conductors/MediaJobConductor.php
similarity index 100%
rename from app/Conductors/MediaJobConductor.php
rename to app.old/Conductors/MediaJobConductor.php
diff --git a/app/Conductors/ShortlinkConductor.php b/app.old/Conductors/ShortlinkConductor.php
similarity index 100%
rename from app/Conductors/ShortlinkConductor.php
rename to app.old/Conductors/ShortlinkConductor.php
diff --git a/app/Conductors/SubscriptionConductor.php b/app.old/Conductors/SubscriptionConductor.php
similarity index 100%
rename from app/Conductors/SubscriptionConductor.php
rename to app.old/Conductors/SubscriptionConductor.php
diff --git a/app/Conductors/UserConductor.php b/app.old/Conductors/UserConductor.php
similarity index 100%
rename from app/Conductors/UserConductor.php
rename to app.old/Conductors/UserConductor.php
diff --git a/app/Console/Commands/CleanupTempFiles.php b/app.old/Console/Commands/CleanupTempFiles.php
similarity index 100%
rename from app/Console/Commands/CleanupTempFiles.php
rename to app.old/Console/Commands/CleanupTempFiles.php
diff --git a/app/Console/Commands/RemoveStaleMediaJobs.php b/app.old/Console/Commands/RemoveStaleMediaJobs.php
similarity index 100%
rename from app/Console/Commands/RemoveStaleMediaJobs.php
rename to app.old/Console/Commands/RemoveStaleMediaJobs.php
diff --git a/app.old/Console/Kernel.php b/app.old/Console/Kernel.php
new file mode 100644
index 0000000..61d0d1a
--- /dev/null
+++ b/app.old/Console/Kernel.php
@@ -0,0 +1,34 @@
+command('inspire')->hourly();
+ $schedule->command('app:cleanup-temp-files')->everyThirtyMinutes();
+ $schedule->command('app:remove-stale-media-jobs')->everyThirtyMinutes();
+ }
+
+ /**
+ * Register the commands for the application.
+ *
+ * @return void
+ */
+ protected function commands(): void
+ {
+ $this->load(__DIR__ . '/Commands');
+
+ require base_path('routes/console.php');
+ }
+}
diff --git a/app/Enum/CurlErrorCodes.php b/app.old/Enum/CurlErrorCodes.php
similarity index 100%
rename from app/Enum/CurlErrorCodes.php
rename to app.old/Enum/CurlErrorCodes.php
diff --git a/app/Enum/Enum.php b/app.old/Enum/Enum.php
similarity index 100%
rename from app/Enum/Enum.php
rename to app.old/Enum/Enum.php
diff --git a/app/Enum/HttpResponseCodes.php b/app.old/Enum/HttpResponseCodes.php
similarity index 100%
rename from app/Enum/HttpResponseCodes.php
rename to app.old/Enum/HttpResponseCodes.php
diff --git a/app.old/Exceptions/Handler.php b/app.old/Exceptions/Handler.php
new file mode 100644
index 0000000..74672f9
--- /dev/null
+++ b/app.old/Exceptions/Handler.php
@@ -0,0 +1,98 @@
+
+ */
+ protected $dontFlash = [
+ 'current_password',
+ 'password',
+ 'password_confirmation',
+ ];
+
+
+ /**
+ * Register the exception handling callbacks for the application.
+ *
+ * @return void
+ */
+ public function register(): void
+ {
+ // $this->renderable(function (HttpException $e, $request) {
+ // if ($request->is('api/*')) {
+ // $message = $e->getMessage();
+ // if ($message === '') {
+ // $message = HttpResponseCodes::$statusTexts[$e->getStatusCode()];
+ // }
+
+ // return response()->json([
+ // 'message' => $message
+ // ], $e->getStatusCode());
+ // }
+ // });
+
+ $this->renderable(function (NotFoundHttpException $e, $request) {
+ if ($request->is('api/*') === true) {
+ return response()->json([
+ 'message' => 'Resource not found'
+ ], 404);
+ }
+ });
+
+ $this->renderable(function (PDOException $e, $request) {
+ if ($request->is('api/*') === true) {
+ return response()->json([
+ 'message' => 'The server is currently unavailable'
+ ], 503);
+ }
+ });
+
+ $this->reportable(function (Throwable $e) {
+ if ($this->shouldReport($e) === true) {
+ if (App::runningUnitTests() === false) {
+ $this->sendEmail($e);
+ }
+ }
+ });
+ }
+
+ /**
+ * Send email
+ *
+ * @param Throwable $exception Throwable object.
+ * @return void
+ */
+ public function sendEmail(Throwable $exception)
+ {
+ try {
+ $e = FlattenException::createFromThrowable($exception);
+ $handler = new HtmlErrorRenderer(true);
+ $css = $handler->getStylesheet();
+ $content = $handler->getBody($e);
+
+ Mail::send('emails.exception', compact('css', 'content'), function ($message) {
+ $message
+ ->to('webmaster@stemmechanics.com.au')
+ ->subject('Exception Generated')
+ ;
+ });
+ } catch (Throwable $ex) {
+ Log::error($ex);
+ }
+ }
+}
diff --git a/app/Filters/SubscriptionFilter.php b/app.old/Filters/SubscriptionFilter.php
similarity index 100%
rename from app/Filters/SubscriptionFilter.php
rename to app.old/Filters/SubscriptionFilter.php
diff --git a/app/Helpers/Array.php b/app.old/Helpers/Array.php
similarity index 100%
rename from app/Helpers/Array.php
rename to app.old/Helpers/Array.php
diff --git a/app/Helpers/Temp.php b/app.old/Helpers/Temp.php
similarity index 100%
rename from app/Helpers/Temp.php
rename to app.old/Helpers/Temp.php
diff --git a/app/Helpers/TypeValue.php b/app.old/Helpers/TypeValue.php
similarity index 100%
rename from app/Helpers/TypeValue.php
rename to app.old/Helpers/TypeValue.php
diff --git a/app/Http/Controllers/Api/AnalyticsController.php b/app.old/Http/Controllers/Api/AnalyticsController.php
similarity index 100%
rename from app/Http/Controllers/Api/AnalyticsController.php
rename to app.old/Http/Controllers/Api/AnalyticsController.php
diff --git a/app/Http/Controllers/Api/ApiController.php b/app.old/Http/Controllers/Api/ApiController.php
similarity index 100%
rename from app/Http/Controllers/Api/ApiController.php
rename to app.old/Http/Controllers/Api/ApiController.php
diff --git a/app/Http/Controllers/Api/ArticleController.php b/app.old/Http/Controllers/Api/ArticleController.php
similarity index 100%
rename from app/Http/Controllers/Api/ArticleController.php
rename to app.old/Http/Controllers/Api/ArticleController.php
diff --git a/app/Http/Controllers/Api/AuthController.php b/app.old/Http/Controllers/Api/AuthController.php
similarity index 100%
rename from app/Http/Controllers/Api/AuthController.php
rename to app.old/Http/Controllers/Api/AuthController.php
diff --git a/app/Http/Controllers/Api/ContactController.php b/app.old/Http/Controllers/Api/ContactController.php
similarity index 100%
rename from app/Http/Controllers/Api/ContactController.php
rename to app.old/Http/Controllers/Api/ContactController.php
diff --git a/app/Http/Controllers/Api/EventController.php b/app.old/Http/Controllers/Api/EventController.php
similarity index 100%
rename from app/Http/Controllers/Api/EventController.php
rename to app.old/Http/Controllers/Api/EventController.php
diff --git a/app/Http/Controllers/Api/InfoController.php b/app.old/Http/Controllers/Api/InfoController.php
similarity index 100%
rename from app/Http/Controllers/Api/InfoController.php
rename to app.old/Http/Controllers/Api/InfoController.php
diff --git a/app/Http/Controllers/Api/LogController.php b/app.old/Http/Controllers/Api/LogController.php
similarity index 100%
rename from app/Http/Controllers/Api/LogController.php
rename to app.old/Http/Controllers/Api/LogController.php
diff --git a/app/Http/Controllers/Api/MediaController.php b/app.old/Http/Controllers/Api/MediaController.php
similarity index 100%
rename from app/Http/Controllers/Api/MediaController.php
rename to app.old/Http/Controllers/Api/MediaController.php
diff --git a/app/Http/Controllers/Api/MediaJobController.php b/app.old/Http/Controllers/Api/MediaJobController.php
similarity index 100%
rename from app/Http/Controllers/Api/MediaJobController.php
rename to app.old/Http/Controllers/Api/MediaJobController.php
diff --git a/app/Http/Controllers/Api/OCRController.php b/app.old/Http/Controllers/Api/OCRController.php
similarity index 100%
rename from app/Http/Controllers/Api/OCRController.php
rename to app.old/Http/Controllers/Api/OCRController.php
diff --git a/app/Http/Controllers/Api/ShortlinkController.php b/app.old/Http/Controllers/Api/ShortlinkController.php
similarity index 100%
rename from app/Http/Controllers/Api/ShortlinkController.php
rename to app.old/Http/Controllers/Api/ShortlinkController.php
diff --git a/app/Http/Controllers/Api/UserController.php b/app.old/Http/Controllers/Api/UserController.php
similarity index 100%
rename from app/Http/Controllers/Api/UserController.php
rename to app.old/Http/Controllers/Api/UserController.php
diff --git a/app.old/Http/Controllers/Controller.php b/app.old/Http/Controllers/Controller.php
new file mode 100644
index 0000000..f1406be
--- /dev/null
+++ b/app.old/Http/Controllers/Controller.php
@@ -0,0 +1,13 @@
+
+ */
+ protected $middleware = [
+ // \App\Http\Middleware\TrustHosts::class,
+ \App\Http\Middleware\TrustProxies::class,
+ \Illuminate\Http\Middleware\HandleCors::class,
+ \App\Http\Middleware\PreventRequestsDuringMaintenance::class,
+ \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
+ // \App\Http\Middleware\TrimStrings::class,
+ // \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
+ ];
+
+ /**
+ * The application's route middleware groups.
+ *
+ * @var array>
+ */
+ protected $middlewareGroups = [
+ 'web' => [
+ \App\Http\Middleware\EncryptCookies::class,
+ \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
+ \Illuminate\Session\Middleware\StartSession::class,
+ \Illuminate\View\Middleware\ShareErrorsFromSession::class,
+ \App\Http\Middleware\VerifyCsrfToken::class,
+ \Illuminate\Routing\Middleware\SubstituteBindings::class,
+ ],
+
+ 'api' => [
+ // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
+ \Illuminate\Routing\Middleware\ThrottleRequests::class . ':api',
+ \Illuminate\Routing\Middleware\SubstituteBindings::class,
+ // \App\Http\Middleware\ForceJsonResponse::class,
+ \App\Http\Middleware\UnmangleRequest::class,
+ 'useSanctumGuard',
+ \App\Http\Middleware\LogRequest::class,
+ ],
+ ];
+
+ /**
+ * The application's middleware aliases.
+ *
+ * Aliases may be used to conveniently assign middleware to routes and groups.
+ *
+ * @var array
+ */
+ protected $middlewareAliases = [
+ 'auth' => \App\Http\Middleware\Authenticate::class,
+ 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
+ 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class,
+ 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
+ 'can' => \Illuminate\Auth\Middleware\Authorize::class,
+ 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
+ 'unmangle' => \App\Http\Middleware\UnmangleRequest::class,
+ 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
+ 'signed' => \App\Http\Middleware\ValidateSignature::class,
+ 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
+ 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
+ 'useSanctumGuard' => \App\Http\Middleware\UseSanctumGuard::class
+ ];
+}
diff --git a/app.old/Http/Middleware/Authenticate.php b/app.old/Http/Middleware/Authenticate.php
new file mode 100644
index 0000000..9515a4a
--- /dev/null
+++ b/app.old/Http/Middleware/Authenticate.php
@@ -0,0 +1,23 @@
+expectsJson() === false) {
+ return route('login');
+ }
+
+ return null;
+ }
+}
diff --git a/app.old/Http/Middleware/EncryptCookies.php b/app.old/Http/Middleware/EncryptCookies.php
new file mode 100644
index 0000000..867695b
--- /dev/null
+++ b/app.old/Http/Middleware/EncryptCookies.php
@@ -0,0 +1,17 @@
+
+ */
+ protected $except = [
+ //
+ ];
+}
diff --git a/app/Http/Middleware/ForceJsonResponse.php b/app.old/Http/Middleware/ForceJsonResponse.php
similarity index 100%
rename from app/Http/Middleware/ForceJsonResponse.php
rename to app.old/Http/Middleware/ForceJsonResponse.php
diff --git a/app/Http/Middleware/LogRequest.php b/app.old/Http/Middleware/LogRequest.php
similarity index 100%
rename from app/Http/Middleware/LogRequest.php
rename to app.old/Http/Middleware/LogRequest.php
diff --git a/app.old/Http/Middleware/PreventRequestsDuringMaintenance.php b/app.old/Http/Middleware/PreventRequestsDuringMaintenance.php
new file mode 100644
index 0000000..74cbd9a
--- /dev/null
+++ b/app.old/Http/Middleware/PreventRequestsDuringMaintenance.php
@@ -0,0 +1,17 @@
+
+ */
+ protected $except = [
+ //
+ ];
+}
diff --git a/app.old/Http/Middleware/RedirectIfAuthenticated.php b/app.old/Http/Middleware/RedirectIfAuthenticated.php
new file mode 100644
index 0000000..5ee6f4b
--- /dev/null
+++ b/app.old/Http/Middleware/RedirectIfAuthenticated.php
@@ -0,0 +1,33 @@
+check() === true) {
+ return redirect(RouteServiceProvider::HOME);
+ }
+ }
+
+ return $next($request);
+ }
+}
diff --git a/app.old/Http/Middleware/TrimStrings.php b/app.old/Http/Middleware/TrimStrings.php
new file mode 100644
index 0000000..88cadca
--- /dev/null
+++ b/app.old/Http/Middleware/TrimStrings.php
@@ -0,0 +1,19 @@
+
+ */
+ protected $except = [
+ 'current_password',
+ 'password',
+ 'password_confirmation',
+ ];
+}
diff --git a/app.old/Http/Middleware/TrustHosts.php b/app.old/Http/Middleware/TrustHosts.php
new file mode 100644
index 0000000..c9c58bd
--- /dev/null
+++ b/app.old/Http/Middleware/TrustHosts.php
@@ -0,0 +1,20 @@
+
+ */
+ public function hosts(): array
+ {
+ return [
+ $this->allSubdomainsOfApplicationUrl(),
+ ];
+ }
+}
diff --git a/app.old/Http/Middleware/TrustProxies.php b/app.old/Http/Middleware/TrustProxies.php
new file mode 100644
index 0000000..3123f50
--- /dev/null
+++ b/app.old/Http/Middleware/TrustProxies.php
@@ -0,0 +1,25 @@
+|string|null
+ */
+ protected $proxies;
+
+ /**
+ * The headers that should be used to detect proxies.
+ *
+ * @var integer
+ */
+ // @codingStandardsIgnoreStart
+ protected $headers = (Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_HOST | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO | Request::HEADER_X_FORWARDED_AWS_ELB);
+ // @codingStandardsIgnoreEnd
+}
diff --git a/app/Http/Middleware/UnmangleRequest.php b/app.old/Http/Middleware/UnmangleRequest.php
similarity index 100%
rename from app/Http/Middleware/UnmangleRequest.php
rename to app.old/Http/Middleware/UnmangleRequest.php
diff --git a/app/Http/Middleware/UseSanctumGuard.php b/app.old/Http/Middleware/UseSanctumGuard.php
similarity index 100%
rename from app/Http/Middleware/UseSanctumGuard.php
rename to app.old/Http/Middleware/UseSanctumGuard.php
diff --git a/app.old/Http/Middleware/ValidateSignature.php b/app.old/Http/Middleware/ValidateSignature.php
new file mode 100644
index 0000000..093bf64
--- /dev/null
+++ b/app.old/Http/Middleware/ValidateSignature.php
@@ -0,0 +1,22 @@
+
+ */
+ protected $except = [
+ // 'fbclid',
+ // 'utm_campaign',
+ // 'utm_content',
+ // 'utm_medium',
+ // 'utm_source',
+ // 'utm_term',
+ ];
+}
diff --git a/app.old/Http/Middleware/VerifyCsrfToken.php b/app.old/Http/Middleware/VerifyCsrfToken.php
new file mode 100644
index 0000000..9e86521
--- /dev/null
+++ b/app.old/Http/Middleware/VerifyCsrfToken.php
@@ -0,0 +1,17 @@
+
+ */
+ protected $except = [
+ //
+ ];
+}
diff --git a/app/Http/Requests/AnalyticsRequest.php b/app.old/Http/Requests/AnalyticsRequest.php
similarity index 100%
rename from app/Http/Requests/AnalyticsRequest.php
rename to app.old/Http/Requests/AnalyticsRequest.php
diff --git a/app/Http/Requests/ArticleRequest.php b/app.old/Http/Requests/ArticleRequest.php
similarity index 100%
rename from app/Http/Requests/ArticleRequest.php
rename to app.old/Http/Requests/ArticleRequest.php
diff --git a/app/Http/Requests/AuthLoginRequest.php b/app.old/Http/Requests/AuthLoginRequest.php
similarity index 100%
rename from app/Http/Requests/AuthLoginRequest.php
rename to app.old/Http/Requests/AuthLoginRequest.php
diff --git a/app/Http/Requests/BaseRequest.php b/app.old/Http/Requests/BaseRequest.php
similarity index 100%
rename from app/Http/Requests/BaseRequest.php
rename to app.old/Http/Requests/BaseRequest.php
diff --git a/app/Http/Requests/ContactSendRequest.php b/app.old/Http/Requests/ContactSendRequest.php
similarity index 100%
rename from app/Http/Requests/ContactSendRequest.php
rename to app.old/Http/Requests/ContactSendRequest.php
diff --git a/app/Http/Requests/EventRequest.php b/app.old/Http/Requests/EventRequest.php
similarity index 100%
rename from app/Http/Requests/EventRequest.php
rename to app.old/Http/Requests/EventRequest.php
diff --git a/app/Http/Requests/MediaRequest.php b/app.old/Http/Requests/MediaRequest.php
similarity index 100%
rename from app/Http/Requests/MediaRequest.php
rename to app.old/Http/Requests/MediaRequest.php
diff --git a/app/Http/Requests/ShortlinkRequest.php b/app.old/Http/Requests/ShortlinkRequest.php
similarity index 100%
rename from app/Http/Requests/ShortlinkRequest.php
rename to app.old/Http/Requests/ShortlinkRequest.php
diff --git a/app/Http/Requests/SubscriptionRequest.php b/app.old/Http/Requests/SubscriptionRequest.php
similarity index 100%
rename from app/Http/Requests/SubscriptionRequest.php
rename to app.old/Http/Requests/SubscriptionRequest.php
diff --git a/app/Http/Requests/UserForgotPasswordRequest.php b/app.old/Http/Requests/UserForgotPasswordRequest.php
similarity index 100%
rename from app/Http/Requests/UserForgotPasswordRequest.php
rename to app.old/Http/Requests/UserForgotPasswordRequest.php
diff --git a/app/Http/Requests/UserRegisterRequest.php b/app.old/Http/Requests/UserRegisterRequest.php
similarity index 100%
rename from app/Http/Requests/UserRegisterRequest.php
rename to app.old/Http/Requests/UserRegisterRequest.php
diff --git a/app/Http/Requests/UserRequest.php b/app.old/Http/Requests/UserRequest.php
similarity index 100%
rename from app/Http/Requests/UserRequest.php
rename to app.old/Http/Requests/UserRequest.php
diff --git a/app/Http/Requests/UserResendVerifyEmailRequest.php b/app.old/Http/Requests/UserResendVerifyEmailRequest.php
similarity index 100%
rename from app/Http/Requests/UserResendVerifyEmailRequest.php
rename to app.old/Http/Requests/UserResendVerifyEmailRequest.php
diff --git a/app/Http/Requests/UserResetPasswordRequest.php b/app.old/Http/Requests/UserResetPasswordRequest.php
similarity index 100%
rename from app/Http/Requests/UserResetPasswordRequest.php
rename to app.old/Http/Requests/UserResetPasswordRequest.php
diff --git a/app/Http/Requests/UserVerifyEmailRequest.php b/app.old/Http/Requests/UserVerifyEmailRequest.php
similarity index 100%
rename from app/Http/Requests/UserVerifyEmailRequest.php
rename to app.old/Http/Requests/UserVerifyEmailRequest.php
diff --git a/app/Jobs/MediaWorkerJob.php b/app.old/Jobs/MediaWorkerJob.php
similarity index 100%
rename from app/Jobs/MediaWorkerJob.php
rename to app.old/Jobs/MediaWorkerJob.php
diff --git a/app.old/Jobs/SendEmailJob.php b/app.old/Jobs/SendEmailJob.php
new file mode 100644
index 0000000..89d7d1f
--- /dev/null
+++ b/app.old/Jobs/SendEmailJob.php
@@ -0,0 +1,57 @@
+to = $to;
+ $this->mailable = $mailable;
+ }
+
+ /**
+ * Execute the job.
+ *
+ * @return void
+ */
+ public function handle(): void
+ {
+ Mail::to($this->to)->send($this->mailable);
+ }
+}
diff --git a/app/Mail/ChangeEmailVerify.php b/app.old/Mail/ChangeEmailVerify.php
similarity index 100%
rename from app/Mail/ChangeEmailVerify.php
rename to app.old/Mail/ChangeEmailVerify.php
diff --git a/app/Mail/ChangedEmail.php b/app.old/Mail/ChangedEmail.php
similarity index 100%
rename from app/Mail/ChangedEmail.php
rename to app.old/Mail/ChangedEmail.php
diff --git a/app/Mail/ChangedPassword.php b/app.old/Mail/ChangedPassword.php
similarity index 100%
rename from app/Mail/ChangedPassword.php
rename to app.old/Mail/ChangedPassword.php
diff --git a/app/Mail/Contact.php b/app.old/Mail/Contact.php
similarity index 100%
rename from app/Mail/Contact.php
rename to app.old/Mail/Contact.php
diff --git a/app/Mail/EmailVerify.php b/app.old/Mail/EmailVerify.php
similarity index 100%
rename from app/Mail/EmailVerify.php
rename to app.old/Mail/EmailVerify.php
diff --git a/app/Mail/ExceptionMail.php b/app.old/Mail/ExceptionMail.php
similarity index 100%
rename from app/Mail/ExceptionMail.php
rename to app.old/Mail/ExceptionMail.php
diff --git a/app/Mail/ForgotPassword.php b/app.old/Mail/ForgotPassword.php
similarity index 100%
rename from app/Mail/ForgotPassword.php
rename to app.old/Mail/ForgotPassword.php
diff --git a/app/Mail/SubscriptionConfirm.php b/app.old/Mail/SubscriptionConfirm.php
similarity index 100%
rename from app/Mail/SubscriptionConfirm.php
rename to app.old/Mail/SubscriptionConfirm.php
diff --git a/app/Mail/SubscriptionUnsubscribed.php b/app.old/Mail/SubscriptionUnsubscribed.php
similarity index 100%
rename from app/Mail/SubscriptionUnsubscribed.php
rename to app.old/Mail/SubscriptionUnsubscribed.php
diff --git a/app/Models/AnalyticsItemRequest.php b/app.old/Models/AnalyticsItemRequest.php
similarity index 100%
rename from app/Models/AnalyticsItemRequest.php
rename to app.old/Models/AnalyticsItemRequest.php
diff --git a/app/Models/AnalyticsSession.php b/app.old/Models/AnalyticsSession.php
similarity index 100%
rename from app/Models/AnalyticsSession.php
rename to app.old/Models/AnalyticsSession.php
diff --git a/app/Models/Article.php b/app.old/Models/Article.php
similarity index 100%
rename from app/Models/Article.php
rename to app.old/Models/Article.php
diff --git a/app/Models/Attachment.php b/app.old/Models/Attachment.php
similarity index 100%
rename from app/Models/Attachment.php
rename to app.old/Models/Attachment.php
diff --git a/app/Models/Event.php b/app.old/Models/Event.php
similarity index 100%
rename from app/Models/Event.php
rename to app.old/Models/Event.php
diff --git a/app/Models/EventUsers.php b/app.old/Models/EventUsers.php
similarity index 100%
rename from app/Models/EventUsers.php
rename to app.old/Models/EventUsers.php
diff --git a/app/Models/Gallery.php b/app.old/Models/Gallery.php
similarity index 100%
rename from app/Models/Gallery.php
rename to app.old/Models/Gallery.php
diff --git a/app.old/Models/Media.php b/app.old/Models/Media.php
new file mode 100644
index 0000000..2bcb6e8
--- /dev/null
+++ b/app.old/Models/Media.php
@@ -0,0 +1,1064 @@
+
+ */
+ protected $fillable = [
+ 'title',
+ 'user_id',
+ 'mime_type',
+ 'security_type',
+ 'security_data',
+ 'storage',
+ 'description',
+ 'name',
+ 'size',
+ ];
+
+ /**
+ * The attributes that are appended.
+ *
+ * @var array
+ */
+ protected $appends = [
+ 'url',
+ ];
+
+ /**
+ * The default attributes.
+ *
+ * @var string[]
+ */
+ protected $attributes = [
+ 'storage' => 'cdn',
+ 'variants' => '[]',
+ 'description' => '',
+ 'dimensions' => '',
+ 'security_type' => '',
+ 'security_data' => '',
+ 'thumbnail' => '',
+ ];
+
+ /**
+ * The storage file list cache.
+ *
+ * @var array
+ */
+ protected static $storageFileListCache = [];
+
+ /**
+ * Object variant details.
+ *
+ * @var int[][][]
+ */
+ protected static $objectVariants = [
+ 'image' => [
+ 'small' => ['width' => 300, 'height' => 225],
+ 'medium' => ['width' => 768, 'height' => 576],
+ 'large' => ['width' => 1024, 'height' => 768],
+ 'xlarge' => ['width' => 1536, 'height' => 1152],
+ 'xxlarge' => ['width' => 2048, 'height' => 1536],
+ 'scaled' => ['width' => 2560, 'height' => 1920]
+ ]
+ ];
+
+ /**
+ * Staging file path of asset for processing.
+ *
+ * @var string
+ */
+ private $stagingFilePath = "";
+
+
+ /**
+ * Model Boot
+ *
+ * @return void
+ */
+ protected static function boot(): void
+ {
+ parent::boot();
+
+ $clearCache = function ($media) {
+ Cache::forget("media:{$media->id}");
+ };
+
+ static::updating(function ($media) use ($clearCache) {
+ $clearCache($media);
+ });
+
+ static::deleting(function ($media) use ($clearCache) {
+ $clearCache($media);
+ $media->deleteFile();
+ });
+ }
+
+ /**
+ * Get Object Variants.
+ *
+ * @param string $type The variant object to get.
+ * @return array The variant data.
+ */
+ public static function getObjectVariants(string $type): array
+ {
+ if (isset(self::$objectVariants[$type]) === true) {
+ return self::$objectVariants[$type];
+ }
+
+ return [];
+ }
+
+ /**
+ * Variants Get Mutator.
+ *
+ * @param mixed $value The value to mutate.
+ * @param boolean $raw Values are not run through urlencode.
+ * @return array|null The mutated value.
+ */
+ public function getVariantsAttribute(mixed $value, bool $raw = false): array|null
+ {
+ if (is_string($value) === true) {
+ $decodedValue = json_decode($value, true);
+
+ // Check if the decoded value is an array
+ if ($raw === false && is_array($decodedValue) === true) {
+ // Loop through the array and encode each value
+ foreach ($decodedValue as &$item) {
+ if (is_string($item) === true) {
+ $item = rawurlencode($item);
+ }
+ }
+ }
+
+ return $decodedValue;
+ }
+
+ return [];
+ }
+
+ /**
+ * Variants Set Mutator.
+ *
+ * @param mixed $value The value to mutate.
+ * @return void
+ */
+ public function setVariantsAttribute(mixed $value): void
+ {
+ if (is_array($value) !== true) {
+ $value = [];
+ }
+
+ $this->attributes['variants'] = json_encode(($value ?? []));
+ }
+
+ /**
+ * Get previous variant.
+ *
+ * @param string $type The variant type.
+ * @param string $variant The initial variant.
+ * @return string The previous variant name (or '').
+ */
+ public function getPreviousVariant(string $type, string $variant): string
+ {
+ if (isset(self::$objectVariants[$type]) === false) {
+ return '';
+ }
+
+ $variants = self::$objectVariants[$type];
+ $keys = array_keys($variants);
+
+ $currentIndex = array_search($variant, $keys);
+ if ($currentIndex === false || $currentIndex === 0) {
+ return '';
+ }
+
+ return $keys[($currentIndex - 1)];
+ }
+
+ /**
+ * Get next variant.
+ *
+ * @param string $type The variant type.
+ * @param string $variant The initial variant.
+ * @return string The next variant name (or '').
+ */
+ public function getNextVariant(string $type, string $variant): string
+ {
+ if (isset(self::$objectVariants[$type]) === false) {
+ return '';
+ }
+
+ $variants = self::$objectVariants[$type];
+ $keys = array_keys($variants);
+
+ $currentIndex = array_search($variant, $keys);
+ if ($currentIndex === false || $currentIndex === (count($keys) - 1)) {
+ return '';
+ }
+
+ return $keys[($currentIndex + 1)];
+ }
+
+ /**
+ * Get variant URL.
+ *
+ * @param string $variant The variant to find.
+ * @param boolean $returnNearest Return the nearest variant if request is not found.
+ * @return string The URL.
+ */
+ public function getVariantURL(string $variant, bool $returnNearest = true): string
+ {
+ $variants = $this->variants;
+ if (isset($variants[$variant]) === true) {
+ return self::getUrlPath(['name' => $variants[$variant]]);
+ }
+
+ if ($returnNearest === true) {
+ $variantType = explode('/', $this->mime_type)[0];
+ $previousVariant = $variant;
+ while (empty($previousVariant) === false) {
+ $previousVariant = $this->getPreviousVariant($variantType, $previousVariant);
+ if (empty($previousVariant) === false && isset($variants[$previousVariant]) === true) {
+ return self::getUrlPath(['name' => $variants[$previousVariant]]);
+ }
+ }
+ }
+
+ return '';
+ }
+
+ /**
+ * Delete file and associated files with the modal.
+ *
+ * @return void
+ */
+ public function deleteFile(): void
+ {
+ if (
+ strlen($this->storage) > 0 && strlen($this->name) > 0 &&
+ Storage::disk($this->storage)->exists($this->name) === true
+ ) {
+ Storage::disk($this->storage)->delete($this->name);
+ }
+
+ $this->deleteThumbnail();
+ $this->deleteVariants();
+ $this->invalidateCFCache();
+ }
+
+ /**
+ * Invalidate Cloudflare Cache.
+ *
+ * @return void
+ */
+ private function invalidateCFCache(): void
+ {
+ $zone_id = env("CLOUDFLARE_ZONE_ID");
+ $api_key = env("CLOUDFLARE_API_KEY");
+ if ($zone_id !== null && $api_key !== null && $this->url !== "") {
+ $urls = [$this->url];
+
+ foreach ($this->variants as $variant => $name) {
+ $urls[] = str_replace($this->name, $name, $this->url);
+ }
+
+ $curl = curl_init();
+ curl_setopt_array($curl, [
+ CURLOPT_URL => "https://api.cloudflare.com/client/v4/zones/" . $zone_id . "/purge_cache",
+ CURLOPT_RETURNTRANSFER => true,
+ CURLOPT_CUSTOMREQUEST => "DELETE",
+ CURLOPT_POSTFIELDS => json_encode(["files" => $urls]),
+ CURLOPT_HTTPHEADER => [
+ "Content-Type: application/json",
+ "Authorization: Bearer " . $api_key
+ ],
+ ]);
+ curl_exec($curl);
+ curl_close($curl);
+ }//end if
+ }
+
+ /**
+ * Get URL path
+ *
+ * @param array $replacements Replace variables in URL.
+ * @return string
+ */
+ public function getUrlPath(array $replacements = []): string
+ {
+ $url = config("filesystems.disks.$this->storage.url");
+
+ if (empty($replacements) !== true) {
+ foreach ($replacements as $key => $value) {
+ $placeholder = '{' . $key . '}';
+ $url = str_replace($placeholder, $value, $url);
+ }
+ }
+
+ // Remove any remaining {x} placeholders
+ $url = preg_replace('/\{[^}]+\}/', '', $url);
+
+ return "$url";
+ }
+
+ /**
+ * Return the file URL
+ *
+ * @return string
+ */
+ public function getUrlAttribute(): string
+ {
+ $url = self::getUrlPath([
+ 'id' => rawurlencode($this->id),
+ 'name' => rawurlencode($this->name)
+ ]);
+
+ return $url;
+ }
+
+ /**
+ * Return the file owner
+ *
+ * @return BelongsTo
+ */
+ public function user(): BelongsTo
+ {
+ return $this->belongsTo(User::class);
+ }
+
+ /**
+ * Transform the media through the Media Job Queue
+ *
+ * @param array $transform The transform data.
+ * @return MediaJob
+ */
+ public function transform(array $transform): MediaJob
+ {
+ $mediaJob = new MediaJob([
+ 'media_id' => $this->media,
+ 'user_id' => auth()->user()?->id,
+ 'data' => json_encode(['transform' => $transform]),
+ ]);
+
+ try {
+ MediaWorkerJob::dispatch($mediaJob)->onQueue('media');
+ return $mediaJob;
+ } catch (\Exception $e) {
+ $this->error('Failed to transform media');
+ throw $e;
+ }//end try
+
+ return null;
+ }
+
+ /**
+ * Get the server maximum upload size
+ *
+ * @return integer
+ */
+ public static function getMaxUploadSize(): int
+ {
+ $sizes = [
+ ini_get('upload_max_filesize'),
+ ini_get('post_max_size'),
+ ini_get('memory_limit')
+ ];
+
+ foreach ($sizes as &$size) {
+ $size = trim($size);
+ $last = strtolower($size[(strlen($size) - 1)]);
+ switch ($last) {
+ case 'g':
+ $size = (intval($size) * 1024);
+ // Size is in MB - fallthrough
+ case 'm':
+ $size = (intval($size) * 1024);
+ // Size is in KB - fallthrough
+ case 'k':
+ $size = (intval($size) * 1024);
+ // Size is in B - fallthrough
+ }
+ }
+
+ return min($sizes);
+ }
+
+ /**
+ * Generate a file name that is available within storage.
+ *
+ * @param string $fileName The proposed file name.
+ * @return string|boolean The available file name or false if failed.
+ */
+ public static function generateUniqueFileName(string $fileName)
+ {
+ $index = 1;
+ $maxTries = 100;
+ $extension = pathinfo($fileName, PATHINFO_EXTENSION);
+ $fileName = static::sanitizeFilename(pathinfo($fileName, PATHINFO_FILENAME));
+
+ if (
+ static::fileNameHasSuffix($fileName) === true ||
+ static::fileExistsInStorage("$fileName.$extension") === true //||
+ // Media::where('name', "$fileName.$extension")->where('status', 'not like', 'failed%')->exists() === true
+ ) {
+ $fileName .= '-';
+ for ($i = 1; $i < $maxTries; $i++) {
+ $fileNameIndex = $fileName . $index;
+ if (
+ static::fileExistsInStorage("$fileNameIndex.$extension") !== true &&
+ Media::where('name', "$fileNameIndex.$extension")
+ // ->where('status', 'not like', 'Failed%')
+ ->exists() !== true
+ ) {
+ return "$fileNameIndex.$extension";
+ }
+
+ ++$index;
+ }
+
+ return false;
+ }
+
+ return "$fileName.$extension";
+ }
+
+ /**
+ * Determines if the file name exists in any of the storage disks.
+ *
+ * @param string $fileName The file name to check.
+ * @param boolean $ignoreCache Ignore the file list cache.
+ * @return boolean If the file exists on any storage disks.
+ */
+ public static function fileExistsInStorage(string $fileName, bool $ignoreCache = false): bool
+ {
+ $disks = array_keys(Config::get('filesystems.disks'));
+
+ if ($ignoreCache === false) {
+ if (count(static::$storageFileListCache) === 0) {
+ $disks = array_keys(Config::get('filesystems.disks'));
+
+ foreach ($disks as $disk) {
+ try {
+ static::$storageFileListCache[$disk] = Storage::disk($disk)->allFiles();
+ } catch (\Exception $e) {
+ Log::error("Cannot get a file list for storage device '$disk'. Error: " . $e->getMessage());
+ continue;
+ }
+ }
+ }
+
+ foreach (static::$storageFileListCache as $disk => $files) {
+ if (in_array($fileName, $files) === true) {
+ return true;
+ }
+ }
+ } else {
+ $disks = array_keys(Config::get('filesystems.disks'));
+
+ foreach ($disks as $disk) {
+ try {
+ if (Storage::disk($disk)->exists($fileName) === true) {
+ return true;
+ }
+ } catch (\Exception $e) {
+ Log::error($e->getMessage());
+ throw new \Exception("Cannot verify if file '$fileName' already exists in storage device '$disk'");
+ }
+ }
+ }//end if
+
+ return false;
+ }
+
+ /**
+ * Test if the file name contains a special suffix.
+ *
+ * @param string $fileName The file name to test.
+ * @return boolean If the file name contains the special suffix.
+ */
+ public static function fileNameHasSuffix(string $fileName): bool
+ {
+ $suffix = '/(-\d+x\d+|-scaled|-thumb)$/i';
+ $fileNameWithoutExtension = pathinfo($fileName, PATHINFO_FILENAME);
+
+ return preg_match($suffix, $fileNameWithoutExtension) === 1;
+ }
+
+ /**
+ * Sanitize fileName for upload
+ *
+ * @param string $fileName Filename to sanitize.
+ * @return string
+ */
+ private static function sanitizeFilename(string $fileName): string
+ {
+ /*
+ # file system reserved https://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words
+ [<>:"/\\\|?*]|
+
+ # control characters http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx
+ [\x00-\x1F]|
+
+ # non-printing characters DEL, NO-BREAK SPACE, SOFT HYPHEN
+ [\x7F\xA0\xAD]|
+
+ # URI reserved https://www.rfc-editor.org/rfc/rfc3986#section-2.2
+ [#\[\]@!$&\'()+,;=]|
+
+ # URL unsafe characters https://www.ietf.org/rfc/rfc1738.txt
+ [{}^\~`]
+ */
+
+ $fileName = preg_replace(
+ '~
+ [<>:"/\\\|?*]|
+ [\x00-\x1F]|
+ [\x7F\xA0\xAD]|
+ [#\[\]@!$&\'()+,;=]|
+ [{}^\~`]
+ ~x',
+ '-',
+ $fileName
+ );
+
+ $fileName = ltrim($fileName, '.-');
+
+ $fileName = preg_replace([
+ // "file name.zip" becomes "file-name.zip"
+ '/ +/',
+ // "file___name.zip" becomes "file-name.zip"
+ '/_+/',
+ // "file---name.zip" becomes "file-name.zip"
+ '/-+/'
+ ], '-', $fileName);
+ $fileName = preg_replace([
+ // "file--.--.-.--name.zip" becomes "file.name.zip"
+ '/-*\.-*/',
+ // "file...name..zip" becomes "file.name.zip"
+ '/\.{2,}/'
+ ], '.', $fileName);
+ // lowercase for windows/unix interoperability http://support.microsoft.com/kb/100625
+ $fileName = mb_strtolower($fileName, mb_detect_encoding($fileName));
+ // ".file-name.-" becomes "file-name"
+ $fileName = trim($fileName, '.-');
+
+ $ext = pathinfo($fileName, PATHINFO_EXTENSION);
+ $fileName = mb_strcut(
+ pathinfo($fileName, PATHINFO_FILENAME),
+ 0,
+ (255 - ($ext !== '' ? strlen($ext) + 1 : 0)),
+ mb_detect_encoding($fileName)
+ ) . ($ext !== '' ? '.' . $ext : '');
+ return $fileName;
+ }
+
+ /**
+ * Get the Staging File path.
+ *
+ * @param boolean $create Create staging file if doesn't exist.
+ * @return string
+ */
+ public function getStagingFilePath(bool $create = true): string
+ {
+ if ($this->stagingFilePath === "" && $create === true) {
+ $this->createStagingFile();
+ }
+
+ return $this->stagingFilePath;
+ }
+
+ /**
+ * Set the Staging File for processing.
+ *
+ * @param string $path The path if the new staging file.
+ * @param boolean $overwrite Overwrite existing file.
+ * @return void
+ */
+ public function setStagingFile(string $path, bool $overwrite = false): void
+ {
+ if ($this->stagingFilePath !== "") {
+ if ($overwrite === true) {
+ unlink($this->stagingFilePath);
+ } else {
+ // ignore request
+ return;
+ }
+ }
+
+ $this->stagingFilePath = $path;
+ }
+
+ /**
+ * Download temporary copy of the storage file for staging.
+ *
+ * @return boolean If download was successful.
+ */
+ public function createStagingFile(): bool
+ {
+ if ($this->stagingFilePath === "") {
+ $readStream = Storage::disk($this->storage)->readStream($this->name);
+ $filePath = generateTempFilePath(pathinfo($this->name, PATHINFO_EXTENSION));
+
+ $writeStream = fopen($filePath, 'w');
+ while (feof($readStream) !== true) {
+ fwrite($writeStream, fread($readStream, 8192));
+ }
+ fclose($readStream);
+ fclose($writeStream);
+
+ $this->stagingFilePath = $filePath;
+ }//end if
+
+ return $this->stagingFilePath !== "";
+ }
+
+ /**
+ * Save the Staging File to storage
+ *
+ * @param boolean $delete Delete the existing staging file.
+ * @param boolean $silent Update the status field with the progress.
+ * @return void
+ */
+ public function saveStagingFile(bool $delete = true, bool $silent = false): void
+ {
+ if ($this->stagingFilePath !== '') {
+ if (strlen($this->storage) > 0 && strlen($this->name) > 0) {
+ if (Storage::disk($this->storage)->exists($this->name) === true) {
+ Storage::disk($this->storage)->delete($this->name);
+ }
+
+ /** @var Illuminate\Filesystem\FilesystemAdapter */
+ $fileSystem = Storage::disk($this->storage);
+ $fileSystem->putFileAs('/', $this->stagingFilePath, $this->name);
+ }
+
+ $this->generateThumbnail();
+ $this->generateVariants();
+
+ if ($delete === true) {
+ $this->deleteStagingFile();
+ }
+ }//end if
+ }
+
+ /**
+ * Clean up temporary file.
+ *
+ * @return void
+ */
+ public function deleteStagingFile(): void
+ {
+ if ($this->stagingFilePath !== "") {
+ unlink($this->stagingFilePath);
+ $this->stagingFilePath = "";
+ }
+ }
+
+ /**
+ * Change staging file, removing the old file if present
+ *
+ * @param string $newFile The new staging file.
+ * @return void
+ */
+ public function changeStagingFile(string $newFile): void
+ {
+ if ($this->stagingFilePath !== "") {
+ unlink($this->stagingFilePath);
+ }
+
+ $this->stagingFilePath = $newFile;
+ }
+
+ /**
+ * Is a staging file present
+ *
+ * @return boolean
+ */
+ public function hasStagingFile(): bool
+ {
+ return $this->stagingFilePath !== "";
+ }
+
+ /**
+ * Generate a Thumbnail for this media.
+ *
+ * @return boolean If generation was successful.
+ */
+ public function generateThumbnail(): bool
+ {
+ $thumbnailWidth = 200;
+ $thumbnailHeight = 200;
+
+ // delete existing thumbnail
+ if (strlen($this->thumbnail) !== 0) {
+ $path = pathinfo($this->thumbnail, PATHINFO_BASENAME);
+ if (strlen($path) > 0 && Storage::disk($this->storage)->exists($path) === true) {
+ Storage::disk($this->storage)->delete($path);
+ }
+ }
+
+ $filePath = $this->getStagingFilePath();
+
+ $fileExtension = File::extension($this->name);
+ $tempImagePath = tempnam(sys_get_temp_dir(), 'thumb');
+ $newFilename = pathinfo($this->name, PATHINFO_FILENAME) . "-" . uniqid() . "-thumb.webp";
+ $success = false;
+
+ if ($this->security_type === '') {
+ if (strpos($this->mime_type, 'image/') === 0) {
+ $image = Image::make($filePath);
+ $image->orientate();
+ $image->resize($thumbnailWidth, $thumbnailHeight, function ($constraint) {
+ $constraint->aspectRatio();
+ });
+ $image->fit($thumbnailWidth, $thumbnailHeight);
+ $image->encode('webp', 75)->save($tempImagePath);
+ $success = true;
+ } elseif ($this->mime_type === 'application/pdf' && extension_loaded('imagick') === true) {
+ $pdfPreview = new \Imagick();
+ $pdfPreview->setResolution(300, 300);
+ $pdfPreview->readImage($filePath . '[0]');
+ $pdfPreview->setImageFormat('webp');
+ $pdfPreview->thumbnailImage($thumbnailWidth, $thumbnailHeight, true);
+ file_put_contents($tempImagePath, $pdfPreview);
+
+ $success = true;
+ } elseif ($this->mime_type === 'text/plain') {
+ $image = Image::canvas($thumbnailWidth, $thumbnailHeight, '#FFFFFF');
+
+ // Read the first few lines of the text file
+ $numLines = 5;
+ $text = file_get_contents($filePath);
+ $lines = explode("\n", $text);
+ $previewText = implode("\n", array_slice($lines, 0, $numLines));
+
+ // Center the text on the image
+ $fontSize = 8;
+ $textColor = '#000000'; // Black text color
+
+ // Calculate the position to start drawing the text
+ $x = 10; // Left padding
+ $y = 10; // Top padding
+
+ // Draw the text on the canvas with text wrapping
+ $lines = explode("\n", wordwrap($previewText, 30, "\n", true));
+ foreach ($lines as $line) {
+ $image->text($line, $x, $y, function ($font) use ($fontSize, $textColor) {
+ $font->file(1);
+ $font->size($fontSize);
+ $font->color($textColor);
+ });
+
+ // Move to the next line
+ $y += ($fontSize + 4); // Add some vertical spacing between lines (adjust as needed)
+ }
+
+ $image->encode('webp', 75)->save($tempImagePath);
+
+ $success = true;
+ } elseif (strpos($this->mime_type, 'video/') === 0) {
+ $tempImagePath .= '.webp';
+
+ try {
+ $ffmpeg = FFMpeg::create();
+ $video = $ffmpeg->open($filePath);
+ $frame = $video->frame(TimeCode::fromSeconds(5));
+ $frame->save($tempImagePath);
+ } catch (\Exception $e) {
+ Log::error($e);
+ }
+
+ $success = true;
+ }//end if
+ }//end if
+
+ if ($success === true && file_exists($tempImagePath) === true) {
+ /** @var Illuminate\Filesystem\FilesystemAdapter */
+ $fileSystem = Storage::disk($this->storage);
+ $fileSystem->putFileAs('/', new SplFileInfo($tempImagePath), $newFilename);
+ unlink($tempImagePath);
+
+ $this->thumbnail = $this->getUrlPath(['name' => $newFilename]);
+ } else {
+ $iconExtension = 'unknown';
+ if ($fileExtension !== '') {
+ $iconPath = public_path('assets/fileicons/' . $fileExtension . '.webp');
+ if (file_exists($iconPath) === true) {
+ $iconExtension = $fileExtension;
+ }
+ }
+
+ $this->thumbnail = asset('/assets/fileicons/' . $iconExtension . '.webp');
+ }
+
+ return $success;
+ }
+
+ /**
+ * Delete Media Thumbnail from storage.
+ *
+ * @return void
+ */
+ public function deleteThumbnail(): void
+ {
+ if (strlen($this->thumbnail) > 0) {
+ $path = pathinfo($this->thumbnail, PATHINFO_BASENAME);
+
+ if (strlen($path) > 0 && Storage::disk($this->storage)->exists($path) === true) {
+ Storage::disk($this->storage)->delete($path);
+ $this->thumbnail = ''; // Clear the thumbnail property
+ }
+ }
+ }
+
+ /**
+ * Generate variants for this media.
+ *
+ * @return void
+ */
+ public function generateVariants(): void
+ {
+ // delete existing variants
+ if (is_array($this->variants) === true) {
+ foreach ($this->variants as $variantName => $variantFile) {
+ if (Storage::disk($this->storage)->exists($variantFile) === true) {
+ Storage::disk($this->storage)->delete($variantFile);
+ }
+ }
+ }
+ $this->variants = [];
+
+ if ($this->security_type === '') {
+ if (strpos($this->mime_type, 'image/') === 0) {
+ // Generate additional image sizes
+ $sizes = Media::getObjectVariants('image');
+
+ // download original from CDN if no local file
+ $filePath = $this->getStagingFilePath();
+
+ $originalImage = Image::make($filePath);
+
+ $imageSize = $originalImage->getSize();
+ $isPortrait = $imageSize->getHeight() > $imageSize->getWidth();
+
+ // Swap width and height values for portrait images
+ foreach ($sizes as $variantName => &$size) {
+ if ($isPortrait === true) {
+ $temp = $size['width'];
+ $size['width'] = $size['height'];
+ $size['height'] = $temp;
+ }
+ }
+
+ $dimensions = [$originalImage->getWidth(), $originalImage->getHeight()];
+ $this->dimensions = implode('x', $dimensions);
+
+ foreach ($sizes as $variantName => $size) {
+ $postfix = "{$size['width']}x{$size['height']}";
+ if ($variantName === 'scaled') {
+ $postfix = 'scaled';
+ }
+
+ $newFilename = pathinfo($this->name, PATHINFO_FILENAME) . "-" . uniqid() . "-$postfix.webp";
+
+ // Get the largest available variant
+ if ($dimensions[0] >= $size['width'] && $dimensions[1] >= $size['height']) {
+ // Store the variant in the variants array
+ $variants[$variantName] = $newFilename;
+
+ // Resize the image to the variant size if its dimensions are greater than the
+ // specified size
+ $image = clone $originalImage;
+
+ $imageSize = $image->getSize();
+ if ($imageSize->getWidth() > $size['width'] || $imageSize->getHeight() > $size['height']) {
+ $image->resize($size['width'], $size['height'], function ($constraint) {
+ $constraint->aspectRatio();
+ $constraint->upsize();
+ });
+ $image->resizeCanvas($size['width'], $size['height'], 'center', false, 'rgba(0,0,0,0)');
+ }
+
+ $image->orientate();
+
+ // Optimize and store image
+ $tempImagePath = tempnam(sys_get_temp_dir(), 'optimize');
+ $image->encode('webp', 75)->save($tempImagePath);
+ /** @var Illuminate\Filesystem\FilesystemAdapter */
+ $fileSystem = Storage::disk($this->storage);
+ $fileSystem->putFileAs('/', new SplFileInfo($tempImagePath), $newFilename);
+ unlink($tempImagePath);
+ }//end if
+ }//end foreach
+
+ // Set missing variants to the largest available variant
+ foreach ($sizes as $variantName => $size) {
+ if (isset($variants[$variantName]) === false) {
+ $variants[$variantName] = $this->name;
+ }
+ }
+
+ $this->variants = $variants;
+ }//end if
+ }//end if
+ }
+
+ /**
+ * Delete the Media variants from storage.
+ *
+ * @return void
+ */
+ public function deleteVariants(): void
+ {
+ if (strlen($this->name) > 0 && strlen($this->storage) > 0) {
+ foreach ($this->variants as $variantName => $fileName) {
+ Storage::disk($this->storage)->delete($fileName);
+ }
+
+ $this->variants = [];
+ }
+ }
+
+ /**
+ * Set Media status to OK
+ *
+ * @return void
+ */
+ public function ok(): void
+ {
+ // $this->status = "OK";
+ $this->save();
+ }
+
+ /**
+ * Set Media status to an error
+ * @param string $error The error to set.
+ * @return void
+ */
+ public function error(string $error = ""): void
+ {
+ // $this->status = "Error" . ($error !== "" ? ": {$error}" : "");
+ $this->save();
+ }
+
+ /**
+ * Set Media status
+ * @param string $status The status to set.
+ * @return void
+ */
+ public function status(string $status = ""): void
+ {
+ // $this->status = "Info: " . $status;
+ $this->save();
+ }
+
+ /**
+ * Get the associated job models
+ *
+ * @return HasMany
+ */
+ public function jobs(): HasMany
+ {
+ return $this->hasMany(MediaJob::class, 'media_id');
+ }
+
+ /**
+ * Get the recommended storage ID based on mime and security
+ *
+ * @param string $mime_type The file mime type.
+ * @param string $security_type The security requested.
+ * @return string
+ */
+ public static function recommendedStorage(string $mime_type, string $security_type): string
+ {
+ if ($security_type === '') {
+ if (strpos($mime_type, 'image/') === 0) {
+ return('local');
+ } else {
+ return('cdn');
+ }
+ }
+
+ return('private');
+ }
+
+ /**
+ * Verify the storage exists. May change the storage value.
+ *
+ * @param mixed $mime_type File mime type.
+ * @param mixed $security_type Requested security type.
+ * @param mixed $storage Reference to the requested storage type.
+ * @return integer Error code.
+ */
+ public static function verifyStorage(mixed $mime_type, mixed $security_type, mixed &$storage): int
+ {
+ if ($storage === '') {
+ if ($security_type === '') {
+ if (strpos($mime_type, 'image/') === 0) {
+ $storage = 'local';
+ } else {
+ $storage = 'cdn';
+ }
+ } else {
+ $storage = 'private';
+ }
+ } else {
+ $disks = config('filesystems.disks');
+ if (array_key_exists($storage, $disks) === false) {
+ return Media::STORAGE_NOT_FOUND;
+ }
+
+ if ($security_type !== '' && strcasecmp($storage, 'private') !== 0) {
+ return Media::STORAGE_INVALID_SECURITY;
+ }
+ }
+
+ return Media::STORAGE_VALID;
+ }
+}
diff --git a/app/Models/MediaJob.php b/app.old/Models/MediaJob.php
similarity index 100%
rename from app/Models/MediaJob.php
rename to app.old/Models/MediaJob.php
diff --git a/app/Models/Permission.php b/app.old/Models/Permission.php
similarity index 100%
rename from app/Models/Permission.php
rename to app.old/Models/Permission.php
diff --git a/app/Models/Shortlink.php b/app.old/Models/Shortlink.php
similarity index 100%
rename from app/Models/Shortlink.php
rename to app.old/Models/Shortlink.php
diff --git a/app/Models/Subscription.php b/app.old/Models/Subscription.php
similarity index 100%
rename from app/Models/Subscription.php
rename to app.old/Models/Subscription.php
diff --git a/app.old/Models/User.php b/app.old/Models/User.php
new file mode 100644
index 0000000..ea17138
--- /dev/null
+++ b/app.old/Models/User.php
@@ -0,0 +1,246 @@
+
+ */
+ protected $fillable = [
+ 'first_name',
+ 'last_name',
+ 'email',
+ 'phone',
+ 'password',
+ 'display_name',
+ ];
+
+ /**
+ * The attributes that should be hidden for serialization.
+ *
+ * @var array
+ */
+ protected $hidden = [
+ 'password',
+ 'remember_token',
+ 'permissions'
+ ];
+
+ /**
+ * The attributes that should be cast.
+ *
+ * @var array
+ */
+ protected $casts = [
+ 'email_verified_at' => 'datetime',
+ ];
+
+ // protected $hidden = [
+ // 'permissions'
+ // ];
+
+ /**
+ * The attributes to append.
+ *
+ * @var string[]
+ */
+ protected $appends = [
+ 'permissions'
+ ];
+
+ /**
+ * The default attributes.
+ *
+ * @var string[]
+ */
+ protected $attributes = [
+ 'phone' => '',
+ ];
+
+
+ /**
+ * Boot the model.
+ *
+ * @return void
+ */
+ protected static function boot(): void
+ {
+ parent::boot();
+
+ $clearCache = function ($user) {
+ Cache::forget(
+ "user:{$user->id}",
+ "user:{$user->id}:permissions"
+ );
+ };
+
+ static::saving($clearCache);
+ static::deleting($clearCache);
+ }
+
+ /**
+ * Get the list of permissions of the user
+ *
+ * @return Illuminate\Database\Eloquent\Relations\HasMany
+ */
+ public function permissions(): HasMany
+ {
+ return $this->hasMany(Permission::class);
+ }
+
+ /**
+ * Get the permission attribute
+ *
+ * @return array
+ */
+ public function getPermissionsAttribute(): array
+ {
+ $cacheKey = "user:{$this->id}:permissions";
+ return Cache::remember($cacheKey, now()->addDays(28), function () {
+ return $this->permissions()->pluck('permission')->toArray();
+ });
+ }
+
+ /**
+ * Set the permission attribute
+ *
+ * @param array $newPermissions The new permissions to set to the user.
+ * @return void
+ */
+ public function setPermissionsAttribute(array $newPermissions): void
+ {
+ $existingPermissions = $this->permissions->pluck('permission')->toArray();
+
+ $this->revokePermission(array_diff($this->permissions, $newPermissions));
+ $this->givePermission(array_diff($newPermissions, $this->permissions));
+
+ $cacheKey = "user:{$this->id}:permissions";
+ Cache::delete($cacheKey);
+ }
+
+ /**
+ * Test if user has permission
+ *
+ * @param string $permission Permission to test.
+ * @return boolean
+ */
+ public function hasPermission(string $permission): bool
+ {
+ return in_array($permission, $this->permissions);
+ }
+
+ /**
+ * Give permissions to the user
+ *
+ * @param string|array $permissions The permission(s) to give.
+ * @return Illuminate\Database\Eloquent\Collection
+ */
+ public function givePermission($permissions): Collection
+ {
+ if (is_array($permissions) === false) {
+ $permissions = [$permissions];
+ }
+
+ $newPermissions = array_map(function ($permission) {
+ return ['permission' => $permission];
+ }, array_diff($permissions, $this->permissions));
+
+ $cacheKey = "user:{$this->id}:permissions";
+ Cache::forget($cacheKey);
+
+ return $this->permissions()->createMany($newPermissions);
+ }
+
+
+ /**
+ * Revoke permissions from the user
+ *
+ * @param string|array $permissions The permission(s) to revoke.
+ * @return integer
+ */
+ public function revokePermission($permissions): int
+ {
+ if (is_array($permissions) === false) {
+ $permissions = [$permissions];
+ }
+
+ $cacheKey = "user:{$this->id}:permissions";
+ Cache::forget($cacheKey);
+
+ return $this->permissions()
+ ->whereIn('permission', $permissions)
+ ->delete();
+ }
+
+ /**
+ * Get the list of files of the user
+ *
+ * @return HasMany
+ */
+ public function media(): HasMany
+ {
+ return $this->hasMany(Media::class);
+ }
+
+ /**
+ * Get the list of files of the user
+ *
+ * @return HasMany
+ */
+ public function articles(): HasMany
+ {
+ return $this->hasMany(Article::class);
+ }
+
+ /**
+ * Get associated user codes
+ *
+ * @return HasMany
+ */
+ public function codes(): HasMany
+ {
+ return $this->hasMany(UserCode::class);
+ }
+
+ /**
+ * Get the list of logins of the user
+ *
+ * @return HasMany
+ */
+ public function logins(): HasMany
+ {
+ return $this->hasMany(UserLogins::class);
+ }
+
+ /**
+ * Get the events associated with the user.
+ *
+ * @return BelongsToMany
+ */
+ public function events(): BelongsToMany
+ {
+ return $this->belongsToMany(Event::class, 'event_user', 'user_id', 'event_id');
+ }
+}
diff --git a/app/Models/UserCode.php b/app.old/Models/UserCode.php
similarity index 100%
rename from app/Models/UserCode.php
rename to app.old/Models/UserCode.php
diff --git a/app/Models/UserLogins.php b/app.old/Models/UserLogins.php
similarity index 100%
rename from app/Models/UserLogins.php
rename to app.old/Models/UserLogins.php
diff --git a/app.old/Providers/AppServiceProvider.php b/app.old/Providers/AppServiceProvider.php
new file mode 100644
index 0000000..30a0c2d
--- /dev/null
+++ b/app.old/Providers/AppServiceProvider.php
@@ -0,0 +1,53 @@
+ $newParam];
+ }
+
+ $paramArray = $this->all();
+ foreach ($param as $oldParam => $newParam) {
+ if (isset($paramArray[$oldParam]) === true) {
+ $paramArray[$newParam] = $paramArray[$oldParam];
+ unset($paramArray[$oldParam]);
+ }
+ }
+
+ $this->replace($paramArray);
+ });
+
+ Storage::macro('public', function ($diskName) {
+ $public = config("filesystems.disks.{$diskName}.public", false);
+ return $public;
+ });
+ }
+}
diff --git a/app.old/Providers/AuthServiceProvider.php b/app.old/Providers/AuthServiceProvider.php
new file mode 100644
index 0000000..1f84312
--- /dev/null
+++ b/app.old/Providers/AuthServiceProvider.php
@@ -0,0 +1,29 @@
+
+ */
+ protected $policies = [
+ // 'App\Models\Model' => 'App\Policies\ModelPolicy',
+ ];
+
+
+ /**
+ * Register any authentication / authorization services.
+ *
+ * @return void
+ */
+ public function boot(): void
+ {
+ //
+ }
+}
diff --git a/app.old/Providers/BroadcastServiceProvider.php b/app.old/Providers/BroadcastServiceProvider.php
new file mode 100644
index 0000000..229284c
--- /dev/null
+++ b/app.old/Providers/BroadcastServiceProvider.php
@@ -0,0 +1,21 @@
+>
+ */
+ protected $listen = [
+ Registered::class => [
+ SendEmailVerificationNotification::class,
+ ],
+ ];
+
+
+ /**
+ * Register any events for your application.
+ *
+ * @return void
+ */
+ public function boot(): void
+ {
+ //
+ }
+
+ /**
+ * Determine if events and listeners should be automatically discovered.
+ *
+ * @return boolean
+ */
+ public function shouldDiscoverEvents(): bool
+ {
+ return false;
+ }
+}
diff --git a/app.old/Providers/RouteServiceProvider.php b/app.old/Providers/RouteServiceProvider.php
new file mode 100644
index 0000000..7113be9
--- /dev/null
+++ b/app.old/Providers/RouteServiceProvider.php
@@ -0,0 +1,90 @@
+by($request->user()?->id !== null ?: $request->ip());
+ // });
+
+ $rateLimitEnabled = true;
+ /** @var \App\Models\User */
+ $user = auth()->user();
+
+ if (app()->environment('testing') === true) {
+ $rateLimitEnabled = false;
+ } elseif ($user !== null && $user->hasPermission('admin/ratelimit') === true) {
+ // Admin users with the "admin/ratelimit" permission are not rate limited
+ $rateLimitEnabled = false;
+ }
+
+ if ($rateLimitEnabled === true) {
+ RateLimiter::for('api', function (Request $request) {
+ return Limit::perMinute(800)->by(isset($request->user()->id) === true ?: $request->ip());
+ });
+ } else {
+ RateLimiter::for('api', function () {
+ return Limit::none();
+ });
+ }
+
+ $this->routes(function () {
+ Route::middleware('api')
+ ->prefix('api')
+ ->group(base_path('routes/api.php'));
+
+ Route::middleware('web')
+ ->group(base_path('routes/web.php'));
+ });
+
+ Route::macro('apiAddendumResource', function ($addendum, $uri, $controller) {
+ $singularUri = Str::singular($uri);
+ $signularAddendum = Str::singular((strtolower($addendum)));
+ $pluralAddendum = Str::plural($signularAddendum);
+
+ Route::get("{$uri}/{{$singularUri}}/{$pluralAddendum}", [$controller, "{$signularAddendum}Index"])
+ ->name("{$singularUri}.{$signularAddendum}.index");
+
+ Route::post("{$uri}/{{$singularUri}}/{$pluralAddendum}", [$controller, "{$signularAddendum}Store"])
+ ->name("{$singularUri}.{$signularAddendum}.store");
+
+ Route::match(
+ ['put', 'patch'],
+ "{$uri}/{{$singularUri}}/{$pluralAddendum}",
+ [$controller, "{$signularAddendum}Update"]
+ )
+ ->name("{$singularUri}.{$signularAddendum}.update");
+
+ Route::delete(
+ "{$uri}/{{$singularUri}}/{$pluralAddendum}/{medium}",
+ [$controller,"{$signularAddendum}Delete"]
+ )
+ ->name("{$singularUri}.{$signularAddendum}.destroy");
+ });
+ }
+}
diff --git a/app/Rules/Recaptcha.php b/app.old/Rules/Recaptcha.php
similarity index 100%
rename from app/Rules/Recaptcha.php
rename to app.old/Rules/Recaptcha.php
diff --git a/app/Rules/UniqueFileName.php b/app.old/Rules/UniqueFileName.php
similarity index 100%
rename from app/Rules/UniqueFileName.php
rename to app.old/Rules/UniqueFileName.php
diff --git a/app/Rules/Uniqueish.php b/app.old/Rules/Uniqueish.php
similarity index 100%
rename from app/Rules/Uniqueish.php
rename to app.old/Rules/Uniqueish.php
diff --git a/app/Traits/HasAttachments.php b/app.old/Traits/HasAttachments.php
similarity index 100%
rename from app/Traits/HasAttachments.php
rename to app.old/Traits/HasAttachments.php
diff --git a/app/Traits/HasGallery.php b/app.old/Traits/HasGallery.php
similarity index 100%
rename from app/Traits/HasGallery.php
rename to app.old/Traits/HasGallery.php
diff --git a/app/Traits/Uuids.php b/app.old/Traits/Uuids.php
similarity index 100%
rename from app/Traits/Uuids.php
rename to app.old/Traits/Uuids.php
diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php
index 61d0d1a..e6b9960 100644
--- a/app/Console/Kernel.php
+++ b/app/Console/Kernel.php
@@ -9,25 +9,18 @@ class Kernel extends ConsoleKernel
{
/**
* Define the application's command schedule.
- *
- * @param \Illuminate\Console\Scheduling\Schedule $schedule The schedule.
- * @return void
*/
protected function schedule(Schedule $schedule): void
{
// $schedule->command('inspire')->hourly();
- $schedule->command('app:cleanup-temp-files')->everyThirtyMinutes();
- $schedule->command('app:remove-stale-media-jobs')->everyThirtyMinutes();
}
/**
* Register the commands for the application.
- *
- * @return void
*/
protected function commands(): void
{
- $this->load(__DIR__ . '/Commands');
+ $this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php
index 74672f9..56af264 100644
--- a/app/Exceptions/Handler.php
+++ b/app/Exceptions/Handler.php
@@ -3,19 +3,12 @@
namespace App\Exceptions;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
-use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Throwable;
-use PDOException;
-use Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer;
-use Illuminate\Support\Facades\App;
-use Illuminate\Support\Facades\Log;
-use Illuminate\Support\Facades\Mail;
-use Symfony\Component\ErrorHandler\Exception\FlattenException;
class Handler extends ExceptionHandler
{
/**
- * A list of the inputs that are never flashed to the session on validation exceptions.
+ * The list of the inputs that are never flashed to the session on validation exceptions.
*
* @var array
*/
@@ -25,74 +18,13 @@ class Handler extends ExceptionHandler
'password_confirmation',
];
-
/**
* Register the exception handling callbacks for the application.
- *
- * @return void
*/
public function register(): void
{
- // $this->renderable(function (HttpException $e, $request) {
- // if ($request->is('api/*')) {
- // $message = $e->getMessage();
- // if ($message === '') {
- // $message = HttpResponseCodes::$statusTexts[$e->getStatusCode()];
- // }
-
- // return response()->json([
- // 'message' => $message
- // ], $e->getStatusCode());
- // }
- // });
-
- $this->renderable(function (NotFoundHttpException $e, $request) {
- if ($request->is('api/*') === true) {
- return response()->json([
- 'message' => 'Resource not found'
- ], 404);
- }
- });
-
- $this->renderable(function (PDOException $e, $request) {
- if ($request->is('api/*') === true) {
- return response()->json([
- 'message' => 'The server is currently unavailable'
- ], 503);
- }
- });
-
$this->reportable(function (Throwable $e) {
- if ($this->shouldReport($e) === true) {
- if (App::runningUnitTests() === false) {
- $this->sendEmail($e);
- }
- }
+ //
});
}
-
- /**
- * Send email
- *
- * @param Throwable $exception Throwable object.
- * @return void
- */
- public function sendEmail(Throwable $exception)
- {
- try {
- $e = FlattenException::createFromThrowable($exception);
- $handler = new HtmlErrorRenderer(true);
- $css = $handler->getStylesheet();
- $content = $handler->getBody($e);
-
- Mail::send('emails.exception', compact('css', 'content'), function ($message) {
- $message
- ->to('webmaster@stemmechanics.com.au')
- ->subject('Exception Generated')
- ;
- });
- } catch (Throwable $ex) {
- Log::error($ex);
- }
- }
}
diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php
new file mode 100644
index 0000000..b4ec0b9
--- /dev/null
+++ b/app/Http/Controllers/AccountController.php
@@ -0,0 +1,29 @@
+ User::latest()->paginate(10),
+ ]);
+ }
+
+ public function users_show(Request $request, User $user) {
+ return view('account.users-show', [
+ 'user' => $user,
+ ]);
+ }
+
+ public function media_index(Request $request) {
+ return view('account.media-index');
+ }
+}
diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php
index f1406be..77ec359 100644
--- a/app/Http/Controllers/Controller.php
+++ b/app/Http/Controllers/Controller.php
@@ -8,6 +8,5 @@ use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController
{
- use AuthorizesRequests;
- use ValidatesRequests;
+ use AuthorizesRequests, ValidatesRequests;
}
diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php
new file mode 100644
index 0000000..0e86463
--- /dev/null
+++ b/app/Http/Controllers/HomeController.php
@@ -0,0 +1,15 @@
+ Workshop::latest()->limit(4)->get()
+ ]);
+ }
+}
diff --git a/app/Http/Controllers/MediaController.php b/app/Http/Controllers/MediaController.php
new file mode 100644
index 0000000..9cef3b1
--- /dev/null
+++ b/app/Http/Controllers/MediaController.php
@@ -0,0 +1,10 @@
+check()) {
+ return view('home');
+ }
+
+ $form = Form::make('users.register')
+ ->namespaced('register')
+ ->canNavigateBack(true)
+ ->addStep(1, [
+ 'rules' => [
+ 'username' => ['required', 'unique:users,username'],
+ 'password' => ['required', Password::min(8)->numbers()]
+ ],
+ ])
+ ->beforeStep(1, function(Form $form) {
+ $username = $form->getValue('username');
+ if($username !== '') {
+ $user = User::where('username', $username)->first();
+ if($user && $user->email_verified_at === null) {
+ $user->delete();
+ }
+ }
+ })
+ ->addStep(2, [
+ 'rules' => [
+ 'age' => ['required'],
+ ],
+ ])
+ ->addStep(3, [
+ 'rules' => [
+ 'email' => ['required', 'email']
+ ],
+ ])
+ ->addStep(4, [
+ 'rules' => [
+ 'code' => ['required', 'numeric', 'integer', 'digits:6']
+ ],
+ ])
+ ->onStep(3, function (Form $form) {
+ $user = User::create([
+ 'username' => $form->getValue('username'),
+ 'password' => bcrypt($form->getValue('password')),
+ 'is_under_14' => $form->getValue('age') === "under",
+ 'email' => $form->getValue('email'),
+ ]);
+
+ $form->setValue('user', $user->id);
+ $code = $user->verificationCodes()->create(['type' => 'register']);
+ dispatch((new SendEmailJob($user->email, new UserEmailVerify($user, $code->code))))->onQueue('mail');
+
+ })
+ ->onStep(4, function(Form $form) {
+ $user = User::where('id', $form->getValue('user'))->first();
+ if($user === null) {
+ return back()->with('message-type', 'danger')->with('message', 'The username was no longer found. Please try again.');
+ }
+
+ $verificationCode = $user->verificationCodes()->where('type', 'register')->where('code', $form->getValue('code'))->first();
+ if($verificationCode === null) {
+ return back()->withErrors(['code' => 'The code is invalid']);
+ }
+
+ $user->email_verified_at = now();
+ $user->save();
+ $verificationCode->delete();
+
+ auth()->login($user);
+ request()->session()->regenerate();
+
+ $form->reset();
+ return redirect('/')->with('message', 'Your account is now registered and you have been logged in');
+ });
+
+ // user requested form reset
+ if($request->has('reset')) {
+ $form->reset();
+ return redirect('/register');
+ }
+
+ // user requested email resend
+ if(!empty($form->getValue('user')) && $request->has('resend')) {
+ $user = User::where('id', $form->getValue('user'))->first();
+ if($user === null) {
+ return back()->with('message-type', 'danger')->with('message', 'The username was no longer found. Please try again.');
+ }
+
+ $code = $user->verificationCodes()
+ ->where('type', 'register')
+ ->orderByDesc('created_at')
+ ->first();
+
+ if ($code == null || now()->subSeconds(20)->greaterThan($code->created_at)) {
+ $code = $user->verificationCodes()->create(['type' => 'register']);
+ dispatch((new SendEmailJob($user->email, new UserEmailVerify($user, $code->code))))->onQueue('mail');
+ return back()->with('message', 'Your verification code has been resent to your email address.');
+ } else {
+ return back()->with('message', 'Please wait at least 30 seconds before resending a verification code.');
+ }
+ }
+
+ return $form;
+ }
+
+ public function store(Request $request) {
+ /** @var \App\Models\User */
+ }
+
+ // Show Login Form
+ public function login(Request $request) {
+ if(auth()->check()) {
+ return redirect('/');
+ }
+
+ return view('users.login');
+ }
+
+ // Authenticate User
+ public function authenticate(Request $request) {
+ $formFields = $request->validate([
+ 'username' => 'required',
+ 'password' => 'required'
+ ]);
+
+ if(auth()->validate($formFields)) {
+ $user = User::where('username', $formFields['username'])->first();
+ if($user->email_verified_at !== null) {
+ auth()->login($user);
+ $request->session()->regenerate();
+ return redirect('/')->with('message', 'You are now logged in');
+ }
+
+ return redirect('/verify');
+ }
+
+ return back()->withErrors(['username' => 'Invalid username/password', 'password' => 'Invalid username/password'])->onlyInput('username');
+ }
+
+ // Logout User
+ public function logout(Request $request) {
+ auth()->logout();
+
+ $request->session()->invalidate();
+ $request->session()->regenerateToken();
+
+ return redirect('/')->with('message', 'You have been logged out!');
+
+ }
+
+ public function verify(Request $request) {
+ if(auth()->check()) {
+ return redirect('/');
+ }
+
+ return view('users.verify');
+ }
+
+ public function verify_store(Request $request) {
+ $request->validate([
+ 'code' => ['required', 'numeric', 'integer', 'digits:6'],
+ ]);
+
+ $verificationCode = VerificationCode::where('code', $request->code)->first();
+ if($verificationCode === null) {
+ return view('users.verify')->withErrors(['code' => 'The code is invalid'])->withInput($request->flash());
+ }
+
+ if($verificationCode->type === 'register') {
+ $user = $verificationCode->user;
+ $user->email_verified_at = now();
+ $user->save();
+ $verificationCode->delete();
+
+ auth()->login($user);
+ $request->session()->regenerate();
+
+ return redirect('/')->with('message', 'Your account is now registered and you have been logged in');
+ }
+
+ abort(500);
+ }
+}
diff --git a/app/Http/Controllers/WorkshopController.php b/app/Http/Controllers/WorkshopController.php
new file mode 100644
index 0000000..bd19a93
--- /dev/null
+++ b/app/Http/Controllers/WorkshopController.php
@@ -0,0 +1,16 @@
+ Workshop::latest()->filter(request(['tag', 'search']))->paginate(8)
+ ]);
+ }
+}
diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php
index 7b83b74..494c050 100644
--- a/app/Http/Kernel.php
+++ b/app/Http/Kernel.php
@@ -19,8 +19,8 @@ class Kernel extends HttpKernel
\Illuminate\Http\Middleware\HandleCors::class,
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
- // \App\Http\Middleware\TrimStrings::class,
- // \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
+ \App\Http\Middleware\TrimStrings::class,
+ \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
/**
@@ -40,19 +40,15 @@ class Kernel extends HttpKernel
'api' => [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
- \Illuminate\Routing\Middleware\ThrottleRequests::class . ':api',
+ \Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
- // \App\Http\Middleware\ForceJsonResponse::class,
- \App\Http\Middleware\UnmangleRequest::class,
- 'useSanctumGuard',
- \App\Http\Middleware\LogRequest::class,
],
];
/**
* The application's middleware aliases.
*
- * Aliases may be used to conveniently assign middleware to routes and groups.
+ * Aliases may be used instead of class names to conveniently assign middleware to routes and groups.
*
* @var array
*/
@@ -63,11 +59,10 @@ class Kernel extends HttpKernel
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
- 'unmangle' => \App\Http\Middleware\UnmangleRequest::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
+ 'precognitive' => \Illuminate\Foundation\Http\Middleware\HandlePrecognitiveRequests::class,
'signed' => \App\Http\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
- 'useSanctumGuard' => \App\Http\Middleware\UseSanctumGuard::class
];
}
diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php
index 9515a4a..d4ef644 100644
--- a/app/Http/Middleware/Authenticate.php
+++ b/app/Http/Middleware/Authenticate.php
@@ -3,21 +3,15 @@
namespace App\Http\Middleware;
use Illuminate\Auth\Middleware\Authenticate as Middleware;
+use Illuminate\Http\Request;
class Authenticate extends Middleware
{
/**
* Get the path the user should be redirected to when they are not authenticated.
- *
- * @param mixed $request Request.
- * @return ?string
*/
- protected function redirectTo(mixed $request): ?string
+ protected function redirectTo(Request $request): ?string
{
- if ($request->expectsJson() === false) {
- return route('login');
- }
-
- return null;
+ return $request->expectsJson() ? null : route('login');
}
}
diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php
index 5ee6f4b..afc78c4 100644
--- a/app/Http/Middleware/RedirectIfAuthenticated.php
+++ b/app/Http/Middleware/RedirectIfAuthenticated.php
@@ -2,28 +2,25 @@
namespace App\Http\Middleware;
-use Symfony\Component\HttpFoundation\Response;
use App\Providers\RouteServiceProvider;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
+use Symfony\Component\HttpFoundation\Response;
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
- * @param Request $request Request.
- * @param \Closure $next Closure.
- * @param string|null ...$guards Guards.
- * @return Response
+ * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next, string ...$guards): Response
{
- $guards = empty($guards) === true ? [null] : $guards;
+ $guards = empty($guards) ? [null] : $guards;
foreach ($guards as $guard) {
- if (Auth::guard($guard)->check() === true) {
+ if (Auth::guard($guard)->check()) {
return redirect(RouteServiceProvider::HOME);
}
}
diff --git a/app/Http/Middleware/TrustProxies.php b/app/Http/Middleware/TrustProxies.php
index 3123f50..3391630 100644
--- a/app/Http/Middleware/TrustProxies.php
+++ b/app/Http/Middleware/TrustProxies.php
@@ -17,9 +17,12 @@ class TrustProxies extends Middleware
/**
* The headers that should be used to detect proxies.
*
- * @var integer
+ * @var int
*/
- // @codingStandardsIgnoreStart
- protected $headers = (Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_HOST | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO | Request::HEADER_X_FORWARDED_AWS_ELB);
- // @codingStandardsIgnoreEnd
+ protected $headers =
+ Request::HEADER_X_FORWARDED_FOR |
+ Request::HEADER_X_FORWARDED_HOST |
+ Request::HEADER_X_FORWARDED_PORT |
+ Request::HEADER_X_FORWARDED_PROTO |
+ Request::HEADER_X_FORWARDED_AWS_ELB;
}
diff --git a/app/Jobs/SendEmailJob.php b/app/Jobs/SendEmailJob.php
index 89d7d1f..75ddd73 100644
--- a/app/Jobs/SendEmailJob.php
+++ b/app/Jobs/SendEmailJob.php
@@ -54,4 +54,4 @@ class SendEmailJob implements ShouldQueue
{
Mail::to($this->to)->send($this->mailable);
}
-}
+}
\ No newline at end of file
diff --git a/app/Mail/UserEmailVerify.php b/app/Mail/UserEmailVerify.php
new file mode 100644
index 0000000..6a9df23
--- /dev/null
+++ b/app/Mail/UserEmailVerify.php
@@ -0,0 +1,70 @@
+user = $user;
+ $this->code = $code;
+ }
+
+ /**
+ * Get the message envelope.
+ *
+ * @return Illuminate\Mail\Mailables\Envelope
+ */
+ public function envelope(): Envelope
+ {
+ return new Envelope(
+ subject: '👋🏻 Welcome to STEMMechanics!',
+ );
+ }
+
+ /**
+ * Get the message content definition.
+ *
+ * @return Illuminate\Mail\Mailables\Content
+ */
+ public function content(): Content
+ {
+ return new Content(
+ view: 'emails.users.email-verify',
+ text: 'emails.users.email-verify-plain',
+ );
+ }
+}
\ No newline at end of file
diff --git a/app/Models/Media.php b/app/Models/Media.php
index 2bcb6e8..5a5464c 100644
--- a/app/Models/Media.php
+++ b/app/Models/Media.php
@@ -2,1063 +2,10 @@
namespace App\Models;
-use App\Enum\HttpResponseCodes;
-use App\Jobs\MediaWorkerJob;
-use App\Jobs\MoveMediaJob;
-use App\Traits\Uuids;
-use FFMpeg\Coordinate\TimeCode;
-use FFMpeg\FFMpeg;
-use Illuminate\Contracts\Container\BindingResolutionException;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
-use Illuminate\Database\Eloquent\Relations\BelongsTo;
-use Illuminate\Database\Eloquent\Relations\HasMany;
-use Illuminate\Foundation\Bus\DispatchesJobs;
-use Illuminate\Http\JsonResponse;
-use Illuminate\Support\Facades\Cache;
-use Illuminate\Support\Facades\Config;
-use Illuminate\Support\Facades\File;
-use Illuminate\Support\Facades\Log;
-use Illuminate\Support\Facades\Storage;
-use Intervention\Image\Facades\Image;
-use Psr\Container\NotFoundExceptionInterface;
-use Psr\Container\ContainerExceptionInterface;
-use SplFileInfo;
-use Symfony\Component\HttpFoundation\StreamedResponse;
class Media extends Model
{
use HasFactory;
- use Uuids;
- use DispatchesJobs;
-
- public const NO_ERROR = 0;
-
- public const INVALID_FILE_ERROR = 1;
- public const FILE_SIZE_EXCEEDED_ERROR = 2;
- public const FILE_NAME_EXISTS_ERROR = 3;
- public const TEMP_FILE_ERROR = 4;
-
- public const STORAGE_VALID = 0;
- public const STORAGE_MIME_MISSING = 10; // Mime type is missing and cannot verify
- public const STORAGE_NOT_FOUND = 11; // Storage name is not found
- public const STORAGE_INVALID_SECURITY = 12; // Security setting invalid for storage
-
- /**
- * The attributes that are mass assignable.
- *
- * @var array
- */
- protected $fillable = [
- 'title',
- 'user_id',
- 'mime_type',
- 'security_type',
- 'security_data',
- 'storage',
- 'description',
- 'name',
- 'size',
- ];
-
- /**
- * The attributes that are appended.
- *
- * @var array
- */
- protected $appends = [
- 'url',
- ];
-
- /**
- * The default attributes.
- *
- * @var string[]
- */
- protected $attributes = [
- 'storage' => 'cdn',
- 'variants' => '[]',
- 'description' => '',
- 'dimensions' => '',
- 'security_type' => '',
- 'security_data' => '',
- 'thumbnail' => '',
- ];
-
- /**
- * The storage file list cache.
- *
- * @var array
- */
- protected static $storageFileListCache = [];
-
- /**
- * Object variant details.
- *
- * @var int[][][]
- */
- protected static $objectVariants = [
- 'image' => [
- 'small' => ['width' => 300, 'height' => 225],
- 'medium' => ['width' => 768, 'height' => 576],
- 'large' => ['width' => 1024, 'height' => 768],
- 'xlarge' => ['width' => 1536, 'height' => 1152],
- 'xxlarge' => ['width' => 2048, 'height' => 1536],
- 'scaled' => ['width' => 2560, 'height' => 1920]
- ]
- ];
-
- /**
- * Staging file path of asset for processing.
- *
- * @var string
- */
- private $stagingFilePath = "";
-
-
- /**
- * Model Boot
- *
- * @return void
- */
- protected static function boot(): void
- {
- parent::boot();
-
- $clearCache = function ($media) {
- Cache::forget("media:{$media->id}");
- };
-
- static::updating(function ($media) use ($clearCache) {
- $clearCache($media);
- });
-
- static::deleting(function ($media) use ($clearCache) {
- $clearCache($media);
- $media->deleteFile();
- });
- }
-
- /**
- * Get Object Variants.
- *
- * @param string $type The variant object to get.
- * @return array The variant data.
- */
- public static function getObjectVariants(string $type): array
- {
- if (isset(self::$objectVariants[$type]) === true) {
- return self::$objectVariants[$type];
- }
-
- return [];
- }
-
- /**
- * Variants Get Mutator.
- *
- * @param mixed $value The value to mutate.
- * @param boolean $raw Values are not run through urlencode.
- * @return array|null The mutated value.
- */
- public function getVariantsAttribute(mixed $value, bool $raw = false): array|null
- {
- if (is_string($value) === true) {
- $decodedValue = json_decode($value, true);
-
- // Check if the decoded value is an array
- if ($raw === false && is_array($decodedValue) === true) {
- // Loop through the array and encode each value
- foreach ($decodedValue as &$item) {
- if (is_string($item) === true) {
- $item = rawurlencode($item);
- }
- }
- }
-
- return $decodedValue;
- }
-
- return [];
- }
-
- /**
- * Variants Set Mutator.
- *
- * @param mixed $value The value to mutate.
- * @return void
- */
- public function setVariantsAttribute(mixed $value): void
- {
- if (is_array($value) !== true) {
- $value = [];
- }
-
- $this->attributes['variants'] = json_encode(($value ?? []));
- }
-
- /**
- * Get previous variant.
- *
- * @param string $type The variant type.
- * @param string $variant The initial variant.
- * @return string The previous variant name (or '').
- */
- public function getPreviousVariant(string $type, string $variant): string
- {
- if (isset(self::$objectVariants[$type]) === false) {
- return '';
- }
-
- $variants = self::$objectVariants[$type];
- $keys = array_keys($variants);
-
- $currentIndex = array_search($variant, $keys);
- if ($currentIndex === false || $currentIndex === 0) {
- return '';
- }
-
- return $keys[($currentIndex - 1)];
- }
-
- /**
- * Get next variant.
- *
- * @param string $type The variant type.
- * @param string $variant The initial variant.
- * @return string The next variant name (or '').
- */
- public function getNextVariant(string $type, string $variant): string
- {
- if (isset(self::$objectVariants[$type]) === false) {
- return '';
- }
-
- $variants = self::$objectVariants[$type];
- $keys = array_keys($variants);
-
- $currentIndex = array_search($variant, $keys);
- if ($currentIndex === false || $currentIndex === (count($keys) - 1)) {
- return '';
- }
-
- return $keys[($currentIndex + 1)];
- }
-
- /**
- * Get variant URL.
- *
- * @param string $variant The variant to find.
- * @param boolean $returnNearest Return the nearest variant if request is not found.
- * @return string The URL.
- */
- public function getVariantURL(string $variant, bool $returnNearest = true): string
- {
- $variants = $this->variants;
- if (isset($variants[$variant]) === true) {
- return self::getUrlPath(['name' => $variants[$variant]]);
- }
-
- if ($returnNearest === true) {
- $variantType = explode('/', $this->mime_type)[0];
- $previousVariant = $variant;
- while (empty($previousVariant) === false) {
- $previousVariant = $this->getPreviousVariant($variantType, $previousVariant);
- if (empty($previousVariant) === false && isset($variants[$previousVariant]) === true) {
- return self::getUrlPath(['name' => $variants[$previousVariant]]);
- }
- }
- }
-
- return '';
- }
-
- /**
- * Delete file and associated files with the modal.
- *
- * @return void
- */
- public function deleteFile(): void
- {
- if (
- strlen($this->storage) > 0 && strlen($this->name) > 0 &&
- Storage::disk($this->storage)->exists($this->name) === true
- ) {
- Storage::disk($this->storage)->delete($this->name);
- }
-
- $this->deleteThumbnail();
- $this->deleteVariants();
- $this->invalidateCFCache();
- }
-
- /**
- * Invalidate Cloudflare Cache.
- *
- * @return void
- */
- private function invalidateCFCache(): void
- {
- $zone_id = env("CLOUDFLARE_ZONE_ID");
- $api_key = env("CLOUDFLARE_API_KEY");
- if ($zone_id !== null && $api_key !== null && $this->url !== "") {
- $urls = [$this->url];
-
- foreach ($this->variants as $variant => $name) {
- $urls[] = str_replace($this->name, $name, $this->url);
- }
-
- $curl = curl_init();
- curl_setopt_array($curl, [
- CURLOPT_URL => "https://api.cloudflare.com/client/v4/zones/" . $zone_id . "/purge_cache",
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_CUSTOMREQUEST => "DELETE",
- CURLOPT_POSTFIELDS => json_encode(["files" => $urls]),
- CURLOPT_HTTPHEADER => [
- "Content-Type: application/json",
- "Authorization: Bearer " . $api_key
- ],
- ]);
- curl_exec($curl);
- curl_close($curl);
- }//end if
- }
-
- /**
- * Get URL path
- *
- * @param array $replacements Replace variables in URL.
- * @return string
- */
- public function getUrlPath(array $replacements = []): string
- {
- $url = config("filesystems.disks.$this->storage.url");
-
- if (empty($replacements) !== true) {
- foreach ($replacements as $key => $value) {
- $placeholder = '{' . $key . '}';
- $url = str_replace($placeholder, $value, $url);
- }
- }
-
- // Remove any remaining {x} placeholders
- $url = preg_replace('/\{[^}]+\}/', '', $url);
-
- return "$url";
- }
-
- /**
- * Return the file URL
- *
- * @return string
- */
- public function getUrlAttribute(): string
- {
- $url = self::getUrlPath([
- 'id' => rawurlencode($this->id),
- 'name' => rawurlencode($this->name)
- ]);
-
- return $url;
- }
-
- /**
- * Return the file owner
- *
- * @return BelongsTo
- */
- public function user(): BelongsTo
- {
- return $this->belongsTo(User::class);
- }
-
- /**
- * Transform the media through the Media Job Queue
- *
- * @param array $transform The transform data.
- * @return MediaJob
- */
- public function transform(array $transform): MediaJob
- {
- $mediaJob = new MediaJob([
- 'media_id' => $this->media,
- 'user_id' => auth()->user()?->id,
- 'data' => json_encode(['transform' => $transform]),
- ]);
-
- try {
- MediaWorkerJob::dispatch($mediaJob)->onQueue('media');
- return $mediaJob;
- } catch (\Exception $e) {
- $this->error('Failed to transform media');
- throw $e;
- }//end try
-
- return null;
- }
-
- /**
- * Get the server maximum upload size
- *
- * @return integer
- */
- public static function getMaxUploadSize(): int
- {
- $sizes = [
- ini_get('upload_max_filesize'),
- ini_get('post_max_size'),
- ini_get('memory_limit')
- ];
-
- foreach ($sizes as &$size) {
- $size = trim($size);
- $last = strtolower($size[(strlen($size) - 1)]);
- switch ($last) {
- case 'g':
- $size = (intval($size) * 1024);
- // Size is in MB - fallthrough
- case 'm':
- $size = (intval($size) * 1024);
- // Size is in KB - fallthrough
- case 'k':
- $size = (intval($size) * 1024);
- // Size is in B - fallthrough
- }
- }
-
- return min($sizes);
- }
-
- /**
- * Generate a file name that is available within storage.
- *
- * @param string $fileName The proposed file name.
- * @return string|boolean The available file name or false if failed.
- */
- public static function generateUniqueFileName(string $fileName)
- {
- $index = 1;
- $maxTries = 100;
- $extension = pathinfo($fileName, PATHINFO_EXTENSION);
- $fileName = static::sanitizeFilename(pathinfo($fileName, PATHINFO_FILENAME));
-
- if (
- static::fileNameHasSuffix($fileName) === true ||
- static::fileExistsInStorage("$fileName.$extension") === true //||
- // Media::where('name', "$fileName.$extension")->where('status', 'not like', 'failed%')->exists() === true
- ) {
- $fileName .= '-';
- for ($i = 1; $i < $maxTries; $i++) {
- $fileNameIndex = $fileName . $index;
- if (
- static::fileExistsInStorage("$fileNameIndex.$extension") !== true &&
- Media::where('name', "$fileNameIndex.$extension")
- // ->where('status', 'not like', 'Failed%')
- ->exists() !== true
- ) {
- return "$fileNameIndex.$extension";
- }
-
- ++$index;
- }
-
- return false;
- }
-
- return "$fileName.$extension";
- }
-
- /**
- * Determines if the file name exists in any of the storage disks.
- *
- * @param string $fileName The file name to check.
- * @param boolean $ignoreCache Ignore the file list cache.
- * @return boolean If the file exists on any storage disks.
- */
- public static function fileExistsInStorage(string $fileName, bool $ignoreCache = false): bool
- {
- $disks = array_keys(Config::get('filesystems.disks'));
-
- if ($ignoreCache === false) {
- if (count(static::$storageFileListCache) === 0) {
- $disks = array_keys(Config::get('filesystems.disks'));
-
- foreach ($disks as $disk) {
- try {
- static::$storageFileListCache[$disk] = Storage::disk($disk)->allFiles();
- } catch (\Exception $e) {
- Log::error("Cannot get a file list for storage device '$disk'. Error: " . $e->getMessage());
- continue;
- }
- }
- }
-
- foreach (static::$storageFileListCache as $disk => $files) {
- if (in_array($fileName, $files) === true) {
- return true;
- }
- }
- } else {
- $disks = array_keys(Config::get('filesystems.disks'));
-
- foreach ($disks as $disk) {
- try {
- if (Storage::disk($disk)->exists($fileName) === true) {
- return true;
- }
- } catch (\Exception $e) {
- Log::error($e->getMessage());
- throw new \Exception("Cannot verify if file '$fileName' already exists in storage device '$disk'");
- }
- }
- }//end if
-
- return false;
- }
-
- /**
- * Test if the file name contains a special suffix.
- *
- * @param string $fileName The file name to test.
- * @return boolean If the file name contains the special suffix.
- */
- public static function fileNameHasSuffix(string $fileName): bool
- {
- $suffix = '/(-\d+x\d+|-scaled|-thumb)$/i';
- $fileNameWithoutExtension = pathinfo($fileName, PATHINFO_FILENAME);
-
- return preg_match($suffix, $fileNameWithoutExtension) === 1;
- }
-
- /**
- * Sanitize fileName for upload
- *
- * @param string $fileName Filename to sanitize.
- * @return string
- */
- private static function sanitizeFilename(string $fileName): string
- {
- /*
- # file system reserved https://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words
- [<>:"/\\\|?*]|
-
- # control characters http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx
- [\x00-\x1F]|
-
- # non-printing characters DEL, NO-BREAK SPACE, SOFT HYPHEN
- [\x7F\xA0\xAD]|
-
- # URI reserved https://www.rfc-editor.org/rfc/rfc3986#section-2.2
- [#\[\]@!$&\'()+,;=]|
-
- # URL unsafe characters https://www.ietf.org/rfc/rfc1738.txt
- [{}^\~`]
- */
-
- $fileName = preg_replace(
- '~
- [<>:"/\\\|?*]|
- [\x00-\x1F]|
- [\x7F\xA0\xAD]|
- [#\[\]@!$&\'()+,;=]|
- [{}^\~`]
- ~x',
- '-',
- $fileName
- );
-
- $fileName = ltrim($fileName, '.-');
-
- $fileName = preg_replace([
- // "file name.zip" becomes "file-name.zip"
- '/ +/',
- // "file___name.zip" becomes "file-name.zip"
- '/_+/',
- // "file---name.zip" becomes "file-name.zip"
- '/-+/'
- ], '-', $fileName);
- $fileName = preg_replace([
- // "file--.--.-.--name.zip" becomes "file.name.zip"
- '/-*\.-*/',
- // "file...name..zip" becomes "file.name.zip"
- '/\.{2,}/'
- ], '.', $fileName);
- // lowercase for windows/unix interoperability http://support.microsoft.com/kb/100625
- $fileName = mb_strtolower($fileName, mb_detect_encoding($fileName));
- // ".file-name.-" becomes "file-name"
- $fileName = trim($fileName, '.-');
-
- $ext = pathinfo($fileName, PATHINFO_EXTENSION);
- $fileName = mb_strcut(
- pathinfo($fileName, PATHINFO_FILENAME),
- 0,
- (255 - ($ext !== '' ? strlen($ext) + 1 : 0)),
- mb_detect_encoding($fileName)
- ) . ($ext !== '' ? '.' . $ext : '');
- return $fileName;
- }
-
- /**
- * Get the Staging File path.
- *
- * @param boolean $create Create staging file if doesn't exist.
- * @return string
- */
- public function getStagingFilePath(bool $create = true): string
- {
- if ($this->stagingFilePath === "" && $create === true) {
- $this->createStagingFile();
- }
-
- return $this->stagingFilePath;
- }
-
- /**
- * Set the Staging File for processing.
- *
- * @param string $path The path if the new staging file.
- * @param boolean $overwrite Overwrite existing file.
- * @return void
- */
- public function setStagingFile(string $path, bool $overwrite = false): void
- {
- if ($this->stagingFilePath !== "") {
- if ($overwrite === true) {
- unlink($this->stagingFilePath);
- } else {
- // ignore request
- return;
- }
- }
-
- $this->stagingFilePath = $path;
- }
-
- /**
- * Download temporary copy of the storage file for staging.
- *
- * @return boolean If download was successful.
- */
- public function createStagingFile(): bool
- {
- if ($this->stagingFilePath === "") {
- $readStream = Storage::disk($this->storage)->readStream($this->name);
- $filePath = generateTempFilePath(pathinfo($this->name, PATHINFO_EXTENSION));
-
- $writeStream = fopen($filePath, 'w');
- while (feof($readStream) !== true) {
- fwrite($writeStream, fread($readStream, 8192));
- }
- fclose($readStream);
- fclose($writeStream);
-
- $this->stagingFilePath = $filePath;
- }//end if
-
- return $this->stagingFilePath !== "";
- }
-
- /**
- * Save the Staging File to storage
- *
- * @param boolean $delete Delete the existing staging file.
- * @param boolean $silent Update the status field with the progress.
- * @return void
- */
- public function saveStagingFile(bool $delete = true, bool $silent = false): void
- {
- if ($this->stagingFilePath !== '') {
- if (strlen($this->storage) > 0 && strlen($this->name) > 0) {
- if (Storage::disk($this->storage)->exists($this->name) === true) {
- Storage::disk($this->storage)->delete($this->name);
- }
-
- /** @var Illuminate\Filesystem\FilesystemAdapter */
- $fileSystem = Storage::disk($this->storage);
- $fileSystem->putFileAs('/', $this->stagingFilePath, $this->name);
- }
-
- $this->generateThumbnail();
- $this->generateVariants();
-
- if ($delete === true) {
- $this->deleteStagingFile();
- }
- }//end if
- }
-
- /**
- * Clean up temporary file.
- *
- * @return void
- */
- public function deleteStagingFile(): void
- {
- if ($this->stagingFilePath !== "") {
- unlink($this->stagingFilePath);
- $this->stagingFilePath = "";
- }
- }
-
- /**
- * Change staging file, removing the old file if present
- *
- * @param string $newFile The new staging file.
- * @return void
- */
- public function changeStagingFile(string $newFile): void
- {
- if ($this->stagingFilePath !== "") {
- unlink($this->stagingFilePath);
- }
-
- $this->stagingFilePath = $newFile;
- }
-
- /**
- * Is a staging file present
- *
- * @return boolean
- */
- public function hasStagingFile(): bool
- {
- return $this->stagingFilePath !== "";
- }
-
- /**
- * Generate a Thumbnail for this media.
- *
- * @return boolean If generation was successful.
- */
- public function generateThumbnail(): bool
- {
- $thumbnailWidth = 200;
- $thumbnailHeight = 200;
-
- // delete existing thumbnail
- if (strlen($this->thumbnail) !== 0) {
- $path = pathinfo($this->thumbnail, PATHINFO_BASENAME);
- if (strlen($path) > 0 && Storage::disk($this->storage)->exists($path) === true) {
- Storage::disk($this->storage)->delete($path);
- }
- }
-
- $filePath = $this->getStagingFilePath();
-
- $fileExtension = File::extension($this->name);
- $tempImagePath = tempnam(sys_get_temp_dir(), 'thumb');
- $newFilename = pathinfo($this->name, PATHINFO_FILENAME) . "-" . uniqid() . "-thumb.webp";
- $success = false;
-
- if ($this->security_type === '') {
- if (strpos($this->mime_type, 'image/') === 0) {
- $image = Image::make($filePath);
- $image->orientate();
- $image->resize($thumbnailWidth, $thumbnailHeight, function ($constraint) {
- $constraint->aspectRatio();
- });
- $image->fit($thumbnailWidth, $thumbnailHeight);
- $image->encode('webp', 75)->save($tempImagePath);
- $success = true;
- } elseif ($this->mime_type === 'application/pdf' && extension_loaded('imagick') === true) {
- $pdfPreview = new \Imagick();
- $pdfPreview->setResolution(300, 300);
- $pdfPreview->readImage($filePath . '[0]');
- $pdfPreview->setImageFormat('webp');
- $pdfPreview->thumbnailImage($thumbnailWidth, $thumbnailHeight, true);
- file_put_contents($tempImagePath, $pdfPreview);
-
- $success = true;
- } elseif ($this->mime_type === 'text/plain') {
- $image = Image::canvas($thumbnailWidth, $thumbnailHeight, '#FFFFFF');
-
- // Read the first few lines of the text file
- $numLines = 5;
- $text = file_get_contents($filePath);
- $lines = explode("\n", $text);
- $previewText = implode("\n", array_slice($lines, 0, $numLines));
-
- // Center the text on the image
- $fontSize = 8;
- $textColor = '#000000'; // Black text color
-
- // Calculate the position to start drawing the text
- $x = 10; // Left padding
- $y = 10; // Top padding
-
- // Draw the text on the canvas with text wrapping
- $lines = explode("\n", wordwrap($previewText, 30, "\n", true));
- foreach ($lines as $line) {
- $image->text($line, $x, $y, function ($font) use ($fontSize, $textColor) {
- $font->file(1);
- $font->size($fontSize);
- $font->color($textColor);
- });
-
- // Move to the next line
- $y += ($fontSize + 4); // Add some vertical spacing between lines (adjust as needed)
- }
-
- $image->encode('webp', 75)->save($tempImagePath);
-
- $success = true;
- } elseif (strpos($this->mime_type, 'video/') === 0) {
- $tempImagePath .= '.webp';
-
- try {
- $ffmpeg = FFMpeg::create();
- $video = $ffmpeg->open($filePath);
- $frame = $video->frame(TimeCode::fromSeconds(5));
- $frame->save($tempImagePath);
- } catch (\Exception $e) {
- Log::error($e);
- }
-
- $success = true;
- }//end if
- }//end if
-
- if ($success === true && file_exists($tempImagePath) === true) {
- /** @var Illuminate\Filesystem\FilesystemAdapter */
- $fileSystem = Storage::disk($this->storage);
- $fileSystem->putFileAs('/', new SplFileInfo($tempImagePath), $newFilename);
- unlink($tempImagePath);
-
- $this->thumbnail = $this->getUrlPath(['name' => $newFilename]);
- } else {
- $iconExtension = 'unknown';
- if ($fileExtension !== '') {
- $iconPath = public_path('assets/fileicons/' . $fileExtension . '.webp');
- if (file_exists($iconPath) === true) {
- $iconExtension = $fileExtension;
- }
- }
-
- $this->thumbnail = asset('/assets/fileicons/' . $iconExtension . '.webp');
- }
-
- return $success;
- }
-
- /**
- * Delete Media Thumbnail from storage.
- *
- * @return void
- */
- public function deleteThumbnail(): void
- {
- if (strlen($this->thumbnail) > 0) {
- $path = pathinfo($this->thumbnail, PATHINFO_BASENAME);
-
- if (strlen($path) > 0 && Storage::disk($this->storage)->exists($path) === true) {
- Storage::disk($this->storage)->delete($path);
- $this->thumbnail = ''; // Clear the thumbnail property
- }
- }
- }
-
- /**
- * Generate variants for this media.
- *
- * @return void
- */
- public function generateVariants(): void
- {
- // delete existing variants
- if (is_array($this->variants) === true) {
- foreach ($this->variants as $variantName => $variantFile) {
- if (Storage::disk($this->storage)->exists($variantFile) === true) {
- Storage::disk($this->storage)->delete($variantFile);
- }
- }
- }
- $this->variants = [];
-
- if ($this->security_type === '') {
- if (strpos($this->mime_type, 'image/') === 0) {
- // Generate additional image sizes
- $sizes = Media::getObjectVariants('image');
-
- // download original from CDN if no local file
- $filePath = $this->getStagingFilePath();
-
- $originalImage = Image::make($filePath);
-
- $imageSize = $originalImage->getSize();
- $isPortrait = $imageSize->getHeight() > $imageSize->getWidth();
-
- // Swap width and height values for portrait images
- foreach ($sizes as $variantName => &$size) {
- if ($isPortrait === true) {
- $temp = $size['width'];
- $size['width'] = $size['height'];
- $size['height'] = $temp;
- }
- }
-
- $dimensions = [$originalImage->getWidth(), $originalImage->getHeight()];
- $this->dimensions = implode('x', $dimensions);
-
- foreach ($sizes as $variantName => $size) {
- $postfix = "{$size['width']}x{$size['height']}";
- if ($variantName === 'scaled') {
- $postfix = 'scaled';
- }
-
- $newFilename = pathinfo($this->name, PATHINFO_FILENAME) . "-" . uniqid() . "-$postfix.webp";
-
- // Get the largest available variant
- if ($dimensions[0] >= $size['width'] && $dimensions[1] >= $size['height']) {
- // Store the variant in the variants array
- $variants[$variantName] = $newFilename;
-
- // Resize the image to the variant size if its dimensions are greater than the
- // specified size
- $image = clone $originalImage;
-
- $imageSize = $image->getSize();
- if ($imageSize->getWidth() > $size['width'] || $imageSize->getHeight() > $size['height']) {
- $image->resize($size['width'], $size['height'], function ($constraint) {
- $constraint->aspectRatio();
- $constraint->upsize();
- });
- $image->resizeCanvas($size['width'], $size['height'], 'center', false, 'rgba(0,0,0,0)');
- }
-
- $image->orientate();
-
- // Optimize and store image
- $tempImagePath = tempnam(sys_get_temp_dir(), 'optimize');
- $image->encode('webp', 75)->save($tempImagePath);
- /** @var Illuminate\Filesystem\FilesystemAdapter */
- $fileSystem = Storage::disk($this->storage);
- $fileSystem->putFileAs('/', new SplFileInfo($tempImagePath), $newFilename);
- unlink($tempImagePath);
- }//end if
- }//end foreach
-
- // Set missing variants to the largest available variant
- foreach ($sizes as $variantName => $size) {
- if (isset($variants[$variantName]) === false) {
- $variants[$variantName] = $this->name;
- }
- }
-
- $this->variants = $variants;
- }//end if
- }//end if
- }
-
- /**
- * Delete the Media variants from storage.
- *
- * @return void
- */
- public function deleteVariants(): void
- {
- if (strlen($this->name) > 0 && strlen($this->storage) > 0) {
- foreach ($this->variants as $variantName => $fileName) {
- Storage::disk($this->storage)->delete($fileName);
- }
-
- $this->variants = [];
- }
- }
-
- /**
- * Set Media status to OK
- *
- * @return void
- */
- public function ok(): void
- {
- // $this->status = "OK";
- $this->save();
- }
-
- /**
- * Set Media status to an error
- * @param string $error The error to set.
- * @return void
- */
- public function error(string $error = ""): void
- {
- // $this->status = "Error" . ($error !== "" ? ": {$error}" : "");
- $this->save();
- }
-
- /**
- * Set Media status
- * @param string $status The status to set.
- * @return void
- */
- public function status(string $status = ""): void
- {
- // $this->status = "Info: " . $status;
- $this->save();
- }
-
- /**
- * Get the associated job models
- *
- * @return HasMany
- */
- public function jobs(): HasMany
- {
- return $this->hasMany(MediaJob::class, 'media_id');
- }
-
- /**
- * Get the recommended storage ID based on mime and security
- *
- * @param string $mime_type The file mime type.
- * @param string $security_type The security requested.
- * @return string
- */
- public static function recommendedStorage(string $mime_type, string $security_type): string
- {
- if ($security_type === '') {
- if (strpos($mime_type, 'image/') === 0) {
- return('local');
- } else {
- return('cdn');
- }
- }
-
- return('private');
- }
-
- /**
- * Verify the storage exists. May change the storage value.
- *
- * @param mixed $mime_type File mime type.
- * @param mixed $security_type Requested security type.
- * @param mixed $storage Reference to the requested storage type.
- * @return integer Error code.
- */
- public static function verifyStorage(mixed $mime_type, mixed $security_type, mixed &$storage): int
- {
- if ($storage === '') {
- if ($security_type === '') {
- if (strpos($mime_type, 'image/') === 0) {
- $storage = 'local';
- } else {
- $storage = 'cdn';
- }
- } else {
- $storage = 'private';
- }
- } else {
- $disks = config('filesystems.disks');
- if (array_key_exists($storage, $disks) === false) {
- return Media::STORAGE_NOT_FOUND;
- }
-
- if ($security_type !== '' && strcasecmp($storage, 'private') !== 0) {
- return Media::STORAGE_INVALID_SECURITY;
- }
- }
-
- return Media::STORAGE_VALID;
- }
}
diff --git a/app/Models/Post.php b/app/Models/Post.php
new file mode 100644
index 0000000..089656b
--- /dev/null
+++ b/app/Models/Post.php
@@ -0,0 +1,11 @@
+
*/
protected $fillable = [
- 'first_name',
- 'last_name',
+ 'username',
'email',
- 'phone',
'password',
- 'display_name',
+ 'is_under_14',
];
/**
@@ -45,7 +34,6 @@ class User extends Authenticatable implements Auditable
protected $hidden = [
'password',
'remember_token',
- 'permissions'
];
/**
@@ -55,192 +43,17 @@ class User extends Authenticatable implements Auditable
*/
protected $casts = [
'email_verified_at' => 'datetime',
+ 'password' => 'hashed',
];
- // protected $hidden = [
- // 'permissions'
- // ];
-
- /**
- * The attributes to append.
- *
- * @var string[]
- */
- protected $appends = [
- 'permissions'
- ];
-
- /**
- * The default attributes.
- *
- * @var string[]
- */
- protected $attributes = [
- 'phone' => '',
- ];
-
-
- /**
- * Boot the model.
- *
- * @return void
- */
- protected static function boot(): void
- {
- parent::boot();
-
- $clearCache = function ($user) {
- Cache::forget(
- "user:{$user->id}",
- "user:{$user->id}:permissions"
- );
- };
-
- static::saving($clearCache);
- static::deleting($clearCache);
+ public function verificationCodes() {
+ return $this->hasMany(VerificationCode::class);
}
- /**
- * Get the list of permissions of the user
- *
- * @return Illuminate\Database\Eloquent\Relations\HasMany
- */
- public function permissions(): HasMany
+ public function formattedEmailVerifiedAt()
{
- return $this->hasMany(Permission::class);
- }
-
- /**
- * Get the permission attribute
- *
- * @return array
- */
- public function getPermissionsAttribute(): array
- {
- $cacheKey = "user:{$this->id}:permissions";
- return Cache::remember($cacheKey, now()->addDays(28), function () {
- return $this->permissions()->pluck('permission')->toArray();
- });
- }
-
- /**
- * Set the permission attribute
- *
- * @param array $newPermissions The new permissions to set to the user.
- * @return void
- */
- public function setPermissionsAttribute(array $newPermissions): void
- {
- $existingPermissions = $this->permissions->pluck('permission')->toArray();
-
- $this->revokePermission(array_diff($this->permissions, $newPermissions));
- $this->givePermission(array_diff($newPermissions, $this->permissions));
-
- $cacheKey = "user:{$this->id}:permissions";
- Cache::delete($cacheKey);
- }
-
- /**
- * Test if user has permission
- *
- * @param string $permission Permission to test.
- * @return boolean
- */
- public function hasPermission(string $permission): bool
- {
- return in_array($permission, $this->permissions);
- }
-
- /**
- * Give permissions to the user
- *
- * @param string|array $permissions The permission(s) to give.
- * @return Illuminate\Database\Eloquent\Collection
- */
- public function givePermission($permissions): Collection
- {
- if (is_array($permissions) === false) {
- $permissions = [$permissions];
- }
-
- $newPermissions = array_map(function ($permission) {
- return ['permission' => $permission];
- }, array_diff($permissions, $this->permissions));
-
- $cacheKey = "user:{$this->id}:permissions";
- Cache::forget($cacheKey);
-
- return $this->permissions()->createMany($newPermissions);
- }
-
-
- /**
- * Revoke permissions from the user
- *
- * @param string|array $permissions The permission(s) to revoke.
- * @return integer
- */
- public function revokePermission($permissions): int
- {
- if (is_array($permissions) === false) {
- $permissions = [$permissions];
- }
-
- $cacheKey = "user:{$this->id}:permissions";
- Cache::forget($cacheKey);
-
- return $this->permissions()
- ->whereIn('permission', $permissions)
- ->delete();
- }
-
- /**
- * Get the list of files of the user
- *
- * @return HasMany
- */
- public function media(): HasMany
- {
- return $this->hasMany(Media::class);
- }
-
- /**
- * Get the list of files of the user
- *
- * @return HasMany
- */
- public function articles(): HasMany
- {
- return $this->hasMany(Article::class);
- }
-
- /**
- * Get associated user codes
- *
- * @return HasMany
- */
- public function codes(): HasMany
- {
- return $this->hasMany(UserCode::class);
- }
-
- /**
- * Get the list of logins of the user
- *
- * @return HasMany
- */
- public function logins(): HasMany
- {
- return $this->hasMany(UserLogins::class);
- }
-
- /**
- * Get the events associated with the user.
- *
- * @return BelongsToMany
- */
- public function events(): BelongsToMany
- {
- return $this->belongsToMany(Event::class, 'event_user', 'user_id', 'event_id');
+ return $this->email_verified_at
+ ? 'Not verified'
+ : Carbon::parse($this->email_verified_at)->format('j/m/Y');
}
}
diff --git a/app/Models/VerificationCode.php b/app/Models/VerificationCode.php
new file mode 100644
index 0000000..74c0840
--- /dev/null
+++ b/app/Models/VerificationCode.php
@@ -0,0 +1,68 @@
+
+ */
+ protected $fillable = [
+ 'type',
+ ];
+
+ /**
+ * Boot function from Laravel.
+ *
+ * @return void
+ */
+ protected static function boot(): void
+ {
+ parent::boot();
+ static::creating(function ($model) {
+ VerificationCode::clearExpired();
+
+ if(empty($model->{'user_id'}) === false && empty($model->{'user_id'}) === false) {
+ VerificationCode::where('user_id', $model->{'user_id'})->where('type', $model->{'type'})->delete();
+ }
+
+ if (empty($model->{'code'}) === true) {
+ while (true) {
+ $code = random_int(100000, 999999);
+ if (VerificationCode::where('code', $code)->count() === 0) {
+ $model->{'code'} = $code;
+ break;
+ }
+ }
+ }
+ });
+ }
+
+ /**
+ * Clear expired user codes
+ *
+ * @return void
+ */
+ public static function clearExpired(): void
+ {
+ VerificationCode::where('updated_at', '<=', now()->subDays(5))->delete();
+ }
+
+ /**
+ * Get associated user
+ *
+ * @return Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function user(): BelongsTo
+ {
+ return $this->belongsTo(User::class);
+ }
+}
diff --git a/app/Models/Workshop.php b/app/Models/Workshop.php
new file mode 100644
index 0000000..b444861
--- /dev/null
+++ b/app/Models/Workshop.php
@@ -0,0 +1,33 @@
+
+ */
+ protected $fillable = [
+ 'type',
+ ];
+
+ public function scopeFilter($query, array $filters) {
+ if($filters['tag'] ?? false) {
+ $query->where('tags', 'like', '%' . request('tag') . '%');
+ }
+
+ if($filters['search'] ?? false) {
+ $query->where('title', 'like', '%' . request('search') . '%')
+ ->orWhere('description', 'like', '%' . request('search') . '%')
+ ->orWhere('tags', 'like', '%' . request('search') . '%');
+ }
+ }
+
+}
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index 30a0c2d..452e6b6 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -2,16 +2,12 @@
namespace App\Providers;
-use Illuminate\Http\Request;
use Illuminate\Support\ServiceProvider;
-use Illuminate\Support\Facades\Storage;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
- *
- * @return void
*/
public function register(): void
{
@@ -20,34 +16,9 @@ class AppServiceProvider extends ServiceProvider
/**
* Bootstrap any application services.
- *
- * @return void
*/
public function boot(): void
{
- Request::macro('rename', function ($param, $newParam = null) {
- if (is_array($param) === false) {
- if ($newParam === null) {
- return;
- }
-
- $param = [$param => $newParam];
- }
-
- $paramArray = $this->all();
- foreach ($param as $oldParam => $newParam) {
- if (isset($paramArray[$oldParam]) === true) {
- $paramArray[$newParam] = $paramArray[$oldParam];
- unset($paramArray[$oldParam]);
- }
- }
-
- $this->replace($paramArray);
- });
-
- Storage::macro('public', function ($diskName) {
- $public = config("filesystems.disks.{$diskName}.public", false);
- return $public;
- });
+ //
}
}
diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php
index 1f84312..54756cd 100644
--- a/app/Providers/AuthServiceProvider.php
+++ b/app/Providers/AuthServiceProvider.php
@@ -13,14 +13,11 @@ class AuthServiceProvider extends ServiceProvider
* @var array
*/
protected $policies = [
- // 'App\Models\Model' => 'App\Policies\ModelPolicy',
+ //
];
-
/**
* Register any authentication / authorization services.
- *
- * @return void
*/
public function boot(): void
{
diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php
index 229284c..2be04f5 100644
--- a/app/Providers/BroadcastServiceProvider.php
+++ b/app/Providers/BroadcastServiceProvider.php
@@ -9,8 +9,6 @@ class BroadcastServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
- *
- * @return void
*/
public function boot(): void
{
diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php
index 95217e4..2d65aac 100644
--- a/app/Providers/EventServiceProvider.php
+++ b/app/Providers/EventServiceProvider.php
@@ -5,10 +5,7 @@ namespace App\Providers;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
-use Illuminate\Queue\Events\JobProcessed;
-use Illuminate\Support\Facades\Queue;
use Illuminate\Support\Facades\Event;
-use Illuminate\Support\Facades\Log;
class EventServiceProvider extends ServiceProvider
{
@@ -23,11 +20,8 @@ class EventServiceProvider extends ServiceProvider
],
];
-
/**
* Register any events for your application.
- *
- * @return void
*/
public function boot(): void
{
@@ -36,8 +30,6 @@ class EventServiceProvider extends ServiceProvider
/**
* Determine if events and listeners should be automatically discovered.
- *
- * @return boolean
*/
public function shouldDiscoverEvents(): bool
{
diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php
index 7113be9..1cf5f15 100644
--- a/app/Providers/RouteServiceProvider.php
+++ b/app/Providers/RouteServiceProvider.php
@@ -7,12 +7,11 @@ use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvi
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\Facades\Route;
-use Illuminate\Support\Str;
class RouteServiceProvider extends ServiceProvider
{
/**
- * The path to the "home" route for your application.
+ * The path to your application's "home" route.
*
* Typically, users are redirected here after authentication.
*
@@ -20,38 +19,14 @@ class RouteServiceProvider extends ServiceProvider
*/
public const HOME = '/home';
-
/**
* Define your route model bindings, pattern filters, and other route configuration.
- *
- * @return void
*/
public function boot(): void
{
- // RateLimiter::for('api', function (Request $request) {
- // return Limit::perMinute(60)->by($request->user()?->id !== null ?: $request->ip());
- // });
-
- $rateLimitEnabled = true;
- /** @var \App\Models\User */
- $user = auth()->user();
-
- if (app()->environment('testing') === true) {
- $rateLimitEnabled = false;
- } elseif ($user !== null && $user->hasPermission('admin/ratelimit') === true) {
- // Admin users with the "admin/ratelimit" permission are not rate limited
- $rateLimitEnabled = false;
- }
-
- if ($rateLimitEnabled === true) {
- RateLimiter::for('api', function (Request $request) {
- return Limit::perMinute(800)->by(isset($request->user()->id) === true ?: $request->ip());
- });
- } else {
- RateLimiter::for('api', function () {
- return Limit::none();
- });
- }
+ RateLimiter::for('api', function (Request $request) {
+ return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
+ });
$this->routes(function () {
Route::middleware('api')
@@ -61,30 +36,5 @@ class RouteServiceProvider extends ServiceProvider
Route::middleware('web')
->group(base_path('routes/web.php'));
});
-
- Route::macro('apiAddendumResource', function ($addendum, $uri, $controller) {
- $singularUri = Str::singular($uri);
- $signularAddendum = Str::singular((strtolower($addendum)));
- $pluralAddendum = Str::plural($signularAddendum);
-
- Route::get("{$uri}/{{$singularUri}}/{$pluralAddendum}", [$controller, "{$signularAddendum}Index"])
- ->name("{$singularUri}.{$signularAddendum}.index");
-
- Route::post("{$uri}/{{$singularUri}}/{$pluralAddendum}", [$controller, "{$signularAddendum}Store"])
- ->name("{$singularUri}.{$signularAddendum}.store");
-
- Route::match(
- ['put', 'patch'],
- "{$uri}/{{$singularUri}}/{$pluralAddendum}",
- [$controller, "{$signularAddendum}Update"]
- )
- ->name("{$singularUri}.{$signularAddendum}.update");
-
- Route::delete(
- "{$uri}/{{$singularUri}}/{$pluralAddendum}/{medium}",
- [$controller,"{$signularAddendum}Delete"]
- )
- ->name("{$singularUri}.{$signularAddendum}.destroy");
- });
}
}
diff --git a/composer.json b/composer.json
index d5fb7ba..8643a5c 100644
--- a/composer.json
+++ b/composer.json
@@ -1,56 +1,37 @@
{
"name": "laravel/laravel",
"type": "project",
- "description": "The Laravel Framework.",
- "keywords": [
- "framework",
- "laravel"
- ],
+ "description": "The skeleton application for the Laravel framework.",
+ "keywords": ["laravel", "framework"],
"license": "MIT",
"require": {
"php": "^8.1",
- "doctrine/dbal": "^3.5",
+ "bayareawebpro/laravel-multistep-forms": "^1.1",
"guzzlehttp/guzzle": "^7.2",
- "intervention/image": "^2.7",
- "laravel/framework": "^10.12",
- "laravel/sanctum": "^3.2",
+ "laravel/framework": "^10.10",
+ "laravel/sanctum": "^3.3",
"laravel/tinker": "^2.8",
- "league/flysystem-aws-s3-v3": "^3.12",
- "owen-it/laravel-auditing": "^13.1",
- "php-ffmpeg/php-ffmpeg": "^1.1",
- "square/square": "32.0.0.20231018",
- "sunspikes/clamav-validator": "*",
- "thiagoalessio/tesseract_ocr": "^2.12",
- "vlucas/phpdotenv": "^5.5"
+ "spatie/laravel-permission": "^6.1"
},
"require-dev": {
- "barryvdh/laravel-ide-helper": "^2.13",
"fakerphp/faker": "^1.9.1",
- "itsgoingd/clockwork": "^5.1",
"laravel/pint": "^1.0",
"laravel/sail": "^1.18",
"mockery/mockery": "^1.4.4",
- "nunomaduro/collision": "^7.1",
- "phpunit/phpunit": "^10.1.3",
+ "nunomaduro/collision": "^7.0",
+ "phpunit/phpunit": "^10.1",
"spatie/laravel-ignition": "^2.0"
},
"autoload": {
- "files": [
- "app/Helpers/Array.php",
- "app/Helpers/Temp.php",
- "app/Helpers/TypeValue.php"
- ],
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
- "Database\\Seeders\\": "database/seeders/",
- "Faker\\Provider\\": "faker/provider/"
+ "Database\\Seeders\\": "database/seeders/"
}
},
"autoload-dev": {
"psr-4": {
- "Tests\\": "tests/",
- "Faker\\Provider\\": "faker/provider/"
+ "Tests\\": "tests/"
}
},
"scripts": {
@@ -78,7 +59,8 @@
"preferred-install": "dist",
"sort-packages": true,
"allow-plugins": {
- "pestphp/pest-plugin": true
+ "pestphp/pest-plugin": true,
+ "php-http/discovery": true
}
},
"minimum-stability": "stable",
diff --git a/composer.lock b/composer.lock
index 6215538..5366a24 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,187 +4,39 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "bc423f0daa8803140c88ff8b5bf51259",
+ "content-hash": "0d62fc64fcf6155f2354d1a8f0413990",
"packages": [
{
- "name": "apimatic/core",
- "version": "0.3.2",
+ "name": "bayareawebpro/laravel-multistep-forms",
+ "version": "v1.1.2",
"source": {
"type": "git",
- "url": "https://github.com/apimatic/core-lib-php.git",
- "reference": "32238fb83ce9a3ebef38c726b497c0f218d6e6c9"
+ "url": "https://github.com/bayareawebpro/laravel-multistep-forms.git",
+ "reference": "f2c29c0e640d90a181b00d095b4cf0564ca515c7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/apimatic/core-lib-php/zipball/32238fb83ce9a3ebef38c726b497c0f218d6e6c9",
- "reference": "32238fb83ce9a3ebef38c726b497c0f218d6e6c9",
+ "url": "https://api.github.com/repos/bayareawebpro/laravel-multistep-forms/zipball/f2c29c0e640d90a181b00d095b4cf0564ca515c7",
+ "reference": "f2c29c0e640d90a181b00d095b4cf0564ca515c7",
"shasum": ""
},
"require": {
- "apimatic/core-interfaces": "~0.1.0",
- "apimatic/jsonmapper": "^3.1.1",
- "ext-curl": "*",
- "ext-dom": "*",
- "ext-json": "*",
- "ext-libxml": "*",
- "php": "^7.2 || ^8.0",
- "php-jsonpointer/php-jsonpointer": "^3.0.2"
+ "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0",
+ "illuminate/http": "^6.0|^7.0|^8.0|^9.0|^10.0",
+ "illuminate/session": "^6.0|^7.0|^8.0|^9.0|^10.0",
+ "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0",
+ "illuminate/validation": "^6.0|^7.0|^8.0|^9.0|^10.0",
+ "php": "^7.4|^8.0"
},
"require-dev": {
- "phan/phan": "5.4.2",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "squizlabs/php_codesniffer": "^3.5"
+ "nunomaduro/larastan": "^0.6|^1.0|^2.0",
+ "orchestra/testbench": "^5.0|^6.0|^7.0|^8.0",
+ "phpunit/phpunit": "^8.0|^9.0|^10.0"
},
"type": "library",
"autoload": {
"psr-4": {
- "Core\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Core logic and the utilities for the Apimatic's PHP SDK",
- "homepage": "https://github.com/apimatic/core-lib-php",
- "keywords": [
- "apimatic",
- "core",
- "corelib",
- "php"
- ],
- "support": {
- "issues": "https://github.com/apimatic/core-lib-php/issues",
- "source": "https://github.com/apimatic/core-lib-php/tree/0.3.2"
- },
- "time": "2023-07-11T09:30:32+00:00"
- },
- {
- "name": "apimatic/core-interfaces",
- "version": "0.1.2",
- "source": {
- "type": "git",
- "url": "https://github.com/apimatic/core-interfaces-php.git",
- "reference": "183214195a79784c382a446795c46ca8c1f43cc1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/apimatic/core-interfaces-php/zipball/183214195a79784c382a446795c46ca8c1f43cc1",
- "reference": "183214195a79784c382a446795c46ca8c1f43cc1",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "CoreInterfaces\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Definition of the behavior of apimatic/core, apimatic/unirest-php and Apimatic's PHP SDK",
- "homepage": "https://github.com/apimatic/core-interfaces-php",
- "keywords": [
- "apimatic",
- "core",
- "corelib",
- "interface",
- "php",
- "unirest"
- ],
- "support": {
- "issues": "https://github.com/apimatic/core-interfaces-php/issues",
- "source": "https://github.com/apimatic/core-interfaces-php/tree/0.1.2"
- },
- "time": "2023-04-04T06:40:52+00:00"
- },
- {
- "name": "apimatic/jsonmapper",
- "version": "3.1.2",
- "source": {
- "type": "git",
- "url": "https://github.com/apimatic/jsonmapper.git",
- "reference": "6673a946c21f2ceeec0cb60d17541c11a22bc79d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/apimatic/jsonmapper/zipball/6673a946c21f2ceeec0cb60d17541c11a22bc79d",
- "reference": "6673a946c21f2ceeec0cb60d17541c11a22bc79d",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "php": "^5.6 || ^7.0 || ^8.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0",
- "squizlabs/php_codesniffer": "^3.0.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "apimatic\\jsonmapper\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "OSL-3.0"
- ],
- "authors": [
- {
- "name": "Christian Weiske",
- "email": "christian.weiske@netresearch.de",
- "homepage": "http://www.netresearch.de/",
- "role": "Developer"
- },
- {
- "name": "Mehdi Jaffery",
- "email": "mehdi.jaffery@apimatic.io",
- "homepage": "http://apimatic.io/",
- "role": "Developer"
- }
- ],
- "description": "Map nested JSON structures onto PHP classes",
- "support": {
- "email": "mehdi.jaffery@apimatic.io",
- "issues": "https://github.com/apimatic/jsonmapper/issues",
- "source": "https://github.com/apimatic/jsonmapper/tree/3.1.2"
- },
- "time": "2023-06-08T04:27:10+00:00"
- },
- {
- "name": "apimatic/unirest-php",
- "version": "4.0.5",
- "source": {
- "type": "git",
- "url": "https://github.com/apimatic/unirest-php.git",
- "reference": "e16754010c16be5473289470f129d87a0f41b55e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/apimatic/unirest-php/zipball/e16754010c16be5473289470f129d87a0f41b55e",
- "reference": "e16754010c16be5473289470f129d87a0f41b55e",
- "shasum": ""
- },
- "require": {
- "apimatic/core-interfaces": "^0.1.0",
- "ext-curl": "*",
- "ext-json": "*",
- "php": "^7.2 || ^8.0"
- },
- "require-dev": {
- "phan/phan": "5.4.2",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "squizlabs/php_codesniffer": "^3.5"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Unirest\\": "src/"
+ "BayAreaWebPro\\MultiStepForms\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -193,182 +45,16 @@
],
"authors": [
{
- "name": "Mashape",
- "email": "opensource@mashape.com",
- "homepage": "https://www.mashape.com",
- "role": "Developer"
- },
- {
- "name": "APIMATIC",
- "email": "opensource@apimatic.io",
- "homepage": "https://www.apimatic.io",
- "role": "Developer"
+ "name": "Daniel Alvidrez",
+ "email": "dan@bayareawebpro.com"
}
],
- "description": "Unirest PHP",
- "homepage": "https://github.com/apimatic/unirest-php",
- "keywords": [
- "client",
- "curl",
- "http",
- "https",
- "rest"
- ],
+ "description": "Responsable MultiStep Form Builder for Laravel.",
"support": {
- "email": "opensource@apimatic.io",
- "issues": "https://github.com/apimatic/unirest-php/issues",
- "source": "https://github.com/apimatic/unirest-php/tree/4.0.5"
+ "issues": "https://github.com/bayareawebpro/laravel-multistep-forms/issues",
+ "source": "https://github.com/bayareawebpro/laravel-multistep-forms/tree/v1.1.2"
},
- "time": "2023-04-25T14:19:45+00:00"
- },
- {
- "name": "aws/aws-crt-php",
- "version": "v1.2.2",
- "source": {
- "type": "git",
- "url": "https://github.com/awslabs/aws-crt-php.git",
- "reference": "2f1dc7b7eda080498be96a4a6d683a41583030e9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/2f1dc7b7eda080498be96a4a6d683a41583030e9",
- "reference": "2f1dc7b7eda080498be96a4a6d683a41583030e9",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.35||^5.6.3||^9.5",
- "yoast/phpunit-polyfills": "^1.0"
- },
- "suggest": {
- "ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality."
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "AWS SDK Common Runtime Team",
- "email": "aws-sdk-common-runtime@amazon.com"
- }
- ],
- "description": "AWS Common Runtime for PHP",
- "homepage": "https://github.com/awslabs/aws-crt-php",
- "keywords": [
- "amazon",
- "aws",
- "crt",
- "sdk"
- ],
- "support": {
- "issues": "https://github.com/awslabs/aws-crt-php/issues",
- "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.2"
- },
- "time": "2023-07-20T16:49:55+00:00"
- },
- {
- "name": "aws/aws-sdk-php",
- "version": "3.283.8",
- "source": {
- "type": "git",
- "url": "https://github.com/aws/aws-sdk-php.git",
- "reference": "0f73ec85852312a6e971cfe2eebfd7c8091cca34"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/0f73ec85852312a6e971cfe2eebfd7c8091cca34",
- "reference": "0f73ec85852312a6e971cfe2eebfd7c8091cca34",
- "shasum": ""
- },
- "require": {
- "aws/aws-crt-php": "^1.0.4",
- "ext-json": "*",
- "ext-pcre": "*",
- "ext-simplexml": "*",
- "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5",
- "guzzlehttp/promises": "^1.4.0 || ^2.0",
- "guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
- "mtdowling/jmespath.php": "^2.6",
- "php": ">=7.2.5",
- "psr/http-message": "^1.0 || ^2.0"
- },
- "require-dev": {
- "andrewsville/php-token-reflection": "^1.4",
- "aws/aws-php-sns-message-validator": "~1.0",
- "behat/behat": "~3.0",
- "composer/composer": "^1.10.22",
- "dms/phpunit-arraysubset-asserts": "^0.4.0",
- "doctrine/cache": "~1.4",
- "ext-dom": "*",
- "ext-openssl": "*",
- "ext-pcntl": "*",
- "ext-sockets": "*",
- "nette/neon": "^2.3",
- "paragonie/random_compat": ">= 2",
- "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5",
- "psr/cache": "^1.0",
- "psr/simple-cache": "^1.0",
- "sebastian/comparator": "^1.2.3 || ^4.0",
- "yoast/phpunit-polyfills": "^1.0"
- },
- "suggest": {
- "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
- "doctrine/cache": "To use the DoctrineCacheAdapter",
- "ext-curl": "To send requests using cURL",
- "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages",
- "ext-sockets": "To use client-side monitoring"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0-dev"
- }
- },
- "autoload": {
- "files": [
- "src/functions.php"
- ],
- "psr-4": {
- "Aws\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "Amazon Web Services",
- "homepage": "http://aws.amazon.com"
- }
- ],
- "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project",
- "homepage": "http://aws.amazon.com/sdkforphp",
- "keywords": [
- "amazon",
- "aws",
- "cloud",
- "dynamodb",
- "ec2",
- "glacier",
- "s3",
- "sdk"
- ],
- "support": {
- "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
- "issues": "https://github.com/aws/aws-sdk-php/issues",
- "source": "https://github.com/aws/aws-sdk-php/tree/3.283.8"
- },
- "time": "2023-10-19T19:26:52+00:00"
+ "time": "2023-03-27T23:05:28+00:00"
},
{
"name": "brick/math",
@@ -425,75 +111,6 @@
],
"time": "2023-01-15T23:15:59+00:00"
},
- {
- "name": "clue/socket-raw",
- "version": "v1.6.0",
- "source": {
- "type": "git",
- "url": "https://github.com/clue/socket-raw.git",
- "reference": "91e9f619f6769f931454a9882c21ffd7623d06cb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/clue/socket-raw/zipball/91e9f619f6769f931454a9882c21ffd7623d06cb",
- "reference": "91e9f619f6769f931454a9882c21ffd7623d06cb",
- "shasum": ""
- },
- "require": {
- "ext-sockets": "*",
- "php": ">=5.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Socket\\Raw\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Christian Lück",
- "email": "christian@clue.engineering"
- }
- ],
- "description": "Simple and lightweight OOP wrapper for PHP's low-level sockets extension (ext-sockets).",
- "homepage": "https://github.com/clue/socket-raw",
- "keywords": [
- "Socket",
- "client",
- "datagram",
- "dgram",
- "icmp",
- "ipv6",
- "server",
- "stream",
- "tcp",
- "udg",
- "udp",
- "unix"
- ],
- "support": {
- "issues": "https://github.com/clue/socket-raw/issues",
- "source": "https://github.com/clue/socket-raw/tree/v1.6.0"
- },
- "funding": [
- {
- "url": "https://clue.engineering/support",
- "type": "custom"
- },
- {
- "url": "https://github.com/clue",
- "type": "github"
- }
- ],
- "time": "2022-04-14T14:58:06+00:00"
- },
{
"name": "dflydev/dot-access-data",
"version": "v3.0.2",
@@ -569,350 +186,6 @@
},
"time": "2022-10-27T11:44:00+00:00"
},
- {
- "name": "doctrine/cache",
- "version": "2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/cache.git",
- "reference": "1ca8f21980e770095a31456042471a57bc4c68fb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb",
- "reference": "1ca8f21980e770095a31456042471a57bc4c68fb",
- "shasum": ""
- },
- "require": {
- "php": "~7.1 || ^8.0"
- },
- "conflict": {
- "doctrine/common": ">2.2,<2.4"
- },
- "require-dev": {
- "cache/integration-tests": "dev-master",
- "doctrine/coding-standard": "^9",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "psr/cache": "^1.0 || ^2.0 || ^3.0",
- "symfony/cache": "^4.4 || ^5.4 || ^6",
- "symfony/var-exporter": "^4.4 || ^5.4 || ^6"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
- "homepage": "https://www.doctrine-project.org/projects/cache.html",
- "keywords": [
- "abstraction",
- "apcu",
- "cache",
- "caching",
- "couchdb",
- "memcached",
- "php",
- "redis",
- "xcache"
- ],
- "support": {
- "issues": "https://github.com/doctrine/cache/issues",
- "source": "https://github.com/doctrine/cache/tree/2.2.0"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache",
- "type": "tidelift"
- }
- ],
- "time": "2022-05-20T20:07:39+00:00"
- },
- {
- "name": "doctrine/dbal",
- "version": "3.7.1",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/dbal.git",
- "reference": "5b7bd66c9ff58c04c5474ab85edce442f8081cb2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/5b7bd66c9ff58c04c5474ab85edce442f8081cb2",
- "reference": "5b7bd66c9ff58c04c5474ab85edce442f8081cb2",
- "shasum": ""
- },
- "require": {
- "composer-runtime-api": "^2",
- "doctrine/cache": "^1.11|^2.0",
- "doctrine/deprecations": "^0.5.3|^1",
- "doctrine/event-manager": "^1|^2",
- "php": "^7.4 || ^8.0",
- "psr/cache": "^1|^2|^3",
- "psr/log": "^1|^2|^3"
- },
- "require-dev": {
- "doctrine/coding-standard": "12.0.0",
- "fig/log-test": "^1",
- "jetbrains/phpstorm-stubs": "2023.1",
- "phpstan/phpstan": "1.10.35",
- "phpstan/phpstan-strict-rules": "^1.5",
- "phpunit/phpunit": "9.6.13",
- "psalm/plugin-phpunit": "0.18.4",
- "slevomat/coding-standard": "8.13.1",
- "squizlabs/php_codesniffer": "3.7.2",
- "symfony/cache": "^5.4|^6.0",
- "symfony/console": "^4.4|^5.4|^6.0",
- "vimeo/psalm": "4.30.0"
- },
- "suggest": {
- "symfony/console": "For helpful console commands such as SQL execution and import of files."
- },
- "bin": [
- "bin/doctrine-dbal"
- ],
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\DBAL\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- }
- ],
- "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
- "homepage": "https://www.doctrine-project.org/projects/dbal.html",
- "keywords": [
- "abstraction",
- "database",
- "db2",
- "dbal",
- "mariadb",
- "mssql",
- "mysql",
- "oci8",
- "oracle",
- "pdo",
- "pgsql",
- "postgresql",
- "queryobject",
- "sasql",
- "sql",
- "sqlite",
- "sqlserver",
- "sqlsrv"
- ],
- "support": {
- "issues": "https://github.com/doctrine/dbal/issues",
- "source": "https://github.com/doctrine/dbal/tree/3.7.1"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal",
- "type": "tidelift"
- }
- ],
- "time": "2023-10-06T05:06:20+00:00"
- },
- {
- "name": "doctrine/deprecations",
- "version": "1.1.2",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/deprecations.git",
- "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
- "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
- "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",
- "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"
- },
- "suggest": {
- "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
- "homepage": "https://www.doctrine-project.org/",
- "support": {
- "issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/1.1.2"
- },
- "time": "2023-09-27T20:04:15+00:00"
- },
- {
- "name": "doctrine/event-manager",
- "version": "2.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/event-manager.git",
- "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32",
- "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32",
- "shasum": ""
- },
- "require": {
- "php": "^8.1"
- },
- "conflict": {
- "doctrine/common": "<2.9"
- },
- "require-dev": {
- "doctrine/coding-standard": "^10",
- "phpstan/phpstan": "^1.8.8",
- "phpunit/phpunit": "^9.5",
- "vimeo/psalm": "^4.28"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- },
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com"
- }
- ],
- "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
- "homepage": "https://www.doctrine-project.org/projects/event-manager.html",
- "keywords": [
- "event",
- "event dispatcher",
- "event manager",
- "event system",
- "events"
- ],
- "support": {
- "issues": "https://github.com/doctrine/event-manager/issues",
- "source": "https://github.com/doctrine/event-manager/tree/2.0.0"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager",
- "type": "tidelift"
- }
- ],
- "time": "2022-10-12T20:59:15+00:00"
- },
{
"name": "doctrine/inflector",
"version": "2.0.8",
@@ -1209,53 +482,6 @@
],
"time": "2023-10-06T06:47:41+00:00"
},
- {
- "name": "evenement/evenement",
- "version": "v3.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/igorw/evenement.git",
- "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc",
- "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^9 || ^6"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Evenement\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Igor Wiedler",
- "email": "igor@wiedler.ch"
- }
- ],
- "description": "Événement is a very simple event dispatching library for PHP",
- "keywords": [
- "event-dispatcher",
- "event-emitter"
- ],
- "support": {
- "issues": "https://github.com/igorw/evenement/issues",
- "source": "https://github.com/igorw/evenement/tree/v3.0.2"
- },
- "time": "2023-08-08T05:53:35+00:00"
- },
{
"name": "fruitcake/php-cors",
"version": "v1.3.0",
@@ -1329,24 +555,24 @@
},
{
"name": "graham-campbell/result-type",
- "version": "v1.1.1",
+ "version": "v1.1.2",
"source": {
"type": "git",
"url": "https://github.com/GrahamCampbell/Result-Type.git",
- "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831"
+ "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831",
- "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831",
+ "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862",
+ "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0",
- "phpoption/phpoption": "^1.9.1"
+ "phpoption/phpoption": "^1.9.2"
},
"require-dev": {
- "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12"
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
},
"type": "library",
"autoload": {
@@ -1375,7 +601,7 @@
],
"support": {
"issues": "https://github.com/GrahamCampbell/Result-Type/issues",
- "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.1"
+ "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2"
},
"funding": [
{
@@ -1387,7 +613,7 @@
"type": "tidelift"
}
],
- "time": "2023-02-25T20:23:15+00:00"
+ "time": "2023-11-12T22:16:48+00:00"
},
{
"name": "guzzlehttp/guzzle",
@@ -1794,102 +1020,18 @@
],
"time": "2023-08-27T10:19:19+00:00"
},
- {
- "name": "intervention/image",
- "version": "2.7.2",
- "source": {
- "type": "git",
- "url": "https://github.com/Intervention/image.git",
- "reference": "04be355f8d6734c826045d02a1079ad658322dad"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad",
- "reference": "04be355f8d6734c826045d02a1079ad658322dad",
- "shasum": ""
- },
- "require": {
- "ext-fileinfo": "*",
- "guzzlehttp/psr7": "~1.1 || ^2.0",
- "php": ">=5.4.0"
- },
- "require-dev": {
- "mockery/mockery": "~0.9.2",
- "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15"
- },
- "suggest": {
- "ext-gd": "to use GD library based image processing.",
- "ext-imagick": "to use Imagick based image processing.",
- "intervention/imagecache": "Caching extension for the Intervention Image library"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.4-dev"
- },
- "laravel": {
- "providers": [
- "Intervention\\Image\\ImageServiceProvider"
- ],
- "aliases": {
- "Image": "Intervention\\Image\\Facades\\Image"
- }
- }
- },
- "autoload": {
- "psr-4": {
- "Intervention\\Image\\": "src/Intervention/Image"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Oliver Vogel",
- "email": "oliver@intervention.io",
- "homepage": "https://intervention.io/"
- }
- ],
- "description": "Image handling and manipulation library with support for Laravel integration",
- "homepage": "http://image.intervention.io/",
- "keywords": [
- "gd",
- "image",
- "imagick",
- "laravel",
- "thumbnail",
- "watermark"
- ],
- "support": {
- "issues": "https://github.com/Intervention/image/issues",
- "source": "https://github.com/Intervention/image/tree/2.7.2"
- },
- "funding": [
- {
- "url": "https://paypal.me/interventionio",
- "type": "custom"
- },
- {
- "url": "https://github.com/Intervention",
- "type": "github"
- }
- ],
- "time": "2022-05-21T17:30:32+00:00"
- },
{
"name": "laravel/framework",
- "version": "v10.30.1",
+ "version": "v10.33.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "7a2da50258c4d0f693b738d3f3c69b2693aea6c1"
+ "reference": "4536872e3e5b6be51b1f655dafd12c9a4fa0cfe8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/7a2da50258c4d0f693b738d3f3c69b2693aea6c1",
- "reference": "7a2da50258c4d0f693b738d3f3c69b2693aea6c1",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/4536872e3e5b6be51b1f655dafd12c9a4fa0cfe8",
+ "reference": "4536872e3e5b6be51b1f655dafd12c9a4fa0cfe8",
"shasum": ""
},
"require": {
@@ -1990,7 +1132,7 @@
"league/flysystem-sftp-v3": "^3.0",
"mockery/mockery": "^1.5.1",
"nyholm/psr7": "^1.2",
- "orchestra/testbench-core": "^8.12",
+ "orchestra/testbench-core": "^8.15.1",
"pda/pheanstalk": "^4.0",
"phpstan/phpstan": "^1.4.7",
"phpunit/phpunit": "^10.0.7",
@@ -2078,7 +1220,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2023-11-01T13:52:17+00:00"
+ "time": "2023-11-21T14:49:31+00:00"
},
{
"name": "laravel/prompts",
@@ -2139,16 +1281,16 @@
},
{
"name": "laravel/sanctum",
- "version": "v3.3.1",
+ "version": "v3.3.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/sanctum.git",
- "reference": "338f633e6487e76b255470d3373fbc29228aa971"
+ "reference": "e1a272893bec13cf135627f7e156030b3afe1e60"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/sanctum/zipball/338f633e6487e76b255470d3373fbc29228aa971",
- "reference": "338f633e6487e76b255470d3373fbc29228aa971",
+ "url": "https://api.github.com/repos/laravel/sanctum/zipball/e1a272893bec13cf135627f7e156030b3afe1e60",
+ "reference": "e1a272893bec13cf135627f7e156030b3afe1e60",
"shasum": ""
},
"require": {
@@ -2201,20 +1343,20 @@
"issues": "https://github.com/laravel/sanctum/issues",
"source": "https://github.com/laravel/sanctum"
},
- "time": "2023-09-07T15:46:33+00:00"
+ "time": "2023-11-03T13:42:14+00:00"
},
{
"name": "laravel/serializable-closure",
- "version": "v1.3.2",
+ "version": "v1.3.3",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
- "reference": "076fe2cf128bd54b4341cdc6d49b95b34e101e4c"
+ "reference": "3dbf8a8e914634c48d389c1234552666b3d43754"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/076fe2cf128bd54b4341cdc6d49b95b34e101e4c",
- "reference": "076fe2cf128bd54b4341cdc6d49b95b34e101e4c",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754",
+ "reference": "3dbf8a8e914634c48d389c1234552666b3d43754",
"shasum": ""
},
"require": {
@@ -2261,7 +1403,7 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
- "time": "2023-10-17T13:38:16+00:00"
+ "time": "2023-11-08T14:08:06+00:00"
},
{
"name": "laravel/tinker",
@@ -2522,16 +1664,16 @@
},
{
"name": "league/flysystem",
- "version": "3.18.0",
+ "version": "3.21.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "015633a05aee22490495159237a5944091d8281e"
+ "reference": "a326d8a2d007e4ca327a57470846e34363789258"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/015633a05aee22490495159237a5944091d8281e",
- "reference": "015633a05aee22490495159237a5944091d8281e",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/a326d8a2d007e4ca327a57470846e34363789258",
+ "reference": "a326d8a2d007e4ca327a57470846e34363789258",
"shasum": ""
},
"require": {
@@ -2596,7 +1738,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/3.18.0"
+ "source": "https://github.com/thephpleague/flysystem/tree/3.21.0"
},
"funding": [
{
@@ -2608,86 +1750,20 @@
"type": "github"
}
],
- "time": "2023-10-20T17:59:40+00:00"
- },
- {
- "name": "league/flysystem-aws-s3-v3",
- "version": "3.16.0",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
- "reference": "ded9ba346bb01cb9cc4cc7f2743c2c0e14d18e1c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/ded9ba346bb01cb9cc4cc7f2743c2c0e14d18e1c",
- "reference": "ded9ba346bb01cb9cc4cc7f2743c2c0e14d18e1c",
- "shasum": ""
- },
- "require": {
- "aws/aws-sdk-php": "^3.220.0",
- "league/flysystem": "^3.10.0",
- "league/mime-type-detection": "^1.0.0",
- "php": "^8.0.2"
- },
- "conflict": {
- "guzzlehttp/guzzle": "<7.0",
- "guzzlehttp/ringphp": "<1.1.1"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "League\\Flysystem\\AwsS3V3\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Frank de Jonge",
- "email": "info@frankdejonge.nl"
- }
- ],
- "description": "AWS S3 filesystem adapter for Flysystem.",
- "keywords": [
- "Flysystem",
- "aws",
- "file",
- "files",
- "filesystem",
- "s3",
- "storage"
- ],
- "support": {
- "issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues",
- "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.16.0"
- },
- "funding": [
- {
- "url": "https://ecologi.com/frankdejonge",
- "type": "custom"
- },
- {
- "url": "https://github.com/frankdejonge",
- "type": "github"
- }
- ],
- "time": "2023-08-30T10:14:57+00:00"
+ "time": "2023-11-18T13:59:15+00:00"
},
{
"name": "league/flysystem-local",
- "version": "3.18.0",
+ "version": "3.21.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-local.git",
- "reference": "e7381ef7643f658b87efb7dbe98fe538fb1bbf32"
+ "reference": "470eb1c09eaabd49ebd908ae06f23983ba3ecfe7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/e7381ef7643f658b87efb7dbe98fe538fb1bbf32",
- "reference": "e7381ef7643f658b87efb7dbe98fe538fb1bbf32",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/470eb1c09eaabd49ebd908ae06f23983ba3ecfe7",
+ "reference": "470eb1c09eaabd49ebd908ae06f23983ba3ecfe7",
"shasum": ""
},
"require": {
@@ -2722,7 +1798,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem-local/issues",
- "source": "https://github.com/thephpleague/flysystem-local/tree/3.18.0"
+ "source": "https://github.com/thephpleague/flysystem-local/tree/3.21.0"
},
"funding": [
{
@@ -2734,7 +1810,7 @@
"type": "github"
}
],
- "time": "2023-10-19T20:07:13+00:00"
+ "time": "2023-11-18T13:41:42+00:00"
},
{
"name": "league/mime-type-detection",
@@ -2893,72 +1969,6 @@
],
"time": "2023-10-27T15:32:31+00:00"
},
- {
- "name": "mtdowling/jmespath.php",
- "version": "2.7.0",
- "source": {
- "type": "git",
- "url": "https://github.com/jmespath/jmespath.php.git",
- "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/bbb69a935c2cbb0c03d7f481a238027430f6440b",
- "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b",
- "shasum": ""
- },
- "require": {
- "php": "^7.2.5 || ^8.0",
- "symfony/polyfill-mbstring": "^1.17"
- },
- "require-dev": {
- "composer/xdebug-handler": "^3.0.3",
- "phpunit/phpunit": "^8.5.33"
- },
- "bin": [
- "bin/jp.php"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.7-dev"
- }
- },
- "autoload": {
- "files": [
- "src/JmesPath.php"
- ],
- "psr-4": {
- "JmesPath\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk",
- "homepage": "https://github.com/GrahamCampbell"
- },
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "description": "Declaratively specify how to extract elements from a JSON document",
- "keywords": [
- "json",
- "jsonpath"
- ],
- "support": {
- "issues": "https://github.com/jmespath/jmespath.php/issues",
- "source": "https://github.com/jmespath/jmespath.php/tree/2.7.0"
- },
- "time": "2023-08-25T10:54:48+00:00"
- },
{
"name": "nesbot/carbon",
"version": "2.71.0",
@@ -3355,251 +2365,18 @@
],
"time": "2023-02-08T01:06:31+00:00"
},
- {
- "name": "owen-it/laravel-auditing",
- "version": "v13.5.1",
- "source": {
- "type": "git",
- "url": "https://github.com/owen-it/laravel-auditing.git",
- "reference": "8b9c5bd7d6e79ed63376a86b1861ab1606215801"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/owen-it/laravel-auditing/zipball/8b9c5bd7d6e79ed63376a86b1861ab1606215801",
- "reference": "8b9c5bd7d6e79ed63376a86b1861ab1606215801",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "illuminate/console": "^7.0|^8.0|^9.0|^10.0",
- "illuminate/database": "^7.0|^8.0|^9.0|^10.0",
- "illuminate/filesystem": "^7.0|^8.0|^9.0|^10.0",
- "php": "^7.3|^8.0"
- },
- "require-dev": {
- "laravel/legacy-factories": "*",
- "mockery/mockery": "^1.0",
- "orchestra/testbench": "^5.0|^6.0|^7.0|^8.0",
- "phpunit/phpunit": "^9.0"
- },
- "suggest": {
- "irazasyed/larasupport": "Needed to publish the package configuration in Lumen"
- },
- "type": "package",
- "extra": {
- "branch-alias": {
- "dev-master": "v13-dev"
- },
- "laravel": {
- "providers": [
- "OwenIt\\Auditing\\AuditingServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "OwenIt\\Auditing\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Antério Vieira",
- "email": "anteriovieira@gmail.com"
- },
- {
- "name": "Raphael França",
- "email": "raphaelfrancabsb@gmail.com"
- },
- {
- "name": "Morten D. Hansen",
- "email": "morten@visia.dk"
- }
- ],
- "description": "Audit changes of your Eloquent models in Laravel/Lumen",
- "homepage": "http://laravel-auditing.com",
- "keywords": [
- "Accountability",
- "Audit",
- "auditing",
- "changes",
- "eloquent",
- "history",
- "laravel",
- "log",
- "logging",
- "lumen",
- "observer",
- "record",
- "revision",
- "tracking"
- ],
- "support": {
- "issues": "https://github.com/owen-it/laravel-auditing/issues",
- "source": "https://github.com/owen-it/laravel-auditing"
- },
- "time": "2023-06-19T14:51:52+00:00"
- },
- {
- "name": "php-ffmpeg/php-ffmpeg",
- "version": "v1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/PHP-FFMpeg/PHP-FFMpeg.git",
- "reference": "eace6f174ff6d206ba648483ebe59760f7f6a0e1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/PHP-FFMpeg/PHP-FFMpeg/zipball/eace6f174ff6d206ba648483ebe59760f7f6a0e1",
- "reference": "eace6f174ff6d206ba648483ebe59760f7f6a0e1",
- "shasum": ""
- },
- "require": {
- "evenement/evenement": "^3.0",
- "php": "^8.0 || ^8.1 || ^8.2",
- "psr/log": "^1.0 || ^2.0 || ^3.0",
- "spatie/temporary-directory": "^2.0",
- "symfony/cache": "^5.4 || ^6.0",
- "symfony/process": "^5.4 || ^6.0"
- },
- "require-dev": {
- "mockery/mockery": "^1.5",
- "phpunit/phpunit": "^9.5.10"
- },
- "suggest": {
- "php-ffmpeg/extras": "A compilation of common audio & video drivers for PHP-FFMpeg"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "FFMpeg\\": "src/FFMpeg",
- "Alchemy\\BinaryDriver\\": "src/Alchemy/BinaryDriver"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Romain Neutron",
- "email": "imprec@gmail.com",
- "homepage": "http://www.lickmychip.com/"
- },
- {
- "name": "Phraseanet Team",
- "email": "info@alchemy.fr",
- "homepage": "http://www.phraseanet.com/"
- },
- {
- "name": "Patrik Karisch",
- "email": "patrik@karisch.guru",
- "homepage": "http://www.karisch.guru"
- },
- {
- "name": "Romain Biard",
- "email": "romain.biard@gmail.com",
- "homepage": "https://www.strime.io/"
- },
- {
- "name": "Jens Hausdorf",
- "email": "hello@jens-hausdorf.de",
- "homepage": "https://jens-hausdorf.de"
- },
- {
- "name": "Pascal Baljet",
- "email": "pascal@protone.media",
- "homepage": "https://protone.media"
- }
- ],
- "description": "FFMpeg PHP, an Object Oriented library to communicate with AVconv / ffmpeg",
- "keywords": [
- "audio",
- "audio processing",
- "avconv",
- "avprobe",
- "ffmpeg",
- "ffprobe",
- "video",
- "video processing"
- ],
- "support": {
- "issues": "https://github.com/PHP-FFMpeg/PHP-FFMpeg/issues",
- "source": "https://github.com/PHP-FFMpeg/PHP-FFMpeg/tree/v1.1.0"
- },
- "time": "2022-12-09T13:57:05+00:00"
- },
- {
- "name": "php-jsonpointer/php-jsonpointer",
- "version": "v3.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/raphaelstolt/php-jsonpointer.git",
- "reference": "4428f86c6f23846e9faa5a420c4ef14e485b3afb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/raphaelstolt/php-jsonpointer/zipball/4428f86c6f23846e9faa5a420c4ef14e485b3afb",
- "reference": "4428f86c6f23846e9faa5a420c4ef14e485b3afb",
- "shasum": ""
- },
- "require": {
- "php": ">=5.4"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^1.11",
- "phpunit/phpunit": "4.6.*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Rs\\Json": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Raphael Stolt",
- "email": "raphael.stolt@gmail.com",
- "homepage": "http://raphaelstolt.blogspot.com/"
- }
- ],
- "description": "Implementation of JSON Pointer (http://tools.ietf.org/html/rfc6901)",
- "homepage": "https://github.com/raphaelstolt/php-jsonpointer",
- "keywords": [
- "json",
- "json pointer",
- "json traversal"
- ],
- "support": {
- "issues": "https://github.com/raphaelstolt/php-jsonpointer/issues",
- "source": "https://github.com/raphaelstolt/php-jsonpointer/tree/master"
- },
- "time": "2016-08-29T08:51:01+00:00"
- },
{
"name": "phpoption/phpoption",
- "version": "1.9.1",
+ "version": "1.9.2",
"source": {
"type": "git",
"url": "https://github.com/schmittjoh/php-option.git",
- "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e"
+ "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dd3a383e599f49777d8b628dadbb90cae435b87e",
- "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820",
+ "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820",
"shasum": ""
},
"require": {
@@ -3607,7 +2384,7 @@
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
- "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12"
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
},
"type": "library",
"extra": {
@@ -3649,7 +2426,7 @@
],
"support": {
"issues": "https://github.com/schmittjoh/php-option/issues",
- "source": "https://github.com/schmittjoh/php-option/tree/1.9.1"
+ "source": "https://github.com/schmittjoh/php-option/tree/1.9.2"
},
"funding": [
{
@@ -3661,56 +2438,7 @@
"type": "tidelift"
}
],
- "time": "2023-02-25T19:38:58+00:00"
- },
- {
- "name": "psr/cache",
- "version": "3.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/cache.git",
- "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
- "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
- "shasum": ""
- },
- "require": {
- "php": ">=8.0.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Cache\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for caching libraries",
- "keywords": [
- "cache",
- "psr",
- "psr-6"
- ],
- "support": {
- "source": "https://github.com/php-fig/cache/tree/3.0.0"
- },
- "time": "2021-02-03T23:26:27+00:00"
+ "time": "2023-11-12T21:59:55+00:00"
},
{
"name": "psr/clock",
@@ -4339,16 +3067,16 @@
},
{
"name": "ramsey/uuid",
- "version": "4.7.4",
+ "version": "4.7.5",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "60a4c63ab724854332900504274f6150ff26d286"
+ "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/60a4c63ab724854332900504274f6150ff26d286",
- "reference": "60a4c63ab724854332900504274f6150ff26d286",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e",
+ "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e",
"shasum": ""
},
"require": {
@@ -4415,7 +3143,7 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.7.4"
+ "source": "https://github.com/ramsey/uuid/tree/4.7.5"
},
"funding": [
{
@@ -4427,32 +3155,52 @@
"type": "tidelift"
}
],
- "time": "2023-04-15T23:01:58+00:00"
+ "time": "2023-11-08T05:53:05+00:00"
},
{
- "name": "spatie/temporary-directory",
- "version": "2.2.0",
+ "name": "spatie/laravel-permission",
+ "version": "6.1.0",
"source": {
"type": "git",
- "url": "https://github.com/spatie/temporary-directory.git",
- "reference": "efc258c9f4da28f0c7661765b8393e4ccee3d19c"
+ "url": "https://github.com/spatie/laravel-permission.git",
+ "reference": "8e584d3ac09856e106f989741a2d82b094278e58"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/efc258c9f4da28f0c7661765b8393e4ccee3d19c",
- "reference": "efc258c9f4da28f0c7661765b8393e4ccee3d19c",
+ "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/8e584d3ac09856e106f989741a2d82b094278e58",
+ "reference": "8e584d3ac09856e106f989741a2d82b094278e58",
"shasum": ""
},
"require": {
+ "illuminate/auth": "^8.12|^9.0|^10.0",
+ "illuminate/container": "^8.12|^9.0|^10.0",
+ "illuminate/contracts": "^8.12|^9.0|^10.0",
+ "illuminate/database": "^8.12|^9.0|^10.0",
"php": "^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.5"
+ "laravel/passport": "^11.0",
+ "orchestra/testbench": "^6.23|^7.0|^8.0",
+ "phpunit/phpunit": "^9.4"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "6.x-dev",
+ "dev-master": "6.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Spatie\\Permission\\PermissionServiceProvider"
+ ]
+ }
+ },
"autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
"psr-4": {
- "Spatie\\TemporaryDirectory\\": "src"
+ "Spatie\\Permission\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -4461,339 +3209,48 @@
],
"authors": [
{
- "name": "Alex Vanderbist",
- "email": "alex@spatie.be",
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
"homepage": "https://spatie.be",
"role": "Developer"
}
],
- "description": "Easily create, use and destroy temporary directories",
- "homepage": "https://github.com/spatie/temporary-directory",
+ "description": "Permission handling for Laravel 8.0 and up",
+ "homepage": "https://github.com/spatie/laravel-permission",
"keywords": [
- "php",
- "spatie",
- "temporary-directory"
+ "acl",
+ "laravel",
+ "permission",
+ "permissions",
+ "rbac",
+ "roles",
+ "security",
+ "spatie"
],
"support": {
- "issues": "https://github.com/spatie/temporary-directory/issues",
- "source": "https://github.com/spatie/temporary-directory/tree/2.2.0"
+ "issues": "https://github.com/spatie/laravel-permission/issues",
+ "source": "https://github.com/spatie/laravel-permission/tree/6.1.0"
},
"funding": [
- {
- "url": "https://spatie.be/open-source/support-us",
- "type": "custom"
- },
{
"url": "https://github.com/spatie",
"type": "github"
}
],
- "time": "2023-09-25T07:13:36+00:00"
- },
- {
- "name": "square/square",
- "version": "32.0.0.20231018",
- "source": {
- "type": "git",
- "url": "https://github.com/square/square-php-sdk.git",
- "reference": "773b5b360766fe9f280c5ef8de83a6a97f7a0555"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/square/square-php-sdk/zipball/773b5b360766fe9f280c5ef8de83a6a97f7a0555",
- "reference": "773b5b360766fe9f280c5ef8de83a6a97f7a0555",
- "shasum": ""
- },
- "require": {
- "apimatic/core": "~0.3.0",
- "apimatic/core-interfaces": "~0.1.0",
- "apimatic/unirest-php": "^4.0.0",
- "ext-json": "*",
- "php": "^7.2 || ^8.0"
- },
- "require-dev": {
- "phan/phan": "5.4.2",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "squizlabs/php_codesniffer": "^3.5"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Square\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Square Developer Platform",
- "email": "developers@squareup.com",
- "homepage": "https://squareup.com/developers"
- }
- ],
- "description": "Use Square APIs to manage and run business including payment, customer, product, inventory, and employee management.",
- "homepage": "https://squareup.com/developers",
- "keywords": [
- "api",
- "sdk",
- "square"
- ],
- "support": {
- "issues": "https://github.com/square/square-php-sdk/issues",
- "source": "https://github.com/square/square-php-sdk/tree/32.0.0.20231018"
- },
- "time": "2023-10-17T19:11:35+00:00"
- },
- {
- "name": "sunspikes/clamav-validator",
- "version": "v2.7.0",
- "source": {
- "type": "git",
- "url": "https://github.com/sunspikes/clamav-validator.git",
- "reference": "0db18646b73afbd5094876f48a49e28a9a1426ed"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sunspikes/clamav-validator/zipball/0db18646b73afbd5094876f48a49e28a9a1426ed",
- "reference": "0db18646b73afbd5094876f48a49e28a9a1426ed",
- "shasum": ""
- },
- "require": {
- "ext-sockets": "*",
- "illuminate/support": "~5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0",
- "illuminate/validation": "~5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0",
- "php": "^7.3|^8.0",
- "xenolope/quahog": "^3.0"
- },
- "require-dev": {
- "mockery/mockery": "^1.5.0",
- "phpunit/phpunit": "^9.5.10",
- "roave/security-advisories": "dev-master",
- "scrutinizer/ocular": "dev-master"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "Sunspikes\\ClamavValidator\\ClamavValidatorServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Sunspikes\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Krishnaprasad MG",
- "email": "sunspikes@gmail.com"
- }
- ],
- "description": "Custom Laravel 5 anti-virus validator for file uploads.",
- "homepage": "https://github.com/sunspikes/clamav-validator",
- "keywords": [
- "clamav",
- "laravel",
- "validator",
- "virus"
- ],
- "support": {
- "issues": "https://github.com/sunspikes/clamav-validator/issues",
- "source": "https://github.com/sunspikes/clamav-validator/tree/v2.7.0"
- },
- "time": "2023-03-09T09:54:24+00:00"
- },
- {
- "name": "symfony/cache",
- "version": "v6.3.5",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/cache.git",
- "reference": "6c1a3ea078c4d88ee892530945df63a87981b2da"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/cache/zipball/6c1a3ea078c4d88ee892530945df63a87981b2da",
- "reference": "6c1a3ea078c4d88ee892530945df63a87981b2da",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1",
- "psr/cache": "^2.0|^3.0",
- "psr/log": "^1.1|^2|^3",
- "symfony/cache-contracts": "^2.5|^3",
- "symfony/service-contracts": "^2.5|^3",
- "symfony/var-exporter": "^6.2.10"
- },
- "conflict": {
- "doctrine/dbal": "<2.13.1",
- "symfony/dependency-injection": "<5.4",
- "symfony/http-kernel": "<5.4",
- "symfony/var-dumper": "<5.4"
- },
- "provide": {
- "psr/cache-implementation": "2.0|3.0",
- "psr/simple-cache-implementation": "1.0|2.0|3.0",
- "symfony/cache-implementation": "1.1|2.0|3.0"
- },
- "require-dev": {
- "cache/integration-tests": "dev-master",
- "doctrine/dbal": "^2.13.1|^3.0",
- "predis/predis": "^1.1|^2.0",
- "psr/simple-cache": "^1.0|^2.0|^3.0",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/filesystem": "^5.4|^6.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/messenger": "^5.4|^6.0",
- "symfony/var-dumper": "^5.4|^6.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Cache\\": ""
- },
- "classmap": [
- "Traits/ValueWrapper.php"
- ],
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides extended PSR-6, PSR-16 (and tags) implementations",
- "homepage": "https://symfony.com",
- "keywords": [
- "caching",
- "psr6"
- ],
- "support": {
- "source": "https://github.com/symfony/cache/tree/v6.3.5"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2023-09-26T15:48:55+00:00"
- },
- {
- "name": "symfony/cache-contracts",
- "version": "v3.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/cache-contracts.git",
- "reference": "ad945640ccc0ae6e208bcea7d7de4b39b569896b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/ad945640ccc0ae6e208bcea7d7de4b39b569896b",
- "reference": "ad945640ccc0ae6e208bcea7d7de4b39b569896b",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1",
- "psr/cache": "^3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.4-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Contracts\\Cache\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Generic abstractions related to caching",
- "homepage": "https://symfony.com",
- "keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
- ],
- "support": {
- "source": "https://github.com/symfony/cache-contracts/tree/v3.3.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2023-05-23T14:45:45+00:00"
+ "time": "2023-11-09T22:03:17+00:00"
},
{
"name": "symfony/console",
- "version": "v6.3.4",
+ "version": "v6.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6"
+ "reference": "0d14a9f6d04d4ac38a8cea1171f4554e325dae92"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/eca495f2ee845130855ddf1cf18460c38966c8b6",
- "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6",
+ "url": "https://api.github.com/repos/symfony/console/zipball/0d14a9f6d04d4ac38a8cea1171f4554e325dae92",
+ "reference": "0d14a9f6d04d4ac38a8cea1171f4554e325dae92",
"shasum": ""
},
"require": {
@@ -4854,7 +3311,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.3.4"
+ "source": "https://github.com/symfony/console/tree/v6.3.8"
},
"funding": [
{
@@ -4870,7 +3327,7 @@
"type": "tidelift"
}
],
- "time": "2023-08-16T10:10:12+00:00"
+ "time": "2023-10-31T08:09:35+00:00"
},
{
"name": "symfony/css-selector",
@@ -4939,7 +3396,7 @@
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.3.0",
+ "version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
@@ -4986,7 +3443,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.3.0"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0"
},
"funding": [
{
@@ -5160,7 +3617,7 @@
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.3.0",
+ "version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
@@ -5216,7 +3673,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.3.0"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0"
},
"funding": [
{
@@ -5300,16 +3757,16 @@
},
{
"name": "symfony/http-foundation",
- "version": "v6.3.7",
+ "version": "v6.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "59d1837d5d992d16c2628cd0d6b76acf8d69b33e"
+ "reference": "ce332676de1912c4389222987193c3ef38033df6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/59d1837d5d992d16c2628cd0d6b76acf8d69b33e",
- "reference": "59d1837d5d992d16c2628cd0d6b76acf8d69b33e",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ce332676de1912c4389222987193c3ef38033df6",
+ "reference": "ce332676de1912c4389222987193c3ef38033df6",
"shasum": ""
},
"require": {
@@ -5357,7 +3814,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v6.3.7"
+ "source": "https://github.com/symfony/http-foundation/tree/v6.3.8"
},
"funding": [
{
@@ -5373,20 +3830,20 @@
"type": "tidelift"
}
],
- "time": "2023-10-28T23:55:27+00:00"
+ "time": "2023-11-07T10:17:15+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v6.3.7",
+ "version": "v6.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "6d4098095f93279d9536a0e9124439560cc764d0"
+ "reference": "929202375ccf44a309c34aeca8305408442ebcc1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6d4098095f93279d9536a0e9124439560cc764d0",
- "reference": "6d4098095f93279d9536a0e9124439560cc764d0",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/929202375ccf44a309c34aeca8305408442ebcc1",
+ "reference": "929202375ccf44a309c34aeca8305408442ebcc1",
"shasum": ""
},
"require": {
@@ -5470,7 +3927,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v6.3.7"
+ "source": "https://github.com/symfony/http-kernel/tree/v6.3.8"
},
"funding": [
{
@@ -5486,7 +3943,7 @@
"type": "tidelift"
}
],
- "time": "2023-10-29T14:31:45+00:00"
+ "time": "2023-11-10T13:47:32+00:00"
},
{
"name": "symfony/mailer",
@@ -6536,16 +4993,16 @@
},
{
"name": "symfony/service-contracts",
- "version": "v3.3.0",
+ "version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4"
+ "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4",
- "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b3313c2dbffaf71c8de2934e2ea56ed2291a3838",
+ "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838",
"shasum": ""
},
"require": {
@@ -6598,7 +5055,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.3.0"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.4.0"
},
"funding": [
{
@@ -6614,20 +5071,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-23T14:45:45+00:00"
+ "time": "2023-07-30T20:28:31+00:00"
},
{
"name": "symfony/string",
- "version": "v6.3.5",
+ "version": "v6.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339"
+ "reference": "13880a87790c76ef994c91e87efb96134522577a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/13d76d0fb049051ed12a04bef4f9de8715bea339",
- "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339",
+ "url": "https://api.github.com/repos/symfony/string/zipball/13880a87790c76ef994c91e87efb96134522577a",
+ "reference": "13880a87790c76ef994c91e87efb96134522577a",
"shasum": ""
},
"require": {
@@ -6684,7 +5141,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.3.5"
+ "source": "https://github.com/symfony/string/tree/v6.3.8"
},
"funding": [
{
@@ -6700,7 +5157,7 @@
"type": "tidelift"
}
],
- "time": "2023-09-18T10:38:32+00:00"
+ "time": "2023-11-09T08:28:21+00:00"
},
{
"name": "symfony/translation",
@@ -6799,16 +5256,16 @@
},
{
"name": "symfony/translation-contracts",
- "version": "v3.3.0",
+ "version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86"
+ "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/02c24deb352fb0d79db5486c0c79905a85e37e86",
- "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/dee0c6e5b4c07ce851b462530088e64b255ac9c5",
+ "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5",
"shasum": ""
},
"require": {
@@ -6857,7 +5314,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.3.0"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.4.0"
},
"funding": [
{
@@ -6873,20 +5330,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-30T17:17:10+00:00"
+ "time": "2023-07-25T15:08:44+00:00"
},
{
"name": "symfony/uid",
- "version": "v6.3.0",
+ "version": "v6.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/uid.git",
- "reference": "01b0f20b1351d997711c56f1638f7a8c3061e384"
+ "reference": "819fa5ac210fb7ddda4752b91a82f50be7493dd9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/uid/zipball/01b0f20b1351d997711c56f1638f7a8c3061e384",
- "reference": "01b0f20b1351d997711c56f1638f7a8c3061e384",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/819fa5ac210fb7ddda4752b91a82f50be7493dd9",
+ "reference": "819fa5ac210fb7ddda4752b91a82f50be7493dd9",
"shasum": ""
},
"require": {
@@ -6931,7 +5388,7 @@
"uuid"
],
"support": {
- "source": "https://github.com/symfony/uid/tree/v6.3.0"
+ "source": "https://github.com/symfony/uid/tree/v6.3.8"
},
"funding": [
{
@@ -6947,20 +5404,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-08T07:25:02+00:00"
+ "time": "2023-10-31T08:07:48+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v6.3.6",
+ "version": "v6.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "999ede244507c32b8e43aebaa10e9fce20de7c97"
+ "reference": "81acabba9046550e89634876ca64bfcd3c06aa0a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/999ede244507c32b8e43aebaa10e9fce20de7c97",
- "reference": "999ede244507c32b8e43aebaa10e9fce20de7c97",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/81acabba9046550e89634876ca64bfcd3c06aa0a",
+ "reference": "81acabba9046550e89634876ca64bfcd3c06aa0a",
"shasum": ""
},
"require": {
@@ -7015,7 +5472,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v6.3.6"
+ "source": "https://github.com/symfony/var-dumper/tree/v6.3.8"
},
"funding": [
{
@@ -7031,130 +5488,7 @@
"type": "tidelift"
}
],
- "time": "2023-10-12T18:45:56+00:00"
- },
- {
- "name": "symfony/var-exporter",
- "version": "v6.3.4",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/var-exporter.git",
- "reference": "df1f8aac5751871b83d30bf3e2c355770f8f0691"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/var-exporter/zipball/df1f8aac5751871b83d30bf3e2c355770f8f0691",
- "reference": "df1f8aac5751871b83d30bf3e2c355770f8f0691",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "require-dev": {
- "symfony/var-dumper": "^5.4|^6.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\VarExporter\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Allows exporting any serializable PHP data structure to plain PHP code",
- "homepage": "https://symfony.com",
- "keywords": [
- "clone",
- "construct",
- "export",
- "hydrate",
- "instantiate",
- "lazy-loading",
- "proxy",
- "serialize"
- ],
- "support": {
- "source": "https://github.com/symfony/var-exporter/tree/v6.3.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2023-08-16T18:14:47+00:00"
- },
- {
- "name": "thiagoalessio/tesseract_ocr",
- "version": "2.13.0",
- "source": {
- "type": "git",
- "url": "https://github.com/thiagoalessio/tesseract-ocr-for-php.git",
- "reference": "232a8cb9d571992f9bd1e263f2f6909cf6c173a1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thiagoalessio/tesseract-ocr-for-php/zipball/232a8cb9d571992f9bd1e263f2f6909cf6c173a1",
- "reference": "232a8cb9d571992f9bd1e263f2f6909cf6c173a1",
- "shasum": ""
- },
- "require": {
- "php": "^5.3 || ^7.0 || ^8.0"
- },
- "require-dev": {
- "phpunit/php-code-coverage": "^2.2.4 || ^9.0.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "thiagoalessio\\TesseractOCR\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "thiagoalessio",
- "email": "thiagoalessio@me.com"
- }
- ],
- "description": "A wrapper to work with Tesseract OCR inside PHP.",
- "keywords": [
- "OCR",
- "Tesseract",
- "text recognition"
- ],
- "support": {
- "irc": "irc://irc.freenode.net/tesseract-ocr-for-php",
- "issues": "https://github.com/thiagoalessio/tesseract-ocr-for-php/issues",
- "source": "https://github.com/thiagoalessio/tesseract-ocr-for-php"
- },
- "time": "2023-10-05T21:14:48+00:00"
+ "time": "2023-11-08T10:42:36+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@@ -7211,31 +5545,31 @@
},
{
"name": "vlucas/phpdotenv",
- "version": "v5.5.0",
+ "version": "v5.6.0",
"source": {
"type": "git",
"url": "https://github.com/vlucas/phpdotenv.git",
- "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7"
+ "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
- "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4",
+ "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4",
"shasum": ""
},
"require": {
"ext-pcre": "*",
- "graham-campbell/result-type": "^1.0.2",
- "php": "^7.1.3 || ^8.0",
- "phpoption/phpoption": "^1.8",
- "symfony/polyfill-ctype": "^1.23",
- "symfony/polyfill-mbstring": "^1.23.1",
- "symfony/polyfill-php80": "^1.23.1"
+ "graham-campbell/result-type": "^1.1.2",
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.2",
+ "symfony/polyfill-ctype": "^1.24",
+ "symfony/polyfill-mbstring": "^1.24",
+ "symfony/polyfill-php80": "^1.24"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
+ "bamarni/composer-bin-plugin": "^1.8.2",
"ext-filter": "*",
- "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25"
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
},
"suggest": {
"ext-filter": "Required to use the boolean validator."
@@ -7247,7 +5581,7 @@
"forward-command": true
},
"branch-alias": {
- "dev-master": "5.5-dev"
+ "dev-master": "5.6-dev"
}
},
"autoload": {
@@ -7279,7 +5613,7 @@
],
"support": {
"issues": "https://github.com/vlucas/phpdotenv/issues",
- "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0"
+ "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0"
},
"funding": [
{
@@ -7291,7 +5625,7 @@
"type": "tidelift"
}
],
- "time": "2022-10-16T01:01:54+00:00"
+ "time": "2023-11-12T22:43:29+00:00"
},
{
"name": "voku/portable-ascii",
@@ -7424,344 +5758,9 @@
"source": "https://github.com/webmozarts/assert/tree/1.11.0"
},
"time": "2022-06-03T18:03:27+00:00"
- },
- {
- "name": "xenolope/quahog",
- "version": "v3.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/jonjomckay/quahog.git",
- "reference": "b3823659050cc54a160e8739d077c96d8830a2fa"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/jonjomckay/quahog/zipball/b3823659050cc54a160e8739d077c96d8830a2fa",
- "reference": "b3823659050cc54a160e8739d077c96d8830a2fa",
- "shasum": ""
- },
- "require": {
- "clue/socket-raw": "^1.3",
- "php": ">=7.3"
- },
- "require-dev": {
- "mikey179/vfsstream": "^1.6",
- "phpunit/phpunit": "^9.4"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Xenolope\\Quahog\\": "src/Quahog"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jonjo McKay",
- "email": "jonjo@jonjomckay.com"
- }
- ],
- "description": "A PHP client library for ClamAV clamd daemon",
- "support": {
- "issues": "https://github.com/jonjomckay/quahog/issues",
- "source": "https://github.com/jonjomckay/quahog/tree/v3.0.0"
- },
- "time": "2020-11-25T12:06:14+00:00"
}
],
"packages-dev": [
- {
- "name": "barryvdh/laravel-ide-helper",
- "version": "v2.13.0",
- "source": {
- "type": "git",
- "url": "https://github.com/barryvdh/laravel-ide-helper.git",
- "reference": "81d5b223ff067a1f38e14c100997e153b837fe4a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/81d5b223ff067a1f38e14c100997e153b837fe4a",
- "reference": "81d5b223ff067a1f38e14c100997e153b837fe4a",
- "shasum": ""
- },
- "require": {
- "barryvdh/reflection-docblock": "^2.0.6",
- "composer/class-map-generator": "^1.0",
- "doctrine/dbal": "^2.6 || ^3",
- "ext-json": "*",
- "illuminate/console": "^8 || ^9 || ^10",
- "illuminate/filesystem": "^8 || ^9 || ^10",
- "illuminate/support": "^8 || ^9 || ^10",
- "nikic/php-parser": "^4.7",
- "php": "^7.3 || ^8.0",
- "phpdocumentor/type-resolver": "^1.1.0"
- },
- "require-dev": {
- "ext-pdo_sqlite": "*",
- "friendsofphp/php-cs-fixer": "^2",
- "illuminate/config": "^8 || ^9 || ^10",
- "illuminate/view": "^8 || ^9 || ^10",
- "mockery/mockery": "^1.4",
- "orchestra/testbench": "^6 || ^7 || ^8",
- "phpunit/phpunit": "^8.5 || ^9",
- "spatie/phpunit-snapshot-assertions": "^3 || ^4",
- "vimeo/psalm": "^3.12"
- },
- "suggest": {
- "illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9|^10)."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.12-dev"
- },
- "laravel": {
- "providers": [
- "Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Barryvdh\\LaravelIdeHelper\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Barry vd. Heuvel",
- "email": "barryvdh@gmail.com"
- }
- ],
- "description": "Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.",
- "keywords": [
- "autocomplete",
- "codeintel",
- "helper",
- "ide",
- "laravel",
- "netbeans",
- "phpdoc",
- "phpstorm",
- "sublime"
- ],
- "support": {
- "issues": "https://github.com/barryvdh/laravel-ide-helper/issues",
- "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v2.13.0"
- },
- "funding": [
- {
- "url": "https://fruitcake.nl",
- "type": "custom"
- },
- {
- "url": "https://github.com/barryvdh",
- "type": "github"
- }
- ],
- "time": "2023-02-04T13:56:40+00:00"
- },
- {
- "name": "barryvdh/reflection-docblock",
- "version": "v2.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/barryvdh/ReflectionDocBlock.git",
- "reference": "e6811e927f0ecc37cc4deaa6627033150343e597"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/e6811e927f0ecc37cc4deaa6627033150343e597",
- "reference": "e6811e927f0ecc37cc4deaa6627033150343e597",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5.14|^9"
- },
- "suggest": {
- "dflydev/markdown": "~1.0",
- "erusev/parsedown": "~1.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Barryvdh": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "mike.vanriel@naenius.com"
- }
- ],
- "support": {
- "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.1.1"
- },
- "time": "2023-06-14T05:06:27+00:00"
- },
- {
- "name": "composer/class-map-generator",
- "version": "1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/composer/class-map-generator.git",
- "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/composer/class-map-generator/zipball/953cc4ea32e0c31f2185549c7d216d7921f03da9",
- "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9",
- "shasum": ""
- },
- "require": {
- "composer/pcre": "^2.1 || ^3.1",
- "php": "^7.2 || ^8.0",
- "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7"
- },
- "require-dev": {
- "phpstan/phpstan": "^1.6",
- "phpstan/phpstan-deprecation-rules": "^1",
- "phpstan/phpstan-phpunit": "^1",
- "phpstan/phpstan-strict-rules": "^1.1",
- "symfony/filesystem": "^5.4 || ^6",
- "symfony/phpunit-bridge": "^5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Composer\\ClassMapGenerator\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "https://seld.be"
- }
- ],
- "description": "Utilities to scan PHP code and generate class maps.",
- "keywords": [
- "classmap"
- ],
- "support": {
- "issues": "https://github.com/composer/class-map-generator/issues",
- "source": "https://github.com/composer/class-map-generator/tree/1.1.0"
- },
- "funding": [
- {
- "url": "https://packagist.com",
- "type": "custom"
- },
- {
- "url": "https://github.com/composer",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
- "type": "tidelift"
- }
- ],
- "time": "2023-06-30T13:58:57+00:00"
- },
- {
- "name": "composer/pcre",
- "version": "3.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/composer/pcre.git",
- "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9",
- "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9",
- "shasum": ""
- },
- "require": {
- "php": "^7.4 || ^8.0"
- },
- "require-dev": {
- "phpstan/phpstan": "^1.3",
- "phpstan/phpstan-strict-rules": "^1.1",
- "symfony/phpunit-bridge": "^5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Composer\\Pcre\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
- }
- ],
- "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
- "keywords": [
- "PCRE",
- "preg",
- "regex",
- "regular expression"
- ],
- "support": {
- "issues": "https://github.com/composer/pcre/issues",
- "source": "https://github.com/composer/pcre/tree/3.1.1"
- },
- "funding": [
- {
- "url": "https://packagist.com",
- "type": "custom"
- },
- {
- "url": "https://github.com/composer",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
- "type": "tidelift"
- }
- ],
- "time": "2023-10-11T07:11:09+00:00"
- },
{
"name": "fakerphp/faker",
"version": "v1.23.0",
@@ -7832,16 +5831,16 @@
},
{
"name": "filp/whoops",
- "version": "2.15.3",
+ "version": "2.15.4",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
- "reference": "c83e88a30524f9360b11f585f71e6b17313b7187"
+ "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filp/whoops/zipball/c83e88a30524f9360b11f585f71e6b17313b7187",
- "reference": "c83e88a30524f9360b11f585f71e6b17313b7187",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546",
+ "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546",
"shasum": ""
},
"require": {
@@ -7891,7 +5890,7 @@
],
"support": {
"issues": "https://github.com/filp/whoops/issues",
- "source": "https://github.com/filp/whoops/tree/2.15.3"
+ "source": "https://github.com/filp/whoops/tree/2.15.4"
},
"funding": [
{
@@ -7899,7 +5898,7 @@
"type": "github"
}
],
- "time": "2023-07-13T12:00:00+00:00"
+ "time": "2023-11-03T12:00:00+00:00"
},
{
"name": "hamcrest/hamcrest-php",
@@ -7952,86 +5951,18 @@
},
"time": "2020-07-09T08:09:16+00:00"
},
- {
- "name": "itsgoingd/clockwork",
- "version": "v5.1.12",
- "source": {
- "type": "git",
- "url": "https://github.com/itsgoingd/clockwork.git",
- "reference": "c9dbdbb1f0efd19bb80f1080ef63f1b9b1bc3b1b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/c9dbdbb1f0efd19bb80f1080ef63f1b9b1bc3b1b",
- "reference": "c9dbdbb1f0efd19bb80f1080ef63f1b9b1bc3b1b",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "php": ">=5.6"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "Clockwork\\Support\\Laravel\\ClockworkServiceProvider"
- ],
- "aliases": {
- "Clockwork": "Clockwork\\Support\\Laravel\\Facade"
- }
- }
- },
- "autoload": {
- "psr-4": {
- "Clockwork\\": "Clockwork/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "itsgoingd",
- "email": "itsgoingd@luzer.sk",
- "homepage": "https://twitter.com/itsgoingd"
- }
- ],
- "description": "php dev tools in your browser",
- "homepage": "https://underground.works/clockwork",
- "keywords": [
- "Devtools",
- "debugging",
- "laravel",
- "logging",
- "lumen",
- "profiling",
- "slim"
- ],
- "support": {
- "issues": "https://github.com/itsgoingd/clockwork/issues",
- "source": "https://github.com/itsgoingd/clockwork/tree/v5.1.12"
- },
- "funding": [
- {
- "url": "https://github.com/itsgoingd",
- "type": "github"
- }
- ],
- "time": "2022-12-13T00:04:12+00:00"
- },
{
"name": "laravel/pint",
- "version": "v1.13.5",
+ "version": "v1.13.6",
"source": {
"type": "git",
"url": "https://github.com/laravel/pint.git",
- "reference": "df105cf8ce7a8f0b8a9425ff45cd281a5448e423"
+ "reference": "3e3d2ab01c7d8b484c18e6100ecf53639c744fa7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/pint/zipball/df105cf8ce7a8f0b8a9425ff45cd281a5448e423",
- "reference": "df105cf8ce7a8f0b8a9425ff45cd281a5448e423",
+ "url": "https://api.github.com/repos/laravel/pint/zipball/3e3d2ab01c7d8b484c18e6100ecf53639c744fa7",
+ "reference": "3e3d2ab01c7d8b484c18e6100ecf53639c744fa7",
"shasum": ""
},
"require": {
@@ -8042,13 +5973,13 @@
"php": "^8.1.0"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^3.34.1",
- "illuminate/view": "^10.26.2",
- "laravel-zero/framework": "^10.1.2",
+ "friendsofphp/php-cs-fixer": "^3.38.0",
+ "illuminate/view": "^10.30.1",
+ "laravel-zero/framework": "^10.3.0",
"mockery/mockery": "^1.6.6",
"nunomaduro/larastan": "^2.6.4",
"nunomaduro/termwind": "^1.15.1",
- "pestphp/pest": "^2.20.0"
+ "pestphp/pest": "^2.24.2"
},
"bin": [
"builds/pint"
@@ -8084,20 +6015,20 @@
"issues": "https://github.com/laravel/pint/issues",
"source": "https://github.com/laravel/pint"
},
- "time": "2023-10-26T09:26:10+00:00"
+ "time": "2023-11-07T17:59:57+00:00"
},
{
"name": "laravel/sail",
- "version": "v1.26.0",
+ "version": "v1.26.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/sail.git",
- "reference": "c60fe037004e272efd0d81f416ed2bfc623d70b4"
+ "reference": "7a82f5aa364dbee3fd9c52fc464cf0bdd11150ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/sail/zipball/c60fe037004e272efd0d81f416ed2bfc623d70b4",
- "reference": "c60fe037004e272efd0d81f416ed2bfc623d70b4",
+ "url": "https://api.github.com/repos/laravel/sail/zipball/7a82f5aa364dbee3fd9c52fc464cf0bdd11150ed",
+ "reference": "7a82f5aa364dbee3fd9c52fc464cf0bdd11150ed",
"shasum": ""
},
"require": {
@@ -8149,7 +6080,7 @@
"issues": "https://github.com/laravel/sail/issues",
"source": "https://github.com/laravel/sail"
},
- "time": "2023-10-18T13:57:15+00:00"
+ "time": "2023-11-20T15:56:47+00:00"
},
{
"name": "mockery/mockery",
@@ -8502,176 +6433,18 @@
},
"time": "2022-02-21T01:04:05+00:00"
},
- {
- "name": "phpdocumentor/reflection-common",
- "version": "2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
- "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
- "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-2.x": "2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jaap van Otterdijk",
- "email": "opensource@ijaap.nl"
- }
- ],
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
- "homepage": "http://www.phpdoc.org",
- "keywords": [
- "FQSEN",
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
- "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
- },
- "time": "2020-06-27T09:03:43+00:00"
- },
- {
- "name": "phpdocumentor/type-resolver",
- "version": "1.7.3",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419",
- "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419",
- "shasum": ""
- },
- "require": {
- "doctrine/deprecations": "^1.0",
- "php": "^7.4 || ^8.0",
- "phpdocumentor/reflection-common": "^2.0",
- "phpstan/phpdoc-parser": "^1.13"
- },
- "require-dev": {
- "ext-tokenizer": "*",
- "phpbench/phpbench": "^1.2",
- "phpstan/extension-installer": "^1.1",
- "phpstan/phpstan": "^1.8",
- "phpstan/phpstan-phpunit": "^1.1",
- "phpunit/phpunit": "^9.5",
- "rector/rector": "^0.13.9",
- "vimeo/psalm": "^4.25"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-1.x": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- }
- ],
- "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
- "support": {
- "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
- "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.3"
- },
- "time": "2023-08-12T11:01:26+00:00"
- },
- {
- "name": "phpstan/phpdoc-parser",
- "version": "1.24.2",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "bcad8d995980440892759db0c32acae7c8e79442"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bcad8d995980440892759db0c32acae7c8e79442",
- "reference": "bcad8d995980440892759db0c32acae7c8e79442",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "require-dev": {
- "doctrine/annotations": "^2.0",
- "nikic/php-parser": "^4.15",
- "php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^1.5",
- "phpstan/phpstan-phpunit": "^1.1",
- "phpstan/phpstan-strict-rules": "^1.0",
- "phpunit/phpunit": "^9.5",
- "symfony/process": "^5.2"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "PHPStan\\PhpDocParser\\": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "PHPDoc parser with support for nullable, intersection and generic types",
- "support": {
- "issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.2"
- },
- "time": "2023-09-26T12:28:12+00:00"
- },
{
"name": "phpunit/php-code-coverage",
- "version": "10.1.7",
+ "version": "10.1.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "355324ca4980b8916c18b9db29f3ef484078f26e"
+ "reference": "84838eed9ded511f61dc3e8b5944a52d9017b297"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/355324ca4980b8916c18b9db29f3ef484078f26e",
- "reference": "355324ca4980b8916c18b9db29f3ef484078f26e",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/84838eed9ded511f61dc3e8b5944a52d9017b297",
+ "reference": "84838eed9ded511f61dc3e8b5944a52d9017b297",
"shasum": ""
},
"require": {
@@ -8728,7 +6501,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.7"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.8"
},
"funding": [
{
@@ -8736,7 +6509,7 @@
"type": "github"
}
],
- "time": "2023-10-04T15:34:17+00:00"
+ "time": "2023-11-15T13:31:15+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -10306,16 +8079,16 @@
},
{
"name": "symfony/yaml",
- "version": "v6.3.3",
+ "version": "v6.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add"
+ "reference": "3493af8a8dad7fa91c77fa473ba23ecd95334a92"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/e23292e8c07c85b971b44c1c4b87af52133e2add",
- "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/3493af8a8dad7fa91c77fa473ba23ecd95334a92",
+ "reference": "3493af8a8dad7fa91c77fa473ba23ecd95334a92",
"shasum": ""
},
"require": {
@@ -10358,7 +8131,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v6.3.3"
+ "source": "https://github.com/symfony/yaml/tree/v6.3.8"
},
"funding": [
{
@@ -10374,20 +8147,20 @@
"type": "tidelift"
}
],
- "time": "2023-07-31T07:08:24+00:00"
+ "time": "2023-11-06T10:58:05+00:00"
},
{
"name": "theseer/tokenizer",
- "version": "1.2.1",
+ "version": "1.2.2",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
+ "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
+ "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
"shasum": ""
},
"require": {
@@ -10416,7 +8189,7 @@
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"support": {
"issues": "https://github.com/theseer/tokenizer/issues",
- "source": "https://github.com/theseer/tokenizer/tree/1.2.1"
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.2"
},
"funding": [
{
@@ -10424,7 +8197,7 @@
"type": "github"
}
],
- "time": "2021-07-28T10:34:58+00:00"
+ "time": "2023-11-20T00:12:19+00:00"
}
],
"aliases": [],
diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php
index c874bda..8cf6d7e 100644
--- a/database/factories/UserFactory.php
+++ b/database/factories/UserFactory.php
@@ -3,6 +3,7 @@
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
+use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
/**
@@ -10,6 +11,8 @@ use Illuminate\Support\Str;
*/
class UserFactory extends Factory
{
+ protected static ?string $password;
+
/**
* Define the model's default state.
*
@@ -17,23 +20,13 @@ class UserFactory extends Factory
*/
public function definition(): array
{
- $faker = \Faker\Factory::create();
- $faker->addProvider(new \Faker\Provider\CustomInternetProvider($faker));
-
- $first_name = $faker->firstName();
- $last_name = $faker->lastName();
-
- $display_name = $first_name . ' ' . $last_name;
-
return [
- 'first_name' => $first_name,
- 'last_name' => $last_name,
- 'email' => $faker->safeEmail(),
+ 'username' => fake()->name(),
+ 'is_under_14' => fake()->randomElement([0, 1]),
+ 'email' => fake()->unique()->safeEmail(),
'email_verified_at' => now(),
- 'phone' => $faker->phoneNumber(),
- 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
+ 'password' => static::$password ??= Hash::make('password'),
'remember_token' => Str::random(10),
- 'display_name' => $display_name,
];
}
diff --git a/database/factories/UserFactory.php.old b/database/factories/UserFactory.php.old
new file mode 100644
index 0000000..c874bda
--- /dev/null
+++ b/database/factories/UserFactory.php.old
@@ -0,0 +1,49 @@
+
+ */
+class UserFactory extends Factory
+{
+ /**
+ * Define the model's default state.
+ *
+ * @return array
+ */
+ public function definition(): array
+ {
+ $faker = \Faker\Factory::create();
+ $faker->addProvider(new \Faker\Provider\CustomInternetProvider($faker));
+
+ $first_name = $faker->firstName();
+ $last_name = $faker->lastName();
+
+ $display_name = $first_name . ' ' . $last_name;
+
+ return [
+ 'first_name' => $first_name,
+ 'last_name' => $last_name,
+ 'email' => $faker->safeEmail(),
+ 'email_verified_at' => now(),
+ 'phone' => $faker->phoneNumber(),
+ 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
+ 'remember_token' => Str::random(10),
+ 'display_name' => $display_name,
+ ];
+ }
+
+ /**
+ * Indicate that the model's email address should be unverified.
+ */
+ public function unverified(): static
+ {
+ return $this->state(fn (array $attributes) => [
+ 'email_verified_at' => null,
+ ]);
+ }
+}
diff --git a/database/factories/WorkshopFactory.php b/database/factories/WorkshopFactory.php
new file mode 100644
index 0000000..a14e3d5
--- /dev/null
+++ b/database/factories/WorkshopFactory.php
@@ -0,0 +1,33 @@
+
+ */
+class WorkshopFactory extends Factory
+{
+ /**
+ * Define the model's default state.
+ *
+ * @return array
+ */
+ public function definition(): array
+ {
+ $startDate = Carbon::parse($this->faker->dateTimeBetween('now', '+1 year'));
+ $endDate = Carbon::parse($this->faker->dateTimeBetween($startDate, '+1 year'));
+ $publishDate = Carbon::parse($this->faker->dateTimeBetween('-1 month', '+1 month'));
+
+ return [
+ 'title' => $this->faker->sentence(),
+ 'start_at' => $startDate,
+ 'end_at' => $endDate,
+ 'publish_at' => $publishDate,
+ 'status' => $this->faker->randomElement(['draft', 'soon', 'open', 'closed', 'cancelled']),
+ 'content' => $this->faker->paragraphs(3, true),
+ ];
+ }
+}
diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php
index 53656a4..4b1e53f 100644
--- a/database/migrations/2014_10_12_000000_create_users_table.php
+++ b/database/migrations/2014_10_12_000000_create_users_table.php
@@ -12,15 +12,12 @@ return new class extends Migration
public function up(): void
{
Schema::create('users', function (Blueprint $table) {
- $table->uuid('id')->primary();
+ $table->id();
$table->string('username')->unique();
- $table->string('password')->nullable();
- $table->boolean('enabled')->default(true);
- $table->string('first_name');
- $table->string('last_name');
- $table->string('email');
+ $table->string('email')->nullable();
$table->timestamp('email_verified_at')->nullable();
- $table->string('phone')->nullable();
+ $table->boolean('is_under_14')->nullable();
+ $table->string('password');
$table->rememberToken();
$table->timestamps();
});
diff --git a/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php b/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php
new file mode 100644
index 0000000..81a7229
--- /dev/null
+++ b/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php
@@ -0,0 +1,28 @@
+string('email')->primary();
+ $table->string('token');
+ $table->timestamp('created_at')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('password_reset_tokens');
+ }
+};
diff --git a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php
index 29db28a..e828ad8 100644
--- a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php
+++ b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php
@@ -13,7 +13,7 @@ return new class extends Migration
{
Schema::create('personal_access_tokens', function (Blueprint $table) {
$table->id();
- $table->uuidMorphs('tokenable');
+ $table->morphs('tokenable');
$table->string('name');
$table->string('token', 64)->unique();
$table->text('abilities')->nullable();
diff --git a/database/migrations/2023_11_21_090337_create_workshops_table.php b/database/migrations/2023_11_21_090337_create_workshops_table.php
new file mode 100644
index 0000000..b42d994
--- /dev/null
+++ b/database/migrations/2023_11_21_090337_create_workshops_table.php
@@ -0,0 +1,33 @@
+id();
+ $table->string('title');
+ $table->timestamp('start_at')->useCurrent();
+ $table->timestamp('end_at')->useCurrent();
+ $table->timestamp('publish_at')->useCurrent()->nullable();
+ $table->string('status')->default('draft');
+ $table->text('content')->nullable();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('workshops');
+ }
+};
diff --git a/database/migrations/2023_11_21_090406_create_posts_table.php b/database/migrations/2023_11_21_090406_create_posts_table.php
new file mode 100644
index 0000000..3765173
--- /dev/null
+++ b/database/migrations/2023_11_21_090406_create_posts_table.php
@@ -0,0 +1,27 @@
+id();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('posts');
+ }
+};
diff --git a/database/migrations/2023_11_21_090751_create_media_table.php b/database/migrations/2023_11_21_090751_create_media_table.php
new file mode 100644
index 0000000..adea0bd
--- /dev/null
+++ b/database/migrations/2023_11_21_090751_create_media_table.php
@@ -0,0 +1,27 @@
+id();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('media');
+ }
+};
diff --git a/database/migrations/2023_11_22_094913_create_verification_codes_table.php b/database/migrations/2023_11_22_094913_create_verification_codes_table.php
new file mode 100644
index 0000000..691a7e3
--- /dev/null
+++ b/database/migrations/2023_11_22_094913_create_verification_codes_table.php
@@ -0,0 +1,30 @@
+id();
+ $table->foreignId('user_id')->constrained()->onDelete('cascade');
+ $table->char('code', 6)->unique();
+ $table->string('type');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('verification_codes');
+ }
+};
diff --git a/database/migrations/2023_11_23_033746_create_jobs_table.php b/database/migrations/2023_11_23_033746_create_jobs_table.php
new file mode 100644
index 0000000..6098d9b
--- /dev/null
+++ b/database/migrations/2023_11_23_033746_create_jobs_table.php
@@ -0,0 +1,32 @@
+bigIncrements('id');
+ $table->string('queue')->index();
+ $table->longText('payload');
+ $table->unsignedTinyInteger('attempts');
+ $table->unsignedInteger('reserved_at')->nullable();
+ $table->unsignedInteger('available_at');
+ $table->unsignedInteger('created_at');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('jobs');
+ }
+};
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
index d3eee24..2c9fa6c 100644
--- a/database/seeders/DatabaseSeeder.php
+++ b/database/seeders/DatabaseSeeder.php
@@ -3,10 +3,7 @@
namespace Database\Seeders;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
-
-use Carbon\Carbon;
use Illuminate\Database\Seeder;
-use Illuminate\Support\Facades\Hash;
class DatabaseSeeder extends Seeder
{
@@ -15,16 +12,14 @@ class DatabaseSeeder extends Seeder
*/
public function run(): void
{
- \App\Models\User::factory(40)->create();
+ \App\Models\User::factory(10)->create();
\App\Models\User::factory()->create([
- 'display_name' => 'James Collins',
- 'first_name' => 'James',
- 'last_name' => 'Collins',
- 'email' => 'james@stemmechanics.com.au',
- 'email_verified_at' => Carbon::now(),
- 'phone' => '0400 130 190',
- 'password' => Hash::make('password@12')
+ 'username' => 'admin',
+ 'email' => 'admin@example.com',
+ 'is_under_14' => 0
]);
+
+ \App\Models\Workshop::factory(10)->create();
}
}
diff --git a/database/seeders/DatabaseSeeder.php.old b/database/seeders/DatabaseSeeder.php.old
new file mode 100644
index 0000000..d3eee24
--- /dev/null
+++ b/database/seeders/DatabaseSeeder.php.old
@@ -0,0 +1,30 @@
+create();
+
+ \App\Models\User::factory()->create([
+ 'display_name' => 'James Collins',
+ 'first_name' => 'James',
+ 'last_name' => 'Collins',
+ 'email' => 'james@stemmechanics.com.au',
+ 'email_verified_at' => Carbon::now(),
+ 'phone' => '0400 130 190',
+ 'password' => Hash::make('password@12')
+ ]);
+ }
+}
diff --git a/package-lock.json b/package-lock.json
index 989d08b..c23e9ab 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,338 +1,47 @@
{
- "name": "website",
+ "name": "new-website",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
- "dependencies": {
- "@tiptap/extension-highlight": "^2.1.8",
- "@tiptap/extension-image": "^2.0.3",
- "@tiptap/extension-link": "^2.0.3",
- "@tiptap/extension-subscript": "^2.0.3",
- "@tiptap/extension-superscript": "^2.1.8",
- "@tiptap/extension-text-align": "^2.0.3",
- "@tiptap/extension-underline": "^2.0.3",
- "@tiptap/pm": "^2.0.3",
- "@tiptap/starter-kit": "^2.1.8",
- "@tiptap/vue-3": "^2.0.3",
- "@vitejs/plugin-vue": "^4.4.0",
- "dompurify": "^3.0.4",
- "dotenv": "^16.0.3",
- "pinia": "^2.0.28",
- "pinia-plugin-persistedstate": "^3.2.0",
- "sass": "^1.69.5",
- "vue": "^3.3.7",
- "vue-router": "^4.2.2"
- },
"devDependencies": {
- "@ls-lint/ls-lint": "^2.2.2",
- "@typescript-eslint/eslint-plugin": "^6.9.1",
- "@typescript-eslint/parser": "^6.9.1",
- "eslint": "^8.52.0",
- "eslint-config-prettier": "^9.0.0",
- "eslint-plugin-jsdoc": "^46.6.0",
- "eslint-plugin-vue": "^9.18.1",
- "knip": "^2.38.6",
+ "autoprefixer": "^10.4.16",
+ "axios": "^1.6.1",
"laravel-vite-plugin": "^0.8.0",
- "lodash": "^4.17.19",
- "postcss": "^8.4.27",
- "prettier": "3.0.3",
- "rollup-plugin-analyzer": "^4.0.0",
- "ts-node": "^10.9.1",
- "typescript": "^5.0.4",
- "unocss": "^0.57.1",
- "vite": "^4.4.7",
- "vite-plugin-compression2": "^0.11.0",
- "vitest": "^0.34.3"
+ "postcss": "^8.4.31",
+ "precss": "^4.0.0",
+ "tailwindcss": "^3.3.5",
+ "vite": "^4.0.0"
}
},
- "node_modules/@aashutoshrathi/word-wrap": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
- "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+ "node_modules/@alloc/quick-lru": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
"dev": true,
"engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@ampproject/remapping": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
- "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
- "dev": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@antfu/install-pkg": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.1.1.tgz",
- "integrity": "sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==",
- "dev": true,
- "dependencies": {
- "execa": "^5.1.1",
- "find-up": "^5.0.0"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/antfu"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@antfu/utils": {
- "version": "0.7.6",
- "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.6.tgz",
- "integrity": "sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.22.13",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
- "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
- "dev": true,
- "dependencies": {
- "@babel/highlight": "^7.22.13",
- "chalk": "^2.4.2"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/code-frame/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/code-frame/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/@babel/code-frame/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "node_modules/@csstools/convert-colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz",
+ "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==",
"dev": true,
"engines": {
- "node": ">=0.8.0"
+ "node": ">=4.0.0"
}
},
- "node_modules/@babel/code-frame/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "node_modules/@csstools/sass-import-resolve": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/sass-import-resolve/-/sass-import-resolve-1.0.0.tgz",
+ "integrity": "sha512-pH4KCsbtBLLe7eqUrw8brcuFO8IZlN36JjdKlOublibVdAIPHCzEnpBWOVUXK5sCf+DpBi8ZtuWtjF0srybdeA==",
"dev": true,
"engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
- "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
- "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.22.20",
- "chalk": "^2.4.2",
- "js-tokens": "^4.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
- "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@cspotcode/source-map-support": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
- "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
- "dev": true,
- "dependencies": {
- "@jridgewell/trace-mapping": "0.3.9"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@ericcornelissen/bash-parser": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/@ericcornelissen/bash-parser/-/bash-parser-0.5.2.tgz",
- "integrity": "sha512-4pIMTa1nEFfMXitv7oaNEWOdM+zpOZavesa5GaiWTgda6Zk32CFGxjUp/iIaN0PwgUW1yTq/fztSjbpE8SLGZQ==",
- "dev": true,
- "dependencies": {
- "array-last": "^1.1.1",
- "babylon": "^6.9.1",
- "compose-function": "^3.0.3",
- "deep-freeze": "0.0.1",
- "filter-iterator": "0.0.1",
- "filter-obj": "^1.1.0",
- "has-own-property": "^0.1.0",
- "identity-function": "^1.0.0",
- "is-iterable": "^1.1.0",
- "iterable-lookahead": "^1.0.0",
- "lodash.curry": "^4.1.1",
- "magic-string": "^0.16.0",
- "map-obj": "^2.0.0",
- "object-pairs": "^0.1.0",
- "object-values": "^1.0.0",
- "reverse-arguments": "^1.0.0",
- "shell-quote-word": "^1.0.1",
- "to-pascal-case": "^1.0.0",
- "unescape-js": "^1.0.5"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@es-joy/jsdoccomment": {
- "version": "0.40.1",
- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.40.1.tgz",
- "integrity": "sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==",
- "dev": true,
- "dependencies": {
- "comment-parser": "1.4.0",
- "esquery": "^1.5.0",
- "jsdoc-type-pratt-parser": "~4.0.0"
- },
- "engines": {
- "node": ">=16"
+ "node": ">=4.0.0"
}
},
"node_modules/@esbuild/android-arm": {
@@ -342,6 +51,7 @@
"cpu": [
"arm"
],
+ "dev": true,
"optional": true,
"os": [
"android"
@@ -357,6 +67,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"optional": true,
"os": [
"android"
@@ -372,6 +83,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"optional": true,
"os": [
"android"
@@ -387,6 +99,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"optional": true,
"os": [
"darwin"
@@ -402,6 +115,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"optional": true,
"os": [
"darwin"
@@ -417,6 +131,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"optional": true,
"os": [
"freebsd"
@@ -432,6 +147,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"optional": true,
"os": [
"freebsd"
@@ -447,6 +163,7 @@
"cpu": [
"arm"
],
+ "dev": true,
"optional": true,
"os": [
"linux"
@@ -462,6 +179,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"optional": true,
"os": [
"linux"
@@ -477,6 +195,7 @@
"cpu": [
"ia32"
],
+ "dev": true,
"optional": true,
"os": [
"linux"
@@ -492,6 +211,7 @@
"cpu": [
"loong64"
],
+ "dev": true,
"optional": true,
"os": [
"linux"
@@ -507,6 +227,7 @@
"cpu": [
"mips64el"
],
+ "dev": true,
"optional": true,
"os": [
"linux"
@@ -522,6 +243,7 @@
"cpu": [
"ppc64"
],
+ "dev": true,
"optional": true,
"os": [
"linux"
@@ -537,6 +259,7 @@
"cpu": [
"riscv64"
],
+ "dev": true,
"optional": true,
"os": [
"linux"
@@ -552,6 +275,7 @@
"cpu": [
"s390x"
],
+ "dev": true,
"optional": true,
"os": [
"linux"
@@ -567,6 +291,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"optional": true,
"os": [
"linux"
@@ -582,6 +307,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"optional": true,
"os": [
"netbsd"
@@ -597,6 +323,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"optional": true,
"os": [
"openbsd"
@@ -612,6 +339,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"optional": true,
"os": [
"sunos"
@@ -627,6 +355,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"optional": true,
"os": [
"win32"
@@ -642,6 +371,7 @@
"cpu": [
"ia32"
],
+ "dev": true,
"optional": true,
"os": [
"win32"
@@ -657,6 +387,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"optional": true,
"os": [
"win32"
@@ -665,171 +396,6 @@
"node": ">=12"
}
},
- "node_modules/@eslint-community/eslint-utils": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
- "dev": true,
- "dependencies": {
- "eslint-visitor-keys": "^3.3.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
- }
- },
- "node_modules/@eslint-community/regexpp": {
- "version": "4.9.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz",
- "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==",
- "dev": true,
- "engines": {
- "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
- }
- },
- "node_modules/@eslint/eslintrc": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz",
- "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==",
- "dev": true,
- "dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.6.0",
- "globals": "^13.19.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@eslint/js": {
- "version": "8.52.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz",
- "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==",
- "dev": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/@humanwhocodes/config-array": {
- "version": "0.11.13",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
- "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
- "dev": true,
- "dependencies": {
- "@humanwhocodes/object-schema": "^2.0.1",
- "debug": "^4.1.1",
- "minimatch": "^3.0.5"
- },
- "engines": {
- "node": ">=10.10.0"
- }
- },
- "node_modules/@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
- "dev": true,
- "engines": {
- "node": ">=12.22"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@humanwhocodes/object-schema": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
- "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
- "dev": true
- },
- "node_modules/@iconify/types": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz",
- "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
- "dev": true
- },
- "node_modules/@iconify/utils": {
- "version": "2.1.11",
- "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.1.11.tgz",
- "integrity": "sha512-M/w3PkN8zQYXi8N6qK/KhnYMfEbbb6Sk8RZVn8g+Pmmu5ybw177RpsaGwpziyHeUsu4etrexYSWq3rwnIqzYCg==",
- "dev": true,
- "dependencies": {
- "@antfu/install-pkg": "^0.1.1",
- "@antfu/utils": "^0.7.5",
- "@iconify/types": "^2.0.0",
- "debug": "^4.3.4",
- "kolorist": "^1.8.0",
- "local-pkg": "^0.4.3"
- }
- },
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "dev": true,
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/@jest/schemas": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
- "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
- "dev": true,
- "dependencies": {
- "@sinclair/typebox": "^0.27.8"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
@@ -865,35 +431,17 @@
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.15",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
+ "dev": true
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+ "version": "0.3.20",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
+ "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
"dev": true,
"dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
- "node_modules/@ls-lint/ls-lint": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/@ls-lint/ls-lint/-/ls-lint-2.2.2.tgz",
- "integrity": "sha512-gdolCgwveSHZczfKtoVFkf+NZJjd7KRQs9QnLVEiMFEJLK4H7nBrZuC/ASl/AYMZvFmtCocRt3d5E0UF/34vCQ==",
- "cpu": [
- "x64",
- "arm64",
- "s390x"
- ],
- "dev": true,
- "os": [
- "darwin",
- "linux",
- "win32"
- ],
- "bin": {
- "ls-lint": "bin/cli.js"
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
"node_modules/@nodelib/fs.scandir": {
@@ -931,1832 +479,35 @@
"node": ">= 8"
}
},
- "node_modules/@npmcli/map-workspaces": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.4.tgz",
- "integrity": "sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg==",
- "dev": true,
- "dependencies": {
- "@npmcli/name-from-folder": "^2.0.0",
- "glob": "^10.2.2",
- "minimatch": "^9.0.0",
- "read-package-json-fast": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@npmcli/map-workspaces/node_modules/minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@npmcli/name-from-folder": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz",
- "integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==",
- "dev": true,
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "dev": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@pnpm/constants": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/@pnpm/constants/-/constants-7.1.1.tgz",
- "integrity": "sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==",
- "dev": true,
- "engines": {
- "node": ">=16.14"
- },
- "funding": {
- "url": "https://opencollective.com/pnpm"
- }
- },
- "node_modules/@pnpm/core-loggers": {
- "version": "9.0.4",
- "resolved": "https://registry.npmjs.org/@pnpm/core-loggers/-/core-loggers-9.0.4.tgz",
- "integrity": "sha512-P5IiCwLbYy/vlCDTxEMReB67NVs1Y4ip6iIEM3Y1fbxm0JbPMWTUMKGf2fy7eqGDF3/Vuxk5H7o/A4II6SWzMA==",
- "dev": true,
- "dependencies": {
- "@pnpm/types": "9.4.0"
- },
- "engines": {
- "node": ">=16.14"
- },
- "funding": {
- "url": "https://opencollective.com/pnpm"
- },
- "peerDependencies": {
- "@pnpm/logger": "^5.0.0"
- }
- },
- "node_modules/@pnpm/error": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/@pnpm/error/-/error-5.0.2.tgz",
- "integrity": "sha512-0TEm+tWNYm+9uh6DSKyRbv8pv/6b4NL0PastLvMxIoqZbBZ5Zj1cYi332R9xsSUi31ZOsu2wpgn/bC7DA9hrjg==",
- "dev": true,
- "dependencies": {
- "@pnpm/constants": "7.1.1"
- },
- "engines": {
- "node": ">=16.14"
- },
- "funding": {
- "url": "https://opencollective.com/pnpm"
- }
- },
- "node_modules/@pnpm/fetching-types": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@pnpm/fetching-types/-/fetching-types-5.0.0.tgz",
- "integrity": "sha512-o9gdO1v8Uc5P2fBBuW6GSpfTqIivQmQlqjQJdFiQX0m+tgxlrMRneIg392jZuc6fk7kFqjLheInlslgJfwY+4Q==",
- "dev": true,
- "dependencies": {
- "@zkochan/retry": "^0.2.0",
- "node-fetch": "3.0.0-beta.9"
- },
- "engines": {
- "node": ">=16.14"
- },
- "funding": {
- "url": "https://opencollective.com/pnpm"
- }
- },
- "node_modules/@pnpm/graceful-fs": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@pnpm/graceful-fs/-/graceful-fs-3.2.0.tgz",
- "integrity": "sha512-vRoXJxscDpHak7YE9SqCkzfrayn+Lw+YueOeHIPEqkgokrHeYgYeONoc2kGh0ObHaRtNSsonozVfJ456kxLNvA==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.11"
- },
- "engines": {
- "node": ">=16.14"
- },
- "funding": {
- "url": "https://opencollective.com/pnpm"
- }
- },
- "node_modules/@pnpm/logger": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@pnpm/logger/-/logger-5.0.0.tgz",
- "integrity": "sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==",
- "dev": true,
- "dependencies": {
- "bole": "^5.0.0",
- "ndjson": "^2.0.0"
- },
- "engines": {
- "node": ">=12.17"
- }
- },
- "node_modules/@pnpm/npm-package-arg": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@pnpm/npm-package-arg/-/npm-package-arg-1.0.0.tgz",
- "integrity": "sha512-oQYP08exi6mOPdAZZWcNIGS+KKPsnNwUBzSuAEGWuCcqwMAt3k/WVCqVIXzBxhO5sP2b43og69VHmPj6IroKqw==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^4.0.1",
- "semver": "^7.3.5",
- "validate-npm-package-name": "^4.0.0"
- },
- "engines": {
- "node": ">=14.6"
- }
- },
- "node_modules/@pnpm/npm-resolver": {
- "version": "17.0.0",
- "resolved": "https://registry.npmjs.org/@pnpm/npm-resolver/-/npm-resolver-17.0.0.tgz",
- "integrity": "sha512-XCeFga+Am3rsTO+8IIuIPb6VsZ+iCiv5QJW61YDl4XuiqoyCFzNyGgGfv05n45lIfK0Gg1jA2ewlo0LpGelCUw==",
- "dev": true,
- "dependencies": {
- "@pnpm/core-loggers": "9.0.4",
- "@pnpm/error": "5.0.2",
- "@pnpm/fetching-types": "5.0.0",
- "@pnpm/graceful-fs": "3.2.0",
- "@pnpm/resolve-workspace-range": "5.0.1",
- "@pnpm/resolver-base": "11.0.0",
- "@pnpm/types": "9.4.0",
- "@zkochan/retry": "^0.2.0",
- "encode-registry": "^3.0.1",
- "load-json-file": "^6.2.0",
- "lru-cache": "^10.0.1",
- "normalize-path": "^3.0.0",
- "p-limit": "^3.1.0",
- "p-memoize": "4.0.1",
- "parse-npm-tarball-url": "^3.0.0",
- "path-temp": "^2.1.0",
- "ramda": "npm:@pnpm/ramda@0.28.1",
- "rename-overwrite": "^4.0.3",
- "semver": "^7.5.4",
- "ssri": "10.0.5",
- "version-selector-type": "^3.0.0"
- },
- "engines": {
- "node": ">=16.14"
- },
- "funding": {
- "url": "https://opencollective.com/pnpm"
- },
- "peerDependencies": {
- "@pnpm/logger": "^5.0.0"
- }
- },
- "node_modules/@pnpm/npm-resolver/node_modules/lru-cache": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz",
- "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==",
- "dev": true,
- "engines": {
- "node": "14 || >=16.14"
- }
- },
- "node_modules/@pnpm/resolve-workspace-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@pnpm/resolve-workspace-range/-/resolve-workspace-range-5.0.1.tgz",
- "integrity": "sha512-yQ0pMthlw8rTgS/C9hrjne+NEnnSNevCjtdodd7i15I59jMBYciHifZ/vjg0NY+Jl+USTc3dBE+0h/4tdYjMKg==",
- "dev": true,
- "dependencies": {
- "semver": "^7.4.0"
- },
- "engines": {
- "node": ">=16.14"
- },
- "funding": {
- "url": "https://opencollective.com/pnpm"
- }
- },
- "node_modules/@pnpm/resolver-base": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/@pnpm/resolver-base/-/resolver-base-11.0.0.tgz",
- "integrity": "sha512-oxfjO8Ie6aBQPXSqOWGJP9s0xj9Z4cbRI7fK63WKhjwmNH4CTrSfikRL2o4FoXo2APAbJEUp2lCxx+86dq2tUg==",
- "dev": true,
- "dependencies": {
- "@pnpm/types": "9.4.0"
- },
- "engines": {
- "node": ">=16.14"
- },
- "funding": {
- "url": "https://opencollective.com/pnpm"
- }
- },
- "node_modules/@pnpm/types": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-9.4.0.tgz",
- "integrity": "sha512-IRDuIuNobLRQe0UyY2gbrrTzYS46tTNvOEfL6fOf0Qa8NyxUzeXz946v7fQuQE3LSBf8ENBC5SXhRmDl+mBEqA==",
- "dev": true,
- "engines": {
- "node": ">=16.14"
- },
- "funding": {
- "url": "https://opencollective.com/pnpm"
- }
- },
- "node_modules/@pnpm/workspace.pkgs-graph": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/@pnpm/workspace.pkgs-graph/-/workspace.pkgs-graph-2.0.10.tgz",
- "integrity": "sha512-iGZZ23li6Ya68kHx3oaWPCN4JMzJ0njmmmWDRxUcHkc+nxtxTwpEM/FRl7yG1nBo39YwX2XTtou22h2nKipHnw==",
- "dev": true,
- "dependencies": {
- "@pnpm/npm-package-arg": "^1.0.0",
- "@pnpm/npm-resolver": "17.0.0",
- "@pnpm/resolve-workspace-range": "5.0.1",
- "ramda": "npm:@pnpm/ramda@0.28.1"
- },
- "engines": {
- "node": ">=16.14"
- },
- "funding": {
- "url": "https://opencollective.com/pnpm"
- }
- },
- "node_modules/@polka/url": {
- "version": "1.0.0-next.23",
- "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz",
- "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==",
- "dev": true
- },
- "node_modules/@popperjs/core": {
- "version": "2.11.8",
- "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
- "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/popperjs"
- }
- },
- "node_modules/@remirror/core-constants": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-2.0.2.tgz",
- "integrity": "sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ=="
- },
- "node_modules/@remirror/core-helpers": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@remirror/core-helpers/-/core-helpers-3.0.0.tgz",
- "integrity": "sha512-tusEgQJIqg4qKj6HSBUFcyRnWnziw3neh4T9wOmsPGHFC3w9kl5KSrDb9UAgE8uX6y32FnS7vJ955mWOl3n50A==",
- "dependencies": {
- "@remirror/core-constants": "^2.0.2",
- "@remirror/types": "^1.0.1",
- "@types/object.omit": "^3.0.0",
- "@types/object.pick": "^1.3.2",
- "@types/throttle-debounce": "^2.1.0",
- "case-anything": "^2.1.13",
- "dash-get": "^1.0.2",
- "deepmerge": "^4.3.1",
- "fast-deep-equal": "^3.1.3",
- "make-error": "^1.3.6",
- "object.omit": "^3.0.0",
- "object.pick": "^1.3.0",
- "throttle-debounce": "^3.0.1"
- }
- },
- "node_modules/@remirror/types": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@remirror/types/-/types-1.0.1.tgz",
- "integrity": "sha512-VlZQxwGnt1jtQ18D6JqdIF+uFZo525WEqrfp9BOc3COPpK4+AWCgdnAWL+ho6imWcoINlGjR/+3b6y5C1vBVEA==",
- "dependencies": {
- "type-fest": "^2.19.0"
- }
- },
- "node_modules/@remirror/types/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@rollup/pluginutils": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz",
- "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==",
- "dev": true,
- "dependencies": {
- "@types/estree": "^1.0.0",
- "estree-walker": "^2.0.2",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@sinclair/typebox": {
- "version": "0.27.8",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
- "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
- "dev": true
- },
- "node_modules/@snyk/github-codeowners": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@snyk/github-codeowners/-/github-codeowners-1.1.0.tgz",
- "integrity": "sha512-lGFf08pbkEac0NYgVf4hdANpAgApRjNByLXB+WBip3qj1iendOIyAwP2GKkKbQMNVy2r1xxDf0ssfWscoiC+Vw==",
- "dev": true,
- "dependencies": {
- "commander": "^4.1.1",
- "ignore": "^5.1.8",
- "p-map": "^4.0.0"
- },
- "bin": {
- "github-codeowners": "dist/cli.js"
- },
- "engines": {
- "node": ">=8.10"
- }
- },
- "node_modules/@tiptap/core": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.1.12.tgz",
- "integrity": "sha512-ZGc3xrBJA9KY8kln5AYTj8y+GDrKxi7u95xIl2eccrqTY5CQeRu6HRNM1yT4mAjuSaG9jmazyjGRlQuhyxCKxQ==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/pm": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-blockquote": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.1.12.tgz",
- "integrity": "sha512-Qb3YRlCfugx9pw7VgLTb+jY37OY4aBJeZnqHzx4QThSm13edNYjasokbX0nTwL1Up4NPTcY19JUeHt6fVaVVGg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-bold": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.1.12.tgz",
- "integrity": "sha512-AZGxIxcGU1/y6V2YEbKsq6BAibL8yQrbRm6EdcBnby41vj1WziewEKswhLGmZx5IKM2r2ldxld03KlfSIlKQZg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-bubble-menu": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.1.12.tgz",
- "integrity": "sha512-gAGi21EQ4wvLmT7klgariAc2Hf+cIjaNU2NWze3ut6Ku9gUo5ZLqj1t9SKHmNf4d5JG63O8GxpErqpA7lHlRtw==",
- "dependencies": {
- "tippy.js": "^6.3.7"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0",
- "@tiptap/pm": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-bullet-list": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.1.12.tgz",
- "integrity": "sha512-vtD8vWtNlmAZX8LYqt2yU9w3mU9rPCiHmbp4hDXJs2kBnI0Ju/qAyXFx6iJ3C3XyuMnMbJdDI9ee0spAvFz7cQ==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-code": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.1.12.tgz",
- "integrity": "sha512-CRiRq5OTC1lFgSx6IMrECqmtb93a0ZZKujEnaRhzWliPBjLIi66va05f/P1vnV6/tHaC3yfXys6dxB5A4J8jxw==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-code-block": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.1.12.tgz",
- "integrity": "sha512-RXtSYCVsnk8D+K80uNZShClfZjvv1EgO42JlXLVGWQdIgaNyuOv/6I/Jdf+ZzhnpsBnHufW+6TJjwP5vJPSPHA==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0",
- "@tiptap/pm": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-document": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.1.12.tgz",
- "integrity": "sha512-0QNfAkCcFlB9O8cUNSwTSIQMV9TmoEhfEaLz/GvbjwEq4skXK3bU+OQX7Ih07waCDVXIGAZ7YAZogbvrn/WbOw==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-dropcursor": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.1.12.tgz",
- "integrity": "sha512-0tT/q8nL4NBCYPxr9T0Brck+RQbWuczm9nV0bnxgt0IiQXoRHutfPWdS7GA65PTuVRBS/3LOco30fbjFhkfz/A==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0",
- "@tiptap/pm": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-floating-menu": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.1.12.tgz",
- "integrity": "sha512-uo0ydCJNg6AWwLT6cMUJYVChfvw2PY9ZfvKRhh9YJlGfM02jS4RUG/bJBts6R37f+a5FsOvAVwg8EvqPlNND1A==",
- "dependencies": {
- "tippy.js": "^6.3.7"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0",
- "@tiptap/pm": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-gapcursor": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.1.12.tgz",
- "integrity": "sha512-zFYdZCqPgpwoB7whyuwpc8EYLYjUE5QYKb8vICvc+FraBUDM51ujYhFSgJC3rhs8EjI+8GcK8ShLbSMIn49YOQ==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0",
- "@tiptap/pm": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-hard-break": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.1.12.tgz",
- "integrity": "sha512-nqKcAYGEOafg9D+2cy1E4gHNGuL12LerVa0eS2SQOb+PT8vSel9OTKU1RyZldsWSQJ5rq/w4uIjmLnrSR2w6Yw==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-heading": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.1.12.tgz",
- "integrity": "sha512-MoANP3POAP68Ko9YXarfDKLM/kXtscgp6m+xRagPAghRNujVY88nK1qBMZ3JdvTVN6b/ATJhp8UdrZX96TLV2w==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-highlight": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-2.1.12.tgz",
- "integrity": "sha512-buen31cYPyiiHA2i0o2i/UcjRTg/42mNDCizGr1OJwvv3AELG3qOFc4Y58WJWIvWNv+1Dr4ZxHA3GNVn0ANWyg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-history": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.1.12.tgz",
- "integrity": "sha512-6b7UFVkvPjq3LVoCTrYZAczt5sQrQUaoDWAieVClVZoFLfjga2Fwjcfgcie8IjdPt8YO2hG/sar/c07i9vM0Sg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0",
- "@tiptap/pm": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-horizontal-rule": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.1.12.tgz",
- "integrity": "sha512-RRuoK4KxrXRrZNAjJW5rpaxjiP0FJIaqpi7nFbAua2oHXgsCsG8qbW2Y0WkbIoS8AJsvLZ3fNGsQ8gpdliuq3A==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0",
- "@tiptap/pm": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-image": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.1.12.tgz",
- "integrity": "sha512-VCgOTeNLuoR89WoCESLverpdZpPamOd7IprQbDIeG14sUySt7RHNgf2AEfyTYJEHij12rduvAwFzerPldVAIJg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-italic": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.1.12.tgz",
- "integrity": "sha512-/XYrW4ZEWyqDvnXVKbgTXItpJOp2ycswk+fJ3vuexyolO6NSs0UuYC6X4f+FbHYL5VuWqVBv7EavGa+tB6sl3A==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-link": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.1.12.tgz",
- "integrity": "sha512-Sti5hhlkCqi5vzdQjU/gbmr8kb578p+u0J4kWS+SSz3BknNThEm/7Id67qdjBTOQbwuN07lHjDaabJL0hSkzGQ==",
- "dependencies": {
- "linkifyjs": "^4.1.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0",
- "@tiptap/pm": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-list-item": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.1.12.tgz",
- "integrity": "sha512-Gk7hBFofAPmNQ8+uw8w5QSsZOMEGf7KQXJnx5B022YAUJTYYxO3jYVuzp34Drk9p+zNNIcXD4kc7ff5+nFOTrg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-ordered-list": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.1.12.tgz",
- "integrity": "sha512-tF6VGl+D2avCgn9U/2YLJ8qVmV6sPE/iEzVAFZuOSe6L0Pj7SQw4K6AO640QBob/d8VrqqJFHCb6l10amJOnXA==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-paragraph": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.1.12.tgz",
- "integrity": "sha512-hoH/uWPX+KKnNAZagudlsrr4Xu57nusGekkJWBcrb5MCDE91BS+DN2xifuhwXiTHxnwOMVFjluc0bPzQbkArsw==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-strike": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.1.12.tgz",
- "integrity": "sha512-HlhrzIjYUT8oCH9nYzEL2QTTn8d1ECnVhKvzAe6x41xk31PjLMHTUy8aYjeQEkWZOWZ34tiTmslV1ce6R3Dt8g==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-subscript": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-subscript/-/extension-subscript-2.1.12.tgz",
- "integrity": "sha512-tb1jysEvf4SIiXwEOgDTXiyrG39RVNHvn/zsGMg5wy5t9qUp9m1k7kKYTH084ktuKDAPQonCcpn3hwc+ngTFzg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-superscript": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-2.1.12.tgz",
- "integrity": "sha512-ek6L+DNsrjiJieArlgTvQt1VfJ56d8V19WAPW/ciRhq88YRlTEY9nSO3QuUCSUO1nGmE5OWQpgrsiW/XZbONVw==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-text": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.1.12.tgz",
- "integrity": "sha512-rCNUd505p/PXwU9Jgxo4ZJv4A3cIBAyAqlx/dtcY6cjztCQuXJhuQILPhjGhBTOLEEL4kW2wQtqzCmb7O8i2jg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-text-align": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-2.1.12.tgz",
- "integrity": "sha512-siMlwrkgVrAxxgmZn8GOc75J7UZi2CVrP9vDHkUPPyKm/fjssYekXwGCEk4Vswii1BbOh2gt+MDsRkeYRGyDlQ==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/extension-underline": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-2.1.12.tgz",
- "integrity": "sha512-NwwdhFT8gDD0VUNLQx85yFBhP9a8qg8GPuxlGzAP/lPTV8Ubh3vSeQ5N9k2ZF/vHlEvnugzeVCbmYn7wf8vn1g==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0"
- }
- },
- "node_modules/@tiptap/pm": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.1.12.tgz",
- "integrity": "sha512-Q3MXXQABG4CZBesSp82yV84uhJh/W0Gag6KPm2HRWPimSFELM09Z9/5WK9RItAYE0aLhe4Krnyiczn9AAa1tQQ==",
- "dependencies": {
- "prosemirror-changeset": "^2.2.0",
- "prosemirror-collab": "^1.3.0",
- "prosemirror-commands": "^1.3.1",
- "prosemirror-dropcursor": "^1.5.0",
- "prosemirror-gapcursor": "^1.3.1",
- "prosemirror-history": "^1.3.0",
- "prosemirror-inputrules": "^1.2.0",
- "prosemirror-keymap": "^1.2.0",
- "prosemirror-markdown": "^1.10.1",
- "prosemirror-menu": "^1.2.1",
- "prosemirror-model": "^1.18.1",
- "prosemirror-schema-basic": "^1.2.0",
- "prosemirror-schema-list": "^1.2.2",
- "prosemirror-state": "^1.4.1",
- "prosemirror-tables": "^1.3.0",
- "prosemirror-trailing-node": "^2.0.2",
- "prosemirror-transform": "^1.7.0",
- "prosemirror-view": "^1.28.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- }
- },
- "node_modules/@tiptap/starter-kit": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.1.12.tgz",
- "integrity": "sha512-+RoP1rWV7rSCit2+3wl2bjvSRiePRJE/7YNKbvH8Faz/+AMO23AFegHoUFynR7U0ouGgYDljGkkj35e0asbSDA==",
- "dependencies": {
- "@tiptap/core": "^2.1.12",
- "@tiptap/extension-blockquote": "^2.1.12",
- "@tiptap/extension-bold": "^2.1.12",
- "@tiptap/extension-bullet-list": "^2.1.12",
- "@tiptap/extension-code": "^2.1.12",
- "@tiptap/extension-code-block": "^2.1.12",
- "@tiptap/extension-document": "^2.1.12",
- "@tiptap/extension-dropcursor": "^2.1.12",
- "@tiptap/extension-gapcursor": "^2.1.12",
- "@tiptap/extension-hard-break": "^2.1.12",
- "@tiptap/extension-heading": "^2.1.12",
- "@tiptap/extension-history": "^2.1.12",
- "@tiptap/extension-horizontal-rule": "^2.1.12",
- "@tiptap/extension-italic": "^2.1.12",
- "@tiptap/extension-list-item": "^2.1.12",
- "@tiptap/extension-ordered-list": "^2.1.12",
- "@tiptap/extension-paragraph": "^2.1.12",
- "@tiptap/extension-strike": "^2.1.12",
- "@tiptap/extension-text": "^2.1.12"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- }
- },
- "node_modules/@tiptap/vue-3": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/@tiptap/vue-3/-/vue-3-2.1.12.tgz",
- "integrity": "sha512-yAcfmWw/9jtIUbhb0uGQVI9NoPYgHRasX2sAGWnm9Al+0aJktgmQ3mLCifXfXfjyEbeMF0p2L6Ul8tO7eho7aQ==",
- "dependencies": {
- "@tiptap/extension-bubble-menu": "^2.1.12",
- "@tiptap/extension-floating-menu": "^2.1.12"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/ueberdosis"
- },
- "peerDependencies": {
- "@tiptap/core": "^2.0.0",
- "@tiptap/pm": "^2.0.0",
- "vue": "^3.0.0"
- }
- },
- "node_modules/@tsconfig/node10": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
- "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
- "dev": true
- },
- "node_modules/@tsconfig/node12": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
- "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
- "dev": true
- },
- "node_modules/@tsconfig/node14": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
- "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
- "dev": true
- },
- "node_modules/@tsconfig/node16": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
- "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
- "dev": true
- },
- "node_modules/@types/chai": {
- "version": "4.3.9",
- "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.9.tgz",
- "integrity": "sha512-69TtiDzu0bcmKQv3yg1Zx409/Kd7r0b5F1PfpYJfSHzLGtB53547V4u+9iqKYsTu/O2ai6KTb0TInNpvuQ3qmg==",
- "dev": true
- },
- "node_modules/@types/chai-subset": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.4.tgz",
- "integrity": "sha512-CCWNXrJYSUIojZ1149ksLl3AN9cmZ5djf+yUoVVV+NuYrtydItQVlL2ZDqyC6M6O9LWRnVf8yYDxbXHO2TfQZg==",
- "dev": true,
- "dependencies": {
- "@types/chai": "*"
- }
- },
- "node_modules/@types/estree": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.3.tgz",
- "integrity": "sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==",
- "dev": true
- },
- "node_modules/@types/json-schema": {
- "version": "7.0.14",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz",
- "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==",
- "dev": true
- },
- "node_modules/@types/node": {
- "version": "20.8.7",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.7.tgz",
- "integrity": "sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==",
- "devOptional": true,
- "dependencies": {
- "undici-types": "~5.25.1"
- }
- },
- "node_modules/@types/object.omit": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/object.omit/-/object.omit-3.0.2.tgz",
- "integrity": "sha512-BxWU36cMP+FKD3OLFluQaj2cBev2sx2LJaHELuphHwnleq+xnEhTmuYYYx4pOT/1U/ZoR6B+RdvxWh2FD6lGGA=="
- },
- "node_modules/@types/object.pick": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@types/object.pick/-/object.pick-1.3.3.tgz",
- "integrity": "sha512-qZqHmdGEALeSATMB1djT1S5szv6Wtpb7DKpHrt2XG4iyKlV7C2Xk8GmDXr1KXakOqUfX6ohw7ceruYt4NVmB1Q=="
- },
- "node_modules/@types/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==",
- "dev": true
- },
- "node_modules/@types/throttle-debounce": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz",
- "integrity": "sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ=="
- },
- "node_modules/@typescript-eslint/eslint-plugin": {
- "version": "6.9.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.9.1.tgz",
- "integrity": "sha512-w0tiiRc9I4S5XSXXrMHOWgHgxbrBn1Ro+PmiYhSg2ZVdxrAJtQgzU5o2m1BfP6UOn7Vxcc6152vFjQfmZR4xEg==",
- "dev": true,
- "dependencies": {
- "@eslint-community/regexpp": "^4.5.1",
- "@typescript-eslint/scope-manager": "6.9.1",
- "@typescript-eslint/type-utils": "6.9.1",
- "@typescript-eslint/utils": "6.9.1",
- "@typescript-eslint/visitor-keys": "6.9.1",
- "debug": "^4.3.4",
- "graphemer": "^1.4.0",
- "ignore": "^5.2.4",
- "natural-compare": "^1.4.0",
- "semver": "^7.5.4",
- "ts-api-utils": "^1.0.1"
- },
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
- "eslint": "^7.0.0 || ^8.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/parser": {
- "version": "6.9.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.9.1.tgz",
- "integrity": "sha512-C7AK2wn43GSaCUZ9do6Ksgi2g3mwFkMO3Cis96kzmgudoVaKyt62yNzJOktP0HDLb/iO2O0n2lBOzJgr6Q/cyg==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/scope-manager": "6.9.1",
- "@typescript-eslint/types": "6.9.1",
- "@typescript-eslint/typescript-estree": "6.9.1",
- "@typescript-eslint/visitor-keys": "6.9.1",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "6.9.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.9.1.tgz",
- "integrity": "sha512-38IxvKB6NAne3g/+MyXMs2Cda/Sz+CEpmm+KLGEM8hx/CvnSRuw51i8ukfwB/B/sESdeTGet1NH1Wj7I0YXswg==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/types": "6.9.1",
- "@typescript-eslint/visitor-keys": "6.9.1"
- },
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/type-utils": {
- "version": "6.9.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.9.1.tgz",
- "integrity": "sha512-eh2oHaUKCK58qIeYp19F5V5TbpM52680sB4zNSz29VBQPTWIlE/hCj5P5B1AChxECe/fmZlspAWFuRniep1Skg==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/typescript-estree": "6.9.1",
- "@typescript-eslint/utils": "6.9.1",
- "debug": "^4.3.4",
- "ts-api-utils": "^1.0.1"
- },
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/types": {
- "version": "6.9.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.9.1.tgz",
- "integrity": "sha512-BUGslGOb14zUHOUmDB2FfT6SI1CcZEJYfF3qFwBeUrU6srJfzANonwRYHDpLBuzbq3HaoF2XL2hcr01c8f8OaQ==",
- "dev": true,
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "6.9.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.1.tgz",
- "integrity": "sha512-U+mUylTHfcqeO7mLWVQ5W/tMLXqVpRv61wm9ZtfE5egz7gtnmqVIw9ryh0mgIlkKk9rZLY3UHygsBSdB9/ftyw==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/types": "6.9.1",
- "@typescript-eslint/visitor-keys": "6.9.1",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "semver": "^7.5.4",
- "ts-api-utils": "^1.0.1"
- },
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/utils": {
- "version": "6.9.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.9.1.tgz",
- "integrity": "sha512-L1T0A5nFdQrMVunpZgzqPL6y2wVreSyHhKGZryS6jrEN7bD9NplVAyMryUhXsQ4TWLnZmxc2ekar/lSGIlprCA==",
- "dev": true,
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@types/json-schema": "^7.0.12",
- "@types/semver": "^7.5.0",
- "@typescript-eslint/scope-manager": "6.9.1",
- "@typescript-eslint/types": "6.9.1",
- "@typescript-eslint/typescript-estree": "6.9.1",
- "semver": "^7.5.4"
- },
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "6.9.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.1.tgz",
- "integrity": "sha512-MUaPUe/QRLEffARsmNfmpghuQkW436DvESW+h+M52w0coICHRfD6Np9/K6PdACwnrq1HmuLl+cSPZaJmeVPkSw==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/types": "6.9.1",
- "eslint-visitor-keys": "^3.4.1"
- },
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@ungap/structured-clone": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
- "dev": true
- },
- "node_modules/@unocss/astro": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/astro/-/astro-0.57.1.tgz",
- "integrity": "sha512-KNaqN/SGM/uz1QitajIkzNEw0jy9Zx9Wp8fl4GhfGYEMAN2+M4cuvBZRmlb6cLctSXmSAJQDG91ivbD1JijGnw==",
- "dev": true,
- "dependencies": {
- "@unocss/core": "0.57.1",
- "@unocss/reset": "0.57.1",
- "@unocss/vite": "0.57.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0"
- },
- "peerDependenciesMeta": {
- "vite": {
- "optional": true
- }
- }
- },
- "node_modules/@unocss/cli": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/cli/-/cli-0.57.1.tgz",
- "integrity": "sha512-wKuOaygrPNzDm5L7+2SfHsIi3knJrAQ8nH6OasVqB+bGDz6ybDlULV7wvUco6Os72ydh7YbWC2/WpqFii8U/3w==",
- "dev": true,
- "dependencies": {
- "@ampproject/remapping": "^2.2.1",
- "@rollup/pluginutils": "^5.0.5",
- "@unocss/config": "0.57.1",
- "@unocss/core": "0.57.1",
- "@unocss/preset-uno": "0.57.1",
- "cac": "^6.7.14",
- "chokidar": "^3.5.3",
- "colorette": "^2.0.20",
- "consola": "^3.2.3",
- "fast-glob": "^3.3.1",
- "magic-string": "^0.30.5",
- "pathe": "^1.1.1",
- "perfect-debounce": "^1.0.0"
- },
- "bin": {
- "unocss": "bin/unocss.mjs"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/cli/node_modules/magic-string": {
- "version": "0.30.5",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
- "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
- "dev": true,
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.15"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@unocss/config": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/config/-/config-0.57.1.tgz",
- "integrity": "sha512-mbuVO0mH1PX7rEkViMNWb3jG1ji7TUydo2DdnMHhJE+dOrGtnQzhzXGlAd4qqel1fnt/VWuOyZKwJA3QO6VCtg==",
- "dev": true,
- "dependencies": {
- "@unocss/core": "0.57.1",
- "unconfig": "^0.3.11"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/core": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/core/-/core-0.57.1.tgz",
- "integrity": "sha512-cqQW/4gCuk+bFMPg9lBanuRNQ9Lx1l4PpMN/6uKxI5WROpq7ce/Xb4uGvAxKLh3ITtFSpXs2cLfsy7QD6cVD/Q==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/extractor-arbitrary-variants": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/extractor-arbitrary-variants/-/extractor-arbitrary-variants-0.57.1.tgz",
- "integrity": "sha512-9s+azHhBnwjxm46TsD1RY0krDAwOR8tcw58Vtl3emd6C0VQsAOdoprt7UHE7GEXMvDVq7nMf8lAT0BM0LteW3w==",
- "dev": true,
- "dependencies": {
- "@unocss/core": "0.57.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/inspector": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/inspector/-/inspector-0.57.1.tgz",
- "integrity": "sha512-qV7ta7iHGX2EpZJ4IWY/05kgyhKFeWlvVJbrOnGsaH8gVt33T/43YAhB/8K5GIXBXIwkhwk13iB13nlg2gSheg==",
- "dev": true,
- "dependencies": {
- "@unocss/rule-utils": "0.57.1",
- "gzip-size": "^6.0.0",
- "sirv": "^2.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/postcss": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/postcss/-/postcss-0.57.1.tgz",
- "integrity": "sha512-DexrV+v/qkVh6t660rXigNr2Y6lON8jxD1z2KVk2bjHKhFflF6q6seps6d/MquyLJI1mXF2uANTeFAeL2q6evw==",
- "dev": true,
- "dependencies": {
- "@unocss/config": "0.57.1",
- "@unocss/core": "0.57.1",
- "@unocss/rule-utils": "0.57.1",
- "css-tree": "^2.3.1",
- "fast-glob": "^3.3.1",
- "magic-string": "^0.30.5",
- "postcss": "^8.4.31"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "postcss": "^8.4.21"
- }
- },
- "node_modules/@unocss/postcss/node_modules/magic-string": {
- "version": "0.30.5",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
- "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
- "dev": true,
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.15"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@unocss/preset-attributify": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/preset-attributify/-/preset-attributify-0.57.1.tgz",
- "integrity": "sha512-pvGQHaqBlB0jQysWhNbcKLOGrkj8b53k0sAa9LYxQjD1fa8t/dwbuMpZv4twX+gysF0vBhxRoWBPLH1/S6zRZg==",
- "dev": true,
- "dependencies": {
- "@unocss/core": "0.57.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/preset-icons": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/preset-icons/-/preset-icons-0.57.1.tgz",
- "integrity": "sha512-ve4jC6yREfS0mv97DCld9xLjMuiSCcsQPKucdtpUfCjLMqtGd1ZGGdFv02Q+92NkW7HDfgj+izEw1SKh9695Ow==",
- "dev": true,
- "dependencies": {
- "@iconify/utils": "^2.1.11",
- "@unocss/core": "0.57.1",
- "ofetch": "^1.3.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/preset-mini": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/preset-mini/-/preset-mini-0.57.1.tgz",
- "integrity": "sha512-v9ZsIUGDfZNXbIrOc7zrBp+RFbFFGSQN/vKIf761js4fJ31j6lan4pPQPGcY17xHConkI1HJT/+yb/UVJaAcHw==",
- "dev": true,
- "dependencies": {
- "@unocss/core": "0.57.1",
- "@unocss/extractor-arbitrary-variants": "0.57.1",
- "@unocss/rule-utils": "0.57.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/preset-tagify": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/preset-tagify/-/preset-tagify-0.57.1.tgz",
- "integrity": "sha512-GV8knxnsOVH/XiG2KB+mVZeEJqr0PZvvkSTPftGPbjttoKVZ+28Y5q9/qezH7p4W6RYVAAK+3qHHy5wWZosiMw==",
- "dev": true,
- "dependencies": {
- "@unocss/core": "0.57.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/preset-typography": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/preset-typography/-/preset-typography-0.57.1.tgz",
- "integrity": "sha512-C4cqCiGW0OSoSXsVQKgfLulYxY5C8M40f+a8VtBlAaEaN6eSlEt+catXb0chF9T2mvz/b87b0PahPvPwJdDf1Q==",
- "dev": true,
- "dependencies": {
- "@unocss/core": "0.57.1",
- "@unocss/preset-mini": "0.57.1"
- }
- },
- "node_modules/@unocss/preset-uno": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/preset-uno/-/preset-uno-0.57.1.tgz",
- "integrity": "sha512-0+DKZiowYjYzq2swJzQA2dhqDvLJdm0Y437ITzc2GzZMKGUUuNi+w2v3/SzwkpkRd9zTB9/YaOIJVfdrx6ZOXQ==",
- "dev": true,
- "dependencies": {
- "@unocss/core": "0.57.1",
- "@unocss/preset-mini": "0.57.1",
- "@unocss/preset-wind": "0.57.1",
- "@unocss/rule-utils": "0.57.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/preset-web-fonts": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/preset-web-fonts/-/preset-web-fonts-0.57.1.tgz",
- "integrity": "sha512-9DCIMlBRaGrljLmeciH4WqP+uRx2z2nLxvrvEmGbpJJpMn2H4higR5Zu5tDyKYGr9QBl9vXdWgib+43OSswkqA==",
- "dev": true,
- "dependencies": {
- "@unocss/core": "0.57.1",
- "ofetch": "^1.3.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/preset-wind": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/preset-wind/-/preset-wind-0.57.1.tgz",
- "integrity": "sha512-5UairNahUXNDe9AggPtTCodyPjl6NgPCsiEB22LVgN20UjBXjaqzN5wUe1OgtpLoAUaSk0KI7eLWhnWbTbST3A==",
- "dev": true,
- "dependencies": {
- "@unocss/core": "0.57.1",
- "@unocss/preset-mini": "0.57.1",
- "@unocss/rule-utils": "0.57.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/reset": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/reset/-/reset-0.57.1.tgz",
- "integrity": "sha512-f/ofoudjFN/HMtv1XV5phP58pOmNruBhr0GbVdBNylyieMQkFHowA7iSemChnC/fTbCcY6oSOAcFl4n9AefjdA==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/rule-utils": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/rule-utils/-/rule-utils-0.57.1.tgz",
- "integrity": "sha512-Hdicz7YORZx7SHICldzOGjPNeJwk/Xhy3cycqiPbg6nB6d639bpgZn5BsbDzHCPKpguwDomUqTZS6+C3s7tUVg==",
- "dev": true,
- "dependencies": {
- "@unocss/core": "^0.57.1",
- "magic-string": "^0.30.5"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/rule-utils/node_modules/magic-string": {
- "version": "0.30.5",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
- "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
- "dev": true,
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.15"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@unocss/scope": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/scope/-/scope-0.57.1.tgz",
- "integrity": "sha512-ZAzg6lLGwKNQGCvJXEie3TvGztkAyajEFqygu0mjtHb+CmDql4iAjoygs+3dnRI5hSDwfMYFrJ2azX26+2CsoA==",
- "dev": true
- },
- "node_modules/@unocss/transformer-attributify-jsx": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/transformer-attributify-jsx/-/transformer-attributify-jsx-0.57.1.tgz",
- "integrity": "sha512-ohgSEwm2j98ltPWl1zRPvZhRjQPpd7qZtgoROTQh6n2W7wEO1SlnYjgBBz+pGuo2dkfBN5NjuZJ93AEjS10Ysw==",
- "dev": true,
- "dependencies": {
- "@unocss/core": "0.57.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/transformer-attributify-jsx-babel": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/transformer-attributify-jsx-babel/-/transformer-attributify-jsx-babel-0.57.1.tgz",
- "integrity": "sha512-EOCPB8OGmhroAuFU0i0W5p6GmJpx6mAkP4KmsqVLd4QMgw+8aXkG7SKyLnxQZnekM0/dSo0TcpVGeGrZaUNgvQ==",
- "dev": true,
- "dependencies": {
- "@unocss/core": "0.57.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/transformer-compile-class": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/transformer-compile-class/-/transformer-compile-class-0.57.1.tgz",
- "integrity": "sha512-z0WZN6hbgpyBm2xqIrojqEjpQMhiyzHRbaBjWzI/6ieHWoFo5ajIwnReaFUEfJRNruLTd7/9hFDZdRXRPhttFw==",
- "dev": true,
- "dependencies": {
- "@unocss/core": "0.57.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/transformer-directives": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/transformer-directives/-/transformer-directives-0.57.1.tgz",
- "integrity": "sha512-rIk3XEU2NywEJUOkngBSmJfvS3IVgxkkqgMvuIqz8ZDbwWhepuMxsiI0QR3ypkipGr/eKK5DJ7eK0OVlo6FPFA==",
- "dev": true,
- "dependencies": {
- "@unocss/core": "0.57.1",
- "@unocss/rule-utils": "0.57.1",
- "css-tree": "^2.3.1"
- }
- },
- "node_modules/@unocss/transformer-variant-group": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/transformer-variant-group/-/transformer-variant-group-0.57.1.tgz",
- "integrity": "sha512-qwydzn2Lqz/8zW6UUXdORaUl8humsG8ll74LN/z8cjEsqtXZkVdkV0l6Brpp9Xp/XPbKwO+II+KH3/1LGwXSzQ==",
- "dev": true,
- "dependencies": {
- "@unocss/core": "0.57.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/vite": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@unocss/vite/-/vite-0.57.1.tgz",
- "integrity": "sha512-kEBDvGgQNkX2n87S6Ao5seyFb1kuWZ5p96dGOS7VFpD7HvR5xholkJXaVhUK9/exCldjLExbo5UtVlbxFLUFYg==",
- "dev": true,
- "dependencies": {
- "@ampproject/remapping": "^2.2.1",
- "@rollup/pluginutils": "^5.0.5",
- "@unocss/config": "0.57.1",
- "@unocss/core": "0.57.1",
- "@unocss/inspector": "0.57.1",
- "@unocss/scope": "0.57.1",
- "@unocss/transformer-directives": "0.57.1",
- "chokidar": "^3.5.3",
- "fast-glob": "^3.3.1",
- "magic-string": "^0.30.5"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0"
- }
- },
- "node_modules/@unocss/vite/node_modules/magic-string": {
- "version": "0.30.5",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
- "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
- "dev": true,
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.15"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vitejs/plugin-vue": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz",
- "integrity": "sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==",
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "peerDependencies": {
- "vite": "^4.0.0",
- "vue": "^3.2.25"
- }
- },
- "node_modules/@vitest/expect": {
- "version": "0.34.6",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.6.tgz",
- "integrity": "sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==",
- "dev": true,
- "dependencies": {
- "@vitest/spy": "0.34.6",
- "@vitest/utils": "0.34.6",
- "chai": "^4.3.10"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/runner": {
- "version": "0.34.6",
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.6.tgz",
- "integrity": "sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==",
- "dev": true,
- "dependencies": {
- "@vitest/utils": "0.34.6",
- "p-limit": "^4.0.0",
- "pathe": "^1.1.1"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/runner/node_modules/p-limit": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
- "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
- "dev": true,
- "dependencies": {
- "yocto-queue": "^1.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@vitest/runner/node_modules/yocto-queue": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
- "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
- "dev": true,
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@vitest/snapshot": {
- "version": "0.34.6",
- "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.6.tgz",
- "integrity": "sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==",
- "dev": true,
- "dependencies": {
- "magic-string": "^0.30.1",
- "pathe": "^1.1.1",
- "pretty-format": "^29.5.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/snapshot/node_modules/magic-string": {
- "version": "0.30.5",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
- "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
- "dev": true,
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.15"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vitest/spy": {
- "version": "0.34.6",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.6.tgz",
- "integrity": "sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==",
- "dev": true,
- "dependencies": {
- "tinyspy": "^2.1.1"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/utils": {
- "version": "0.34.6",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz",
- "integrity": "sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==",
- "dev": true,
- "dependencies": {
- "diff-sequences": "^29.4.3",
- "loupe": "^2.3.6",
- "pretty-format": "^29.5.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vue/compiler-core": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.7.tgz",
- "integrity": "sha512-pACdY6YnTNVLXsB86YD8OF9ihwpolzhhtdLVHhBL6do/ykr6kKXNYABRtNMGrsQXpEXXyAdwvWWkuTbs4MFtPQ==",
- "dependencies": {
- "@babel/parser": "^7.23.0",
- "@vue/shared": "3.3.7",
- "estree-walker": "^2.0.2",
- "source-map-js": "^1.0.2"
- }
- },
- "node_modules/@vue/compiler-dom": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.7.tgz",
- "integrity": "sha512-0LwkyJjnUPssXv/d1vNJ0PKfBlDoQs7n81CbO6Q0zdL7H1EzqYRrTVXDqdBVqro0aJjo/FOa1qBAPVI4PGSHBw==",
- "dependencies": {
- "@vue/compiler-core": "3.3.7",
- "@vue/shared": "3.3.7"
- }
- },
- "node_modules/@vue/compiler-sfc": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.7.tgz",
- "integrity": "sha512-7pfldWy/J75U/ZyYIXRVqvLRw3vmfxDo2YLMwVtWVNew8Sm8d6wodM+OYFq4ll/UxfqVr0XKiVwti32PCrruAw==",
- "dependencies": {
- "@babel/parser": "^7.23.0",
- "@vue/compiler-core": "3.3.7",
- "@vue/compiler-dom": "3.3.7",
- "@vue/compiler-ssr": "3.3.7",
- "@vue/reactivity-transform": "3.3.7",
- "@vue/shared": "3.3.7",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.30.5",
- "postcss": "^8.4.31",
- "source-map-js": "^1.0.2"
- }
- },
- "node_modules/@vue/compiler-sfc/node_modules/magic-string": {
- "version": "0.30.5",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
- "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.15"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vue/compiler-ssr": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.7.tgz",
- "integrity": "sha512-TxOfNVVeH3zgBc82kcUv+emNHo+vKnlRrkv8YvQU5+Y5LJGJwSNzcmLUoxD/dNzv0bhQ/F0s+InlgV0NrApJZg==",
- "dependencies": {
- "@vue/compiler-dom": "3.3.7",
- "@vue/shared": "3.3.7"
- }
- },
- "node_modules/@vue/devtools-api": {
- "version": "6.5.1",
- "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz",
- "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA=="
- },
- "node_modules/@vue/reactivity": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.7.tgz",
- "integrity": "sha512-cZNVjWiw00708WqT0zRpyAgduG79dScKEPYJXq2xj/aMtk3SKvL3FBt2QKUlh6EHBJ1m8RhBY+ikBUzwc7/khg==",
- "dependencies": {
- "@vue/shared": "3.3.7"
- }
- },
- "node_modules/@vue/reactivity-transform": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.7.tgz",
- "integrity": "sha512-APhRmLVbgE1VPGtoLQoWBJEaQk4V8JUsqrQihImVqKT+8U6Qi3t5ATcg4Y9wGAPb3kIhetpufyZ1RhwbZCIdDA==",
- "dependencies": {
- "@babel/parser": "^7.23.0",
- "@vue/compiler-core": "3.3.7",
- "@vue/shared": "3.3.7",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.30.5"
- }
- },
- "node_modules/@vue/reactivity-transform/node_modules/magic-string": {
- "version": "0.30.5",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
- "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.15"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vue/runtime-core": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.7.tgz",
- "integrity": "sha512-LHq9du3ubLZFdK/BP0Ysy3zhHqRfBn80Uc+T5Hz3maFJBGhci1MafccnL3rpd5/3wVfRHAe6c+PnlO2PAavPTQ==",
- "dependencies": {
- "@vue/reactivity": "3.3.7",
- "@vue/shared": "3.3.7"
- }
- },
- "node_modules/@vue/runtime-dom": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.7.tgz",
- "integrity": "sha512-PFQU1oeJxikdDmrfoNQay5nD4tcPNYixUBruZzVX/l0eyZvFKElZUjW4KctCcs52nnpMGO6UDK+jF5oV4GT5Lw==",
- "dependencies": {
- "@vue/runtime-core": "3.3.7",
- "@vue/shared": "3.3.7",
- "csstype": "^3.1.2"
- }
- },
- "node_modules/@vue/server-renderer": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.7.tgz",
- "integrity": "sha512-UlpKDInd1hIZiNuVVVvLgxpfnSouxKQOSE2bOfQpBuGwxRV/JqqTCyyjXUWiwtVMyeRaZhOYYqntxElk8FhBhw==",
- "dependencies": {
- "@vue/compiler-ssr": "3.3.7",
- "@vue/shared": "3.3.7"
- },
- "peerDependencies": {
- "vue": "3.3.7"
- }
- },
- "node_modules/@vue/shared": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.7.tgz",
- "integrity": "sha512-N/tbkINRUDExgcPTBvxNkvHGu504k8lzlNQRITVnm6YjOjwa4r0nnbd4Jb01sNpur5hAllyRJzSK5PvB9PPwRg=="
- },
- "node_modules/@zkochan/retry": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/@zkochan/retry/-/retry-0.2.0.tgz",
- "integrity": "sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@zkochan/rimraf": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@zkochan/rimraf/-/rimraf-2.1.3.tgz",
- "integrity": "sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==",
- "dev": true,
- "dependencies": {
- "rimraf": "^3.0.2"
- },
- "engines": {
- "node": ">=12.10"
- }
- },
- "node_modules/acorn": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
- "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
- "dev": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "dev": true,
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/acorn-walk": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "dev": true,
- "dependencies": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
"node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
"node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
"dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": ">=0.10.0"
}
},
+ "node_modules/any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
+ "dev": true
+ },
"node_modules/anymatch": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -2765,69 +516,64 @@
"node": ">= 8"
}
},
- "node_modules/are-docs-informative": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz",
- "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==",
- "dev": true,
- "engines": {
- "node": ">=14"
- }
- },
"node_modules/arg": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
"dev": true
},
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "node_modules/arity-n": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz",
- "integrity": "sha512-fExL2kFDC1Q2DUOx3whE/9KoN66IzkY4b4zUHUBFM1ojEYjZZYDcUW3bek/ufGionX9giIKDC5redH2IlGqcQQ==",
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"dev": true
},
- "node_modules/array-last": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz",
- "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==",
+ "node_modules/autoprefixer": {
+ "version": "10.4.16",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz",
+ "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"dependencies": {
- "is-number": "^4.0.0"
+ "browserslist": "^4.21.10",
+ "caniuse-lite": "^1.0.30001538",
+ "fraction.js": "^4.3.6",
+ "normalize-range": "^0.1.2",
+ "picocolors": "^1.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
},
"engines": {
- "node": ">=0.10.0"
+ "node": "^10 || ^12 || >=14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
}
},
- "node_modules/array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "node_modules/axios": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz",
+ "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==",
"dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/assertion-error": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
- "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/babylon": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
- "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
- "dev": true,
- "bin": {
- "babylon": "bin/babylon.js"
+ "dependencies": {
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
}
},
"node_modules/balanced-match": {
@@ -2840,26 +586,11 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true,
"engines": {
"node": ">=8"
}
},
- "node_modules/bole": {
- "version": "5.0.9",
- "resolved": "https://registry.npmjs.org/bole/-/bole-5.0.9.tgz",
- "integrity": "sha512-35GeBG6T7GW9VmLDF2IoKAtFCqMjmmq1uICbsICI0pID7ZAyUKlf7dg1wpXmn9GcMKHtg0S19CPMU5yfY3tv+g==",
- "dev": true,
- "dependencies": {
- "fast-safe-stringify": "^2.0.7",
- "individual": "^3.0.0"
- }
- },
- "node_modules/boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "dev": true
- },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -2874,6 +605,7 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
"dependencies": {
"fill-range": "^7.0.1"
},
@@ -2881,106 +613,97 @@
"node": ">=8"
}
},
- "node_modules/builtin-modules": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
- "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/builtins": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz",
- "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==",
+ "node_modules/browserslist": {
+ "version": "4.22.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz",
+ "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"dependencies": {
- "semver": "^7.0.0"
- }
- },
- "node_modules/cac": {
- "version": "6.7.14",
- "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
- "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/case-anything": {
- "version": "2.1.13",
- "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.13.tgz",
- "integrity": "sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==",
- "engines": {
- "node": ">=12.13"
+ "caniuse-lite": "^1.0.30001541",
+ "electron-to-chromium": "^1.4.535",
+ "node-releases": "^2.0.13",
+ "update-browserslist-db": "^1.0.13"
},
- "funding": {
- "url": "https://github.com/sponsors/mesqueeb"
- }
- },
- "node_modules/chai": {
- "version": "4.3.10",
- "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz",
- "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==",
- "dev": true,
- "dependencies": {
- "assertion-error": "^1.1.0",
- "check-error": "^1.0.3",
- "deep-eql": "^4.1.3",
- "get-func-name": "^2.0.2",
- "loupe": "^2.3.6",
- "pathval": "^1.1.1",
- "type-detect": "^4.0.8"
+ "bin": {
+ "browserslist": "cli.js"
},
"engines": {
- "node": ">=4"
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
+ "node_modules/camelcase-css": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001563",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz",
+ "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ]
+ },
"node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
"dev": true,
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "node": ">=0.10.0"
}
},
- "node_modules/check-error": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz",
- "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
+ "node_modules/chalk/node_modules/supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
"dev": true,
- "dependencies": {
- "get-func-name": "^2.0.2"
- },
"engines": {
- "node": "*"
+ "node": ">=0.8.0"
}
},
"node_modules/chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
"funding": [
{
"type": "individual",
@@ -3007,6 +730,7 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -3014,48 +738,32 @@
"node": ">= 6"
}
},
- "node_modules/clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/clone": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
- "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
- "dev": true,
- "optional": true,
- "engines": {
- "node": ">=0.8"
- }
- },
"node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
+ "color-name": "1.1.3"
}
},
"node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"dev": true
},
- "node_modules/colorette": {
- "version": "2.0.20",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
- "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
- "dev": true
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
},
"node_modules/commander": {
"version": "4.1.1",
@@ -3066,86 +774,159 @@
"node": ">= 6"
}
},
- "node_modules/comment-parser": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.0.tgz",
- "integrity": "sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==",
- "dev": true,
- "engines": {
- "node": ">= 12.0.0"
- }
- },
- "node_modules/compose-function": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz",
- "integrity": "sha512-xzhzTJ5eC+gmIzvZq+C3kCJHsp9os6tJkrigDRZclyGtOKINbZtE8n1Tzmeh32jW+BUDPbvZpibwvJHBLGMVwg==",
- "dev": true,
- "dependencies": {
- "arity-n": "^1.0.4"
- }
- },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
- "node_modules/consola": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz",
- "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==",
+ "node_modules/css-blank-pseudo": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz",
+ "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==",
"dev": true,
+ "dependencies": {
+ "postcss": "^7.0.5"
+ },
+ "bin": {
+ "css-blank-pseudo": "cli.js"
+ },
"engines": {
- "node": "^14.18.0 || >=16.10.0"
+ "node": ">=6.0.0"
}
},
- "node_modules/create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+ "node_modules/css-blank-pseudo/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
"dev": true
},
- "node_modules/crelt": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz",
- "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g=="
- },
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "node_modules/css-blank-pseudo/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
"dev": true,
"dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
},
"engines": {
- "node": ">= 8"
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
}
},
- "node_modules/crypto-random-string": {
+ "node_modules/css-has-pseudo": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz",
+ "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.6",
+ "postcss-selector-parser": "^5.0.0-rc.4"
+ },
+ "bin": {
+ "css-has-pseudo": "cli.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/css-has-pseudo/node_modules/cssesc": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
- "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz",
+ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
"dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/css-tree": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
- "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
- "dev": true,
- "dependencies": {
- "mdn-data": "2.0.30",
- "source-map-js": "^1.0.1"
+ "bin": {
+ "cssesc": "bin/cssesc"
},
"engines": {
- "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+ "node": ">=4"
}
},
+ "node_modules/css-has-pseudo/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/css-has-pseudo/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==",
+ "dev": true,
+ "dependencies": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/css-prefers-color-scheme": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz",
+ "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.5"
+ },
+ "bin": {
+ "css-prefers-color-scheme": "cli.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/css-prefers-color-scheme/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/css-prefers-color-scheme/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/cssdb": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz",
+ "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==",
+ "dev": true
+ },
"node_modules/cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -3158,223 +939,38 @@
"node": ">=4"
}
},
- "node_modules/csstype": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
- "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
- },
- "node_modules/dash-get": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/dash-get/-/dash-get-1.0.2.tgz",
- "integrity": "sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ=="
- },
- "node_modules/data-uri-to-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz",
- "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==",
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"dev": true,
"engines": {
- "node": ">= 6"
+ "node": ">=0.4.0"
}
},
- "node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/deep-eql": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz",
- "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==",
- "dev": true,
- "dependencies": {
- "type-detect": "^4.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/deep-freeze": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz",
- "integrity": "sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg==",
+ "node_modules/didyoumean": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
"dev": true
},
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "node_modules/dlv": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
"dev": true
},
- "node_modules/deepmerge": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
- "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/defaults": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
- "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "clone": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/defu": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.3.tgz",
- "integrity": "sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ==",
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.590",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.590.tgz",
+ "integrity": "sha512-hohItzsQcG7/FBsviCYMtQwUSWvVF7NVqPOnJCErWsAshsP/CR2LAXdmq276RbESNdhxiAq5/vRo1g2pxGXVww==",
"dev": true
},
- "node_modules/destr": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.2.tgz",
- "integrity": "sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==",
- "dev": true
- },
- "node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/diff-sequences": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
- "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
- "dev": true,
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
- "dependencies": {
- "path-type": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dev": true,
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/dompurify": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.6.tgz",
- "integrity": "sha512-ilkD8YEnnGh1zJ240uJsW7AzE+2qpbOUYjacomn3AvJ6J4JhKGSZ2nh4wUIXPZrEPppaCLx5jFe8T89Rk8tQ7w=="
- },
- "node_modules/dotenv": {
- "version": "16.3.1",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz",
- "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/motdotla/dotenv?sponsor=1"
- }
- },
- "node_modules/duplexer": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
- "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
- "dev": true
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true
- },
- "node_modules/easy-table": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.2.0.tgz",
- "integrity": "sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "optionalDependencies": {
- "wcwidth": "^1.0.1"
- }
- },
- "node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true
- },
- "node_modules/encode-registry": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/encode-registry/-/encode-registry-3.0.1.tgz",
- "integrity": "sha512-6qOwkl1g0fv0DN3Y3ggr2EaZXN71aoAqPp3p/pVaWSBSIo+YjLOWN61Fva43oVyQNPf7kgm8lkudzlzojwE2jw==",
- "dev": true,
- "dependencies": {
- "mem": "^8.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/entities": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
- "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
"node_modules/esbuild": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
"integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
+ "dev": true,
"hasInstallScript": true,
"bin": {
"esbuild": "bin/esbuild"
@@ -3407,258 +1003,28 @@
"@esbuild/win32-x64": "0.18.20"
}
},
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint": {
- "version": "8.52.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz",
- "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==",
- "dev": true,
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.2",
- "@eslint/js": "8.52.0",
- "@humanwhocodes/config-array": "^0.11.13",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "@ungap/structured-clone": "^1.2.0",
- "ajv": "^6.12.4",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.2.2",
- "eslint-visitor-keys": "^3.4.3",
- "espree": "^9.6.1",
- "esquery": "^1.4.2",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "graphemer": "^1.4.0",
- "ignore": "^5.2.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.3",
- "strip-ansi": "^6.0.1",
- "text-table": "^0.2.0"
- },
- "bin": {
- "eslint": "bin/eslint.js"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-config-prettier": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz",
- "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==",
- "dev": true,
- "bin": {
- "eslint-config-prettier": "bin/cli.js"
- },
- "peerDependencies": {
- "eslint": ">=7.0.0"
- }
- },
- "node_modules/eslint-plugin-jsdoc": {
- "version": "46.8.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.8.2.tgz",
- "integrity": "sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==",
- "dev": true,
- "dependencies": {
- "@es-joy/jsdoccomment": "~0.40.1",
- "are-docs-informative": "^0.0.2",
- "comment-parser": "1.4.0",
- "debug": "^4.3.4",
- "escape-string-regexp": "^4.0.0",
- "esquery": "^1.5.0",
- "is-builtin-module": "^3.2.1",
- "semver": "^7.5.4",
- "spdx-expression-parse": "^3.0.1"
- },
- "engines": {
- "node": ">=16"
- },
- "peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/eslint-plugin-vue": {
- "version": "9.18.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.18.1.tgz",
- "integrity": "sha512-7hZFlrEgg9NIzuVik2I9xSnJA5RsmOfueYgsUGUokEDLJ1LHtxO0Pl4duje1BriZ/jDWb+44tcIlC3yi0tdlZg==",
- "dev": true,
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "natural-compare": "^1.4.0",
- "nth-check": "^2.1.1",
- "postcss-selector-parser": "^6.0.13",
- "semver": "^7.5.4",
- "vue-eslint-parser": "^9.3.1",
- "xml-name-validator": "^4.0.0"
- },
- "engines": {
- "node": "^14.17.0 || >=16.0.0"
- },
- "peerDependencies": {
- "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/eslint-scope": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
- "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
- "dev": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "node": ">=0.8.0"
}
},
- "node_modules/espree": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
- "dev": true,
- "dependencies": {
- "acorn": "^8.9.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.4.1"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/esquery": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
- "dev": true,
- "dependencies": {
- "estraverse": "^5.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/execa/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- },
"node_modules/fast-glob": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
- "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dev": true,
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
@@ -3683,24 +1049,6 @@
"node": ">= 6"
}
},
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
- },
- "node_modules/fast-safe-stringify": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
- "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
- "dev": true
- },
"node_modules/fastq": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
@@ -3710,36 +1058,11 @@
"reusify": "^1.0.4"
}
},
- "node_modules/fetch-blob": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-2.1.2.tgz",
- "integrity": "sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==",
- "dev": true,
- "engines": {
- "node": "^10.17.0 || >=12.3.0"
- },
- "peerDependenciesMeta": {
- "domexception": {
- "optional": true
- }
- }
- },
- "node_modules/file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
- "dev": true,
- "dependencies": {
- "flat-cache": "^3.0.4"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
"node_modules/fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -3747,85 +1070,58 @@
"node": ">=8"
}
},
- "node_modules/filter-iterator": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/filter-iterator/-/filter-iterator-0.0.1.tgz",
- "integrity": "sha512-v4lhL7Qa8XpbW3LN46CEnmhGk3eHZwxfNl5at20aEkreesht4YKb/Ba3BUIbnPhAC/r3dmu7ABaGk6MAvh2alA==",
+ "node_modules/flatten": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz",
+ "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==",
+ "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.",
"dev": true
},
- "node_modules/filter-obj": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
- "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==",
+ "node_modules/follow-redirects": {
+ "version": "1.15.3",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz",
+ "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==",
"dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
}
},
- "node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"dev": true,
"dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
},
"engines": {
- "node": ">=10"
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fraction.js": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
+ "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
+ "dev": true,
+ "engines": {
+ "node": "*"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/flat-cache": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz",
- "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==",
- "dev": true,
- "dependencies": {
- "flatted": "^3.2.9",
- "keyv": "^4.5.3",
- "rimraf": "^3.0.2"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/flatted": {
- "version": "3.2.9",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
- "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
- "dev": true
- },
- "node_modules/foreground-child": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
- "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=12"
+ "type": "patreon",
+ "url": "https://github.com/sponsors/rawify"
}
},
"node_modules/fs.realpath": {
@@ -3838,6 +1134,7 @@
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
"hasInstallScript": true,
"optional": true,
"os": [
@@ -3847,44 +1144,30 @@
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
- "node_modules/get-func-name": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
- "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/glob": {
- "version": "10.3.10",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
- "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
"dev": true,
"dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^2.3.5",
- "minimatch": "^9.0.1",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
- "path-scurry": "^1.10.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": "*"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -3902,198 +1185,43 @@
"node": ">=10.13.0"
}
},
- "node_modules/glob/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "node_modules/has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==",
"dev": true,
"dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/glob/node_modules/minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
+ "ansi-regex": "^2.0.0"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/globals": {
- "version": "13.23.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz",
- "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==",
- "dev": true,
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "dev": true,
- "dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "dev": true
- },
- "node_modules/graphemer": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
- "dev": true
- },
- "node_modules/gzip-size": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz",
- "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==",
- "dev": true,
- "dependencies": {
- "duplexer": "^0.1.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=0.10.0"
}
},
"node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/has-own-property": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/has-own-property/-/has-own-property-0.1.0.tgz",
- "integrity": "sha512-14qdBKoonU99XDhWcFKZTShK+QV47qU97u8zzoVo9cL5TZ3BmBHXogItSt9qJjR0KUMFRhcCW8uGIGl8nkl7Aw==",
- "dev": true
- },
- "node_modules/hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/hosted-git-info/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true,
- "engines": {
- "node": ">=10.17.0"
- }
- },
- "node_modules/identity-function": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/identity-function/-/identity-function-1.0.0.tgz",
- "integrity": "sha512-kNrgUK0qI+9qLTBidsH85HjDLpZfrrS0ElquKKe/fJFdB3D7VeKdXXEvOPDUHSHOzdZKCAAaQIWWyp0l2yq6pw==",
- "dev": true
- },
- "node_modules/ignore": {
- "version": "5.2.4",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
- "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==",
"dev": true,
"engines": {
- "node": ">= 4"
+ "node": ">=0.10.0"
}
},
- "node_modules/immutable": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz",
- "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA=="
- },
- "node_modules/import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "node_modules/hasown": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
+ "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
"dev": true,
"dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
+ "function-bind": "^1.1.2"
},
"engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">= 0.4"
}
},
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true,
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/individual": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/individual/-/individual-3.0.0.tgz",
- "integrity": "sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==",
+ "node_modules/indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==",
"dev": true
},
"node_modules/inflight": {
@@ -4112,16 +1240,11 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
"node_modules/is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
"dependencies": {
"binary-extensions": "^2.0.0"
},
@@ -4129,53 +1252,32 @@
"node": ">=8"
}
},
- "node_modules/is-builtin-module": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
- "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
+ "node_modules/is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
"dependencies": {
- "builtin-modules": "^3.3.0"
- },
- "engines": {
- "node": ">=6"
+ "hasown": "^2.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -4183,95 +1285,13 @@
"node": ">=0.10.0"
}
},
- "node_modules/is-iterable": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-iterable/-/is-iterable-1.1.1.tgz",
- "integrity": "sha512-EdOZCr0NsGE00Pot+x1ZFx9MJK3C6wy91geZpXwvwexDLJvA4nzYyZf7r+EIwSeVsOLDdBz7ATg9NqKTzuNYuQ==",
- "dev": true,
- "engines": {
- "node": ">= 4"
- }
- },
"node_modules/is-number": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
- "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
"engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "node_modules/isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/iterable-lookahead": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/iterable-lookahead/-/iterable-lookahead-1.0.0.tgz",
- "integrity": "sha512-hJnEP2Xk4+44DDwJqUQGdXal5VbyeWLaPyDl2AQc242Zr7iqz4DgpQOrEzglWVMGHMDCkguLHEKxd1+rOsmgSQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/jackspeak": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
- "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
- "dev": true,
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
+ "node": ">=0.12.0"
}
},
"node_modules/jiti": {
@@ -4283,183 +1303,10 @@
"jiti": "bin/jiti.js"
}
},
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsdoc-type-pratt-parser": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz",
- "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==",
- "dev": true,
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/json-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
- "dev": true
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- },
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true
- },
- "node_modules/json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "dev": true
- },
- "node_modules/jsonc-parser": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
- "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
- "dev": true
- },
- "node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/keyv": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
- "dev": true,
- "dependencies": {
- "json-buffer": "3.0.1"
- }
- },
- "node_modules/knip": {
- "version": "2.38.6",
- "resolved": "https://registry.npmjs.org/knip/-/knip-2.38.6.tgz",
- "integrity": "sha512-FUkcSx0VGmRQ70rQzcygZrP3FPpoFS5CFp7sONGclB+HIIA6DJ11u1MZXmh0XsXewgeIm9guCkAD6xoO4i/hWA==",
- "dev": true,
- "dependencies": {
- "@ericcornelissen/bash-parser": "^0.5.2",
- "@npmcli/map-workspaces": "^3.0.4",
- "@pkgjs/parseargs": "0.11.0",
- "@pnpm/logger": "5.0.0",
- "@pnpm/workspace.pkgs-graph": "2.0.10",
- "@snyk/github-codeowners": "^1.1.0",
- "chalk": "^5.2.0",
- "easy-table": "^1.2.0",
- "fast-glob": "^3.2.12",
- "globby": "^13.1.3",
- "jiti": "1.21.0",
- "js-yaml": "^4.1.0",
- "micromatch": "^4.0.5",
- "minimist": "^1.2.8",
- "pretty-ms": "^8.0.0",
- "strip-json-comments": "^5.0.0",
- "summary": "^2.1.0",
- "typescript": "^5.0.2",
- "zod": "3.22.4",
- "zod-validation-error": "1.5.0"
- },
- "bin": {
- "knip": "dist/cli.js"
- },
- "engines": {
- "node": ">=16.17.0 <17 || >=18.6.0"
- }
- },
- "node_modules/knip/node_modules/chalk": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
- "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
- "dev": true,
- "engines": {
- "node": "^12.17.0 || ^14.13 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/knip/node_modules/globby": {
- "version": "13.2.2",
- "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz",
- "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==",
- "dev": true,
- "dependencies": {
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.3.0",
- "ignore": "^5.2.4",
- "merge2": "^1.4.1",
- "slash": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/knip/node_modules/slash": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
- "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/knip/node_modules/strip-json-comments": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz",
- "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==",
- "dev": true,
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/kolorist": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
- "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
+ "node_modules/js-base64": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
+ "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==",
"dev": true
},
"node_modules/laravel-vite-plugin": {
@@ -4478,17 +1325,13 @@
"vite": "^3.0.0 || ^4.0.0"
}
},
- "node_modules/levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "node_modules/lilconfig": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
+ "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
"dev": true,
- "dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- },
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=10"
}
},
"node_modules/lines-and-columns": {
@@ -4497,189 +1340,6 @@
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
"dev": true
},
- "node_modules/linkify-it": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz",
- "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==",
- "dependencies": {
- "uc.micro": "^1.0.1"
- }
- },
- "node_modules/linkifyjs": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.1.1.tgz",
- "integrity": "sha512-zFN/CTVmbcVef+WaDXT63dNzzkfRBKT1j464NJQkV7iSgJU0sLBus9W0HBwnXK13/hf168pbrx/V/bjEHOXNHA=="
- },
- "node_modules/load-json-file": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz",
- "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.15",
- "parse-json": "^5.0.0",
- "strip-bom": "^4.0.0",
- "type-fest": "^0.6.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/load-json-file/node_modules/type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/local-pkg": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
- "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==",
- "dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
- },
- "node_modules/lodash.curry": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz",
- "integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==",
- "dev": true
- },
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true
- },
- "node_modules/loupe": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz",
- "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
- "dev": true,
- "dependencies": {
- "get-func-name": "^2.0.1"
- }
- },
- "node_modules/lru-cache": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.2.tgz",
- "integrity": "sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==",
- "dev": true,
- "engines": {
- "node": "14 || >=16.14"
- }
- },
- "node_modules/magic-string": {
- "version": "0.16.0",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.16.0.tgz",
- "integrity": "sha512-c4BEos3y6G2qO0B9X7K0FVLOPT9uGrjYwYRLFmDqyl5YMboUviyecnXWp94fJTSMwPw2/sf+CEYt5AGpmklkkQ==",
- "dev": true,
- "dependencies": {
- "vlq": "^0.2.1"
- }
- },
- "node_modules/make-error": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
- },
- "node_modules/map-age-cleaner": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
- "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
- "dev": true,
- "dependencies": {
- "p-defer": "^1.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/map-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz",
- "integrity": "sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/markdown-it": {
- "version": "13.0.2",
- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz",
- "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==",
- "dependencies": {
- "argparse": "^2.0.1",
- "entities": "~3.0.1",
- "linkify-it": "^4.0.1",
- "mdurl": "^1.0.1",
- "uc.micro": "^1.0.5"
- },
- "bin": {
- "markdown-it": "bin/markdown-it.js"
- }
- },
- "node_modules/mdn-data": {
- "version": "2.0.30",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
- "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
- "dev": true
- },
- "node_modules/mdurl": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
- "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g=="
- },
- "node_modules/mem": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz",
- "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==",
- "dev": true,
- "dependencies": {
- "map-age-cleaner": "^0.1.3",
- "mimic-fn": "^3.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/mem?sponsor=1"
- }
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
- },
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -4702,13 +1362,25 @@
"node": ">=8.6"
}
},
- "node_modules/mimic-fn": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz",
- "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==",
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
}
},
"node_modules/minimatch": {
@@ -4723,55 +1395,22 @@
"node": "*"
}
},
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/minipass": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
- "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
- "dev": true,
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/mlly": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz",
- "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==",
+ "node_modules/mz": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
"dev": true,
"dependencies": {
- "acorn": "^8.10.0",
- "pathe": "^1.1.1",
- "pkg-types": "^1.0.3",
- "ufo": "^1.3.0"
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
}
},
- "node_modules/mrmime": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz",
- "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "dev": true,
"funding": [
{
"type": "github",
@@ -4785,141 +1424,52 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
- },
- "node_modules/ndjson": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz",
- "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==",
- "dev": true,
- "dependencies": {
- "json-stringify-safe": "^5.0.1",
- "minimist": "^1.2.5",
- "readable-stream": "^3.6.0",
- "split2": "^3.0.0",
- "through2": "^4.0.0"
- },
- "bin": {
- "ndjson": "cli.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/node-fetch": {
- "version": "3.0.0-beta.9",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.0.0-beta.9.tgz",
- "integrity": "sha512-RdbZCEynH2tH46+tj0ua9caUHVWrd/RHnRfvly2EVdqGmI3ndS1Vn/xjm5KuGejDt2RNDQsVRLPNd2QPwcewVg==",
- "dev": true,
- "dependencies": {
- "data-uri-to-buffer": "^3.0.1",
- "fetch-blob": "^2.1.1"
- },
- "engines": {
- "node": "^10.17 || >=12.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/node-fetch"
- }
- },
- "node_modules/node-fetch-native": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.4.0.tgz",
- "integrity": "sha512-F5kfEj95kX8tkDhUCYdV8dg3/8Olx/94zB8+ZNthFs6Bz31UpUi8Xh40TN3thLwXgrwXry1pEg9lJ++tLWTcqA==",
+ "node_modules/node-releases": {
+ "version": "2.0.13",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
+ "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==",
"dev": true
},
"node_modules/normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/npm-normalize-package-bin": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz",
- "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==",
+ "node_modules/normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
"dev": true,
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "dev": true,
- "dependencies": {
- "boolbase": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/fb55/nth-check?sponsor=1"
- }
- },
- "node_modules/object-pairs": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/object-pairs/-/object-pairs-0.1.0.tgz",
- "integrity": "sha512-3ECr6K831I4xX/Mduxr9UC+HPOz/d6WKKYj9p4cmC8Lg8p7g8gitzsxNX5IWlSIgFWN/a4JgrJaoAMKn20oKwA==",
+ "node_modules/num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==",
"dev": true
},
- "node_modules/object-values": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/object-values/-/object-values-1.0.0.tgz",
- "integrity": "sha512-+8hwcz/JnQ9EpLIXzN0Rs7DLsBpJNT/xYehtB/jU93tHYr5BFEO8E+JGQNOSqE7opVzz5cGksKFHt7uUJVLSjQ==",
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/object.omit": {
+ "node_modules/object-hash": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-3.0.0.tgz",
- "integrity": "sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ==",
- "dependencies": {
- "is-extendable": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object.pick": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
- "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ofetch": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.3.3.tgz",
- "integrity": "sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
"dev": true,
- "dependencies": {
- "destr": "^2.0.1",
- "node-fetch-native": "^1.4.0",
- "ufo": "^1.3.0"
+ "engines": {
+ "node": ">= 6"
}
},
"node_modules/once": {
@@ -4931,210 +1481,6 @@
"wrappy": "1"
}
},
- "node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/onetime/node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/optionator": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
- "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
- "dev": true,
- "dependencies": {
- "@aashutoshrathi/word-wrap": "^1.2.3",
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/orderedmap": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz",
- "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g=="
- },
- "node_modules/p-defer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
- "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-map": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
- "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
- "dev": true,
- "dependencies": {
- "aggregate-error": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-memoize": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/p-memoize/-/p-memoize-4.0.1.tgz",
- "integrity": "sha512-km0sP12uE0dOZ5qP+s7kGVf07QngxyG0gS8sYFvFWhqlgzOsSy+m71aUejf/0akxj5W7gE//2G74qTv6b4iMog==",
- "dev": true,
- "dependencies": {
- "mem": "^6.0.1",
- "mimic-fn": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/p-memoize?sponsor=1"
- }
- },
- "node_modules/p-memoize/node_modules/mem": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/mem/-/mem-6.1.1.tgz",
- "integrity": "sha512-Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q==",
- "dev": true,
- "dependencies": {
- "map-age-cleaner": "^0.1.3",
- "mimic-fn": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/mem?sponsor=1"
- }
- },
- "node_modules/parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
- "dependencies": {
- "callsites": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/parse-ms": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-3.0.0.tgz",
- "integrity": "sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/parse-npm-tarball-url": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/parse-npm-tarball-url/-/parse-npm-tarball-url-3.0.0.tgz",
- "integrity": "sha512-InpdgIdNe5xWMEUcrVQUniQKwnggBtJ7+SCwh7zQAZwbbIYZV9XdgJyhtmDSSvykFyQXoe4BINnzKTfCwWLs5g==",
- "dev": true,
- "dependencies": {
- "semver": "^6.1.0"
- },
- "engines": {
- "node": ">=8.15"
- }
- },
- "node_modules/parse-npm-tarball-url/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
@@ -5144,82 +1490,23 @@
"node": ">=0.10.0"
}
},
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-scurry": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
- "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^9.1.1 || ^10.0.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/path-temp": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/path-temp/-/path-temp-2.1.0.tgz",
- "integrity": "sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==",
- "dev": true,
- "dependencies": {
- "unique-string": "^2.0.0"
- },
- "engines": {
- "node": ">=8.15"
- }
- },
- "node_modules/path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pathe": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz",
- "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==",
- "dev": true
- },
- "node_modules/pathval": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
- "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/perfect-debounce": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz",
- "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==",
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
},
"node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
"engines": {
"node": ">=8.6"
},
@@ -5227,79 +1514,29 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/pinia": {
- "version": "2.1.7",
- "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz",
- "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==",
- "dependencies": {
- "@vue/devtools-api": "^6.5.0",
- "vue-demi": ">=0.14.5"
- },
- "funding": {
- "url": "https://github.com/sponsors/posva"
- },
- "peerDependencies": {
- "@vue/composition-api": "^1.4.0",
- "typescript": ">=4.4.4",
- "vue": "^2.6.14 || ^3.3.0"
- },
- "peerDependenciesMeta": {
- "@vue/composition-api": {
- "optional": true
- },
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/pinia-plugin-persistedstate": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.2.0.tgz",
- "integrity": "sha512-tZbNGf2vjAQcIm7alK40sE51Qu/m9oWr+rEgNm/2AWr1huFxj72CjvpQcIQzMknDBJEkQznCLAGtJTIcLKrKdw==",
- "peerDependencies": {
- "pinia": "^2.0.0"
- }
- },
- "node_modules/pinia/node_modules/vue-demi": {
- "version": "0.14.6",
- "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
- "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
- "hasInstallScript": true,
- "bin": {
- "vue-demi-fix": "bin/vue-demi-fix.js",
- "vue-demi-switch": "bin/vue-demi-switch.js"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@vue/composition-api": "^1.0.0-rc.1",
- "vue": "^3.0.0-0 || ^2.6.0"
- },
- "peerDependenciesMeta": {
- "@vue/composition-api": {
- "optional": true
- }
- }
- },
- "node_modules/pkg-types": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz",
- "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==",
+ "node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
"dev": true,
- "dependencies": {
- "jsonc-parser": "^3.2.0",
- "mlly": "^1.2.0",
- "pathe": "^1.1.0"
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
}
},
"node_modules/postcss": {
"version": "8.4.31",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
"integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "dev": true,
"funding": [
{
"type": "opencollective",
@@ -5323,6 +1560,1555 @@
"node": "^10 || ^12 || >=14"
}
},
+ "node_modules/postcss-advanced-variables": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-advanced-variables/-/postcss-advanced-variables-3.0.1.tgz",
+ "integrity": "sha512-JqVjfkmqPoazMobVeQYzbt7djcDGJfMlpwBd9abTqmzWR40tvIUMXpTU5w3riqz7h+wYPY7V6GF8BIXL/ybEfg==",
+ "dev": true,
+ "dependencies": {
+ "@csstools/sass-import-resolve": "^1.0.0",
+ "postcss": "^7.0.6"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-advanced-variables/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-advanced-variables/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-atroot": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-atroot/-/postcss-atroot-0.1.3.tgz",
+ "integrity": "sha512-8SOS3MZZiyrztbpdOqZQ/h2mPBxRnLJNxjtZRooXbNbg13hrw3Z0ujm+ECizPCvnbVMG3ULx2RzGRAhx8e1VAw==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^5.0.5"
+ }
+ },
+ "node_modules/postcss-atroot/node_modules/postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/postcss-atroot/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/postcss-attribute-case-insensitive": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz",
+ "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-selector-parser": "^6.0.2"
+ }
+ },
+ "node_modules/postcss-attribute-case-insensitive/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-attribute-case-insensitive/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-color-functional-notation": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz",
+ "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-color-functional-notation/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-color-functional-notation/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-color-gray": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz",
+ "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==",
+ "dev": true,
+ "dependencies": {
+ "@csstools/convert-colors": "^1.4.0",
+ "postcss": "^7.0.5",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-color-gray/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-color-gray/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-color-hex-alpha": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz",
+ "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.14",
+ "postcss-values-parser": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-color-hex-alpha/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-color-hex-alpha/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-color-mod-function": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz",
+ "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==",
+ "dev": true,
+ "dependencies": {
+ "@csstools/convert-colors": "^1.4.0",
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-color-mod-function/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-color-mod-function/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-color-rebeccapurple": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz",
+ "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-color-rebeccapurple/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-color-rebeccapurple/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-custom-media": {
+ "version": "7.0.8",
+ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz",
+ "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.14"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-custom-media/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-custom-media/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-custom-properties": {
+ "version": "8.0.11",
+ "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz",
+ "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.17",
+ "postcss-values-parser": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-custom-properties/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-custom-properties/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-custom-selectors": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz",
+ "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-selector-parser": "^5.0.0-rc.3"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-custom-selectors/node_modules/cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz",
+ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
+ "dev": true,
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-custom-selectors/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-custom-selectors/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==",
+ "dev": true,
+ "dependencies": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-dir-pseudo-class": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz",
+ "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-selector-parser": "^5.0.0-rc.3"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/postcss-dir-pseudo-class/node_modules/cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz",
+ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
+ "dev": true,
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-dir-pseudo-class/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-dir-pseudo-class/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==",
+ "dev": true,
+ "dependencies": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-double-position-gradients": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz",
+ "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.5",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-double-position-gradients/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-double-position-gradients/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-env-function": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz",
+ "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-env-function/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-env-function/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-extend-rule": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-extend-rule/-/postcss-extend-rule-2.0.0.tgz",
+ "integrity": "sha512-dgr1GJzW3lUBczZJO5Fm51rktn34Uc99xR1uQyC2Td8JPep/Y+TRx6TjK0yngikOd4LxV1xyuohMMpcaOBgrfA==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^6.0.22",
+ "postcss-nesting": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/postcss-extend-rule/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-extend-rule/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-extend-rule/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-extend-rule/node_modules/postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/postcss-extend-rule/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-focus-visible": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz",
+ "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-focus-visible/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-focus-visible/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-focus-within": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz",
+ "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-focus-within/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-focus-within/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-font-variant": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz",
+ "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-font-variant/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-font-variant/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-gap-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz",
+ "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-gap-properties/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-gap-properties/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-image-set-function": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz",
+ "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-image-set-function/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-image-set-function/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-import": {
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
+ "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
+ "dev": true,
+ "dependencies": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
+ }
+ },
+ "node_modules/postcss-initial": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.4.tgz",
+ "integrity": "sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-initial/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-initial/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-js": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
+ "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
+ "dev": true,
+ "dependencies": {
+ "camelcase-css": "^2.0.1"
+ },
+ "engines": {
+ "node": "^12 || ^14 || >= 16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.21"
+ }
+ },
+ "node_modules/postcss-lab-function": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz",
+ "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==",
+ "dev": true,
+ "dependencies": {
+ "@csstools/convert-colors": "^1.4.0",
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-lab-function/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-lab-function/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-load-config": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
+ "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "lilconfig": "^3.0.0",
+ "yaml": "^2.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ },
+ "peerDependencies": {
+ "postcss": ">=8.0.9",
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "postcss": {
+ "optional": true
+ },
+ "ts-node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/postcss-load-config/node_modules/lilconfig": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz",
+ "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/postcss-logical": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz",
+ "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-logical/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-logical/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-media-minmax": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz",
+ "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-media-minmax/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-media-minmax/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-nested": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
+ "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
+ "dev": true,
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.11"
+ },
+ "engines": {
+ "node": ">=12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.14"
+ }
+ },
+ "node_modules/postcss-nesting": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-5.0.0.tgz",
+ "integrity": "sha512-Yoe3w2mcVslnEJl5zLyz1yBxCFUpYu138apEEOCwS2HRdDw/TDxTwD1fXBrIarL8J1cPzHfVwO1m40B2/UpGCw==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^6.0.21"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/postcss-nesting/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-nesting/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-nesting/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-nesting/node_modules/postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/postcss-nesting/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-overflow-shorthand": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz",
+ "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-overflow-shorthand/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-overflow-shorthand/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-page-break": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz",
+ "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-page-break/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-page-break/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-place": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz",
+ "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-place/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-place/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-preset-env": {
+ "version": "6.7.2",
+ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.2.tgz",
+ "integrity": "sha512-nz+VyUUEB9uAxo5VxI0Gq4E31UjHCG3cUiZW3PzRn7KqkGlAEWuYgb/VLbAitEq7Ooubfix+H2JCm9v+C6hJuw==",
+ "dev": true,
+ "dependencies": {
+ "autoprefixer": "^9.6.1",
+ "browserslist": "^4.6.4",
+ "caniuse-lite": "^1.0.30000981",
+ "css-blank-pseudo": "^0.1.4",
+ "css-has-pseudo": "^0.10.0",
+ "css-prefers-color-scheme": "^3.1.1",
+ "cssdb": "^4.4.0",
+ "postcss": "^7.0.17",
+ "postcss-attribute-case-insensitive": "^4.0.1",
+ "postcss-color-functional-notation": "^2.0.1",
+ "postcss-color-gray": "^5.0.0",
+ "postcss-color-hex-alpha": "^5.0.3",
+ "postcss-color-mod-function": "^3.0.3",
+ "postcss-color-rebeccapurple": "^4.0.1",
+ "postcss-custom-media": "^7.0.8",
+ "postcss-custom-properties": "^8.0.11",
+ "postcss-custom-selectors": "^5.1.2",
+ "postcss-dir-pseudo-class": "^5.0.0",
+ "postcss-double-position-gradients": "^1.0.0",
+ "postcss-env-function": "^2.0.2",
+ "postcss-focus-visible": "^4.0.0",
+ "postcss-focus-within": "^3.0.0",
+ "postcss-font-variant": "^4.0.0",
+ "postcss-gap-properties": "^2.0.0",
+ "postcss-image-set-function": "^3.0.1",
+ "postcss-initial": "^3.0.0",
+ "postcss-lab-function": "^2.0.1",
+ "postcss-logical": "^3.0.0",
+ "postcss-media-minmax": "^4.0.0",
+ "postcss-nesting": "^7.0.0",
+ "postcss-overflow-shorthand": "^2.0.0",
+ "postcss-page-break": "^2.0.0",
+ "postcss-place": "^4.0.1",
+ "postcss-pseudo-class-any-link": "^6.0.0",
+ "postcss-replace-overflow-wrap": "^3.0.0",
+ "postcss-selector-matches": "^4.0.0",
+ "postcss-selector-not": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-preset-env/node_modules/autoprefixer": {
+ "version": "9.8.8",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz",
+ "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==",
+ "dev": true,
+ "dependencies": {
+ "browserslist": "^4.12.0",
+ "caniuse-lite": "^1.0.30001109",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "picocolors": "^0.2.1",
+ "postcss": "^7.0.32",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "funding": {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ }
+ },
+ "node_modules/postcss-preset-env/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-preset-env/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-preset-env/node_modules/postcss-nesting": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz",
+ "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-property-lookup": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-property-lookup/-/postcss-property-lookup-2.0.0.tgz",
+ "integrity": "sha512-KUb53a7UZWDMVb0SRODOonc4H1wlbgQ0VfYwmJaR1xWPorhariEz0U7x0ri3W/imFs6HqLYWP7hl2yMvi5Ty+w==",
+ "dev": true,
+ "dependencies": {
+ "object-assign": "^4.0.1",
+ "postcss": "^6.0.6",
+ "tcomb": "^3.2.21"
+ }
+ },
+ "node_modules/postcss-property-lookup/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-property-lookup/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-property-lookup/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-property-lookup/node_modules/postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/postcss-property-lookup/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-pseudo-class-any-link": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz",
+ "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-selector-parser": "^5.0.0-rc.3"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-pseudo-class-any-link/node_modules/cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz",
+ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
+ "dev": true,
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-pseudo-class-any-link/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-pseudo-class-any-link/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==",
+ "dev": true,
+ "dependencies": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-replace-overflow-wrap": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz",
+ "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-replace-overflow-wrap/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-replace-overflow-wrap/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-selector-matches": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz",
+ "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-selector-matches/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-selector-matches/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-selector-not": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz",
+ "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-selector-not/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/postcss-selector-not/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
"node_modules/postcss-selector-parser": {
"version": "6.0.13",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
@@ -5336,256 +3122,83 @@
"node": ">=4"
}
},
- "node_modules/prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true
},
- "node_modules/prettier": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz",
- "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==",
+ "node_modules/postcss-values-parser": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz",
+ "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==",
"dev": true,
- "bin": {
- "prettier": "bin/prettier.cjs"
+ "dependencies": {
+ "flatten": "^1.0.2",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
},
"engines": {
- "node": ">=14"
+ "node": ">=6.14.4"
+ }
+ },
+ "node_modules/precss": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/precss/-/precss-4.0.0.tgz",
+ "integrity": "sha512-cRPZMKpHLZXR6gJlrXRjJe7SQMf+wYxg6rKp+TwYsYABjApSj9z8E8yIlagqADaWyikeIZttaNU6xqSjFIAP/g==",
+ "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
+ "dev": true,
+ "dependencies": {
+ "postcss": "^7.0.6",
+ "postcss-advanced-variables": "^3.0.0",
+ "postcss-atroot": "^0.1.3",
+ "postcss-extend-rule": "^2.0.0",
+ "postcss-nested": "^4.1.0",
+ "postcss-preset-env": "^6.4.0",
+ "postcss-property-lookup": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/precss/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
+ "node_modules/precss/node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
},
"funding": {
- "url": "https://github.com/prettier/prettier?sponsor=1"
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
}
},
- "node_modules/pretty-format": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
- "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "node_modules/precss/node_modules/postcss-nested": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-4.2.3.tgz",
+ "integrity": "sha512-rOv0W1HquRCamWy2kFl3QazJMMe1ku6rCFoAAH+9AcxdbpDeBr6k968MLWuLjvjMcGEip01ak09hKOEgpK9hvw==",
"dev": true,
"dependencies": {
- "@jest/schemas": "^29.6.3",
- "ansi-styles": "^5.0.0",
- "react-is": "^18.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "postcss": "^7.0.32",
+ "postcss-selector-parser": "^6.0.2"
}
},
- "node_modules/pretty-format/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/pretty-ms": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-8.0.0.tgz",
- "integrity": "sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==",
- "dev": true,
- "dependencies": {
- "parse-ms": "^3.0.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/prosemirror-changeset": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz",
- "integrity": "sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==",
- "dependencies": {
- "prosemirror-transform": "^1.0.0"
- }
- },
- "node_modules/prosemirror-collab": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz",
- "integrity": "sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==",
- "dependencies": {
- "prosemirror-state": "^1.0.0"
- }
- },
- "node_modules/prosemirror-commands": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.5.2.tgz",
- "integrity": "sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ==",
- "dependencies": {
- "prosemirror-model": "^1.0.0",
- "prosemirror-state": "^1.0.0",
- "prosemirror-transform": "^1.0.0"
- }
- },
- "node_modules/prosemirror-dropcursor": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz",
- "integrity": "sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==",
- "dependencies": {
- "prosemirror-state": "^1.0.0",
- "prosemirror-transform": "^1.1.0",
- "prosemirror-view": "^1.1.0"
- }
- },
- "node_modules/prosemirror-gapcursor": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz",
- "integrity": "sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==",
- "dependencies": {
- "prosemirror-keymap": "^1.0.0",
- "prosemirror-model": "^1.0.0",
- "prosemirror-state": "^1.0.0",
- "prosemirror-view": "^1.0.0"
- }
- },
- "node_modules/prosemirror-history": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.3.2.tgz",
- "integrity": "sha512-/zm0XoU/N/+u7i5zepjmZAEnpvjDtzoPWW6VmKptcAnPadN/SStsBjMImdCEbb3seiNTpveziPTIrXQbHLtU1g==",
- "dependencies": {
- "prosemirror-state": "^1.2.2",
- "prosemirror-transform": "^1.0.0",
- "prosemirror-view": "^1.31.0",
- "rope-sequence": "^1.3.0"
- }
- },
- "node_modules/prosemirror-inputrules": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.2.1.tgz",
- "integrity": "sha512-3LrWJX1+ULRh5SZvbIQlwZafOXqp1XuV21MGBu/i5xsztd+9VD15x6OtN6mdqSFI7/8Y77gYUbQ6vwwJ4mr6QQ==",
- "dependencies": {
- "prosemirror-state": "^1.0.0",
- "prosemirror-transform": "^1.0.0"
- }
- },
- "node_modules/prosemirror-keymap": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz",
- "integrity": "sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==",
- "dependencies": {
- "prosemirror-state": "^1.0.0",
- "w3c-keyname": "^2.2.0"
- }
- },
- "node_modules/prosemirror-markdown": {
- "version": "1.11.2",
- "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.11.2.tgz",
- "integrity": "sha512-Eu5g4WPiCdqDTGhdSsG9N6ZjACQRYrsAkrF9KYfdMaCmjIApH75aVncsWYOJvEk2i1B3i8jZppv3J/tnuHGiUQ==",
- "dependencies": {
- "markdown-it": "^13.0.1",
- "prosemirror-model": "^1.0.0"
- }
- },
- "node_modules/prosemirror-menu": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz",
- "integrity": "sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA==",
- "dependencies": {
- "crelt": "^1.0.0",
- "prosemirror-commands": "^1.0.0",
- "prosemirror-history": "^1.0.0",
- "prosemirror-state": "^1.0.0"
- }
- },
- "node_modules/prosemirror-model": {
- "version": "1.19.3",
- "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.19.3.tgz",
- "integrity": "sha512-tgSnwN7BS7/UM0sSARcW+IQryx2vODKX4MI7xpqY2X+iaepJdKBPc7I4aACIsDV/LTaTjt12Z56MhDr9LsyuZQ==",
- "dependencies": {
- "orderedmap": "^2.0.0"
- }
- },
- "node_modules/prosemirror-schema-basic": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.2.tgz",
- "integrity": "sha512-/dT4JFEGyO7QnNTe9UaKUhjDXbTNkiWTq/N4VpKaF79bBjSExVV2NXmJpcM7z/gD7mbqNjxbmWW5nf1iNSSGnw==",
- "dependencies": {
- "prosemirror-model": "^1.19.0"
- }
- },
- "node_modules/prosemirror-schema-list": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.3.0.tgz",
- "integrity": "sha512-Hz/7gM4skaaYfRPNgr421CU4GSwotmEwBVvJh5ltGiffUJwm7C8GfN/Bc6DR1EKEp5pDKhODmdXXyi9uIsZl5A==",
- "dependencies": {
- "prosemirror-model": "^1.0.0",
- "prosemirror-state": "^1.0.0",
- "prosemirror-transform": "^1.7.3"
- }
- },
- "node_modules/prosemirror-state": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz",
- "integrity": "sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==",
- "dependencies": {
- "prosemirror-model": "^1.0.0",
- "prosemirror-transform": "^1.0.0",
- "prosemirror-view": "^1.27.0"
- }
- },
- "node_modules/prosemirror-tables": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.3.4.tgz",
- "integrity": "sha512-z6uLSQ1BLC3rgbGwZmpfb+xkdvD7W/UOsURDfognZFYaTtc0gsk7u/t71Yijp2eLflVpffMk6X0u0+u+MMDvIw==",
- "dependencies": {
- "prosemirror-keymap": "^1.1.2",
- "prosemirror-model": "^1.8.1",
- "prosemirror-state": "^1.3.1",
- "prosemirror-transform": "^1.2.1",
- "prosemirror-view": "^1.13.3"
- }
- },
- "node_modules/prosemirror-trailing-node": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.7.tgz",
- "integrity": "sha512-8zcZORYj/8WEwsGo6yVCRXFMOfBo0Ub3hCUvmoWIZYfMP26WqENU0mpEP27w7mt8buZWuGrydBewr0tOArPb1Q==",
- "dependencies": {
- "@remirror/core-constants": "^2.0.2",
- "@remirror/core-helpers": "^3.0.0",
- "escape-string-regexp": "^4.0.0"
- },
- "peerDependencies": {
- "prosemirror-model": "^1.19.0",
- "prosemirror-state": "^1.4.2",
- "prosemirror-view": "^1.31.2"
- }
- },
- "node_modules/prosemirror-transform": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.8.0.tgz",
- "integrity": "sha512-BaSBsIMv52F1BVVMvOmp1yzD3u65uC3HTzCBQV1WDPqJRQ2LuHKcyfn0jwqodo8sR9vVzMzZyI+Dal5W9E6a9A==",
- "dependencies": {
- "prosemirror-model": "^1.0.0"
- }
- },
- "node_modules/prosemirror-view": {
- "version": "1.32.1",
- "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.32.1.tgz",
- "integrity": "sha512-9SnB4HBgRczzTyIMZLPE1iszegL04hNfUyS8uPtP1RPxNM2NTCiIs8KwNsJU4nbZO9rxJTwVTv7Jm3zU4CR78A==",
- "dependencies": {
- "prosemirror-model": "^1.16.0",
- "prosemirror-state": "^1.0.0",
- "prosemirror-transform": "^1.1.0"
- }
- },
- "node_modules/punycode": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
- "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "dev": true
},
"node_modules/queue-microtask": {
"version": "1.2.3",
@@ -5607,63 +3220,20 @@
}
]
},
- "node_modules/ramda": {
- "name": "@pnpm/ramda",
- "version": "0.28.1",
- "resolved": "https://registry.npmjs.org/@pnpm/ramda/-/ramda-0.28.1.tgz",
- "integrity": "sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/ramda"
- }
- },
- "node_modules/react-is": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
- "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
- "dev": true
- },
- "node_modules/read-package-json-fast": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz",
- "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==",
+ "node_modules/read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
"dev": true,
"dependencies": {
- "json-parse-even-better-errors": "^3.0.0",
- "npm-normalize-package-bin": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz",
- "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==",
- "dev": true,
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
+ "pify": "^2.3.0"
}
},
"node_modules/readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
"dependencies": {
"picomatch": "^2.2.1"
},
@@ -5671,26 +3241,21 @@
"node": ">=8.10.0"
}
},
- "node_modules/rename-overwrite": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/rename-overwrite/-/rename-overwrite-4.0.3.tgz",
- "integrity": "sha512-e1zOWZh4Lauz5DcLMC8j4eoOHPIrZkAVpiocE9SkDE1ZrGMW+W88LR1Y2YjD1DFgOYfJWqSsK6JKsRfuRH+tbQ==",
+ "node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dev": true,
"dependencies": {
- "@zkochan/rimraf": "^2.1.2",
- "fs-extra": "10.1.0"
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
},
- "engines": {
- "node": ">=12.10"
- }
- },
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true,
- "engines": {
- "node": ">=4"
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/reusify": {
@@ -5703,51 +3268,11 @@
"node": ">=0.10.0"
}
},
- "node_modules/reverse-arguments": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/reverse-arguments/-/reverse-arguments-1.0.0.tgz",
- "integrity": "sha512-/x8uIPdTafBqakK0TmPNJzgkLP+3H+yxpUJhCQHsLBg1rYEVNR2D8BRYNWQhVBjyOd7oo1dZRVzIkwMY2oqfYQ==",
- "dev": true
- },
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/rimraf/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/rollup": {
"version": "3.29.4",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
"integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
+ "dev": true,
"bin": {
"rollup": "dist/bin/rollup"
},
@@ -5759,20 +3284,6 @@
"fsevents": "~2.3.2"
}
},
- "node_modules/rollup-plugin-analyzer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/rollup-plugin-analyzer/-/rollup-plugin-analyzer-4.0.0.tgz",
- "integrity": "sha512-LL9GEt3bkXp6Wa19SNR5MWcvHNMvuTFYg+eYBZN2OIFhSWN+pEJUQXEKu5BsOeABob3x9PDaLKW7w5iOJnsESQ==",
- "dev": true,
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/rope-sequence": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz",
- "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ=="
- },
"node_modules/run-parallel": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -5796,439 +3307,151 @@
"queue-microtask": "^1.2.2"
}
},
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/sass": {
- "version": "1.69.5",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz",
- "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==",
- "dependencies": {
- "chokidar": ">=3.0.0 <4.0.0",
- "immutable": "^4.0.0",
- "source-map-js": ">=0.6.2 <2.0.0"
- },
- "bin": {
- "sass": "sass.js"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semver/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/shell-quote-word": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/shell-quote-word/-/shell-quote-word-1.0.1.tgz",
- "integrity": "sha512-lT297f1WLAdq0A4O+AknIFRP6kkiI3s8C913eJ0XqBxJbZPGWUNkRQk2u8zk4bEAjUJ5i+fSLwB6z1HzeT+DEg==",
- "dev": true
- },
- "node_modules/siginfo": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
- "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
- "dev": true
- },
- "node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/sirv": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz",
- "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==",
- "dev": true,
- "dependencies": {
- "@polka/url": "^1.0.0-next.20",
- "mrmime": "^1.0.0",
- "totalist": "^3.0.0"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
"node_modules/source-map-js": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "dev": true,
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
- "dev": true
- },
- "node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dev": true,
- "dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/spdx-license-ids": {
- "version": "3.0.16",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz",
- "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==",
- "dev": true
- },
- "node_modules/split2": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
- "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
- "dev": true,
- "dependencies": {
- "readable-stream": "^3.0.0"
- }
- },
- "node_modules/ssri": {
- "version": "10.0.5",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz",
- "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==",
- "dev": true,
- "dependencies": {
- "minipass": "^7.0.3"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/stackback": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
- "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
- "dev": true
- },
- "node_modules/std-env": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.4.3.tgz",
- "integrity": "sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==",
- "dev": true
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dev": true,
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/string-width/node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/string-width/node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/string.fromcodepoint": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/string.fromcodepoint/-/string.fromcodepoint-0.2.1.tgz",
- "integrity": "sha512-n69H31OnxSGSZyZbgBlvYIXlrMhJQ0dQAX1js1QDhpaUH6zmU3QYlj07bCwCNlPOu3oRXIubGPl2gDGnHsiCqg==",
- "dev": true
- },
"node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
"dev": true,
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "ansi-regex": "^2.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "node_modules/sucrase": {
+ "version": "3.34.0",
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz",
+ "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==",
"dev": true,
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "commander": "^4.0.0",
+ "glob": "7.1.6",
+ "lines-and-columns": "^1.1.6",
+ "mz": "^2.7.0",
+ "pirates": "^4.0.1",
+ "ts-interface-checker": "^0.1.9"
+ },
+ "bin": {
+ "sucrase": "bin/sucrase",
+ "sucrase-node": "bin/sucrase-node"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/strip-literal": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz",
- "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==",
- "dev": true,
- "dependencies": {
- "acorn": "^8.10.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/summary": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/summary/-/summary-2.1.0.tgz",
- "integrity": "sha512-nMIjMrd5Z2nuB2RZCKJfFMjgS3fygbeyGk9PxPPaJR1RIcyN9yn4A63Isovzm3ZtQuEkLBVgMdPup8UeLH7aQw==",
- "dev": true
- },
"node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==",
"dev": true,
"dependencies": {
- "has-flag": "^4.0.0"
+ "has-flag": "^1.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=0.8.0"
}
},
- "node_modules/text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
- },
- "node_modules/throttle-debounce": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz",
- "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/through2": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
- "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
- "dev": true,
- "dependencies": {
- "readable-stream": "3"
- }
- },
- "node_modules/tinybench": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz",
- "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==",
- "dev": true
- },
- "node_modules/tinypool": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.7.0.tgz",
- "integrity": "sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==",
- "dev": true,
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/tinyspy": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.0.tgz",
- "integrity": "sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==",
- "dev": true,
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/tippy.js": {
- "version": "6.3.7",
- "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz",
- "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==",
- "dependencies": {
- "@popperjs/core": "^2.9.0"
- }
- },
- "node_modules/to-no-case": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/to-no-case/-/to-no-case-1.0.2.tgz",
- "integrity": "sha512-Z3g735FxuZY8rodxV4gH7LxClE4H0hTIyHNIHdk+vpQxjLm0cwnKXq/OFVZ76SOQmto7txVcwSCwkU5kqp+FKg==",
- "dev": true
- },
- "node_modules/to-pascal-case": {
+ "node_modules/supports-preserve-symlinks-flag": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/to-pascal-case/-/to-pascal-case-1.0.0.tgz",
- "integrity": "sha512-QGMWHqM6xPrcQW57S23c5/3BbYb0Tbe9p+ur98ckRnGDwD4wbbtDiYI38CfmMKNB5Iv0REjs5SNDntTwvDxzZA==",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/tailwindcss": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz",
+ "integrity": "sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==",
"dev": true,
"dependencies": {
- "to-space-case": "^1.0.0"
+ "@alloc/quick-lru": "^5.2.0",
+ "arg": "^5.0.2",
+ "chokidar": "^3.5.3",
+ "didyoumean": "^1.2.2",
+ "dlv": "^1.1.3",
+ "fast-glob": "^3.3.0",
+ "glob-parent": "^6.0.2",
+ "is-glob": "^4.0.3",
+ "jiti": "^1.19.1",
+ "lilconfig": "^2.1.0",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "object-hash": "^3.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.4.23",
+ "postcss-import": "^15.1.0",
+ "postcss-js": "^4.0.1",
+ "postcss-load-config": "^4.0.1",
+ "postcss-nested": "^6.0.1",
+ "postcss-selector-parser": "^6.0.11",
+ "resolve": "^1.22.2",
+ "sucrase": "^3.32.0"
+ },
+ "bin": {
+ "tailwind": "lib/cli.js",
+ "tailwindcss": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/tcomb": {
+ "version": "3.2.29",
+ "resolved": "https://registry.npmjs.org/tcomb/-/tcomb-3.2.29.tgz",
+ "integrity": "sha512-di2Hd1DB2Zfw6StGv861JoAF5h/uQVu/QJp2g8KVbtfKnoHdBQl5M32YWq6mnSYBQ1vFFrns5B1haWJL7rKaOQ==",
+ "dev": true
+ },
+ "node_modules/thenify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+ "dev": true,
+ "dependencies": {
+ "any-promise": "^1.0.0"
+ }
+ },
+ "node_modules/thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+ "dev": true,
+ "dependencies": {
+ "thenify": ">= 3.1.0 < 4"
+ },
+ "engines": {
+ "node": ">=0.8"
}
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
"dependencies": {
"is-number": "^7.0.0"
},
@@ -6236,248 +3459,46 @@
"node": ">=8.0"
}
},
- "node_modules/to-regex-range/node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/to-space-case": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/to-space-case/-/to-space-case-1.0.0.tgz",
- "integrity": "sha512-rLdvwXZ39VOn1IxGL3V6ZstoTbwLRckQmn/U8ZDLuWwIXNpuZDhQ3AiRUlhTbOXFVE9C+dR51wM0CBDhk31VcA==",
- "dev": true,
- "dependencies": {
- "to-no-case": "^1.0.0"
- }
- },
- "node_modules/totalist": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
- "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/ts-api-utils": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz",
- "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==",
- "dev": true,
- "engines": {
- "node": ">=16.13.0"
- },
- "peerDependencies": {
- "typescript": ">=4.2.0"
- }
- },
- "node_modules/ts-node": {
- "version": "10.9.1",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
- "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
- "dev": true,
- "dependencies": {
- "@cspotcode/source-map-support": "^0.8.0",
- "@tsconfig/node10": "^1.0.7",
- "@tsconfig/node12": "^1.0.7",
- "@tsconfig/node14": "^1.0.0",
- "@tsconfig/node16": "^1.0.2",
- "acorn": "^8.4.1",
- "acorn-walk": "^8.1.1",
- "arg": "^4.1.0",
- "create-require": "^1.1.0",
- "diff": "^4.0.1",
- "make-error": "^1.1.1",
- "v8-compile-cache-lib": "^3.0.1",
- "yn": "3.1.1"
- },
- "bin": {
- "ts-node": "dist/bin.js",
- "ts-node-cwd": "dist/bin-cwd.js",
- "ts-node-esm": "dist/bin-esm.js",
- "ts-node-script": "dist/bin-script.js",
- "ts-node-transpile-only": "dist/bin-transpile.js",
- "ts-script": "dist/bin-script-deprecated.js"
- },
- "peerDependencies": {
- "@swc/core": ">=1.2.50",
- "@swc/wasm": ">=1.2.50",
- "@types/node": "*",
- "typescript": ">=2.7"
- },
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "@swc/wasm": {
- "optional": true
- }
- }
- },
- "node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "dependencies": {
- "prelude-ls": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/typescript": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
- "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
- "devOptional": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/uc.micro": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
- "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
- },
- "node_modules/ufo": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.1.tgz",
- "integrity": "sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==",
+ "node_modules/ts-interface-checker": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
"dev": true
},
- "node_modules/unconfig": {
- "version": "0.3.11",
- "resolved": "https://registry.npmjs.org/unconfig/-/unconfig-0.3.11.tgz",
- "integrity": "sha512-bV/nqePAKv71v3HdVUn6UefbsDKQWRX+bJIkiSm0+twIds6WiD2bJLWWT3i214+J/B4edufZpG2w7Y63Vbwxow==",
+ "node_modules/uniq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+ "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==",
+ "dev": true
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"dependencies": {
- "@antfu/utils": "^0.7.6",
- "defu": "^6.1.2",
- "jiti": "^1.20.0",
- "mlly": "^1.4.2"
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/undici-types": {
- "version": "5.25.3",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz",
- "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==",
- "devOptional": true
- },
- "node_modules/unescape-js": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/unescape-js/-/unescape-js-1.1.4.tgz",
- "integrity": "sha512-42SD8NOQEhdYntEiUQdYq/1V/YHwr1HLwlHuTJB5InVVdOSbgI6xu8jK5q65yIzuFCfczzyDF/7hbGzVbyCw0g==",
- "dev": true,
- "dependencies": {
- "string.fromcodepoint": "^0.2.1"
- }
- },
- "node_modules/unique-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
- "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
- "dev": true,
- "dependencies": {
- "crypto-random-string": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
- "dev": true,
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/unocss": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/unocss/-/unocss-0.57.1.tgz",
- "integrity": "sha512-xLsyJ8+T1/Ux93yrqOvuQy268wF5rSzydlsbqZ5EVfi01PxYyydez3nycPqbyPZientkJ0Yohzd5aBqmZgku3A==",
- "dev": true,
- "dependencies": {
- "@unocss/astro": "0.57.1",
- "@unocss/cli": "0.57.1",
- "@unocss/core": "0.57.1",
- "@unocss/extractor-arbitrary-variants": "0.57.1",
- "@unocss/postcss": "0.57.1",
- "@unocss/preset-attributify": "0.57.1",
- "@unocss/preset-icons": "0.57.1",
- "@unocss/preset-mini": "0.57.1",
- "@unocss/preset-tagify": "0.57.1",
- "@unocss/preset-typography": "0.57.1",
- "@unocss/preset-uno": "0.57.1",
- "@unocss/preset-web-fonts": "0.57.1",
- "@unocss/preset-wind": "0.57.1",
- "@unocss/reset": "0.57.1",
- "@unocss/transformer-attributify-jsx": "0.57.1",
- "@unocss/transformer-attributify-jsx-babel": "0.57.1",
- "@unocss/transformer-compile-class": "0.57.1",
- "@unocss/transformer-directives": "0.57.1",
- "@unocss/transformer-variant-group": "0.57.1",
- "@unocss/vite": "0.57.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
+ "bin": {
+ "update-browserslist-db": "cli.js"
},
"peerDependencies": {
- "@unocss/webpack": "0.57.1",
- "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0"
- },
- "peerDependenciesMeta": {
- "@unocss/webpack": {
- "optional": true
- },
- "vite": {
- "optional": true
- }
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "dependencies": {
- "punycode": "^2.1.0"
+ "browserslist": ">= 4.21.0"
}
},
"node_modules/util-deprecate": {
@@ -6486,40 +3507,11 @@
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"dev": true
},
- "node_modules/v8-compile-cache-lib": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
- "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "dev": true
- },
- "node_modules/validate-npm-package-name": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz",
- "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==",
- "dev": true,
- "dependencies": {
- "builtins": "^5.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/version-selector-type": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/version-selector-type/-/version-selector-type-3.0.0.tgz",
- "integrity": "sha512-PSvMIZS7C1MuVNBXl/CDG2pZq8EXy/NW2dHIdm3bVP5N0PC8utDK8ttXLXj44Gn3J0lQE3U7Mpm1estAOd+eiA==",
- "dev": true,
- "dependencies": {
- "semver": "^7.3.2"
- },
- "engines": {
- "node": ">=10.13"
- }
- },
"node_modules/vite": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz",
"integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==",
+ "dev": true,
"dependencies": {
"esbuild": "^0.18.10",
"postcss": "^8.4.27",
@@ -6570,342 +3562,14 @@
}
}
},
- "node_modules/vite-node": {
- "version": "0.34.6",
- "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz",
- "integrity": "sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==",
- "dev": true,
- "dependencies": {
- "cac": "^6.7.14",
- "debug": "^4.3.4",
- "mlly": "^1.4.0",
- "pathe": "^1.1.1",
- "picocolors": "^1.0.0",
- "vite": "^3.0.0 || ^4.0.0 || ^5.0.0-0"
- },
- "bin": {
- "vite-node": "vite-node.mjs"
- },
- "engines": {
- "node": ">=v14.18.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/vite-plugin-compression2": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/vite-plugin-compression2/-/vite-plugin-compression2-0.11.0.tgz",
- "integrity": "sha512-U6oEyRXZD26BynOgD/tStNTbQOLPt96aQNj/gdJTicKVYCQCdlV7QdmSF7VEhSyjiS59pQRhiMBu/uajprxWLA==",
- "dev": true,
- "dependencies": {
- "@rollup/pluginutils": "^5.0.2"
- }
- },
"node_modules/vite-plugin-full-reload": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.0.5.tgz",
- "integrity": "sha512-kVZFDFWr0DxiHn6MuDVTQf7gnWIdETGlZh0hvTiMXzRN80vgF4PKbONSq8U1d0WtHsKaFODTQgJeakLacoPZEQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.1.0.tgz",
+ "integrity": "sha512-3cObNDzX6DdfhD9E7kf6w2mNunFpD7drxyNgHLw+XwIYAgb+Xt16SEXo0Up4VH+TMf3n+DSVJZtW2POBGcBYAA==",
"dev": true,
"dependencies": {
"picocolors": "^1.0.0",
"picomatch": "^2.3.1"
- },
- "peerDependencies": {
- "vite": "^2 || ^3 || ^4"
- }
- },
- "node_modules/vitest": {
- "version": "0.34.6",
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.34.6.tgz",
- "integrity": "sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==",
- "dev": true,
- "dependencies": {
- "@types/chai": "^4.3.5",
- "@types/chai-subset": "^1.3.3",
- "@types/node": "*",
- "@vitest/expect": "0.34.6",
- "@vitest/runner": "0.34.6",
- "@vitest/snapshot": "0.34.6",
- "@vitest/spy": "0.34.6",
- "@vitest/utils": "0.34.6",
- "acorn": "^8.9.0",
- "acorn-walk": "^8.2.0",
- "cac": "^6.7.14",
- "chai": "^4.3.10",
- "debug": "^4.3.4",
- "local-pkg": "^0.4.3",
- "magic-string": "^0.30.1",
- "pathe": "^1.1.1",
- "picocolors": "^1.0.0",
- "std-env": "^3.3.3",
- "strip-literal": "^1.0.1",
- "tinybench": "^2.5.0",
- "tinypool": "^0.7.0",
- "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0",
- "vite-node": "0.34.6",
- "why-is-node-running": "^2.2.2"
- },
- "bin": {
- "vitest": "vitest.mjs"
- },
- "engines": {
- "node": ">=v14.18.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- },
- "peerDependencies": {
- "@edge-runtime/vm": "*",
- "@vitest/browser": "*",
- "@vitest/ui": "*",
- "happy-dom": "*",
- "jsdom": "*",
- "playwright": "*",
- "safaridriver": "*",
- "webdriverio": "*"
- },
- "peerDependenciesMeta": {
- "@edge-runtime/vm": {
- "optional": true
- },
- "@vitest/browser": {
- "optional": true
- },
- "@vitest/ui": {
- "optional": true
- },
- "happy-dom": {
- "optional": true
- },
- "jsdom": {
- "optional": true
- },
- "playwright": {
- "optional": true
- },
- "safaridriver": {
- "optional": true
- },
- "webdriverio": {
- "optional": true
- }
- }
- },
- "node_modules/vitest/node_modules/magic-string": {
- "version": "0.30.5",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
- "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
- "dev": true,
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.15"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vlq": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz",
- "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==",
- "dev": true
- },
- "node_modules/vue": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.7.tgz",
- "integrity": "sha512-YEMDia1ZTv1TeBbnu6VybatmSteGOS3A3YgfINOfraCbf85wdKHzscD6HSS/vB4GAtI7sa1XPX7HcQaJ1l24zA==",
- "dependencies": {
- "@vue/compiler-dom": "3.3.7",
- "@vue/compiler-sfc": "3.3.7",
- "@vue/runtime-dom": "3.3.7",
- "@vue/server-renderer": "3.3.7",
- "@vue/shared": "3.3.7"
- },
- "peerDependencies": {
- "typescript": "*"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/vue-eslint-parser": {
- "version": "9.3.2",
- "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz",
- "integrity": "sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==",
- "dev": true,
- "dependencies": {
- "debug": "^4.3.4",
- "eslint-scope": "^7.1.1",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.3.1",
- "esquery": "^1.4.0",
- "lodash": "^4.17.21",
- "semver": "^7.3.6"
- },
- "engines": {
- "node": "^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=6.0.0"
- }
- },
- "node_modules/vue-router": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz",
- "integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==",
- "dependencies": {
- "@vue/devtools-api": "^6.5.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/posva"
- },
- "peerDependencies": {
- "vue": "^3.2.0"
- }
- },
- "node_modules/w3c-keyname": {
- "version": "2.2.8",
- "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz",
- "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ=="
- },
- "node_modules/wcwidth": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
- "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "defaults": "^1.0.3"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/why-is-node-running": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz",
- "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==",
- "dev": true,
- "dependencies": {
- "siginfo": "^2.0.0",
- "stackback": "0.0.2"
- },
- "bin": {
- "why-is-node-running": "cli.js"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs": {
- "name": "wrap-ansi",
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/wrap-ansi-cjs/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi/node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/wrap-ansi/node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrap-ansi/node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
"node_modules/wrappy": {
@@ -6914,61 +3578,13 @@
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true
},
- "node_modules/xml-name-validator": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
- "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
+ "node_modules/yaml": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
+ "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==",
"dev": true,
"engines": {
- "node": ">=12"
- }
- },
- "node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "node_modules/yn": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
- "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/zod": {
- "version": "3.22.4",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz",
- "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
- },
- "node_modules/zod-validation-error": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-1.5.0.tgz",
- "integrity": "sha512-/7eFkAI4qV0tcxMBB/3+d2c1P6jzzZYdYSlBuAklzMuCrJu5bzJfHS0yVAS87dRHVlhftd6RFJDIvv03JgkSbw==",
- "dev": true,
- "engines": {
- "node": ">=16.0.0"
- },
- "peerDependencies": {
- "zod": "^3.18.0"
+ "node": ">= 14"
}
}
}
diff --git a/package.json b/package.json
index bd014a0..981634d 100644
--- a/package.json
+++ b/package.json
@@ -1,53 +1,17 @@
{
"private": true,
+ "type": "module",
"scripts": {
"dev": "vite",
- "build": "vite build",
- "lint": "eslint \"**/*.{js,jsx,.vue}\" --ignore-path .gitignore",
- "format": "prettier . --write",
- "test": "vitest",
- "knip": "knip",
- "ls-lint": "npx @ls-lint/ls-lint"
+ "build": "vite build"
},
"devDependencies": {
- "@ls-lint/ls-lint": "^2.2.2",
- "@typescript-eslint/eslint-plugin": "^6.9.1",
- "@typescript-eslint/parser": "^6.9.1",
- "eslint": "^8.52.0",
- "eslint-config-prettier": "^9.0.0",
- "eslint-plugin-jsdoc": "^46.6.0",
- "eslint-plugin-vue": "^9.18.1",
- "knip": "^2.38.6",
+ "autoprefixer": "^10.4.16",
+ "axios": "^1.6.1",
"laravel-vite-plugin": "^0.8.0",
- "lodash": "^4.17.19",
- "postcss": "^8.4.27",
- "prettier": "3.0.3",
- "rollup-plugin-analyzer": "^4.0.0",
- "ts-node": "^10.9.1",
- "typescript": "^5.0.4",
- "unocss": "^0.57.1",
- "vite": "^4.4.7",
- "vite-plugin-compression2": "^0.11.0",
- "vitest": "^0.34.3"
- },
- "dependencies": {
- "@tiptap/extension-highlight": "^2.1.8",
- "@tiptap/extension-image": "^2.0.3",
- "@tiptap/extension-link": "^2.0.3",
- "@tiptap/extension-subscript": "^2.0.3",
- "@tiptap/extension-superscript": "^2.1.8",
- "@tiptap/extension-text-align": "^2.0.3",
- "@tiptap/extension-underline": "^2.0.3",
- "@tiptap/pm": "^2.0.3",
- "@tiptap/starter-kit": "^2.1.8",
- "@tiptap/vue-3": "^2.0.3",
- "@vitejs/plugin-vue": "^4.4.0",
- "dompurify": "^3.0.4",
- "dotenv": "^16.0.3",
- "pinia": "^2.0.28",
- "pinia-plugin-persistedstate": "^3.2.0",
- "sass": "^1.69.5",
- "vue": "^3.3.7",
- "vue-router": "^4.2.2"
+ "postcss": "^8.4.31",
+ "precss": "^4.0.0",
+ "tailwindcss": "^3.3.5",
+ "vite": "^4.0.0"
}
}
diff --git a/phpunit.xml b/phpunit.xml
index 8df6492..5dfc079 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -24,7 +24,7 @@
- ./app
+ app
diff --git a/postcss.config.cjs b/postcss.config.cjs
new file mode 100644
index 0000000..e1bdf18
--- /dev/null
+++ b/postcss.config.cjs
@@ -0,0 +1,7 @@
+module.exports = {
+ plugins: {
+ precss: {},
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+};
diff --git a/public/images/android-chrome-192x192.png b/public/images/android-chrome-192x192.png
new file mode 100644
index 0000000..2085bdd
Binary files /dev/null and b/public/images/android-chrome-192x192.png differ
diff --git a/public/images/android-chrome-512x512.png b/public/images/android-chrome-512x512.png
new file mode 100644
index 0000000..5ae4495
Binary files /dev/null and b/public/images/android-chrome-512x512.png differ
diff --git a/public/images/apple-touch-icon.png b/public/images/apple-touch-icon.png
new file mode 100644
index 0000000..4a41f0b
Binary files /dev/null and b/public/images/apple-touch-icon.png differ
diff --git a/public/images/favicon-16x16.png b/public/images/favicon-16x16.png
new file mode 100644
index 0000000..2a25ed2
Binary files /dev/null and b/public/images/favicon-16x16.png differ
diff --git a/public/images/favicon-32x32.png b/public/images/favicon-32x32.png
new file mode 100644
index 0000000..4f2893c
Binary files /dev/null and b/public/images/favicon-32x32.png differ
diff --git a/public/images/favicon.ico b/public/images/favicon.ico
new file mode 100644
index 0000000..45023b3
Binary files /dev/null and b/public/images/favicon.ico differ
diff --git a/public/images/hero.webp b/public/images/hero.webp
new file mode 100644
index 0000000..72bd459
Binary files /dev/null and b/public/images/hero.webp differ
diff --git a/public/images/logo-copy.svg b/public/images/logo-copy.svg
new file mode 100644
index 0000000..b4250e5
--- /dev/null
+++ b/public/images/logo-copy.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/logo-old.svg b/public/images/logo-old.svg
new file mode 100644
index 0000000..da85e65
--- /dev/null
+++ b/public/images/logo-old.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/images/logo.svg b/public/images/logo.svg
new file mode 100644
index 0000000..782ab49
--- /dev/null
+++ b/public/images/logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/minecraft-icon.png b/public/images/minecraft-icon.png
new file mode 100644
index 0000000..ec991a2
Binary files /dev/null and b/public/images/minecraft-icon.png differ
diff --git a/public/scripts/svg-inject.min.js b/public/scripts/svg-inject.min.js
new file mode 100644
index 0000000..1631485
--- /dev/null
+++ b/public/scripts/svg-inject.min.js
@@ -0,0 +1,10 @@
+!function(o,l){var r,a,s="createElement",g="getElementsByTagName",b="length",E="style",d="title",y="undefined",k="setAttribute",w="getAttribute",x=null,A="__svgInject",C="--inject-",S=new RegExp(C+"\\d+","g"),I="LOAD_FAIL",t="SVG_NOT_SUPPORTED",L="SVG_INVALID",v=["src","alt","onload","onerror"],j=l[s]("a"),G=typeof SVGRect!=y,f={useCache:!0,copyAttributes:!0,makeIdsUnique:!0},N={clipPath:["clip-path"],"color-profile":x,cursor:x,filter:x,linearGradient:["fill","stroke"],marker:["marker",
+"marker-end","marker-mid","marker-start"],mask:x,pattern:["fill","stroke"],radialGradient:["fill","stroke"]},u=1,c=2,O=1;function T(e){return(r=r||new XMLSerializer).serializeToString(e)}function P(e,r){var t,n,i,o,a=C+O++,f=/url\("?#([a-zA-Z][\w:.-]*)"?\)/g,u=e.querySelectorAll("[id]"),c=r?[]:x,l={},s=[],d=!1;if(u[b]){for(i=0;i {
+ setTimeout(function () {
+ window.stemmech.cleanupBackLinks();
+ window.stemmech.inputErrorListener();
+ window.stemmech.formSubmitListener();
+ window.stemmech.formChangeListener();
+ }, 1);
+
+ window.SVGInject(document.querySelectorAll("img.injectable"));
+});
diff --git a/resources/js/stemmech.ts b/resources/js/stemmech.ts
new file mode 100644
index 0000000..ac3f8d7
--- /dev/null
+++ b/resources/js/stemmech.ts
@@ -0,0 +1,302 @@
+export interface StemmechStatic {
+ hasUnsavedChanges: number;
+ unsavedChangesMessageStack: string[];
+ ready(callback: () => void): void;
+ getAllSiblings(
+ elem: HTMLElement,
+ filter?: (elem: HTMLElement) => boolean
+ ): HTMLElement[];
+ getQueryParam(param: string, defaultValue: string | null): string | null;
+ cleanupBackLinks(): void;
+ inputErrorListener(): void;
+ formSubmitListener(): void;
+ formChangeListener(): void;
+ formBusy(message: string): void;
+ formIdle(popMessage: boolean): void;
+}
+
+const stemmech: StemmechStatic = {
+ hasUnsavedChanges: 0,
+ unsavedChangesMessageStack: ['You have unsaved changes. Are you sure you want to leave this page?'],
+
+ /**
+ * Executes the provided callback function when the DOM is fully loaded.
+ *
+ * @param {function} callback - The function to be executed when the DOM is ready.
+ */
+ ready: function (callback) {
+ document.addEventListener("DOMContentLoaded", function () {
+ if (typeof callback === "function") {
+ callback();
+ }
+ });
+ },
+
+ /**
+ * Get all siblings of an element.
+ *
+ * @param {HTMLElement} elem - The element to find siblings for.
+ * @param {function} [filter] - A filter function to apply to the siblings.
+ * @returns {HTMLElement[]} An array of sibling elements.
+ */
+ getAllSiblings: function (elem, filter) {
+ const sibs: HTMLElement[] = [];
+ elem = elem.parentNode?.firstChild as HTMLElement;
+ do {
+ if (elem?.nodeType === 3) continue;
+ if (!filter || (filter && filter(elem))) sibs.push(elem);
+ } while ((elem = elem.nextSibling as HTMLElement));
+ return sibs;
+ },
+
+ /**
+ * Get a query parameter from the current URL.
+ *
+ * @param {string} param - The query parameter to retrieve.
+ * @param {*} [defaultValue=null] - The default value if the parameter is not found.
+ * @returns {*} The value of the query parameter or the default value.
+ */
+ getQueryParam: function (param, defaultValue = null) {
+ const urlSearchParams = new URLSearchParams(window.location.search);
+ const paramValue = urlSearchParams.get(param);
+ return paramValue !== null ? paramValue : defaultValue;
+ },
+
+ /**
+ * Cleans up back links in the document by replacing links with "javascript:history.back()" href attributes
+ * with the actual document.referrer value.
+ */
+ cleanupBackLinks: function () {
+ var links = document.getElementsByTagName("a");
+
+ for (var i = 0; i < links.length; i++) {
+ if (links[i].getAttribute("href") === "javascript:history.back()") {
+ links[i].setAttribute("href", document.referrer);
+ }
+ }
+ },
+
+ /**
+ * Listens for input events on input elements with error-related siblings and removes the error
+ * siblings when input occurs.
+ */
+ inputErrorListener: function () {
+ function handleRemoveErrorSiblings(event: Event) {
+ const element = event.currentTarget as HTMLInputElement;
+ const siblings = window.stemmech.getAllSiblings(element, (e) => {
+ return (
+ e.nodeName.toUpperCase() === "P" &&
+ e.classList.contains("error")
+ );
+ });
+
+ siblings.forEach((item) => {
+ if (item.parentNode) item.parentNode.removeChild(item);
+ });
+
+ element.removeEventListener("input", handleRemoveErrorSiblings);
+ }
+
+ // Attach event listener only to those inputs that have a following p.error sibling
+ document.querySelectorAll("input").forEach(function (input) {
+ const hasErrorSiblings = stemmech.getAllSiblings(input, (e) => {
+ return (
+ e.nodeName.toUpperCase() === "P" &&
+ e.classList.contains("error")
+ );
+ });
+
+ if (hasErrorSiblings.length > 0) {
+ input.addEventListener("input", handleRemoveErrorSiblings);
+ }
+ });
+ },
+
+ /**
+ * Handle the form submission by disabling input elements and showing a spinner.
+ */
+ formSubmitListener: function () {
+ function handleFormSubmit(event: Event) {
+ const element = event.currentTarget as HTMLElement;
+
+ // Find the submit button in the form
+ var submitButtons = element.querySelectorAll(
+ 'input[type="submit"], button[type="submit"]'
+ );
+
+ submitButtons.forEach((button) => {
+ var style = window.getComputedStyle(button);
+
+ (button as HTMLElement).style.width = style.width;
+ (button as HTMLElement).style.height = style.height;
+ // Change the HTML of the submit button
+ button.innerHTML =
+ ' ';
+ });
+
+ element
+ .querySelectorAll('input:not([type="submit"]), textarea')
+ .forEach(function (item) {
+ (item as HTMLInputElement).readOnly = true;
+ });
+ element
+ .querySelectorAll('input[type="submit"], button')
+ .forEach(function (item) {
+ (item as HTMLInputElement).disabled = true;
+ });
+ }
+
+ var form = document.querySelector("form");
+ if (form) {
+ form.addEventListener("submit", handleFormSubmit);
+ }
+ },
+
+ formChangeListener: function() {
+ const forms = document.querySelectorAll('form');
+
+ if (forms.length > 0) {
+ forms.forEach(form => {
+ form.addEventListener('input', () => {
+ this.hasUnsavedChanges++;
+ }, { once: true });
+ });
+
+ window.addEventListener('beforeunload', (event) => {
+ if (this.hasUnsavedChanges) {
+ event.preventDefault();
+ event.returnValue = this.unsavedChangesMessageStack[this.unsavedChangesMessageStack.length - 1];
+ return event.returnValue;
+ }
+ });
+ }
+ },
+
+ formBusy: function (message: string = "") {
+ this.hasUnsavedChanges++;
+ if (message != "") {
+ this.unsavedChangesMessageStack.push(message);
+ }
+ },
+
+ formIdle: function (popMessage: boolean = false) {
+ this.hasUnsavedChanges--;
+ if (popMessage) {
+ this.unsavedChangesMessageStack.pop();
+ }
+ },
+
+
+
+
+
+ function uploadFilesWithFeedback(files: FileList, url: string, formElement: HTMLFormElement, containerElement: HTMLElement, allowedExtensions: string[]): Promise {
+ // Disable all submit buttons in the form
+ const submitButtons = formElement.querySelectorAll('input[type="submit"], button[type="submit"]');
+ submitButtons.forEach((button) => {
+ button.disabled = true;
+ });
+
+ // Create an array to store promises for each file upload
+ const uploadPromises: Promise[] = [];
+
+ // Iterate through the files in the FileList
+ for (let i = 0; i < files.length; i++) {
+ const file = files[i];
+
+ // Check if the file has an allowed extension
+ const fileExtension = file.name.split('.').pop()?.toLowerCase();
+ if (!fileExtension || !allowedExtensions.includes(fileExtension)) {
+ // Skip this file if the extension is not allowed
+ console.warn(`Skipping file "${file.name}" due to an invalid extension.`);
+ continue;
+ }
+
+ // Create a promise for each file upload
+ const uploadPromise = new Promise((resolve, reject) => {
+ // Create a FormData object to send the file
+ const formData = new FormData();
+ formData.append('file', file);
+
+ // Create a new DIV element for feedback
+ const feedbackDiv = document.createElement('div');
+ feedbackDiv.classList.add('upload-feedback');
+
+ // Set the background image of the feedback DIV
+ const backgroundUrl = `/public/file_icons/${fileExtension}.png`;
+ feedbackDiv.style.backgroundImage = `url(${backgroundUrl}), url('data:image/svg+xml;utf8, ')`;
+
+ // Create a spinner icon
+ const spinnerIcon = document.createElement('i');
+ spinnerIcon.classList.add('fas', 'fa-spinner', 'fa-spin');
+
+ // Append the spinner icon to the feedback DIV
+ feedbackDiv.appendChild(spinnerIcon);
+
+ // Append the feedback DIV to the container element
+ containerElement.appendChild(feedbackDiv);
+
+ // Perform the POST request
+ fetch(url, {
+ method: 'POST',
+ body: formData,
+ })
+ .then((response) => {
+ if (response.ok) {
+ // Remove spinner and add a tick icon for success
+ feedbackDiv.innerHTML = ' ';
+ resolve();
+ } else {
+ // Remove spinner and add an error icon for errors
+ feedbackDiv.innerHTML = ' ';
+ console.error('File upload failed:', response.statusText);
+ reject(response.statusText);
+ }
+ })
+ .catch((error) => {
+ // Handle network errors
+ feedbackDiv.innerHTML = ' ';
+ console.error('File upload error:', error);
+ reject(error);
+ });
+ });
+
+ // Add the upload promise to the array
+ uploadPromises.push(uploadPromise);
+ }
+
+ // Return a promise that resolves when all uploads are complete (success or error)
+ return Promise.all(uploadPromises)
+ .finally(() => {
+ // Enable all submit buttons in the form when all uploads are complete
+ submitButtons.forEach((button) => {
+ button.disabled = false;
+ });
+ });
+}
+
+// Example usage:
+const fileInput = document.getElementById('file-input') as HTMLInputElement;
+const form = document.getElementById('my-form') as HTMLFormElement;
+const container = document.getElementById('feedback-container');
+const allowedExtensions = ['jpg', 'jpeg', 'png', 'gif']; // Replace with your allowed extensions
+
+fileInput.addEventListener('change', () => {
+ const files = fileInput.files;
+ if (files.length > 0) {
+ uploadFilesWithFeedback(files, '/upload-url', form, container, allowedExtensions)
+ .then(() => {
+ console.log('All files uploaded successfully.');
+ })
+ .catch((error) => {
+ console.error('Error uploading files:', error);
+ });
+ }
+});
+
+
+
+
+};
+
+export default stemmech;
diff --git a/resources/views/account/index.blade.php b/resources/views/account/index.blade.php
new file mode 100644
index 0000000..5eed7f3
--- /dev/null
+++ b/resources/views/account/index.blade.php
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ My Details
+
+
+
+
+ Users
+
+
+
+
+ Media
+
+
+
+
+ Posts
+
+
+
+
+ Workshops
+
+
+
+
+ Quotes
+
+
+
+
+ Invoices
+
+
+
diff --git a/resources/views/account/users-index.blade.php b/resources/views/account/users-index.blade.php
new file mode 100644
index 0000000..643bebf
--- /dev/null
+++ b/resources/views/account/users-index.blade.php
@@ -0,0 +1,54 @@
+@props(['users'])
+
+
+
+
+
+
+
+
+
+
+
+ {{ $users->links() }}
+
+
+
diff --git a/resources/views/account/users-show.blade.php b/resources/views/account/users-show.blade.php
new file mode 100644
index 0000000..d3a3fc1
--- /dev/null
+++ b/resources/views/account/users-show.blade.php
@@ -0,0 +1,35 @@
+@props(['user'])
+
+
+
+
+
+
diff --git a/resources/views/components/banner.blade.php b/resources/views/components/banner.blade.php
new file mode 100644
index 0000000..a82a0fb
--- /dev/null
+++ b/resources/views/components/banner.blade.php
@@ -0,0 +1,23 @@
+@props(['heading', 'back'])
+
+@php
+ $backTitle = '';
+ if (isset($back)) {
+ $parts = explode('.', $back);
+ if (count($parts) > 1) {
+ $backTitle = ucwords($parts[count($parts) - 2]);
+ } else {
+ $backTitle = ucwords($parts[0]);
+ }
+ }
+@endphp
+
+
+
{{ $heading }}
+ @if (isset($back))
+
Back
+ to
+ {{ $backTitle }}
+ @endif
+
diff --git a/resources/views/components/card.blade.php b/resources/views/components/card.blade.php
new file mode 100644
index 0000000..1493075
--- /dev/null
+++ b/resources/views/components/card.blade.php
@@ -0,0 +1,10 @@
+@if (isset($href))
+ merge(['class' => 'bg-gray-50 border border-gray-300 rounded-lg p-6']) }}>
+ {{ $slot }}
+
+@else
+ merge(['class' => 'bg-gray-50 border border-gray-300 rounded-lg p-6']) }}>
+ {{ $slot }}
+
+@endif
diff --git a/resources/views/components/flash-message.blade.php b/resources/views/components/flash-message.blade.php
new file mode 100644
index 0000000..e1f432a
--- /dev/null
+++ b/resources/views/components/flash-message.blade.php
@@ -0,0 +1,25 @@
+@if (session()->has('message'))
+ @php
+ $messageType = session('message-type', 'primary'); // Default to 'primary' if 'message_type' is not set
+ $messageClasses = [
+ 'primary' => 'border-blue bg-blue-lighter text-blue-dark',
+ 'success' => 'border-green bg-green-lighter text-green-dark',
+ 'danger' => 'border-red bg-red-lighter text-red-dark',
+ 'warning' => 'border-yellow bg-yellow-lighter text-yellow-dark',
+ ];
+ @endphp
+
+
+
+ {{ session('message') }}
+
+
+@endif
diff --git a/resources/views/components/layout.blade.php b/resources/views/components/layout.blade.php
new file mode 100644
index 0000000..593d54c
--- /dev/null
+++ b/resources/views/components/layout.blade.php
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ @vite(['resources/css/app.css', 'resources/js/app.ts'])
+ STEMMechanics
+
+
+
+ @include('partials.nav')
+ merge(['class' => 'grow']) }}>
+ {{ $slot }}
+
+
+ @include('partials.footer')
+
+ @stack('scripts')
+
+
+
diff --git a/resources/views/components/workshop-card.blade.php b/resources/views/components/workshop-card.blade.php
new file mode 100644
index 0000000..6a828ea
--- /dev/null
+++ b/resources/views/components/workshop-card.blade.php
@@ -0,0 +1,10 @@
+@props(['workshop'])
+
+
+
+
{{ $workshop->title }}
+
{{ Str::limit(strip_tags($workshop->content), 200, '...') }}
+
+
View
+
+
diff --git a/resources/views/emails/users/email-verify-plain.blade.php b/resources/views/emails/users/email-verify-plain.blade.php
new file mode 100644
index 0000000..f21452b
--- /dev/null
+++ b/resources/views/emails/users/email-verify-plain.blade.php
@@ -0,0 +1,18 @@
+Welcome {{ $user?->username }},
+
+We've heard you would like to try out our workshops and courses!
+Before we can let you loose on our website, we need to make sure you are a real person and not a pesky robot or cat.
+
+Enter the following URL in your browser:
+
+https://www.stemmechanics.com.au/verify
+
+and when asked, use the confirm code: {{ $code }}
+
+Need help or got feedback? Contact us at https://www.stemmechanics.com.au/contact or touch base on twitter at
+@stemmechanics
+
+--
+Sent by STEMMechanics
+https://www.stemmechanics.com.au/
+PO Box 36, Edmonton, QLD 4869, Australia
diff --git a/resources/views/emails/users/email-verify.blade.php b/resources/views/emails/users/email-verify.blade.php
new file mode 100644
index 0000000..7f5ffc0
--- /dev/null
+++ b/resources/views/emails/users/email-verify.blade.php
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+ STEMMechanics - Forgot Password
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Welcome {{ $user?->username }},
+
+
+
+
+ We've heard you would like to try out our workshops and courses!
+
+
+
+
+ Before we can let you loose on our website, we need to make sure you are a real person and not a
+ pesky robot or cat. Click this link stemmechanics.com.au/verify
+ and if you are asked, use the confirm code:
+
+
+
+
+ {{ $code }}
+
+
+
+
+ But if you didn't ask to reset your password, you can delete
+ this email and your password will remain the same.
+
+
+
+
+ Need help or got feedback?
+ Contact us
+ or touch base at
+ @stemmechanics .
+
+
+
+
+ Sent by STEMMechanics ·
+ Visit our Website
+ ·
+ @stemmechanics PO Box 36, Edmonton, QLD 4869,
+ Australia
+
+
+
+
+
+
diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php
new file mode 100644
index 0000000..4cb4d6c
--- /dev/null
+++ b/resources/views/home.blade.php
@@ -0,0 +1,18 @@
+@props(['workshops'])
+
+
+ @include('partials.hero')
+
+ Upcoming Workshops
+
+ @unless (count($workshops) == 0)
+ @foreach ($workshops as $workshop)
+
+ @endforeach
+ @else
+
No workshops found
+ @endunless
+
+
+
+
diff --git a/resources/views/partials/email-verify.blade.php b/resources/views/partials/email-verify.blade.php
new file mode 100644
index 0000000..782dbfd
--- /dev/null
+++ b/resources/views/partials/email-verify.blade.php
@@ -0,0 +1,55 @@
+@props(['resend'])
+
+
+ Enter the verification code you received
+
+
+
+
Verification code
+ @error('code')
+
{{ $message }}
+ @enderror
+
+
+@if (isset($resend))
+
+
+
+
+ Verify Code
+
+
+ @else
+
+
+ Verify Code
+
+
+@endif
+
+@push('scripts')
+
+@endpush
diff --git a/resources/views/partials/footer.blade.php b/resources/views/partials/footer.blade.php
new file mode 100644
index 0000000..c33e0f0
--- /dev/null
+++ b/resources/views/partials/footer.blade.php
@@ -0,0 +1,43 @@
+
+
+
+
STEMMechanics Australia acknowledges the Traditional Owners of Country throughout Australia and the
+ continuing connection to land, cultures and communities. We pay our respect to Aboriginal and Torres
+ Strait Islander cultures; and to Elders both past, present and emerging.
+
+
+
Community
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Made with ❤️ © 2023 STEMMechanics
+
+
+
diff --git a/resources/views/partials/hero.blade.php b/resources/views/partials/hero.blade.php
new file mode 100644
index 0000000..2407725
--- /dev/null
+++ b/resources/views/partials/hero.blade.php
@@ -0,0 +1,9 @@
+
+ Join the fun!
+ To keep up with our ever-changing world, it's important to encourage and support a
+ new generation of curious minds who love science, engineering, art, and leadership.
+ Our fun and exciting workshops can unlock countless opportunities for new ideas and
+ improvements, giving kids the skills and tools they need to solve any problem that comes their way.
+
diff --git a/resources/views/partials/nav.blade.php b/resources/views/partials/nav.blade.php
new file mode 100644
index 0000000..bff5dde
--- /dev/null
+++ b/resources/views/partials/nav.blade.php
@@ -0,0 +1,77 @@
+
+
+
+
diff --git a/resources/views/partials/search.blade.php b/resources/views/partials/search.blade.php
new file mode 100644
index 0000000..08ba7fe
--- /dev/null
+++ b/resources/views/partials/search.blade.php
@@ -0,0 +1,15 @@
+
diff --git a/resources/views/users/login.blade.php b/resources/views/users/login.blade.php
new file mode 100644
index 0000000..82eb942
--- /dev/null
+++ b/resources/views/users/login.blade.php
@@ -0,0 +1,43 @@
+
+
+
+ Log in to STEMMechanics
+
+
+
+
+
diff --git a/resources/views/users/register.blade.php b/resources/views/users/register.blade.php
new file mode 100644
index 0000000..7d0fc32
--- /dev/null
+++ b/resources/views/users/register.blade.php
@@ -0,0 +1,104 @@
+
+
+
+ Sign up to STEMMechanics
+
+
+
+
+
+
diff --git a/resources/views/users/verify.blade.php b/resources/views/users/verify.blade.php
new file mode 100644
index 0000000..3ebb235
--- /dev/null
+++ b/resources/views/users/verify.blade.php
@@ -0,0 +1,13 @@
+
+
+
+ Sign up to STEMMechanics
+
+
+
+
+
diff --git a/resources/views/vendor/pagination/bootstrap-4.blade.php b/resources/views/vendor/pagination/bootstrap-4.blade.php
new file mode 100644
index 0000000..63c6f56
--- /dev/null
+++ b/resources/views/vendor/pagination/bootstrap-4.blade.php
@@ -0,0 +1,46 @@
+@if ($paginator->hasPages())
+
+
+
+@endif
diff --git a/resources/views/vendor/pagination/bootstrap-5.blade.php b/resources/views/vendor/pagination/bootstrap-5.blade.php
new file mode 100644
index 0000000..a1795a4
--- /dev/null
+++ b/resources/views/vendor/pagination/bootstrap-5.blade.php
@@ -0,0 +1,88 @@
+@if ($paginator->hasPages())
+
+
+
+
+
+
+
+
+ {!! __('Showing') !!}
+ {{ $paginator->firstItem() }}
+ {!! __('to') !!}
+ {{ $paginator->lastItem() }}
+ {!! __('of') !!}
+ {{ $paginator->total() }}
+ {!! __('results') !!}
+
+
+
+
+
+
+
+
+@endif
diff --git a/resources/views/vendor/pagination/default.blade.php b/resources/views/vendor/pagination/default.blade.php
new file mode 100644
index 0000000..0db70b5
--- /dev/null
+++ b/resources/views/vendor/pagination/default.blade.php
@@ -0,0 +1,46 @@
+@if ($paginator->hasPages())
+
+
+
+@endif
diff --git a/resources/views/vendor/pagination/semantic-ui.blade.php b/resources/views/vendor/pagination/semantic-ui.blade.php
new file mode 100644
index 0000000..ef0dbb1
--- /dev/null
+++ b/resources/views/vendor/pagination/semantic-ui.blade.php
@@ -0,0 +1,36 @@
+@if ($paginator->hasPages())
+
+@endif
diff --git a/resources/views/vendor/pagination/simple-bootstrap-4.blade.php b/resources/views/vendor/pagination/simple-bootstrap-4.blade.php
new file mode 100644
index 0000000..4bb4917
--- /dev/null
+++ b/resources/views/vendor/pagination/simple-bootstrap-4.blade.php
@@ -0,0 +1,27 @@
+@if ($paginator->hasPages())
+
+
+
+@endif
diff --git a/resources/views/vendor/pagination/simple-bootstrap-5.blade.php b/resources/views/vendor/pagination/simple-bootstrap-5.blade.php
new file mode 100644
index 0000000..a89005e
--- /dev/null
+++ b/resources/views/vendor/pagination/simple-bootstrap-5.blade.php
@@ -0,0 +1,29 @@
+@if ($paginator->hasPages())
+
+
+
+@endif
diff --git a/resources/views/vendor/pagination/simple-default.blade.php b/resources/views/vendor/pagination/simple-default.blade.php
new file mode 100644
index 0000000..36bdbc1
--- /dev/null
+++ b/resources/views/vendor/pagination/simple-default.blade.php
@@ -0,0 +1,19 @@
+@if ($paginator->hasPages())
+
+
+
+@endif
diff --git a/resources/views/vendor/pagination/simple-tailwind.blade.php b/resources/views/vendor/pagination/simple-tailwind.blade.php
new file mode 100644
index 0000000..f9828df
--- /dev/null
+++ b/resources/views/vendor/pagination/simple-tailwind.blade.php
@@ -0,0 +1,29 @@
+@if ($paginator->hasPages())
+
+ {{-- Previous Page Link --}}
+ @if ($paginator->onFirstPage())
+
+ {!! __('pagination.previous') !!}
+
+ @else
+
+ {!! __('pagination.previous') !!}
+
+ @endif
+
+ {{-- Next Page Link --}}
+ @if ($paginator->hasMorePages())
+
+ {!! __('pagination.next') !!}
+
+ @else
+
+ {!! __('pagination.next') !!}
+
+ @endif
+
+@endif
diff --git a/resources/views/vendor/pagination/tailwind.blade.php b/resources/views/vendor/pagination/tailwind.blade.php
new file mode 100644
index 0000000..fad6dba
--- /dev/null
+++ b/resources/views/vendor/pagination/tailwind.blade.php
@@ -0,0 +1,46 @@
+@if ($paginator->hasPages())
+
+ {{-- Previous Page Link --}}
+ @if ($paginator->onFirstPage())
+
+ {!! __('pagination.previous') !!}
+
+ @else
+
+ {!! __('pagination.previous') !!}
+
+ @endif
+
+
+
+ {!! __('Showing') !!}
+ @if ($paginator->firstItem())
+ {{ $paginator->firstItem() }}
+ {!! __('to') !!}
+ {{ $paginator->lastItem() }}
+ @else
+ {{ $paginator->count() }}
+ @endif
+ {!! __('of') !!}
+ {{ $paginator->total() }}
+ {!! __('results') !!}
+
+
+
+
+ {{-- Next Page Link --}}
+ @if ($paginator->hasMorePages())
+
+ {!! __('pagination.next') !!}
+
+ @else
+
+ {!! __('pagination.next') !!}
+
+ @endif
+
+@endif
diff --git a/resources/views/workshops/index.blade.php b/resources/views/workshops/index.blade.php
new file mode 100644
index 0000000..5a9562f
--- /dev/null
+++ b/resources/views/workshops/index.blade.php
@@ -0,0 +1,20 @@
+
+ @include('partials.search')
+
+
+
+ @unless (count($workshops) == 0)
+
+ @foreach ($workshops as $workshop)
+
+ @endforeach
+ @else
+
No workshops found
+ @endunless
+
+
+
+
+ {{ $workshops->links() }}
+
+
diff --git a/routes/web.php b/routes/web.php
index b9aedb5..cf127ec 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -1,6 +1,10 @@
where('any', '.*');
+Route::get('/', [HomeController::class, 'index'])->name('home');
+
+Route::match(['get', 'post'], '/register', [UserController::class, 'register'])->name('register');
+Route::get('/login', [UserController::class, 'login'])->name('login');
+Route::post('/login', [UserController::class, 'authenticate']);
+Route::get('/logout', [UserController::class, 'logout'])->name('logout')->middleware('auth');
+Route::get('/verify', [UserController::class, 'verify'])->name('verify');
+Route::post('/verify', [UserController::class, 'verify_store'])->name('verify.store');
+
+Route::get('/account', [AccountController::class, 'index'])->name('account.index');
+Route::get('/account/users', [AccountController::class, 'users_index'])->name('account.users.index');
+Route::get('/account/users/{user}', [AccountController::class, 'users_show'])->name('account.users.show');
+Route::put('/account/users/{user}', [AccountController::class, 'users_show'])->name('account.users.show');
+Route::get('/workshops', [WorkshopController::class, 'index'])->name('workshop.show');
\ No newline at end of file
diff --git a/scripts/keras.py b/scripts/keras.py
deleted file mode 100644
index bebd26c..0000000
--- a/scripts/keras.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import sys
-import urllib.parse
-import numpy as np
-import keras_ocr
-
-if len(sys.argv) > 1:
- url = urllib.parse.unquote(sys.argv[1])
- image = keras_ocr.tools.read(url)
- pipeline = keras_ocr.pipeline.Pipeline()
- prediction = pipeline.recognize([image])
- print("----------START----------")
- for text, box in prediction [0]:
- print(text)
diff --git a/tailwind.config.js b/tailwind.config.js
new file mode 100644
index 0000000..0380560
--- /dev/null
+++ b/tailwind.config.js
@@ -0,0 +1,49 @@
+/** @type {import('tailwindcss').Config} */
+export default {
+ content: ["./resources/**/*.blade.php", "./resources/**/*.js"],
+ theme: {
+ extend: {
+ colors: {
+ "blue-lighter": "#cce5ff",
+ "blue-light": "#33ccff",
+ blue: "#00a5f1",
+ "blue-dark": "#007bb4",
+
+ "red-lighter": "#f8d7da",
+ "red-light": "#ff6666",
+ red: "#e00000",
+ "red-dark": "#cc0000",
+
+ "green-lighter": "#d4edda",
+ "green-light": "#35D100",
+ green: "#21af00",
+ "green-dark": "#188300",
+
+ "orange-light": "#ffcc33",
+ orange: "#f89e00",
+ "orange-dark": "#ba7600",
+
+ "yellow-lighter": "#f8d7da",
+ "yellow-light": "#ffea66",
+ yellow: "#ffdb05",
+ "yellow-dark": "#cc9900",
+
+ "pink-light": "#ff33cc",
+ pink: "#ff02ad",
+ "pink-dark": "#cc0099",
+ },
+ transitionDuration: {
+ DEFAULT: "50ms",
+ },
+ fontFamily: {
+ sans: "Poppins,Roboto,Open Sans,ui-sans-serif,system-ui,sans-serif",
+ },
+ },
+ },
+ variants: {
+ extend: {
+ backgroundColor: ["disabled"],
+ textColor: ["disabled"],
+ },
+ },
+};
diff --git a/tsconfig.json b/tsconfig.json
index b48fd4e..3351c9a 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -8,6 +8,6 @@
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
- "include": ["resources/**/*"],
+ "include": ["resources/js/**/*"],
"exclude": ["node_modules", "dist"]
}
diff --git a/vite.config.ts b/vite.config.ts
index 6de0114..0dfdf9c 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,52 +1,11 @@
-import vue from "@vitejs/plugin-vue";
-import laravel from "laravel-vite-plugin";
-import analyzer from "rollup-plugin-analyzer";
-import { compression } from "vite-plugin-compression2";
import { defineConfig } from "vite";
-import Unocss from "unocss/vite";
+import laravel from "laravel-vite-plugin";
export default defineConfig({
plugins: [
- vue({
- template: {
- compilerOptions: {
- isCustomElement: (tag) => ["ion-icon"].includes(tag),
- },
- transformAssetUrls: {
- base: null,
- includeAbsolute: false,
- },
- },
- }),
- Unocss({}),
laravel({
- input: ["resources/css/app.scss", "resources/js/main.js"],
+ input: ["resources/css/app.css", "resources/js/app.ts"],
refresh: true,
}),
- analyzer({ summaryOnly: true }),
- compression({
- include: [/\.(js)$/, /\.(css)$/],
- // deleteOriginalAssets: true,
- }),
],
- css: {
- preprocessorOptions: {
- scss: {
- // additionalData: `@import "./resources/css/variables.scss";`,
- },
- },
- },
- envPrefix: ["VITE_", "APP_URL"],
- resolve: {
- alias: {
- vue: "vue/dist/vue.esm-bundler.js",
- },
- },
- build: {
- chunkSizeWarningLimit: 500,
- rollupOptions: {
- output: {},
- },
- },
- base: "",
});